Compare commits

..

1021 Commits

Author SHA1 Message Date
OatmealDome 2614969fa8 ScmRevGen: Bump version to 2512 2025-12-21 22:55:27 -05:00
JosJuice a32779340e Translation resources sync with Transifex 2025-12-20 20:43:44 +01:00
Admiral H. Curtiss b758b390d4 Merge pull request #14210 from cscd98/ulong-compile
MainWindow: Fix sscanf type/width specifiers for DWORD
2025-12-19 18:01:33 +01:00
JMC47 e60f39c323 Merge pull request #14202 from jordan-woyak/sdl-gcadapter-hint
ControllerInterface: Turn off SDL's GameCube controller adapter handling when Dolphin is configured to use the adapter.
2025-12-17 05:18:37 -05:00
Jordan Woyak ed2fe134aa Merge pull request #14219 from Sintendo/stringutils-drop-tabs2spaces
StringUtils: Drop TabsToSpaces
2025-12-15 14:59:20 -06:00
Jordan Woyak 206e1bae66 Merge pull request #14220 from Anarky/master
GameSettings: Enable MMU for Vexx (PAL)
2025-12-15 14:56:11 -06:00
Anarky bd9d865f80 GameSettings: Enable MMU for Vexx (PAL)
Without it, the game crashes after completing the tutorial level.
2025-12-15 20:05:02 +01:00
Sintendo 558cee8dcf StringUtils: Drop TabsToSpaces
This function is unused.
2025-12-15 13:41:54 +01:00
Jordan Woyak 04f71e5e6d Merge pull request #14211 from cscd98/enumerate-radios
mingw: fix usage of std::invocable with EnumerateRadios
2025-12-12 17:21:51 -06:00
Craig Carnell eded73fe8b mingw: fix use of std::invocable with EnumerateRadios 2025-12-12 09:33:10 +00:00
Craig Carnell 7e9f291222 MainWindow: Fix sscanf type/width specifiers for DWORD 2025-12-11 19:36:09 +00:00
JMC47 75bc9a474e Merge pull request #14197 from JosJuice/jit64-store-clobber-imm
Jit64: Explicitly get imm for clobbered stores
2025-12-10 02:42:12 -05:00
Jordan Woyak 21eb43c16e ControllerInterface: Turn off SDL's GameCube controller adapter handling when Dolphin is configured to use the adapter. 2025-12-09 16:51:41 -06:00
JosJuice fca27c375a Jit64: Explicitly get imm for clobbered stores
If we're on an x64 CPU that doesn't have the MOVBE extension, trying to
SwapAndStore a host register results in that register's value getting
clobbered with the swapped value. Jit64::stX and Jit64::stXx detect this
case, and if necessary, emit a MOV to a register that's fine to clobber.

This logic was broken by the merge of PR 12134. Jit64::stX and
Jit64::stXx were assuming that if RegCache::IsImm returns true for a
guest register, calling RegCache::Use or RegCache::BindOrImm for that
guest register would result in an immediate. However, PR 12134 made it
possible for a guest register to have both a host register and an
immediate in the register cache at the same time. When this happens,
RegCache::IsImm returns true, yet RegCache::Use and RegCache::BindForImm
return an RCOpArg whose Location returns a host register. (To make it
extra confusing, RCOpArg::IsImm calls RegCache::IsImm if the RCOpArg
came from RegCache, so RCOpArg::IsImm returns true!)

To fix this, in cases where Jit64::stX and Jit64::stXx explicitly need
an immediate to avoid having to emit an extra MOV, let's call
RegCache::Imm32 so that we're certain that we're getting an immediate.

This fixes an issue on older x64 CPUs that manifested as e.g. completely
broken graphics in Spyro: Enter the Dragonfly.
2025-12-08 23:19:10 +01:00
JosJuice 213dc1c9af Merge pull request #14178 from Dentomologist/jit64_avoid_passing_immediate_to_non_immediate_parameter
Jit64: Avoid passing immediate to non-immediate parameter
2025-12-01 20:01:52 +01:00
JosJuice efa8439b79 Merge pull request #14186 from JoshuaVandaele/dit-crash-fix
DITConfiguration: Prevent a crash if images fail to load
2025-12-01 20:00:19 +01:00
JosJuice 582d5cfe96 Merge pull request #14188 from JosJuice/jit64-flush-carry
Jit64: Flush carry flag in FallBackToInterpreter
2025-12-01 19:58:38 +01:00
JosJuice f842af8b03 Merge pull request #14182 from jordan-woyak/ra-hardcore-warning-size
DolphinQt: Use QtUtils::CreateIconWarning to make the RetroAchievements warning size consistent with other warnings.
2025-11-30 23:25:12 +01:00
JosJuice e27ec97b15 Merge pull request #14180 from jordan-woyak/mgba-link-fix
GBACore: Fix Pokemon GBA link.
2025-11-30 18:26:18 +01:00
Joshua Vandaële 5a6dc310c0 DITConfiguration: Prevent a crash if images fail to load
Recently came across a strange issue where Dolphin would hard crash in most games with this error:

```sh
/usr/include/c++/15.2.1/optional:1165: constexpr const _Tp* std::optional<_Tp>::operator->() const [with _Tp = InputCommon::ImagePixelData]: Assertion 'this->_M_is_engaged()' failed.
```

The culprit turned out to be accessing `host_key_image` which is an `std::optional` thay may return `std::nullopt`. I'm not sure why this issue started occuring for me since I've had no issue with my Dynamic Input Textures in the past? But this fixes a crash if the image fails to load.
2025-11-29 23:54:48 +01:00
Jordan Woyak 0c0cbbf572 Merge pull request #14181 from jordan-woyak/frogger-shadow-vertex-rounding
GameSettings: Enable VertexRounding in Frogger: Ancient Shadow.
2025-11-29 16:23:54 -06:00
Jordan Woyak 59d5e25f5f Merge pull request #14190 from Dentomologist/directiofile_dont_request_delete_access_for_read_only_open
Windows/DirectIOFile: Don't request DELETE access for read-only Open
2025-11-29 16:23:31 -06:00
Dentomologist 448d61f262 Windows/DirectIOFile: Don't request DELETE access for read-only Open
Aside from being unnecessary, on Windows the flag prevents two instances
of Dolphin (one instance from before 2509-371 when the flag was
introduced and the other after) from running the same ROM
simultaneously.

Attempting to do so generated the false error `"[Rom]" is an invalid
GCM/ISO file, or is not a GC/Wii ISO.` followed by `Failed to init core`
and emulation shutdown on the second instance to start the game. Fixing
the incorrect error message is a task I'm deferring to another PR.

The problem didn't happen when both instances were 2509-371 or later,
but I ran into it while bisecting an issue and it'd be nice to avoid
that problem in the future.
2025-11-29 14:02:24 -08:00
JosJuice 0c024de591 Jit64: Flush carry flag in FallBackToInterpreter
We have an optimization where the guest carry flag is kept in the host
carry flag between certain back-to-back pairs of integer instructions.
If the second instruction falls back to the interpreter, then
FallBackToInterpreter should flush the carry flag to m_ppc_state,
otherwise the interpreter reads a stale carry flag and at some later
point Jit64 trips the "Attempt to modify flags while flags locked!"
assertion.

An alternative solution would be to not store the guest carry flag in
the host carry flag to begin with if we know the next instruction is
going to fall back to the interpreter, but knowing that in advance is
non-trivial. Since interpreter fallbacks aren't exactly intended to be
super optimized, I went for the flushing solution instead, which is how
JitArm64 already works. In most cases, the emitted code shouldn't even
differ between these two solutions.

Note that the problematic situation only happens if the first integer
instruction doesn't fall back to the interpreter but the second one
does. This used to be impossible because there's no "JIT disable"
setting that's granular enough to disable some integer instructions but
not all, but with the constant propagation PR, it's possible if constant
propagation is able to entirely evaluate the first instruction but not
the second.
2025-11-29 11:45:43 +01:00
Jordan Woyak 936415de4a GameSettings: Enable VertexRounding in Frogger: Ancient Shadow to fix graphical artifacts. 2025-11-27 14:32:08 -06:00
Jordan Woyak e8c512dfb5 Merge pull request #14183 from LillyJadeKatrin/retroachievements-eternal-darkness-testing-my-sanity
RetroAchievements - Remove Hardcore Check from ApplyMemoryPatch
2025-11-27 14:30:39 -06:00
JosJuice 2e0b91c627 Merge pull request #14177 from JoshuaVandaele/retro-tests-off
Disable PatchAllowlistTest if USE_RETRO_ACHIEVEMENTS is OFF
2025-11-27 19:58:22 +01:00
JosJuice 27ec54eaaf Merge pull request #14179 from Tilka/ax_lpf
AX: fix low-pass filter edge case
2025-11-27 19:37:47 +01:00
LillyJadeKatrin fd0b875ab5 RetroAchievements - Remove Hardcore Check from ApplyMemoryPatch
This was blocking all memory patches from executing properly in hardcore mode even when contained in the Allowlist.
2025-11-27 11:52:56 -05:00
Jordan Woyak 70d4bb970c DolphinQt: Use QtUtils::CreateIconWarning to make the RetroAchievements "hardcore mode" warning size consistent with the other warnings. 2025-11-27 01:43:50 -06:00
Jordan Woyak 19a1ee3064 GBACore: Fix Pokemon GBA link. 2025-11-26 23:12:20 -06:00
Dentomologist c2d277c5d1 Jit64: Avoid passing immediate to non-immediate parameter
Call `UseNoImm` instead of `Use` on parameter `a` of `MultiplyImmediate`
since `Ra` gets passed to `IMUL` which asserts that parameter is not an
immediate.
2025-11-26 16:27:26 -08:00
Joshua Vandaële deeb6f160c Disable PatchAllowlistTest if USE_RETRO_ACHIEVEMENTS is OFF
This fixes a build error when `-DENABLE_TESTS=ON` and `-DUSE_RETRO_ACHIEVEMENTS=OFF` are both set together, since AchievementManager is also behind an ifdef.
2025-11-27 01:26:51 +01:00
Tillmann Karras 1380555116 Revert "GameSettings: Force DSP LLE in NFL Blitz Pro to avoid terrible sounding audio."
This reverts commit b7f3d96df4.
2025-11-27 00:08:37 +00:00
Tillmann Karras 07ef12eecc AX: fix signedness of second low-pass filter coefficient
This fixes NFL Blitz Pro.
2025-11-27 00:08:11 +00:00
JMC47 df3c68bcf7 Merge pull request #14171 from jordan-woyak/nfl-blitz-pro-force-dsp-lle
GameSettings: Force DSP LLE in NFL Blitz Pro to avoid terrible sounding audio.
2025-11-26 18:06:23 -05:00
Jordan Woyak b7f3d96df4 GameSettings: Force DSP LLE in NFL Blitz Pro to avoid terrible sounding audio. 2025-11-26 16:01:56 -06:00
JosJuice 887c68eed4 Translation resources sync with Transifex 2025-11-26 20:51:23 +01:00
Jordan Woyak c935f712e7 Merge pull request #14164 from jordan-woyak/xmen-legends-no-immxfb
GameSettings: Force ImmediateXFBEnable off in X-Men Legends.
2025-11-25 22:53:36 -06:00
Jordan Woyak 83b2258b0b Merge pull request #14167 from JosJuice/game-inis-2025-11-24
GameSettings: Use three-character INIs for newly added settings
2025-11-25 22:48:53 -06:00
Jordan Woyak 63372b8dea Merge pull request #14169 from JosJuice/i18n-2025-11-25
DolphinQt: Adjust capitalization of "Select A Bluetooth Device"
2025-11-25 16:47:48 -06:00
JosJuice 807488caf9 Merge pull request #14066 from Biendeo/master
IOS: Logitech USB Microphone Basic Support
2025-11-25 23:12:39 +01:00
JosJuice ab0601b06a DolphinQt: Adjust capitalization of "Select A Bluetooth Device" 2025-11-25 21:17:35 +01: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 3f8de54f65 Merge pull request #14160 from JosJuice/android-retroachievements-more-options
Android: Add LeaderboardTrackerEnabled and ChallengeIndicatorsEnabled
2025-11-25 20:52:20 +01:00
Biendeo 07324ca067 USB: Add emulated Logitech USB Microphone
Co-authored by: supermilkdude67 <w.f.s.jazzfyre@gmail.com>
2025-11-25 10:40:30 +11:00
JosJuice 37194c7b93 GameSettings: Use three-character INIs for newly added settings
This is a follow-up to 0f1ecf41f9. Our policy is to use three-character
game INIs for settings unless a game has multiple releases and the
setting shouldn't be applied to all of them.

SAHE69.ini was simply renamed to SAH.ini. RL6E69.ini was deleted
entirely, because RL6.ini already exists and contains the same setting.
2025-11-24 21:46:29 +01:00
JosJuice 1fa5accf03 Merge pull request #14165 from BSDKaffee/qt-6.10-fix
Fix build for non-Linux with Qt 6.10+
2025-11-24 18:37:23 +01:00
Jason E. Hale 6b3d24b481 Fix build for non-Linux with Qt 6.10+
There was a LINUX check added in b3bdad4, but this should be removed as this change applies to all Qt supported platforms. Simply put, GuiPrivate CMake files were introduced in Qt 6.9 and are now enforced in Qt 6.10 and are not platform-dependent.
2025-11-24 06:53:51 -05:00
Jordan Woyak 6a334f3b47 GameSettings: Force ImmediateXFBEnable off in X-Men Legends. ImmediateXFB causes constant black frame flickering in this game. 2025-11-24 02:18:44 -06:00
Jordan Woyak e195d3bb6e Merge pull request #14125 from JosJuice/local-cpu-thread-job-finished
Core: Make s_cpu_thread_job_finished a local variable
2025-11-23 15:55:28 -06:00
JMC47 7bc68823b3 Merge pull request #14161 from SuperSamus/gameini-misc-updates
GameINI: Misc updates
2025-11-23 13:29:23 -05:00
Martino Fontana 0f1ecf41f9 GameINI: Misc updates
Mostly consisting of disabling dual core on titles with critical issues.
2025-11-23 18:24:41 +01:00
JosJuice 2d9f317f04 Core: Make s_cpu_thread_job_finished a local variable
Having it be static leads to a race condition if two different threads
call RunOnCPUThread with wait_for_completion set to true. (There's
currently nobody calling RunOnCPUThread from anything other than the
host thread, so this hasn't led to any consequences yet.)
2025-11-23 15:17:20 +01:00
JosJuice aeac5f1a58 Merge pull request #14107 from jordan-woyak/mGBA-version-bump
Externals: Update mGBA to latest master.
2025-11-23 14:38:39 +01:00
JosJuice a2d0ad6a64 Merge pull request #14120 from da-pwo/master
Flatpak: Allow access to native discord IPC socket for rich presence
2025-11-23 14:36:05 +01:00
JosJuice 5769fc7372 Merge pull request #14134 from jordan-woyak/mercusys-rtl-firmware
Bluetooth/RealtekFirmwareLoader: Add Mercusys MA530 to list.
2025-11-23 14:29:08 +01:00
JMC47 65f39c076e Merge pull request #14149 from iwubcode/shader_asset_vector_properties
VideoCommon: update ShaderAsset to use a vector of properties
2025-11-23 06:34:45 -05:00
JMC47 be0c852cd6 Merge pull request #14102 from jordan-woyak/driver-sf-speedhack
GameINI: Add patches to limit internal framerate of Driver: San Francisco.
2025-11-23 05:36:30 -05:00
JMC47 a85b104be9 Merge pull request #14156 from jordan-woyak/ztp-allow-imm-xfb
GameSettings: Don't force ImmediateXFBEnable off in Zelda: Twilight Princess.
2025-11-23 05:30:41 -05: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
JosJuice 9ec9b7d6f7 Android: Replace dialog_login.xml's invisible with gone
LoginDialog sets these to gone when a login starts or fails. Whether we
use gone or invisible needs to be consistent between LoginDialog and the
XML file, otherwise we'll blank space that shows up or disappears when
login starts or fails.
2025-11-23 11:03:09 +01:00
JosJuice 84397d19aa Translation resources sync with Transifex 2025-11-23 10:14:20 +01:00
JosJuice 490615c72a Merge pull request #14142 from JosJuice/directiofile-cant-create-saf
Common: Treat DirectIOFile as unable to create SAF files
2025-11-23 09:50:44 +01:00
Jordan Woyak 151d295b2c Merge pull request #14148 from jordan-woyak/hookable-event-add-remove-inside-trigger
HookableEvent: Allow hooks to be added and removed from within a Trigger callback.
2025-11-23 02:20:47 -06:00
JosJuice 30dbcb2f80 Merge pull request #14128 from jordan-woyak/fix-run-on-object-race
DolphinQt/QtUtils: Simplify RunOnObject and eliminate Common::Event race. Introduce Common::OneShotEvent class.
2025-11-22 21:52:17 +01:00
Jordan Woyak 6464ed9e6b Merge pull request #14157 from jordan-woyak/fix-rush-speed-display
CoreTiming: Fix percent speed display when "Rush Frame Presentation" is enabled.
2025-11-22 14:46:00 -06:00
Jordan Woyak d522d2ea2c GameSettings: Don't force ImmediateXFBEnable off in Zelda: Twilight Princess. It was added only to address poor frame pacing which doesn't warrant it being forced off. 2025-11-22 14:41:21 -06:00
JosJuice f4f7424a9f Merge pull request #13583 from LillyJadeKatrin/retroachievements-android
Android Support for RetroAchievements
2025-11-22 17:00:03 +01:00
Jordan Woyak cab8d7ca01 CoreTiming: Fix percent speed display when "Rush Frame Presentation" is enabled. 2025-11-22 05:04:09 -06:00
JMC47 e526c1ffde Merge pull request #14145 from cristian64/exclude_cpp-ipc_installation
Externals: Add cpp-ipc subdirectory with `EXCLUDE_FROM_ALL`.
2025-11-22 04:54:06 -05:00
JMC47 3fd8d072bf Merge pull request #14037 from jordan-woyak/presentation-timing
Add "Rush Frame Presentation" and "Smooth Early Presentation" settings.
2025-11-22 04:49:03 -05:00
JMC47 ccc19aafe0 Merge pull request #14119 from jordan-woyak/si-status-response-length
HW/SI: Fix CMD_STATUS response lengths.
2025-11-22 04:38:12 -05:00
Jordan Woyak 11318e0be5 HookableEvent: Allow hooks to be added and removed from within a Trigger callback. This fixes a deadlock in FIFOFifoRecorder. 2025-11-21 16:58:20 -06:00
Jordan Woyak f38a2bbb0e Merge pull request #14152 from jordan-woyak/perf-sample-window-ui-fix
DolphinQt/OnScreenDisplayPane: Fix minor UI regression.
2025-11-21 15:59:24 -06:00
iwubcode 2c646cec40 VideoCommon: update ShaderAsset to use a vector of properties, this way we ensure the order of these properties match the order of the material 2025-11-21 14:31:10 -06:00
iwubcode 1f083a60c9 VideoCommon: update ShaderAsset to remove requirement of the code name being in the shader source, this just makes it more difficult to iteratively test changes, assume shader devs know what they are doing 2025-11-21 14:29:24 -06:00
Jordan Woyak c9b0e4928a DolphinQt/OnScreenDisplayPane: Swap the positions of "Show Performance Graphs" and "Show Speed Colors". 2025-11-21 01:35:28 -06:00
Jordan Woyak 8efc4086f0 DolphinQt/OnScreenDisplayPane: Rename "Graph Update Rate" back to "Performance Sample Window" and don't disable it based on "Show Performance Graphs". 2025-11-21 01:35:22 -06:00
Jordan Woyak 4f30aaf1ca Merge pull request #13152 from Naim2000/sdlock
SDIO: report write lock status
2025-11-20 15:04:39 -06:00
cristian64 ae88cc4de8 Externals: Add cpp-ipc subdirectory with EXCLUDE_FROM_ALL.
The cpp-ipc dependency was included in #13870; it was overlooked that
`install()` commands in the library would lead to ancillary files being
installed along side Dolphin on Linux.

`EXCLUDE_FROM_ALL` is now set in the `add_subdirectory()` call to
prevent cpp-ipc from being part of the installation.

In particular, the following files should no longer be seen in the build
logs or in the final builds:

```
-- Installing: /app/include/libipc
-- Installing: /app/include/libipc/condition.h
-- Installing: /app/include/libipc/buffer.h
-- Installing: /app/include/libipc/export.h
-- Installing: /app/include/libipc/def.h
-- Installing: /app/include/libipc/rw_lock.h
-- Installing: /app/include/libipc/shm.h
-- Installing: /app/include/libipc/mutex.h
-- Installing: /app/include/libipc/pool_alloc.h
-- Installing: /app/include/libipc/ipc.h
-- Installing: /app/include/libipc/semaphore.h
-- Installing: /app/lib/libipc.a
-- Installing: /app/share/cpp-ipc/cpp-ipc-targets.cmake
-- Installing: /app/share/cpp-ipc/cpp-ipc-targets-release.cmake
-- Installing: /app/share/cpp-ipc/cpp-ipc-config.cmake
-- Installing: /app/share/cpp-ipc/cppIpcConfigVersion.cmake
```
2025-11-20 19:24:42 +00:00
Jordan Woyak 2719a5673e Merge pull request #14121 from jordan-woyak/warn-silence
Common and VideoCommon: Silence a few warnings.
2025-11-19 22:09:19 -06:00
Jordan Woyak 1a71f0fa2e SDIO: Remove file "good" checks so errors are properly produced. 2025-11-19 21:05:57 -06:00
Naim2000 f1f8b0a825 SDIO: the CID/CSD are sent a bit differently 2025-11-19 21:05:54 -06:00
Naim2000 227c4e0515 SDIO: report actual error if writes are disabled 2025-11-19 20:11:05 -06:00
Naim2000 2e340ab160 SDIO: report write lock status 2025-11-19 18:58:13 -06:00
Jordan Woyak 2acb49544c Merge pull request #13539 from tygyh/DiscIO-Remove-redundant-casts
DiscIO: Remove redundant casts
2025-11-19 17:40:42 -06:00
Jordan Woyak 41b6ab40e1 Merge pull request #13619 from y21/usbv5_getversion_size
Check buffer out/size in HID_USBv5/USB_VEN GetVersion Ioctl
2025-11-19 17:32:33 -06:00
Jordan Woyak 2d7ebe46e3 Merge pull request #14111 from Simonx22/android/native-library-kotlin
Android: Convert NativeLibrary to Kotlin
2025-11-19 15:27:41 -06:00
Jordan Woyak d0341b3bfc Merge pull request #14127 from jordan-woyak/movie-cpu-thread-guard
Movie: Replace a blocking RunOnCPUThread call with a CPUThreadGuard.
2025-11-19 13:43:05 -06:00
JMC47 a80f371326 Merge pull request #14118 from iwubcode/ztp_gc_bloom
Data: add bloom graphics mod for Zelda Twilight Princess on Gamecube
2025-11-19 00:11:08 -05:00
LillyJadeKatrin ddced1a070 RetroAchievements - Android login callback
Modify the RetroAchievements login code in Android to pass in a callback, pop a message if login fails, close the login box if it succeeds.
2025-11-18 20:40:15 -05:00
iwubcode e31a61d17d Data: add bloom graphics mod for Zelda Twilight Princess on Gamecube 2025-11-18 18:38:20 -06:00
JosJuice 9883235c0c Common: Treat DirectIOFile as unable to create SAF files
In 405baed805, we made the assumption that whether OpenAndroidContent
is able to create a new file depends on the open mode, the document
provider, and the positions of the celestial bodies. However, I'm
fairly sure that it can't create files at all as currently implemented.

First, ContentResolver.openFileDescriptor is documented as throwing
FileNotFoundException if the file doesn't exist. Now, the SAF
documentation is notoriously unreliable on matters like these, and
document providers can do whatever they want anyway, so we can't
actually trust this to mean that FileNotFoundException will always
be thrown if the file doesn't exist. But second, the Dolphin function
ContentHandler.unmangle is also unable to handle files that don't
already exist (unless the passed-in URI isn't mangled to begin with,
but to the best of my knowledge, there's no way to get a non-mangled URI
for a file that doesn't exist (unless you make assumptions about how the
document provider's URI scheme works, which we don't do in Dolphin)).
Summed up, it looks a lot like OpenAndroidContent can't create files,
or at the very least can't do so reliably.

Therefore I'm making DirectIOFile throw an assertion and return false
in situations where it's being asked to create a file under SAF. For
reference, there's no code in Dolphin that actually tries to create a
file under SAF. In all instances where we use SAF to write to files, the
file is created by the system file picker before it returns the URI of
the file to us.

What does this change gain us? First, if someone in the future tries to
use DirectIOFile to create a file under SAF, they'll be immediately
informed that this isn't supported rather than discovering it doesn't
work and chalking it up to SAF being bad for unpredictable reasons.
Second, we get rid of a call to File::Exists, which is a notable
performance improvement for game list scanning due to SAF and Dolphin's
"unmangling" being bad for reasons that unfortunately are entirely
predictable to those of us who have stared into the SAF void.

I've tested that game list scanning and game conversion still works.
2025-11-18 23:17:03 +01:00
Jordan Woyak 5a6fce31b2 DolphinQt/QtUtils: Simplify RunOnObject and eliminate Common::Event race. 2025-11-18 14:19:21 -06:00
Jordan Woyak d25742fe8b Common: Introduce a OneShotEvent class. Unlike Common::Event, OneShotEvent is safe in situations when being immediately destructed. 2025-11-18 14:19:21 -06:00
Jordan Woyak 605cc579a4 Common/Functional: Add InvokerOf template which can convert function pointers to functor types. 2025-11-18 14:19:21 -06:00
Jordan Woyak 1b63776f2d Common/ScopeGuard: Fix move constructor. 2025-11-18 14:19:21 -06:00
Jordan Woyak bd07d9dfd3 Merge pull request #14136 from Simonx22/android/compress-callback-kotlin
Android: Convert CompressCallback to Kotlin
2025-11-18 14:15:12 -06:00
JosJuice 9cc4d1b835 Merge pull request #13748 from Dentomologist/autoupdatechecker_delete_old_updater_log_file
AutoUpdateChecker: Delete old Updater.log file
2025-11-18 18:12:47 +01:00
JosJuice 48d9a04383 Merge pull request #14132 from JosJuice/jitarm64-bindtoregister-getimm
JitArm64: Call GetImm before BindToRegister in subfcx
2025-11-18 17:53:13 +01:00
JosJuice 4cd78a11a2 Merge pull request #14139 from Simonx22/android/kotlin-serialization-plugin-update-111725
Android: Update Kotlin serialization plugin
2025-11-18 17:53:06 +01:00
Simonx22 d83c7c1a70 Android: Update Kotlin serialization plugin
I forgot to update this, which broke installing GPU drivers

Co-Authored-By: OatmealDome <OatmealDome@users.noreply.github.com>
2025-11-17 23:56:39 -05:00
Simonx22 0f7ee5b40f Android: Convert CompressCallback to Kotlin 2025-11-17 22:44:50 -05:00
Jordan Woyak 1514c0f256 Bluetooth/RealtekFirmwareLoader: Add Mercusys MA530 to list. 2025-11-17 19:31:59 -06:00
Jordan Woyak 27f5c91624 Merge pull request #14131 from Simonx22/android/stereo-float-settings
Android: Convert stereo settings to floats
2025-11-17 15:45:24 -06:00
Jordan Woyak f1db7ff25e Merge pull request #14133 from Simonx22/android/boolean-supplier-kotlin
Android: Convert BooleanSupplier to Kotlin
2025-11-17 15:41:00 -06:00
Simonx22 123b242e9b Android: Convert BooleanSupplier to Kotlin 2025-11-17 15:31:30 -05:00
Simonx22 a3e7a47ded Android: Convert stereo settings to floats to match C++ definitions
These settings were recently changed with 113c86f1b4 to be floats instead of ints.

This commit also changes the Android UI to use the direct convergence value instead of the percentage to match the Qt UI.
2025-11-17 15:01:00 -05:00
JosJuice 0d22dc0392 Merge pull request #14106 from Simonx22/android/dependency-updates-11102544758
Android: Update dependencies
2025-11-17 20:29:21 +01:00
JosJuice f966c55e0c Merge pull request #14097 from Simonx22/android/network-helper-kotlin
Android: Convert NetworkHelper to Kotlin
2025-11-17 20:28:20 +01:00
JosJuice 49e9cd42d4 JitArm64: Call GetImm before BindToRegister in subfcx
When BindToRegister is called, the register cache marks the relevant
guest register as no longer containing an immediate. However, subfcx was
calling GetImm after BindToRegister. This led to a lot of panic alerts
after 2995aa5be4 added an assert to GetImm to check that the passed-in
register is an immediate.

Both before and after 2995aa5be4, the actual value of the immediate
wasn't overwritten by BindForRegister, only the fact that the register
is an immediate. Because of this, the emitted code happened to work
correctly.
2025-11-17 20:00:36 +01:00
Jordan Woyak 6380ad6abb Movie: Replace a blocking RunOnCPUThread call with a CPUThreadGuard. 2025-11-17 11:57:43 -06:00
LillyJadeKatrin 1e0f6a557e Android Achievements - Hardcore disables
Disables state loading and emulation speeds below 100% when RetroAchievements hardcore mode is enabled.
2025-11-16 22:05:54 -05:00
LillyJadeKatrin f4f26a26d2 Add login to achievement settings 2025-11-16 22:05:54 -05:00
LillyJadeKatrin 98678e9a8b AchievementManager - Add Android to user agent
If the build is an Android build, identify it as such in the AchievementManager user agent so that android builds can be tracked separately for debug purposes.
2025-11-16 22:05:53 -05:00
LillyJadeKatrin b662cd93ce Add Achievements submenu to Android settings 2025-11-16 22:05:53 -05:00
JosJuice 56532c850f Merge pull request #14023 from JosJuice/android-overlay-ok
Android: Treat EmulationActivity dialog dismiss the same as OK
2025-11-16 18:36:08 +01:00
JosJuice b6e062f2e3 Merge pull request #13689 from JosJuice/lock-core-any-thread
Core: Let any thread call previously host-thread-only functions
2025-11-16 18:35:17 +01:00
JosJuice 3ff4985120 Merge pull request #12134 from JosJuice/jit-constprop
Jit: Extract immediate handling to separate ConstantPropagation class
2025-11-16 18:34:49 +01:00
Jordan Woyak 991ba0e09f Merge pull request #14124 from JosJuice/android-dont-delete-resources
Android: Ship Sys/Resources/
2025-11-16 11:14:06 -06:00
Simonx22 3fcc0427c9 Android: Convert NativeLibrary to Kotlin 2025-11-16 10:26:09 -05:00
JosJuice 41ab5c0ead Android: Ship Sys/Resources/
We were previously excluding this folder from Android builds because it
didn't contain any files that were used on Android. However, we now have
an OSD font file that we do want to use on Android, and there's also a
few PNG files that will be needed by the RetroAchievements integration.

In terms of file size, this is what gets added:

OSD font: 48.1 KiB
RetroAchievements graphics: 3.5 KiB
Unused graphics: 116.8 KiB

We're still excluding Sys/Themes/, which is 1.1 MiB and entirely unused.
2025-11-16 15:33:22 +01:00
JosJuice 91c3a58889 Merge pull request #13922 from TryTwo/imgui_add_default_font
OSD/Imgui: Add a better default font
2025-11-16 13:58:18 +01:00
JosJuice e0f52e5799 Merge pull request #14104 from Simonx22/android/remove-extract-native-libs
Android: Remove deprecated extractNativeLibs manifest flag
2025-11-16 12:10:16 +01:00
JosJuice b9d9f36ce5 JitArm64: Replace dirty flag and partially replace RegType enum
Like Jit64, JitArm64 now keeps track of the location of a guest register
using three booleans: Whether it is in ppcState, whether it is in a host
register, and whether it is a known immediate. The RegType enum remains
only for the purpose of keeping track of what format FPRs are stored in
in host registers.
2025-11-16 09:52:09 +01:00
JosJuice 2995aa5be4 JitArm64: Don't store immediate values in register cache
Like the previous commit did for Jit64, JitArm64 can now handle the
combination of a value simultaneously being in a host register and being
a known immediate.

Unlike with Jit64, I've put the codegen-affecting changes in this commit
and the move away from the RegType enum in a follow-up commit. This is
in part because the design of JitArm64 made it easy to implement the
codegen-affecting changes without combining it with a big bang
refactorization, and in part because we need to keep RegType around for
keeping track of different float formats in Arm64FPRCache, complicating
the refactorization a bit.
2025-11-16 09:52:09 +01:00
JosJuice 817bb9d94c Jit64: Don't store immediate values in register cache
They're now stored in ConstantPropagation instead.

I've also removed the LocationType enum. The location of each guest
register is now tracked using three booleans: Whether it is in ppcState,
whether it is in a host register, and whether it is a known immediate.
The first two of these booleans are stored in the register cache, and
the last one is stored in ConstantPropagation. This new model allows us
to handle the combination of a value simultaneously being in a host
register and being a known immediate. It also keeps track of which
registers are dirty, which was previously kept track of in X64CachedReg.

The old model maps to the new model as follows:

                                default    host_reg    immediate

Default                         true       false       false
Discarded                       false      false       false
Bound                           (!dirty)   true        false
Immediate                       false      false       true
SpeculativeImmediate            true       false       true
[previously unrepresentable]    (!dirty)   true        true
2025-11-16 09:52:09 +01:00
JosJuice 4114a0b506 Jit: Update constant propagation during instruction
This commit makes the JIT set/clear the individual registers of
ConstantPropagation immediately instead of at the end of the
instruction. This is needed to prevent Jit64::ComputeRC, which reads
from a register written to earlier during the same instruction, from
reading back stale register values from ConstantPropagation in the next
commit.
2025-11-16 09:52:07 +01:00
JosJuice 502b48a690 JitArm64: Make FlushRegisters unlock condition more robust
To find out whether a host register needs to be unlocked, FlushRegisters
checks if the guest register is known to be a zero immediate. This works
right now, but it will stop working correctly once we gain the ability
to have a guest register be a known immediate and be in a host register
at the same time, because a register that's known to be a zero immediate
may have had a host register allocated prior to the call to
FlushRegisters. Instead, we should check whether the register is
RegType::Register after we're done calling BindForRead.
2025-11-16 09:50:31 +01:00
JosJuice 7065b93ba5 JitArm64: Pass index to more Arm64GPRCache functions
This refactorization is needed for upcoming commits.
2025-11-16 09:50:31 +01:00
JosJuice 502317a485 Jit: Move rlwimix to ConstantPropagation 2025-11-16 09:50:31 +01:00
JosJuice bac911aac4 Jit: Move srawx to ConstantPropagation 2025-11-16 09:50:31 +01:00
JosJuice c136fd9807 Jit: Move srwx to ConstantPropagation 2025-11-16 09:50:31 +01:00
JosJuice bb645e6cbb Jit: Move slwx to ConstantPropagation 2025-11-16 09:50:31 +01:00
JosJuice 45760841b2 Jit: Move divwx to ConstantPropagation 2025-11-16 09:50:31 +01:00
JosJuice fc6c278007 Jit: Move divwux to ConstantPropagation 2025-11-16 09:50:31 +01:00
JosJuice c7d8a0b276 Jit: Move subfic to ConstantPropagation 2025-11-16 09:50:31 +01:00
JosJuice 204a8fbd53 Jit: Move subfx to ConstantPropagation 2025-11-16 09:50:31 +01:00
JosJuice 2134991be8 Jit: Move multiplication by 0 optimization to ConstantPropagation 2025-11-16 09:50:31 +01:00
JosJuice 7456ba3d3d Jit: Move mullwx, mulhwx, mulhwux to ConstantPropagation 2025-11-16 09:50:31 +01:00
JosJuice b469981c72 Jit: Move mulli to ConstantPropagation 2025-11-16 09:50:31 +01:00
JosJuice 1eea610375 Jit: Move addicx to ConstantPropagation
Note: Jit64 didn't support immediate handling for addic before.
2025-11-16 09:50:31 +01:00
JosJuice a3797778ff Jit: Move srawix to ConstantPropagation 2025-11-16 09:50:31 +01:00
JosJuice 1a22bda0a7 Jit: Move rlwinmx and rlwnmx to ConstantPropagation 2025-11-16 09:50:31 +01:00
JosJuice 4c8995fae5 Jit: Move negx to ConstantPropagation 2025-11-16 09:50:31 +01:00
JosJuice 92a5a46b2c Jit: Move cntlzwx to ConstantPropagation 2025-11-16 09:50:31 +01:00
JosJuice b506cb2ad8 Jit: Move extsXx to ConstantPropagation 2025-11-16 09:50:31 +01:00
JosJuice f04417eb5a Jit: Move addx to ConstantPropagation 2025-11-16 09:50:31 +01:00
JosJuice 77b46c30ad Jit: Move boolX to ConstantPropagation 2025-11-16 09:50:31 +01:00
JosJuice 3a6eea74dd Jit: Move addix to ConstantPropagation 2025-11-16 09:50:31 +01:00
JosJuice 20332f441b Jit: Move reg_imm to ConstantPropagation 2025-11-16 09:50:31 +01:00
JosJuice f9601dc38c Jit: Extract immediate handling to separate ConstantPropagation class
Restructuring things in this way brings two immediate benefits:

