From a2f015882e2bae9429afd5bcd4de34cad6fd555b Mon Sep 17 00:00:00 2001 From: Nick Westgate Date: Sat, 8 Apr 2017 09:38:13 +1200 Subject: [PATCH] Fix language card switch behaviour - fixes #400 --- source/Memory.cpp | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/source/Memory.cpp b/source/Memory.cpp index cd252775..60c10251 100644 --- a/source/Memory.cpp +++ b/source/Memory.cpp @@ -1631,18 +1631,18 @@ BYTE __stdcall MemSetPaging(WORD programcounter, WORD address, BYTE write, BYTE if (((address & 2) >> 1) == (address & 1)) SetMemMode(memmode | MF_HIGHRAM); - if (!write) // GH#392 + if (address & 1) // GH#392 { - SetMemMode(memmode & ~(MF_WRITERAM)); - BOOL bWriteRam = (address & 1); - if (g_bLastWriteRam && bWriteRam) - SetMemMode(memmode | MF_WRITERAM); - g_bLastWriteRam = bWriteRam; + if (!write && g_bLastWriteRam) + { + SetMemMode(memmode | MF_WRITERAM); // UTAIIe:5-23 + } } else { - g_bLastWriteRam = 0; + SetMemMode(memmode & ~(MF_WRITERAM)); // UTAIIe:5-23 } + g_bLastWriteRam = (address & 1) && (!write); // UTAIIe:5-23 } else if (!IS_APPLE2) {