aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--sky/control.cpp2
-rw-r--r--sky/disk.cpp14
2 files changed, 10 insertions, 6 deletions
diff --git a/sky/control.cpp b/sky/control.cpp
index cafe1e210d..e0a7a96de8 100644
--- a/sky/control.cpp
+++ b/sky/control.cpp
@@ -438,7 +438,7 @@ void SkyControl::doControlPanel(void) {
initPanel();
_skyScreen->clearScreen();
- if ((!SkyState::isCDVersion()) && (SkyState::_systemVars.gameVersion != 348))
+ if (SkyState::_systemVars.gameVersion < 331)
_skyScreen->setPalette(60509);
else
_skyScreen->setPalette(60510);
diff --git a/sky/disk.cpp b/sky/disk.cpp
index 390e973289..eee2fb02ad 100644
--- a/sky/disk.cpp
+++ b/sky/disk.cpp
@@ -127,11 +127,15 @@ uint8 *SkyDisk::loadFile(uint16 fileNr, uint8 *dest) {
_fileOffset = READ_LE_UINT32((filePtr + 2)) & 0x0ffffff;
- cflag = (uint8)((_fileOffset >> (23)) & 0x1);
- _fileOffset = (((1 << (23)) ^ 0xFFFFFFFF) & _fileOffset);
-
- if (cflag)
- _fileOffset <<= 4;
+ cflag = (uint8)((_fileOffset >> 23) & 0x1);
+ _fileOffset &= 0x7FFFFF;
+
+ if (cflag) {
+ if (SkyState::_systemVars.gameVersion == 331)
+ _fileOffset <<= 3;
+ else
+ _fileOffset <<= 4;
+ }
_fixedDest = dest;
_fileDest = dest;