Commit graph

10982 commits

Author SHA1 Message Date
Masamune3210
beeb4b3a5f fix 3dsx swkbd calls causing abort 2026-05-18 22:50:27 -05:00
Masamune3210
cd21f70597 video_core: trigger P3D on finalize writes
Treat non-zero GPUREG_FINALIZE writes as P3D interrupt requests instead of requiring a byte match against irq_compare. This matches observed homebrew/commercial behavior where 0x12345678 finalizes command buffers and prevents apps from spinning while waiting for P3D completion.
2026-05-16 19:41:48 -05:00
Masamune3210
255bfd7be6 hle: implement remaining 3DSident-facing service commands
Implement several previously-stubbed service commands and refine the
system version reporting from the prior hardware-info work:

- ptm:sysm ConfigureNew3DSCPU (0x0818): accept the clock/L2 config
  bitfield. Azahar always runs as New 3DS, so no switching is needed.
- fs:USER GetSdmcCid (0x0819) / GetNandCid (0x081A): return all-zero
  CIDs, consistent with the all-zero ID0/ID1 used in the SDMC path.
- cfg:i ClearParentalControls (0x040F): clear the parental restriction
  email block (0x000C0002) and persist. The PIN and secret answer in
  0x00100001 are intentionally preserved, matching hardware behaviour.

Synthesize the virtual TWL /sys/log/product.log dynamically from the
installed CVer/NVer titles' RomFS version.bin instead of a hardcoded
string, so the reported system version reflects the actual installed
firmware. If those titles are absent, the file is reported as not
found rather than returning misleading data.

Drop the dummy all-zero TwlParentalRestrictions config block default,
which caused a fake parental PIN to be reported when the block was
never set up.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-16 16:33:28 -05:00
Masamune3210
db11399785 citra_qt: cache game list to disk, rescan only on explicit request
Previously the game list rescanned game directories on every launch and
after any event that might have changed game files. This commit replaces
that with a persistent JSON cache so subsequent launches populate the
list instantly from disk.

Key changes:
- game_list_cache.h/cpp: new JSON cache at ConfigDir/game_list_cache.json.
  Keyed by a DirsSignature fingerprint (path + deep_scan for every dir);
  invalidated automatically when the directory list changes.
- GameListWorker: emits CacheEntryReady in parallel with EntryReady,
  carrying raw metadata so entries can be rebuilt without touching ROMs.
- GameList::PopulateAsync: checks cache first. On a hit it rebuilds the
  model synchronously from cached data (PopulateFromCache) with no worker
  thread. On a miss it runs the full scan and saves the new cache in
  DonePopulating.
- GameList::ForceRescan: invalidates the cache then calls PopulateAsync.
- GameList::RefreshPlayTimes: updates only the play-time column in-place;
  called after a game session ends instead of a full rescan.
- QFileSystemWatcher is kept for CIA-install plumbing but is no longer
  connected to any automatic rescan.
- File menu: new "Refresh Game List" action (F5) triggers ForceRescan.
- OnCIAInstallFinished: uses ForceRescan (new title needs a fresh scan).
- OnStopGame: uses RefreshPlayTimes (only play time changed).

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-16 16:33:28 -05:00
Masamune3210
368681bb62 hle: stub hardware info commands for accurate 3DSident reporting
- ptm: GetAdapterState/GetBatteryChargeState model plugged-in fully-charged
  state; SetBatteryEmptyLEDPattern and IsShutdownByBatteryEmpty return nominal
  values; shared_page battery fields updated to match
- mcu::HWC: GetBatteryVoltage (0xD7), GetBatteryLevel (100),
  GetBatteryTemperature (28°C), GetMcuFwVerHigh/Low (3.65 raw 0x13/0x65),
  ReadRegister for reg 0x7F (PMIC/battery-vendor system-state bytes) and
  reg 0x0A (temperature), GetInfoRegisters with same system-state payload
- mcu::NWM: add new service module with wireless LED stubs
  (SetWirelessLedState, GetWirelessLedState)
- gsp::Lcd: GetVendor returns 0xCC (TN/TN screens)
- gsp::GPU: GetDisplayCaptureInfo stubbed to not spam log
- ac: LoadNetworkSetting stubs for slots 1-3 returning a placeholder open
  AP; SetClientVersion stubbed; ac:i CloseAsync stubbed