* Code is deduplicated between Jit64 and JitArm64.
* Materializing an immediate value in a register no longer results in us
  forgetting what the immediate value was.

As a more long-term benefit, this lets us also run constant propagation
as part of PPCAnalyst, which could let us do cool stuff in the future
like statically determining whether a conditional branch will be taken.
But I have nothing concrete planned for that right now.
2025-11-16 09:50:31 +01:00
JosJuice e8060bd169 JitArm64: Add function for setting constant overflow 2025-11-16 09:50:30 +01:00
JosJuice 2dead5009b Jit64: Extract handling of immediate Rc 2025-11-16 09:50:30 +01:00
JosJuice 060f792560 Android: Rate limit refreshInputOverlay calls from sliders
Sliders can trigger change listeners very rapidly, so let's add some
rate limiting so dragging a slider doesn't cause the whole UI to lag.
(Now the input overlay looks laggy when dragging a slider, though.)
2025-11-16 09:49:08 +01:00
JosJuice a026a0d5e4 Android: Treat EmulationActivity dialog dismiss the same as OK
In the dialog where you can choose what controller the input overlay
should be controlling, there's an OK button. If you change controller
but don't press OK, your selection will be saved, but the input overlay
won't refresh to show the new controller unless you perform some other
action that would cause it to refresh. This is not good UX.

This commit changes the behavior not only of this dialog but also other
dialogs spawned by EmulationActivity so that everything is properly
updated when dismissing a dialog, as if you had pressed OK.
2025-11-16 09:46:00 +01:00
JosJuice b74c3faa48 Merge pull request #13992 from JosJuice/android-register-for-activity-result
Android: Replace deprecated startActivityForResult
2025-11-16 09:43:04 +01:00
Jordan Woyak 9dea0859eb Common/BitField: Silence two warnings:
warning: definition of implicit copy constructor for 'BitField<2, 2, ColorChannel>' is deprecated because it has a user-declared copy assignment operator [-Wdeprecated-copy]
Redundant access specifier has the same accessibility as the previous access specifier.
2025-11-15 20:32:14 -06:00
Jordan Woyak e630b0692e VideoCommon/FramebufferManager: Silence warning:
warning: virtual method '~FramebufferManager' is inside a 'final' class and can never be overridden [-Wunnecessary-virtual-specifier]
2025-11-15 20:32:10 -06:00
Jordan Woyak a3b1445e04 HW/SI: Adjust logging verbosity in RunSIBuffer and minor cleanups. 2025-11-15 16:09:29 -06:00
Jordan Woyak cd45dcea94 HW/SI: Fix CMD_STATUS response lengths. They are supposed to be 3, not 4. 2025-11-15 16:09:29 -06:00
da pwo 9f66cc5c8a Flatpak: Allow access to native discord IPC socket for rich presence
this line:

- --filesystem=xdg-run/app/com.discordapp.Discord:create

specifically targets the flatpak version of discord, so anyone using the native package wouldnt get rich presence
2025-11-15 10:30:30 -05:00
JosJuice 0fdf1cc386 Merge pull request #14112 from Simonx22/android/remove-unused-bimap-class
Android: Remove unused BiMap class
2025-11-15 16:22:17 +01:00
JosJuice 999e13b3b3 Merge pull request #14109 from OatmealDome/analytics-deadlock
DolphinAnalytics: Only call ReloadConfig in config changed callback when analytics enabled value changes
2025-11-15 14:44:54 +01:00
JosJuice f823a06814 Merge pull request #14105 from cscd98/achievement-bugfix
Fix cheats always enabled without USE_RETRO_ACHIEVEMENTS
2025-11-15 14:44:16 +01:00
Jordan Woyak b7e447e212 GameINI: Add patches to limit internal framerate in Driver: San Francisco. 2025-11-15 03:34:36 -06:00
JMC47 5dd18246e7 Merge pull request #13919 from cristian64/revise_builtin_styles
DolphinQt: Add Fusion-based styles.
2025-11-14 14:59:14 -05:00
cristian64 71e15c2875 DolphinQt: Add Fusion-based styles.
Fusion is one of the built-in styles that Qt ships with, and that is
generally supported in all platforms and handles custom color palettes
properly.

The color palettes have been borrowed from the Dolphin Memory Engine
buddy application.

The new styles are:

- **Fusion Light**
- **Fusion Dark Gray**
- **Fusion Dark**

A demo of each style on Windows:

| System | Light | Dark | Fusion Light | Fusion Dark Gray | Fusion Dark |
| ------ | ----- | ---- | ------------ | ---------------- | ----------- |
| <img width="1920" height="1080" alt="Dolphin Emulator  System style" src="https://github.com/user-attachments/assets/7f55a19d-d9a1-43d1-a435-1e1d5b29abe2" /> | <img width="1920" height="1080" alt="Dolphin Emulator  Light style" src="https://github.com/user-attachments/assets/4c70f2f9-16b8-4777-b72b-55b2dffcd1e4" /> | <img width="1920" height="1080" alt="Dolphin Emulator  Dark style" src="https://github.com/user-attachments/assets/5e669477-d2a5-4d19-b2c5-a2ed9bb1e6fe" /> | <img width="1920" height="1080" alt="Dolphin Emulator  Light Fusion style" src="https://github.com/user-attachments/assets/b1f95c47-0691-4809-bd74-99e913c17684" /> | <img width="1920" height="1080" alt="Dolphin Emulator  Dark Gray Fusion style" src="https://github.com/user-attachments/assets/c9d30aa3-f941-4fc5-806f-d3fbd2cae0cc" /> | <img width="1920" height="1080" alt="Dolphin Emulator  Dark Fusion style" src="https://github.com/user-attachments/assets/123d2125-e126-4e8c-aa42-793ded8ffacc" /> |

> [!NOTE]
> Notice that the **Light** and **Dark** styles remain available only on
> Windows due to limitations on how styles in the various platforms
> handle (or mishandle) custom color palettes.

> [!IMPORTANT]
> Due to [`KDE-511547`](https://bugs.kde.org/show_bug.cgi?id=511547),
> after having used Breeze (default style in Plasma systems), top tool
> bars in tools areas will lose their correct background color; a
> restart will be required in order to get the updated color in the main
> window.
>
> UPDATE: The issue has been fixed upstream and should be available in
> KDE Plama 6.5.3 and newer.
2025-11-14 19:21:58 +00:00
cristian64 ff9b8c4b9c DolphinQt: Define tool tip padding as factor of font size. 2025-11-14 19:12:02 +00:00
Jordan Woyak 6d5e8b9ed8 Externals: Update mGBA to latest master.
Co-authored-by: Joshua Vandaële <joshua@vandaele.software>
2025-11-13 17:03:31 -06:00
OatmealDome 0c349306e3 Merge pull request #14092 from Simonx22/curl-8.15.0
curl: Update to 8.15.0
2025-11-12 19:36:21 -05:00
Jordan Woyak c08fda96ca Merge pull request #14100 from AndrewGDX/master
Improved stereoscopic 3D settings
2025-11-12 16:43:21 -06:00
Simonx22 d1526157df Android: Remove unused BiMap class 2025-11-12 17:26:05 -05:00
Simonx22 cd0e40ba97 Android: Update Gradle Wrapper 2025-11-12 08:13:30 -05:00
AndrewGDX 113c86f1b4 Improved stereoscopic 3D settings 2025-11-12 12:29:03 +03:00
Craig Carnell f1fb550bf1 Fix cheats always enabled without USE_RETRO_ACHIEVEMENTS 2025-11-12 08:33:49 +00:00
OatmealDome df5f351add DolphinAnalytics: Only call ReloadConfig in config changed callback when analytics enabled value changes
Co-authored-by: Simonx22 <simon@oatmealdome.me>
2025-11-12 00:09:41 -05:00
Jordan Woyak bf61c890ca VideoCommon/PerformanceMetrics: Display current offset between the latest frame presentation time and the intended presentation time in the "Show Frame Times" box. 2025-11-11 20:01:52 -06:00
Jordan Woyak c2a1dce246 VideoCommon: Add "Smooth Early Presentation" setting to improve frame pacing with ImmediateXFB and/or RushFramePresentation. 2025-11-11 20:01:52 -06:00
Jordan Woyak cc331feb02 VideoCommon: Make Presenter aware of the next swap time to eliminate unsafe usage of GetTicks() with ImmediateXFB + DualCore. 2025-11-11 20:01:52 -06:00
Jordan Woyak d4f68cb164 HW/VideoInterface: Selectively throttle on "VBlank" based on "Immediate XFB" being enabled. 2025-11-11 20:01:52 -06:00
Jordan Woyak 16260040e0 CoreTiming: Add "Rush Frame Presentation" setting to throttle only once after each presentation for lower input latency. 2025-11-11 20:01:52 -06:00
JMC47 8495e01668 Merge pull request #14096 from jordan-woyak/state-changed-hookable-event
Core: Make AddOnStateChangedCallback use HookableEvent.
2025-11-11 20:58:45 -05:00
JMC47 f63796c480 Merge pull request #14071 from iwubcode/avoid_config_framebuffer_manager
VideoCommon: pass the EFB buffer scale into the FramebufferManager
2025-11-11 20:58:35 -05:00
JMC47 b8236d4662 Merge pull request #14070 from VampireFlower/master
Debugger: Ignore bctr when stepping out
2025-11-11 20:57:45 -05:00
JMC47 c44ea1389a Merge pull request #13236 from JosJuice/jit-set-msr-on-fallback
Call JitInterface::UpdateMembase from PowerPC::MSRUpdated
2025-11-11 20:55:24 -05:00
JMC47 099ea79c43 Merge pull request #14098 from Simonx22/android/dolphin-application-kotlin
Android: Convert DolphinApplication to Kotlin
2025-11-11 16:58:27 -05:00
Simonx22 220315737f Android: Update dependencies
Note: This also updates Kotlin to 2.2.21 which requires small adjustments in our Kotlin code.
2025-11-11 16:48:12 -05:00
Simonx22 cdc21490e4 Android: Convert NetworkHelper to Kotlin 2025-11-11 15:58:07 -05:00
Jordan Woyak 731849c239 Merge pull request #14103 from Simonx22/android/agp-8.11.0-to-8.13.0
Android: Upgrade AGP dependency from 8.11.0 to 8.13.0
2025-11-11 14:33:05 -06:00
Jordan Woyak f0ed260460 Merge pull request #14099 from Simonx22/android/fix-main-toolbar-scroll
Android: Keep main toolbar pinned on game grid
2025-11-11 14:32:19 -06:00
Jordan Woyak 573ad94fbe Merge pull request #14089 from Simonx22/update-android-setup-doc
AndroidSetup: Update documentation
2025-11-11 14:30:27 -06:00
JosJuice 246b6fe0a7 Android: Replace deprecated startActivityForResult 2025-11-11 19:05:10 +01:00
Simonx22 a14014d9aa Android: Remove deprecated extractNativeLibs manifest flag
extractNativeLibs is deprecated. Native lib packaging is already controlled by
packaging.jniLibs.useLegacyPackaging (which we already have), so the manifest override is unnecessary.
2025-11-11 11:18:48 -05:00
Simonx22 cd62125385 Android: Upgrade AGP dependency from 8.11.0 to 8.13.0 2025-11-11 07:12:46 -05:00
Jordan Woyak f51eaf3282 Merge pull request #14052 from jordan-woyak/DirectIOFile
Common and DiscIO: Introduce a thread safe DirectIOFile and make BlobReader implementations use it.
2025-11-10 17:29:43 -06:00
JosJuice 068947e2b6 Core: Remove IsHostThread
The core no longer cares which thread is the host thread.

Cleaning up Android's HostThreadLock is left for another PR, in part
because the HostThreadLock in NativeConfig.cpp still serves a purpose,
and in part to make any issues easier to bisect.
2025-11-10 21:14:56 +01:00
JosJuice 1bba42de45 RetroAchievements: Remove MemoryPeeker/MemoryPoker's copying approach
This makes the code simpler, and saves us from the slow operation of
copying the all of RAM on every frame when RAIntegration is enabled.
2025-11-10 21:14:20 +01:00
JosJuice 458bb05af9 Core: Let any thread call previously host-thread-only functions
By letting threads other than the host thread use things like
CPUThreadGuard, we can do a significant cleanup in AchievementsManager
in a later commit of this pull request.

Note: Some functions still can't be called from the CPU thread (or
threads the CPU thread might block on, like the GPU thread), but can
be called from any other thread.
2025-11-10 21:14:17 +01:00
JosJuice cd4902f0ed Merge pull request #13875 from JosJuice/jitarm64-orr-base-without-mirror
JitArm64: Add missing ORR pattern in MOVI2RImpl
2025-11-10 20:16:21 +01:00
Simonx22 4a3a0228ef Android: Keep main toolbar pinned on game grid
Prevents the version/build bar from sliding behind the status bar when scrolling so the time and build info remain readable instead of overlapping.
2025-11-10 06:47:10 -05:00
JMC47 ac62efaf92 Merge pull request #14088 from SuperSamus/spiderman-wos-singlecore
GameINI: Disable Dual Core for Spider-Man: Web of Shadows
2025-11-10 02:13:04 -05:00
Simonx22 469782292c Android: Convert DolphinApplication to Kotlin 2025-11-09 19:45:41 -05:00
Simonx22 52c551226e AndroidSetup: Update documentation 2025-11-09 18:31:33 -05:00
Jordan Woyak a97627e736 Core: Make AddOnStateChangedCallback use HookableEvent. 2025-11-09 16:43:19 -06:00
OatmealDome fdf822f430 Merge pull request #14093 from Simonx22/android/fix-system-update-dialog-dismissal
Android: Prevent dismissing the System Update dialog by tapping outside
2025-11-09 17:08:43 -05:00
Simonx22 f6563ae0b8 curl: Update to 8.15.0
The bug in CVE-2025-0665 causes crashes on Android 11 and above, as the default fdsan behavior was changed to abort when a violation is found.

While curl 8.17.0 is the latest release, we can't upgrade to it right now due to mbedtls 2.28.0 (which we are currently using) being incompatible with it.

Co-Authored-By: OatmealDome <OatmealDome@users.noreply.github.com>
2025-11-09 10:34:51 -05:00
Admiral H. Curtiss 31ca3bca47 Merge pull request #13956 from jordan-woyak/SA_RESTART
Main: Add SA_RESTART to sigaction sa_flags.
2025-11-09 15:30:27 +01:00
Admiral H. Curtiss 02b4b1ece3 Merge pull request #14010 from jordan-woyak/wmreal-iolinux-reopen-on-unplug
WiimoteReal/IOLinux: Reopen Bluetooth device if it was unplugged between scans.
2025-11-09 15:03:12 +01:00
Admiral H. Curtiss c97d2af814 Merge pull request #14022 from TryTwo/fix_balloontip_width
Settings BalloonTip: Have wordwrap use max width.
2025-11-09 15:00:19 +01:00
Admiral H. Curtiss ab2ceb10ae Merge pull request #14073 from jordan-woyak/convert-dialog-min-size
DolphinQt: Make disc ConvertDialog have a better minimum size and use QFormLayout.
2025-11-09 14:57:46 +01:00
Admiral H. Curtiss 6435ee1d20 Merge pull request #14026 from jordan-woyak/move-only-function-fix
Common/Functional: Fix MoveOnlyFunction from inadvertently creating references from lvalues.
2025-11-09 14:49:20 +01:00
Admiral H. Curtiss 29e2b0ff01 Merge pull request #14068 from iTrooz/open_folder
feat(profiles): add "open profiles folder" button + add dropdown button for profile actions
2025-11-09 14:29:18 +01:00
Admiral H. Curtiss eae279f345 Merge pull request #14084 from TellowKrinkle/GlslangMultiVersion
CMake: Allow both glslang 15 and 16
2025-11-09 14:13:33 +01:00
Admiral H. Curtiss e197163e9e Merge pull request #14094 from OatmealDome/mac-nav-list
SettingsWindow: Set navigation list stylesheet in constructor
2025-11-09 14:10:39 +01:00
Jordan Woyak 9e2fc7f4dd Common/IOFile: Remove the Duplicate function. The duplicate handles shared a read/write position making them effectively not thread-safe. 2025-11-09 03:08:14 -06:00
Jordan Woyak 239330017c DiscIO: Make all BlobReader implementations use DirectIOFile to make CopyReader functionality thread safe. 2025-11-09 03:08:14 -06:00
Jordan Woyak b98acb9a37 Common/BitUtils: Add overloads of AsU8Span/AsWritableU8Span that handle conversions from contiguous ranges. 2025-11-09 03:08:14 -06:00
Jordan Woyak 405baed805 Common: Add a DirectIOFile class that allows for copies which are entirely thread safe. 2025-11-09 03:08:14 -06:00
JosJuice db997e9963 Merge pull request #14085 from cristian64/disable_wtrigraphs
CMakeLists: Disable `-Wtrigraphs`.
2025-11-09 09:51:33 +01:00
OatmealDome 448329e821 SettingsWindow: Set navigation list stylesheet in constructor 2025-11-09 01:55:52 -05:00
Jordan Woyak 2b7b9f2eb6 Merge pull request #14091 from Simonx22/ConfigChangedCallbackID-size_t-fix
CPUThreadConfigCallback: Use maximum value of size_t instead of -1 as default value ConfigChangedCallbackID
2025-11-09 00:23:48 -06:00
Simonx22 b733213bcf Android: Prevent dismissing the System Update dialog by tapping outside
Tapping outside the System Update dialog would previously close it and leave the update in a partially canceled, inconsistent state. This change disables outside-touch dismissal to avoid accidental interruptions and ensure the process completes cleanly.
2025-11-09 01:21:58 -05:00
Simonx22 bd93c09e38 CPUThreadConfigCallback: Use maximum value of size_t instead of -1 as default value ConfigChangedCallbackID
Co-Authored-By: OatmealDome <OatmealDome@users.noreply.github.com>
2025-11-08 23:23:33 -05:00
LillyJadeKatrin cff0ba76c1 Init achievement manager in Android startup 2025-11-08 20:31:23 -05:00
JosJuice f8cddf344d Android: Clear listener in SwitchSettingViewHolder
If bind was called more than once for a SwitchSettingViewHolder, the
line `binding.settingSwitch.isChecked = setting.isChecked` would
accidentally trigger the listener registered during the previous bind
call.
2025-11-08 20:31:22 -05:00
cristian64 7ec6692315 CMakeLists: Disable -Wtrigraphs.
Trigraphs support is generally disabled by default, but some compilers
(e.g. GCC) may still warn when one hypothetical trigraph is encountered.

For example, one of these warnings was introduced as part of #14067:

```
.../Source/Core/DolphinQt/MainWindow.cpp:1433:77: warning: trigraph ??) ignored, use -trigraphs to enable [-Wtrigraphs]
 1433 |       this, tr("Select a File"), dialog_path, tr("All Save States (*.sav *.s??);; All Files (*)"));
      |
.../Source/Core/DolphinQt/MainWindow.cpp:1445:77: warning: trigraph ??) ignored, use -trigraphs to enable [-Wtrigraphs]
 1445 |       this, tr("Select a File"), dialog_path, tr("All Save States (*.sav *.s??);; All Files (*)"));
      |
```

The warning is generally not interesting and has been disabled now.
2025-11-08 22:38:03 +00:00
Martino Fontana c5d047480f GameINI: Disable Dual Core for Spider-Man: Web of Shadows 2025-11-08 23:09:41 +01:00
OatmealDome 4f849ec827 Merge pull request #14047 from Simonx22/reset-all-dolphin-settings-android
Android: Add Reset Dolphin Settings functionality
2025-11-08 14:03:44 -05:00
OatmealDome 5ee1ae43bb Merge pull request #14077 from Simonx22/android-alert-message-kotlin
Android: Convert AlertMessage dialog to Kotlin
2025-11-08 14:03:19 -05:00
OatmealDome 02ad041866 Merge pull request #14086 from Simonx22/android/use-native-analytics
Android: Use the shared HTTP analytics backend
2025-11-08 14:03:06 -05:00
OatmealDome beb3e5eadb Merge pull request #14087 from Simonx22/android/editorconfig-kotlin-style
.editorconfig: Add Kotlin indentation rule
2025-11-08 14:00:37 -05:00
OatmealDome a459dc0d25 Merge pull request #14082 from Simonx22/analytics/reload-on-setting-change
DolphinAnalytics: Reload backend when config changes
2025-11-08 14:00:03 -05:00
Simonx22 8ee767f292 Android: Convert AlertMessage dialog to Kotlin 2025-11-08 12:21:12 -05:00
Simonx22 82f658a28f Android: Use the shared HTTP analytics backend
We can now route Android analytics through Common::HttpAnalyticsBackend, drop the Volley sender, and keep the JNI layer limited to only transfer metadata since https://bugs.dolphin-emu.org/issues/11772 has been fixed.
2025-11-08 12:14:40 -05:00
Simonx22 daa6188810 .editorconfig: Add Kotlin indentation rule
Keeps Kotlin formatting consistent with standard Kotlin style guides.
2025-11-08 12:12:09 -05:00
JosJuice 958db7c78c Merge pull request #14020 from jordan-woyak/string-util-cleanups
StringUtil: Cleanups and add some character encoding conversion unit tests.
2025-11-08 17:36:54 +01:00
Simonx22 f67691d564 Config: Use maximum value of size_t instead of -1 as default value in ConfigChangedCallbackID
Co-authored-by: OatmealDome <julian@oatmealdome.me>
2025-11-08 11:35:31 -05:00
Simonx22 f9b167d8c6 DolphinAnalytics: Reload backend when config changes
Co-Authored-By: OatmealDome <julian@oatmealdome.me>
2025-11-08 11:35:30 -05:00
JosJuice 126bbcd72f Merge pull request #14053 from JoshuaVandaele/imgui-submodule
Externals: Make imgui a submodule
2025-11-08 15:03:06 +01:00
JosJuice ba14222a2b Merge pull request #13939 from Dentomologist/logging_avoid_overwriting_debug_verbosity_in_release_builds
Logging: Don't overwrite LDEBUG level in Release builds
2025-11-08 14:47:27 +01:00
JosJuice 9d27c145b9 Merge pull request #14076 from Simonx22/remove-action1-interface
Android: Replace Action1 helper with Kotlin lambda
2025-11-08 11:42:38 +01:00
TellowKrinkle 143fac254e CMake: Allow both glslang 15 and 16 2025-11-08 02:32:47 -06:00
Jordan Woyak 5af9bd5e46 Merge pull request #14074 from jordan-woyak/HookableEvent-no-strings
Common: Remove the string parameters from the HookableEvent interface.
2025-11-07 16:32:06 -06:00
Jordan Woyak 51cd0a676a Merge pull request #14079 from Dentomologist/use_asyncworkthread_pushblocking_instead_of_sync_event
CubebStream: Use WorkQueueThread::PushBlocking instead of sync_event
2025-11-07 16:31:46 -06:00
Dentomologist 3b97a7bded CubebStream: Use WorkQueueThread::PushBlocking instead of sync_event
Push and wait on WorkQueueThread items using PushBlocking. Previously we
created a Common::Event sync_event on the caller's stack, called Wait on
it, then had the WorkQueueThread call Set on the sync_event once the
thread was done.

In addition to being simpler the new way avoids a use-after-free that
could happen in convoluted and unlikely yet possible thread scheduling
sequences.

One such case can be triggered as follows:

* Set your audio backend to Cubeb
* In CubebStream::SetVolume set a breakpoint at the call to Wait and at
  the call to cubeb_stream_set_volume.
* Start a game.
* Continue until the Cubeb Worker thread hits the
  cubeb_stream_set_volume breakpoint and Emuthread hits the Wait
  breakpoint, freezing each thread when it hits its breakpoint.
* Unfreeze Cubeb Worker.
* In Event::Set set a breakpoint at the end of the scope containing the
  lock_guard such that the guard has been constructed but not destructed
  when the breakpoint is hit.
* Continue until that breakpoint is hit by Cubeb Worker. If other
  threads hit it first keep going.
* Freeze Cubeb Worker.
* For convenience remove the breakpoint in Event::Set so other threads
  don't trigger it.
* In CubebStream::SetRunning set a breakpoint at the call to Wait.
* Unfreeze Emuthread and continue until the breakpoint is hit.
* In Cubeb Worker go to Event::Set and examine the values of m_mutex's
  member variables. In Visual Studio Debug these are locking_thread_id
  == 0xcccccc01 and ownership_levels == 0xcccccccc. This is the result
  of Visual Studio overwriting the memory used on the stack by
  sync_event in CubebStream::SetVolume with cc bytes to represent
  uninitialized memory on the stack (since that function already
  returned), and then allocating enough memory on the stack when calling
  AudioCommon::SetSoundStreamRunning and then CubebStream::SetRunning
  that it overwrote one byte of the memory formerly occupied by
  locking_thread_id.
* If you unfreeze Cubeb Worker at this point it will trigger the lock
  guard's destructor which will then try to unlock m_mutex. Since
  m_mutex is no longer in scope this is a use-after-free, and in VS
  debug triggers a debug assert due to locking_thread_id not matching
  the current thread id.
2025-11-07 13:19:18 -08:00
Simonx22 ddbbb2ea4b Android: Replace Action1 helper with Kotlin lambda 2025-11-07 11:56:11 -05:00
JosJuice 5ed4823ebc Merge pull request #13858 from LillyJadeKatrin/retroachievements-message-adjustments
Retroachievements message adjustments
2025-11-07 16:50:48 +01:00
Jordan Woyak da6c65bf3b Common: Remove the string parameters from the HookableEvent interface. 2025-11-06 22:34:40 -06:00
Jordan Woyak 5650be6842 Merge pull request #14069 from jordan-woyak/ciface-hookable-event
InputCommon: Make ControllerInterface RegisterDevicesChangedCallback use Common::HookableEvent.
2025-11-06 20:06:53 -06:00
LillyJadeKatrin dd941bed70 Improve Achievements Window message
Special message on the Achievements window if the token is invalid/expired.
2025-11-06 20:44:08 -05:00
OatmealDome 852b7d85b2 Merge pull request #14062 from Simonx22/macos-design-fixes
macOS: UI fixes for dark mode
2025-11-06 20:20:05 -05:00
LillyJadeKatrin 1ad0a771d9 Delete Invalid RetroAchievements Tokens 2025-11-06 19:42:14 -05:00
LillyJadeKatrin b1f27b6cfd Added message for bad RetroAchievements token
Displays a different message at game launch if RetroAchievements fails specifically due to an invalid or expired API token, instructing the player to log back in with the game closed.
2025-11-06 19:30:22 -05:00
LillyJadeKatrin 4985a1e19b Adjusted mastery message
Wes from RetroAchievements requested a minor phrasing change to the mastery message.
2025-11-06 19:30:22 -05:00
JMC47 2528feb98a Merge pull request #14072 from jordan-woyak/cmake-pre-3.25-fix
CMakeLists: Fix build on Linux with CMake versions less than 3.25.
2025-11-06 12:56:33 -05:00
Jordan Woyak a7df85a626 DolphinQt: Make disc ConvertDialog have a better minimum size, use QFormLayout, and clean up the code a bit. 2025-11-06 04:34:07 -06:00
Jordan Woyak 1e144a7cfd CMakeLists: Fix build on Linux with CMake versions less than 3.25. 2025-11-06 02:41:55 -06:00
iwubcode 2f20c12d82 VideoCommon: pass the EFB buffer scale into the FramebufferManager instead of pulling it from config, in the future this will allow us to have multiple framebuffers 2025-11-05 21:52:54 -06:00
Jordan Woyak ca6d8e1f0b InputCommon: Make ControllerInterface RegisterDevicesChangedCallback use Common::HookableEvent. 2025-11-05 17:12:56 -06:00
Simonx22 cd16ec02bd macOS: UI fixes for dark mode 2025-11-04 15:49:55 -05:00
Jordan Woyak 2170080f53 Merge pull request #14061 from jordan-woyak/config-info-spin-mutex
ConfigInfo: Cleanups and change mutex to a spin lock.
2025-11-04 14:09:35 -06:00
Jordan Woyak 7d617878e0 Merge pull request #13626 from jordan-woyak/non-global-hookable-event
Common: Make HookableEvent use non-static data.
2025-11-04 13:57:08 -06:00
VampireFlower 294044a02e Debugger: Ignore bctr when stepping out 2025-11-04 11:41:48 -05:00
JosJuice 947ed4aaf6 Merge pull request #14067 from VampireFlower/master
MainWindow: Change save state file filter to use *.s?? pattern
2025-11-04 16:48:51 +01:00
iTrooz a99cb008db feat(profiles): add "open profiles folder" button + add dropdown button for profile actions
Co-Authored-By: iTrooz <hey@itrooz.fr>
Co-Authored-By: Max Chateau <maxban.chateau@gmail.com>
Co-Authored-By: Damien R. <rodriguezdamien1677@gmail.com>
2025-11-04 08:09:25 +01:00
VampireFlower 40fa9ddadd MainWindow: Change save state file filter to use *.s?? pattern 2025-11-03 18:50:56 -05:00
Jordan Woyak 999333c0a1 Config: Make ConfigInfo use Common::SpinLock to protect the CachedValue. These locks are nearly always uncontested and this makes Config::Get faster. 2025-11-02 20:45:55 -06:00
Jordan Woyak 46369ef1b1 Common: Add AtomicMutex and SpinMutex classes as faster alternatives to std::mutex. 2025-11-02 20:45:55 -06:00
Jordan Woyak fc9f25a418 Config/ConfigInfo: Cleanups. 2025-11-02 20:30:35 -06:00
Simonx22 f718a6b72f Android: Add Reset Dolphin Settings functionality 2025-11-02 20:09:23 -05:00
Jordan Woyak f289b06e0d Common: Make HookableEvent use non-static data.
Co-authored-by: Dentomologist <dentomologist@gmail.com>
2025-11-02 17:30:43 -06:00
Jordan Woyak 9c28f19e56 Merge pull request #14065 from iwubcode/glslang_compiler_fix
VideoCommon: fix wrong path to glslang include
2025-11-02 14:33:12 -06:00
iwubcode ef87af2985 VideoCommon: fix wrong path to glslang include 2025-11-02 14:29:14 -06:00
JosJuice 8749855643 Call JitInterface::UpdateMembase from PowerPC::MSRUpdated
When the interpreter calls MSRUpdated, we should update the membase
variable. Not because the interpreter itself needs it, but because the
JIT needs it if it's falling back to the interpreter for an instruction
that sets the MSR.

Additionally, the JIT's FallBackToInterpreter needs to read back the new
membase value afterwards.

This fixes games crashing on JitArm64 if mtmsr is set to fall back to
interpreter. I was unable to reproduce the issue on Jit64, presumably
due to a fortunate series of coincidences (instructions that set MSR are
always followed by an exception exit, and
PowerPCManager::CheckExternalExceptions was always calling
JitInterface::UpdateMembase, and Jit64::WriteExceptionExit was always
calling Jit64::EmitUpdateMembase.)
2025-11-02 21:18:07 +01:00
JosJuice cc69cc3f2e Merge pull request #14058 from jordan-woyak/sdl-version-bump
Externals: Bump SDL submodule version to release-3.2.26
2025-11-02 19:18:56 +01:00
JMC47 a4a4416ff2 Merge pull request #14042 from iwubcode/bp_functions_global
VideoCommon: move global variables out of BPFunctions
2025-11-02 13:17:38 -05:00
JMC47 1d9c743ef7 Merge pull request #13975 from iwubcode/shader_includes
VideoBackends / VideoCommon: add support for specifying include files in shader code
2025-11-02 13:17:28 -05:00
JosJuice 8a0a8bb874 Merge pull request #14059 from jordan-woyak/state-nand-cleanup
Core/IOS/FS: Clean up some hard to read NAND state saving logic.
2025-11-02 19:13:15 +01:00
Jordan Woyak 5650b2ef37 StringUtil: Replace strerror with Common::LastStrerrorString. 2025-11-02 00:36:04 -05:00
Jordan Woyak 0ebc54a0fa UnitTests: Add some StringUtil character encoding conversion tests. 2025-11-02 00:36:04 -05:00
Jordan Woyak da7c813edf StringUtil: Make non-Windows WStringToUTF8 implementation use iconv instead of deprecated std::codecvt features. 2025-11-02 00:36:04 -05:00
Jordan Woyak b073b5303b StringUtil: Fix many clang-tidy warnings. 2025-11-02 00:36:04 -05:00
Jordan Woyak 57d7485ea6 Core/IOS/FS: Clean up some hard to read NAND state saving logic. 2025-11-01 12:33:30 -05:00
JosJuice 249f999c6a Merge pull request #13655 from JosJuice/android-always-expand-sheets
Android: Expand bottom sheets on devices with touch too
2025-11-01 12:22:45 +01:00
JosJuice 35c5b51b62 Merge pull request #14048 from Simonx22/android-instant-settings-saving
Android: Save settings instantly after edits
2025-11-01 12:22:35 +01:00
JosJuice da1d45dbd4 Merge pull request #14057 from TellowKrinkle/VkRenderWrongLayout
VideoCommon: Fix render to texture in wrong layout
2025-11-01 10:06:41 +01:00
JosJuice 91fd53a98c Merge pull request #14035 from Dentomologist/pauseandlock_refactoring
PauseAndLock Refactoring
2025-11-01 10:06:08 +01:00
JosJuice 828e72d604 Merge pull request #14034 from JoshuaVandaele/byeprofile
JitRegister: Remove OProfile profiler
2025-11-01 10:05:11 +01:00
JosJuice 998a3577ce Merge pull request #14054 from Dentomologist/libmgba_fix_build_when_disabled
libmgba: Fix build when disabled
2025-11-01 10:01:48 +01:00
Jordan Woyak fc7241dec3 Externals: Bump SDL submodule version to release-3.2.26 2025-11-01 02:00:57 -05:00
iwubcode 6728007cb4 VideoCommon: rename ScissorResult 'm_result' to 'rectangles' to better reflect what the member is 2025-10-31 13:28:14 -05:00
iwubcode ee7c476e24 VideoCommon: move global variables out of BPFunctions 2025-10-31 13:27:50 -05:00
TellowKrinkle 21ac489d57 VideoCommon: Fix render to texture in wrong layout 2025-10-30 20:50:17 -05:00
Jordan Woyak c12d3a6d22 Merge pull request #14045 from JoshuaVandaele/warn-fix
Fix various warnings
2025-10-30 20:47:42 -05:00
JMC47 d065f1ae12 Merge pull request #14041 from jordan-woyak/lockless-async-requests
VideoCommon: Clean up and eliminate the mutex in AsyncRequests.
2025-10-30 19:26:22 -04:00
JMC47 ccc334cdd0 Merge pull request #14055 from sepalani/async-inetaton
IP/Top: Make InetAToN async
2025-10-30 19:22:01 -04:00
Sepalani ba8f4ca6a2 IP/Top: Make InetAToN async 2025-10-31 01:13:36 +04:00
JosJuice 1b8a54024c Android: Expand bottom sheets on devices with touch too
In a few places in Dolphin, we're using BottomSheetDialogFragments.
These unhelpfully tend to start out in a "collapsed" state when in
landscape mode (presumably depending on factors like screen size). The
user then has to manually expand them before they can meaningfully
interact with them.

