[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