GBA I/O: Fix reading from a few invalid I/O registers (fixes #876)
Vicki Pfau vi@endrift.com
Wed, 20 Sep 2017 18:51:29 -0700
2 files changed,
12 insertions(+),
8 deletions(-)
M
CHANGES
→
CHANGES
@@ -41,6 +41,7 @@ - GBA Savedata: Fix 512 byte EEPROM saving as 8kB (fixes mgba.io/i/877)
- 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: - GBA Timer: Use global cycles for timers - GBA: Extend oddly-sized ROMs to full address space (fixes mgba.io/i/722)
M
src/gba/io.c
→
src/gba/io.c
@@ -890,14 +890,17 @@ // Handled transparently by registers
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: