Opened 8 months ago

Last modified 3 months ago

#13022 new defect

SCUMM: Loom CD Talkie starts with subtitles disabled

Reported by: antoniou79 Owned by:
Priority: normal Component: Engine: SCUMM
Version: Keywords: LOOM, CD, Talkie, Subtitles
Cc: Game: Loom

Description

Tested with ScummVM 2.5.0 on Windows 10 x64, on the GOG and Steam versions of the game.

If the game is allowed to play the intro without skipping it, then subtitles will be disabled for the messenger nymph speech, Bobbin's thoughts afterwards, and also the gameplay will start in no subtitles mode.

This is regardless of a global setting or game domain setting enforcing showing subtitles.

It seems there's a script command at the end of showing the intro Loom logo (once the swans have flown by between the logo letters), that explicitly disables subtitles; it writes the value of VAR_NOSUBTITLES as true, which results in ScummVM setting the "subtitles" key for Confman to 0.

This was mentioned in the forums here:
https://forums.scummvm.org/viewtopic.php?p=96169#p96169

I was able to reproduce with ScummVM 2.5.0 and 2.6.0git

Change History (2)

comment:1 by antoniou79, 8 months ago

The forum thread provides more context for this issue, and it seems that a fix will not be as easy as I thought.

For context I'm linking here the original discussion for this on sourceforge:
https://sourceforge.net/p/scummvm/feature-requests/94/

In addition, when the scumm scripts forcefully enable and disable showing "subtitles", scummvm updates the configuration values too. See: https://github.com/scummvm/scummvm/blob/62dbb28aa383e99ca74509e8aa30f3b84b70f2a5/engines/scumm/script.cpp#L617
eg.

ConfMan.setBool("subtitles", !value);

This means that skipping certain cutscenes that do this (forcefully enabling and disabling subtitles) or letting them play in full will potentially result in different values for the ScummVM confman "subtitles" key, probably overriding and overwriting the user's explicit setting.

I guess it's a good thing there's the F9 hotkey as a workaround for this frustration -- even though it won't work for the intro text.

Last edited 8 months ago by antoniou79 (previous) (diff)

comment:2 by dwatteau, 3 months ago

For what it's worth, for our French fan translation at ATP, we've applied this quick workaround to the script no. 44 in room 2:

--- DISK_0001/LE/LF_0002/SC_0044
+++ DISK_0001/LE/LF_0002/SC_0044
 (68) VAR_RESULT = isScriptRunning(222);
 (28) unless (!VAR_RESULT) goto 0304;
 (07) setState(945,0);
 (5C) oldRoomEffect-set(-32640);
-(1A) VAR_NOSUBTITLES = 1;
+(1A) VAR_NOSUBTITLES = 0;
 (48) if (VAR_SOUNDCARD == 4) {
 (28)   if (!Local[9]) {
 (80)     breakHere();
 (38)     unless (VAR_MUSIC_TIMER >= 278) goto 0327;
 (**)   }
 (**) }
 (72) loadRoom(2);
 (32) setCameraAt(160);
 (0A) startScript(200,[]);

i.e. force subtitles in the nymph scene. Since we always want both audio and subtitles in this version, it works nicely for us.

Of course, as you explained above, you probably want something more subtle for ScummVM, but I'm giving this workaround here in case it can be helpful.

Note: See TracTickets for help on using tickets.