summaryrefslogtreecommitdiff
path: root/Data
diff options
context:
space:
mode:
authorTillmann Karras <tilkax@gmail.com>2025-03-30 00:30:54 +0000
committerTillmann Karras <tilkax@gmail.com>2025-03-30 00:48:22 +0000
commit7e578346911952527b2ed2aef492e2ce4e0ee451 (patch)
tree4b557f7266fa83a3674a5fc5a118500c17aecba5 /Data
parent9819d66a478be3d57af9278e6c2cb433556a78d1 (diff)
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.
Diffstat (limited to 'Data')
-rw-r--r--Data/Sys/GameSettings/WMOEE9.ini7
-rw-r--r--Data/Sys/GameSettings/WMOJE9.ini7
-rw-r--r--Data/Sys/GameSettings/WMOPE9.ini7
3 files changed, 21 insertions, 0 deletions
diff --git a/Data/Sys/GameSettings/WMOEE9.ini b/Data/Sys/GameSettings/WMOEE9.ini
new file mode 100644
index 0000000000..35724802b4
--- /dev/null
+++ b/Data/Sys/GameSettings/WMOEE9.ini
@@ -0,0 +1,7 @@
+# WMOEE9 - Moki Moki
+
+[OnFrame_Enabled]
+$Fix startup hang
+[OnFrame]
+$Fix startup hang
+0x8001729C:dword:0x4182FFF8
diff --git a/Data/Sys/GameSettings/WMOJE9.ini b/Data/Sys/GameSettings/WMOJE9.ini
new file mode 100644
index 0000000000..29b3a3a764
--- /dev/null
+++ b/Data/Sys/GameSettings/WMOJE9.ini
@@ -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
diff --git a/Data/Sys/GameSettings/WMOPE9.ini b/Data/Sys/GameSettings/WMOPE9.ini
new file mode 100644
index 0000000000..487cbc9112
--- /dev/null
+++ b/Data/Sys/GameSettings/WMOPE9.ini
@@ -0,0 +1,7 @@
+# WMOPE9 - Moki Moki
+
+[OnFrame_Enabled]
+$Fix startup hang
+[OnFrame]
+$Fix startup hang
+0x8001729C:dword:0x4182FFF8