GOB: un-ban and fix a somehow corrupted version of Fascination
(This version has been found on original floppies) svn-id: r53772
This commit is contained in:
parent
0db700a3dc
commit
25e1af837a
2 changed files with 19 additions and 6 deletions
|
@ -2264,16 +2264,14 @@ static const GOBGameDescription gameDescriptions[] = {
|
|||
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,
|
||||
|
|
|
@ -306,6 +306,21 @@ void Inter::funcBlock(int16 retFlag) {
|
|||
} // 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;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue