diff --git a/src/gb/gb.c b/src/gb/gb.c index 6042eec0b..b50e9e371 100644 --- a/src/gb/gb.c +++ b/src/gb/gb.c @@ -102,8 +102,6 @@ bool GBLoadSave(struct GB* gb, struct VFile* vf) { vf->truncate(vf, 0x20000); } gb->memory.sram = vf->map(vf, 0x20000, MAP_WRITE); - } else { - gb->memory.sram = anonymousMemoryMap(0x20000); } return gb->memory.sram; } diff --git a/src/gb/memory.c b/src/gb/memory.c index 13ed53aff..dde742bc8 100644 --- a/src/gb/memory.c +++ b/src/gb/memory.c @@ -108,6 +108,9 @@ void GBMemoryReset(struct GB* gb) { GBMemorySwitchWramBank(&gb->memory, 1); gb->memory.romBank = &gb->memory.rom[GB_SIZE_CART_BANK0]; gb->memory.currentBank = 1; + if (!gb->memory.sram) { + gb->memory.sram = anonymousMemoryMap(0x20000); + } gb->memory.sramCurrentBank = 0; gb->memory.sramBank = gb->memory.sram;