From 4b43a88ebd9deba76421e7741a2abe808a2fa897 Mon Sep 17 00:00:00 2001 From: Jeffrey Pfau Date: Fri, 29 Apr 2016 02:21:15 -0700 Subject: [PATCH] GB: Fix some memory errors in reset --- src/gb/gb.c | 1 + src/gb/memory.c | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) 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; }