Permalink
Browse files

GBA Memory: Only copy-on-write if ROM buffer is not fixed

  • Loading branch information...
endrift committed Jan 26, 2018
1 parent d133cab commit adcb2de81414c901bdac72481bda5df2ab2bd248
Showing with 2 additions and 2 deletions.
  1. +2 −2 src/gba/memory.c
View
@@ -1629,21 +1629,21 @@ void _pristineCow(struct GBA* gba) {
if (!gba->isPristine) {
return;
}
+#ifndef FIXED_ROM_BUFFER
void* newRom = anonymousMemoryMap(SIZE_CART0);
memcpy(newRom, gba->memory.rom, gba->memory.romSize);
memset(((uint8_t*) newRom) + gba->memory.romSize, 0xFF, SIZE_CART0 - gba->memory.romSize);
if (gba->cpu->memory.activeRegion == gba->memory.rom) {
gba->cpu->memory.activeRegion = newRom;
}
if (gba->romVf) {
-#ifndef FIXED_ROM_BUFFER
gba->romVf->unmap(gba->romVf, gba->memory.rom, gba->memory.romSize);
-#endif
gba->romVf->close(gba->romVf);
gba->romVf = NULL;
}
gba->memory.rom = newRom;
gba->memory.hw.gpioBase = &((uint16_t*) gba->memory.rom)[GPIO_REG_DATA >> 1];
+#endif
gba->isPristine = false;
}

0 comments on commit adcb2de

Please sign in to comment.