diff --git a/emulator/firmware-decomp/emu_main.py b/emulator/firmware-decomp/emu_main.py index e8cf56a..007ee90 100644 --- a/emulator/firmware-decomp/emu_main.py +++ b/emulator/firmware-decomp/emu_main.py @@ -111,9 +111,10 @@ class MainRunner: self.heap = [0x08010000, 0x0c010000] # bump allocator over the DRAM banks def h_igcwait(self, cpu): - # Post-flush drain wait: the firmware polls [r16] until the IGC clears - # it after consuming the region queue. We are the IGC: consume instantly. - cpu.mem.w32(cpu.rd(16), 0) + # Post-flush drain wait: the firmware polls [page] until the IGC writes a + # NONZERO completion status after consuming it (loop at 0xf0421504: exits + # the per-page wait when [r16] != 0). We are the IGC: complete instantly. + cpu.mem.w32(cpu.rd(16), 1) cpu.step() return True