- cfg: WiFi slot 1 default block (0x100001) pre-populated with an open
  network so the slot is not blank
- fs: GetSdmcCid/GetNandCid return fixed dummy CIDs; NAND TWL archive
  intercepts /sys/log/product.log via in-memory VirtualFile backend
  (no host filesystem involvement); ArchiveFactory_NAND::Initialize
  returns true immediately for TWL type

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-16 16:33:28 -05:00
Masamune3210
1e89950481 ptm: resolve PlayHistory helper conflict 2026-05-16 16:33:27 -05:00
Masamune3210
e7fb865419
Merge branch 'azahar-emu:master' into master 2026-05-16 13:50:22 -05:00
OpenSauce04
e11f3da493 Updated translations via Transifex 2026-05-16 17:32:14 +01:00
OpenSauce04
8ffb94b06c Implement Z3DS compression CLI in new citra_cli static library 2026-05-16 17:13:31 +01:00
Masamune3210
b6053fcc5f ptm: fix PlayHistory ring IPC
Return the next PlayHistory ring index from GetPlayHistory instead of the number of entries written, matching libctru's ptm:plays API expectations. Treat incoming reads as physical ring indices, keep PlayHistory cached in memory, and make CalcPlayHistoryStart perform signed ring-index arithmetic. Also keeps NotifyPlayEvent appends consistent when the saved ring start is nonzero.

Validation: git diff --check -- src/core/hle/service/ptm/ptm.cpp src/core/hle/service/ptm/ptm.h
2026-05-15 21:39:02 -05:00
Masamune3210
f0ba10239a ptm: implement Activity Log play history
Add PTM PlayHistory.dat support backed by system savedata 00010022, including read/write helpers, play-history IPC handlers, NotifyPlayEvent, ClearPlayHistory, CalcPlayHistoryStart, and zero-filled empty-state repair.

Record play events from APT application, HOME Menu, library applet, and system applet lifecycle transitions so Activity Log can aggregate valid sessions from regenerated saves.

Add fs:USER handlers for ListSeeds, GetNumTitleTags, and ListTitleTags used by Activity Log library scans, and wire remaining PTM common handlers needed by the app.

Validation: git diff --check; user confirmed regenerated PTM and Activity Log saves display correctly.
2026-05-15 10:02:59 -05:00
Masamune3210
d19e6086fa kernel: suppress async IPC wakeups during shutdown
Async IPC continuations can finish while System::Shutdown is tearing down service, kernel, and timing state. The dump showed an HTTP ReceiveData RunAsync task calling Thread::WakeAfterDelay after shutdown had begun, which reached Core::Timing::ScheduleEvent with invalid timing state and crashed.

Mark KernelSystem as shutting down at the start of System::Shutdown and in the kernel destructor. Route RunAsync and RunOnThreadWorker completions through HLERequestContext::WakeAfterAsync, which skips scheduling guest-thread wakes once shutdown starts and balances the pending async counter instead.

Validation: git diff --check
2026-05-15 10:02:59 -05:00
Masamune3210
f2250fa485 kernel: extend NullWaitObject fix to WaitSynchronization1 (svc 0x24)
The previous NullWaitObject fix only covered WaitSynchronizationN (0x25).
WaitSynchronization1 (0x24) had the same issue: handle=0 returned
ResultInvalidHandle immediately, crashing any process whose wait handle
had not been populated yet.

Apply the same fix: handle=0 is substituted with a NullWaitObject so the
thread sleeps until the timeout expires and receives ResultTimeout, matching
real hardware behaviour.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-15 10:02:59 -05:00
Masamune3210
8d9f605fbb
Merge branch 'azahar-emu:master' into master 2026-05-15 09:46:12 -05:00
Masamune3210
29c2a4ec0d revert test 2026-05-14 15:52:32 -05:00
Masamune3210
7b5c4d4faa test 2026-05-14 15:52:32 -05:00
Masamune3210
b2819a7bbc APT/kernel: fix HOME button crash, region detection, GetSdmcCtrRootPath
svc.cpp / kernel:
- Add NullWaitObject: handle=0 in svcWaitSynchronizationN is treated as a
  permanently-unavailable slot (never fires) instead of returning
  ResultInvalidHandle.  Official Nintendo APT library builds pass aptSleepSync=0
  when sleeping for HOME Menu; real hardware silently ignores null slots and lets
  the other handles (APT:Parameter) drive the wakeup.
