From 1cb5c6868da3daea813ee077b2727a720a321b8f Mon Sep 17 00:00:00 2001 From: tomcw Date: Tue, 17 Oct 2017 14:46:55 -0700 Subject: [PATCH] UpdatePaging(): Clear memdirty flag for $Cx pages (#495) . STA $CFFF will set memdirty[0xCF] flag . The loop at the end of UpdatePaging() would copy a page of zeros over pCxRomInternal[0xF00] (ie. $CF00-CFFF) --- source/Memory.cpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/source/Memory.cpp b/source/Memory.cpp index 64aa3a12..06ee705b 100644 --- a/source/Memory.cpp +++ b/source/Memory.cpp @@ -913,6 +913,7 @@ static void UpdatePaging(BOOL initialize) for (loop = 0xC0; loop < 0xC8; loop++) { + memdirty[loop] = 0; // ROM can't be dirty const UINT uSlotOffset = (loop & 0x0f) * 0x100; if (loop == 0xC3) memshadow[loop] = (SW_SLOTC3ROM && SW_SLOTCXROM) ? pCxRomPeripheral+uSlotOffset // C300..C3FF - Slot 3 ROM (all 0x00's) @@ -924,6 +925,7 @@ static void UpdatePaging(BOOL initialize) for (loop = 0xC8; loop < 0xD0; loop++) { + memdirty[loop] = 0; // ROM can't be dirty (but STA $CFFF will set the dirty flag) const UINT uRomOffset = (loop & 0x0f) * 0x100; memshadow[loop] = (SW_SLOTCXROM && !INTC8ROM) ? pCxRomPeripheral+uRomOffset // C800..CFFF - Peripheral ROM (GH#486) : pCxRomInternal+uRomOffset; // C800..CFFF - Internal ROM