We've been automatically setting BottomSheetDialogFragments to the
expanded state if the device Dolphin is running on doesn't support
touch, since with d-pad navigation it's impossible to expand these
sheets. But I think we should set them to expanded on devices that
support touch too. I haven't encountered a single case where you can do
anything useful with any of Dolphin's BottomSheetDialogFragments while
they're collapsed, so the user always has to expand sheets manually if
they start out collapsed. And just because a device supports touch
doesn't necessarily mean you're interacting with it through the touch
screen right now - you could be using a gamepad, for instance.
2025-10-30 21:22:41 +01:00
Dentomologist 2836dd2b5e libmgba: Fix build when disabled 2025-10-30 12:00:13 -07:00
Joshua Vandaële 7960a306f7 Externals: Make imgui a submodule 2025-10-30 15:02:19 +01:00
Joshua Vandaële 5c12677705 OnScreenDisplayPane: Fix unused-variable warning
This is used in AdvancedPane and was seemingly accidentally copied over
2025-10-30 12:35:22 +01:00
Joshua Vandaële b66b2f71af GameConfigEdit: Fix unused-result warning 2025-10-30 12:35:22 +01:00
Joshua Vandaële 2383e68fd8 x64Emitter: Fix missing-declarations warning 2025-10-30 12:35:22 +01:00
Joshua Vandaële 33152740d0 CustomPipeline.cpp: Fix unused-function warning
This whole file is apparently going away soon.
2025-10-30 12:35:19 +01:00
Jordan Woyak 478fb20bc2 Merge pull request #14050 from Dentomologist/android_input_fix_unused_value_warning
Android: Fix unused value warning
2025-10-30 01:44:12 -05:00
Jordan Woyak 91320563e0 Merge pull request #14051 from Dentomologist/achievementmanager_fix_unused_private_field_warnings
AchievementManager: Fix unused private field warnings
2025-10-30 01:42:47 -05:00
Dentomologist 32a8128b53 AchievementManager: Fix unused private field warnings
Remove several unused members from AchievementManager.

These became unused in https://github.com/dolphin-emu/dolphin/pull/12639
which switched from the rcheevos rc_runtime interface to rc_client.
2025-10-29 16:50:00 -07:00
Dentomologist 570ec7c322 Android: Fix unused value warning
Remove "env, " from "return env, GetControlPointer..." since the left
side of a comma operator has no effect.

This was presumably a copy/paste error from the function above it.
2025-10-29 16:19:15 -07:00
Simonx22 82c86221d6 Android: Save settings instantly after edits 2025-10-29 16:49:16 -04:00
JosJuice f2e6cb4c29 Merge pull request #14044 from JoshuaVandaele/im-sorry-ibel
UICommon.cpp: Revert changes from #13866
2025-10-29 20:10:57 +01:00
Joshua Vandaële 280d0e7f8d MaterialAsset: Fix shadowed field 2025-10-29 11:12:31 +01:00
Joshua Vandaële 0b7d581af5 UICommon.cpp: Revert changes from #13866 2025-10-29 09:56:39 +01:00
JMC47 b920182c97 Merge pull request #13870 from cristian64/broadband_adapter_ipc
Core/HW: Add Broadband Adapter (IPC).
2025-10-28 19:16:17 -04:00
JMC47 1ed86e1b16 Merge pull request #13866 from JoshuaVandaele/reset-button-third-attempt
AdvancedPane: Add a button to restore default settings
2025-10-28 18:56:03 -04:00
Jordan Woyak 09a125fec4 VideoCommon: Clean up and eliminate the mutex in AsyncRequests using WaitableSPSCQueue. 2025-10-28 17:22:04 -05:00
JMC47 032fdf6335 Merge pull request #14039 from mbc07/tex_filter_settings_followup
GameSettings: fix texture filtering settings for earlier Just Dance games
2025-10-28 17:32:35 -04:00
Mateus B. Cassiano fca9e6a362 GameSettings: fix texture filtering settings for earlier Just Dance games 2025-10-28 16:25:08 -04:00
JosJuice 3d764f7b42 Merge pull request #14032 from jordan-woyak/spawn-gpu-thread
Core: Make EmuThread spawn a GPU thread and become the CPU thread in dual-core mode.
2025-10-28 21:18:47 +01:00
cristian64 f5012ef457 Core/HW: Add Broadband Adapter (IPC).
This is a hassle-free BBA option intended for local play with multiple
Dolphin instances running *in the same system*. After selecting
**Broadband Adapter (IPC)** in the **SP1** slot in the GameCube section
in the settings, games that support LAN play will be able to discover
each other, without requiring third-party software or relatively complex
TAP setups.

The implementation is based on cpp-ipc, a high-performance inter-process
communication library that uses shared memory as transport layer.

Supported platforms are:

- [x] Linux
- [x] Windows
- [ ] macOS (cpp-ipc does not support this platform)
- [ ] FreeBSD (cpp-ipc does not support this platform)
- [ ] Android (cpp-ipc needs some adjustments; while it could work,
  launching two Dolphin instances within the same Android system may be
  both challenging and impractical)
2025-10-28 18:50:59 +00:00
cristian64 4677a92b13 Core/HW: Add Visual Studio project files for cpp-ipc library. 2025-10-28 18:50:58 +00:00
cristian64 a74e736d29 Core/HW: Add cpp-ipc subdirectory in main CMake file. 2025-10-28 18:50:58 +00:00
cristian64 92a2018934 Core/HW: Add cpp-ipc submodule.
The last official release is, at the time of writing, almost two years
old. The latest development snapshot (updated ~2 months ago) will be
used.
2025-10-28 18:50:58 +00:00
JMC47 509584d3d3 Merge pull request #13916 from Tilka/tex_filter_settings
GameSettings: clean up texture filtering settings
2025-10-28 14:34:06 -04:00
Joshua Vandaële e1088659b1 AdvancedPane: Use ConfigControls where applicable 2025-10-27 16:22:02 +01:00
Joshua Vandaële 3cf4b02a91 PathPane: Use ConfigControls where applicable 2025-10-27 16:22:02 +01:00
Joshua Vandaële 02d84ddc78 WiiPane: Use ConfigControls where applicable 2025-10-27 16:22:02 +01:00
Joshua Vandaële b6766e1ca0 GameCubePane: Use ConfigControls where applicable 2025-10-27 16:21:59 +01:00
Joshua Vandaële 1e227bd736 FreeLookWidget: Use ConfigControls where applicable 2025-10-27 15:59:33 +01:00
Joshua Vandaële 33fd06d7f3 AdvancedPane: Add a button to restore default settings 2025-10-27 15:59:33 +01:00
Jordan Woyak c69f868fff Core/HW: Remove RoundingModeUpdated call from CPUManager::Run. This is now properly handled on initialization. 2025-10-26 23:07:14 -05:00
Jordan Woyak 700abd68e3 VideoCommon/AsyncRequests: Remove now unnecessary SetEnable function. Requests are now always enabled. Call SetPassthrough on initialization to not be racy. 2025-10-26 23:07:14 -05:00
Jordan Woyak 6416b0a6ec Core: Make EmuThread spawn the Video thread and become the CPU thread in dual-core mode instead of the other way around. 2025-10-26 23:07:14 -05:00
iwubcode 96fe6a1575 VideoBackends / VideoCommon: add support for specifying include files in shader code 2025-10-26 22:47:23 -05:00
Dentomologist 70d8bc6fd7 CPU: Update PauseAndLock comment 2025-10-26 18:06:38 -07:00
Dentomologist c47db6dba7 DSPEmulator: Remove redundant parameter and code
PauseAndLock is only called with do_lock=true, so remove the parameter
and modify PauseAndLock accordingly.
2025-10-26 18:03:31 -07:00
Dentomologist d5f079d78b DSPEmulator: Extract UnpauseAndUnlock from PauseAndLock
Replace call to PauseAndLock(do_lock=false) with new function
UnpauseAndUnlock.
2025-10-26 18:03:06 -07:00
Dentomologist 933071dd57 FifoManager: Remove redundant PauseAndLock parameters
PauseAndLock was only called with do_lock=true, and the function only
used unpauseOnUnlock when do_lock was false.
2025-10-26 18:01:51 -07:00
Dentomologist f497eb519e FifoManager: Extract RestoreState from PauseAndLock
Replace calls of FifoManager::PauseAndLock(do_lock=false) with new
function RestoreState for clarity.
2025-10-26 18:01:51 -07:00
Dentomologist f628a979c4 Core: Remove pointless call to FifoManager::PauseAndLock
FifoManager::PauseAndLock doesn't do anything when doLock and
unpauseOnUnlock are both false, so remove the call.
2025-10-26 18:01:51 -07:00
Dentomologist 2d888ea4d3 Core: Remove unnecessary PauseAndLock parameters
PauseAndLock is now only called with do_lock=true, and unpause_on_unlock
only ever was used when do_lock is false (which is now handled in
RestoreStateAndUnlock instead), so both parameters are unnecessary.
2025-10-26 18:01:51 -07:00
Dentomologist c9c8461d36 Core: Extract RestoreStateAndUnlock from PauseAndLock
Replace calls of PauseAndLock(do_lock=false) with new function
RestoreStateAndUnlock for clarity.

Callers of PauseAndLock ignored the return value when do_lock is
false, so RestoreStateAndUnlock doesn't need to return anything.
2025-10-26 18:01:23 -07:00
Dentomologist 4e64d8e94f CPUManager: Remove redundant parameter from RestoreStateAndUnlock
RestoreStateAndUnlock was only called with control_adjacent=true. Remove
the parameter and unconditionally call the function that was gated
behind it being true.
2025-10-26 17:59:47 -07:00
Dentomologist 8d0dbb0ef6 CPUManager: Remove redundant parameter from PauseAndLock
PauseAndLock was only called with control_adjacent=false. Remove the
parameter and the function call that was only made when it was true.
2025-10-26 17:56:31 -07:00
Dentomologist 48d48fe1af CPUManager: Remove unnecessary PauseAndLock parameters
CPUManager::PauseAndLock is now only called with do_lock=true, and
unpause_on_unlock only ever was used when do_lock is false (which is now
handled in RestoreStateAndUnlock instead), so both parameters are
unnecessary.
2025-10-26 17:54:41 -07:00
Dentomologist 1a6e285685 CPU: Remove default arguments for PauseAndLock
For clarity in the next commit.
2025-10-26 17:54:41 -07:00
Dentomologist 691743fbc4 CPU: Extract RestoreStateAndUnlock from PauseAndLock
Replace call of CPUManager::PauseAndLock(do_lock=false) with new
function RestoreStateAndUnlock for clarity.

Callers of Core::PauseAndLock ignore the return value when do_lock is
false, so in that case was_unpaused in Core::PauseAndLock doesn't need
to be set and so RestoreStateAndUnlock doesn't need to return anything.
2025-10-26 17:54:41 -07:00
Dentomologist bebeba29c3 CPU: Convert static variable to class member
Make s_have_fake_cpu_thread a class member instead. In addition to
getting rid of a bit of static state, this simplifies refactoring in an
upcoming commit.
2025-10-26 17:53:45 -07:00
Jordan Woyak 7608dbbfbd Core: Remove GDBStub::Deinit call from EmuThread. The CpuThread function is already doing this. 2025-10-26 16:53:52 -05:00
Jordan Woyak c22a483431 Merge pull request #14031 from TellowKrinkle/GlslangFix
CMake: Fix bundled glslang
2025-10-26 15:42:36 -05:00
Joshua Vandaële 713dfb41df JitRegister: Remove OProfile profiler
OProfile is not used at all these days, most major distributions do not ship it anymore (Debian, Fedora, and Alpine to name the few I've checked) and following a discussion on Discord, nobody is apparently using it, most devs not even being aware of it. This removes an optional dependency from Dolphin.
2025-10-26 20:48:15 +01:00
JosJuice f8ebd27766 Merge pull request #14004 from JoshuaVandaele/bzip2-submodule
Move bzip2 from vendored to a submodule
2025-10-26 18:13:31 +01:00
Joshua Vandaële 4f7d48e018 Move bzip2 from vendored to a submodule
We are already on the latest version (1.0.8) since the project is not very active and has not seen much activity in the last few years.
2025-10-25 23:11:49 +02:00
TellowKrinkle d404805b7f CMake: Fix bundled glslang 2025-10-24 22:58:22 -05:00
JMC47 df351b6059 Merge pull request #13771 from SuperSamus/gameini-speedhacks
GameINI: Add some speed hacks
2025-10-23 14:13:02 -04:00
Martino Fontana fe63d95e02 GameINI: Add patches to limit FPS for some uncapped games 2025-10-23 00:38:14 +02:00
Martino Fontana 2542c79d6b GameINI: Add patches for idle loop detection (speed hack) 2025-10-23 00:03:59 +02:00
Martino Fontana d423eb5a75 GameINI: Fix Egg Mania Japanese "Force Progressive" hack 2025-10-22 23:32:18 +02:00
Jordan Woyak ba5edce2af Common/Functional: Fix MoveOnlyFunction from inadvertently creating references from lvalues. 2025-10-22 05:06:41 -05:00
Jordan Woyak 06b4c89c51 Merge pull request #14024 from cobalt2727/patch-5
DolphinQt: explicitly include QAction for building with older QT6 libs
2025-10-21 21:55:55 -05:00
cobalt2727 7c63750e53 DolphinQT: explicitly include QAction for older QT6 libs
this fixes an exotic build environment I've got using QT6.2 on Ubuntu 18.04 without breaking any sane operating systems.
2025-10-21 22:52:43 -04:00
Jordan Woyak e34ef86be9 Merge pull request #13947 from JosJuice/i18n-2025-08-17-type
i18n: Improve EditSymbolDialog's symbol vs note handling for translators
2025-10-21 19:19:13 -05:00
JMC47 be131ddc59 Merge pull request #13984 from jordan-woyak/wmreal-quick-connect-and-disconnect
WiimoteReal: Quickly connect and disconnect Wii remotes with hidapi / Android.
2025-10-21 19:49:22 -04:00
JMC47 5f5cfda5ad Merge pull request #14025 from TellowKrinkle/RenderPassHazards
VideoBackends:Vulkan: Prevent hazards when restarting render passes
2025-10-21 17:05:10 -04:00
Jordan Woyak 26c5b2f57a WiimoteReal/IOLinux: Fix warning. 2025-10-21 14:51:54 -05:00
Jordan Woyak 590b94975d WiimoteReal: Make WiimoteScannerBackend classes use separate FindNewWiimotes and FindAttachedWiimotes functions.
Return results as vector of unique_ptr instead of raw pointers.
2025-10-19 22:36:39 -05:00
Jordan Woyak 99cc5e7bb7 WiimoteReal/IOAndroid: Only "find" DolphinBar remotes which are actually connected. 2025-10-19 22:36:39 -05:00
Jordan Woyak c84d30c782 WiimoteReal/IOAndroid: Don't "find" already in-use Wii remotes. 2025-10-19 22:36:39 -05:00
Admiral H. Curtiss a2913abeb9 Merge pull request #14021 from jordan-woyak/cmake-CheckSymbolExists
CMakeLists: Add include(CheckSymbolExists).
2025-10-18 15:36:38 +02:00
TellowKrinkle e599ae37c3 VideoBackends:Vulkan: Prevent hazards when restarting render passes 2025-10-18 05:24:37 -05:00
JMC47 7b994d9654 Merge pull request #14019 from JosJuice/android-ndk-29
Android: Update NDK version to 29.0.14206865
2025-10-17 18:47:20 -04:00
JMC47 0755218617 Merge pull request #14012 from jordan-woyak/wmreal-name-check
WiimoteReal: Check just the start of Bluetooth device names to match the test performed by Wii software.
2025-10-17 18:46:42 -04:00
JMC47 6f81811e32 Merge pull request #14007 from JoshuaVandaele/glslang-fix
CMakeLists: Fix compilation of glslang in cases where it hasn't been linked against SPIRV-Tools
2025-10-17 18:46:19 -04:00
JMC47 df809959d0 Merge pull request #14005 from JoshuaVandaele/cpp-optparse-submodule
Update cpp-optparse to last commit and turn into a submodule
2025-10-17 18:46:02 -04:00
JMC47 2e490cefa0 Merge pull request #13978 from JoshuaVandaele/libiconv-1.18
Externals: Update libiconv to 1.18
2025-10-17 18:45:48 -04:00
JosJuice 49043a3d88 Merge pull request #14018 from cscd98/minizip-fix
Update minizip-ng _POSIX_C_SOURCE to 200809L
2025-10-17 18:33:10 +02:00
TryTwo 2bc944e1a3 Settings BalloonTip: Wrapped tips were not using the maximum width, resulting in a much smaller width than they should have. 2025-10-16 15:58:32 -07:00
TryTwo c135af22dd Imgui: Add a new default font (VeraMono - 49kb) that scales better than the old default.
Allow loading a custom font by naming it OSD_Font.ttf and placing the file in the User/Load folder, to load that font instead. Useful for future testing.
2025-10-16 15:36:50 -07:00
Jordan Woyak db0e7c6e58 CMakeLists: Add include(CheckSymbolExists). 2025-10-15 20:29:05 -05:00
JMC47 e8d9c124e5 Merge pull request #13953 from TryTwo/add_osd_tab
Qt Settings: Transfer OSD settings to a new OSD pane.
2025-10-15 16:35:26 -04:00
Admiral H. Curtiss 952f2cae80 Merge pull request #14013 from jordan-woyak/hle-varargs-concepts
HLE_VarArgs: Replace enable_if with concepts.
2025-10-15 21:14:05 +02:00
JosJuice f05f89e6b4 Android: Update NDK version to 29.0.14206865 2025-10-15 19:57:53 +02:00
Craig Carnell 11bf4a0b0e Update minizip-ng _POSIX_C_SOURCE to 200809L 2025-10-15 11:48:05 +01:00
Jordan Woyak a49514eb7b HLE_VarArgs: Replace enable_if with concepts. 2025-10-13 23:42:31 -05:00
Jordan Woyak c2b5a1a35c WiimoteReal: Check just the start of Bluetooth device names to match the test performed by Wii software. 2025-10-13 21:13:37 -05:00
JMC47 81f620ba97 Merge pull request #14011 from Dentomologist/videobackend_rename_getname_to_getconfigname
VideoBackend: Rename GetName to GetConfigName
2025-10-13 21:19:41 -04:00
Dentomologist 5b4df5ae98 VideoBackend: Rename GetName to GetConfigName
Make the function name more explicit and a better match for
GetDisplayName.

Change NAME to CONFIG_NAME while I'm at it.
2025-10-13 17:38:20 -07:00
Jordan Woyak 94be0e466e WiimoteReal/IOLinux: Reopen Bluetooth device if it was unplugged between scans. 2025-10-13 18:39:47 -05:00
Jordan Woyak e0e2c7461b Merge pull request #14009 from Dentomologist/windowsdevice_silence_missing_property_log_spam
WindowsDevice: Silence missing property log spam
2025-10-13 15:41:52 -05:00
Dentomologist 4e359cf1c5 WindowsDevice: Silence missing property log spam
Don't log a warning in GetPropertyHelper when the property isn't
present. The function returns an optional, so any callers that want to
log a warning when nullopt is returned can do so themselves.

This prevents plugged-in devices (an Xbox One controller in my case)
from spamming the message "W[COMMON]: CM_Get_DevNode_Property returned:
37" twice per second (that value being CR_NO_SUCH_VALUE).
2025-10-13 11:55:12 -07:00
JosJuice 1067754d21 Merge pull request #13983 from jordan-woyak/wmreal-android-fix
WiimoteReal: Use GetEnvForThread within IORead/IOWrite calls to fix real Wii remotes on Android.
2025-10-13 19:52:05 +02:00
JMC47 8edef722ce Merge pull request #14008 from jordan-woyak/qt6.10-buildfix
CMakeLists: Fix build with Qt6.10.
2025-10-13 13:51:19 -04:00
JMC47 f509199b03 Merge pull request #13970 from jordan-woyak/wmreal-iowin-fixes
WiimoteReal: Windows improvements.
2025-10-13 02:54:54 -04:00
Jordan Woyak b3bdad416c CMakeLists: Fix build with Qt6.10. GuiPrivate component is needed to #include qplatformnativeinterface.h in MainWindow.cpp. 2025-10-12 23:53:05 -05:00
Joshua Vandaële 37d6fe61ba CMakeLists: Fix compilation of glslang in cases where it hasn't been linked against SPIRV-Tools 2025-10-13 01:52:24 +02:00
Jordan Woyak 801f38d4e5 DolphinQt: Add buttons to create and reset Wii remote pairings on Windows. 2025-10-12 12:37:04 -05:00
Jordan Woyak 8845fbdb7e WiimoteReal: Detect already connected Wii remotes on Windows without having to use the Refresh button. 2025-10-12 12:37:04 -05:00
Jordan Woyak e0c40025a9 WiimoteReal/IOWin: Major cleanups and improvements. 2025-10-12 12:37:04 -05:00
Jordan Woyak 3978e1eb2c WindowsDevice: Add some utility functions for getting device properties using CfgMgr32. 2025-10-12 12:33:13 -05:00
Jordan Woyak e8d22923c6 WiimoteReal: Send periodic writes to test for disconnect. 2025-10-12 12:33:13 -05:00
Jordan Woyak 94ecf4df39 WiimoteReal: Add function to test specifically for a wii remote name. 2025-10-12 12:33:13 -05:00
TryTwo fcb3d2fb05 Qt Setting Panes: Remove original location of options transferred to the OSD pane. 2025-10-10 17:02:00 -07:00
TryTwo 3b11280c20 Movie Window: Move customization options from Menu Bar to OSD pane, but add options to toggle the window and to open the OSD pane.
Add new setting to show/hide the Movie Window.
2025-10-10 16:59:16 -07:00
Joshua Vandaële 4c87f08ff7 Update cpp-optparse to last commit and turn into a submodule 2025-10-10 16:43:49 +02:00
TryTwo 13ac387197 Qt: Add OnScreenDisplayPane to settings window. Transfer OSD options to pane. 2025-10-10 02:47:27 -07:00
Jordan Woyak 8323c21e40 Merge pull request #13967 from cscd98/windows-cmake
Fix cmake compilation on Windows 11
2025-10-10 03:58:40 -05:00
Craig Carnell a111192bba Fix cmake compilation on Windows 11 2025-10-10 09:06:45 +01:00
JMC47 d8bcd6d82e Merge pull request #13996 from SuperSamus/jit64-dynamic-known-jmp-len
Jit64: Dynamic length of regular jump instruction (for known addresses)
2025-10-09 14:07:13 -04:00
JMC47 f43b78efb6 Merge pull request #13989 from jordan-woyak/wmreal-hidapi-cleanup
WiimoteReal/IOhidapi: Minor changes / cleanups.
2025-10-09 14:06:57 -04:00
JMC47 39944a61d1 Merge pull request #13979 from mbc07/RealtekFirmwareLoader_newIDs
RealtekFirmwareLoader: more RTL8761B device IDs
2025-10-09 14:06:17 -04:00
JMC47 8e2af141a8 Merge pull request #13973 from cscd98/hidapi-update
Hidapi update to v0.15.0
2025-10-09 14:06:04 -04:00
JMC47 4f7a910e92 Merge pull request #13964 from ryanmcgrath/macos/qos
macoS: update QoSSession with SO_NET_SERVICE_TYPE.
2025-10-09 14:05:42 -04:00
JMC47 efa9245565 Merge pull request #13963 from jordan-woyak/point-passthru-needs-bound-inputs
WiimoteEmu: Require IRPassthrough has any bound inputs to operate.
2025-10-09 14:05:16 -04:00
JMC47 1aae1ecbaa Merge pull request #13712 from SuperSamus/cheat-search-improvements
CheatSearchWidget: New feature, writing a value to all selected addresses
2025-10-09 13:58:00 -04:00
JMC47 cd57fd73ba Merge pull request #13679 from JoshuaVandaele/pugixml-cmake4
pugixml: Update to 1.15 and make it a submodule
2025-10-09 13:53:04 -04:00
JMC47 beebcb52e7 Merge pull request #13998 from fizzlepicklepop/master
DolphinQt: Add toggles for Speedrun timer + Achievement badges visibility
2025-10-08 17:19:14 -04:00
Martino Fontana f8d30e796c CheatSearchWidget: New feature, writing a value to all selected addresses 2025-10-08 11:33:44 +02:00
Martino Fontana c002861041 CheatSearchWidget: "Add to watch" to all selected items
Instead of just the right-clicked item.
2025-10-08 11:27:06 +02:00
Martino Fontana 8a97ce9124 MMU: Use templates for Read/Write functions 2025-10-08 11:27:06 +02:00
fizzlepicklepop 3cb8f234a7 fixed the lint error 2025-10-07 23:57:53 -04:00
fizzlepicklepop 7ed61c50a1 Add toggles for Speedrun timer + Achievement badges visibility
Added some new visibility toggles so players can choose what to show (or hide) during their RetroAchievements runs:

Toggle for the Speedrun Leaderboards timer

Toggle for Achievement Challenge badges
2025-10-07 22:45:04 -04:00
Martino Fontana f6e5448b43 Jit64: Dynamic length of regular jump instruction (for known addresses)
Conditional jumps already do that, so let's be consistent.
2025-10-08 00:15:57 +02:00
JosJuice 03ef9b4995 Merge pull request #13995 from Dentomologist/deletedirrecursively_dont_report_error_if_directory_is_absent
DeleteDirRecursively: Don't report error for absent directory
2025-10-06 20:04:32 +02:00
Dentomologist f64e57442c DeleteDirRecursively: Don't report error for absent directory
Check if the return value of std::filesystem::remove_all is -1 rather
than 0; the former is the specified return value if there's an error
while 0 just means the directory already didn't exist (which is the end
result we want).

Previously error messages such as the following were possible:
E[COMMON]: DeleteDirRecursively: [path]/User/RedirectSession/ failed The
operation completed successfully.

Also adds a period in the error string to make it look nicer.
2025-10-05 16:29:41 -07:00
Jordan Woyak b3b4020095 Merge pull request #13994 from Dentomologist/visual_studio_fix_dolphinnogui_build
Visual Studio: Fix DolphinNoGUI build
2025-10-05 17:53:37 -05:00
Dentomologist ff45bfbcdc Visual Studio: Fix DolphinNoGUI build 2025-10-05 15:38:43 -07:00
Admiral H. Curtiss 70bd0943a7 Merge pull request #13871 from Dentomologist/cheatsearchwidget_small_refactoring
CheatSearchWidget: Minor refactoring
2025-10-05 00:32:30 +02:00
Admiral H. Curtiss e1fd8c8e8c Merge pull request #13957 from jordan-woyak/wmreal-iolinux-fixes
WiimoteReal/IOLinux: Improvements, fixes, and code cleanups.
2025-10-05 00:06:08 +02:00
Dentomologist 3235f3f58f CheatSearchWidget: Rename member variable
Rename m_session to m_last_value_session to better reflect its meaning
and distinguish it from m_current_value_session which will be introduced
in another commit.
2025-10-04 14:27:15 -07:00
Dentomologist d364a244d7 CheatSearchWidget: Add GetTableRowCount function 2025-10-04 14:27:14 -07:00
Jordan Woyak 38dc8ae3b6 WiimoteReal/IOLinux: Improvements, fixes, and code cleanups. 2025-10-04 14:51:27 -05:00
Jordan Woyak b2fef6ee1f Common/Network: Add BluetoothAddress struct and string conversion functions. 2025-10-04 14:51:17 -05:00
Jordan Woyak b1e8de82a6 Common: Add some utilities to a new UnixUtil header. 2025-10-04 14:51:17 -05:00
Jordan Woyak 504ea99cfa CommonFuncs: Add StrerrorString version of LastStrerrorString that accepts an error number. 2025-10-04 14:51:17 -05:00
Jordan Woyak eec7f65e33 WiimoteReal/IOLinux: Increase inquiry length to 3.84 seconds. This is what Wii games use and it seems to work better. 2025-10-04 14:50:58 -05:00
Jordan Woyak 4d53de5d84 WiimoteReal/IOhidapi: Log the currently attached hid driver on Linux. 2025-10-04 14:43:28 -05:00
Jordan Woyak 572459bc25 WiimoteEmu: Require IRPassthrough has any bound inputs to operate. Users get confused and mistakenly enable it. 2025-10-04 14:34:49 -05:00
Admiral H. Curtiss 9c97498f4b Merge pull request #13914 from dreamsyntax/discord-rpc-update
Externals: Update discord-rpc
2025-10-04 18:31:34 +02:00
Admiral H. Curtiss c9c57f8ba4 Merge pull request #13752 from jordan-woyak/xlib-duplicate-key-names
ControllerInterface/Xlib: Combine keycodes with the same name to fix non-working inputs.
2025-10-04 17:18:16 +02:00
dreamsyntax 6ad99a860c Externals: Update discord-rpc
Upgrade to 963aa9f3e5ce81a4682c6ca3d136cddda614db33
2025-10-04 16:36:19 +02:00
Admiral H. Curtiss 14ce952519 Merge pull request #13946 from JosJuice/i18n-2025-09-17
i18n: Add comments
2025-10-04 16:24:14 +02:00
Admiral H. Curtiss f71bec0efe Merge pull request #13987 from jordan-woyak/sdl-version-bump
Externals: Bump SDL version to release-3.2.24.
2025-10-04 16:19:18 +02:00
Jordan Woyak 7609220e61 WiimoteReal/IOhidapi: Minor warning fixes and cleanups. 2025-10-03 18:10:11 -05:00
Jordan Woyak 72f854d228 Merge pull request #13955 from Xphalnos/master
Externals: Update FMT to 12.0.0
2025-10-03 16:34:38 -05:00
Xphalnos 79c7ebc9c2 Externals: Update FMT to 12.0.0 2025-10-03 19:45:36 +02:00
Jordan Woyak 4a39ca249c WiimoteReal/IOhidapi: Move VID/PID check to a helper function that other backends can use in the future. 2025-10-03 04:45:19 -05:00
Jordan Woyak 6c91e30a0d WiimoteReal/IOhidapi: Remove accidentally included HID Profile byte from write test. 2025-10-03 04:36:16 -05:00
JMC47 70f9ae2432 Merge pull request #13907 from TryTwo/PR_Cheat_Refresh
Cheats: Refresh active code after editing it.
2025-10-02 17:48:00 -04:00
Jordan Woyak dbb5a8eb0e Merge pull request #13926 from Dentomologist/settings_open_file_dialog_at_user_path
Settings: Open file dialogs at user path instead of custom path
2025-10-02 15:13:31 -05:00
Jordan Woyak 1f7220332d Merge pull request #13980 from JoshuaVandaele/sdl-noui
Externals: Allow building SDL without X11/Wayland
2025-10-02 15:09:33 -05:00
Jordan Woyak 16f411678a Externals: Bump SDL version to release-3.2.24. 2025-10-02 14:55:01 -05:00
JosJuice d669f8c3c8 Merge pull request #13986 from SuperSamus/dcbz-avx-fix
dcbz: Fix AVX path
2025-10-02 19:18:59 +02:00
Jordan Woyak cd84d58a1a Merge pull request #13982 from jordan-woyak/sdl-disable-dinput
SDL: Disable DirectInput handling to work around hangs on shutdown.
2025-10-02 03:21:33 -05:00
Jordan Woyak 3dc078c7e2 Merge pull request #13684 from JoshuaVandaele/discordrpc-cmake4
discord-rpc: Bump CMake minimum requirement
2025-10-02 03:20:02 -05:00
Jordan Woyak 4a677445cc Merge pull request #13972 from cscd98/libusb-update
Update libusb submodule to v1.0.29
2025-10-02 03:18:51 -05:00
Joshua Vandaële ce860ab43d discord-rpc: Bump CMake minimum requirement 2025-10-02 07:55:06 +02:00
Martino Fontana 4f737b7aaf dcbz: Fix AVX path 2025-10-01 21:09:18 +02:00
Jordan Woyak a570b24c96 Merge pull request #13985 from Dentomologist/jit64_fix_dcbz_regression
Jit64: Fix dcbz regression
2025-10-01 02:14:32 -05:00
Dentomologist d311724750 Jit64: Fix dcbz regression
Fix a regression from d1ba84987 that caused freezes and/or
graphical/audio glitches in various games.
2025-09-30 22:15:36 -07:00
Jordan Woyak ecb6dbbfd3 WiimoteReal: Use GetEnvForThread within IORead/IOWrite calls to fix real Wii remotes on Android. 2025-09-30 18:03:05 -05:00
JosJuice 0c89c00d8b Merge pull request #13929 from SuperSamus/dcbz-jit-improvements
Jit: Small `dcbz` improvements
2025-09-30 18:52:09 +02:00
Jordan Woyak c11132d2a6 SDL: Disable DirectInput handling to work around hangs with the "8BitDo Ultimate 2" controller. 2025-09-30 03:13:52 -05:00
Jordan Woyak 956f6cfbd2 SDL: Name the hotplug thread. 2025-09-30 03:04:58 -05:00
Joshua Vandaële a8b40a218c Externals: Update libiconv to 1.18
I also excluded libiconv from the Windows CMake builds since it's never used there
2025-09-29 21:52:58 +02:00
Craig Carnell f3529971ee Update libusb submodule to v1.0.29 2025-09-29 14:15:55 +01:00
Joshua Vandaële 7332cc1c8a Externals: Allow building SDL without X11/Wayland 2025-09-29 05:23:32 +02:00
Mateus B. Cassiano 9bf6906432 RealtekFirmwareLoader: more RTL8761B device IDs 2025-09-28 22:04:06 -04:00
JMC47 7cf6e7258c Merge pull request #13974 from JoshuaVandaele/system-glslang
Externals: Update glslang to 16.0.0 and allow using system glslang
2025-09-28 18:21:54 -04:00
JMC47 e5fbc74156 Merge pull request #13082 from Dentomologist/generalpane_hardcore_mode_tooltip_clarifications
GeneralPane: Add Hardcore Mode tooltip clarifications
2025-09-28 14:10:06 -04:00
Joshua Vandaële 5db6e60b71 pugixml: Update to 1.15 and make it a submodule 2025-09-28 20:05:25 +02:00
JMC47 e1c7734ee4 Merge pull request #13260 from JosJuice/android-gcadapter-hotplug-callback
Android: Detect GCAdapter hotplug using BroadcastReceiver
2025-09-28 14:03:50 -04:00
JMC47 cbdb7ac38e Merge pull request #12329 from Dentomologist/balloontip_fix_premature_close_on_balloontip_hover
BalloonTip: Don't hide when the BalloonTip blocks the cursor
2025-09-28 14:03:16 -04:00
JMC47 79a98b8235 Merge pull request #13161 from oltolm/fix_qt6_warnings
dolphinQt: fix Qt6 deprecation warnings
2025-09-28 14:02:56 -04:00
JMC47 a93754cb71 Merge pull request #13245 from JosJuice/mbp-condition-flush
Jit: Flush registers used in memory breakpoint conditions
2025-09-28 14:02:29 -04:00
JMC47 72397ccd87 Merge pull request #13909 from Dentomologist/codewidgets_show_code_approval_in_hardcore_mode
CodeWidgets: Show code approval in Hardcore mode
2025-09-28 14:01:59 -04:00
Joshua Vandaële cdfb389509 Externals: Update glslang to 16.0.0 and allow using system glslang 2025-09-27 08:56:10 +02:00
JMC47 ba2acb872c Merge pull request #13915 from JordanTheToaster/Quiche
Externals: Update gtest to commit eb2d85e
2025-09-26 19:15:43 -04:00
JMC47 3b4fd0bc4f Merge pull request #13961 from Sam-Belliveau/sdl-gamepad-profile
Add SDL Gamepad Profile
2025-09-26 17:27:58 -04:00
JMC47 a7d61dd2a5 Merge pull request #13969 from mspeder/ugreen
RealtekFirmwareLoader: Alternate USB PID for Ugreen CM390
2025-09-26 17:18:42 -04:00
JMC47 593d386496 Merge pull request #13968 from dwilliams27/remove-logs-mail
Logging: Remove unused Logs/Mail/ dir
2025-09-26 17:16:54 -04:00
JMC47 8f9c335633 Merge pull request #13954 from TryTwo/debug_crash_fix
Crash fix: Add debug check to JIT Profiling bool.
2025-09-26 17:15:02 -04:00
JMC47 a175985871 Merge pull request #13951 from TellowKrinkle/InterpreterOpt
Cached Interpreter: Speculative devirtualization
2025-09-26 17:14:24 -04:00
JMC47 ff9e0eb2c3 Merge pull request #13945 from iwubcode/math_transpose_function
Common: add transpose function to Matrix class
2025-09-26 17:14:09 -04:00
JMC47 f96837a321 Merge pull request #13940 from iwubcode/glslang_update
Externals / VideoCommon: update glslang to latest, turn into submodule
2025-09-26 17:13:54 -04:00
JMC47 70d5c85acd Merge pull request #13897 from TryTwo/Imgui_Font_Size
Qt/Imgui: Add SpinBox to adjust imgui font size.
2025-09-26 17:13:40 -04:00
Craig Carnell fc1c060bb4 Use hidapi-src/windows on MINGW as well as MSVC 2025-09-26 21:34:43 +01:00
Craig Carnell 7ab91ff055 Update hidapi submodule to v0.15.0 2025-09-26 21:20:50 +01:00
JMC47 d33c6346f0 Merge pull request #13884 from jordan-woyak/wiimote-report-timing
WiimoteReal: Send reports with proper timing for theoretically better speaker data.
2025-09-26 16:16:21 -04:00
JMC47 fa74c40e78 Merge pull request #13882 from jordan-woyak/sdl-win32-msg
SDL: Remove old Windows joystick bug workarounds.
2025-09-26 16:13:49 -04:00
JMC47 a8fe5c0303 Merge pull request #13634 from jordan-woyak/enum-concepts
Common: Replace enable_if with concepts and other minor modernizations.
2025-09-26 16:13:20 -04:00
TryTwo f8a8ddeddf OSD / Imgui: Add font size spinbox to Interface Pane.
Adjust some imgui windows to work better with different font sizes.
2025-09-25 16:34:04 -07:00
Matthieu Speder 9d0b3e0e39 RealtekFirmwareLoader: Alternate USB PID for Ugreen CM390 2025-09-25 12:04:54 +02:00
Sam Belliveau 0401f4a8c3 Add SDL Gamepad stock profile 2025-09-24 21:38:18 -04:00
Sam Belliveau 52071f3943 Prevent profiles with no device specification from resetting device 2025-09-24 21:38:02 -04:00
Farmerbilly27 8cbfee2136 chore: remove unused Logs/Mail/ dir 2025-09-24 17:42:59 -05:00
iwubcode 491e3390be Externals / VideoCommon: update glslang to latest, turn into submodule 2025-09-23 23:45:38 -05:00
Ryan McGrath 5a6730ab4e macoS: update QoSSession with SO_NET_SERVICE_TYPE.
macOS does not support `SO_PRIORITY` on sockets, but it does apparently
support configuring sockets with a priority flag via a parameter called
`SO_NET_SERVICE_TYPE`. It doesn't appear to be especially well
documented, but it seems to exist as far back as 10.11 (El Capitan).

