dolphin/Source/Core/DolphinQt/Config
smurf3tte f3b8a985e7 Patches for Resident Evil 2/3 audio issues
These games are erroneously zeroing buffers before they can be fully copied to ARAM by DMA. The responsible memset() calls are followed by a call to DVDRead() which issues dcbi instructions that effectively cancel the memset() on real hardware. Because Dolphin lacks dcache emulation, the effects of the memset() calls are observed, which causes missing audio.

In a comment on the original bug, phire noted that the issue can be corrected by simply nop'ing out the offending memset() calls. Because the games dynamically load different .rel executables based on the character and/or language, the addresses of these calls can vary.

To deal generally with the problem of code being dynamically loaded to fixed, known addresses, the patch engine is extended to support conditional patches which require a match against a known value. This sort of thing is already achievable with Action Replay/Gecko codes, but their use depends on enabling cheats globally in Dolphin, which is not a prerequisite shared by patches.

Patches are included for every region, character, and language combination. They are enabled by default.

The end result is an approximation of the games' behavior on real hardware without the associated complexity of proper dcache emulation.

https://bugs.dolphin-emu.org/issues/9840
2020-12-29 14:24:46 -08:00
..
ControllerInterface DolphinQt: resolve Qt5.15 deprecations 2020-08-23 13:57:05 -07:00
Graphics Turn Config::Info into a class with getters 2020-12-11 19:54:16 +01:00
Mapping WiimoteEmu/DolphinQt: Fix tilt indicator for wrapped around angles. 2020-12-14 20:02:49 -06:00
ToolTipControls DolphinQt: Add generic tooltip controls 2020-11-28 11:49:14 -06:00
ARCodeWidget.cpp Core: Allow overriding the enabling of a code 2020-12-11 10:02:14 +01:00
ARCodeWidget.h DolphinQt/Config/ARCodeWidget: Use forward declarations where applicable 2019-07-31 09:48:45 -04:00
CheatCodeEditor.cpp DolphinQt: Replace QStringLiteral with alternatives where applicable 2019-07-30 09:06:03 -04:00
CheatCodeEditor.h Move DolphinQt2 to DolphinQt 2018-07-07 00:48:38 +02:00
CheatWarningWidget.cpp Connect numerous QPushButtons to use clicked signal instead of pressed. This unifies UI behaviour more. 2019-07-24 00:18:58 +02:00
CheatWarningWidget.h Mark files as non-executable 2019-06-02 12:31:40 +01:00
ControllersWindow.cpp DolphinQt: resolve Qt5.15 deprecations 2020-08-23 13:57:05 -07:00
ControllersWindow.h InputCommon: Add real Wii Remote support to ControllerInterface. Add option to connect additional Wii Remotes. 2020-02-17 16:14:01 -06:00
FilesystemWidget.cpp DolphinQt: Run tasks that use progress dialogs on separate threads 2020-04-03 12:53:38 +02:00
FilesystemWidget.h VolumeVerifier: Check hashes in Wii partitions 2019-04-09 14:18:45 +02:00
GameConfigEdit.cpp DolphinQt: Use qOverload where applicable 2020-04-28 16:54:19 +02:00
GameConfigEdit.h DolphinQt/GameConfigEdit: Remove unimplemented SetReadOnly() member function 2020-01-27 15:44:52 -05:00
GameConfigHighlighter.cpp Qt/GameConfigWidget: Complete overhaul 2019-01-26 00:41:22 +01:00
GameConfigHighlighter.h Qt/GameConfigWidget: Complete overhaul 2019-01-26 00:41:22 +01:00
GameConfigWidget.cpp Remove redundant "Emulation" from "DSP HLE Emulation" 2020-05-03 17:54:05 +02:00
GameConfigWidget.h DolphinQt/GameConfigWidget: Remove unimplemented EditUserConfig() member function 2020-01-27 15:46:52 -05:00
GeckoCodeWidget.cpp Remove double space in GeckoCodeWidget code view 2019-09-01 11:22:42 -07:00
GeckoCodeWidget.h DolphinQt/Config/GeckoCodeWidget: Use forward declarations where applicable 2019-07-31 09:54:54 -04:00
InfoWidget.cpp Show NKitness in file format string 2020-10-06 19:35:00 +02:00
InfoWidget.h Show file format details in game properties 2020-06-21 20:47:23 +02:00
LogConfigWidget.cpp Common: Unify logging namespace with Common 2019-11-28 05:13:21 -05:00
LogConfigWidget.h DolphinQt: Add debug log option in GUI for debug builds 2019-05-08 14:47:34 +02:00
LogWidget.cpp Qt: Use better method of getting default monospace font 2020-09-15 04:48:44 -04:00
LogWidget.h Common: Unify logging namespace with Common 2019-11-28 05:13:21 -05:00
NewPatchDialog.cpp Patches for Resident Evil 2/3 audio issues 2020-12-29 14:24:46 -08:00
NewPatchDialog.h Reformat repo to clang-format 7.0 rules 2019-05-06 18:48:04 +00:00
PatchesWidget.cpp Patches for Resident Evil 2/3 audio issues 2020-12-29 14:24:46 -08:00
PatchesWidget.h DolphinQt/PatchesWidget: Remove unused private member variable m_game 2018-07-06 19:58:51 -04:00
PropertiesDialog.cpp DiscIO: Add functions CreateDisc and CreateWAD 2019-07-18 22:29:04 +02:00
PropertiesDialog.h Move DolphinQt2 to DolphinQt 2018-07-07 00:48:38 +02:00
SettingsWindow.cpp DolphinQt: Make WiiPane connect itself to EmulationStateChanged 2019-10-27 21:26:35 +01:00
SettingsWindow.h Move DolphinQt2 to DolphinQt 2018-07-07 00:48:38 +02:00
VerifyWidget.cpp Replace Windows CMake lambda constexpr capture workaround 2020-06-25 13:11:29 +02:00
VerifyWidget.h VolumeVerifier: Add datfile parsing 2019-08-24 16:37:19 +02:00