diff --git a/src/gb/gb.c b/src/gb/gb.c index 940621d21..19331e1a6 100644 --- a/src/gb/gb.c +++ b/src/gb/gb.c @@ -106,6 +106,7 @@ bool GBLoadSave(struct GB* gb, struct VFile* vf) { static void GBSramDeinit(struct GB* gb) { if (gb->sramVf) { gb->sramVf->unmap(gb->sramVf, gb->memory.sram, gb->sramSize); + gb->sramVf->close(gb->sramVf); gb->sramVf = 0; } else if (gb->memory.sram) { mappedMemoryFree(gb->memory.sram, gb->sramSize); diff --git a/src/gba/gba.c b/src/gba/gba.c index 940700e6c..70fee0f6d 100644 --- a/src/gba/gba.c +++ b/src/gba/gba.c @@ -132,6 +132,10 @@ void GBAUnloadROM(struct GBA* gba) { } GBASavedataDeinit(&gba->memory.savedata); + if (gba->memory.savedata.realVf) { + gba->memory.savedata.realVf->close(gba->memory.savedata.realVf); + gba->memory.savedata.realVf = 0; + } gba->idleLoop = IDLE_LOOP_NONE; }