aboutsummaryrefslogtreecommitdiff
path: root/engines/agi
diff options
context:
space:
mode:
authorMartin Kiewitz2016-02-17 21:40:37 +0100
committerMartin Kiewitz2016-02-17 21:40:37 +0100
commit736d7cd533255d1fa9b3a6d20158ed7c917ac4a6 (patch)
tree8c354d31d4ad8fcbc7b3bd8fe049750ec9e29561 /engines/agi
parentfd688b73d75b06f96310d0151a2c9ef13d387f74 (diff)
downloadscummvm-rg350-736d7cd533255d1fa9b3a6d20158ed7c917ac4a6.tar.gz
scummvm-rg350-736d7cd533255d1fa9b3a6d20158ed7c917ac4a6.tar.bz2
scummvm-rg350-736d7cd533255d1fa9b3a6d20158ed7c917ac4a6.zip
AGI: Make SQ2 Apple IIgs get a AGI 2.917 equivalent and not 2.936
Solves the priority issues at the end, because the set.pri.base call is now rejected by us. The IIgs interpreter seems to feature 177 kernel calls, but the last few are not what we expect them to be. It seems set.pri.base was discard.sound for this interpreter. It seems it was cleaned up for kq4. That one actually uses dynamic priority bands and it's working properly. Fixes bug #7034
Diffstat (limited to 'engines/agi')
-rw-r--r--engines/agi/detection_tables.h9
1 files changed, 8 insertions, 1 deletions
diff --git a/engines/agi/detection_tables.h b/engines/agi/detection_tables.h
index 8da255d9ee..8d36419fd6 100644
--- a/engines/agi/detection_tables.h
+++ b/engines/agi/detection_tables.h
@@ -573,7 +573,14 @@ static const AGIGameDescription gameDescriptions[] = {
GAME("sq2", "2.0D 1988-03-14 3.5\"", "85390bde8958c39830e1adbe9fff87f3", 0x2936, GID_SQ2),
// Space Quest 2 (IIgs) 2.0A 7/25/88 (CE)
- GAME_P("sq2", "2.0A 1988-07-25 (CE)", "5dfdac98dd3c01fcfb166529f917e911", 0x2936, GID_SQ2, Common::kPlatformApple2GS),
+ // We have to see this as AGI < 2.936, because otherwise a set.pri.base call would somewhat break
+ // priority in SQ2, when entering Vohaul's vault.
+ // The Apple IIgs AGI included with SQ2 is the same as the one included with KQ3.
+ // We currently consider KQ3 IIgs to be a 2.917-equivalent.
+ // The SQ2 IIgs AGI definitely has 177 kernel functions, but it seems that Sierra shuffled the last few around / added a few extras at the end.
+ // For KQ3 set.pri.base is called with parameters that seem to be sound resources, which means
+ // set.pri.base was possibly discard.sound. For KQ4 onwards it seems this was cleaned up.
+ GAME_P("sq2", "2.0A 1988-07-25 (CE)", "5dfdac98dd3c01fcfb166529f917e911", 0x2917, GID_SQ2, Common::kPlatformApple2GS),
{
// Space Quest 2 (Amiga) 2.0F