Opened 8 days ago

Last modified 8 days 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 (8)

comment:1 by antoniou79, 8 days ago

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).

comment:2 by ArthurWalden, 8 days ago

Do you mean the speed is essentially the same in Sierra's original release as in ScummVM now?

comment:3 by antoniou79, 8 days 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 m-kiewitz, 8 days 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 m-kiewitz, 8 days 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.

Last edited 8 days ago by m-kiewitz (previous) (diff)

comment:6 by ArthurWalden, 8 days 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 m-kiewitz, 8 days 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 m-kiewitz, 8 days 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.

Note: See TracTickets for help on using tickets.