all repos — mgba @ 7735c08fd5075862c57e353063ad59e84d8b9d60

mGBA Game Boy Advance Emulator

GBA Memory: Fix unaligned out-of-bounds ROM loads
Jeffrey Pfau jeffrey@endrift.com
Tue, 10 Nov 2015 22:44:23 -0800
commit

7735c08fd5075862c57e353063ad59e84d8b9d60

parent

49b16f3d9b9fe0e04487764bc374d31ccb11fa81

2 files changed, 3 insertions(+), 2 deletions(-)

jump to
M CHANGESCHANGES

@@ -23,6 +23,7 @@ - GBA Memory: Fix DMA behavior for SRAM accesses

- GBA Memory: Fix Store8 to OBJ VRAM - GBA Memory: Fix alignment of LDM/STM on SRAM - GBA: Initialize uninitialized pristineRom and pristineRomSize members + - GBA Memory: Fix unaligned out-of-bounds ROM loads Misc: - Qt: Window size command line options are now supported - Qt: Increase usability of key mapper
M src/gba/memory.csrc/gba/memory.c

@@ -364,8 +364,8 @@ if ((address & (SIZE_CART0 - 1)) < memory->romSize) { \

LOAD_32(value, address & (SIZE_CART0 - 4), memory->rom); \ } else { \ GBALog(gba, GBA_LOG_GAME_ERROR, "Out of bounds ROM Load32: 0x%08X", address); \ - value = (address >> 1) & 0xFFFF; \ - value |= ((address + 2) >> 1) << 16; \ + value = ((address & ~3) >> 1) & 0xFFFF; \ + value |= (((address & ~3) + 2) >> 1) << 16; \ } #define LOAD_SRAM \