[Scummvm-tracker] [ScummVM :: Bugs] #13378: SCUMM: SAMNMAX: Timing Problems in German CD Intro

ScummVM :: Bugs trac at scummvm.org
Wed Mar 30 08:05:51 UTC 2022


#13378: SCUMM: SAMNMAX: Timing Problems in German CD Intro
-------------------------+----------------------------
Reporter:  GermanTribun  |       Owner:  (none)
    Type:  defect        |      Status:  new
Priority:  normal        |   Component:  Engine: SCUMM
 Version:                |  Resolution:
Keywords:                |        Game:  Sam and Max
-------------------------+----------------------------
Comment (by eriktorbjorn):

 > i would say that it happens because of the lack of synchronization point
 which were absent in translated versions

 It may be much simpler than that, at least in the German version. (I
 thought I didn't have that one, but then I realized GOG included a number
 of localized versions.)

 Here's part of the English script-65:

 {{{
 [0377] (CA) delayFrames(3)
 [037B] (B4) printLine.begin()
 [037D] (B4) printLine.color(10)
 [0382] (B4) printLine.XY(240,20)
 [038A] (B4) printLine.msg(sound(0x39C91C, 0xA) + "^You'll fry like a pork
 sausage.")
 }}}

 And here's the German one:

 {{{
 [0381] (CA) delayFrames(3)
 [0385] (43) VAR_TIMER_NEXT = 1
 [038B] (B4) printLine.begin()
 [038D] (B4) printLine.color(10)
 [0392] (B4) printLine.XY(240,20)
 [039A] (B4) printLine.msg(sound(0x28428, 0xA) + "Wirst Du brutzeln, wie
 eine grobe Bratwurst!")
 }}}

 Earlier, both scripts set VAR_TIMER_NEXT to 6, and the German version sets
 it back to 6 again afterwards. The only way this makes sense to me is if
 the localization was developed on some horribly slow computer, and even
 that seems like a stretch.

 So anyway, something like this should fix it. I just need to check the
 other localized versions I have to see what their scripts do.

 {{{
 diff --git a/engines/scumm/script.cpp b/engines/scumm/script.cpp
 index f763b967056..f6f79d50ec4 100644
 --- a/engines/scumm/script.cpp
 +++ b/engines/scumm/script.cpp
 @@ -648,6 +648,17 @@ void ScummEngine::writeVar(uint var, int value) {
                         }
                 }

 +               // WORKAROUND bug #13378: For whatever reason, some
 localized
 +               // versions set the game to run really fast for the part
 of the
 +               // Sam & Max intro where the scientist says "You'll fry
 like a
 +               // pork sausage." It doesn't look accidental, because the
 speed
 +               // is set back to normal afterwards. We don't want that in
 +               // ScummVM, but surely it would have run at ludicrous
 speed
 +               // in the original interpreter, on any reasonable machine?
 +
 +               if (_game.id == GID_SAMNMAX &&
 vm.slot[_currentScript].number == 65 && value == 1 && _enableEnhancements)
 +                       return;
 +
                 _scummVars[var] = value;

                 // Unlike the PC version, the Macintosh version of Loom
 appears
 }}}
-- 
Ticket URL: <https://bugs.scummvm.org/ticket/13378#comment:2>
ScummVM :: Bugs <https://bugs.scummvm.org>
ScummVM


More information about the Scummvm-tracker mailing list