all repos — mgba @ 91abd41eab2e3ec8130c827bdbdfa03c8c728e44

mGBA Game Boy Advance Emulator

GBA: Reset active region as needed when loading a ROM
Vicki Pfau vi@endrift.com
Fri, 21 Jul 2017 17:15:24 -0700
commit

91abd41eab2e3ec8130c827bdbdfa03c8c728e44

parent

b75812a99db39cc99a5d0b1420f0577e78828a04

2 files changed, 7 insertions(+), 0 deletions(-)

jump to
M CHANGESCHANGES

@@ -1,6 +1,7 @@

0.6.1: (Future) Bugfixes: - Python: Fix importing .gb or .gba before .core + - GBA: Reset active region as needed when loading a ROM Misc: - Qt: Don't rebuild library view if style hasn't changed
M src/gba/gba.csrc/gba/gba.c

@@ -308,6 +308,9 @@ gba->yankedRomSize = 0;

gba->memory.romSize = 0; gba->memory.romMask = 0; gba->romCrc32 = doCrc32(gba->memory.wram, gba->pristineRomSize); + if (gba->cpu && gba->memory.activeRegion == REGION_WORKING_RAM) { + gba->cpu->memory.setActiveRegion(gba->cpu, gba->cpu->gprs[ARM_PC]); + } return true; }

@@ -342,6 +345,9 @@ gba->memory.mirroring = false;

gba->romCrc32 = doCrc32(gba->memory.rom, gba->memory.romSize); GBAHardwareInit(&gba->memory.hw, &((uint16_t*) gba->memory.rom)[GPIO_REG_DATA >> 1]); GBAVFameDetect(&gba->memory.vfame, gba->memory.rom, gba->memory.romSize); + if (gba->cpu && gba->memory.activeRegion >= REGION_CART0) { + gba->cpu->memory.setActiveRegion(gba->cpu, gba->cpu->gprs[ARM_PC]); + } // TODO: error check return true; }