10649 Commits

Author SHA1 Message Date
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
lannoene
0be78e9550
Improve DLP and multiplayer compatability (#1375)
* Added NWM spectator mode (DLP now partially working), fixed debug assert, added applet utility cmd fallback

* Reverted AppletUtility command change

* Fixed inconsistent mac address

* Enabled DLP Child authorization

* Added the DLP module to recommended online modules

* Clean up

* Changed the returned number of words on GetProgramInfoFromCia to 7 insteead of 8, futher reverted AppletUtility function to match its original form
2025-09-20 19:59:54 +02:00
OpenSauce04
eb1197a65c cmake: Remove SYSTEM from target_link_libraries 2025-09-16 16:05:38 +01:00
OpenSauce04
a674eb8367 vk_pipeline_cache: Fix directory creation failure if shaders/vulkan/ is missing 2025-09-13 01:19:52 +01:00
OpenSauce04
118d124852 tools: Added Github cache purge script 2025-09-13 01:19:19 +01:00
OpenSauce04
34d46528eb Bump minimum Android version to Android 10 2025-09-11 01:08:32 +01:00
OpenSauce04
72c924a456 android: Rename performance overlay setting keys, strings and enums for clarity 2025-09-10 22:49:46 +01:00
OpenSauce04
f27490aeab android: Mark performance overlay toggle in settings as non-runtime-editable 2025-09-10 22:49:46 +01:00
OpenSauce04
ed451a72d9 android: Reimplemented performance overlay setting as a regular BooleanSetting 2025-09-10 22:49:46 +01:00
OpenSauce04
5c89977605 android: Removed hardcoded setting keys and default values for perf overlay 2025-09-10 22:49:46 +01:00
Briar
deda004227 renderer_opengl.cpp: Remove isPortrait check for second screen opacity 2025-09-10 18:43:44 +01:00
Briar
64f5277789 renderer_vulkan: Add second screen opacity support
& Update bottom screen opacity label in UI
2025-09-10 18:43:44 +01:00
marsia
5c5b1cdf45 android: Implement Hide All 3DS Images from Android setting
Co-Authored-By: Reg Tiangha <rtiangha@users.noreply.github.com>
Co-authored-by: OpenSauce04 <opensauce04@gmail.com>
2025-09-10 18:28:37 +01:00
marsia
750286ae97 android: Add second screen opacity option
Co-authored-by: Reg Tiangha <rtiangha@users.noreply.github.com>
Co-authored-by: OpenSauce04 <opensauce04@gmail.com>
2025-09-10 18:22:55 +01:00
Reg Tiangha
f35091eeb4 android: Implement Background Color settings UI
Co-authored-by: OpenSauce04 <opensauce04@gmail.com>
2025-09-10 18:22:38 +01:00
OpenSauce04
8cd3bcc0e3 Updated compatibility list 2025-09-05 22:13:02 +01:00
OpenSauce04
e200bcbcbc tools: Updated guidance regarding translation updates 2025-09-05 21:56:02 +01:00
David Griswold
a2e6891f01 android: Re-fixed game termination bug (#1357)
* EmulationActivity and EmulationFragment clear only their own hooks

* EmulationLifecycleUtil: Rename `remove()` to `removeHook()`

* EmulationLifecycleUtil: Removed unused function `clear()`

* Corrected somewhat incorrect usage of the word "hook"

* Define `onShutdown` and `onPause` hook functions in constructors

* Formatting nitpicks

* Updated license header

* Re-added log messages for attempting to add duplicate hooks

---------

Co-authored-by: OpenSauce04 <opensauce04@gmail.com>
2025-09-05 21:36:01 +01:00
OpenSauce04
e0078b2407 Revert "Fix android termination bug (#1354)"
This reverts commit 70f9379eefc84b7651e3aababcce33987e073ed0.
2025-09-05 21:33:32 +01:00
OpenSauce04
1830290e55 SecondaryDisplay.kt: Remove redundant SurfaceTexture, preventing log spam 2025-09-05 16:44:48 +00:00
David Griswold
70f9379eef
Fix android termination bug (#1354)
* move hook additions to onCreateView

* Updated license header

* Formatting nitpick

* Added prefix to log messages

---------

Co-authored-by: OpenSauce04 <opensauce04@gmail.com>
2025-09-04 22:35:10 +01:00
OpenSauce04
b63d7841dd macos: Set UIDesignRequiresCompatibility to true 2025-09-03 23:02:08 +01:00
OpenSauce04
944cb7ab51 android: Bump Vulkan Validation Layers to SDK 1.4.313.0 2025-09-03 22:31:01 +01:00
DavidRGriswold
e5c3a0eef7 android: Prevent crash when editing a slider option with an out of bounds value
Co-authored-by: OpenSauce04 <opensauce04@gmail.com>
2025-09-03 13:16:55 +01:00
OpenSauce04
16b8a78571 macos: Patch QMetalLayer.setNeedsDisplayInRect at runtime to avoid freezing on recent Qt 2025-09-03 03:15:14 +01:00
OpenSauce04
bf03cac9e1 cmake: On Windows, download MSVC 2022 Qt versions instead of MSVC 2019 2025-09-03 03:15:14 +01:00
OpenSauce04
b6be443069 cmake: Bump downloaded Qt version to 6.9.2
Also bumps aqtinstall to 3.3.0
2025-09-03 03:15:14 +01:00
OpenSauce04
10f6e1f6f7 cmake: Added check for minimum AppleClang version 2025-09-02 14:05:51 +01:00
RedBlackAka
6483b33ee1
Improve consistency of capitalization and colon usage in UI (#1306)
* frontend: Improve consistency of capitalization and : usage in UI

* Additional adjustments

* Further adjustments

---------

Co-authored-by: OpenSauce04 <opensauce04@gmail.com>
2025-09-01 01:43:54 +01:00
OpenSauce04
485db276e3 cmake: Corrected widespread incorrect usage of the SYSTEM property 2025-09-01 00:42:08 +01:00
OpenSauce04
20d577f9e3 Updated translations via Transifex 2025-08-20 13:58:33 +01:00
PabloMK7
48db1c1de5
am: fix save data being deleted on CIA install failure (#1319) 2025-08-20 14:48:34 +02:00
OpenSauce04
219b8dca2e Updated language translations via Transifex 2025-08-15 20:38:25 +01:00
OpenSauce
8fe05d5b74
ci: Don't cancel other builds in matrix if one fails 2025-08-11 12:33:52 +01:00
OpenSauce04
d79078c2d8 Updated language translations via Transifex 2123-rc2 2025-08-11 12:04:03 +01:00
OpenSauce04
ff915b2fe1 Updated compatibility list 2025-08-11 12:02:01 +01:00
OpenSauce04
2f6e8b5756 android: Reimplement multitouch code correctly 2025-08-11 11:50:30 +01:00
OpenSauce04
a964e63722 Revert "android: Gross disgusting awful workaround for #1267"
This reverts commit 106e994dbf31bfae503551326a1a4b0c48647fab.
2025-08-11 11:50:30 +01:00
OpenSauce04
2087f96e90 qt: Prerelease builds now direct users to upgrade via GitHub rather than azahar-emu.org 2025-08-10 22:22:47 +01:00
OpenSauce04
68aab3e0e5 android: Fixed UI perf regression w/ OpenGL introduced by #617 2025-08-10 20:15:04 +01:00
OpenSauce04
c86830313e Updated language translations via Transifex 2123-rc1 2025-08-08 23:19:15 +01:00
OpenSauce04
e3bfe497f2 Updated compatibility list 2025-08-08 22:58:41 +01:00
PabloMK7
dc2ab096cb loader: Fix compressed 3dsx icon reading 2025-08-08 22:46:17 +01:00
PabloMK7
4bf9161bcd android: Fix 3dsx listing 2025-08-08 22:46:17 +01:00
David Griswold
aca8b45664
android: Implement secondary display support (#617)
* Enable the SecondScreenPresentation class

* Update everything to enable second screen on android under GL and Vulkan. Still some issues!

* Some attempts to enable surface changes

* OpenGL is working on surface change, vulkan still no

* release surfaces (also fixed vulkan?)

* added and enabled layout setting

* resolve merge conflict

* rearrange switch cases to satisfy linux compiler

* openGL is working!

* several vk changes to try to fix crashes

* maybe vulkan is working?

* removing unnecessary code attempts

* Simplified secondscreen for better performance

* vk_platform.cpp: Fixed build failure caused by bad rebase

* vk_present_window.h: Removed stray newline

* Applied clang-format

* bug fix for odin 2

* Applied clang-format

* Updated license headers

* Moved SecondScreen class to org.citra.citra_emu.display

* Various formatting and readability improvements

* Added brackets where previously absent for readability

* Additional readability improvement

* RendererVulkan::NotifySurfaceChanged: Simplified condition checking

* change all references to "secondary screen" to "secondary display" to limit confusion with top screen / bottom screen

* rename main_window to main_present_window and second_window to secondary_present_window

* Reverted accidentally downgraded compatibility list submodule

* Removed unnecessary log message

* Applied clang-format

* Added a description to the Secondary Display Screen Layout setting

* Added `_ptr` suffix to `secondary_present_window`

This distinguishes it as a pointer, as `main_present_window` isn't a pointer, so there could be confusion on whether to use `.` or `->`

---------

Co-authored-by: OpenSauce04 <opensauce04@gmail.com>
2025-08-08 21:41:52 +01:00
OpenSauce04
2697526f34 android: Fixed new compressed format extensions not being handled correctly 2025-08-08 19:16:14 +01:00
Alex
e5838edf9f
MacOS: fix(network): fixes ArticBase UDP buffer handling on macOS (#1263)
* MacOS: fix(network): fixes ArticBase UDP buffer handling on macOS

- Set minimum 8KB UDP receive buffer size on macOS for reliable operation
- Add platform-specific buffer size handling with conditional compilation
- Enhance error logging with errno details and buffer size verification
- Maintain backward compatibility with existing buffer sizes on other platforms

Fixes ArticBase controller input reliability issues on macOS by ensuring
adequate UDP buffer capacity for real-time controller data transmission.

* Remove redundant log

---------

Co-authored-by: Alex Molina <alexmolina@MacBook-Air-de-Alex.local>
Co-authored-by: PabloMK7 <hackyglitch2@gmail.com>
2025-08-07 21:16:15 +02:00