From 7e578346911952527b2ed2aef492e2ce4e0ee451 Mon Sep 17 00:00:00 2001 From: Tillmann Karras Date: Sun, 30 Mar 2025 00:30:54 +0000 Subject: [PATCH] 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. --- Data/Sys/GameSettings/WMOEE9.ini | 7 +++++++ Data/Sys/GameSettings/WMOJE9.ini | 7 +++++++ Data/Sys/GameSettings/WMOPE9.ini | 7 +++++++ 3 files changed, 21 insertions(+) create mode 100644 Data/Sys/GameSettings/WMOEE9.ini create mode 100644 Data/Sys/GameSettings/WMOJE9.ini create mode 100644 Data/Sys/GameSettings/WMOPE9.ini 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