GBA I/O: Fix writing to out-of-bounds 8-bit I/O registers

This commit is contained in:
Jeffrey Pfau 2016-09-28 12:57:58 -07:00
parent e6b4144ba2
commit 278ac5f35b
1 changed files with 3 additions and 0 deletions

View File

@ -562,6 +562,9 @@ void GBAIOWrite8(struct GBA* gba, uint32_t address, uint8_t value) {
}
return;
}
if (address > SIZE_IO) {
return;
}
uint16_t value16 = value << (8 * (address & 1));
value16 |= (gba->memory.io[(address & (SIZE_IO - 1)) >> 1]) & ~(0xFF << (8 * (address & 1)));
GBAIOWrite(gba, address & 0xFFFFFFFE, value16);