melonDS-emu / melonDS

DS emulator, sorta
https://melonds.kuribo64.net
GNU General Public License v3.0
3.26k stars 540 forks source link

ARM9 Caches and PU Emulation #776

Open poudink opened 4 years ago

poudink commented 4 years ago

These would be pretty stellar to have for homebrew and romhack developpers. Now, I'm fully aware of the effects this would have on emulation speed, which is the reason why they aren't implemented, but couldn't they be implemented as an option in the CPU emulation tab of the Emu settings that's disabled by default? I don't necessarily ask that ARM9 caches be implemented since I'm sure that'd be a lot of work, but there's already a branch with PU emulation implemented. Feel free to close this issue if you don't want to do it, though. I'm sure there are difficulties with adding the feature that I'm not aware of, and I get it if you're reticent to add options that represent speed-accuracy tradeoffs (though I guess JIT and hardware rendering are both kinda like that). It's just a suggestion on my part, but I think it'd be very nice to have. And who knows, it might fix some of the current timing issues with Sonic Chronicles and stuff.

RSDuck commented 4 years ago

there are quite a few of games which depend on proper cache timings so we can't get around atleast approximating the right timing. I have made one attempt which can be found in the arm9timinghacks branch and it fixes a few games, though it's far from perfect.

For tracking here's a list of all issues which are very likely due to bad arm9 timing: