Opened 5 months ago

Last modified 4 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 antoniou79, 5 months 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, 5 months ago

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

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

Last edited 5 months ago by m-kiewitz (previous) (diff)

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

Version 0, edited 4 months ago by ArthurWalden (next)
Note: See TracTickets for help on using tickets.