[Scummvm-tracker] [ScummVM :: Bugs] #13554: LSL6 break to debugger when calling bad numbers
ScummVM :: Bugs
trac at scummvm.org
Tue Jun 7 14:06:17 UTC 2022
#13554: LSL6 break to debugger when calling bad numbers
-----------------------------------------+---------------------------------
Reporter: RayKoopa | Owner: (none)
Type: defect | Status: new
Priority: normal | Component: Engine: SCI
Version: | Resolution:
Keywords: debugger, signature mismatch | Game: Leisure Suit Larry
| 6
-----------------------------------------+---------------------------------
Comment (by m-kiewitz):
Replying to [comment:3 RayKoopa]:
> Thanks for the explanation. I supposed it was some kind of "strictly
incorrect behavior" only caught by ScummVM, yet hoped to notice any of the
side effects in DOSBox (maybe even a crash) to confirm the call is also
done incorrectly there.
>
> Once I see it happening again, is there a command or something with
which I could gather more information on the incorrect call, which could
help fixing it?
You can't do much about it yourself, unless you know ins and outs of SCI
and in case you can compile ScummVM yourself.
There is a workarounds.cpp in the ScummVM SCI source code which contains
these special situations / script bugs. There are also tons of script
patches, where we fix bugs on the fly.
In the workaround.cpp tables you can enter what ScummVM is supposed to do
in that situation, which is either "still call" (call the kernel call
anyway), "ignore" (don't call) or "fake" (don't call and fake the result
that would have come back from the kernel call, some game scripts require
specific values coming back), but in the end someone has to go through the
LSL6 scripts and figure out what's actually going on and then do a proper
fix. You said it happens randomly, which hints at it probably being timing
related.
And of course we can never rule out actual interpreter bugs in ScummVM,
these may exist as well. This here looks like another script bug to me for
now. And in original SCI some of these issues were harmless, others even
caused memory corruption, which then in turn may have caused the game to
crash 1 hour later or break the state of the game.
--
Ticket URL: <https://bugs.scummvm.org/ticket/13554#comment:4>
ScummVM :: Bugs <https://bugs.scummvm.org>
ScummVM
More information about the Scummvm-tracker
mailing list