summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2025-12-21ScmRevGen: Bump version to 25122512release-prep-2512OatmealDome
2025-12-20Translation resources sync with TransifexJosJuice
2025-12-19Merge pull request #14210 from cscd98/ulong-compileAdmiral H. Curtiss
MainWindow: Fix sscanf type/width specifiers for DWORD
2025-12-17Merge pull request #14202 from jordan-woyak/sdl-gcadapter-hintJMC47
ControllerInterface: Turn off SDL's GameCube controller adapter handling when Dolphin is configured to use the adapter.
2025-12-15Merge pull request #14219 from Sintendo/stringutils-drop-tabs2spacesJordan Woyak
StringUtils: Drop TabsToSpaces
2025-12-15Merge pull request #14220 from Anarky/masterJordan Woyak
GameSettings: Enable MMU for Vexx (PAL)
2025-12-15GameSettings: Enable MMU for Vexx (PAL)Anarky
Without it, the game crashes after completing the tutorial level.
2025-12-15StringUtils: Drop TabsToSpacesSintendo
This function is unused.
2025-12-12Merge pull request #14211 from cscd98/enumerate-radiosJordan Woyak
mingw: fix usage of std::invocable with EnumerateRadios
2025-12-12mingw: fix use of std::invocable with EnumerateRadiosCraig Carnell
2025-12-11MainWindow: Fix sscanf type/width specifiers for DWORDCraig Carnell
2025-12-10Merge pull request #14197 from JosJuice/jit64-store-clobber-immJMC47
Jit64: Explicitly get imm for clobbered stores
2025-12-09ControllerInterface: Turn off SDL's GameCube controller adapter handling ↵Jordan Woyak
when Dolphin is configured to use the adapter.
2025-12-08Jit64: Explicitly get imm for clobbered storesJosJuice
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-01Merge pull request #14178 from ↵JosJuice
Dentomologist/jit64_avoid_passing_immediate_to_non_immediate_parameter Jit64: Avoid passing immediate to non-immediate parameter
2025-12-01Merge pull request #14186 from JoshuaVandaele/dit-crash-fixJosJuice
DITConfiguration: Prevent a crash if images fail to load
2025-12-01Merge pull request #14188 from JosJuice/jit64-flush-carryJosJuice
Jit64: Flush carry flag in FallBackToInterpreter
2025-11-30Merge pull request #14182 from jordan-woyak/ra-hardcore-warning-sizeJosJuice
DolphinQt: Use QtUtils::CreateIconWarning to make the RetroAchievements warning size consistent with other warnings.
2025-11-30Merge pull request #14180 from jordan-woyak/mgba-link-fixJosJuice
GBACore: Fix Pokemon GBA link.
2025-11-29DITConfiguration: Prevent a crash if images fail to loadJoshua Vandaële
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-29Merge pull request #14181 from jordan-woyak/frogger-shadow-vertex-roundingJordan Woyak
GameSettings: Enable VertexRounding in Frogger: Ancient Shadow.
2025-11-29Merge pull request #14190 from ↵Jordan Woyak
Dentomologist/directiofile_dont_request_delete_access_for_read_only_open Windows/DirectIOFile: Don't request DELETE access for read-only Open
2025-11-29Windows/DirectIOFile: Don't request DELETE access for read-only OpenDentomologist
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-29Jit64: Flush carry flag in FallBackToInterpreterJosJuice
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-27GameSettings: Enable VertexRounding in Frogger: Ancient Shadow to fix ↵Jordan Woyak
graphical artifacts.
2025-11-27Merge pull request #14183 from ↵Jordan Woyak
LillyJadeKatrin/retroachievements-eternal-darkness-testing-my-sanity RetroAchievements - Remove Hardcore Check from ApplyMemoryPatch
2025-11-27Merge pull request #14177 from JoshuaVandaele/retro-tests-offJosJuice
Disable PatchAllowlistTest if USE_RETRO_ACHIEVEMENTS is OFF
2025-11-27Merge pull request #14179 from Tilka/ax_lpfJosJuice
AX: fix low-pass filter edge case
2025-11-27RetroAchievements - Remove Hardcore Check from ApplyMemoryPatchLillyJadeKatrin
This was blocking all memory patches from executing properly in hardcore mode even when contained in the Allowlist.
2025-11-27DolphinQt: Use QtUtils::CreateIconWarning to make the RetroAchievements ↵Jordan Woyak
"hardcore mode" warning size consistent with the other warnings.
2025-11-26GBACore: Fix Pokemon GBA link.Jordan Woyak
2025-11-26Jit64: Avoid passing immediate to non-immediate parameterDentomologist
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-27Disable PatchAllowlistTest if USE_RETRO_ACHIEVEMENTS is OFFJoshua Vandaële
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-27Revert "GameSettings: Force DSP LLE in NFL Blitz Pro to avoid terrible ↵Tillmann Karras
sounding audio." This reverts commit b7f3d96df41f0a9c8f9294b45dbedc448bb4c922.
2025-11-27AX: fix signedness of second low-pass filter coefficientTillmann Karras
This fixes NFL Blitz Pro.
2025-11-26Merge pull request #14171 from jordan-woyak/nfl-blitz-pro-force-dsp-lleJMC47
GameSettings: Force DSP LLE in NFL Blitz Pro to avoid terrible sounding audio.
2025-11-26GameSettings: Force DSP LLE in NFL Blitz Pro to avoid terrible sounding audio.Jordan Woyak
2025-11-26Translation resources sync with TransifexJosJuice
2025-11-25Merge pull request #14164 from jordan-woyak/xmen-legends-no-immxfbJordan Woyak
GameSettings: Force ImmediateXFBEnable off in X-Men Legends.
2025-11-25Merge pull request #14167 from JosJuice/game-inis-2025-11-24Jordan Woyak
GameSettings: Use three-character INIs for newly added settings
2025-11-25Merge pull request #14169 from JosJuice/i18n-2025-11-25Jordan Woyak
DolphinQt: Adjust capitalization of "Select A Bluetooth Device"
2025-11-25Merge pull request #14066 from Biendeo/masterJosJuice
IOS: Logitech USB Microphone Basic Support
2025-11-25DolphinQt: Adjust capitalization of "Select A Bluetooth Device"JosJuice
2025-11-25Merge pull request #14159 from JosJuice/android-retroachievements-login-goneJosJuice
Android: Tweak dialog_login.xml layout
2025-11-25Merge pull request #14160 from JosJuice/android-retroachievements-more-optionsJosJuice
Android: Add LeaderboardTrackerEnabled and ChallengeIndicatorsEnabled
2025-11-25USB: Add emulated Logitech USB MicrophoneBiendeo
Co-authored by: supermilkdude67 <w.f.s.jazzfyre@gmail.com>
2025-11-24GameSettings: Use three-character INIs for newly added settingsJosJuice
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-24Merge pull request #14165 from BSDKaffee/qt-6.10-fixJosJuice
Fix build for non-Linux with Qt 6.10+
2025-11-24Fix build for non-Linux with Qt 6.10+Jason E. Hale
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-24GameSettings: Force ImmediateXFBEnable off in X-Men Legends. ImmediateXFB ↵Jordan Woyak
causes constant black frame flickering in this game.