This patch sets QoSSession to treat connections as
"responsive multimedia audio/video", which some docs appear to describe
as "low delay tolerant, low-medium, loss tolerant, elastic flow,
variable packet interval, rate and size".
2025-09-22 17:30:18 -04:00
Jordan Woyak ed93e9481a WiimoteReal: Send reports with proper timing for theoretically better speaker data. 2025-09-19 22:11:48 -05:00
Jordan Woyak 1e415c8646 Main: Add SA_RESTART to signal handler sigaction sa_flags. 2025-09-19 19:09:54 -05:00
Dentomologist 2d48043b61 Logging: Don't overwrite LDEBUG verbosity in Release builds
Preserve the configured logging verbosity unless the user actually
changes it, rather than capping it to LINFO on release builds.

Rename LogManager::m_level to m_effective_level and distinguish between
the config and effective level in various function/variable names.

Make m_effective_level atomic to prevent data races when setting the
effective log level from the config changed callback.
2025-09-19 13:25:42 -07:00
JMC47 79614956f3 Merge pull request #13795 from matheuswillder/30-FPS-code
GameINI: Add 30 FPS codes to Mario Kart: Double Dash, Mario Kart Wii
2025-09-19 16:18:00 -04:00
Matheus Willder 0113b249bb GameINI: Add 30 FPS codes for multiple games
GameINI: Add 30 FPS codes to Mario Kart: Double Dash, Mario Kart Wii
2025-09-19 11:18:32 +00:00
TellowKrinkle 0cde7ae79b Cached Interpreter: Speculative devirtualization 2025-09-18 21:07:09 -05:00
TryTwo 31ba2af9cb Crash fix: Add check to see if debugging is enabled in Jit's IsProfilingEnabled().
Enable JIT Block Profiling = On, with Enable Debugging UI = Off, will crash dolphin when starting a game.
2025-09-18 17:46:02 -07:00
JosJuice e38fd1d26a i18n: Add comments 2025-09-17 19:50:31 +02:00
JosJuice 8c03702b9c i18n: Improve EditSymbolDialog's symbol vs note handling for translators 2025-09-17 19:50:08 +02:00
iwubcode 9a37c8081d Common: add transpose function to Matrix class 2025-09-17 11:14:09 -05:00
JMC47 fce5f7c74e Merge pull request #13874 from sepalani/bitcast-ptr
Common/BitUtils: Add operator[] to BitCastPtrType
2025-09-17 04:42:22 -04:00
OatmealDome ba7bf19b10 Merge tag '2509'
Release for September 2025
2025-09-16 22:46:25 -04:00
OatmealDome d24cc14e62 Merge branch 'release-prep-2509' 2025-09-16 22:38:08 -04:00
JordanTheToaster 69a05bf319 Externals: Update gtest to commit eb2d85edd0bff7a712b6aff147cd9f789f0d7d0b 2025-09-16 22:02:30 +01:00
JMC47 1109dfb001 Merge pull request #13848 from JoshuaVandaele/USBDevicePicker
USBDevicePicker: Modify USBDeviceAddToWhitelistDialog to be more generic, and use it for a new "More Options..." selection in Bluetooth Passthrough adapters
2025-09-16 15:26:41 -04:00
JMC47 d124b59f64 Merge pull request #13680 from JoshuaVandaele/enet-cmake4
enet: Update to 1.3.18 and clean up CMake
2025-09-16 15:26:23 -04:00
JMC47 d9404e0274 Merge pull request #13941 from jordan-woyak/opcode-concepts
VideoCommon/OpcodeDecoding: Replace enable_if with concepts.
2025-09-16 14:55:16 -04:00
JMC47 76d8451217 Merge pull request #13937 from jordan-woyak/terminator3-speedhack
GameINI: Add 60 FPS patch for NTSC version of Terminator 3.
2025-09-16 14:55:02 -04:00
JMC47 1e3952c801 Merge pull request #13935 from iwubcode/matrix_inverted
Core: support inverting a 4x4 matrix
2025-09-16 14:51:42 -04:00
JMC47 5248471527 Merge pull request #13934 from jordan-woyak/stacked-settings-style-cleanup
DolphinQt: Clean up some of the style sheet hacks in StackedSettingsWindow.
2025-09-16 14:51:30 -04:00
JMC47 67b455007c Merge pull request #13917 from cristian64/center_dialogs
DolphinQt: Center dialogs on top-level parent window.
2025-09-16 14:50:46 -04:00
JMC47 a8a6cfebc7 Merge pull request #13895 from iwubcode/update_shader_asset
VideoCommon: update shader asset to support additional features in custom pipelines
2025-09-16 14:49:33 -04:00
JMC47 5a153c3d41 Merge pull request #13892 from JosJuice/retroachievements-hookableevent
AchievementManager: Use HookableEvent instead of std::function callbacks
2025-09-16 14:48:43 -04:00
JMC47 8b0498f5f2 Merge pull request #13889 from iwubcode/texture_and_sampler_asset
VideoCommon: add TextureAndSamplerAsset for use in custom materials
2025-09-16 14:48:24 -04:00
JMC47 c7b4cd9961 Merge pull request #13876 from iwubcode/strikers_charged_cheat
Data: add gecko code for Mario Strikers Charged that allows disabling captain mega strikes
2025-09-16 14:47:41 -04:00
JMC47 9845aa1541 Merge pull request #13864 from Dentomologist/branchwatch_extract_shared_function_logic
BranchWatch: Extract shared function logic
2025-09-16 14:46:03 -04:00
JMC47 e980927bce Merge pull request #13863 from Dentomologist/enhancements_tab_fix_selection_of_disabled_postprocessing_option
EnhancementsWidget: Fix selection of disabled postprocessing option
2025-09-16 14:45:40 -04:00
JMC47 45a853cad6 Merge pull request #13682 from JoshuaVandaele/libspng-cmake4
libspng: Update to 0.7.4 and clean up CMake
2025-09-16 14:45:03 -04:00
JosJuice c5a7ea0603 Merge pull request #13847 from jordan-woyak/sdl-version-bump
Externals/SDL: Update submodule to release 3.2.20.
2025-09-16 20:23:40 +02:00
JosJuice 770c74cc95 Merge pull request #13852 from Sintendo/jitarm64-subfcx
JitArm64_Integer: subfcx optimizations
2025-09-16 20:16:42 +02:00
JosJuice ae3be169e1 Merge pull request #13908 from Marocco2/patch-1
Android: Set Dolphin documents as Local only
2025-09-16 20:13:09 +02:00
JosJuice 36f49d140f Merge pull request #13905 from JosJuice/arm64emitter-shift-4
Arm64Emitter: Replace shifting size by 4 with IntLog2 minus 3
2025-09-16 20:08:59 +02:00
Jordan Woyak 5865116f97 ScmRevGen: Bump version to 2509 2025-09-15 19:42:21 -04:00
Jordan Woyak f0519d4f6c ScmRevGen: Bump version to 2509 2025-09-15 14:46:44 -05:00
Jordan Woyak 8ade8fa3b3 Merge tag '2506a' into release-prep-2509
First hotfix release for 2506
2025-09-15 14:08:02 -05:00
Jordan Woyak 071dedd492 VideoCommon/OpcodeDecoding: Replace enable_if with concepts. 2025-09-13 19:05:33 -05:00
Jordan Woyak 8fe82ce664 GameINI: Add 60 FPS patch for NTSC version of Terminator 3. 2025-09-13 12:06:08 -05:00
JMC47 695e06ca98 Merge pull request #13930 from Dentomologist/retroachievements_avoid_leaderboard_list_crash
RetroAchievements: Avoid crash due to uninitialized memory read
2025-09-13 03:36:56 -04:00
Jordan Woyak ecb568c45a DolphinQt: Clean up some of the style sheet hacks in StackedSettingsWindow. 2025-09-09 16:47:30 -05:00
Jordan Woyak f66bee48e4 Merge pull request #13936 from TryTwo/imgui_bugfix
ImGui: Fix broken imgui text in Metal backend.
2025-09-08 18:00:28 -05:00
TryTwo 38cef5a3fc Fix broken imgui text in Metal backend. 2025-09-08 12:49:31 -07:00
cristian64 8a639bd13d DolphinQt: Center dialogs on top-level parent window.
The `QtUtils::AdjustSizeWithinScreen()` function now centers the
widget on their parent window after the widget's size is adjusted. This
is required in some desktop environments (generally on Linux systems) to
ensure that the just-resized widget remains aligned with its parent
window.

The creation of the **Cheats Manager** dialog is now deferred to first
show, as creating it within the main window's constructor prevents the
dialog from knowing the real position of its parent window, which is
only properly calculated on first show.

For the same reasons, the analytics prompt is now shown only when the
application is ready (i.e. when the main window has been shown).

| Before | After |
| ------ | ----- |
| <img width="1920" height="1080" alt="[Dolphin Emulator] Misplaced analytics prompt" title="[Dolphin Emulator] Misplaced analytics prompt" src="https://github.com/user-attachments/assets/c3e43b3b-cf79-4398-b531-7de6068c583e" /> | <img width="1920" height="1080" alt="[Dolphin Emulator] Centered analytics prompt" title="[Dolphin Emulator] Centered analytics prompt" src="https://github.com/user-attachments/assets/a10d06d9-7438-4032-b96c-dfcb48826349" /> |
| <img width="1920" height="1080" alt="[Dolphin Emulator] Misplaced Settings dialog" title="[Dolphin Emulator] Misplaced Settings dialog" src="https://github.com/user-attachments/assets/f35b10ee-4f07-48d4-86f9-2537ad5ca7ca" /> | <img width="1920" height="1080" alt="[Dolphin Emulator] Centered Settings dialog" title="[Dolphin Emulator] Centered Settings dialog" src="https://github.com/user-attachments/assets/33e37237-77a4-44f6-a0e2-b709f65b672b" /> |
| <img width="1920" height="1080" alt="[Dolphin Emulator] Misplaced Cheats Manager dialog" title="[Dolphin Emulator] Misplaced Cheats Manager dialog" src="https://github.com/user-attachments/assets/1fbd3836-5639-4d5a-b57e-e2e21f21c9db" /> | <img width="1920" height="1080" alt="[Dolphin Emulator] Centered Cheats Manager dialog" title="[Dolphin Emulator] Centered Cheats Manager dialog" src="https://github.com/user-attachments/assets/3f2b1b50-de16-49b7-bac4-c444c6cab0bc" /> |
2025-09-07 21:28:05 +01:00
iwubcode d403bc3985 Core: support inverting a 4x4 matrix 2025-09-07 11:41:09 -05:00
Jordan Woyak 11b9e40275 Merge pull request #13933 from JoshuaVandaele/rt-firmware-shadow
RealtekFirmwareLoader: Fix shadowed variable warning
2025-09-07 10:32:01 -05:00
Joshua Vandaële 83cbedd609 RealtekFirmwareLoader: Fix shadowed variable warning 2025-09-07 16:54:11 +02:00
Admiral H. Curtiss e0332f3749 Merge pull request #13923 from AdmiralCurtiss/dark-progress-bar
DolphinQt/Styles/Dark: Adjust progress bar
2025-09-07 15:38:24 +02:00
Dentomologist 85a89eb420 RetroAchievements: Avoid uninitialized memory access
Avoid creating and then destroying a leaderboard list when game is null,
as doing so causes an access to uninitialized memory due to a bug in
rcheevos.

This can be triggered by starting a game with an invalid or expired
login token.
2025-09-05 17:23:39 -07:00
JosJuice 489952cf89 Translation resources sync with Transifex 2025-09-03 08:04:21 +02:00
Martino Fontana 667c523755 Jit: Use dcbz() emitter for dcbz_l instead of interpreter fallback
Without cache emulation, these instructions are functionally identical.
In the interpreter, their only difference is related to HID registers checks, which the JIT already doesn't do for `dcbz`.
A loop with `dcbz_l` is used in the SDK function `LCEnable`, which is called frequently in some games.
2025-09-02 23:15:28 +02:00
Martino Fontana d1ba849876 Jit64: dcbz, use VMOVAPS with YMM registers on AVX CPUs
LLVM does this, so let's do it as well.
2025-09-02 23:15:27 +02:00
Martino Fontana 5e69da7eba x64Emitter: Support YMM registers
This is accomplished by adding a 0x100 bit the the register.
Made sure that, on AVX instructions, that bit is trucated.
2025-09-02 22:15:16 +02:00
Dentomologist e44c99cb59 Settings: Open file dialogs at user path
When opening a file dialog to set the location of a custom path, use the
corresponding user path as the starting location instead of the current
custom path.

When no custom path was set the dialog would be opened with a blank path
which causes Windows (not sure about other platforms) to open the dialog
at the same location where the last dialog was closed, or at the current
working directory if no previous dialog had been opened.

If a nonempty custom path has been set then it has also set the
corresponding user path, so the behavior in that case is unchanged.
2025-09-01 14:51:29 -07:00
Admiral H. Curtiss c7ff0bf475 DolphinQt/Styles/Dark: Adjust progress bar 2025-08-31 22:02:00 +02:00
Admiral H. Curtiss 88ef583c0e DolphinQt/Styles/Dark: Fix inconsistent formatting 2025-08-31 21:41:42 +02:00
Tillmann Karras 9396f0f58e GameSettings: clean up texture filtering settings
`MaxAnisotropy = 0` is no longer the safest setting because it forces 1x
even if the game asks for more.

`ForceFiltering` was replaced by `ForceTextureFiltering` in
afe9d5b098. The one remaining occurrence
was merged later.

`ForceTextureFiltering` is an int option and shouldn't be set to False.

Just Dance 3, Just Dance: Best of, and Just Dance: Greatest Hits look
fine on AMD GPUs without manual texture sampling. On Nvidia GPUs they
have a single stripe that I think doesn't warrant forcing manual texture
sampling for everyone.

The NES games I tried worked fine with anisotropic filtering, it just
doesn't do anything.

Various games don't actually have any issue with anisotropic filtering
as long as it's not forced. The only game I could find that actually
requires the default aniso setting is Spider-Man: Shattered Dimensions.

Boogie SuperStar works fine with any texture filtering setting.
2025-08-31 01:03:23 +01:00
Tilka 033a0540f7 Merge pull request #13899 from SuperSamus/patch-cheats-osd
PatchEngine: OSD message showing number of enabled patches and cheats
2025-08-31 00:27:23 +01:00
Martino Fontana 64a20c74fc PatchEngine: OSD message showing number of enabled patches and cheats 2025-08-30 16:51:51 +02:00
Tilka 76c114a02b Merge pull request #13910 from Tilka/ub
Fix some undefined behavior
2025-08-30 06:17:45 +01:00
Tillmann Karras c248f1afa4 IOS/WD: fix wrong BitSet ctor being called
We don't want list initialization here.

Thank you, UB-san.
2025-08-30 03:05:35 +01:00
Tillmann Karras 63257d1ee9 CoreTiming: set default overclock factors to 1.0
I'm not aware of any issue here but let's set meaningful defaults
anyway.
2025-08-30 03:05:35 +01:00
Tillmann Karras 18f0bd1d4b VI: set default overclock factor to 1.0
GetTicksPerHalfLine() gets called via Preset() before RefreshConfig()
has a chance to replace the dummy value 0.0.

Thank you, UB-san.
2025-08-30 03:03:21 +01:00
Tilka 2ff3a7215b Merge pull request #13902 from Tilka/fix_color_clamp
VideoSW: fix clamping after vertex color interpolation
2025-08-30 03:02:42 +01:00
Tilka b47a75fa2d Merge pull request #13912 from jordan-woyak/simplify-saturating-cast
MathUtil: Simplify SaturatingCast implementation and fix edge case.
2025-08-30 03:00:15 +01:00
Tilka 25be1cfe97 Merge pull request #13911 from Dentomologist/gamelist_gridview_sorting
GameList: Use List View's sorting for Grid View
2025-08-30 02:56:18 +01:00
JMC47 e0c72cd963 Merge pull request #13825 from jordan-woyak/dont-count-playtime-while-suspended
Common/Timer: Add a SteadyAwakeClock class to make play time tracking ignore time while suspended.
2025-08-28 13:58:26 -04:00
JMC47 dce27fb58a Merge pull request #13913 from dreamsyntax/titledb-update
Sys: Sync wiitdb files with GameTDB 2025.08
2025-08-28 01:11:14 -04:00
Jordan Woyak da546bebb8 MathUtil: Simplify SaturatingCast implementation with std::cmp_less/cmp_greater and fix a floating point edge case.
Thanks to Dentomologist for catching the edge case.
2025-08-27 21:24:46 -05:00
Dentomologist 489fd643d3 GameList: Use List View's sorting for Grid View
Since Grid View doesn't have a header for users to change sorting
options with, use List View's sorting in Grid View too.
2025-08-27 15:35:38 -07:00
Marocco2 008c292b4e Android: Set Dolphin documents' root supports testing parent child relationships.
Adds `DocumentsContract.Root.FLAG_SUPPORTS_IS_CHILD` to the list of the flags in order to show up for third-party apps for easier file syncing with local/cloud file server providers
2025-08-26 15:40:32 +02:00
dreamsyntax 9e61bee2e0 Sys: Sync wiitdb files with GameTDB
Sync with 20250826093514
2025-08-26 00:37:31 -07:00
Dentomologist 44f6743a5b CodeWidgets: Show code approval in Hardcore mode
When Hardcore mode is enabled, show an icon for each code in
ARCodeWidget and GeckoCodeWidget indicating whether it's an approved
code or not.
2025-08-25 12:31:38 -07:00
Marocco2 834f3634a8 Android: Set Dolphin documents as Local only
Adds `DocumentsContract.Root.FLAG_LOCAL_ONLY` to the list of the flags in order to show up for third-party apps for easier file syncing with local/cloud file server providers
2025-08-25 19:52:36 +02:00
JosJuice de98c3b96f AchievementManager: Use HookableEvent instead of std::function callbacks
The callback mechanism AchievementManager had until now only supported
one caller registering a callback, and it didn't have any
synchronization. This isn't a problem for DolphinQt, but the PR to add
Android support for RetroAchievements exposes these problems. Let's
replace it with HookableEvent, which can handle all of this.
2025-08-24 14:47:13 +02:00
TryTwo ca056611ac Cheats: Refresh active code after editing it. 2025-08-24 04:55:12 -07:00
JosJuice 9716148203 Arm64Emitter: Replace shifting size by 4 with IntLog2 minus 3
The instruction implementations that were shifting the size by 4 would
emit an incorrect instruction when given a size of 64. The correct
implementation is to count the number of leading or trailing zeroes in
the size parameter, which is what IntLog2 does.

No callers are affected by this, as they all use sizes other than 64.
Actually, some of these instructions are even invalid with a size of 64,
but I'm changing them anyway for consistency with the others.
2025-08-24 10:48:21 +02:00
JMC47 2b7faeb920 Merge pull request #13894 from iwubcode/material_asset_update
VideoCommon: update material asset to support additional features in custom pipelines
2025-08-23 23:49:22 -04:00
Tillmann Karras bc417bdcee VideoSW: fix clamping after vertex color interpolation 2025-08-24 02:47:56 +01:00
iwubcode 440999d778 VideoCommon: update material asset to support render state properties, support multi-pass, and textures are now split out (as well as supporting a way to calculate sampler origin) 2025-08-23 15:17:49 -05:00
Tilka 7782e32d9e Merge pull request #13901 from iwubcode/render_state_rename
VideoBackends / VideoCommon: rename member variables in RenderState
2025-08-23 20:56:47 +01:00
iwubcode 14459bcc1b VideoBackends / VideoCommon: rename member variables in RenderState to be consistent 2025-08-23 13:50:22 -05:00
Tilka ab8a02566d Merge pull request #13893 from TryTwo/PR_Slider_Fixes
Qt: Prevent QSlider's QLabels from resizing.
2025-08-23 12:44:17 +01:00
Tilka 50d3a5510c Merge pull request #13898 from SuperSamus/patch-invalidate-cache-fixup
ActionReplay: Fixup #13764
2025-08-23 12:20:25 +01:00
Martino Fontana 8026289775 ActionReplay: Fixup #13764 2025-08-23 12:04:04 +02:00
Tilka a1423e386c Merge pull request #13896 from Tilka/mismatched_tags
VideoCommon: fix -Wmismatched-tags warning
2025-08-23 04:04:01 +01:00
Tillmann Karras 10d0bc66b3 VideoCommon: fix -Wmismatched-tags warning 2025-08-23 03:05:04 +01:00
JMC47 b9affd5bc8 Merge pull request #13869 from TryTwo/ImGui_Updates
Externals: Update ImGui to 1.92.2 and ImPlot. Update code to use new features.
2025-08-22 21:24:27 -04:00
iwubcode f0098eee13 VideoCommon: further remove 'CustomPipeline' details, so we can fully remove it in the very near future 2025-08-22 19:53:17 -05:00
iwubcode 6ec8e0ed8a VideoCommon: update shader asset to support both vertex and pixel shaders; rename to 'RasterSurfaceShader' 2025-08-22 19:48:22 -05:00
JMC47 8bfe9ec595 Merge pull request #13886 from Tilka/drag_lag
FIFOAnalyzer: fix command description updates
2025-08-22 20:27:15 -04:00
JMC47 95781c9ac9 Merge pull request #13764 from SuperSamus/patch-invalidate-cache
ActionReplay/PatchEngine: Make writes invalidate cache
2025-08-22 19:16:47 -04:00
TryTwo d69056aab4 Qt: Prevent Sliders from resizing due to text changing in their label. 2025-08-22 14:46:33 -07:00
Tillmann Karras 30017632dd FIFOAnalyzer: fix command description updates
When dragging the selection, the mismatch between signal
(itemSelectionChanged) and data consumed (currentRow) seemed to cause
the description to lag behind by one row.
2025-08-22 02:02:28 +01:00
JMC47 2e09dc0fdd Merge pull request #13891 from jordan-woyak/grooverider-ini
GameINI: Disable ImmediateXFBEnable for Grooverider.
2025-08-21 16:17:20 -04:00
JosJuice 0c7fe651bb Translation resources sync with Transifex 2025-08-21 21:05:28 +02:00
JosJuice c553344282 JitArm64: Add early exit in MOVI2RImpl ORR loop
Just for performance.
2025-08-21 20:56:06 +02:00
JosJuice 596b290177 JitArm64: Add missing ORR pattern in MOVI2RImpl
We should attempt to use not only mirrored versions of the immediate as
an ORR base, but also the immediate itself. This lets us emit certain
64-bit constants using fewer instructions.
2025-08-21 20:56:06 +02:00
Jordan Woyak ac715a7750 GameINI: Disable ImmediateXFBEnable for Grooverider. 2025-08-21 12:14:21 -05:00
iwubcode 4489ea0ec2 VideoCommon: add TextureAndSamplerAsset, this asset contains both the raw texture data and data about how the texture should be sampled 2025-08-20 19:41:22 -05:00
Tilka 90a137ffdc Merge pull request #13888 from Sintendo/unused-psg
VideoCommon: Remove unused EnumMaps from PixelShaderGen
2025-08-20 23:03:54 +01:00
JosJuice 09e68e707e Merge pull request #13836 from Sintendo/jitarm64-subfe
JitArm64_Integer: Minor subfe optimizations
2025-08-20 22:40:14 +02:00
Sintendo aa085a76bc VideoCommon: Remove unused EnumMaps from PixelShaderGen
They appear to have been unused since #13432.
2025-08-20 21:22:53 +02:00
JMC47 5aaf522a6f Merge pull request #13877 from iwubcode/vertex_shader_custom_uniforms
VideoBackends: allow custom pixel uniforms to be passed to the vertex shader as well
2025-08-20 13:16:00 -04:00
Tilka be6a6bce9f Merge pull request #13873 from Dentomologist/dolphinanalytics_use_pascal_case_for_gamequirk_enum
DolphinAnalytics: Use Pascal case for GameQuirk enum
2025-08-19 21:57:34 +01:00
Tilka 2696e053ea Merge pull request #13887 from Tilka/unused_sign_bit
Jit64: drop unused constant
2025-08-19 19:40:49 +01:00
JMC47 37f5ae4209 Merge pull request #13868 from Geotale/master
Fix Single-Precision-Only Inputs to FMAs Instructions in Interpreter
2025-08-18 18:25:38 -04:00
Tillmann Karras 84b5a73b2a Jit64: drop unused constant
Unused since c4799e5977.
2025-08-18 23:09:37 +01:00
Tilka 8701944dd1 Merge pull request #13883 from Dentomologist/fifoplayerwindow_geometry_fixes
FIFOPlayerWindow geometry fixes
2025-08-18 20:23:24 +01:00
TryTwo affc22f17d Update code to work with new version of ImGui.
UpdateImGuiTexture now handles creating font textures and modifying them.
2025-08-18 05:38:14 -07:00
Sepalani e9f58193a7 Common/BitUtils: Add operator[] to BitCastPtrType 2025-08-18 13:06:12 +04:00
JMC47 32e621765e Merge pull request #13879 from Tilka/get_vertex_size
OpcodeDecoder: provide default GetVertexSize() implementation
2025-08-17 22:34:30 -04:00
Geotale 07443e2d41 Improve Interpreted FMADDS Precision
Improves the accuracy of FMADDS and other single precision FMA operations
This is accomplished by using an error-free transformation
It also thoroughly explains the quirks and difficulty of these operations
This fixes Mario Strikers and is necessary for fully fixing 1080 Avalanche
For single precision inputs it should be equivalent to a 32-bit FMA
2025-08-17 21:15:55 -05:00
Tillmann Karras 37758fa290 OpcodeDecoder: provide default GetVertexSize() implementation 2025-08-18 01:41:14 +01:00
TryTwo 7315acb981 Update ImGui to 1.92.2b 2025-08-17 17:21:05 -07:00
TryTwo 8a8d15799c Update submodule implot 2025-08-17 17:21:05 -07:00
iwubcode 0e73a01279 VideoBackends: allow custom pixel uniforms to be passed to the vertex shader as well 2025-08-17 18:55:40 -05:00
iwubcode 8f2d036561 Data: add gecko code for Mario Strikers Charged that allows disabling captain mega strikes 2025-08-17 18:54:23 -05:00
Dentomologist 1841c151c4 FIFOPlayerWindow: Save and restore window geometry
Aside from allowing users to persistently set the window to their
desired size, this is also necessary to allow saving of the splitter
positions in FIFOAnalyzer to work correctly.
2025-08-17 14:39:40 -07:00
Dentomologist 99be30c0e1 FIFOPlayerWindow: Trigger destructor on Dolphin shutdown
Make MainWindow::m_fifo_window a unique_ptr to ensure its destructor is
triggered when MainWindow is destroyed.

FIFOPlayerWindow doesn't set MainWindow as its parent in order to
prevent raising MainWindow when focusing FIFOPlayerWindow. This avoids
MainWindow covering up RenderWidget when, e.g., trying to use the object
range feature to pinpoint the index of a particular object.

