Commit Graph

10695 Commits

Author SHA1 Message Date
Chance
43e044ad9a Fix simple typo that prevented debug builds (MSVC) 2025-12-31 20:55:37 +00:00
Kleidis
f31bd1bcdd
android: Add support for compressing and decompressing files (#1458) 2025-12-31 15:38:22 +01:00
PabloMK7
40d512cafd
plgldr: Fix plugin memory management (#1554) 2025-12-30 22:21:44 +01:00
PabloMK7
be259fc9b8
qt: Do not refresh game directory while powered on (#1553) 2025-12-30 21:13:24 +01:00
OpenSauce
e035bd3a21
android: Fix rename + move behaviour for Google Play build (#1545)
* android: Fix rename + move behaviour for Google Play build

* android_storage: Handle rename/move with same source and destination
2025-12-29 17:55:51 +00:00
OpenSauce04
8accd2f576 ci: Only build Android googleplay target for tags
I couldn't find any method of entirely skipping a single target in a matrix, so skipping each job is the next best thing.
2025-12-29 15:00:34 +00:00
OpenSauce04
a84a58b613 ci: Added build job for Android Google Play flavor 2025-12-29 15:00:34 +00:00
OpenSauce04
6751c20f52 android: Implemented googlePlay build variants 2025-12-29 15:00:34 +00:00
PabloMK7
4085ce6bf8
core: Add SMDH region free patch setting (#1541) 2025-12-29 01:20:26 +01:00
David Griswold
41f1be91eb
poll all displays (#1455) 2025-12-27 22:27:03 +01:00
David Griswold
b7540aa019
store opacity in layout to avoid applying opacity incorrectly (#1496) 2025-12-27 16:15:36 +01:00
PabloMK7
8384eaa0c2
core: Fix memory mode handling during app launch (#1534) 2025-12-27 13:38:06 +01:00
PabloMK7
f60f3eed1f
core: Implement AM:CancelImportProgram (#1535) 2025-12-27 12:11:07 +01:00
OpenSauce
9ed8cdccd4
Added Flathub downloads to readme 2025-12-24 14:06:26 +00:00
OpenSauce04
5f5ba99168 common: Move playtime tracker file to sysdata directory 2025-12-24 12:48:06 +00:00
OpenSauce
c0a04cef39
android: Begin migration to raw fs access, starting with Rename reimplementation (#1511)
* Add setup step to grant `MANAGE_EXTERNAL_STORAGE`

* WIP re-implementation of Android `Rename` using native filesystem manipulation

* Applied clang-format and updated license headers

* Support user directories on removable storage devices

* If `MANAGE_EXTERNAL_STORAGE` is lost, re-request it

* Fix missing permission dialog appearing during initial setup

* Added empty code branches to prep for old Android support

* Fixed permission setup completion not accounting for external storage permission

* Implement code for Android <11

* Fixed emulation error if a renamed file is then opened for R/W

* Detect if the current user directory cannot be located, and prompt re-selection

* If an invalid user directory is selected, reject and re-prompt
2025-12-24 12:18:13 +00:00
OpenSauce04
1d2591ab8c macos: Fixed real camera not activating during emulation
This was due to a plugin which is required for handling camera permissions being missing
2025-12-23 22:24:47 +00:00
PabloMK7
fe92815b04
audio_core: Add DSP sleep and wakeup functionality (#1529) 2025-12-23 22:57:56 +01:00
PabloMK7
275d818cd4
video_core: Change unimplemented gas stub behaviour (#1525)
Some checks failed
citra-build / source (push) Has been cancelled
citra-build / linux (appimage) (push) Has been cancelled
citra-build / linux (appimage-wayland) (push) Has been cancelled
citra-build / linux (fresh) (push) Has been cancelled
citra-build / macos (arm64) (push) Has been cancelled
citra-build / macos (x86_64) (push) Has been cancelled
citra-build / windows (msvc) (push) Has been cancelled
citra-build / windows (msys2) (push) Has been cancelled
citra-build / android (push) Has been cancelled
citra-build / docker (push) Has been cancelled
citra-format / clang-format (push) Has been cancelled
citra-transifex / transifex (push) Has been cancelled
citra-build / macos-universal (push) Has been cancelled
2025-12-22 15:48:47 +01:00
PabloMK7
7a2f3fdda9 audio_core: Update teakra for new memory ownership
Some checks are pending
citra-build / source (push) Waiting to run
citra-build / linux (appimage) (push) Waiting to run
citra-build / linux (appimage-wayland) (push) Waiting to run
citra-build / linux (fresh) (push) Waiting to run
citra-build / macos (arm64) (push) Waiting to run
citra-build / macos (x86_64) (push) Waiting to run
citra-build / macos-universal (push) Blocked by required conditions
citra-build / windows (msvc) (push) Waiting to run
citra-build / windows (msys2) (push) Waiting to run
citra-build / android (push) Waiting to run
citra-build / docker (push) Waiting to run
citra-format / clang-format (push) Waiting to run
citra-transifex / transifex (push) Waiting to run
2025-12-22 11:51:22 +01:00
PabloMK7
2edc8b4b73 audio_core: Move dsp memory ownership to memory system 2025-12-22 11:51:22 +01:00
PabloMK7
109f5fb730
core: Fix home menu garbled suspended application image (#1518)
Some checks failed
citra-build / source (push) Has been cancelled
citra-build / linux (appimage) (push) Has been cancelled
citra-build / linux (appimage-wayland) (push) Has been cancelled
citra-build / linux (fresh) (push) Has been cancelled
citra-build / macos (arm64) (push) Has been cancelled
citra-build / macos (x86_64) (push) Has been cancelled
citra-build / windows (msvc) (push) Has been cancelled
citra-build / windows (msys2) (push) Has been cancelled
citra-build / android (push) Has been cancelled
citra-build / docker (push) Has been cancelled
citra-format / clang-format (push) Has been cancelled
citra-transifex / transifex (push) Has been cancelled
citra-build / macos-universal (push) Has been cancelled
2025-12-20 21:34:23 +01:00
jbm11208
f7eaf13a4d video_core/renderer_vulkan: Add texture filtering
Some checks failed
citra-build / source (push) Has been cancelled
citra-build / linux (appimage) (push) Has been cancelled
citra-build / linux (appimage-wayland) (push) Has been cancelled
citra-build / linux (fresh) (push) Has been cancelled
citra-build / macos (arm64) (push) Has been cancelled
citra-build / macos (x86_64) (push) Has been cancelled
citra-build / windows (msvc) (push) Has been cancelled
citra-build / windows (msys2) (push) Has been cancelled
citra-build / android (push) Has been cancelled
citra-build / docker (push) Has been cancelled
citra-format / clang-format (push) Has been cancelled
citra-transifex / transifex (push) Has been cancelled
citra-build / macos-universal (push) Has been cancelled
2025-12-09 18:52:12 +00:00
PabloMK7
4fdc45a771 qt: Add batch Z3DS compression/decompression 2025-12-09 18:32:07 +00:00
lenore
6b05944116
android: Force app to use max available refresh rate in menus (#1492)
* [android]: Force app to use the displays max set refresh rate

Since Android 15, google automatically forces "games" to be 60 hrz. This ensures the display's max refresh rate is actually used. Tested on a Google Pixel 7 Pro with Android 16

Emulation Activity was excluded for battery usage concerns

* force60Hrz option

* Code cleanup

* Expanded refresh rate explaination comment

* Moved `enforceRefreshRate` calls to earlier in `onCreate`

This probably doesn't actually do anything, it's a bit of a nitpick

* Moved `enforceRefreshRate` SDK version check to within the function

---------

Co-authored-by: OpenSauce04 <opensauce04@gmail.com>
2025-12-09 16:21:09 +00:00
PabloMK7
b0fe4d190d
core: Temporary workaround for MSVC compiler bug (#1505) 2025-12-07 22:27:50 +01:00
PabloMK7
9996a07e87
externals: Update to boost v1.89.0 (#1502) 2025-12-06 19:36:46 +01:00
Marcin Serwin
254ab96b63
cmake: Don't install zstd_seekable and use header from externals (#1305)
* Use zstd_seekable header from externals

Specifying the full path relies on the system installed header.

Signed-off-by: Marcin Serwin <marcin@serwin.dev>

* Don't install zstd_seekable

Signed-off-by: Marcin Serwin <marcin@serwin.dev>

---------

Signed-off-by: Marcin Serwin <marcin@serwin.dev>
2025-12-06 18:59:32 +01:00
OpenSauce04
aac54d648c android: Upgrade AGP to 8.13.1 2025-12-05 18:08:16 +00:00
OpenSauce04
456a886a33 Updated Linux section of readme with Wayland information 2025-12-05 16:53:06 +00:00
OpenSauce04
05562046ac ci: Split AppImage build into two, with and without Wayland support 2025-12-05 16:53:06 +00:00
David Griswold
356aa3d3ae make it so clearing to default ACTUALLY clears gamepad settings 2025-12-05 13:08:04 +00:00
OpenSauce04
f1a59b2186 android: Added relWithDebInfoLite build profile 2025-12-05 13:01:28 +00:00
OpenSauce04
346bcf02ea docker: Set name of final stage in azahar-room Dockerfile
Some checks failed
citra-build / source (push) Has been cancelled
citra-build / linux (appimage) (push) Has been cancelled
citra-build / linux (fresh) (push) Has been cancelled
citra-build / macos (arm64) (push) Has been cancelled
citra-build / macos (x86_64) (push) Has been cancelled
citra-build / windows (msvc) (push) Has been cancelled
citra-build / windows (msys2) (push) Has been cancelled
citra-build / android (push) Has been cancelled
citra-build / docker (push) Has been cancelled
citra-format / clang-format (push) Has been cancelled
citra-transifex / transifex (push) Has been cancelled
citra-build / macos-universal (push) Has been cancelled
2025-12-02 10:54:42 +00:00
OpenSauce04
9099b9cfb7 docker: Use Ninja for azahar-room Docker image build 2025-12-02 10:54:42 +00:00
OpenSauce04
e1a7c24ecd docker: Improved build times by disabling unnecessary libraries
This can definitely be further improved, as there are Citra components which are also built unnecessarily, but that would require invasive CMake changes which are out of scope for this PR.
2025-12-02 10:54:42 +00:00
OpenSauce04
a34ad3bff8 Added docker CI/CD job 2025-12-02 10:54:42 +00:00
OpenSauce04
6866c01524 Initial azahar-room Dockerfile implementation 2025-12-02 10:54:42 +00:00
OpenSauce04
e0b8e8440a cmake: Fixed AppImage build failure caused by upstream changes to linuxdeploy
Some checks failed
citra-build / source (push) Has been cancelled
citra-build / linux (appimage) (push) Has been cancelled
citra-build / linux (fresh) (push) Has been cancelled
citra-build / macos (arm64) (push) Has been cancelled
citra-build / macos (x86_64) (push) Has been cancelled
citra-build / windows (msvc) (push) Has been cancelled
citra-build / windows (msys2) (push) Has been cancelled
citra-build / android (push) Has been cancelled
citra-format / clang-format (push) Has been cancelled
citra-transifex / transifex (push) Has been cancelled
citra-build / macos-universal (push) Has been cancelled
Also improved error message when linuxdeploy run fails
2025-11-30 18:17:42 +00:00
OpenSauce04
4cc9792f66 configure_graphics.cpp: Corrected indentation
Some checks are pending
citra-build / source (push) Waiting to run
citra-build / linux (appimage) (push) Waiting to run
citra-build / linux (fresh) (push) Waiting to run
citra-build / macos (arm64) (push) Waiting to run
citra-build / macos (x86_64) (push) Waiting to run
citra-build / macos-universal (push) Blocked by required conditions
citra-build / windows (msvc) (push) Waiting to run
citra-build / windows (msys2) (push) Waiting to run
citra-build / android (push) Waiting to run
citra-format / clang-format (push) Waiting to run
citra-transifex / transifex (push) Waiting to run
2025-11-29 14:43:24 +00:00
OpenSauce04
4574b91561 Move VSync setting key from use_vsync_new to use_vsync
Some checks are pending
citra-build / source (push) Waiting to run
citra-build / linux (appimage) (push) Waiting to run
citra-build / linux (fresh) (push) Waiting to run
citra-build / macos (arm64) (push) Waiting to run
citra-build / macos (x86_64) (push) Waiting to run
citra-build / macos-universal (push) Blocked by required conditions
citra-build / windows (msvc) (push) Waiting to run
citra-build / windows (msys2) (push) Waiting to run
citra-build / android (push) Waiting to run
citra-format / clang-format (push) Waiting to run
citra-transifex / transifex (push) Waiting to run
This resets the VSync setting for all existing user configurations. Note in changelog.
2025-11-29 14:38:32 +00:00
David Griswold
04b6c69083 Default VSync to false on Android
Co-authored-by: OpenSauce04 <opensauce04@gmail.com>
2025-11-29 14:37:30 +00:00
OpenSauce04
375c8c1910 video_core: Fixed occasional launch crash on certain platforms due to unsafe SDL_Init
Some checks failed
citra-build / source (push) Has been cancelled
citra-build / linux (appimage) (push) Has been cancelled
citra-build / linux (fresh) (push) Has been cancelled
citra-build / macos (arm64) (push) Has been cancelled
citra-build / macos (x86_64) (push) Has been cancelled
citra-build / windows (msvc) (push) Has been cancelled
citra-build / windows (msys2) (push) Has been cancelled
citra-build / android (push) Has been cancelled
citra-format / clang-format (push) Has been cancelled
citra-transifex / transifex (push) Has been cancelled
citra-build / macos-universal (push) Has been cancelled
2025-11-27 14:27:10 +00:00
OpenSauce
67f6735f02
qt: Add game launch stress test functionality behind new ENABLE_DEVELOPER_OPTIONS CMake option (#1442)
Some checks failed
citra-build / source (push) Has been cancelled
citra-build / linux (appimage) (push) Has been cancelled
citra-build / linux (fresh) (push) Has been cancelled
citra-build / macos (arm64) (push) Has been cancelled
citra-build / macos (x86_64) (push) Has been cancelled
citra-build / windows (msvc) (push) Has been cancelled
citra-build / windows (msys2) (push) Has been cancelled
citra-build / android (push) Has been cancelled
citra-format / clang-format (push) Has been cancelled
citra-transifex / transifex (push) Has been cancelled
citra-build / macos-universal (push) Has been cancelled
* qt: Implemented game launch stress test

* qt: Hide stress test behind ENABLE_DEVELOPER_OPTIONS CMake option
2025-10-21 16:29:15 +01:00
OpenSauce04
1f483e1d33 cmake: Fixed build issues on *nix introduced by Qt 6.10.0 2025-10-21 14:45:40 +00:00
OpenSauce04
068fec0d5f ci: Updated ARM64 and universal macOS runners to macOS 26 Tahoe
Some checks failed
citra-build / source (push) Has been cancelled
citra-build / linux (appimage) (push) Has been cancelled
citra-build / linux (fresh) (push) Has been cancelled
citra-build / macos (arm64) (push) Has been cancelled
citra-build / macos (x86_64) (push) Has been cancelled
citra-build / windows (msvc) (push) Has been cancelled
citra-build / windows (msys2) (push) Has been cancelled
citra-build / android (push) Has been cancelled
citra-format / clang-format (push) Has been cancelled
citra-transifex / transifex (push) Has been cancelled
citra-build / macos-universal (push) Has been cancelled
2025-10-03 17:35:02 +00:00
David Griswold
f309d4881a android: Add Display Listener methods for smoother secondary display updates 2025-10-03 17:04:57 +00:00
OpenSauce04
80ba2058a9 externals: Updated fmt to 12.0.0
This fixes a build failure with Clang 21
2025-10-03 16:28:01 +01:00
huesos_96
3716f6b9b6
Android: Dual screen fixes for Handhelds that have 2 screens like Ayaneo Pocket DS (#1341)
* Prevent SecondaryDisplay from stealing focus

The SecondaryDisplay Activity was stealing focus from the main
Activity when it was launched.

Set the `FLAG_NOT_FOCUSABLE` and `FLAG_NOT_TOUCH_MODAL` window flags
to prevent the SecondaryDisplay from gaining focus.

* Implement touch controls for secondary display

This commit introduces touch input handling for the secondary display.

The following changes were made:
- Added `onSecondaryTouchEvent` and `onSecondaryTouchMoved` to `NativeLibrary.kt` and `native.cpp` to process touch events on the secondary display.
- Implemented `onTouchListener` in `SecondaryDisplay.kt` to capture touch events and forward them to the native layer.
- Handles `ACTION_DOWN`, `ACTION_POINTER_DOWN`, `ACTION_MOVE`, `ACTION_UP`, `ACTION_POINTER_UP`, and `ACTION_CANCEL` motion events.
- Tracks the active pointer to ensure correct touch event handling.

* Refactor display logic for multi-display support

This commit introduces a `DisplayHelper` class to centralize display-related logic, particularly for handling scenarios where the application might be launched on an external display.

Key changes:
- Added `DisplayHelper.kt` to manage internal and external display identification based on launch conditions.
- `MainActivity` and `EmulationActivity` now use `DisplayHelper.checkLaunchDisplay()` to determine the initial display.
- `SecondaryDisplay` now uses `DisplayHelper.getExternalDisplay()` to correctly identify the target display for the secondary presentation.
- `InputOverlay` now queries `DisplayHelper.isBottomOnPrimary()` to determine if touch input should be processed for the primary display based on the current screen layout.
- `SecondaryDisplay` now queries `DisplayHelper.isBottomOnSecondary()` to conditionally pass touch events to the native layer based on which screen (primary or secondary) is currently displaying the 3DS bottom screen.

These changes ensure that the application behaves correctly when launched on either the internal or an external display, and that touch input is routed appropriately based on the user's chosen screen layout for the dual screens.

* Removed primary-screen checks so the input overlay always forwards touch events, ensuring all touches reach the native handler even when multiple displays are active

* Remove DisplayHelper class and adjust external display logic

* Formatting adjustments

---------

Co-authored-by: DavidRGriswold <novachild@gmail.com>
Co-authored-by: OpenSauce04 <opensauce04@gmail.com>
2025-10-03 14:45:49 +01:00
OpenSauce04
3af2cd1227 ci: Update all macOS runners to macOS 15 Sequoia 2025-10-03 14:17:27 +01:00