diff options
-rw-r--r-- | scumm/script_v5.cpp | 4 | ||||
-rw-r--r-- | scumm/scumm.cpp | 10 |
2 files changed, 7 insertions, 7 deletions
diff --git a/scumm/script_v5.cpp b/scumm/script_v5.cpp index 3a266ecfd2..5525c21988 100644 --- a/scumm/script_v5.cpp +++ b/scumm/script_v5.cpp @@ -2093,7 +2093,7 @@ void ScummEngine_v5::o5_setVarRange() { } void ScummEngine_v5::o5_startMusic() { - if (_features & GF_FMTOWNS) { + if (_features & GF_FMTOWNS && _version == 3) { // In FM Towns games this is some kind of Audio CD status query function. // See also bug #762589 (thanks to Hibernatus for providing the information). getResultPos(); @@ -2742,7 +2742,7 @@ void ScummEngine_v5::o5_oldRoomEffect() { a = getVarOrDirectWord(PARAM_1); #if 1 - if (_features & GF_FMTOWNS) { + if (_features & GF_FMTOWNS && _version == 3) { // FIXME / TODO: OK the first thing to note is: at least in Zak256, // maybe also in other games, this opcode does a bit more. I added // some stubs here, but somebody with a full IDA or more knowledge diff --git a/scumm/scumm.cpp b/scumm/scumm.cpp index 0afcb15530..4ac57c3e8a 100644 --- a/scumm/scumm.cpp +++ b/scumm/scumm.cpp @@ -792,7 +792,7 @@ ScummEngine::ScummEngine(GameDetector *detector, OSystem *syst, const ScummGameS _hexdumpScripts = false; _showStack = false; - if (_features & GF_FMTOWNS) { // FMTowns V3 games use 320x240 + if (_features & GF_FMTOWNS && _version == 3) { // FMTowns V3 games use 320x240 _screenWidth = 320; _screenHeight = 240; } else if (_features & GF_DEFAULT_TO_1X_SCALER) { @@ -1918,7 +1918,7 @@ void ScummEngine::processKbd(bool smushMode) { _lastKeyHit = _keyPressed; _keyPressed = 0; - if (((_version <= 2) || (_features & GF_FMTOWNS)) && 315 <= _lastKeyHit && _lastKeyHit < 315+12) { + if (((_version <= 2) || (_features & GF_FMTOWNS && _version == 3)) && 315 <= _lastKeyHit && _lastKeyHit < 315+12) { // Convert F-Keys for V1/V2 games (they start at 1 instead of at 315) _lastKeyHit -= 314; } @@ -2043,7 +2043,7 @@ void ScummEngine::processKbd(bool smushMode) { #endif if (VAR_RESTART_KEY != 0xFF && _lastKeyHit == VAR(VAR_RESTART_KEY) || - (((_version <= 2) || (_features & GF_FMTOWNS)) && _lastKeyHit == 8)) { + (((_version <= 2) || (_features & GF_FMTOWNS && _version == 3)) && _lastKeyHit == 8)) { confirmrestartDialog(); return; } @@ -2061,7 +2061,7 @@ void ScummEngine::processKbd(bool smushMode) { return; } - if ((_version <= 2) || (_features & GF_FMTOWNS)) + if ((_version <= 2) || (_features & GF_FMTOWNS && _version == 3)) saveloadkey = 5; // F5 else if ((_version <= 3) || (_gameId == GID_SAMNMAX) || (_gameId == GID_CMI)) saveloadkey = 319; // F5 @@ -3173,9 +3173,9 @@ Engine *Engine_SCUMM_create(GameDetector *detector, OSystem *syst) { } break; case Common::kPlatformFMTowns: + game.features |= GF_FMTOWNS; if (game.version == 3) { // The V5 FM-TOWNS games are mostly identical to the PC versions, it seems? - game.features |= GF_FMTOWNS; game.midi = MDT_TOWNS; } break; |