2539 Commits
Author SHA1 Message Date
iChris4 6575095298 Updated Quest Settings 2026-07-28 15:59:44 +02:00
iChris4 095656b05b Added one-time Quest controller prompt 2026-07-22 17:08:20 +02:00
iChris4 f4c435dc3b Fixed "Configure in VR" on Quest 2026-07-22 14:57:59 +02:00
iChris4 1793f16d6d Removed Element Depth 2026-07-22 02:52:37 +02:00
iChris4 5f651538d3 Removed depreciated Auto Layer and Layer Offset 2026-07-21 21:01:36 +02:00
iChris4 e7662f3c8b Removed "LockHeadPosePerFrame " and "AutoImmediateXFB "in VR Hacks 2026-07-21 17:06:40 +02:00
iChris4 7ba102775f Added "Configure in VR" to the GameCube bindings 2026-07-21 15:12:49 +02:00
iChris4 d94a5a0cfe Updated "Configure in VR" Wii Remote OpenXR controller bindings 2026-07-20 02:53:55 +02:00
iChris4 3bfa9ad3ec Improved passthrough & Added XRPacingThread 2026-07-12 01:32:52 +02:00
iChris4 490695d83f Added foveated rendering 2026-07-11 04:16:02 +02:00
iChris4 1db9a150c7 Added Quest Passthrough 2026-07-10 00:03:19 +02:00
iChris4 d9565464a9 Added 2D "cinema" mode 2026-07-07 05:37:17 +02:00
iChris4 bc7a7dbe67 Updated Passthrough Mode 2026-07-07 04:11:24 +02:00
iChris4 44e1fef3ad Added Quest Detect Skybox Setting 2026-07-02 17:05:00 +02:00
iChris4 fc43c99159 Added Texture Element Overrides for Quest 2026-07-02 16:39:03 +02:00
iChris4andClaude Sonnet 4.6 dc45c33318 Android: Return-to-Main-Menu hotkey & filter functional hotkeys
Replaces the hard-coded OpenXR menu long-press shutdown with a
proper rebindable hotkey (HK_ANDROID_RETURN_TO_MAIN_MENU, HKGP_ANDROID
group), defaulting to a 3-second hold of the left controller's Menu
button. The hold threshold lives in HotkeyDispatcher to keep the input
side authoritative.

The Android settings UI now hides hotkey groups and individual controls
that have no dispatcher wiring, so users can't bind actions that would
silently no-op at runtime. Adds a Control.getName() JNI getter for
identifying functional controls by their untranslated C++ name.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-10 17:39:29 +02:00
iChris4andClaude Sonnet 4.6 6442017d78 Add VR Forced VBI Frequency setting (Auto/72/90/120 Hz)
Replaces the boolean "Force VBI to 90 Hz" override with an explicit
choice across Off / Auto / 72 / 90 / 120 Hz. Auto samples the headset
refresh rate at OpenXR session startup (via XR_FB_display_refresh_rate)
and rounds to the closest supported value. Migrates the legacy
AutoVBIFromHMD setting on first load. Per-game profile editor and the
HK_VR_TOGGLE_FORCE_VBI hotkey are updated to cycle Off <-> Auto.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-10 17:36:55 +02:00
iChris4andClaude Sonnet 4.6 99a86bdda7 Android: add input bindings, hotkey dispatcher & OpenXR Wii Remote profile
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-07 01:17:24 +02:00
iChris4 5ee1008ed5 Quest Performance Toggle & Controller Profiles 2026-05-05 16:01:31 +02:00
iChris4 49ad800936 Added Default GamesettingsVR 2026-05-03 14:43:33 +02:00
iChris4 c80961c437 Quest Vulkan Multiview fixes & Performances 2026-05-02 15:58:54 +02:00
iChris4 108e0728bb Quest Settings 2026-04-25 00:25:02 +02:00
iChris4 adaeeaf3d4 Fix for Vulkan 2026-04-24 16:15:01 +02:00
iChris4 2929ead841 Initial Support for Quest 2026-04-24 13:40:27 +02:00
JosJuice 051133787e Android: Add Triforce Baseboard
This lets users select Triforce Baseboard for SI and SP1. Limitations:

* The test, service and coin buttons can be bound to gamepads and other
  physical inputs, but aren't available in the touch input overlay.
* The IP redirections are exposed to the user as a raw string rather than
  a table like in DolphinQt.
2026-02-15 23:13:18 -06:00
JMC47 e387fa3732 Merge pull request #14385 from dreamsyntax/cpu-clock-max
Qt/Android: CPU Clock Override max to 500%
2026-02-15 03:38:23 -05:00
Dentomologist b398dc38e0 Merge pull request #12917 from JosJuice/transfer-sysconf-control
Explicitly transfer control of SYSCONF to emulated system
2026-02-14 11:35:59 -08:00
JosJuice 5440c7737f Explicitly transfer control of SYSCONF to emulated system
The functions SaveToSYSCONF and LoadFromSYSCONF contain checks for
whether emulation is running. The intent of this is that when we're
emulating a Wii, the emulated system may write to SYSCONF whenever it
likes and does not expect anything else to write to SYSCONF, so the
host code shouldn't access SYSCONF while emulation is ongoing. However,
Core::IsRunning is an imperfect proxy for whether we've handed over
control of SYSCONF to the emulated system yet, as the actual handover
happens at a slightly different point in time than when the emulation
state is changed. This usually isn't a problem, but in theory it could
be a determinism problem if a setting is changed right as emulation is
starting, or it could cause the emulated software to briefly misbehave
if a setting is changed right as emulation is stopping.

