Opened 5 months ago
Last modified 5 months ago
#15206 new defect
SCI: KQ4: Text Boxes Clear Too Quickly
Reported by: | ArthurWalden | Owned by: | |
---|---|---|---|
Priority: | normal | Component: | Engine: SCI |
Version: | Keywords: | kq4, sci, text speed | |
Cc: | ArthurWalden | Game: | King's Quest 4 |
Description
I am using ScummVM version 2.9.0git4942-g420e53e9c8d (daily build).
In the SCI version of King's Quest 4, the introductory boxes are clearing a little too quickly before I have time to read them. (As usual I like doing this out loud when playing by myself).
I am playing the English GOG version of the game.
I am playing the game on Windows 11 Home, version 23H2.
Change History (10)
comment:1 by , 5 months ago
comment:2 by , 5 months ago
Do you mean the speed is essentially the same in Sierra's original release as in ScummVM now?
comment:3 by , 5 months ago
I can only compare running the original executable in a DOS emulator (DosBox) vs ScummVM. This is the setup that was used to confirm the bug for the previous ticket on the automated text boxes for King's Quest 3 intro, so I expect it gives reliable timings for this case as well.
But, I can't test on an actual old machine running DOS.
comment:4 by , 5 months ago
The transitions are intentionally slowed down (and it should be quite similar on any hardware), so that you can see them. Original SCI interpreter didn't do that, which meant on faster CPUs, you saw basically no transition at all, or just some depending on how complicated and therefore CPU-intensive they are.
comment:5 by , 5 months ago
Timing in SCI is normally done either in cycles (CPU-dependent) or seconds/ticks. Seconds/ticks should be fixed duration. The cycles method caused all sorts of timer issues when ran on faster CPUs, but we got the speed throttler for that, and also script patches.
I don't know anymore how SCI games handle timed message boxes, would have to look into it.
comment:6 by , 5 months ago
I take it from this there is no issue, then. I just have to learn to read (out loud) quickly. I guess you can close the ticket.
comment:7 by , 5 months ago
No, I have to check what the game is doing.
If it sets seconds/ticks, then the issue may be DosBox being overwhelmed, unless some bug was introduced in the last few years.
I don't know yet.
comment:8 by , 5 months ago
Hmm, introSc::changeState (room 120) handles the timing at first.
Anyhow it's playing animations and when animations stop it clears the message box later, the animations play fine.
I tried with an older ScummVM version. I don't see any weird timing issues. Of course DosBox takes seconds to load a new room, while it's instant in ScummVM.
Can you please try with an older ScummVM copy, I'm currently using one from 2017. If the issue doesn't show up with that one, it may be a regression.
comment:9 by , 5 months ago
What are the specific texts we're talking about?
What game version are we talking about? This can be found in the About box.
This has to be the first time anyone has ever said that the KQ4 intro isn't slow *enough* =)
comment:10 by , 5 months ago
The specific texts are the entire introduction. However, I do not know how the find the version of the game using the About button on the ScummVM launcher. All that did was display information about ScummVM and the various engines it supports, mostly for giving credit to various developers.
Part of the problem is I am reading all the game texts out loud, which generally requires a longer display time than simply reading them silently. I realize you can't change game speed just for that.
Could you offer a specific example of such dialogue box?
I've played the full intro (after the credits) on DosBox Staging (v 0.81.0 at 3000 cycles) and ScummVM (local developer build from recent master HEAD, 2.9.0git, in "release" mode), side by side, and the text boxes timings seem near-identical or identical to me.
(The only difference I could spot was that on occasion some scene transitions would take longer in the one than the other so DosBox version would get slightly ahead the ScummVM one, and also vice-versa).