- Process now inherits WaitObject so svcWaitSynchronizationN on process handles
  works correctly.  LLE HOME Menu waits on a process handle during startup;
  previously Azahar returned ResultInvalidHandle because Process only extended
  Object, not WaitObject.  Process becomes available (ShouldWait=false) when it
  exits; TerminateProcess calls WakeupAllWaitingThreads.

applet_manager.cpp / apt.cpp:
- RequestForSysApplet auto-Response now attaches a pre-signaled event so the
  application can svcWaitSynchronizationN on the received handle without hanging.
- Wakeup parameters with no object now get a pre-signaled event (same fix).
- RegisterApplet initial Wakeup now sends a pre-signaled event.
- LeaveHomeMenu: supply a pre-signaled event when HOME Menu passes handle=0, so
  the application does not crash when it calls svcSignalEvent on the result.
- Removed the old logic that force-nulled objects on system→application sends
  (this was masking the real issue and breaking Wakeup handle delivery).

cfg.cpp:
- GetRegion defaults from_secure_info=true so CFGU_SecureInfoGetRegion reads
  SecureInfo_A (contains the hardware region) instead of falling back to
  auto-detect which returned JPN(0) for 3DSX homebrew with no preferred regions.

fs_user.cpp/h:
- Implement GetSdmcCtrRootPath (0x0848): returns /Nintendo 3DS/<ID0>/<ID1> as a
  UTF-16LE wide string.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-14 15:52:32 -05:00
Masamune3210
ba9ebb58fe citra_qt: add bulk shortcut creation for all games
Adds Tools > Create Shortcuts for All Games > Add to Desktop /
Add to Applications Menu. Asks for fullscreen preference once, then
iterates every unique game in the list with a progress dialog and
shows a summary on completion. Hidden on macOS where single-game
shortcut creation is also unsupported.

GameList gains GetAllGames() to enumerate unique (program_id, path)
pairs from the model, deduplicating entries that appear in both a
directory and the Favorites section.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-14 15:52:32 -05:00
Masamune3210
e59960c518 HTTP: implement streaming ReceiveData, fix GetDownloadSizeState, add cert chain stubs
- ReceiveData now streams body data in chunks via content_receiver + stream_cv
  instead of blocking until the full response body is downloaded; fixes downloads
  of large files that would time out before the body completed
- GetDownloadSizeState returns Content-Length from response headers immediately
  (via response_headers_future) rather than waiting for the progress callback,
  matching real hardware behavior
- GetResponseStatusCode and GetResponseHeader resolve from response_headers_future
  so they return as soon as headers arrive, not after full body download
- CancelConnection implemented: cancel_mutex + cancel_stop_fn set/cleared around
  client->send(); calling stop() aborts any in-flight request
- Cert chain stubs: CreateRootCertChain, DestroyRootCertChain, RootCertChainAddCert,
  RootCertChainAddDefaultCert, RootCertChainRemoveCert, SelectRootCertChain
- Shutdown fix: HTTP_C destructor sets async_shutdown and spin-waits for
  async_pending==0; async lambdas bail early on shutdown to prevent
  use-after-free of freed KernelSystem
