diff options
Diffstat (limited to 'sky')
-rw-r--r-- | sky/control.cpp | 2 | ||||
-rw-r--r-- | sky/disk.cpp | 14 |
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; |