[Scummvm-cvs-logs] SF.net SVN: scummvm: [30164] scummvm/trunk/engines/agi
buddha_ at users.sourceforge.net
buddha_ at users.sourceforge.net
Wed Jan 2 20:10:01 CET 2008
Revision: 30164
http://scummvm.svn.sourceforge.net/scummvm/?rev=30164&view=rev
Author: buddha_
Date: 2008-01-02 11:10:01 -0800 (Wed, 02 Jan 2008)
Log Message:
-----------
Add GF_OLDAMIGAV20 game flag for correctly setting computer type (v20 i.e. vComputer) for particular old Amiga AGI games (Space Quest I v1.2 at the moment).
Modified Paths:
--------------
scummvm/trunk/engines/agi/agi.h
scummvm/trunk/engines/agi/cycle.cpp
scummvm/trunk/engines/agi/detection.cpp
Modified: scummvm/trunk/engines/agi/agi.h
===================================================================
--- scummvm/trunk/engines/agi/agi.h 2008-01-02 18:59:33 UTC (rev 30163)
+++ scummvm/trunk/engines/agi/agi.h 2008-01-02 19:10:01 UTC (rev 30164)
@@ -127,6 +127,10 @@
GType_V3 = 2
};
+/*
+ * GF_OLDAMIGAV20 means that the interpreter is an old Amiga AGI interpreter that
+ * uses value 20 for the computer type (v20 i.e. vComputer) rather than the usual value 5.
+ */
enum AgiGameFeatures {
GF_AGIMOUSE = (1 << 0),
GF_AGDS = (1 << 1),
@@ -136,7 +140,8 @@
GF_MACGOLDRUSH = (1 << 5),
GF_FANMADE = (1 << 6),
GF_MENUS = (1 << 7),
- GF_ESCPAUSE = (1 << 8)
+ GF_ESCPAUSE = (1 << 8),
+ GF_OLDAMIGAV20 = (1 << 9)
};
struct AGIGameDescription;
@@ -268,13 +273,31 @@
/**
* Different computer types.
* Used with AGI variable 20 i.e. vComputer.
- * FIXME? As an exception Amiga's Space Quest I (Version 1.2, AGI 2.082) uses value 20.
+ *
+ * At least these Amiga AGI versions use value 5:
+ * 2.082 (King's Quest I v1.0U 1986)
+ * x.yyy (Black Cauldron v2.00 1987-06-14)
+ * x.yyy (Larry I v1.05 1987-06-26)
+ * 2.107 (King's Quest II v2.0J. Date is probably 1987-01-29)
+ * 2.310 (Police Quest I v2.0B 1989-02-22)
+ * 2.316 (Gold Rush! v2.05 1989-03-09)
+ * 2.333 (King's Quest III v2.15 1989-11-15)
+ *
+ * At least these Amiga AGI versions use value 20:
+ * 2.082 (Space Quest I v1.2 1986)
+ *
+ * TODO: Check Amiga version of King's Quest III (v1.01 1986-11-08, AGI 2.090).
+ * This is a good candidate for testing as it uses quite an old Amiga AGI version.
+ * TODO: Check Amiga version of Space Quest II (v2.0F, AGI 2.202) because
+ * it's a bit of an odd bird (e.g. uses a slightly different palette than others).
+ * TODO: Check Amiga versions of Manhunter I & II (I'd guess they use value 5 though).
*/
enum AgiComputerType {
kAgiComputerPC = 0,
kAgiComputerAtariST = 4,
- kAgiComputerAmiga = 5,
- kAgiComputerApple2GS = 7
+ kAgiComputerAmiga = 5, // Newer Amiga AGI interpreters' value (Commonly used)
+ kAgiComputerApple2GS = 7,
+ kAgiComputerAmigaOld = 20 // Older Amiga AGI interpreters' value (Seldom used)
};
/**
Modified: scummvm/trunk/engines/agi/cycle.cpp
===================================================================
--- scummvm/trunk/engines/agi/cycle.cpp 2008-01-02 18:59:33 UTC (rev 30163)
+++ scummvm/trunk/engines/agi/cycle.cpp 2008-01-02 19:10:01 UTC (rev 30164)
@@ -371,7 +371,10 @@
setvar(vComputer, kAgiComputerAtariST);
break;
case Common::kPlatformAmiga:
- setvar(vComputer, kAgiComputerAmiga);
+ if (getFeatures() & GF_OLDAMIGAV20)
+ setvar(vComputer, kAgiComputerAmigaOld);
+ else
+ setvar(vComputer, kAgiComputerAmiga);
break;
case Common::kPlatformApple2GS:
setvar(vComputer, kAgiComputerApple2GS);
Modified: scummvm/trunk/engines/agi/detection.cpp
===================================================================
--- scummvm/trunk/engines/agi/detection.cpp 2008-01-02 18:59:33 UTC (rev 30163)
+++ scummvm/trunk/engines/agi/detection.cpp 2008-01-02 19:10:01 UTC (rev 30164)
@@ -1471,7 +1471,7 @@
},
GID_SQ1,
GType_V2,
- GF_MENUS,
+ GF_MENUS | GF_OLDAMIGAV20,
0x2440,
},
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
More information about the Scummvm-git-logs
mailing list