- AM: remove redundant encrypted CIA check that blocked legitimate installs
- build-azahar.ps1: deploy now copies per-file with error counting instead of
  Move-Item so locked files (emulator open) produce warnings rather than silent failure

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-14 15:52:32 -05:00
Masamune3210
8d71f4afa3 ExtData support 2026-05-14 15:52:32 -05:00
Masamune3210
78e6aef690 add build script 2026-05-14 15:52:32 -05:00
Masamune3210
4edda3eb6b fix missed encryption lock 2026-05-14 15:52:32 -05:00
PabloMK7
28d94564e5 Add attestation support to increase release security (#2117)
* ci: Add sbom and attestation

* tools: Add verify-release.sh

* verify-release.sh: Set executable permission

* verify-release.sh: Put downloads into a gitignored directory

* tools: Make verify-release also download sbom

---------

Co-authored-by: OpenSauce04 <opensauce04@gmail.com>
2026-05-14 15:52:32 -05:00
OpenSauce04
bdc2865a5b ci: Strip libretro cores after building 2026-05-14 15:52:32 -05:00
PabloMK7
267887d7a9
Add attestation support to increase release security (#2117)
* ci: Add sbom and attestation

* tools: Add verify-release.sh

* verify-release.sh: Set executable permission

* verify-release.sh: Put downloads into a gitignored directory

* tools: Make verify-release also download sbom

---------

Co-authored-by: OpenSauce04 <opensauce04@gmail.com>
2026-05-14 14:52:10 +02:00
OpenSauce04
778ca369cd ci: Strip libretro cores after building 2026-05-12 11:56:22 +01:00
Masamune3210
f3728258ba remove encryption lock 2026-05-11 22:54:14 -05:00
OpenSauce04
dbe7fd979f cmake: Add EXCLUDE_FROM_ALL to targets where applicable 2026-05-09 14:01:56 +01:00
PabloMK7
1c7c7a5f1b
svc: Fix instruction cache invalidation only affecting current core (#2100) 2026-05-09 14:03:55 +02:00
OpenSauce04
bf59d26c48 externals: Update dllwalker to commit 2f8b349 2026-05-09 10:32:52 +01:00
OpenSauce04
652fc02175 ci: Implement MXE CI/CD build job 2026-05-09 10:32:52 +01:00
OpenSauce04
854e198196 cmake: Implemented bundle target for MXE builds
Just copies the content of bin/<type>/ to bundle/
2026-05-09 10:32:52 +01:00
OpenSauce04
5ecd402811 cmake: Explicitly use gcc-ar instead of ar for MXE builds 2026-05-09 10:32:52 +01:00
OpenSauce04
0ce2a30d20 Implement proper DLL resolution for MXE builds 2026-05-09 10:32:52 +01:00
OpenSauce04
644a181aff cmake: Explicitly disable BUILD_SHARED_LIBS 2026-05-09 10:32:52 +01:00
OpenSauce04
422c7865a3 For Linux --> Windows cross-compilation, copy all cross-compiled DLLs during build
As per the comment, this is just to get the build functioning pending a real solution
2026-05-09 10:32:52 +01:00
OpenSauce04
ca99574700 tests: Don't run catch_discover_tests when cross-compiling to a different OS 2026-05-09 10:32:52 +01:00
OpenSauce04
f902010f04 externals: Don't fall back to bundled OpenSSL if USE_SYSTEM_OPENSSL is enabled 2026-05-09 10:32:52 +01:00
PabloMK7
929a51afc6
audio: Add option to simulate headphones plugged in (#2099)
Some checks failed
citra-build / source (push) Failing after 6m47s
citra-build / linux-x86_64 (appimage-wayland) (push) Successful in 4m21s
citra-build / linux-x86_64 (gcc-nopch) (push) Failing after 4s
citra-build / android (googleplay) (push) Successful in 7s
citra-build / android (vanilla) (push) Failing after 3m24s
citra-build / docker (push) Failing after 20s
citra-format / clang-format (push) Failing after 1s
citra-libretro / android (push) Failing after 2m54s
citra-build / linux-x86_64 (appimage) (push) Failing after 14m13s
citra-libretro / linux (push) Failing after 3m16s
citra-libretro / windows (push) Failing after 3m22s
citra-transifex / transifex (push) Has been skipped
citra-build / linux-arm64 (clang) (push) Has been cancelled
citra-build / linux-arm64 (gcc-nopch) (push) Has been cancelled
citra-build / macos (push) Has been cancelled
citra-build / windows (msvc) (push) Has been cancelled
citra-build / windows (msys2) (push) Has been cancelled
citra-libretro / macos (arm64) (push) Has been cancelled
citra-libretro / macos (x86_64) (push) Has been cancelled
citra-libretro / ios (push) Has been cancelled
citra-libretro / tvos (push) Has been cancelled
2026-05-08 15:19:53 +02:00
PabloMK7
260f08c497
core: Add async filesystem operations (#2098) 2026-05-08 11:35:47 +02:00
PabloMK7
921ea178b9
ui: Made rom loading errors more clear and user friendly (#2097)
Some checks are pending
citra-build / source (push) Waiting to run
citra-build / linux-x86_64 (appimage) (push) Waiting to run
citra-build / linux-x86_64 (appimage-wayland) (push) Waiting to run
citra-build / linux-x86_64 (gcc-nopch) (push) Waiting to run
citra-build / linux-arm64 (clang) (push) Waiting to run
citra-build / linux-arm64 (gcc-nopch) (push) Waiting to run
citra-build / macos (push) Waiting to run
citra-build / windows (msvc) (push) Waiting to run
citra-build / windows (msys2) (push) Waiting to run
citra-build / android (googleplay) (push) Waiting to run
citra-build / android (vanilla) (push) Waiting to run
citra-build / docker (push) Waiting to run
citra-format / clang-format (push) Waiting to run
citra-libretro / android (push) Waiting to run
citra-libretro / linux (push) Waiting to run
citra-libretro / windows (push) Waiting to run
citra-libretro / macos (arm64) (push) Waiting to run
citra-libretro / macos (x86_64) (push) Waiting to run
citra-libretro / ios (push) Waiting to run
citra-libretro / tvos (push) Waiting to run
citra-transifex / transifex (push) Waiting to run
2026-05-07 20:39:30 +02:00
PabloMK7
b540725090
Revamp GDB implemenation and add a some minor debug features (#2086)
Some checks are pending
citra-build / source (push) Waiting to run
citra-build / linux-x86_64 (appimage) (push) Waiting to run
citra-build / linux-x86_64 (appimage-wayland) (push) Waiting to run
citra-build / linux-x86_64 (gcc-nopch) (push) Waiting to run
citra-build / linux-arm64 (clang) (push) Waiting to run
citra-build / linux-arm64 (gcc-nopch) (push) Waiting to run
citra-build / macos (push) Waiting to run
citra-build / windows (msvc) (push) Waiting to run
citra-build / windows (msys2) (push) Waiting to run
citra-build / android (googleplay) (push) Waiting to run
citra-build / android (vanilla) (push) Waiting to run
citra-build / docker (push) Waiting to run
citra-format / clang-format (push) Waiting to run
citra-libretro / android (push) Waiting to run
citra-libretro / linux (push) Waiting to run
citra-libretro / windows (push) Waiting to run
citra-libretro / macos (arm64) (push) Waiting to run
citra-libretro / macos (x86_64) (push) Waiting to run
citra-libretro / ios (push) Waiting to run
citra-libretro / tvos (push) Waiting to run
citra-transifex / transifex (push) Waiting to run
2026-05-07 13:48:35 +02:00
PabloMK7
5ddbaeae23
gsp: Fix GPU interrupt queue and add GPU timing emulation (#2095)
Some checks are pending
citra-build / source (push) Waiting to run
citra-build / linux-x86_64 (appimage) (push) Waiting to run
citra-build / linux-x86_64 (appimage-wayland) (push) Waiting to run
citra-build / linux-x86_64 (gcc-nopch) (push) Waiting to run
citra-build / linux-arm64 (clang) (push) Waiting to run
citra-build / linux-arm64 (gcc-nopch) (push) Waiting to run
citra-build / macos (push) Waiting to run
citra-build / windows (msvc) (push) Waiting to run
citra-build / windows (msys2) (push) Waiting to run
citra-build / android (googleplay) (push) Waiting to run
citra-build / android (vanilla) (push) Waiting to run
citra-build / docker (push) Waiting to run
citra-format / clang-format (push) Waiting to run
citra-libretro / android (push) Waiting to run
citra-libretro / linux (push) Waiting to run
citra-libretro / windows (push) Waiting to run
citra-libretro / macos (arm64) (push) Waiting to run
citra-libretro / macos (x86_64) (push) Waiting to run
citra-libretro / ios (push) Waiting to run
citra-libretro / tvos (push) Waiting to run
citra-transifex / transifex (push) Waiting to run
2026-05-07 01:36:21 +02:00
OpenSauce04
b081f800a4 Revert "ci: Override Android SDK Ninja with newer version"
Some checks failed
citra-build / source (push) Has been cancelled
citra-build / linux-x86_64 (appimage) (push) Has been cancelled
citra-build / linux-x86_64 (appimage-wayland) (push) Has been cancelled
citra-build / linux-x86_64 (gcc-nopch) (push) Has been cancelled
citra-build / linux-arm64 (clang) (push) Has been cancelled
citra-build / linux-arm64 (gcc-nopch) (push) Has been cancelled
citra-build / macos (push) Has been cancelled
citra-build / windows (msvc) (push) Has been cancelled
citra-build / windows (msys2) (push) Has been cancelled
citra-build / android (googleplay) (push) Has been cancelled
citra-build / android (vanilla) (push) Has been cancelled
citra-build / docker (push) Has been cancelled
citra-format / clang-format (push) Has been cancelled
citra-libretro / android (push) Has been cancelled
citra-libretro / linux (push) Has been cancelled
citra-libretro / windows (push) Has been cancelled
citra-libretro / macos (arm64) (push) Has been cancelled
citra-libretro / macos (x86_64) (push) Has been cancelled
citra-libretro / ios (push) Has been cancelled
citra-libretro / tvos (push) Has been cancelled
citra-transifex / transifex (push) Has been cancelled
This reverts commit eee7f076ee.
2026-05-04 17:40:37 +01:00
OpenSauce04
76a71d76d4 externals: Revert to a patched version of OpenAL v1.24.1 2026-05-04 17:40:37 +01:00
Rodrigo Iglesias
83eef0012e macOS: normalize SDMC directory filenames (#2080)
Some checks failed
citra-build / source (push) Has been cancelled
citra-build / linux-x86_64 (appimage) (push) Has been cancelled
citra-build / linux-x86_64 (appimage-wayland) (push) Has been cancelled
citra-build / linux-x86_64 (gcc-nopch) (push) Has been cancelled
citra-build / linux-arm64 (clang) (push) Has been cancelled
citra-build / linux-arm64 (gcc-nopch) (push) Has been cancelled
citra-build / macos (push) Has been cancelled
citra-build / windows (msvc) (push) Has been cancelled
citra-build / windows (msys2) (push) Has been cancelled
citra-build / android (googleplay) (push) Has been cancelled
citra-build / android (vanilla) (push) Has been cancelled
citra-build / docker (push) Has been cancelled
citra-format / clang-format (push) Has been cancelled
citra-libretro / android (push) Has been cancelled
citra-libretro / linux (push) Has been cancelled
citra-libretro / windows (push) Has been cancelled
citra-libretro / macos (arm64) (push) Has been cancelled
citra-libretro / macos (x86_64) (push) Has been cancelled
citra-libretro / ios (push) Has been cancelled
citra-libretro / tvos (push) Has been cancelled
citra-transifex / transifex (push) Has been cancelled
* macOS: normalize SDMC directory filenames

* Guard macOS filename normalization behind __APPLE__

* Guard macOS filename normalization test

* Apply clang-format

* Update license headers
2026-05-03 00:21:53 +02:00
OpenSauce04
ec6a0dd1c8 ci: Migrate Transifex runner to latest tag
Some checks failed
citra-build / source (push) Has been cancelled
citra-build / linux-x86_64 (appimage) (push) Has been cancelled
citra-build / linux-x86_64 (appimage-wayland) (push) Has been cancelled
citra-build / linux-x86_64 (gcc-nopch) (push) Has been cancelled
citra-build / linux-arm64 (clang) (push) Has been cancelled
citra-build / linux-arm64 (gcc-nopch) (push) Has been cancelled
citra-build / macos (push) Has been cancelled
citra-build / windows (msvc) (push) Has been cancelled
citra-build / windows (msys2) (push) Has been cancelled
citra-build / android (googleplay) (push) Has been cancelled
citra-build / android (vanilla) (push) Has been cancelled
citra-build / docker (push) Has been cancelled
citra-format / clang-format (push) Has been cancelled
citra-libretro / android (push) Has been cancelled
citra-libretro / linux (push) Has been cancelled
citra-libretro / windows (push) Has been cancelled
citra-libretro / macos (arm64) (push) Has been cancelled
citra-libretro / macos (x86_64) (push) Has been cancelled
citra-libretro / ios (push) Has been cancelled
citra-libretro / tvos (push) Has been cancelled
citra-transifex / transifex (push) Has been cancelled
The `transifex` tag has now been removed due to a seperate image no longer being necessary
2026-04-26 15:29:29 +01:00
OpenSauce04
eb498e5ecd qt: Fixed outdated use of qt_add_lupdate 2026-04-26 15:25:38 +01:00
OpenSauce04
4fa793b945 android: Bump NDK and AGP versions
NDK: 27.1.x --> 27.3.x
AGP: 8.13.1 --> 8.13.2
2026-04-26 13:55:16 +01:00
OpenSauce04
5d84dfed91 Fix building w/ OpenAL on OpenBSD
- Explicitly disable Solaris backend on OpenBSD
- Update OpenAL to v1.25.1
2026-04-26 12:52:32 +01:00