As a consequence, unlike most QObjects FIFOPlayerWindow wasn't destroyed
when its parent widget was since it didn't have one.
2025-08-17 14:39:40 -07:00
Dentomologist 6f43f8eef5 FIFOPlayerWindow: Add stretch to Play/Record tab 2025-08-17 14:39:40 -07:00
Jordan Woyak cee9360e4b ControllerInterface/SDL: Remove manual window message pumping on Windows.
The mentioned SDL hotplug issue seems to have been fixed.
2025-08-17 12:53:09 -05:00
Jordan Woyak cec41b2448 ControllerInterface/SDL: Don't force SDL_HINT_JOYSTICK_THREAD.
SDL3 enables it by default now and things seem to work properly even when it's off these days.
2025-08-17 12:49:19 -05:00
OatmealDome 52806b3dc8 Merge pull request #13881 from OatmealDome/clang-floating-point-nonsense-2
FloatUtils: Replace quieting SNaNs via `0.0 + x` with MakeQuiet
2025-08-17 13:00:19 -04:00
OatmealDome 221d396b3a FloatUtils: Replace quieting SNaNs via 0.0 + x with MakeQuiet 2025-08-17 11:24:38 -04:00
OatmealDome cfb78dc816 FloatUtils: Move MakeQuiet function here from Interpreter_FPUtils 2025-08-17 11:23:12 -04:00
Tilka ab1f75b4d6 Merge pull request #13853 from LillyJadeKatrin/retroachievements-patch-fix
Fixed Patch Allowlist Check
2025-08-17 10:25:30 +01:00
Pokechu22 b8352eeeb9 Merge pull request #13865 from Pokechu22/dsi-mention-mmu
Mention enable MMU in the DSI Exception message (Invalid read from ###/Invalid write to ###)
2025-08-15 10:11:47 -07:00
Dentomologist 3cc00c0676 DolphinAnalytics: Use Pascal case for GameQuirk enum 2025-08-14 13:54:23 -07:00
JMC47 aa45b7fe61 Merge pull request #13867 from TryTwo/gfx_bug_fix
GFX: Fix bugs for AbstractStagingTextures that perform an Upload.
2025-08-13 19:09:07 -04:00
Pokechu22 dfbf39c768 Mention enable MMU in the DSI Exception message (Invalid read from ###/Invalid write to ###)
This has been possible for a long time now (see https://dolphin-emu.org/blog/2016/09/06/booting-the-final-gc-game/#side-effects-of-a-hardcode-rewrite), but it seems like people still aren't aware of it.
2025-08-13 11:55:40 -07:00
TryTwo 6b683517dc Fix bugs related to AbstractStagingTextures that perform an Upload (write to existing texture). This code path had probably never been used before. 2025-08-12 23:43:55 -07:00
Dentomologist bd79bc47cc BranchWatch: Extract shared function logic
IsolateWasOverwritten and IsolateNotOverwritten share the same basic
logic and have almost exactly the same code, with the only difference
being the comparison function used to keep or discard branches. To avoid
unnecessary code duplication and ensure that the functions stay in sync
after any future changes, create a helper function that takes the
comparison function as a parameter and have IsolateWasOverwritten and
IsolateNotOverwritten call that helper.
2025-08-12 12:15:22 -07:00
Dentomologist 4303e086bf EnhancementsWidget: Fix display of default post-processing effect
Show "(off)" instead of "" when the default post-processing effect is
selected. This also indirectly fixes issues with keyboard navigation of
the post-processing effect combobox when the default is selected,
resolving https://bugs.dolphin-emu.org/issues/13863.

m_post_processing_effect was previously using the ConfigStringChoice
constructor that assumes the text and data of each option are identical.
This is true for all the other effects, but since "(off)" has the config
value of "" this assumption was failing for it, causing the combobox to
be blank.
2025-08-11 18:01:14 -07:00
Dentomologist 61d9002ab4 EnhancementsWidget: Unabbreviate function and member names 2025-08-11 17:59:55 -07:00
Tilka 72ef27c157 Merge pull request #13861 from Tilka/unused_lambda_captures
DolphinQt: fix two -Wunused-lambda-capture warnings
2025-08-10 20:26:32 +01:00
Tillmann Karras f04c2799dd VideoSW: fix comment 2025-08-10 19:37:21 +01:00
Tillmann Karras df3dc80190 DolphinQt: fix two -Wunused-lambda-capture warnings 2025-08-10 19:37:21 +01:00
Tilka ba656e641e Merge pull request #13854 from dreamsyntax/fix-regression-callers-broken
PPCSymbolDB: Fix callers not updating
2025-08-10 19:13:29 +01:00
JMC47 4140c6f383 Merge pull request #13860 from SuperSamus/vbi-height-fix
HW/VideoInterface: Don't affect aspect ratio with VBI Frequency Override
2025-08-10 13:48:44 -04:00
Jordan Woyak 292f7401b3 HW/VideoInterface: Don't affect aspect ratio with VBI Frequency Override 2025-08-10 15:45:15 +02:00
LillyJadeKatrin 39ea49fc39 Fixed Patch Allowlist Check
Previous changes to the patch allowlist format were not reflected in AchievementManager; this corrects that and re-enables patches and codes in hardcore mode.
2025-08-10 07:47:19 -04:00
Tilka e099a9c180 Merge pull request #13838 from Tilka/videosw2
VideoSW: reuse Common::Vec2/3/4
2025-08-10 08:26:02 +01:00
Tilka 4fc3106761 Merge pull request #13859 from Tilka/root_path_assert
IOS/FS: add safety assert
2025-08-10 05:29:05 +01:00
Tillmann Karras fa4127b145 VideoSW: reuse Common::Vec2/3/4 2025-08-10 05:17:26 +01:00
Tilka a07974e2c3 Merge pull request #13846 from JoshuaVandaele/better-xcb
Qt: Better wayland detection to enforce xcb
2025-08-10 05:09:25 +01:00
Tilka 5a6c5e2639 Merge pull request #13787 from jordan-woyak/game-config-highlighter-fix
DolphinQt: Make GameConfigHighlighter better handle large files.
2025-08-10 05:02:21 +01:00
Tillmann Karras ec8b8bdb8d IOS/FS: add safety assert
This is to prevent someone (me) from accidentally deleting their entire
/tmp directory just by not initializing the config system correctly.
2025-08-10 04:58:57 +01:00
dreamsyntax d946656b87 PPCSymbolDB: Fix callers not updating
Fixes regression from http://github.com/dolphin-emu/dolphin/pull/13821
2025-08-09 09:36:17 -07:00
Jordan Woyak c5893093fc DolphinQt: Make GameConfigHighlighter better handle large files. 2025-08-08 23:49:24 -05:00
JMC47 e6ed939952 Merge pull request #13839 from Tilka/videosw3
VideoSW: allow disabling the copy filter
2025-08-07 02:18:01 -04:00
Sintendo 6a92a90bce JitArm64_Integer: subfcx - Subtract shifted 12-bit constant
Eliminate an instruction by encoding the constant in the subtraction,
part two.

Before:
0x52900019   mov    w25, #0x8000              ; =32768
0x6b190359   subs   w25, w26, w25

After:
0x71402359   subs   w25, w26, #0x8, lsl #12   ; =0x8000
2025-08-07 07:51:15 +02:00
Sintendo 45a3e35b06 JitArm64_Integer: subfcx - Subtract 12-bit constant
Eliminate an instruction by encoding the constant in the subtraction.

Before:
0x5280037a   mov    w26, #0x1b                ; =27
0x6b1a02bb   subs   w27, w21, w26
0x93407f78   sxtw   x24, w27

After:
0x71006ebb   subs   w27, w21, #0x1b
0x93407f7a   sxtw   x26, w27
2025-08-07 07:51:15 +02:00
Sintendo fc9f2d9cea JitArm64_Integer: subfcx - Optimize b == 0
Equivalent to a negation, no need to materialize the zero.

Before:
0x52800015   mov    w21, #0x0                 ; =0
0x6b1802b6   subs   w22, w21, w24

After:
0x6b1803f6   negs   w22, w24
2025-08-07 07:51:15 +02:00
Sintendo e3d889feb1 JitArm64_Integer: subfcx - Optimize a == 0
This case can be handled as a move. It also generates a constant carry
flag.

Before:
0x52800013   mov    w19, #0x0                 ; =0
0x6b1302b3   subs   w19, w21, w19

After:
0x2a1503f3   mov    w19, w21
2025-08-07 07:51:15 +02:00
JMC47 3111a785a1 Merge pull request #13725 from Sam-Belliveau/more-consistent-looping
Fade audio after an entire loop
2025-08-05 20:02:58 -04:00
JMC47 804cf465fc Merge pull request #13819 from jordan-woyak/null-sound-stream-drop-samples
AudioCommon/Mixer: Skip sample processing when NullSoundStream is being used.
2025-08-05 16:46:57 -04:00
JMC47 ab990018f2 Merge pull request #13831 from JoshuaVandaele/dualcore-conf
Config: Change default value for Dual Core from enabled to disabled
2025-08-05 13:45:15 -04:00
Joshua Vandaële 33c9aa714b USBDevicePicker: Modify USBDeviceAddToWhitelistDialog to be more generic, and use it for a new "More Options..." selection in Bluetooth Passthrough adapters 2025-08-05 13:16:50 +02:00
JosJuice be669c7ce3 Merge pull request #13841 from JosJuice/android-opt-out-back
Android: Opt out of back invoked callback
2025-08-05 08:10:43 +02:00
JMC47 c6d55d1b50 Merge pull request #13791 from jordan-woyak/realtek-firmware-loader
BTReal: Implement Realtek firmware loading.
2025-08-04 19:42:59 -04:00
Jordan Woyak 4494989f78 Externals/SDL: Update submodule to release 3.2.20. 2025-08-04 17:35:46 -05:00
JosJuice 222dda3305 Merge pull request #13845 from Dentomologist/host_remove_unnecessary_functions
Host: Remove unnecessary functions
2025-08-04 19:49:58 +02:00
Joshua Vandaële f8b85edd0c Qt: Better wayland detection to enforce xcb
In certain cases, the platform can be "wayland-egl", "wayland-xcomposite", and other values for which I haven't found a full list yet. Instead of matching only "wayland", we now look for "wayland" anywhere in the `QT_QPA_PLATFORM` string in a case-insensitive manner.

Acknowledgements:
`CaseInsensitiveContains`' implementation was heavily inspired by GNU's non-standard glibc `strcasestr` function, which can be found here licensed under GPLv2 or later: https://ftp.gnu.org/gnu/libc/
2025-08-04 19:34:31 +02:00
Dentomologist 3b832e84e4 Host: Remove outdated comment
Host_RequestFullscreen and Host_UpdateMainFrame have been removed, and
Host_RequestRenderWindowSize has been used by DolphinQt since 80699096
and by Android since e8739156.
2025-08-03 13:24:50 -07:00
Dentomologist 530ea7528e Host: Remove unnecessary functions
Remove Host_RefreshDSPDebuggerWindow (which hasn't done anything since
DolphinWX was removed in 44b22c90) and DSP::Host::UpdateDebugger (which
only called Host_RefreshDSPDebuggerWindow).
2025-08-03 13:19:30 -07:00
Dentomologist d0de0a3f47 Host: Remove unnecessary function
Remove Host_UpdateMainFrame(). The only non-empty call happened in
DolphinNoGUI which called s_update_main_frame_event.Set(), but
DolphinNoGUI never waits on that event.
2025-08-03 13:12:01 -07:00
Jordan Woyak 6ca486ffb2 Merge pull request #13843 from Dentomologist/gamelist_fix_games_not_being_displayed
Game List: Fix games not being displayed
2025-08-01 18:28:35 -05:00
Dentomologist 38accd7fc3 GameTracker: Fix games not being displayed 2025-08-01 16:04:53 -07:00
Jordan Woyak cc3a13d4e4 Merge pull request #13842 from Dentomologist/memorywidget_fix_build_breakage_from_conflicting_prs
MemoryWidget: Fix build breakage from conflicting PRs
2025-08-01 18:03:40 -05:00
Dentomologist c880210ec1 MemoryWidget: Fix build breakage from conflicting PRs
PRs https://github.com/dolphin-emu/dolphin/pull/13786 and
https://github.com/dolphin-emu/dolphin/pull/13797 had incompatible
changes that resulted in the build being broken when they were both
merged.
2025-08-01 15:31:38 -07:00
Martino Fontana 5d71ac268f ActionReplay/PatchEngine: Replace HostWrite with ApplyMemoryPatch
Compared to the former, the latter invalidates the icache, which is
something that is likely desired for patches (especially if they are
applied while the game is running).
2025-08-01 23:25:06 +02:00
Martino Fontana aa7b13f353 PPCDebugInterface: Small refactor to ApplyMemoryPatch
Invalidate icache only if target address has a different value. Take separate arguements,
instead of a struct, to allow easier usage elsewhere. Overload with u8,
u16 and u32 values for the same reason.
2025-08-01 23:24:39 +02:00
Admiral H. Curtiss bec5624287 Merge pull request #13177 from jordan-woyak/remove-nunchuk-hax
ControllerEmu: Remove nunchuk stick data hax.
2025-08-01 22:00:17 +02:00
Admiral H. Curtiss 3fb80bec9b Merge pull request #13780 from jordan-woyak/fix-text-filter-nearest
VideoCommon: Fix "Force Nearest" texture filter setting.
2025-08-01 21:59:04 +02:00
Admiral H. Curtiss 9e271c3f67 Merge pull request #13797 from TryTwo/PR_Memory_Symbols
MemoryWidget: Add Symbols and Notes.
2025-08-01 21:47:43 +02:00
Admiral H. Curtiss 03b709019d Merge pull request #13749 from iwubcode/vertex_shadergen_expand_fix
VideoCommon: fix regression in vertexshadergen for line/point expansion
2025-08-01 21:44:41 +02:00
Admiral H. Curtiss 06e05e0f90 Merge pull request #13794 from Sintendo/doouble-lookup
Avoid map/set double lookups
2025-08-01 21:43:12 +02:00
Dentomologist 7b52555a5f BalloonTip: Don't hide when BalloonTip blocks the cursor
Keep the BalloonTip open when the BalloonTip's arrow prevents the cursor
from being inside the spawning ToolTipWidget, which triggers the
ToolTipWidget's leaveEvent and would previously close the BalloonTip.

When that happens track the cursor until it either leaves the
ToolTipWidget's bounding box or leaves the BalloonTip and goes back to
the ToolTipWidget, and respectively close the BalloonTip or leave it
open.
2025-08-01 12:30:05 -07:00
Admiral H. Curtiss 36aa7b6f3f Merge pull request #13776 from jordan-woyak/win-dark-mode-styles
DolphinQt: Fix Windows dark theme when using external stylesheets.
2025-08-01 21:26:17 +02:00
Admiral H. Curtiss 63064591e8 Merge pull request #13760 from jordan-woyak/allow-skip-ipl
DolphinQt: Always enable the "Skip Main Menu" checkbox when "SkipIPL" is disabled.
2025-08-01 21:24:10 +02:00
Admiral H. Curtiss 5439a345a7 Merge pull request #13829 from JosJuice/android-retroachievements-pause-override
Android: Don't let RetroAchievements override onPause
2025-08-01 21:23:28 +02:00
Admiral H. Curtiss 6b82389f45 Merge pull request #13833 from jordan-woyak/exi-ethernet-atomic-interrupt
HW/EXI_DeviceEthernet: Make interrupt state atomic.
2025-08-01 21:19:17 +02:00
JosJuice 5c7e8db26e Android: Opt out of back invoked callback
When 9d9b6d8 changed our target SDK version to Android 16, it made
Android 16 stop calling onBackPressed and stop delivering KEYCODE_BACK
events. Dolphin's code isn't ready for that yet.

Android lets us opt out of this new behavior for now, so let's do so.
But the opt-out will presumably stop working once we start targeting
Android 17, so we're going to have to update Dolphin's code within the
next one or two years to support the replacement API.
2025-08-01 19:18:09 +02:00
JMC47 c63d74e6c0 Merge pull request #13790 from SuperSamus/retroachivements-update
GameSettings: Minor approved cheats update
2025-07-31 16:34:19 -04:00
Sintendo e9d28649dc JitArm64_Integer: Clean up includes 2025-07-31 20:18:33 +02:00
Sintendo ed5cea2635 JitArm64_Integer: subfex - Explicitly handle a == b
Number of instructions stays the same, but we remove the false
dependency on the input registers.

Before:
0x7a1b037a   sbcs   w26, w27, w27

After:
0x5a9f23fa   csetm  w26, lo
2025-07-31 20:18:21 +02:00
Tillmann Karras 9ff5943ac6 VideoSW: allow disabling the copy filter 2025-07-31 15:51:51 +01:00
TryTwo f7e7b0f6b0 MemoryWidget: Add symbols and Notes.
Add option to hide them.
Add box to search.
Add ability to edit data symbols and notes in MemoryViewWidget.
2025-07-30 17:40:24 -07:00
Tilka 812c6c2ea4 Merge pull request #13830 from CrossVR/broken-depth-clamp-control
DriverDetails: Disable depth_clamp_control on official AMD drivers
2025-07-31 01:06:00 +01:00
Jordan Woyak 9224d2f827 Merge pull request #13821 from AlexanderHarrison/codeview-update-timer
CodeViewWidget: Improve Update performance
2025-07-30 17:42:45 -05:00
JosJuice f26af63c6d Merge pull request #13828 from JosJuice/retroachievements-ipl
Boot: Fix RetroAchievements for GameCube games launched with IPL
2025-07-30 21:51:03 +02:00
JosJuice 62bc93473f Merge pull request #13781 from Dentomologist/controllerinterface_fix_windows_deadlock
ControllerInterface: Fix Windows deadlock
2025-07-30 21:49:23 +02:00
Alex Harrison 56f04b5406 PPCSymbolDB: Fill in callers after loading map files 2025-07-30 13:43:02 -06:00
Alex Harrison 6cb7868286 CodeViewWidget: Improve performance by removing unnecessary FillInCallers computation during update 2025-07-30 13:41:42 -06:00
Tilka d6a4421386 Merge pull request #13835 from Tilka/unused_xf_enumerators
VideoCommon: drop unused XF enumerators
2025-07-30 20:31:56 +01:00
Sintendo 854979937c JitArm64_Integer: subfex - Improve codegen for zero with InHostCarry
Another instance where we needlessly materialized constant zero in a
register. We can just write the carry flag directly.

Before:
0x5280001a   mov    w26, #0x0                 ; =0
0x1a1f035a   adc    w26, w26, wzr

After:
0x1a9f37fa   cset   w26, hs
2025-07-30 21:29:10 +02:00
Tillmann Karras cc71401e29 VideoCommon: drop unused XF enumerators
We handle all six registers (scale/offset * xyz) via the viewport name.
Keeping around unused enumerators only for the z component is confusing.
2025-07-30 19:56:30 +01:00
Tilka 131ca1ba9b Merge pull request #13786 from JosJuice/symboldb-locking
PPCSymbolDB: Improve locking
2025-07-30 17:15:28 +01:00
Tilka cd142aa18d Merge pull request #13834 from AGuy27/master
GameINI: Disable ImmediateXFB for Pétanque Master
2025-07-30 13:33:10 +01:00
AGuy27 6105d025ca Create SP4.ini 2025-07-29 20:05:23 -04:00
CrossVR 0d87f835e2 VKPipeline: Don't include depth clamp control struct when not supported
This should not be needed
2025-07-29 08:42:22 +09:00
CrossVR 59e9267e3d DriverDetails: Disable depth_clamp_control on AMD official drivers 2025-07-29 08:42:22 +09:00
Jordan Woyak 4e0d41627e HW/EXI_DeviceEthernet: Make interrupt state atomic. 2025-07-28 18:30:46 -05:00
Tilka 4d0cf1315e Merge pull request #13832 from Tilka/docs_dsp
docs/DSP: fix some bit pattern inconsistencies
2025-07-28 01:10:35 +01:00
Joshua Vandaële ee68efeee8 Config: Change default value for Dual Core from enabled to disabled
Dual Core is primarily known as one of the first troubleshooting steps when emulation or NetPlay misbehave.

I believe(?) the original intent with having it on by default was likely to support users with weaker machines. However, I believe it would be a lot more reasonable for users to manually enable dual core if they really need the performance boost, rather than it is for them to have come ask us in support channel why their cleanly-installed Dolphin is not emulating their games properly.

Instead, this creates a fragile first impression where a clean install of Dolphin is already set up in a way that leads to inexplicable crashes, subtle timing bugs, and NetPlay desyncs.

Note: This changes only applies to the Desktop application, since mobile devices *do* really need the performance boost.
2025-07-27 19:07:08 +02:00
JosJuice 9f32562e36 PPCSymbolDB: Don't return non-const pointers
For thread safety, we shouldn't return any pointers or references that
can be used to mutate the state of the PPCSymbolDB. This should be the
final part of making PPCSymbolDB thread safe unless I've missed
something.
2025-07-27 17:03:57 +02:00
JosJuice fef77a5f20 PPCSymbolDB: Add missing locking
9395238 added locking in some PPCSymbolDB functions that access member
variables, but far from all. To ensure thread safety, this commit adds
the missing locking.
2025-07-27 16:26:47 +02:00
JosJuice 803e6b017b PPCSymbolDB: Reduce lock contention in LoadMap/LoadMapOnBoot
By building the map in a local variable and then swapping it with the
member variable, we avoid the need to hold a lock while building the
map.
2025-07-27 16:26:47 +02:00
JosJuice 59d126d215 PPCSymbolDB: Rename m_write_lock to m_mutex
This mutex needs to be locked both when reading and writing, not just
when writing.
2025-07-27 16:26:46 +02:00
JosJuice d62e21e7b6 PPCSymbolDB: Wait for locking to succeed
9395238 added a mutex to PPCSymbolDB, and made functions return with an
"empty" result if called while the mutex is locked. This new behavior
has the potential to affect not only less important call sites like the
symbol printing mentioned in a comment, but also the JIT deciding if it
should HLE a function.

A later commit in this pull request decreases the amount of lock
contention, reducing the performance impact of this commit.
2025-07-27 16:26:46 +02:00
Tillmann Karras 288da38dc3 docs/DSP: fix some bit pattern inconsistencies
Thanks to @Oaisus who reported this.
2025-07-27 14:22:10 +01:00
JosJuice 8524e725a8 Android: Add additional null check in GCAdapter
Just in case, since the documentation says this could be null.
2025-07-27 11:37:45 +02:00
Martino Fontana e2ecafcaf3 GameSettings: Minor approved cheats update 2025-07-27 11:22:28 +02:00
JosJuice 1c7df370d9 Revert "Android/GCAdapter: Don't join current thread"
This reverts commit 74ed5e5532.
It solves a problem that no longer exists.
2025-07-27 11:21:04 +02:00
JosJuice 185569778c Android: Detect GCAdapter disconnection using BroadcastReceiver
This lets us get rid of the Reset call in ProcessInputPayload, which was
causing us some threading headaches (see 74ed5e5532). Instead we handle
disconnection in the same way as the libusb implementation does.
2025-07-27 11:21:04 +02:00
JosJuice e2e33becc9 Android: Detect GCAdapter connection using BroadcastReceiver
We can register a BroadcastReceiver to have Android tell us when a GC
adapter gets connected instead of having a loop where we continuously
call SleepCurrentThread(1000) and poll the current status. When waiting
for a GC adapter to connect, this both reduces power usage and improves
responsiveness.

Note that I made openAdapter get the UsbDevice that's been stored by the
hotplug code instead of having openAdapter find the UsbDevice on its own
like before. This is only because I want to ensure that the UsbDevice
being tracked for disconnection is the same as the UsbDevice actually
being used, in case the user has multiple adapters connected.
2025-07-27 11:21:04 +02:00
JosJuice 7508842859 Android: Clean up naming in Java_GCAdapter and Java_WiimoteAdapter
This isn't how we name things in Java/Kotlin.
2025-07-27 11:13:44 +02:00
JosJuice 02e32ffaaf Jit: Flush registers used in memory breakpoint conditions
Aims to fix https://bugs.dolphin-emu.org/issues/13686.

I'm using a less efficient approach for Jit64 than for JitArm64. In
JitArm64, I'm flushing in the slow access code, but in Jit64, I'm
flushing before the split between the slow access code and the fast
access code, because Jit64 doesn't keep register mappings around for
when it's time to emit the slow access code. But the flushing code is
only emitted when there are memory breakpoints with conditions, so I'd
say that this is a performance loss we can live with.
2025-07-27 08:49:41 +02:00
JosJuice a06bc5417d JitArm64: Document an assumption we've been making in EmitBackpatchRoutine
The next commit will add another piece of code that depends on this
assumption that we've been making. Good opportunity to document it.

In practice, all callers of EmitBackpatchRoutine are locking X30.
2025-07-27 08:32:44 +02:00
JosJuice 78afea1312 PowerPC: Track registers used in memory breakpoint conditions 2025-07-27 08:32:44 +02:00
JosJuice c3be049571 Android: Don't let RetroAchievements override onPause
When Android sends Dolphin to the background, emulation *must* pause,
otherwise emulation continues running and continues outputting audio to
the user. RetroAchievements mustn't be allowed to override it.
2025-07-26 19:59:08 +02:00
JosJuice 0fa15342ec Boot: Fix RetroAchievements for GameCube games launched with IPL
The SetDisc function calls AchievementManager::LoadGame with the game's
volume. Calling AchievementManager::LoadGame again afterwards with
nullptr prevents RetroAchievements from working.
2025-07-26 18:08:19 +02:00
JosJuice a6642d5f79 Merge pull request #13789 from Simonx22/update-sdk36-gradle813
Android: Bump SDK to 36 and Gradle to 8.13
2025-07-26 11:19:44 +02:00
Jordan Woyak 57b145990d Merge pull request #13446 from JosJuice/breakpoints-delayed-update
PowerPC: Add RAII handling for breakpoint updates
2025-07-25 23:26:25 -05:00
JMC47 36627f55bb Merge pull request #13827 from jordan-woyak/fix-mplus-save
InputCommon/ControllerEmu: Fix saving of Wii Remote "MotionPlus Attached" setting.
2025-07-25 02:40:39 -04:00
Jordan Woyak 81ebf45c9b Core: Make play time tracking use SteadyAwakeClock. 2025-07-24 23:56:10 -05:00
Jordan Woyak 62c773ac75 Common/Timer: Add a SteadyAwakeClock class which counts non-suspended system running time. 2025-07-24 23:56:10 -05:00
Jordan Woyak dcb289be8f InputCommon/ControllerEmu: Fix saving of Wii Remote "Attach MotionPlus" setting. 2025-07-24 18:44:42 -05:00
Admiral H. Curtiss 64d4c4020c Merge pull request #13822 from jordan-woyak/libusb-init-error
LibusbUtils: Change libusb_init failure from an ASSERT_MSG to an ERROR_LOG_FMT
2025-07-25 00:20:34 +02:00
Admiral H. Curtiss 027c78ee4f Merge pull request #13826 from Dentomologist/gameconfigwidget_unify_tooltips
GameConfigWidget: Unify tooltips
2025-07-25 00:19:56 +02:00
Admiral H. Curtiss 1aadd01038 Merge pull request #13820 from apteryks/gc-font-tool-gcc14-fix
fix building gc-font-tool.cpp with GCC 14
2025-07-25 00:18:17 +02:00
Simon 9d9b6d8705 Android: Bump SDK to 36 and Gradle to 8.13
Starting August 31, 2025, targeting at least Android 15 (API level 35) will be required: https://support.google.com/googleplay/android-developer/answer/11926878
This commit sets the target SDK to API level 36 (Android 16), the latest available version.
2025-07-24 15:43:52 -04:00
Dentomologist e2a8e7da48 GameConfigWidget: Unify tooltips
Use ToolTipWidget::SetDescription insead of QWidget::setTooltip to put
the description in the BalloonTip with the title, instead of having the
description be in a separate standard tooltip.
2025-07-24 12:03:57 -07:00
Jordan Woyak 7871b24b59 LibusbUtils: Change libusb_init failure from an ASSERT_MSG to an ERROR_LOG_FMT. 2025-07-23 21:16:04 -05:00
Jordan Woyak 95ad2d804d RealtekFirmwareLoader: Automatically download missing firmware from gitlab.com. 2025-07-23 19:58:25 -05:00
Jordan Woyak bfef65a9d1 BTReal: Implement Realtek Bluetooth firmware loading.
Logic and structures are largely taken from Linux source:
drivers/bluetooth/btusb.c
drivers/bluetooth/btrtl.c
drivers/bluetooth/btrtl.h
2025-07-23 19:58:25 -05:00
Jordan Woyak 0e90b85bab LibUSBBluetoothAdapter: Add SendBlockingCommand function. 2025-07-23 19:58:25 -05:00
Jordan Woyak 5336c23329 Core: Move HCICommandPayload struct template from BTReal to LibUSBBluetoothAdapter header. 2025-07-23 19:58:25 -05:00
Jordan Woyak 2b541361c6 Common: Move AsU8Span utility function from BTReal to Common/BitUtils. 2025-07-23 19:58:25 -05:00
JMC47 45ba6ed6b1 Merge pull request #13770 from JoshuaVandaele/usbutils
USBUtils: Refactor USB device handling
2025-07-23 20:57:17 -04:00
Jordan Woyak ff0560574e AudioCommon/Mixer: Skip sample processing when NullSoundStream is being used. 2025-07-23 17:53:21 -05:00
JosJuice 10cedc90af Translation resources sync with Transifex 2025-07-23 18:55:15 +02:00
JosJuice f4a86931a4 Merge pull request #13818 from Amphitryon0/show-code-default
DolphinQt: Stop re-enabling Code widget when toggling debug mode
2025-07-23 18:13:33 +02:00
Jules Blok 69f331e989 Merge pull request #13100 from CrossVR/unrestricted-depth-range
Vulkan: Add support for unrestricted depth range.
2025-07-23 19:25:09 +09:00
Joshua Vandaële 4ae195ee60 USBUtils: Refactor USB device handling 2025-07-23 03:26:25 +02:00
Maxim Cournoyer 74814b3203 fix gc-font-tool.cpp with GCC 14 2025-07-22 16:58:57 +09:00
Amphitryon 8e84943e37 DolphinQt: Stop re-enabling Code widget when toggling debug mode
It is useful enough for the Code widget to be enabled the first time
debugging is enabled, but it should not be re-enabled every time the
setting is toggled off and then back on. This also ensures that the
interface is consistent if debugging is enabled without using the
checkbox.
2025-07-21 22:46:55 -05:00
Tilka 79a3af2e6e Merge pull request #13805 from SuperSamus/vulkan-present-sempahore-reuse-fix
Vulkan: Fix present semaphores reuse
2025-07-22 03:03:04 +01:00
JMC47 c6de692d01 Merge pull request #13784 from jordan-woyak/btreal-restore-keys-on-hci-reset
BTReal: Always restore link keys on HCI reset.
2025-07-21 21:00:20 -04:00
Martino Fontana b80e178403 Vulkan: Fix present semaphores reuse
Fixes validation errors.
See https://docs.vulkan.org/guide/latest/swapchain_semaphore_reuse.html
2025-07-21 16:02:53 +02:00
CrossVR 0ace5f5d3d Vulkan: Add support for unrestricted depth range. 2025-07-21 14:07:26 +09:00
Jordan Woyak c39c8277b7 Merge pull request #13674 from JosJuice/android-visualize-input
Android: Show input indicators in controller settings
2025-07-20 17:46:47 -05:00
Tilka dccd8709d8 Merge pull request #13803 from JoshuaVandaele/msgmerge-sort
Translation: Remove deprecated --sorted-output/-s option
2025-07-20 17:40:02 +01:00
JMC47 3700eddf0c Merge pull request #13815 from AdmiralCurtiss/windows-common-funcs
Common: Move GetDeviceProperty() into its own header
2025-07-19 20:14:23 -04:00
oltolm 49c72efcd3 fix Qt6 deprecation warnings 2025-07-19 22:08:15 +02:00
Admiral H. Curtiss 68713e08b4 Common: Move GetDeviceProperty() into its own header
Otherwise we include Windows headers in the entire codebase through CommonFuncs.h
2025-07-19 21:24:51 +02:00
Tilka 5cc0a5a3be Merge pull request #13816 from Tilka/fix_di_init
WII_IPC: fix homebrew that uses the disc drive
2025-07-19 20:13:18 +01:00
Tillmann Karras 6a55a1bf68 WII_IPC: fix homebrew that uses the disc drive
Dolphin never emulated the AHBPROT register before, but the default
value when reading from unimplemented MMIO registers used to be -1,
which happened to match what AHBPROT reads as when all restrictions are
disabled. In 6f25e20c6a I changed the
default to 0 to match observed hardware behavior in the memory range of
the command processor. This broke libogc's DI_Init() which checks
AHBPROT for full hardware access (presumably to ensure that bypassing
IPC for Video DVDs will work).
2025-07-19 16:42:15 +01:00
Admiral H. Curtiss 2da774b2f7 Merge pull request #13811 from TryTwo/Update_darkmode
Darkmode qtoolbuttons and checked state.
2025-07-19 13:06:16 +02:00
TryTwo 3bd110a210 Darkmode qtoolbuttons and checked state.
Generic qtoolbuttons can be much smaller than qpushbuttons.
2025-07-18 22:46:15 -07:00
JMC47 b2b2808d01 Merge pull request #13812 from Dentomologist/memoryviewwidget_fix_updates_at_end_of_address_space
MemoryViewWidget: Fix updates at end of address space
2025-07-19 00:42:34 -04:00
Admiral H. Curtiss 4868970504 Merge pull request #13799 from JoshuaVandaele/gitmodules
.gitmodules: Various ameliorations
2025-07-19 05:08:07 +02:00
Joshua Vandaële 4788af92bc .gitmodules: Update URLs for lz4, hidapi, and minizip-ng submodules to include .git extension 2025-07-19 04:29:17 +02:00
Joshua Vandaële 0019256707 .gitmodules: Add shallow option for all submodules 2025-07-19 04:29:14 +02:00
Joshua Vandaële 0611880c56 .gitmodules: Remove branch specifications for submodules 2025-07-19 04:28:19 +02:00
Admiral H. Curtiss 47b74c0e74 Merge pull request #13813 from Dentomologist/memorywidget_fix_splitter_state_restoration
MemoryWidget: Fix splitter state restoration
2025-07-19 04:23:23 +02:00
JMC47 b25e293cc8 Merge pull request #13767 from SuperSamus/misc-gameini-updates
GameINI: Misc updates
2025-07-18 16:43:13 -04:00
JMC47 575b6a9cd8 Merge pull request #13648 from SuperSamus/dbz-budokai-xfb
GameINI: Disable Immediately Present XFB for Dragon Ball Z: Budokai and Dragon Ball Z: Budokai 2
2025-07-18 14:14:56 -04:00
Dentomologist c29b3e098d MemoryWidget: Fix splitter state restoration
Fix a copy-paste error causing MemoryWidget's splitter to load the wrong
state data when creating the MemoryWidget.

For me this caused the side panel to be scrunched up every time I
started Dolphin, but the exact effects probably depend on the state of
your MemoryWidget and CodeWidget.
2025-07-17 14:40:14 -07:00
Dentomologist 43ab79ae23 MemoryViewWidget: Fix updates at end of address space
Fix two bugs that occurred when viewing a memory range starting shortly
before 0xffffffff.

Bug 1: When there was at least one visible memory address at or after
0x0 none of the values would be displayed even when some of the
addresses were valid. This happened because the loop condition in
GetValues immediately returned false since m_address_range.first >
m_address_range.second, causing m_values to be empty. This in turn led
every address to be considered INVALID_MEMORY in UpdateColumns.

Bug 2: When m_address_range.second was equal to 0xffffffff GetValues
would enter an infinite loop. This happened because address would
overflow to 0 after printing the last value in the table, causing the
loop condition address <= m_address_range.second to be true forever.
2025-07-17 13:45:08 -07:00
JMC47 b6be5ee5d3 Merge pull request #13801 from jordan-woyak/usb-add-device-dialog-adjust-size
USBDeviceAddToWhitelistDialog: Use adjustSize for a better default dialog size.
2025-07-16 20:30:36 -04:00
JMC47 9e05063929 Merge pull request #13793 from jordan-woyak/libusb-unicode-descriptor
LibusbUtils: Add GetStringDescriptor function.
2025-07-16 20:30:12 -04:00
JMC47 295ae819f5 Merge pull request #13792 from Tilka/wii_banners
WiiSaveBanner: fall back to $userdir/Load/WiiBanners
2025-07-16 20:29:46 -04:00
JMC47 9f076d4707 Merge pull request #13783 from jordan-woyak/schedule-event-from-thread-fix
CoreTiming: Fix unsafe usage of m_globals.global_timer in ScheduleEvent from non-CPU thread.
2025-07-16 20:29:18 -04:00
JMC47 291c410e8e Merge pull request #13683 from JoshuaVandaele/miniupnpc-cmake4
miniupnpc: Update to 2.3.3 and make it a submodule
2025-07-16 20:28:16 -04:00
Jordan Woyak d3336d1129 Merge pull request #13808 from LillyJadeKatrin/retroachievements-submodule
Update rcheevos submodule to latest version
2025-07-16 18:01:59 -05:00
Joshua Vandaële 81a9809525 Translation: Re-order translation strings 2025-07-16 23:55:03 +02:00
Joshua Vandaële 4a520c62a0 Translation: Remove deprecated --sorted-output/-s option
See https://lists.nongnu.org/archive/html/info-gnu/2024-12/msg00000.html
2025-07-16 23:54:29 +02:00
Joshua Vandaële ebcca270cc Translation: Update source and translated strings 2025-07-16 23:54:19 +02:00
Joshua Vandaële 5c7743e617 Translation: Specify encodings for Qt strings
This is required for update-source-strings.sh to work with xgettext 0.25.0
2025-07-16 23:52:07 +02:00
Joshua Vandaële 12482c8c3b Translation: Ensure files are treated in the same order
This also tells `sort` to ignore the case, and to only consider using alphanumeric characters, to ensure parity across different filesystems.
2025-07-16 23:52:04 +02:00
JMC47 c2bace5967 Merge pull request #13798 from TryTwo/PR_CodeWidget_NoUpdate
CodeWidget: Add button that locks the view's address
2025-07-16 14:32:21 -04:00
LillyJadeKatrin 79230c38f1 Update rcheevos submodule to latest version 2025-07-16 00:03:20 -04:00
TryTwo d53e766d65 CodeWidget: Add button that prevents automatic updates to the address, such as navigating to the PC on pause. 2025-07-15 12:23:47 -07:00
JosJuice 5674afa63d Merge pull request #13804 from jordan-woyak/add-device-shorter-placeholder-text
USBDeviceAddToWhitelistDialog: Remove examples from VID/PID entry placeholder text.
2025-07-15 18:44:21 +02:00
JosJuice 2e26c03378 Merge pull request #13802 from Dentomologist/cexiagp_dont_create_save_file_if_path_is_empty
CEXIAgp: Don't create save file if path is empty
2025-07-15 18:32:39 +02:00
Jordan Woyak 1dbb9a193e Merge pull request #13806 from Dentomologist/iofile_require_trivially_copyable_types
IOFile: Require trivially copyable types
2025-07-14 16:03:40 -05:00
Dentomologist 8a28b95480 IOFile: Require trivially copyable types
Require ReadArray and WriteArray to be called with a trivially copyable
type.

ReadArray and WriteArray call std::fread and std::fwrite respectively.
These functions trigger undefined behavior when the objects are not
trivially copyable, so this adds that requirement to the callers.
2025-07-14 11:55:24 -07:00
Jordan Woyak 9e57447fd3 USBDeviceAddToWhitelistDialog: Limit VID/PID entry to 4 characters. 2025-07-12 16:58:46 -05:00
Jordan Woyak 2bbd1fcf6b USBDeviceAddToWhitelistDialog: Remove examples from VID/PID entry placeholder text. 2025-07-12 16:54:44 -05:00
Jordan Woyak 633fd5df70 Merge pull request #13775 from jordan-woyak/sdl-gamepad-rename
InputCommon: Rename SDL input backend GameController to Gamepad.
2025-07-12 16:50:04 -05:00
Jordan Woyak d92f7f194c Merge pull request #13747 from JoshuaVandaele/warns-only
Fix various warnings
2025-07-12 15:37:53 -05:00
Dentomologist 30bd7e18f0 CEXIAgp: Don't create save file if path is empty
Fix creation of a ".sav" file in the current working directory on
emulation shutdown when a slot is set to "Advance Game Port" and the
"GBA Cartridge Path" is empty.

Fixes https://bugs.dolphin-emu.org/issues/12975.
2025-07-12 13:07:44 -07:00
Joshua Vandaële 06882bd2dc Fix various warnings 2025-07-12 12:47:30 +02:00
Jordan Woyak 3f314c81e9 USBDeviceAddToWhitelistDialog: Use adjustSize for a better default dialog size. 2025-07-12 05:13:47 -05:00
Jordan Woyak f76ab86326 Merge pull request #13800 from ITotalJustice/master
AudioCommon/Mixer: make large array in Mixer::MixerFifo::Enqueue() static so that it's not created on the stack.
2025-07-10 19:23:09 -05:00
ITotalJustice 8d2a15be3f AudioCommon/Mixer: make large array in Mixer::MixerFifo::Enqueue() static so that it's not created on the stack. 2025-07-11 01:01:03 +01:00
Jordan Woyak 29964ff55e Merge pull request #13796 from Dentomologist/videobackendbase_remove_redundant_unique_ptr_reset
VideoBackendBase: Remove redundant unique_ptr reset
2025-07-09 17:11:58 -05:00
Dentomologist 72ea7a2128 VideoBackendBase: Remove redundant unique_ptr reset
Remove redundant reset of g_presenter in ShutdownShared, which is
already reset earlier in the function.
2025-07-09 14:12:06 -07:00
Sintendo f2392e4048 Avoid map/set double lookups
Fix some common anti-patterns with these data structures.

- You can dereference the iterator returned by `find` to access the
  underlying value directly, without an extra `operator[]`/`at`.
- Rather than checking for an element before insertion/deletion, you can
  just do the operation and if needed check the return value to
  determine if the insertion/deletion succeeded.
2025-07-08 06:53:42 +02:00
Jordan Woyak d55012f8d0 Merge pull request #13726 from hoogmin/cpp23_ranges_patch
Common: Replace Contains and ContainsSubrange with C++23 std::ranges equivalents
2025-07-07 21:05:28 -05:00
Joshua Vandaële 57cbd98f42 miniupnpc: Update to 2.3.3 and make it a submodule 2025-07-08 03:48:37 +02:00
Jordan Woyak b23da4f15c Merge pull request #13678 from JoshuaVandaele/SFML-cmake4
SFML: Update to 3.0.1
2025-07-07 20:40:46 -05:00
Jordan Woyak c37882de77 Merge pull request #13753 from JoshuaVandaele/netplay-hoverblur
ClickBlurLabel: Create a label which is blurred until it is clicked
2025-07-07 20:07:11 -05:00
Jordan Woyak 13784f842e LibusbUtils: Add GetStringDescriptor function to return unicode strings and replace our libusb_get_string_descriptor_ascii calls. 2025-07-06 19:41:14 -05:00
Tillmann Karras fe6fd2279c WiiSaveBanner: fall back to $userdir/Load/WiiBanners
Unlike custom banners which work as an override, this mechanism works as
a fallback. The use case is if you have games you don't really play but
want to keep around for testing purposes without filling up your NAND
with lots of saves. For ease of use, the directory structure is the same
but only title/$title_hi/$title_lo/data/banner.bin files are
relevant.
2025-07-04 23:15:50 +01:00
Jordan Woyak a5e85caf0a Merge pull request #13736 from jordan-woyak/main-config-gfx
DolphinQt: Move graphics config to main Settings window.
2025-07-03 01:31:01 -05:00
Admiral H. Curtiss b03a7821f2 Merge pull request #13778 from matheuswillder/GameINI-Disable-Dual-Core-for-Rally-Championship
GameINI: Disable Dual Core for Rally Championship
2025-07-01 23:09:07 +02:00
Admiral H. Curtiss a84fa387de Merge pull request #13785 from Dentomologist/memorywidget_fix_hex_input_validation_errors
MemoryWidget: Fix hex input validation errors
2025-07-01 22:54:37 +02:00
Admiral H. Curtiss 74eeeebfde Merge pull request #13788 from jordan-woyak/post-proc-config-window-adjust-size
DolphinQt: Adjust PostProcessingConfigWindow size on creation.
2025-07-01 22:51:30 +02:00
Jordan Woyak 4126b4e904 DolphinQt: Adjust PostProcessingConfigWindow size on creation. 2025-07-01 15:26:13 -05:00
JMC47 2871fe08c9 Merge pull request #13782 from noahpistilli/wii_no_pad
IOS/KD: Pad Wii Numbers to 16 digits
2025-07-01 14:52:41 -04:00
Dentomologist 0093ed1ac8 MemoryWidget: Fix "Hex Byte String" validation failures
Fix the input string failing to validate when the "Hex Byte
String" input type is selected and either the user adds a 0x prefix or
the "Hex" box is checked (or both).

The latter failure was particularly troublesome because when "Hex Byte
String" is selected the "Hex" checkbox is disabled. Users would have to
switch to a data type that enabled the box, toggle it, then switch back
to "Hex Byte String" to fix it.

Fix these errors by not adding a prefix when the "Hex" box is checked,
and removing the "0x" prefix from the user's input if present.
2025-06-30 11:34:20 -07:00
Jordan Woyak 8b2d569932 BTReal: Always restore link keys on HCI reset. 2025-06-30 04:07:45 -05:00
Dentomologist 8f4a0b0e77 MemoryWidget: Allow 0x prefix when Hex box is checked.
Fix validation failing when the user has checked the Hex box and also
includes a "0x" or "-0x" prefix in their input.

Previously an extra "0x" would be inserted, causing the user's input of
"0x13" to become "0x0x13" which would then fail to validate.
2025-06-30 00:12:48 -07:00
Jordan Woyak c597c70316 CoreTiming: Fix unsafe usage of m_globals.global_timer in ScheduleEvent from non-CPU thread. 2025-06-29 20:55:43 -05:00
JMC47 9a0d4501f8 Merge pull request #13751 from jordan-woyak/btreal-improvements
Bluetooth Passthrough Improvements
2025-06-29 18:00:02 -04:00
JMC47 626315d50a Merge pull request #13750 from TryTwo/PR_Symbol_Loading
PPCSymbols: Restructure loading on boot and add a mutex to prevent crashes.
2025-06-29 15:44:52 -04:00
Jordan Woyak 936887838a BTReal: Don't falsely increase a controller's ACL packet number buffer size. WARN_LOG if the size is smaller than that of the original BT module. 2025-06-28 18:54:21 -05:00
Jordan Woyak 7fe4a6e4f3 LibUSBBluetoothAdapter: Change the request type of our generated HCI commands from LIBUSB_RECIPIENT_INTERFACE to LIBUSB_RECIPIENT_DEVICE.
This changes the value from 0x21 to 0x20 which now matches the value that Wii software generates.
2025-06-28 18:54:21 -05:00
Jordan Woyak 25583658d2 State: Increase STATE_VERSION. 2025-06-28 18:54:21 -05:00
Jordan Woyak 0e25979449 BTReal: Attempt to configure HCI_SERVICE_TYPE_GUARANTEED on all connections for improved performance with certain adapters. 2025-06-28 18:54:21 -05:00
Jordan Woyak 350ec54779 BTReal: Improvements:
Separate LibUSB logic into LibUSBBluetoothAdapter class.
Submit transfers on thread with proper timing.
Throttle before ACL input for reduced input latency.
Immediately send IPC replies for outgoing data.
Continuously submit libusb transfers to fill HCI/ACL input queues.
Simplify endpoint handling and state saving.
Other cleanups.
2025-06-28 18:54:16 -05:00
Jordan Woyak 541dbdfead IOS: Move DoStateForMessage from BTEmu to BTBase. 2025-06-28 18:45:52 -05:00
Jordan Woyak b3e349b4df Merge pull request #13772 from rastshawn/use-btdevice-selection
BTReal: bugfix - BT passthrough uses selected device rather than first compatible device in list
2025-06-28 18:45:05 -05:00
Noah Pistilli f8e22f448d IOS/KD: Pad Wii Numbers to 16 digits 2025-06-28 19:22:14 -04:00
Dentomologist c613d3ca10 ControllerInterface: Fix Windows deadlock
Remove the redundant s_populate_mutex and only use
ControllerInterface::m_devices_population_mutex instead to prevent a
deadlock caused by locking them in opposite orders.

The device population functions in the win32 InputBackend previously
locked s_populate_mutex first before calling various functions that
locked m_devices_population_mutex. This normally worked but
ControllerInterface::RefreshDevices locks m_devices_population_mutex
first and then calls HandleWindowChange which then locked
s_populate_mutex, potentially causing the deadlock.

Fix this by using PlatformPopulateDevices to lock
m_devices_population_mutex before running the code that was previously
protected by s_populate_mutex. The functions in question lock
m_devices_population_mutex anyway, so this shouldn't meaningfully
increase contention on the lock.

Reproduction steps:

* Let Dolphin finish startup.
* In Win32.cpp::OnDevicesChanged set a breakpoint on the call to
  PlatformPopulateDevices. When the breakpoint is triggered the function
  will have locked s_populate_mutex, but since PlatformPopulateDevices
  won't have run yet m_devices_population_mutex will still be unlocked.
* Unplug a device from your computer.
* Wait for the breakpoint to trigger. (At this point you can plug the
  device back in).
* Freeze the ntdll.dll!TppWorkerThread() that triggered the breakpoint.
* Resume Dolphin and start a game.
* Core::EmuThread will call ControllerInterface::ChangeWindow which
  calls RefreshDevices. It locks m_devices_population_mutex, then calls
  InputBackend::HandleWindowChange, which tries to lock
  s_populate_mutex.
* Unfreeze ntdll.dll!TppWorkerThread().

At this point EmuThread and TppWorkerThread are deadlocked. The UI is
still responsive since the Host thread is unaffected, but trying to stop
the game or close Dolphin normally will fail since EmuThread is unable
to stop.
2025-06-28 14:00:27 -07:00
Jordan Woyak 60156f4f94 VideoCommon: Fix "Force Nearest" texture filter setting. 2025-06-28 15:52:27 -05:00
JosJuice 8d7bb0a44a Translation resources sync with Transifex 2025-06-28 22:45:47 +02:00
Jordan Woyak 3a32013740 Merge pull request #13773 from JosJuice/i18n-2025-06-22
i18n: Add comments
2025-06-28 15:13:03 -05:00
JosJuice bc1d8ffcbb i18n: Add comments 2025-06-28 21:41:44 +02:00
Matheus Willder 48a209d76e GameINI: Disable Dual Core for Rally Championship
When selecting cars, this game crashes with GFX FIFO: Unknown Opcode. This is solved by disabling Dual Core, as the error message suggests.

There is no information about this on the Wiki, just a link to a gameplay on YouTube.

This is my first PR here and one of the first ones on GitHub. Due to personal issues I don't have much free time to dedicate to this, but I'm doing my best to get everything right.
2025-06-27 20:47:28 -03:00
Martino Fontana 99be5eb6c8 GameINI: Misc updates 2025-06-28 00:44:51 +02:00
Jordan Woyak 4af2e27821 DolphinQt: Fix Windows dark theme when using external stylesheets. 2025-06-25 21:53:04 -05:00
TryTwo 9395238159 PPCSymbolDB: Add a mutex to prevent m_functions from being accessed by two different threads on boot.
On boot should be the only time this happens.
2025-06-25 12:11:46 -07:00
TryTwo fe121e4c6e PPCSymbolDB: Move loading map on boot logic from boot.cpp into PPCSymbolDB, as it will be needing a mutex.
Cleanup loading code and reduce amount of signals.

On boot. allow previously loaded map to be kept, if its filename matches. Useful for restarting a game with a large symbol map.
2025-06-25 12:01:16 -07:00
Jordan Woyak 609d91156a InputCommon: Rename SDL input backend GameController to Gamepad. 2025-06-25 00:23:48 -05:00
Joshua Vandaële 8f0ef62a71 ClickBlurLabel: Create a label which is blurred until it is clicked
This is particularly useful for people who stream their desktop and don't want to accidentally leak their IP or room.
2025-06-25 04:08:04 +02:00
JMC47 43aa7e9b96 Merge pull request #13694 from jordan-woyak/sdl3
Update to SDL3
2025-06-24 18:59:48 -04:00
JMC47 43c156084b Merge pull request #13759 from jordan-woyak/calibrate-autocomplete
DolphinQt: Make Calibration autocomplete when data is "sensible" and stick is returned to neutral position.
2025-06-24 18:22:48 -04:00
Shawn Rast 71fa08813a BT passthrough uses selected device rather than first alphabetical compatible device 2025-06-24 15:39:46 -05:00
JMC47 e9b57393a6 Merge pull request #13766 from JosJuice/powerpc-missing-updates
PowerPC: Add missing SDRUpdated/MSRUpdated calls
2025-06-24 16:36:49 -04:00
JMC47 97febd9477 Merge pull request #13763 from Dentomologist/mainwindow_show_hardcore_mode_error_for_recording_playback
MainWindow: Show hardcore mode error for recording playback
2025-06-24 16:35:56 -04:00
JMC47 0946814711 Merge pull request #13761 from Dentomologist/qt_use_nonautodismissiblemenu_in_more_places
Qt: Use NonAutodismissibleMenu in more places
2025-06-24 16:35:40 -04:00
JMC47 3627cfb7b1 Merge pull request #13758 from Dentomologist/threadwidget_fix_line_edit_margins
ThreadWidget: Fix line edit margins
2025-06-24 16:35:12 -04:00
JMC47 2e8da29ca2 Merge pull request #13756 from Tilka/price_is_right
GameSettings: some updates
2025-06-24 16:34:47 -04:00
JMC47 f7fa59e05d Merge pull request #13754 from SuperSamus/nsmbw-pal-remove-speedhack
GameINI: Remove NSMBW PAL speed hack
2025-06-24 16:34:27 -04:00
Jordan Woyak fbced5d0f5 Merge pull request #13774 from Tilka/cp_cleanup
VideoCommon: remove unused struct fields
2025-06-24 14:41:25 -05:00
Tillmann Karras 59d2611a94 VideoCommon: remove unused struct fields 2025-06-24 19:38:45 +01:00
Jordan Woyak 6a0963908d DolphinQt: Make Calibration autocomplete when data is "sensible" and stick is returned to neutral position. 2025-06-24 02:18:25 -05:00
JMC47 fa9f71e482 Merge pull request #13769 from JosJuice/merge-dbat-mappings
Memmap: Optimize UpdateLogicalMemory by merging mappings
2025-06-22 15:29:51 -04:00
TryTwo 5836ca133c PPCSymbolDB: Move function for finding file path to PPCSymbolDB, so MenuBar doesn't have to randomly access boot.cpp to get the file path. 2025-06-22 11:03:03 -07:00
JMC47 c2aaca2b16 Merge pull request #13765 from TryTwo/CodeWidget_clear_unused
CodeWidget: Clear calls/callers if no symbol exists.
2025-06-22 01:05:59 -04:00
JMC47 19f3b7e61f Merge pull request #13691 from TryTwo/PR_Notes
Debugger Add note-type symbols .
2025-06-22 01:05:42 -04:00
JosJuice ac84ea17a6 Memmap: Optimize UpdateLogicalMemory by merging mappings
Instead of creating many 128 KiB mappings, we can create a few large
mappings. On my Windows PC, this speeds up GameCube (FakeVMEM) game boot
times by about 200 ms and Wii game boot times by about 60 ms. Loading
savestates is also faster, by about 45 ms for GameCube (FakeVMEM) games
and 5 ms for Wii games. The impact is presumably smaller on other OSes
because Windows is particularly slow at creating mappings.
2025-06-21 20:54:05 +02:00
TryTwo 10c3b0b4e4 CodeWidget: Clear calls and callers box if there is no symbol, otherwise outdated data will persist. 2025-06-20 10:55:11 -07:00
JosJuice e002fcdf2f PowerPC: Use SPR_LR constant in an additional location 2025-06-20 10:42:47 +02:00
JosJuice 8c643693a9 PowerPC: Add missing SDRUpdated/MSRUpdated calls 2025-06-20 10:42:43 +02:00
TryTwo c9b815526c Debugger CodeViewWidget: Add context options for making and managing Notes. Add popup dialog for editing functions and notes. 2025-06-19 18:00:10 -07:00
TryTwo 78065359bb Debugger CodeWidget : Add search box for notes. 2025-06-19 17:55:45 -07:00
TryTwo 040d9a4336 Debugger symbols: Add new symbol type: Notes.. Notes are for naming single instructions, or small groups of instructions.
Notes are separate from function symbols, and can be searched separately.
Unlike functions, notes of different length can overlap each other.
In the instruction window, a note will always display over the function symbol.
2025-06-19 17:55:35 -07:00
Dentomologist e21ae90073 MainWindow: Show hardcore mode error for recording playback
Show an error message when attempting to play an input recording while
RetroAchievements hardcore mode is active, instead of silently doing
nothing.
2025-06-17 12:21:39 -07:00
Jordan Woyak 413b7475ec Merge pull request #13762 from Dentomologist/dolphinqt_add_vcxproj_clinclude
DolphinQt: Add DolphinQt.vcxproj ClInclude line
2025-06-17 13:06:04 -05:00
Dentomologist e8c9c7a403 DolphinQt: Add DolphinQt.vcxproj ClInclude line
Add a missing ClInclude line in DolphinQt.vcxproj for
NonAutodismissibleMenu.h. Missing the ClInclude doesn't break
compilation, but prevents various IntelliSense features in Visual
Studio from working properly with the file.
2025-06-16 23:11:11 -07:00
Dentomologist c488545091 GameListModel: Update tag list and sorting immediately
Emit the dataChanged signal when adding or removing tags from a game.
This both updates the contents of the game's Tags column immediately
(instead of having to wait for the context menu to be closed), and
updates the sorting if games are being sorted by the Tags column.
2025-06-16 22:58:30 -07:00
Dentomologist 2fd74990b7 Qt: Use NonAutodismissibleMenu in more places
Use NonAutodismissibleMenu for MenuBar's Options, JIT, and
Tools->"Connect Wii Remotes" menus, as well as for the Tags menu in
GameList's context menu.

NonAutodismissibleMenu allows users to check or uncheck multiple
checkable menu items without closing the menu between selections.
2025-06-16 22:56:26 -07:00
Dentomologist ab25632992 ThreadWidget: Don't set fixed width on QLineEdits
Fix clipping of QLineEdit contents by having them take up half the grid
width instead of trying to match the contents width in an unreliable
manner.
2025-06-16 22:33:20 -07:00
Dentomologist 6a0d8ca3f8 MenuBar: Rename menu variable
The Tools menu has a number of submenus, so rename menu to
connect_wii_remotes_menu for clarity.
2025-06-16 21:06:55 -07:00
Tillmann Karras ca004e35f7 GameSettings: add performance hack for Baby And Me
The patch is not enabled by default.
2025-06-16 20:08:36 +01:00
Tillmann Karras c39b067479 GameSettings: don't force EFB-to-tex for Fireblade
This ini is from the initial mega commit. The game seems to work fine
without it.
2025-06-16 19:48:31 +01:00
Tillmann Karras 58b86074ae GameSettings: fix purple flickering in Trivial Pursuit - Bet You Know It 2025-06-16 19:48:31 +01:00
Tillmann Karras cc5933a6ce GameSettings: fix purple screen in The Price Is Right 2025-06-16 19:48:31 +01:00
Jordan Woyak 5f6cc197ce DolphinQt: Always enable the "Skip Main Menu" checkbox when "SkipIPL" is disabled. 2025-06-15 20:37:50 -05:00
Jordan Woyak 28a6eb26cc Merge pull request #13703 from jordan-woyak/map-and-calibrate
DolphinQt/InputCommon: Make the "Calibrate" button also map inputs.
2025-06-15 15:45:04 -05:00
Jordan Woyak 3a94289ad6 Merge pull request #13744 from JoshuaVandaele/windows-specific-getdevicename
Host: Implement a Windows-only implementation of `GetDeviceNameFromVIDPID`
2025-06-15 15:44:31 -05:00
Jordan Woyak 2fb66e9708 Merge pull request #12938 from tygyh/Split-IsTranslatedRAMAddress
Core/PowerPC: Split 'IsRAMAddress' method into 'IsEffectiveRAMAddress' and 'IsPhysicalRAMAddress' methods
2025-06-14 17:12:24 -05:00
Jordan Woyak 83beebaf8b DolphinQt/InputCommon: Move some calibration logic to InputCommon and make the "Calibrate" button also map inputs. 2025-06-14 16:29:25 -05:00
Dr. Dystopia 6591fa3751 Core/PowerPC: Split 'IsRAMAddress' method into 'IsEffectiveRAMAddress' and 'IsPhysicalRAMAddress' methods 2025-06-14 23:29:03 +02:00
Jordan Woyak 0780458069 InputCommon: Make InputDetector::Start take a span instead of a vector. 2025-06-14 16:28:09 -05:00
Jordan Woyak 11c3f7ea8d InputCommon: Fix occasional misidentification of analog input detection. 2025-06-14 16:28:09 -05:00
Jordan Woyak 344080b7a9 DolphinQt: Fix ControllersPane group box spacing. 2025-06-14 16:26:09 -05:00
Jordan Woyak 89b8edea03 DolphinQt: Move graphics config to main Settings window. 2025-06-14 16:26:09 -05:00
Jordan Woyak 2047eaf1d8 Merge pull request #13671 from tygyh/Source/Remove-redundant-lambda-parameter-lists
Source: Remove redundant lambda parameter lists
2025-06-14 03:49:47 -05:00
Dr. Dystopia ca8f9b672b Source: Remove redundant lambda parameter lists 2025-06-14 10:19:31 +02:00
JMC47 95f6c76713 Merge pull request #13696 from fothugiyo/gecko-codes
Tales of Symphonia AR and Gecko Codes
2025-06-13 17:32:24 -04:00
Martino Fontana 46ce355d93 GameINI: Remove NSMBW PAL speed hack 2025-06-13 22:27:21 +02:00
Joshua Vandaële d93245cc7a Host: Implement a Windows-only implementation of GetDeviceNameFromVIDPID 2025-06-13 17:46:53 +02:00
Jordan Woyak 4f3e527186 ControllerInterface/Xlib: Combine keycodes with the same name to fix non-working inputs. 2025-06-12 04:50:13 -05:00
JMC47 a163877413 Merge pull request #13746 from LillyJadeKatrin/retroachievements-hardcore-changed
MainWindow - Avoid excessive emulation state changes
2025-06-10 17:32:04 -04:00
LillyJadeKatrin 417badc55c MainWindow - Avoid excessive emulation state changes
Updates the Hardcore Changed callback to only signal EmulationStateChanged if the new Hardcore Mode setting is different from the previous one.
2025-06-10 16:03:14 -04:00
iwubcode 6ab83bdd05 VideoCommon: fix regression where scenes with expanded lines or points would cause issues if doing per-vertex transformations in the vertex shader 2025-06-09 19:08:21 -05:00
Dentomologist 3994a9446f AutoUpdateChecker: Delete old Updater.log file
Delete old Updater.log file from GetExeDirectory().

The log was moved to GetUserPath(D_LOGS_IDX) in 5.0-14529, but users
looking to make a bug report might find the old one instead so let's
delete it to prevent any confusion.
2025-06-09 13:51:52 -07:00
JMC47 5800b874d7 Merge pull request #13741 from Tilka/bean_menu
GameSettings: add bean menu patch for A Boy and His Blob
2025-06-09 00:12:52 -04:00
JMC47 1526c06133 Merge pull request #13658 from jordan-woyak/vk-present-done-race
Vulkan: Eliminate m_last_present_done flag.
2025-06-09 00:10:31 -04:00
JMC47 7ad85e875d Merge pull request #13738 from Tilka/convert_banner
QtUtils/ImageConverter: simplify
2025-06-09 00:10:03 -04:00
JMC47 42d5f2b705 Merge pull request #13702 from CostPerUnit/master
MappingWidget: Add Advanced Configuration Button to Point And Point Passthrough "Enable" boxes
2025-06-09 00:09:35 -04:00
JMC47 5064b615ba Merge pull request #13737 from LillyJadeKatrin/retroachievements-gamecube-bulk-fix
AchievementManager - Fix Gamecube Bulk Copy
2025-06-08 13:08:02 -04:00
JMC47 33b529a510 Merge pull request #13719 from LillyJadeKatrin/retroachievements-wii-menu-fix
AchievementManager - Block Wii Menu Exploits
2025-06-08 13:04:27 -04:00
JMC47 8c3ca46988 Merge pull request #13676 from LillyJadeKatrin/retroachievements-allowlist-test-improvements
RetroAchievements: Updated PatchAllowlistTest to generate new allowlist
2025-06-08 12:56:19 -04:00
Admiral H. Curtiss 944dd711b7 Merge pull request #13743 from JosJuice/audiocommon-missing-includes
AudioCommon: Re-add missing includes
2025-06-08 13:41:41 +02:00
JosJuice 1b7d42f775 AudioCommon: Re-add missing includes
7c237bb ("AudioCommon: Remove unused includes") removed some includes
that were in fact in use.
2025-06-08 11:35:02 +02:00
JMC47 24b0bf01d5 Merge pull request #12836 from JosJuice/opensles-buffer-size
Android: Ask system for optimal audio buffer size and sample rate
2025-06-07 23:07:37 -04:00
Tilka 19fbbf0dba Merge pull request #13727 from JoshuaVandaele/fmt-11.2.0-localtime-deprec
fmt: Replace deprecated `fmt::localtime` usage with `Common::LocalTime`
2025-06-08 04:04:37 +01:00
Jordan Woyak 1786e34bd3 Merge pull request #13665 from jordan-woyak/dark-mode-filter
DolphinQt: Replace widespread SetQWidgetWindowDecorations calls with an event filter.
2025-06-07 18:19:13 -05:00
Jordan Woyak 65f3ba70f5 Merge pull request #13522 from tygyh/Enforce-overriding-destructor-style-Core&UnitTests
Core & UnitTests: Make overriding explicit and remove redundant virtual specifiers on overriding destructors
2025-06-07 17:55:14 -05:00
Jordan Woyak ec52a74967 Merge pull request #13023 from tygyh/Replace-ties-with-structured-bindings
UnitTests: Replace ties with structured bindings
2025-06-07 17:50:34 -05:00
Jordan Woyak 8b7669550f Merge pull request #13454 from tygyh/Use-constants-DolphinQt-FifoAnalyzer
DolphinQt/FIFO/FIFOAnalyzer: Make parameters, arguments etc. constant
2025-06-07 17:50:08 -05:00
Jordan Woyak 46e66fe945 Merge pull request #13544 from tygyh/DolphinNoGUI-Replace-deprecated-signal-header
DolphinNoGUI: Apply style-alignment refactorings
2025-06-07 17:47:11 -05:00
Jordan Woyak 056ece6f29 Merge pull request #13697 from tygyh/AudioCommon/Remove-unused-includes
AudioCommon: Remove unused includes
2025-06-07 17:45:50 -05:00
Jordan Woyak a07a2fe398 Merge pull request #13698 from tygyh/AudioCommon/Remove-unused-qualifiers-and-make-variables-constant
AudioCommon: Remove unused qualifiers and make variables constant
2025-06-07 17:45:33 -05:00
Tillmann Karras 61e8fa060b QtUtils/ImageConverter: simplify 2025-06-07 23:06:07 +01:00
Tillmann Karras b6ff1b5573 GameSettings: add bean menu patch for A Boy and His Blob
The bean menu in this game does not react when the analog control stick
is moved perfectly to the right (0 degress). This happens when the
analog stick is mapped to digital inputs.

Currently, Dolphin contains a hardcoded controller hack to work around
this issue. With this patch, it should no longer be needed; see #13177.
2025-06-07 23:01:17 +01:00
Jordan Woyak 6da3f5f26a InputCommon: Update to use SDL3 and bump the SDL submodule in Externals to release-3.2.16. 2025-06-07 16:27:54 -05:00
Jordan Woyak 5906512847 DolphinQt: Replace widespread SetQWidgetWindowDecorations calls with an event filter. 2025-06-07 16:15:34 -05:00
JMC47 52fcdde485 Merge pull request #13386 from iwubcode/resource_manager_system
VideoCommon: add resource manager, tracks resources to load assets in optimal way and manage memory
2025-06-07 15:51:34 -04:00
JMC47 5eb61024c6 Merge pull request #13740 from JoshuaVandaele/bsod-fix-i-hope
Host: Clean up device handle in all cases
2025-06-07 12:27:49 -04:00
Admiral H. Curtiss a27b845514 Merge pull request #13710 from TryTwo/UI_Sliders_Update
Advanced Panel convert QSliders into ConfigSliders
2025-06-07 17:39:40 +02:00
Admiral H. Curtiss 1b1ca019a4 Merge pull request #13724 from SuperSamus/gamelist-properties-noduplicates
GameList: Prevent opening Properties multiple times for the same game
2025-06-07 17:24:50 +02:00
Joshua Vandaële 241834709b Host: Clean up device handle 2025-06-07 16:55:45 +02:00
LillyJadeKatrin c68549e9ef AchievementManager - Load unknown games
Prior to this change, any game unrecognized by RetroAchievements would ultimately result in the game being "Closed" by AchievementManager. As a result, if any game was run while in this state without any other closing being done, AchievementManager would simply load it like a new game, despite memory already being accessed.
However, testing and documentation determined that the rcheevos client doesn't actually complain when it fails to hash a game; it just runs this as "Unidentified Game" with RA ID = 0. As such, this change utilizes that in AchievementManager to differentiate between no software running and unidentified software running.

As a result of this, now LoadGame needs to be called for every piece of runnable software, supported format or otherwise. If a supported format is not available, LoadGame can now be called with a nullptr to ensure that rcheevos still properly sets up an unidentified game.
2025-06-07 07:02:24 -04:00
LillyJadeKatrin 5545a386cf AchievementManager - Fix Gamecube Bulk Copy
The memory copy algorithm (only needed for RetroAchievements devs) was broken for Gamecube as it assumed EXRAM size was zero when in reality it's using ARAM. For the time being, we do not need to use or access ARAM so instead this sets that value to zero for Gamecube titles.
2025-06-07 07:00:47 -04:00
JosJuice 185b080f03 Merge pull request #13142 from JosJuice/fifo-window-starting-stopping
DolphinQt: Call FIFOPlayerWindow::UpdateControls for Starting/Stopping
2025-06-07 10:43:19 +02:00
JosJuice 43b254aaad Android: Update advanced mapping dialog when devices change
Without this, there was a bug where if you turned the device's screen
off and on again while in the advanced mapping dialog, the input
indicators would stop updating. This is because turning the screen on
again causes devices to refresh, which causes all devices to be
recreated, leaving the AdvancedMappingControlViewHolders stuck
referencing controls belonging to devices that are no longer being
updated.
2025-06-07 10:20:21 +02:00
JosJuice 1002f29691 Android: Show input indicators in controller settings 2025-06-07 10:20:20 +02:00
JosJuice 0dd601577d Android: Set parent when inflating RecyclerView.ViewHolders
This makes sure view holders get proper widths when they use
layout_width="match_parent". This becomes quite noticeable for
AdvancedMappingControlAdapter in the next commit, but I'm also
making the change for other adapters while I'm at it.
2025-06-07 10:20:19 +02:00
JosJuice cf7b141eb9 Android: Make input mapping view holders observe input state changes 2025-06-07 10:20:19 +02:00
JosJuice 22fd0472ed Android: Pass CoreDevice.Control to AdvancedMappingControlViewHolder 2025-06-07 10:20:19 +02:00
JosJuice 4b4a775d5a Android: Make AdvancedMappingControlViewHolder a LifecycleOwner 2025-06-07 10:20:19 +02:00
JosJuice 5d7cba8cd9 Android: Make SettingViewHolder a LifecycleOwner 2025-06-07 10:20:19 +02:00
JosJuice 4214cb6eb8 Android: Make input state changes observable 2025-06-07 10:20:18 +02:00
iwubcode c3d3b81533 VideoCommon: remove 'GetByteSizeInMemory()' from custom asset, it is not needed anymore 2025-06-06 23:03:02 -05:00
iwubcode 774a84a953 VideoCommon: avoid race conditions with asset load/unload by moving the lock to the entire function, favor atomics for the memory/time getters 2025-06-06 23:03:02 -05:00
iwubcode b3f50c969e VideoCommon: rename m_bytes_loaded in asset library to bytes_loaded 2025-06-06 23:03:02 -05:00
iwubcode 3b83907b88 VideoCommon: update CustomAsset's load time to be before the load occurs (this prevents issues where the load time might be incorrectly inflated by long load operations)
Co-authored-by: Jordan Woyak <jordan.woyak@gmail.com>
2025-06-06 23:03:02 -05:00
iwubcode d940d62cae VideoCommon: watch texture pack folder for texture reloads (from dynamic input textures) 2025-06-06 23:03:02 -05:00
iwubcode 7afa9e6c6f VideoCommon: use CustomResourceManager in the texture cache and hook up to our hires textures 2025-06-06 23:03:02 -05:00
iwubcode 12d178a8df VideoCommon: initialize and shutdown the CustomResourceManager when the video thread initializes and shuts down 2025-06-06 23:03:02 -05:00
iwubcode f910c1d934 Core: add CustomResourceManager to System 2025-06-06 23:03:02 -05:00
iwubcode 70abcb2030 VideoCommon: add resource manager and new asset loader; the resource manager uses a least recently used cache to determine which assets get priority for loading. Additionally, if the system is low on memory, assets will be purged with the less requested assets being the first to go. The loader is multithreaded now and loads assets as quickly as possible as long as memory is available
Co-authored-by: Jordan Woyak <jordan.woyak@gmail.com>
2025-06-06 23:03:02 -05:00
iwubcode d8ea31ca46 VideoCommon: rename GameTextureAsset into TextureAsset and make it only contain CustomTextureData. Move validation and load logic to individual functions 2025-06-06 23:03:02 -05:00
iwubcode 2ae43324cb VideoCommon: move AssetMap to a types header file, so it can be pulled in without the DirectFilesystemAssetLibrary dependencies, the header will be expanded later 2025-06-06 23:03:02 -05:00
iwubcode 7d59c2743d Common: Add class 'FilesystemWatcher' that is used to watch paths and receive callbacks about filesystem level events for anything under that path 2025-06-06 23:03:02 -05:00
iwubcode 8113399b68 Externals: add watcher, a library used to watch a filesystem location for changes 2025-06-06 23:03:02 -05:00
iwubcode bafe78203d VideoCommon: remove 'GetLastAssetWriteTime' and switch to a steady_clock for asset times 2025-06-06 23:03:02 -05:00
iwubcode 15f125ebee VideoCommon: change asset loading to return the number of bytes loaded instead of a pass/fail 2025-06-06 23:03:02 -05:00
iwubcode 316740daed VideoCommon: add 'Unload' functionality to CustomAsset 2025-06-06 23:03:02 -05:00
Jordan Woyak 903eafcf65 Merge pull request #13714 from Dentomologist/dolphinqt_remove_redundant_window_hints
DolphinQt: Remove redundant window hints
2025-06-06 22:13:01 -05:00
Dentomologist 2a7e8a4003 DolphinQt: Remove redundant window hints
Remove window hints clearing the flag Qt::WindowContextHelpButtonHint,
which is already off by default in Qt 6.

In Qt 5 this flag was set by default for QDialogs, and on Windows put a
? button in the corner of the title bar allowing users to activate Qt's
QWhatsThis help system for a given widget. Since we don't set that text
the ? button was useless and so we hid it manually.
2025-06-06 19:35:13 -07:00
iwubcode 9ec69b5925 VideoCommon: add a handle to custom asset, this is an id that is only relevant for a particular game session but is slightly faster as a numeric value for lookups than the traditional asset id 2025-06-06 19:20:25 -05:00
iwubcode d7de49ccf6 Core / VideoCommon: Remove original custom asset loader 2025-06-06 19:20:25 -05:00
JMC47 5ec5db9240 Merge pull request #13392 from jordan-woyak/frame-pacing-accurate-time
CoreTiming: Add setting to pursue accurate overall emulation runtime
2025-06-06 19:17:44 -04:00
JMC47 974c56d3c5 Merge pull request #13731 from iwubcode/pixel_shader_gen_fix_complete_initialize
VideoCommon: ensure pixel shader gen input structure is completely initialized
2025-06-06 19:08:57 -04:00
Jordan Woyak 977f2da6a7 Merge pull request #13735 from JMC47/triopatch
GamePatch: Disney Trio of Destruction Pagetable Speedhack.
2025-06-06 17:54:36 -05:00
JMC47 b1d114f7f7 Merge pull request #13730 from jordan-woyak/controllers-on-main-config-dialog
DolphinQt: Move "Controllers" to main settings window.
2025-06-06 18:54:12 -04:00
JMC47 be3d48ec5f GamePatch: Disney Trio of Destruction Pagetable Speedhack. 2025-06-06 17:17:11 -04:00
Javier Martinez d766c527c7 Common: Replace Contains and ContainsSubrange with C++23 std::ranges equivalents
Common: Use feature macros for better compatibility

Common/Contains.h: fix linting issue

Common/Contains.h: Add C++23 TODO

Common/Contains.h: Fix comment lint issue.
2025-06-05 19:18:08 -04:00
Jordan Woyak a0611b512b Merge pull request #13713 from Dentomologist/filesystemwidget_center_header_text
FilesystemWidget: Center header text
2025-06-05 14:34:36 -05:00
JMC47 fadc2ac223 Merge pull request #13732 from AdmiralCurtiss/dsp-jit-exceptions
DSP LLE Recompiler: Fix exception handling after #10766
2025-06-05 15:17:30 -04:00
Admiral H. Curtiss ea959f2651 DSP/Jit: Don't return to dispatcher if no exception was generated 2025-06-05 20:57:27 +02:00
Admiral H. Curtiss a43fc68452 DSPAnalyzer: Set store instructions as potentially generating exceptions 2025-06-05 19:10:42 +02:00
iwubcode ae26b38fc0 VideoCommon: fix pixel shader gen error about structure not being fully initialized 2025-06-05 01:37:45 -05:00
Jordan Woyak b9bea58f0f DolphinQt: Move "Controllers" to main settings window. 2025-06-04 19:33:01 -05:00
JosJuice b7fb2fa737 Merge pull request #13728 from JosJuice/android-uses-microphone
Android: Add android.hardware.microphone to manifest
2025-06-04 23:37:17 +02:00
Martino Fontana 2de9122b5f GameList: Prevent opening Properties multiple times for the same game 2025-06-04 23:11:09 +02:00
JMC47 8665b22822 Merge pull request #13651 from jordan-woyak/config-list
DolphinQt: Change Config QTabWidget into a QListWidget and QStackedWidget.
2025-06-04 16:01:51 -04:00
Dr. Dystopia 7b496b2f5b DiscIO: Remove redundant casts 2025-06-04 21:57:45 +02:00
Dr. Dystopia bae0e5f67a DolphinNoGUI: Make override explicit 2025-06-04 21:49:29 +02:00
Dr. Dystopia 2ae928ca79 DolphinNoGUI: Make parameters constant 2025-06-04 21:49:15 +02:00
Dr. Dystopia f04f659710 DolphinNoGUI: Replace C-style cast with reinterpret_cast 2025-06-04 21:49:01 +02:00
Dr. Dystopia ec1d659363 DolphinNoGUI: Make classes final 2025-06-04 21:48:53 +02:00
Dr. Dystopia c37933932d DolphinNoGUI: Make variables constant 2025-06-04 21:48:40 +02:00
Dr. Dystopia 23af1e025b DolphinNoGUI: Make function static 2025-06-04 21:30:59 +02:00
Dr. Dystopia 135b6840e5 DolphinNoGUI: Remove unused include directives 2025-06-04 21:30:59 +02:00
Dr. Dystopia e3df00b7f4 DolphinNoGUI: Make variables constexpr 2025-06-04 21:30:59 +02:00
Dr. Dystopia 71da0f2d24 DolphinNoGUI: Replace deprecated signal.h header 2025-06-04 21:30:59 +02:00
JosJuice 5d2518d490 Android: Add android.hardware.microphone to manifest
Google Play is now blocking distribution for Android TV unless we
explicitly set the android.hardware.microphone hardware feature as
android:required="false", because it's inferring
android.hardware.microphone from the android.permission.RECORD_AUDIO we
added for Wii Speak emulation, with android:required defaulting to true.
I was under the belief that setting android:required="false" on
android.permission.RECORD_AUDIO would solve this, but looking closer at
the definition of <uses-permission>, it doesn't actually support
android:required attributes, so that presumably has no effect.
2025-06-04 21:30:51 +02:00
JMC47 3f090dd474 Merge pull request #13681 from iwubcode/material_overhaul_custom_vertex
VideoCommon: move vertex shader gen logic to a 'process_vertex()' for use in future custom shaders
2025-06-04 15:27:47 -04:00
JMC47 8def02072b Merge pull request #13379 from JoshuaVandaele/system-ng
Use minizip-ng in non-compatibility mode
2025-06-04 15:21:05 -04:00
JMC47 84f2af73e6 Merge pull request #13649 from SuperSamus/scooby-doo-night-of-100-texture-caches
GameINI: Set texture cache accuracy for Scooby-Doo! Night of 100 Frights PAL
2025-06-04 15:17:10 -04:00
Jordan Woyak 19a3f25a71 Merge pull request #13723 from Dentomologist/wavefile_add_prefix_to_member_variables
WaveFile: Add m_ prefix to member variables
2025-06-04 13:11:14 -05:00
Joshua Vandaële 4b65cc9a4c fmt: Replace deprecated fmt::localtime usage with Common::LocalTime 2025-06-04 13:32:12 +02:00
OatmealDome 5309c440d2 Merge branch 'release-prep-2506' 2025-06-04 04:09:08 -04:00
Sam Belliveau d7f45c7b96 Fade audio after an entire loop 2025-06-02 14:37:30 -04:00
Dentomologist 61ccdb0a3c WaveFile: Add m_ prefix to member variables 2025-06-01 11:41:09 -07:00
Dr. Dystopia 8192d9d2a9 Make parameters, arguments etc. constant 2025-05-31 20:57:54 +02:00
Dr. Dystopia a6b04f53e0 AudioCommon: Remove unused qualifiers and make variables constant 2025-05-30 21:48:38 +02:00
Jordan Woyak a8eafa4ccd DolphinQt: Move the "Point (Passthrough)" "Enabled" checkbox below the mapping indicator. 2025-05-29 19:46:53 -05:00
CostPerUnit a5b4a0b9e4 InputCommon/DolphinQt: Add advanced settings button for "Point" and "Point (Passthrough)" "Enabled" checkboxes. 2025-05-29 19:39:10 -05:00
LillyJadeKatrin fd285f6348 AchievementManager - Minor cleanup
Deleting the unused m_game_data and m_is_game_loaded fields.
2025-05-29 18:35:30 -04:00
Dentomologist 3dc1605569 FilesystemWidget: Center header text
Center header text to match all the other headers.
2025-05-27 12:34:20 -07:00
TryTwo a6a5e201b6 Qt Advanced Panel: Convert QSliders into ConfigSliders.
Part of the refactor into the config system.
2025-05-26 19:52:30 -07:00
Jordan Woyak aafe961177 DolphinQt: Make GeckoCodeWidget default size not taller than it needs to be. 2025-05-26 20:58:48 -05:00
Jordan Woyak eed7843d4a DolphinQt: Add stretch to the end of the game config Info tab. 2025-05-26 20:58:48 -05:00
Jordan Woyak 1e4dfc0956 DolphinQt: Fix the WiiPane hinting a larger than required size. 2025-05-26 20:58:48 -05:00
Jordan Woyak 5bc661aeca DolphinQt/AudioPane: Fix Volume QGroupBox title uglyness on Windows and inconsistent percent-sign spacing. 2025-05-26 20:58:48 -05:00
Jordan Woyak fcff7a3a49 DolphinQt: Fix FilesystemWidget QTreeView visual style. 2025-05-26 20:58:48 -05:00
Jordan Woyak 543b85a451 DolphinQt: Make WrapInScrollArea and GetWrappedWidget less hacky. 2025-05-26 20:58:48 -05:00
Jordan Woyak e796e82e8c DolphinQt: Change game properties QTabWidget to QListWidget. 2025-05-26 20:58:48 -05:00
Jordan Woyak 2b9935e6f4 DolphinQt: Change main settings window QTabWidget into a QListWidget and QStackedWidget. 2025-05-26 20:58:48 -05:00
JosJuice f99d3dbd5c Android: Ask system for optimal audio buffer size and sample rate
This can reduce audio latency according to
https://developer.android.com/ndk/guides/audio/opensl/opensl-prog-notes#perform.

Previously we were using the hardcoded values of 48000 Hz and 256 frames
per buffer. The sample rate we use with this change is 48000 Hz on all
devices I'm aware of, but the buffer size does vary across devices.

Terminology note: The old code used the term "sample" to refer to what
Android refers to as a "frame". "Frame" is a clearer term to use for
this, so I've changed OpenSLESStream's terminology. One frame consists
of one sample per channel.
2025-05-25 11:59:33 +02:00
JosJuice 34e8fb068f Android: Get rid of OpenSLESStream's global state
Not sure if we're ever going to want to have more than one of these at
the same time, but these global variables are a code smell nonetheless.

I'm also deleting the existing member variables because they were
unused.
2025-05-25 11:55:22 +02:00
Dr. Dystopia 7c237bbd7c AudioCommon: Remove unused includes 2025-05-25 10:30:41 +02:00
iwubcode b23dddea4e VideoCommon: move vertex shader gen logic to a 'process_vertex()' function, to eventually allow for custom shaders to override vertex logic 2025-05-24 01:27:58 -05:00
Joshua Vandaële 2ed5f16600 minizip-ng: Stop using compatibility mode 2025-05-22 12:51:55 +02:00
fothugiyo 67f73d95e3 Tales of Symphonia AR and Gecko Codes
Prior codes were reorganized and new codes added. All codes have been thoroughly tested and are ensured to work on a vanilla NTSC .iso
2025-05-22 01:47:34 -06:00
LillyJadeKatrin c23b4e1020 RetroAchievements: Updated PatchAllowlistTest to generate new allowlist
Refactors the PatchAllowlistTest to streamline the experience for developers. Instead of a textual description of what needs to change in ApprovedInis.json for RetroAchievements compatibility, the test will now generate a replacement file and instruct the coder where to copy it in their local branch, and what to update APPROVED_LIST_HASH to. The result should be easier and more instructive for developers to make changes, while still maintaining that allowed codes cannot be added or modified without recompiling Dolphin.

As ApprovedInis.json no longer needs to be user-readable for this process, it no longer contains titles or pretty formatting and as such is updated in this commit, hash included.
2025-05-21 21:38:34 -04:00
y21 f665eaad5f Check buffer out and size in HID_USBv5/USB_VEN GetVersion Ioctl 2025-05-19 18:17:21 +02:00
Joshua Vandaële 3cc50cea9f enet: Update to 1.3.18 and clean up CMake
Our CMakeLists was more or less a copy/paste of the one from enet
2025-05-18 18:34:47 +02:00
Joshua Vandaële 87eb1aff16 libspng: Update to 0.7.4 and clean up CMake 2025-05-18 18:33:33 +02:00
Joshua Vandaële d4afa1ebfa SFML: Update to 3.0.1 2025-05-18 01:49:55 +02:00
Martino Fontana 8b228503d9 GameINI: Set texture cache accuracy for Scooby-Doo! Night of 100 Frights PAL 2025-05-17 13:35:17 +02:00
Jordan Woyak 1554e4ab6c Vulkan: Eliminate m_last_present_done flag. 2025-05-13 20:13:18 -05:00
Martino Fontana e7f22515d3 GameINI: Disable Immediately Present XFB for Dragon Ball Z: Budokai and Dragon Ball Z: Budokai 2 2025-05-10 14:14:12 +02:00
Dentomologist 55cfb958c7 GeneralPane: Add Hardcore Mode tooltip clarification
When Hardcore Mode is active, clarify in the Speed Limit tooltip that
values less than 100% won't slow emulation.
2025-05-08 15:45:15 -07:00
Jordan Woyak 845fecff22 Common/BitField: Make deleted functions public. 2025-05-05 19:34:35 -05:00
Jordan Woyak 2dc975fa92 Common: Replace enable_if with concepts and other minor modernizations. 2025-05-05 19:34:24 -05:00
Jordan Woyak ec29d120b5 CoreTiming: Add a setting to pursue accurate emulation time. 2025-05-02 15:23:43 -05:00
Dr. Dystopia f240e20e3f Make overriding explicit and remove redundant virtual specifiers on overriding destructors - Core & UnitTests 2025-05-01 15:00:37 +02:00
JosJuice 303366b1ce PowerPC: Add RAII handling for breakpoint updates
bbf72e7 made a change where you can pass `false` to certain MemChecks
functions to get them to skip performing an "update" step. It was then
up to the caller to call the Update function later.

This commit changes the implementation so that, instead of the caller
passing in a boolean that controls whether a function calls Update, the
function now returns an object that on destruction will call Update.
Callers that are fine with Update being called right away can skip
storing the object in a variable and thereby call Update immediately,
and callers that want to call Update later can keep the object around.
This new design reduces the risk that someone will forget calling
Update.
2025-03-23 15:29:19 +01:00
Jordan Woyak 649e49c9e2 ControllerEmu: Remove nunchuk stick data hax. 2024-11-05 19:22:30 -06:00
JosJuice d48e6e25ad DolphinQt: Call FIFOPlayerWindow::UpdateControls for Starting/Stopping
Follow-up for
https://github.com/dolphin-emu/dolphin/pull/12918#discussion_r1785153070.
2024-10-20 13:38:24 +02:00
Dr. Dystopia 096ab8c026 Replace ties with structured bindings - UnitTests 2024-08-20 15:09:44 +02:00
1846 changed files with 503583 additions and 686906 deletions
+6
View File
@@ -25,3 +25,9 @@ insert_final_newline = false
indent_size = 4
indent_style = space
insert_final_newline = true
[*.{kt,kts}]
indent_style = space
indent_size = 4
insert_final_newline = true
max_line_length = 100
+51 -11
View File
@@ -1,32 +1,26 @@
[submodule "Externals/Qt"]
path = Externals/Qt
url = https://github.com/dolphin-emu/ext-win-qt.git
branch = master
shallow = true
[submodule "Externals/mGBA/mgba"]
path = Externals/mGBA/mgba
url = https://github.com/mgba-emu/mgba.git
branch = master
shallow = true
[submodule "Externals/FFmpeg-bin"]
path = Externals/FFmpeg-bin
url = https://github.com/dolphin-emu/ext-win-ffmpeg.git
branch = master
shallow = true
[submodule "libusb"]
path = Externals/libusb/libusb
url = https://github.com/libusb/libusb.git
branch = master
shallow = true
[submodule "Externals/spirv_cross/SPIRV-Cross"]
path = Externals/spirv_cross/SPIRV-Cross
url = https://github.com/KhronosGroup/SPIRV-Cross.git
branch = main
shallow = true
[submodule "SDL"]
path = Externals/SDL/SDL
url = https://github.com/libsdl-org/SDL.git
branch = SDL2
shallow = true
[submodule "Externals/zlib-ng/zlib-ng"]
path = Externals/zlib-ng/zlib-ng
@@ -35,58 +29,104 @@
[submodule "Externals/libspng/libspng"]
path = Externals/libspng/libspng
url = https://github.com/randy408/libspng.git
branch = v0.7.2
shallow = true
[submodule "Externals/VulkanMemoryAllocator"]
path = Externals/VulkanMemoryAllocator
url = https://github.com/GPUOpen-LibrariesAndSDKs/VulkanMemoryAllocator.git
shallow = true
[submodule "Externals/cubeb/cubeb"]
path = Externals/cubeb/cubeb
url = https://github.com/mozilla/cubeb.git
branch = master
shallow = true
[submodule "Externals/implot/implot"]
path = Externals/implot/implot
url = https://github.com/epezent/implot.git
shallow = true
[submodule "Externals/gtest"]
path = Externals/gtest
url = https://github.com/google/googletest.git
shallow = true
[submodule "Externals/rcheevos/rcheevos"]
path = Externals/rcheevos/rcheevos
url = https://github.com/RetroAchievements/rcheevos.git
shallow = true
[submodule "Externals/libadrenotools"]
path = Externals/libadrenotools
url = https://github.com/bylaws/libadrenotools.git
shallow = true
[submodule "Externals/curl/curl"]
path = Externals/curl/curl
url = https://github.com/curl/curl.git
shallow = true
[submodule "Externals/fmt/fmt"]
path = Externals/fmt/fmt
url = https://github.com/fmtlib/fmt.git
shallow = true
[submodule "Externals/lz4/lz4"]
path = Externals/lz4/lz4
url = https://github.com/lz4/lz4
url = https://github.com/lz4/lz4.git
shallow = true
[submodule "Externals/xxhash/xxHash"]
path = Externals/xxhash/xxHash
url = https://github.com/Cyan4973/xxHash.git
shallow = true
[submodule "Externals/enet/enet"]
path = Externals/enet/enet
url = https://github.com/lsalzman/enet.git
shallow = true
[submodule "hidapi-src"]
path = Externals/hidapi/hidapi-src
url = https://github.com/libusb/hidapi
url = https://github.com/libusb/hidapi.git
shallow = true
[submodule "Externals/tinygltf/tinygltf"]
path = Externals/tinygltf/tinygltf
url = https://github.com/syoyo/tinygltf.git
shallow = true
[submodule "Externals/minizip-ng/minizip-ng"]
path = Externals/minizip-ng/minizip-ng
url = https://github.com/zlib-ng/minizip-ng
url = https://github.com/zlib-ng/minizip-ng.git
shallow = true
[submodule "Externals/Vulkan-Headers"]
path = Externals/Vulkan-Headers
url = https://github.com/KhronosGroup/Vulkan-Headers.git
shallow = true
[submodule "Externals/watcher/watcher"]
path = Externals/watcher/watcher
url = https://github.com/e-dant/watcher.git
shallow = true
[submodule "Externals/SFML/SFML"]
path = Externals/SFML/SFML
url = https://github.com/SFML/SFML.git
shallow = true
[submodule "Externals/zstd/zstd"]
path = Externals/zstd/zstd
url = https://github.com/facebook/zstd.git
shallow = true
[submodule "Externals/miniupnpc/miniupnp"]
path = Externals/miniupnpc/miniupnp
url = https://github.com/miniupnp/miniupnp.git
shallow = true
[submodule "Externals/glslang/glslang"]
path = Externals/glslang/glslang
url = https://github.com/KhronosGroup/glslang.git
shallow = true
[submodule "Externals/pugixml/pugixml"]
path = Externals/pugixml/pugixml
url = https://github.com/zeux/pugixml.git
shallow = true
[submodule "Externals/cpp-ipc/cpp-ipc"]
path = Externals/cpp-ipc/cpp-ipc
url = https://github.com/mutouyun/cpp-ipc.git
shallow = true
[submodule "Externals/cpp-optparse/cpp-optparse"]
path = Externals/cpp-optparse/cpp-optparse
url = https://github.com/weisslj/cpp-optparse.git
shallow = true
[submodule "Externals/bzip2/bzip2"]
path = Externals/bzip2/bzip2
url = https://gitlab.com/bzip2/bzip2.git
shallow = true
[submodule "Externals/imgui/imgui"]
path = Externals/imgui/imgui
url = https://github.com/ocornut/imgui.git
shallow = true
+19 -11
View File
@@ -6,21 +6,29 @@ If you'd like to contribute to the Android project, but do not currently have a
* [Android Studio](https://developer.android.com/studio/)
If you downloaded Android Studio, install it with the default options and open the project located in `dolphin/Source/Android`
Install Android Studio with the default options if you do not already have it.
## Setting Up Android Studio
1. Wait for background tasks to complete on the bottom of the window.
2. Launch the Android SDK Manager by clicking on its icon in Android Studio's main toolbar:
![Android Studio Package Icon][package-icon]
3. Install or update the SDK Platform. Choose the API level as defined in the app module's [build.gradle](Source/Android/app/build.gradle#L7) file.
4. Install a CMake version as defined in the app module's [build.gradle](Source/Android/app/build.gradle#L99) file. The option won't appear until you select `Show Package Details`.
5. Select `Build Variants` on the left side of the window to choose the build variant and ABI you would like to compile for the `:app` module.
6. Select the green hammer icon in the main toolbar to build and create the apk in `Source/Android/app/build/outputs/apk`
1. Open the `Source/Android` project in Android Studio, let any background tasks finish, and Android Studio will automatically download the required SDK components and tooling.
2. Use the hammer icon or **Build > Assemble 'app' Run Configuration** to compile the `:app` module, then choose **Build > Generate App Bundles or APKs > Generate APKs** to produce the APK in `Source/Android/app/build/outputs/apk`.
## Import the Dolphin code style
The project maintains a custom IntelliJ/Android Studio style file to keep Java and Kotlin formatting consistent.
* Go to **File > Settings > Editor > Code Style** (or **Android Studio > Settings > Editor > Code Style** on macOS).
* Click the gear icon and choose **Import Scheme**.
* Select `Source/Android/code-style-java.xml` from the repository.
* Ensure that Dolphin-Java is selected.
## Format code before opening a pull request
Before committing or submitting a pull request, reformat any Java or Kotlin files you modified:
* Use **Code > Reformat Code** (or press `Ctrl+Alt+L`/`⌥⌘L` on macOS) with the Dolphin code style selected.
* Re-run formatting after edits to keep spacing, imports, and wrapping consistent with the rest of the project.
## Compiling from the Command-Line
For command-line users, any task may be executed with `cd Source/Android` followed by `gradlew <task-name>`. In particular, `gradlew assemble` builds debug and release versions of the application (which are placed in `Source/Android/app/build/outputs/apk`).
[package-icon]: https://i.imgur.com/hgmMlsM.png
[code-style]: https://i.imgur.com/3b3UBhb.png
+36 -1
View File
@@ -54,7 +54,42 @@ function(dolphin_find_optional_system_library library bundled_path)
dolphin_optional_system_library(use_system ${library})
string(TOUPPER ${library} upperlib)
if(use_system)
find_package(${library} ${ARGN})
# Try a list of versions
# Will be obsoleted if cmake ever fixes https://gitlab.kitware.com/cmake/cmake/-/issues/26477
if("DOLPHIN_TRY_VERSIONS" IN_LIST ARGN)
list(FIND ARGN DOLPHIN_TRY_VERSIONS versions_idx)
list(REMOVE_AT ARGN ${versions_idx})
# Extract list of version-like elements from ARGN into version_list
set(version_list)
while(TRUE)
list(LENGTH ARGN len)
if(len EQUAL versions_idx)
break()
endif()
LIST(GET ARGN ${versions_idx} ver)
if(ver MATCHES "^[0-9]+(\\.[0-9]+)*$")
list(APPEND version_list "${ver}")
list(REMOVE_AT ARGN ${versions_idx})
else()
break()
endif()
endwhile()
# Quietly check all the listed versions
foreach(version IN LISTS version_list)
find_package(${library} ${version} ${ARGN} QUIET)
if(${library}_FOUND)
break()
endif()
endforeach()
# If none were found, find_package one version loudly so the user sees
if(NOT ${library}_FOUND)
list(GET version_list 0 first_version)
find_package(${library} ${first_version} ${ARGN})
endif()
else()
find_package(${library} ${ARGN})
endif()
# Yay for cmake packages being inconsistent
if(DEFINED ${library}_FOUND)
set(prefix ${library})
-31
View File
@@ -1,31 +0,0 @@
# - Try to find OProfile
# Once done this will define
# OPROFILE_FOUND - System has OProfile
# OPROFILE_INCLUDE_DIRS - The OProfile include directories
# OPROFILE_LIBRARIES - The libraries needed to use OProfile
find_path(OPROFILE_INCLUDE_DIR opagent.h)
find_library(OPROFILE_LIBRARY opagent
PATH_SUFFIXES oprofile
)
set(OPROFILE_INCLUDE_DIRS ${OPROFILE_INCLUDE_DIR})
set(OPROFILE_LIBRARIES ${OPROFILE_LIBRARY})
include(FindPackageHandleStandardArgs)
find_package_handle_standard_args(OProfile DEFAULT_MSG
OPROFILE_LIBRARY OPROFILE_INCLUDE_DIR
)
if (OPROFILE_FOUND)
if (NOT TARGET OProfile::OProfile)
add_library(OProfile::OProfile UNKNOWN IMPORTED)
set_target_properties(OProfile::OProfile PROPERTIES
IMPORTED_LOCATION ${OPROFILE_LIBRARIES}
INTERFACE_INCLUDE_DIRECTORIES ${OPROFILE_INCLUDE_DIRS}
)
endif()
endif()
mark_as_advanced(OPROFILE_INCLUDE_DIR OPROFILE_LIBRARY)
+2 -2
View File
@@ -33,8 +33,8 @@ endif()
string(TIMESTAMP DOLPHIN_WC_BUILD_DATE "%Y-%m-%d" UTC)
# version number
set(DOLPHIN_VERSION_MAJOR "2506")
set(DOLPHIN_VERSION_MINOR "1")
set(DOLPHIN_VERSION_MAJOR "2512")
set(DOLPHIN_VERSION_MINOR "0")
set(DOLPHIN_VERSION_PATCH ${DOLPHIN_WC_REVISION})
# If Dolphin is not built from a Git repository, default the version info to
+27 -21
View File
@@ -30,6 +30,10 @@ set(CMAKE_USER_MAKE_RULES_OVERRIDE "${CMAKE_CURRENT_SOURCE_DIR}/CMake/FlagsOverr
project(dolphin-emu)
if (CMAKE_VERSION VERSION_LESS "3.25" AND CMAKE_SYSTEM_NAME MATCHES "Linux")
set(LINUX TRUE)
endif()
if (MSVC)
if (POLICY CMP0117)
# cmake is a weird language. You can't do if(not POLICY)
@@ -119,7 +123,6 @@ option(ENCODE_FRAMEDUMPS "Encode framedumps in AVI format" ON)
option(ENABLE_GPROF "Enable gprof profiling (must be using Debug build)" OFF)
option(FASTLOG "Enable all logs" OFF)
option(OPROFILING "Enable profiling" OFF)
# TODO: Add DSPSpy
option(DSPTOOL "Build dsptool" OFF)
@@ -137,6 +140,8 @@ else()
endif()
if(APPLE)
enable_language(OBJC)
enable_language(OBJCXX)
option(MACOS_USE_DEFAULT_SEARCH_PATH "Don't prioritize system library paths" OFF)
option(SKIP_POSTPROCESS_BUNDLE "Skip postprocessing bundle for redistributability" OFF)
# Enable adhoc code signing by default (otherwise makefile builds on ARM will not work)
@@ -167,6 +172,7 @@ list(APPEND CMAKE_MODULE_PATH
# Support functions
include(CheckAndAddFlag)
include(CheckCCompilerFlag)
include(CheckSymbolExists)
include(DolphinCompileDefinitions)
include(DolphinDisableWarningsMSVC)
include(DolphinLibraryTools)
@@ -562,16 +568,6 @@ if(ENCODE_FRAMEDUMPS)
endif()
endif()
if(OPROFILING)
find_package(OProfile)
if(OPROFILE_FOUND)
message(STATUS "OProfile found, enabling profiling support")
add_definitions(-DUSE_OPROFILE=1)
else()
message(FATAL_ERROR "OProfile not found. Can't build profiling support.")
endif()
endif()
if(ENABLE_HWDB)
find_package(LIBUDEV REQUIRED)
if(LIBUDEV_FOUND)
@@ -602,7 +598,7 @@ if(UNIX)
endif()
if(ENABLE_SDL)
dolphin_find_optional_system_library(SDL2 Externals/SDL 2.30.9)
dolphin_find_optional_system_library(SDL3 Externals/SDL 3.2.0)
endif()
if(ENABLE_ANALYTICS)
@@ -649,7 +645,9 @@ dolphin_find_optional_system_library_pkgconfig(FMT
add_subdirectory(Externals/imgui)
add_subdirectory(Externals/implot)
add_subdirectory(Externals/glslang)
dolphin_find_optional_system_library(glslang Externals/glslang DOLPHIN_TRY_VERSIONS 15 16)
# SPIRV-Cross is used on Windows for GLSL to HLSL conversion for the Direct3D 11 and Direct3D 12
# video backends, and on Apple devices for the Metal video backend.
if(WIN32 OR APPLE)
@@ -691,8 +689,8 @@ dolphin_find_optional_system_library_pkgconfig(ZSTD libzstd>=1.4.0 zstd::zstd Ex
dolphin_find_optional_system_library_pkgconfig(ZLIB zlib>=1.3.1 ZLIB::ZLIB Externals/zlib-ng)
dolphin_find_optional_system_library_pkgconfig(MINIZIP
"minizip>=4.0.4" minizip::minizip Externals/minizip-ng
dolphin_find_optional_system_library_pkgconfig(minizip-ng
"minizip-ng>=4.0.4" minizip-ng::minizip-ng Externals/minizip-ng
)
dolphin_find_optional_system_library(LZO Externals/LZO)
@@ -735,11 +733,13 @@ dolphin_find_optional_system_library(MBEDTLS Externals/mbedtls 2.28)
dolphin_find_optional_system_library(CURL Externals/curl)
if(NOT ANDROID)
dolphin_find_optional_system_library(Iconv Externals/libiconv-1.14)
else()
message(STATUS "Using static iconv from Externals")
add_subdirectory(Externals/libiconv-1.14 EXCLUDE_FROM_ALL)
if(NOT WIN32)
if(NOT ANDROID)
dolphin_find_optional_system_library(Iconv Externals/libiconv 1.14)
else()
message(STATUS "Using static iconv from Externals")
add_subdirectory(Externals/libiconv EXCLUDE_FROM_ALL)
endif()
endif()
if(NOT ANDROID)
@@ -756,7 +756,7 @@ if(NOT ENABLE_QT)
set(USE_MGBA 0)
endif()
if(USE_MGBA)
dolphin_find_optional_system_library(LIBMGBA Externals/mGBA)
dolphin_find_optional_system_library(LIBMGBA Externals/mGBA 0.11)
endif()
find_package(SYSTEMD)
@@ -784,6 +784,12 @@ if (USE_RETRO_ACHIEVEMENTS)
add_subdirectory(Externals/rcheevos)
endif()
add_subdirectory(Externals/watcher)
if(WIN32 OR LINUX)
add_subdirectory(Externals/cpp-ipc)
endif()
########################################
# Pre-build events: Define configuration variables and write SCM info header
#
File diff suppressed because one or more lines are too long
+6 -2
View File
@@ -13,5 +13,9 @@
SafeTextureCacheColorSamples = 512
[Video_Enhancements]
MaxAnisotropy = 0
ForceTextureFiltering = False
# Linear filtering completely messes up the videos.
ForceTextureFiltering = 0
[Video_Hacks]
# Manual texture sampling partially fixes the video issues.
FastTextureSampling = False
+1 -1
View File
@@ -18,5 +18,5 @@ EFBEmulateFormatChanges = True
MSAA = 0
[Video_Enhancements]
ForceFiltering = False
ForceTextureFiltering = 0
ForceTrueColor = False
+1 -2
View File
@@ -18,5 +18,4 @@ SafeTextureCacheColorSamples = 0
EFBToTextureEnable = False
[Video_Enhancements]
MaxAnisotropy = 0
ForceTextureFiltering = False
ForceTextureFiltering = 0
+3
View File
@@ -59,9 +59,12 @@ C202F310 00000003
$16:9 Aspect Ratio Fix - Centered HUD with letterboxing
04199598 4E800020
0441F6D8 3FE38E39
$No Letterbox [Ralf]
0400E3D4 48000070
[Gecko_RetroAchievements_Verified]
$16:9 Aspect Ratio Fix - Normal HUD
$16:9 Aspect Ratio Fix - Centered HUD
$16:9 Aspect Ratio Fix - Stretched HUD
$16:9 Aspect Ratio Fix - Centered HUD with letterboxing
$No Letterbox
+3
View File
@@ -32,9 +32,12 @@ C202F3F8 00000003
$16:9 Aspect Ratio Fix - Centered HUD with letterboxing
0419B274 4E800020
0442C158 3FE38E39
$No Letterbox [Ralf]
0400E598 48000070
[Gecko_RetroAchievements_Verified]
$16:9 Aspect Ratio Fix - Normal HUD
$16:9 Aspect Ratio Fix - Centered HUD
$16:9 Aspect Ratio Fix - Stretched HUD
$16:9 Aspect Ratio Fix - Centered HUD with letterboxing
$No Letterbox
+17
View File
@@ -0,0 +1,17 @@
# GAHEGG - Alien Hominid
[Core]
# The game has an uncapped frame rate, which is equivalent to SyncOnSkipIdle already being False.
# Setting it is meant to avoid any performance regression when using the frame rate limit patch.
SyncOnSkipIdle = False
[OnFrame]
$Limit internal frame rate (speed hack)
0x80031130:dword:0x60000000
0x8003113C:dword:0x60000000
[OnFrame_Enabled]
$Limit internal frame rate (speed hack)
[Patches_RetroAchievements_Verified]
$Limit internal frame rate (speed hack)
+2 -2
View File
@@ -1,4 +1,4 @@
# GC6E01, GC6P01 - Pokemon Colosseum
# GC6E01, GC6P01, GC6J01 - Pokemon Colosseum
[Core]
# Values set here will override the main Dolphin settings.
@@ -13,5 +13,5 @@
SafeTextureCacheColorSamples = 0
# Many areas of the game have unused vertexes, especially with cutscenes
# involving Shadow Pokémon, such as the purification cutscene.
# CPU Cull ends up greatly boosting performance for these cases.
# CPU Cull ends up greatly boosting performance for these cases.
CPUCull = True
+3
View File
@@ -36,9 +36,12 @@ $16:9 Widescreen
04005308 4809E62C
040A3930 4BF619D0
0447E724 3FAAAAAB
$60 FPS [Nerdzilla]
04005D98 38600000
[Patches_RetroAchievements_Verified]
$Allow Memory Card saving with Savestates
[AR_RetroAchievements_Verified]
$16:9 Widescreen
$60 FPS [Nerdzilla]
+3 -19
View File
@@ -30,27 +30,11 @@ $Allow Memory Card saving with Savestates
$Allow Memory Card saving with Savestates
[ActionReplay]
$16:9 Widescreen
04261AC0 000034E0
04261AC4 000034E4
F6000001 80008180
FFA01090 93E10024
D2000000 00000003
3DC03FAA 61CEAAAB
91C20000 C2620000
EFB300B2 00000000
E0000000 80008000
F6000001 80008180
FF601090 7C7F1B78
D2000000 00000004
3DC03FAA 61CEAAAB
91C20004 C2220004
EF7100B2 39C00000
60000000 00000000
E0000000 80008000
$60 FPS [Nerdzilla]
04005CFC 38600000
[Patches_RetroAchievements_Verified]
$Allow Memory Card saving with Savestates
[AR_RetroAchievements_Verified]
$16:9 Widescreen
$60 FPS [Nerdzilla]
+3
View File
@@ -36,9 +36,12 @@ $16:9 Widescreen [Ralf]
04005308 480A1C68
040A6F6C 4BF5E394
044CBCA4 3FAAAAAB
$60 FPS [Nerdzilla]
04005E90 38600000
[Patches_RetroAchievements_Verified]
$Allow Memory Card saving with Savestates
[AR_RetroAchievements_Verified]
$16:9 Widescreen [Ralf]
$60 FPS [Nerdzilla]
+5
View File
@@ -0,0 +1,5 @@
# GD7JB2, GD7E70, GD7PB2 - Dragon Ball Z: Budokai
[Video_Hacks]
# Frame pacing
ImmediateXFBEnable = False
+17
View File
@@ -0,0 +1,17 @@
# GD7PB2 - Dragon Ball Z: Budokai
[Core]
# Values set here will override the main Dolphin settings.
[OnFrame]
# Add memory patches to be applied every frame here.
[ActionReplay]
# Add action replay cheats here.
[Gecko]
$Deinterlacing Fix
0044E9A8 00000000
[Gecko_RetroAchievements_Verified]
$Deinterlacing Fix
+2 -2
View File
@@ -2,12 +2,12 @@
[OnFrame]
# This game does not support Progressive Scan or Dolphin's
# "Force Progressive" hack. However this patch can be used
# "Force Progressive" hack. However this patch can be used
# to substitute field rendering with full frame rendering.
$Force Progressive Scan
0x80033062:word:0x000001C0
0x800330A0:dword:0x60000000
0x806D0660:dword:0x801640A4
0x806D0660:dword:0x801670A4
[OnFrame_Enabled]
$Force Progressive Scan
+5
View File
@@ -0,0 +1,5 @@
# GFPEA4 - Frogger: Ancient Shadow
[Video_Hacks]
# Fixes dark graphical artifacts and pixel wide gap at the top and left edges of the screen.
VertexRounding = True
+3 -2
View File
@@ -1,7 +1,8 @@
# GHKD7D, GHKE7D, GHKF7D, GHKP7D, GHKS7D - The Hulk
# GHKD7D, GHKE7D, GHKF7D, GHKP7D, GHKS7D - Hulk
[Core]
# Values set here will override the main Dolphin settings.
# The game has an uncapped frame rate, which is equivalent to SyncOnSkipIdle already being False.
# Setting it is meant to avoid any performance regression when using the frame rate limit patch.
SyncOnSkipIdle = False
[OnFrame]
+11
View File
@@ -0,0 +1,11 @@
# GHKD7D - Hulk
[OnFrame]
$Limit internal frame rate (speed hack, also fixes audio and gameplay bugs)
0x801E8C94:dword:0x60000000
[OnFrame_Enabled]
$Limit internal frame rate (speed hack, also fixes audio and gameplay bugs)
[Patches_RetroAchievements_Verified]
$Limit internal frame rate (speed hack, also fixes audio and gameplay bugs)
+11
View File
@@ -0,0 +1,11 @@
# GHKE7D - Hulk
[OnFrame]
$Limit internal frame rate (speed hack, also fixes audio and gameplay bugs)
0x801E7B80:dword:0x60000000
[OnFrame_Enabled]
$Limit internal frame rate (speed hack, also fixes audio and gameplay bugs)
[Patches_RetroAchievements_Verified]
$Limit internal frame rate (speed hack, also fixes audio and gameplay bugs)
+11
View File
@@ -0,0 +1,11 @@
# GHKF7D - Hulk
[OnFrame]
$Limit internal frame rate (speed hack, also fixes audio and gameplay bugs)
0x801E8B14:dword:0x60000000
[OnFrame_Enabled]
$Limit internal frame rate (speed hack, also fixes audio and gameplay bugs)
[Patches_RetroAchievements_Verified]
$Limit internal frame rate (speed hack, also fixes audio and gameplay bugs)
+11
View File
@@ -0,0 +1,11 @@
# GHKP7D - Hulk
[OnFrame]
$Limit internal frame rate (speed hack, also fixes audio and gameplay bugs)
0x801E8C94:dword:0x60000000
[OnFrame_Enabled]
$Limit internal frame rate (speed hack, also fixes audio and gameplay bugs)
[Patches_RetroAchievements_Verified]
$Limit internal frame rate (speed hack, also fixes audio and gameplay bugs)
+11
View File
@@ -0,0 +1,11 @@
# GHKS7D - Hulk
[OnFrame]
$Limit internal frame rate (speed hack, also fixes audio and gameplay bugs)
0x801E8B14:dword:0x60000000
[OnFrame_Enabled]
$Limit internal frame rate (speed hack, also fixes audio and gameplay bugs)
[Patches_RetroAchievements_Verified]
$Limit internal frame rate (speed hack, also fixes audio and gameplay bugs)
+1 -2
View File
@@ -1,4 +1,4 @@
# GHQE7D, GHQP7D - The Simpsons Hit & Run
# GHQE7D, GHQP7D - The Simpsons: Hit & Run
[Core]
# Values set here will override the main Dolphin settings.
@@ -13,4 +13,3 @@
[Video_Hacks]
ImmediateXFBEnable = False
+12 -1
View File
@@ -1,7 +1,15 @@
# GHQE7D - The Simpsons: Hit & Run
[OnFrame]
$Limit internal frame rate during startup (speed hack)
0x80276E14:dword:0x60000000
0x80276E20:dword:0x60000000
[OnFrame_Enabled]
$Limit internal frame rate during startup (speed hack)
[Gecko]
$16:9 Widescreen
$16:9 Widescreen
04004600 C002A604
04004604 C09F0014
04004608 FC002040
@@ -15,5 +23,8 @@ $16:9 Widescreen
044786B0 3FAAAAAB
04479F28 3FA33333
[Patches_RetroAchievements_Verified]
$Limit internal frame rate during startup (speed hack)
[Gecko_RetroAchievements_Verified]
$16:9 Widescreen
+8
View File
@@ -1,5 +1,10 @@
# GHQP7D - The Simpsons: Hit & Run
[OnFrame]
$Limit internal frame rate during startup (speed hack)
0x80277034:dword:0x60000000
0x80277040:dword:0x60000000
[Gecko]
$16:9 Widescreen
04004600 C002A604
@@ -21,6 +26,9 @@ $60Hz
04276CD0 38000014
04276F64 48000008
[Patches_RetroAchievements_Verified]
$Limit internal frame rate during startup (speed hack)
[Gecko_RetroAchievements_Verified]
$16:9 Widescreen
$60Hz
+5
View File
@@ -0,0 +1,5 @@
# GIHP78 - Scooby-Doo! Night of 100 Frights
[Video_Settings]
# Fixes video stuttering on FMVs encoded at 25 FPS
SafeTextureCacheColorSamples = 512
+5
View File
@@ -0,0 +1,5 @@
# GJXP51 - Vexx (PAL)
[Core]
# Prevent crash after completing the tutorial level
MMU = True
+3 -2
View File
@@ -1,7 +1,8 @@
# GL5E4F - Lego GameCube
# GL5X4F, GL5E4F, GL5P4F - Lego Star Wars: The Video Game
[Core]
# Values set here will override the main Dolphin settings.
# Avoid crash when using the "Continue Story" option at the end of a level.
CPUThread = False
[OnFrame]
# Add memory patches to be applied every frame here.
+1 -1
View File
@@ -1,4 +1,4 @@
# GL7E64, GL7P64 - StarWars Lego 2
# GL7E64, GL7P64 - Lego Star Wars II: The Original Trilogy
[Core]
# Values set here will override the main Dolphin settings.
+2
View File
@@ -119,6 +119,8 @@ $Reduced Nintendo Blur
022B3382 000000E8
$Increased Nintendo Blur
022B3382 000000CC
$Force 30 FPS
0448C388 00000002
[Gecko]
$16:9 Widescreen v2 [Ralf, Kester]
+2
View File
@@ -136,6 +136,8 @@ $Increased Nintendo Blur
$Goraud Shading
044CC633 18000000
040A9714 4E800020
$Force 30 FPS
044961C8 00000002
[Gecko]
$16:9 Widescreen v2 [Ralf, Kester]
+6 -1
View File
@@ -1,7 +1,9 @@
# GMNE78, GMNP78 - Monsters, Inc. Scream Arena
[Core]
# Values set here will override the main Dolphin settings.
# The game has an uncapped frame rate, which is equivalent to SyncOnSkipIdle already being False.
# Setting it is meant to avoid any performance regression when using the frame rate limit patch.
SyncOnSkipIdle = False
[OnFrame]
# Add memory patches to be applied every frame here.
@@ -12,4 +14,7 @@
[Video_Settings]
[Video_Hacks]
# Fixes FMVs tearing.
EarlyXFBOutput = False
# Fixes FMVs not showing.
ImmediateXFBEnable = False
+12
View File
@@ -0,0 +1,12 @@
# GMNE78 - Monsters, Inc. Scream Arena
[OnFrame]
# After `GXDrawDone`, `nop` a branch that skips a call to `VIWaitForRetrace`.
$Limit internal FPS to VPS (improves performance)
0x80149C38:dword:0x60000000
[OnFrame_Enabled]
$Limit internal FPS to VPS (improves performance)
[Patches_RetroAchievements_Verified]
$Limit internal FPS to VPS (improves performance)
+12
View File
@@ -0,0 +1,12 @@
# GMNP78 - Monsters, Inc. Scream Arena
[OnFrame]
# After `GXDrawDone`, `nop` a branch that skips a call to `VIWaitForRetrace`.
$Limit internal FPS to VPS (improves performance)
0x8014CF88:dword:0x60000000
[OnFrame_Enabled]
$Limit internal FPS to VPS (improves performance)
[Patches_RetroAchievements_Verified]
$Limit internal FPS to VPS (improves performance)
+1 -1
View File
@@ -18,7 +18,7 @@ EFBAccessEnable = True
MissingColorValue = 0x00000000
[Video_Enhancements]
ForceTextureFiltering = False
ForceTextureFiltering = 0
ArbitraryMipmapDetection = True
[Video_Settings]
+1 -1
View File
@@ -10,4 +10,4 @@
# Add action replay cheats here.
[Video_Enhancements]
MaxAnisotropy = 0
ForceTextureFiltering = 0
+21 -16
View File
@@ -101,23 +101,28 @@ C2434EBC 00000002
3DC03F36 91DC00CC
60000000 00000000
$60 FPS
04423540 3BC00001 # `setFramerate`: force 60 FPS
0451D804 40100000 # Map translation speed 1
C2312B04 00000002 # Map translation speed 2
3C003F80 9001FFFC
C121FFFC 00000000
C242DF28 00000004 # Set to 30 FPS when cutscene starts
3C608042 6063352C
7C6903A6 806D9AEC
38800002 4E800421
801F01F0 00000000
C242E040 00000004 # Set to 60 FPS when cutscene ends
3C608042 6063352C
7C6903A6 806D9AEC
38800001 4E800421
801F01F0 00000000
0414B778 38800001 # `BaseGameSection::init`, force `setFramerate` argument to 60 FPS (2P mode doesn't start with a cutscene)
04513C5C 40100000 # Map translation speed 1
04513C60 3F800000 # Map translation speed 2
0451D7B0 3C75C28F # Map scale speed
04520628 3F911111 # Cutscene delta time
0452062C 20000000
C2010654 00000002 # Double cutscene sections' "frame duration"
5484083C 909F002C
60000000 00000000
C242ED28 00000002 # Cutscene: objects spawn/despawn timing
3C003F00 9001FFFC
C001FFFC 00000000
C24374DC 00000002 # Cutscene: trigger `startFadeblack` a frame earlier (fixes black screen in Day 1 cutscene)
806D9AEC C0230054
FC020840 00000000
04514128 3ECCCCCD # Final floor animation
04516140 3F000000 # Pay dept animation
04520078 3EB33333 # Ready-go animation
04410FA4 388000C8 # Win/Lose reason duration 1
04410FAC 386000FA # Win/Lose reason duration 2
04520224 3F000000 # Win/Lose animation
044106DC 38800078 # Win/Lose duration 1
044106E4 38600168 # Win/Lose duration 2
[Gecko_RetroAchievements_Verified]
$16:9 Widescreen
+5
View File
@@ -10,3 +10,8 @@ CPUThread = False
[ActionReplay]
# Add action replay cheats here.
[Video_Hacks]
# Fixes shadows at higher resolution.
# Option has no effect at 1x IR, so no reason not to enable.
VertexRounding = True
File diff suppressed because it is too large Load Diff
@@ -1,14 +1,11 @@
# GFBE5D - FireBlade
# GRAE5Z, GRAP75 - Rally Championship
[Core]
# Values set here will override the main Dolphin settings.
CPUThread = False
[OnFrame]
# Add memory patches to be applied every frame here.
[ActionReplay]
# Add action replay cheats here.
[Video_Hacks]
EFBToTextureEnable = True
+2
View File
@@ -2,6 +2,8 @@
[Core]
# Values set here will override the main Dolphin settings.
# Avoid crashes.
CPUThread = False
MemoryCardSize = 2
[OnFrame]
+33 -1
View File
@@ -1,7 +1,39 @@
# GT6E70 - Terminator 3: The Redemption
[OnFrame]
# Add memory patches to be applied every frame here.
$60 FPS
# Increasing `CPU Clock Override` is necessary for a stable FPS.
# Higher than 60 FPS is also possible with `VBI Clock Override`.
# This skips a busy loop immediately before a `VIWaitForRetrace`.
0x802df4fc:dword:0x60000000
# The rest of this scales "on foot" aiming sensitivity for variable framerates.
# The "on rails" game sections already do this scaling.
# This code overwrites some redundant Y axis sensitivity loading code.
0x8009bff4:dword:0x60000000 # NOP existing X axis code (moved later).
0x8009bff8:dword:0x60000000
0x8009bffc:dword:0x806d9c34
0x8009c000:dword:0x80630008
0x8009c004:dword:0xc0430000 # Load the elapsed time value.
0x8009c008:dword:0xec0000b2 # Scale sensitivity value by elapsed time.
0x8009c00c:dword:0xc0450074 # Load a convenient -30.0 value.
0x8009c010:dword:0xfc401050 # Negate.
0x8009c014:dword:0xec0000b2 # Scale sensitivity by 30 (the original framerate).
0x8009c018:dword:0x60000000 # NOP redundant sensitivity loading code.
0x8009c01c:dword:0x60000000
0x8009c020:dword:0x60000000
0x8009c024:dword:0x60000000
0x8009c028:dword:0x60000000
0x8009c02c:dword:0x60000000
0x8009c030:dword:0x60000000
0x8009c034:dword:0xc0460084 # Moved X axis code using different registers.
0x8009c038:dword:0xec210032
0x8009c03c:dword:0xec420828
0x8009c040:dword:0xd0460084
0x8009c044:dword:0xc0460170 # Adjusted Y axis code using different registers.
0x8009c048:dword:0xc0250088
0x8009c04c:dword:0x60000000
0x8009c054:dword:0xc0460088
0x8009c060:dword:0xd0060088
[ActionReplay]
# Add action replay cheats here.
+13 -3
View File
@@ -1,8 +1,18 @@
# GTRE78, GTRP78 - Tetris Worlds
# GTRE78, GTRJ8N, GTRP78 - Tetris Worlds
[Core]
# The game has an uncapped frame rate, which is equivalent to SyncOnSkipIdle already being False.
# Setting it is meant to avoid any performance regression when using the frame rate limit patch.
SyncOnSkipIdle = False
[OnFrame]
# Add memory patches to be applied every frame here.
[ActionReplay]
[Video_Settings]
# Add action replay cheats here.
[Video_Hacks]
# Fixes FMVs tearing.
EarlyXFBOutput = False
# Fixes FMVs not showing.
ImmediateXFBEnable = False
[Gecko]
+12
View File
@@ -0,0 +1,12 @@
# GTRE78 - Tetris Worlds
[OnFrame]
# After `GXDrawDone`, `nop` a branch that skips a call to `VIWaitForRetrace`.
$Limit internal FPS to VPS (improves performance)
0x80101A80:dword:0x60000000
[OnFrame_Enabled]
$Limit internal FPS to VPS (improves performance)
[Patches_RetroAchievements_Verified]
$Limit internal FPS to VPS (improves performance)
+12
View File
@@ -0,0 +1,12 @@
# GTRE78 - Tetris Worlds
[OnFrame]
# After `GXDrawDone`, `nop` a branch that skips a call to `VIWaitForRetrace`.
$Limit internal FPS to VPS (improves performance)
0x80101B08:dword:0x60000000
[OnFrame_Enabled]
$Limit internal FPS to VPS (improves performance)
[Patches_RetroAchievements_Verified]
$Limit internal FPS to VPS (improves performance)
+12
View File
@@ -0,0 +1,12 @@
# GTRJ8N - Tetris Worlds
[OnFrame]
# After `GXDrawDone`, `nop` a branch that skips a call to `VIWaitForRetrace`.
$Limit internal FPS to VPS (improves performance)
0x8010F210:dword:0x60000000
[OnFrame_Enabled]
$Limit internal FPS to VPS (improves performance)
[Patches_RetroAchievements_Verified]
$Limit internal FPS to VPS (improves performance)
+12
View File
@@ -0,0 +1,12 @@
# GTRP78 - Tetris Worlds
[OnFrame]
# After `GXDrawDone`, `nop` a branch that skips a call to `VIWaitForRetrace`.
$Limit internal FPS to VPS (improves performance)
0x80101390:dword:0x60000000
[OnFrame_Enabled]
$Limit internal FPS to VPS (improves performance)
[Patches_RetroAchievements_Verified]
$Limit internal FPS to VPS (improves performance)
+2 -2
View File
@@ -8,7 +8,7 @@
$16:9 Widescreen
043438A8 3FAF0000
043486A8 406CB800
$60Hz
$60 FPS
040B66F8 60000000
0402F0E4 38600002
0402F1CC 60000000
@@ -16,4 +16,4 @@ $60Hz
[AR_RetroAchievements_Verified]
$16:9 Widescreen
$60Hz
$60 FPS
+2 -2
View File
@@ -8,7 +8,7 @@
$16:9 Widescreen
04343EC8 3FAF0000
04348D30 406CB800
$60Hz
$60 FPS
040B6F08 60000000
0402F130 38600002
0402F218 60000000
@@ -16,4 +16,4 @@ $60Hz
[AR_RetroAchievements_Verified]
$16:9 Widescreen
$60Hz
$60 FPS
+2 -2
View File
@@ -8,7 +8,7 @@
$16:9 Widescreen
04336CE8 3FABA000
0433B920 406C4F00
$50Hz
$50 FPS
040B6408 60000000
0402F214 38600001
0402F300 60000000
@@ -16,4 +16,4 @@ $50Hz
[AR_RetroAchievements_Verified]
$16:9 Widescreen
$50Hz
$50 FPS
+15
View File
@@ -0,0 +1,15 @@
# GVRE7H - Grooverider: Slot Car Thunder
[Core]
# Values set here will override the main Dolphin settings.
[OnFrame]
# Add memory patches to be applied every frame here.
[ActionReplay]
# Add action replay cheats here.
[Video_Settings]
[Video_Hacks]
ImmediateXFBEnable = False
+1 -1
View File
@@ -7,4 +7,4 @@
SafeTextureCacheColorSamples = 0
[Video_Enhancements]
# Texture filtering causes lines with Mega Man X 3
ForceTextureFiltering = False
ForceTextureFiltering = 0
+5
View File
@@ -0,0 +1,5 @@
# GXLE52, GXLP52, GXLX52 - X-Men Legends
[Video_Hacks]
# Avoids constant black frame flickering.
ImmediateXFBEnable = False
+1 -2
View File
@@ -11,5 +11,4 @@ MMU = True
# Add action replay cheats here.
[Video_Enhancements]
MaxAnisotropy = 0
ForceTextureFiltering = False
ForceTextureFiltering = 0
+2 -2
View File
@@ -1,4 +1,4 @@
# GXXE01, GXXP01, GXXJ01 - POKeMON XD
# GXXE01, GXXP01, GXXJ01 - Pokemon XD: Gale of Darkness
[Core]
# Prevents crash when Greevil's henchman and Zook show up
@@ -18,5 +18,5 @@ MMU = True
SafeTextureCacheColorSamples = 0
# Many areas of the game have unused vertexes, especially with cutscenes
# involving Shadow Pokémon, such as the purification cutscene.
# CPU Cull ends up greatly boosting performance for these cases.
# CPU Cull ends up greatly boosting performance for these cases.
CPUCull = True
+6 -10
View File
@@ -12,17 +12,13 @@ $Allow Memory Card saving with Savestates
[Patches_RetroAchievements_Verified]
$Allow Memory Card saving with Savestates
[Gecko]
[ActionReplay]
$16:9 Widescreen
042EB168 00001783
042EB16C 000017EA
0400F614 60000000
0405C984 60000000
040875BC 60000000
0405C8AC 60000000
04086A34 60000000
04086930 60000000
044ED860 3FC962F9
$60 FPS
042AF894 38000000
042AEBEC 38000000
[Gecko_RetroAchievements_Verified]
[AR_RetroAchievements_Verified]
$16:9 Widescreen
$60 FPS
+11
View File
@@ -11,3 +11,14 @@ $Allow Memory Card saving with Savestates
[Patches_RetroAchievements_Verified]
$Allow Memory Card saving with Savestates
[ActionReplay]
$16:9 Widescreen
044CACE8 3FC962F9
$60 FPS
042AA2BC 38000000
042A9614 38000000
[AR_RetroAchievements_Verified]
$16:9 Widescreen
$60 FPS
+6 -2
View File
@@ -12,13 +12,17 @@ $Allow Memory Card saving with Savestates
[Patches_RetroAchievements_Verified]
$Allow Memory Card saving with Savestates
[Gecko]
[ActionReplay]
$16:9 Widescreen
04005300 C3A2BFBC
04005304 EFBD00B2
04005308 480AF7A8
040B4AAC 4BF50854
0452A35C 3FAAAAAB
$60 FPS
042B17F8 38000000
042B0B50 38000000
[Gecko_RetroAchievements_Verified]
[AR_RetroAchievements_Verified]
$16:9 Widescreen
$60 FPS
-2
View File
@@ -10,8 +10,6 @@
# Add action replay cheats here.
[Video_Hacks]
ImmediateXFBEnable = False
# The game logic itself is ignoring VI interrupts
# and keeps updating shadow video registers.
# Because of this, it is incompatible with VISkip.
+5
View File
@@ -0,0 +1,5 @@
# GZ3E70, GZ3PB2 - Dragon Ball Z: Budokai 2
[Video_Hacks]
# Frame pacing
ImmediateXFBEnable = False
+1 -1
View File
@@ -13,4 +13,4 @@
SafeTextureCacheColorSamples = 512
[Video_Enhancements]
ForceTextureFiltering = False
ForceTextureFiltering = 0
+1 -2
View File
@@ -10,5 +10,4 @@ SafeTextureCacheColorSamples = 0
EFBToTextureEnable = False
[Video_Enhancements]
MaxAnisotropy = 0
ForceTextureFiltering = False
ForceTextureFiltering = 0
+1 -2
View File
@@ -10,5 +10,4 @@ SafeTextureCacheColorSamples = 0
EFBToTextureEnable = False
[Video_Enhancements]
MaxAnisotropy = 0
ForceTextureFiltering = False
ForceTextureFiltering = 0
+1 -2
View File
@@ -10,5 +10,4 @@ SafeTextureCacheColorSamples = 0
EFBToTextureEnable = False
[Video_Enhancements]
MaxAnisotropy = 0
ForceTextureFiltering = False
ForceTextureFiltering = 0
+1 -2
View File
@@ -10,5 +10,4 @@ SafeTextureCacheColorSamples = 0
EFBToTextureEnable = False
[Video_Enhancements]
MaxAnisotropy = 0
ForceTextureFiltering = False
ForceTextureFiltering = 0
+1 -2
View File
@@ -10,5 +10,4 @@ SafeTextureCacheColorSamples = 0
EFBToTextureEnable = False
[Video_Enhancements]
MaxAnisotropy = 0
ForceTextureFiltering = False
ForceTextureFiltering = 0
+1 -2
View File
@@ -10,5 +10,4 @@ SafeTextureCacheColorSamples = 0
EFBToTextureEnable = False
[Video_Enhancements]
MaxAnisotropy = 0
ForceTextureFiltering = False
ForceTextureFiltering = 0
+1 -2
View File
@@ -19,5 +19,4 @@ ImmediateXFBEnable = False
SafeTextureCacheColorSamples = 0
[Video_Enhancements]
MaxAnisotropy = 0
ForceTextureFiltering = False
ForceTextureFiltering = 0
-4
View File
@@ -11,7 +11,3 @@
[Video_Settings]
SafeTextureCacheColorSamples = 512
[Video_Hacks]
EFBEmulateFormatChanges = True
+1 -1
View File
@@ -11,7 +11,7 @@
[Video_Enhancements]
# Fixes FMVs
ForceTextureFiltering = False
ForceTextureFiltering = 0
[Video_Settings]
# Needed for some FMVs.
+5 -1
View File
@@ -1,5 +1,9 @@
# R3SP52, R3SE52 - Spider-Man: Web of Shadows
[Core]
# Fix the game intermittently freezing.
CPUThread = False
[Video_Enhancements]
# FMVs get messed up if this is on
ForceTextureFiltering = False
ForceTextureFiltering = 0
+6
View File
@@ -0,0 +1,6 @@
# R4QE01 - Mario Strikers Charged
[Gecko]
$Disable Captain Mega Strikes [0BYK0]
0402f788 38600000
0402f78c 480000a0
* Disables Mega Strikes from all captains. This makes it far easier to play this game with a controller instead of a WiiMote if preferred.
+6
View File
@@ -0,0 +1,6 @@
# R4QJ01 - Mario Strikers Charged
[Gecko]
$Disable Captain Mega Strikes [0BYK0]
0402f788 38600000
0402f78c 480000a0
* Disables Mega Strikes from all captains. This makes it far easier to play this game with a controller instead of a WiiMote if preferred.
+5
View File
@@ -0,0 +1,5 @@
# R4QK01 - Mario Strikers Charged
[Gecko]
$Disable Captain Mega Strikes [0BYK0]
0402f7f0 38600000
* Disables Mega Strikes from all captains. This makes it far easier to play this game with a controller instead of a WiiMote if preferred.
+6
View File
@@ -0,0 +1,6 @@
# R4QP01r1 - Mario Strikers Charged
[Gecko]
$Disable Captain Mega Strikes [0BYK0]
0402f6e0 38600000
0402f6e4 48000008
* Disables Mega Strikes from all captains. This makes it far easier to play this game with a controller instead of a WiiMote if preferred.
+6
View File
@@ -0,0 +1,6 @@
# R4QP01r2 - Mario Strikers Charged
[Gecko]
$Disable Captain Mega Strikes [0BYK0]
0402f78c 38600000
0402f790 48000008
* Disables Mega Strikes from all captains. This makes it far easier to play this game with a controller instead of a WiiMote if preferred.
+1 -1
View File
@@ -13,5 +13,5 @@
SafeTextureCacheColorSamples = 512
[Video_Enhancements]
ForceTextureFiltering = False
ForceTextureFiltering = 0
+8
View File
@@ -0,0 +1,8 @@
# R6APPU - Baby and Me
[OnFrame]
# The game busyloops for frame pacing but not in a way Dolphin can
# currently optimize, so lots of CPU time is wasted.
# This patch adds a call to VIWaitForRetrace to avoid this.
$Performance hack
0x80016E28:dword:0x4807BD89
+1 -1
View File
@@ -11,7 +11,7 @@
[Video_Enhancements]
# Fixes FMVs
ForceTextureFiltering = False
ForceTextureFiltering = 0
[Video_Settings]
# Needed for some FMVs.
+7 -2
View File
@@ -1,7 +1,9 @@
# R7XE69, R7XJ13, R7XP69 - Need for Speed: Nitro
[Core]
# Values set here will override the main Dolphin settings.
# The game has an undetected idle loop, which is equivalent to SyncOnSkipIdle already being False.
# Setting it is meant to avoid any performance regression when using the idle loop detection patch.
SyncOnSkipIdle = False
[OnFrame]
# Add memory patches to be applied every frame here.
@@ -10,8 +12,11 @@
# Add action replay cheats here.
[Video_Settings]
# Responsive car painting.
SafeTextureCacheColorSamples = 512
[Video_Hacks]
# Functional pointing while car painting.
EFBAccessEnable = True
# Customizable cars load as completely black otherwise (even in their default state), sun bloom.
EFBToTextureEnable = False
+16
View File
@@ -0,0 +1,16 @@
# R7XE69 - Need for Speed: Nitro
[OnFrame]
# Changes an idle loop that Dolphin is unable to detect, to one that it can detect.
#
# The loop waits for a vblank interrupt, spamming `OSYieldThread` in the meantime.
# The patch replaces the call to `VIWaitForRetrace`, which still executes the other threads,
# but sleeps instead of spinlocking when there is no thread to execute.
$Speed hack
0x802B2908:dword:0x4826F5C9
[OnFrame_Enabled]
$Speed hack
[Patches_RetroAchievements_Verified]
$Speed hack
+16
View File
@@ -0,0 +1,16 @@
# R7XJ13 - Need for Speed: Nitro
[OnFrame]
# Changes an idle loop that Dolphin is unable to detect, to one that it can detect.
#
# The loop waits for a vblank interrupt, spamming `OSYieldThread` in the meantime.
# The patch replaces the call to `VIWaitForRetrace`, which still executes the other threads,
# but sleeps instead of spinlocking when there is no thread to execute.
$Speed hack
0x802B3118:dword:0x4826F5B9
[OnFrame_Enabled]
$Speed hack
[Patches_RetroAchievements_Verified]
$Speed hack
+16
View File
@@ -0,0 +1,16 @@
# R7XP69 - Need for Speed: Nitro
[OnFrame]
# Changes an idle loop that Dolphin is unable to detect, to one that it can detect.
#
# The loop waits for a vblank interrupt, spamming `OSYieldThread` in the meantime.
# The patch replaces the call to `VIWaitForRetrace`, which still executes the other threads,
# but sleeps instead of spinlocking when there is no thread to execute.
$Speed hack
0x802B2908:dword:0x4826F5C9
[OnFrame_Enabled]
$Speed hack
[Patches_RetroAchievements_Verified]
$Speed hack
+1 -1
View File
@@ -11,4 +11,4 @@
[Video_Enhancements]
# Fixes FMVs
ForceTextureFiltering = False
ForceTextureFiltering = 0
+11
View File
@@ -0,0 +1,11 @@
# RB7E54 - Bully: Scholarship Edition
[OnFrame]
$Limit internal frame rate in loading screens (fix hangs)
0x8039C7B8:dword:0x60000000
[OnFrame_Enabled]
$Limit internal frame rate in loading screens (fix hangs)
[Patches_RetroAchievements_Verified]
$Limit internal frame rate in loading screens (fix hangs)
+11
View File
@@ -0,0 +1,11 @@
# RB7P54 - Bully: Scholarship Edition
[OnFrame]
$Limit internal frame rate in loading screens (fix hangs)
0x8039C7f8:dword:0x60000000
[OnFrame_Enabled]
$Limit internal frame rate in loading screens (fix hangs)
[Patches_RetroAchievements_Verified]
$Limit internal frame rate in loading screens (fix hangs)
+1 -2
View File
@@ -12,8 +12,7 @@
[Video_Settings]
[Video_Enhancements]
MaxAnisotropy = 0
ForceTextureFiltering = False
ForceTextureFiltering = 0
[Video_Hacks]
ImmediateXFBEnable = False
+1 -1
View File
@@ -10,7 +10,7 @@
# Add action replay cheats here.
[Video_Enhancements]
ForceTextureFiltering = False
ForceTextureFiltering = 0
[Video_Hacks]
+2 -2
View File
@@ -10,5 +10,5 @@ CPUThread = False
# Add action replay cheats here.
[Video_Enhancements]
# Anisotropic Filtering breaks FMVs
MaxAnisotropy = 0
# Linear filtering breaks FMVs
ForceTextureFiltering = 0
-6
View File
@@ -9,11 +9,5 @@
[ActionReplay]
# Add action replay cheats here.
[Video_Settings]
[Video_Enhancements]
MaxAnisotropy = 0
ForceTextureFiltering = False
[Video_Hacks]
ImmediateXFBEnable = False
+1 -1
View File
@@ -10,5 +10,5 @@
# Add action replay cheats here.
[Video_Enhancements]
ForceTextureFiltering = False
ForceTextureFiltering = 0
+1 -1
View File
@@ -10,7 +10,7 @@
# Add action replay cheats here.
[Video_Enhancements]
ForceTextureFiltering = False
ForceTextureFiltering = 0
[Video_Settings]
SafeTextureCacheColorSamples = 0
+1 -2
View File
@@ -13,8 +13,7 @@
SafeTextureCacheColorSamples = 0
[Video_Enhancements]
MaxAnisotropy = 0
ForceTextureFiltering = False
ForceTextureFiltering = 0
[Video_Hacks]
ImmediateXFBEnable = False
+1 -1
View File
@@ -4,6 +4,6 @@
[OnFrame]
[ActionReplay]
[Video_Enhancements]
ForceTextureFiltering = False
ForceTextureFiltering = 0
[Video_Hacks]
EFBToTextureEnable = False

Some files were not shown because too many files have changed in this diff Show More