Opened 4 years ago
Closed 4 years ago
#11967 closed defect (fixed)
SCI: LSL3 Score counter behavior
Reported by: | GermanTribun | Owned by: | sluicebox |
---|---|---|---|
Priority: | normal | Component: | Engine: SCI |
Version: | Keywords: | ||
Cc: | Game: | Leisure Suit Larry 3 |
Description
ScummVM: 2.2.0
System: Windows 7
In Larry 3, the score counter does not behave as it is supposed to.
Unlike in other SCI games, in Larry 3 the score counter acted differently, by tallying up the score visibly (the number rises) until reaching the new score. Under Dosbox it behaves like it should. Under ScummVM however, it instantly jumps to the new score, which is not correct.
I know it's a small thing, but it's not the original behavior.
Change History (2)
comment:2 by , 4 years ago
Owner: | set to |
---|---|
Resolution: | → fixed |
Status: | new → closed |
Summary: | SCI: Score counter behavior → SCI: LSL3 Score counter behavior |
This has also prevented lighting effects and graphics during the dances and at the comedy club.
Patching the speed test to always be 40 is a good idea; the throttled speed result is almost that anyway, so it doesn't significantly change the number of exercises. We can even remove the LSL3 throttling workaround now there's no more test to throttle.
Fixed in: 4a7248627906ca34a45118d65bd0e51656f6421c
Thanks for reporting this. As m-kiewitz said, this change won't apply to existing saved games, but you can patch those with the debugging command:
vv g 123 40
That's actually not a bug and it is in fact original behavior.
LSL3 does not display these incremental changes when it has detected the PC, which it thinks is running it, as sort of slow. We make that happen intentionally otherwise other issues pop up, like for example an insane amount of bench presses etc.
The only way to make this happen without causing other problems, would be a very small script patch, which would remove the machine speed check from the game's own scripts right before it's doing incremental updates.
LSL3 would act the same way when DosBox would run slowly (but even that does not have to work, DosBox is inaccurate in such things).
If you tried to play the game on original below AT hardware, it would do what happens in ScummVM (had to edit this, originally I thought it was AT hardware, it has to be below AT).
You can modify this behavior by setting another computer speed setting.
Modify global 6Bh to at least 40 (decimal).
You can do that by entering debugger via Ctrl-Shift-D and then entering the following command "vmvars g 6Bh 40".
Please recognize that this may cause speed related problems somewhere else.
The code is inside LSL3::doit.