MarocZan / Majora-s-Mask-REDUX

6 stars 3 forks source link

Short emulator freeze on Dolphin's Virtual Console when going through doors #1

Open Admentus64 opened 3 years ago

Admentus64 commented 3 years ago

This is an issue that comes from the Majora's Mask Randomizer itself, on which Redux is based. The original issue: https://github.com/ZoeyZolotova/mm-rando/issues/133

So what's the issue actually in short?

"There is a freeze issue on the Virtual Console (Dolphin emulator) when going through a door. This lasts a second or so. Using the CPU Clock Override through Dolphin diminishes the time needed for the emulator to continue again, but... It's not ideal. It's not an issue on Project64 through. It seems the game freezes the Dolphin emulator to do some calculations before being able to continue once again, which the Virtual Console can not seem to handle very effectively, hence, the delay / freeze / pause."

"The bug does not affect doors within dungeons, but does affect for example the doors in the Great Bay Skulltula House, but only once (when re-entering) since the map stays loaded in the ROM or something. Doors that change the scene will keep causing the delay / freeze every single time."

So what changed since then? MM Rando got updated to v1.13.0.11 in december 2020. And this update fixed the issue completely. The latest current MM Rando version is v1.13.0.12. The fix is within the patched ROM itself. I already checked if the Virtual Console files themselves got changed, but the app files did not get changed since then.

How to fix it? Redux would need to be rebased on the latest MM Rando version. Other than fixing the freeze issue on the Wii VC, it also adds some more interesting stuff for Redux we can potentially mess with. Some interesting additions include:

These new additional won't have to be forced / enabled into the main Redux patch by default, but it would be awesome if the additions are mapped in the ROM and can be activated. Tools such as Patcher64+ can be used to further customize these features through an GUI.