[Scummvm-cvs-logs] SF.net SVN: scummvm:[53802] scummvm/branches/branch-1-2-0/engines/gob

strangerke at users.sourceforge.net strangerke at users.sourceforge.net
Mon Oct 25 09:29:12 CEST 2010


Revision: 53802
          http://scummvm.svn.sourceforge.net/scummvm/?rev=53802&view=rev
Author:   strangerke
Date:     2010-10-25 07:29:12 +0000 (Mon, 25 Oct 2010)

Log Message:
-----------
GobGOB: (backport r53772) un-ban and fix a somehow corrupted version of Fascination

(This version has been found on original floppies)

Modified Paths:
--------------
    scummvm/branches/branch-1-2-0/engines/gob/detection_tables.h
    scummvm/branches/branch-1-2-0/engines/gob/inter.cpp

Modified: scummvm/branches/branch-1-2-0/engines/gob/detection_tables.h
===================================================================
--- scummvm/branches/branch-1-2-0/engines/gob/detection_tables.h	2010-10-25 07:27:05 UTC (rev 53801)
+++ scummvm/branches/branch-1-2-0/engines/gob/detection_tables.h	2010-10-25 07:29:12 UTC (rev 53802)
@@ -2264,16 +2264,14 @@
 		kFeaturesAdLib,
 		"demo.stk", "demo.tot", 0
 	},
-//  This version is not detected on purpose: it's a pirated version, using a corrupted crack.
-//  Tagged ADGF_PIRATED! Do not re-add nor un-tag!
-	{
+	{ // Supplied by scoriae
 		{
 			"fascination",
-			"",
+			"VGA",
 			AD_ENTRY1s("disk0.stk", "c14330d052fe4da5a441ac9d81bc5891", 1061955),
-			UNK_LANG,
+			EN_ANY,
 			kPlatformPC,
-			ADGF_PIRATED,
+			ADGF_NO_FLAGS,
 			GUIO_NOSUBTITLES | GUIO_NOSPEECH
 		},
 		kGameTypeFascination,

Modified: scummvm/branches/branch-1-2-0/engines/gob/inter.cpp
===================================================================
--- scummvm/branches/branch-1-2-0/engines/gob/inter.cpp	2010-10-25 07:27:05 UTC (rev 53801)
+++ scummvm/branches/branch-1-2-0/engines/gob/inter.cpp	2010-10-25 07:29:12 UTC (rev 53802)
@@ -306,6 +306,21 @@
 		} // End of workaround
 
 		cmd = _vm->_game->_script->readByte();
+
+		// WORKAROUND:
+		// A VGA version has some broken code in its scripts, this workaround skips the corrupted parts.
+		if (_vm->getGameType() == kGameTypeFascination) {
+			int addr = _vm->_game->_script->pos();
+			if ((startaddr == 0x212D) && (addr == 0x290E) && (cmd == 0x90) && !scumm_stricmp(_vm->_game->_curTotFile, "INTRO1.tot")) {
+				_vm->_game->_script->skip(2);
+				cmd = _vm->_game->_script->readByte();
+			}
+			if ((startaddr == 0x207D) && (addr == 0x22CE) && (cmd == 0x90) && !scumm_stricmp(_vm->_game->_curTotFile, "INTRO2.tot")) {
+				_vm->_game->_script->skip(2);
+				cmd = _vm->_game->_script->readByte();
+			}
+		}
+
 		if ((cmd >> 4) >= 12) {
 			cmd2 = 16 - (cmd >> 4);
 			cmd &= 0xF;


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