Fix SPU bit depth and stale JIT state - #2749
Conversation
|
So this fixes some things, as described in the description... but what really does it change / affect in day to day usage? Performance? Compatibility? |
|
For most melonDS users, these fixes will probably make no noticeable difference in everyday use. The only directly visible change is that the DS Auto/10-bit audio setting now works correctly. The other fixes correct rare but real errors reproduced in tests, where the emulator could use old or incorrect memory data. No commercial game, crash, or general compatibility improvement has been confirmed. These are mainly reliability fixes, not performance optimizations. One change avoids some unnecessary work, but no measurable speed improvement is claimed. |
|
Still, sounds like a great work. Thanks for reply! |
Problem
The core can keep using settings or compiled code after they are no longer valid:
Why the existing fixes are not enough
PR #2745 and PR #2746 cover only the unrelated-code and Thumb-address errors. PR #2747 only combines those two changes. All three are closed and unmerged, and none covers the other stale-state paths.
The safeguard in
55ec724fonly sees exact write addresses observed while compiling. It misses changing or conditional addresses, overlapping byte writes, and exchange instructions. The WVRAM fix in32609bbconly covers ARM7 video WRAM, not Shared WRAM, its ARM7 alias, or both CPU lookup tables.Fix
JIT and no-JIT Release builds and all 104 focused test processes pass.