diff --git a/CHANGES b/CHANGES index 1a17e3f1d..44a6aed42 100644 --- a/CHANGES +++ b/CHANGES @@ -27,6 +27,7 @@ Bugfixes: - SDL: Fix potential race condition when pressing keys (fixes mgba.io/i/872) - GBA: Fix keypad IRQs not firing when extra buttons are pressed - GBA Video: Fix broken sprite blending hack (fixes mgba.io/i/532) + - GBA I/O: Fix reading from a few invalid I/O registers (fixes mgba.io/i/876) Misc: - Qt: Don't rebuild library view if style hasn't changed - SDL: Fix 2.0.5 build on macOS under some circumstances diff --git a/src/gba/io.c b/src/gba/io.c index 4d36f2800..9dcdd98ee 100644 --- a/src/gba/io.c +++ b/src/gba/io.c @@ -889,14 +889,17 @@ uint16_t GBAIORead(struct GBA* gba, uint32_t address) { break; case REG_MAX: // Some bad interrupt libraries will read from this - break; - case 0x66: - case 0x6E: - case 0x76: - case 0x7A: - case 0x7E: - case 0x86: - case 0x8A: + case 0x066: + case 0x06E: + case 0x076: + case 0x07A: + case 0x07E: + case 0x086: + case 0x08A: + case 0x136: + case 0x142: + case 0x15A: + case 0x206: mLOG(GBA_IO, GAME_ERROR, "Read from unused I/O register: %03X", address); return 0; case REG_DEBUG_ENABLE: