[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