GameSettings: fix startup hang in Moki Moki

The game sets up a fifo breakpoint callback that just writes a flag to
memory. The hang occurs right after calling GXEnableBreakPt(). It is a
busy loop that repeatedly compares the same register without reloading
it from memory. I guess the developers forgot to make the variable
atomic and never noticed because on hardware the breakpoint is hit
immediately so the flag is already set when it is loaded for the first
(and only) time. This patch grows the loop by one instruction to include
the flag load in the loop.
This commit is contained in:
Tillmann Karras 2025-03-30 00:30:54 +00:00
parent 9819d66a47
commit 7e57834691
3 changed files with 21 additions and 0 deletions

View file

@ -0,0 +1,7 @@
# WMOEE9 - Moki Moki
[OnFrame_Enabled]
$Fix startup hang
[OnFrame]
$Fix startup hang
0x8001729C:dword:0x4182FFF8

View file

@ -0,0 +1,7 @@
# WMOJE9 - Anata ga Mawashite Sukuu Puzzle - Mochi Mochi Q
[OnFrame_Enabled]
$Fix startup hang
[OnFrame]
$Fix startup hang
0x80018894:dword:0x4182FFF8

View file

@ -0,0 +1,7 @@
# WMOPE9 - Moki Moki
[OnFrame_Enabled]
$Fix startup hang
[OnFrame]
$Fix startup hang
0x8001729C:dword:0x4182FFF8