Opened 3 months ago

Closed 3 months ago

Last modified 3 months ago

#15610 closed defect (fixed)

SCI: SQ5 - Speed problems in the game

Reported by: GermanTribun Owned by: sluicebox
Priority: normal Component: Engine: SCI
Version: Keywords: original
Cc: Game: Space Quest 5

Description

System Windows 10 Pro
ScummVM: 2.8.1
Game Version: DOS
Language: English, German

I tested this in the German and English version, but the starting scene in Space Quest V, where we see the outside of the bridge simulator , which then opens and the rats run away, runs entirely too fast.

You can not observe the actual motion of the spinning lights (it's just a blur) and the rats run away at light speed, so it's impossible to observe them. I know this is not tied to the speed slider, since that is at a lower setting when starting a new game and Roger's speed actually is correct for the scene. The bridge simulator getting lowered also goes too fast.

Additionally, in the scene where the rat runs into the computer, it also was so fast you couldn't observe the rat. Also, in the intro the lighting effect behind Roger in the title screen goes way too fast as well, as do the stars in the background. This all points to the game still having some speed issues.

I do remember years past having played the game on an old computer with the speed slowed as well, allowing me to observe all those details without problem. Are those speed problems fixable?

Change History (3)

comment:1 by sluicebox <22204938+sluicebox@…>, 3 months ago

In f61afc2b:

SCI: Fix SQ5 introduction speeds

Fixes comets not animating in the star field, bug #15622
Fixes speed and timing when exiting simulator, bug #15610

The introduction scenes are heavily dependent on both CPU speed and the
undefined lag that occurs in the original interpreter when animating
many actors at once. Now our speed throttler adjusts for this.

Thanks to @GermanTribun and @eriktorbjorn for reporting.

Big thanks to @PickledDog for testing and recording on a 386 and a 486.

comment:2 by sluicebox, 3 months ago

Keywords: original added
Owner: set to sluicebox
Resolution: fixed
Status: newclosed

Introduction speeds fixed in: f61afc2b871e3c973033671b41626bca25a905f4

All of this is original game behavior.

SQ5 is notoriously full of CPU-dependent elements. There is no global solution to this beyond our speed throttler, but the introduction is so heavily timed to the developer's slow machine that I've adjusted it further. Getting this right was quite difficult. I'm happy with the results and we now get comet streaks that I never saw in 1993 because I had a 486, and even a 486 is too fast for this game. Every machine plays this game differently, and many delays in SCI scripts are random for complex reasons involving lag and the system clock's sub-second value, so you never get the exact same results twice.

SQ5 experts with original hardware tested this and made recordings on a 386 and 486. We agree that a 386/33 is the machine the intro targets on, plus there was further lag in the original interpreter that the intro timing depends on.

For the mouse-runs-into-the-computer scene, the first part is quite fast, but we are actually doing it slightly slower than the original on a 386. The first part (in the hall) is supposed to be fast with practically no delay. I can't do better than what we're already doing (I tried) without altering the scene beyond original intent. Once the mouse is in the computer, the scene runs much better (slower) on scummvm than the original.

comment:3 by GermanTribun, 3 months ago

Awesome, thanks!

You guys really rock when tackling such issues!

This whole episode again made me realize how badly Sierra screwed up the speed timing in their games compared to LucasArts. I can honestly only name three issues I have had in that regard with LA games. In Zak V2, the ending freezes should the speed be too high (over 500 cycles), in DOTT and SAM Soudblaster can't initize properly and in GRIM, the elevator puzzle (which was patched).

Somehow, SCUMM was way more robust about that than SCI.

Note: See TracTickets for help on using tickets.