diff --git a/CHANGES b/CHANGES index 9684ad736..935ec0ca8 100644 --- a/CHANGES +++ b/CHANGES @@ -42,6 +42,7 @@ Bugfixes: - 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) + - GBA Savedata: Fix size of SRAM saves (fixes mgba.io/i/883) Misc: - GBA Timer: Use global cycles for timers - GBA: Extend oddly-sized ROMs to full address space (fixes mgba.io/i/722) diff --git a/include/mgba/internal/gba/memory.h b/include/mgba/internal/gba/memory.h index 165d956d0..4e9839798 100644 --- a/include/mgba/internal/gba/memory.h +++ b/include/mgba/internal/gba/memory.h @@ -64,7 +64,7 @@ enum { SIZE_CART0 = 0x02000000, SIZE_CART1 = 0x02000000, SIZE_CART2 = 0x02000000, - SIZE_CART_SRAM = 0x00010000, + SIZE_CART_SRAM = 0x00008000, SIZE_CART_FLASH512 = 0x00010000, SIZE_CART_FLASH1M = 0x00020000, SIZE_CART_EEPROM = 0x00002000, diff --git a/src/gba/cheats.c b/src/gba/cheats.c index 2e1a30b54..c8a8f2c82 100644 --- a/src/gba/cheats.c +++ b/src/gba/cheats.c @@ -367,7 +367,7 @@ int GBACheatAddressIsReal(uint32_t address) { return -0x8; case REGION_CART_SRAM: case REGION_CART_SRAM_MIRROR: - if ((address & OFFSET_MASK) > SIZE_CART_SRAM) { + if ((address & OFFSET_MASK) > SIZE_CART_FLASH512) { return -0x80; } return -0x8;