diff --git a/CHANGES b/CHANGES index 03646c26f..8c59aa9e9 100644 --- a/CHANGES +++ b/CHANGES @@ -51,6 +51,7 @@ Bugfixes: - GBA: Reset WAITCNT properly - GBA Serialize: Fix loading states in Hblank - PSP2: Fix more issues causing poor audio + - GBA Memory: Fix Vast Fame support (taizou) (fixes mgba.io/i/1170) 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/src/gba/vfame.c b/src/gba/vfame.c index 9dc6def16..0ac834cc9 100644 --- a/src/gba/vfame.c +++ b/src/gba/vfame.c @@ -246,10 +246,8 @@ void GBAVFameSramWrite(struct GBAVFameCart* cart, uint32_t address, uint8_t valu // if mode has been set - the address and value of the SRAM write will be modified address = _modifySramAddress(cart->cartType, address, cart->sramMode); value = _modifySramValue(cart->cartType, value, cart->sramMode); - // these writes are mirrored - address &= 0x7FFF; + address &= (SIZE_CART_SRAM - 1); sramData[address] = value; - sramData[address + 0x8000] = value; } static uint32_t _modifySramAddress(enum GBAVFameCartType type, uint32_t address, int mode) {