Things got worse in 72cf2bdb87 when I
replaced the Core::IsRunning calls with !Core::IsUninitialized. With
IsRunning, there was be a period of time where SYSCONF should have been
protected but wasn't. With !IsUninitialized, there was a period of time
where SYSCONF shouldn't have been protected but was, and crucially, this
period of time included the moments where we do setup and teardown of
the emulated NAND, which broke transferring SYSCONF settings between the
host and the guest. 72cf2bdb87 was
reverted because of this.

This commit adds a flag that we explicitly flip when control is handed
over to or from the emulated system. This protects the SYSCONF file
for exactly as long as is needed.
2026-02-14 10:05:27 +01:00
dreamsyntax e1e1485582 Qt/Android: CPU Clock Override max to 500% 2026-02-12 18:39:05 -07:00
JosJuice bd92388d2f Android: Rework input device hotplug
Previously, when an input device was connected or disconnected, we would
recreate all devices. This commit makes it so we only touch the relevant
device instead. This matters because recreating a device causes us to
drop all held buttons for that device. Due to Android only delivering
inputs as events, we're unable to poll for currently held buttons when
recreating a device.

This recently became a problem for users of Ayn devices due to a
firmware update. Every now and then, something about the display
viewports changes, triggering an update to an input device that I assume
is a touch input device. This input device isn't something users
normally map in Dolphin's controller settings, but it changing was
causing Dolphin to drop all held buttons for the device's built-in
gamepad as well as any other connected gamepads.
2026-02-08 10:38:43 +01:00
Jordan Woyak dd2b94cd4a Merge pull request #13594 from jordan-woyak/state-cleanups
State: Simplify interthread communication and general cleanups.
2026-02-03 16:50:52 -06:00
Sam Belliveau 51c8f18b73 feat: Add an option to preserve audio pitch when emulation speed changes, integrating it into core configuration and both Qt and Android UIs. 2026-01-27 18:48:22 -05:00
Sintendo 60ca0626df Remove VectorToJStringArray 2026-01-24 16:50:10 +01:00
Sintendo f2e1c71803 Common/FileSearch: Refactor DoFileSearch 2026-01-24 16:50:10 +01:00
Jordan Woyak 2322437f96 State: Simplify interthread communication and cleanups. Save/Load calls are now always non-blocking for the caller, but appropriately block the CPU thread as needed. 2026-01-19 21:56:59 -06:00
JosJuice 0ba32f7add Android: Detect when native code should flush unsaved data 2026-01-19 21:56:09 -06:00
iwubcode b556bd99d7 Merge pull request #14268 from JoshuaVandaele/std-tounderlying
c++23: Replace Common::ToUnderlying with std::to_underlying
2026-01-17 16:49:57 -06:00
JosJuice 4c7cb2622f Merge pull request #14246 from LeddaZ/android-gitignore
Android: Add build output folders to gitignore
2026-01-14 18:54:16 +01:00
JosJuice 01b4f8bcf7 Merge pull request #14245 from LeddaZ/android-materialyou-fix
Android: Switch to Theme.Material3.DynamicColors
2026-01-14 18:54:05 +01:00
Joshua Vandaële 55f0715ad4 c++23: Replace Common::ToUnderlying with std::to_underlying
Requires at least GCC 11, Clang 13, MSVC 19.30 (VS2022 17.0), or AppleClang 13.1.6 (XCode 13.3).
2026-01-09 23:49:10 +01:00
Leonardo Ledda 87345d5eda Android: Add build output folders to gitignore
Signed-off-by: Leonardo Ledda <leonardoledda@gmail.com>
2026-01-01 14:23:40 +01:00
Leonardo Ledda 593c9f3836 Android: Switch to Theme.Material3.DynamicColors
* This fixes some UI elements (3-dot menu background, status bar when scrolling down in settings) not following Material You colors.
* It doesn't cause any issues on Android versions without dynamic colors (tested on Android 9, 11, 16)

Signed-off-by: Leonardo Ledda <leonardoledda@gmail.com>
2026-01-01 14:11:37 +01:00
Leonardo Ledda af0d03b399 Android: Use compilerOptions block to specify JVM version
* Fixes deprecation warning

Signed-off-by: Leonardo Ledda <leonardoledda@gmail.com>
2026-01-01 13:43:38 +01:00
JMC47 8aabaf8b63 Merge pull request #14155 from Simonx22/android/remove-completable-future
Android: Remove CompletableFuture
2025-12-22 13:34:58 -05:00
JMC47 289814d0a8 Merge pull request #14144 from Simonx22/android/log-kotlin
Android: Convert Log to Kotlin
2025-12-22 13:32:08 -05:00
JMC47 f565c5450f Merge pull request #14141 from Simonx22/android/controllerinterface-handlerthread
Android: Use Android's HandlerThread in ControllerInterface instead of our own implementation
2025-12-22 13:30:47 -05:00
JosJuice fa2a9e72f9 Merge pull request #14159 from JosJuice/android-retroachievements-login-gone
Android: Tweak dialog_login.xml layout
2025-11-25 20:52:29 +01:00
JosJuice 79d74a3df1 Android: Add LeaderboardTrackerEnabled and ChallengeIndicatorsEnabled
This is an Android port of 7ed61c50a1. It looks like we don't have
descriptions for any of the RetroAchievements settings in the Android
GUI, so I haven't added descriptions for these two new settings either.
2025-11-23 11:17:16 +01:00
JosJuice 604e7fe833 Android: Use same margin above login text as below
This makes the login dialog look more balanced when "Logging In" or
"Login Failed" is visible.
2025-11-23 11:05:02 +01:00
JosJuice 738dcf86a6 Android: Remove unnecessary gravity in dialog_login.xml
Android Studio was complaining about these because their directions
didn't match the text alignment, but in this layout they have no effect
anyway.
2025-11-23 11:05:02 +01:00