[Scummvm-cvs-logs] SF.net SVN: scummvm:[53772] scummvm/trunk/engines/gob
strangerke at users.sourceforge.net
strangerke at users.sourceforge.net
Sun Oct 24 22:20:48 CEST 2010
Revision: 53772
http://scummvm.svn.sourceforge.net/scummvm/?rev=53772&view=rev
Author: strangerke
Date: 2010-10-24 20:20:48 +0000 (Sun, 24 Oct 2010)
Log Message:
-----------
GOB: un-ban and fix a somehow corrupted version of Fascination
(This version has been found on original floppies)
Modified Paths:
--------------
scummvm/trunk/engines/gob/detection_tables.h
scummvm/trunk/engines/gob/inter.cpp
Modified: scummvm/trunk/engines/gob/detection_tables.h
===================================================================
--- scummvm/trunk/engines/gob/detection_tables.h 2010-10-24 19:15:17 UTC (rev 53771)
+++ scummvm/trunk/engines/gob/detection_tables.h 2010-10-24 20:20:48 UTC (rev 53772)
@@ -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/trunk/engines/gob/inter.cpp
===================================================================
--- scummvm/trunk/engines/gob/inter.cpp 2010-10-24 19:15:17 UTC (rev 53771)
+++ scummvm/trunk/engines/gob/inter.cpp 2010-10-24 20:20:48 UTC (rev 53772)
@@ -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