diff --git a/src/gb/gb.c b/src/gb/gb.c index 24e958a9d..17d1f867e 100644 --- a/src/gb/gb.c +++ b/src/gb/gb.c @@ -195,6 +195,7 @@ void GBReset(struct LR35902Core* cpu) { cpu->d = 0; cpu->sp = 0xFFFE; cpu->pc = 0x100; + cpu->memory.setActiveRegion(cpu, cpu->pc); if (gb->yankedRomSize) { gb->memory.romSize = gb->yankedRomSize; diff --git a/src/gb/memory.c b/src/gb/memory.c index 2555568cc..40fcc6071 100644 --- a/src/gb/memory.c +++ b/src/gb/memory.c @@ -134,6 +134,7 @@ void GBMemoryReset(struct GB* gb) { memset(&gb->memory.rtcRegs, 0, sizeof(gb->memory.rtcRegs)); memset(&gb->memory.hram, 0, sizeof(gb->memory.hram)); + memset(&gb->memory.mbcState, 0, sizeof(gb->memory.mbcState)); const struct GBCartridge* cart = (const struct GBCartridge*) &gb->memory.rom[0x100]; switch (cart->type) { @@ -183,7 +184,6 @@ void GBMemoryReset(struct GB* gb) { case 0x22: gb->memory.mbc = _GBMBC7; gb->memory.mbcType = GB_MBC7; - memset(&gb->memory.mbcState.mbc7, 0, sizeof(gb->memory.mbcState.mbc7)); break; }