Emulator Issues #11952
Regression in launching Gamecube games from Wii Menu
The Legend of Zelda: The Wind Waker
Possibly affects other games.
Game ID? GZLE01
MD5 Hash? d8e4d45af2032a081a0f446384e9261b
What's the problem? Describe what went wrong.
Dolphin crashes with "IntCPU: Unknown instruction 00000000 at PC = 803a6f80 last_PC = 81301020 LR = 803a6f80" when launching Wind Waker from the emulated wii menu.
What steps will reproduce the problem?
Launch Wind Waker from the emulated wii menu.
Is the issue present in the latest development version? For future reference, please also write down the version number of the latest development version.
Is the issue present in the latest stable version?
Latest stable doesn't support MIOS.
If the issue isn't present in the latest stable version, which is the first broken version? First broken version was 5.0-3301
What are your PC specifications? (CPU, GPU, Operating System, more)
Doesn't work on both my systems, under both Linux and Windows.
One has an i5-2320 + GTX560Ti, the other is an i5-7200U + GTX950M.
Sounds like MIOS isn't working. It patches certain games that would crash on a Wii vs GC. Is your Wind Waker modified in any way, such as being off region for the System Menu?
No, this is the original US iso (the hash indicates it's a correct dump), and running on a fresh 4.3U System Menu install.
This is caused by https://github.com/dolphin-emu/dolphin/pull/8394
All the gamecube titles I tested crash Dolphin when run via MIOS.
5.0-3297 works yet 3301 doesn't so this is probably another issue. I do have some games like melee that launch correctly even on the latest build, but WW and Super Mario Strikers fail (though Strikers issue is maybe unrelated to the change in 3301?)
5.0-3301 does sound like it could break something like this - https://dolphin-emu.org/download/dev/9d070a5df79a7f34dc4936855da36a333803fa12/
I may be wrong, but the issue seems to stem from the patch @ Gecko::ENTRY_POINT (0x1800 + 0xA8) in PatchFixedFunctions. MIOS installs a hook at this location. On previous versions this wasn't a big deal because the MIOS hook was installed then not touched again, but since this version, this patch is applied after MIOS was run and overwrite its hook, as the call to UpdateRunningGame in MIOS.cpp cause the patches to be applied again.