From 402fac9ed41cea27d37574aa2db37ce016372106 Mon Sep 17 00:00:00 2001 From: Travis Howell Date: Sat, 23 Oct 2010 06:27:16 +0000 Subject: SCUMM: Add workaround to allow saved games to be shared between Macintosh and Windows versions of Backyard Baseball 2001. svn-id: r53729 --- engines/scumm/detection_tables.h | 2 +- engines/scumm/script_v6.cpp | 13 ++++++++++++- engines/scumm/scumm.h | 1 + 3 files changed, 14 insertions(+), 2 deletions(-) (limited to 'engines/scumm') diff --git a/engines/scumm/detection_tables.h b/engines/scumm/detection_tables.h index 4428185774..a5542ca868 100644 --- a/engines/scumm/detection_tables.h +++ b/engines/scumm/detection_tables.h @@ -370,7 +370,7 @@ static const GameSettings gameVariantsTable[] = { #ifdef USE_RGB_COLOR // Added 16bit color {"arttime", 0, 0, GID_HEGAME, 6, 99, MDT_NONE, GF_USE_KEY | GF_HE_LOCALIZED | GF_16BIT_COLOR, UNK, GUIO_NOLAUNCHLOAD | GUIO_NOMIDI}, - {"baseball2001", 0, 0, GID_HEGAME, 6, 99, MDT_NONE, GF_USE_KEY | GF_16BIT_COLOR, UNK, GUIO_NOLAUNCHLOAD | GUIO_NOMIDI}, + {"baseball2001", 0, 0, GID_BASEBALL2001, 6, 99, MDT_NONE, GF_USE_KEY | GF_16BIT_COLOR, UNK, GUIO_NOLAUNCHLOAD | GUIO_NOMIDI}, {"readtime", 0, 0, GID_HEGAME, 6, 99, MDT_NONE, GF_USE_KEY | GF_HE_LOCALIZED | GF_16BIT_COLOR, UNK, GUIO_NOLAUNCHLOAD | GUIO_NOMIDI}, {"SoccerMLS", 0, 0, GID_SOCCER, 6, 99, MDT_NONE, GF_USE_KEY | GF_HE_LOCALIZED | GF_16BIT_COLOR, UNK, GUIO_NOLAUNCHLOAD | GUIO_NOMIDI}, {"spyozon", 0, 0, GID_HEGAME, 6, 99, MDT_NONE, GF_USE_KEY | GF_HE_LOCALIZED | GF_16BIT_COLOR, UNK, GUIO_NOLAUNCHLOAD | GUIO_NOMIDI}, diff --git a/engines/scumm/script_v6.cpp b/engines/scumm/script_v6.cpp index ede32623aa..0226343df5 100644 --- a/engines/scumm/script_v6.cpp +++ b/engines/scumm/script_v6.cpp @@ -536,7 +536,18 @@ void ScummEngine_v6::o6_not() { } void ScummEngine_v6::o6_eq() { - push(pop() == pop()); + int a = pop(); + int b = pop(); + + // WORKAROUND: Forces the game version string set via script 1 to be used in both Macintosh and Windows versions, + // when checking for save game compatibility. Allows saved games to be shared between Macintosh and Windows versions. + // The scripts check VAR_PLATFORM (b) against the value (2) of the Macintosh platform (a). + if (_game.id == GID_BASEBALL2001 && (vm.slot[_currentScript].number == 291 || vm.slot[_currentScript].number == 292) && + a == 2 && b == 1) { + push(1); + } else { + push(a == b); + } } void ScummEngine_v6::o6_neq() { diff --git a/engines/scumm/scumm.h b/engines/scumm/scumm.h index 33ed2e3763..b94bb5e733 100644 --- a/engines/scumm/scumm.h +++ b/engines/scumm/scumm.h @@ -253,6 +253,7 @@ enum ScummGameId { GID_FUNSHOP, // Used for all three funshops GID_FOOTBALL, GID_SOCCER, + GID_BASEBALL2001, GID_BASKETBALL, GID_MOONBASE, GID_HECUP // CUP demos -- cgit v1.2.3