diff --git a/scumm/saveload.cpp b/scumm/saveload.cpp index 11b9a2e2a1f..ba9c32aadf6 100644 --- a/scumm/saveload.cpp +++ b/scumm/saveload.cpp @@ -157,7 +157,9 @@ bool Scumm::loadState(int slot, bool compat, SaveFileManager *mgr) { initScreens(0, sb, _realWidth, sh); _completeScreenRedraw = true; - setDirtyColors(0, 255); + + if (!(_features & GF_16COLOR)) + setDirtyColors(0, 255); _lastCodePtr = NULL; diff --git a/scumm/script_v5.cpp b/scumm/script_v5.cpp index 1b8bf504b03..be17c23b3c2 100644 --- a/scumm/script_v5.cpp +++ b/scumm/script_v5.cpp @@ -1654,7 +1654,8 @@ void Scumm_v5::o5_roomOps() { } checkRange(256, 0, a, "o5_roomOps: 2: Illegal room color slot (%d)"); _shadowPalette[b] = a; - setDirtyColors(b, b); + if (!(_features & GF_16COLOR)) + setDirtyColors(b, b); } else { a = getVarOrDirectWord(0x80); b = getVarOrDirectWord(0x40);