Opened 7 years ago

Closed 5 years ago

Last modified 2 years ago

#10244 closed defect (fixed)

SQ4 PC98 : Orange ship not taking off again when leaving super computer

Reported by: darksoul42 Owned by: sluicebox
Priority: normal Component: Engine: SCI
Version: Keywords: has-pull-request
Cc: Game: Space Quest 4

Description

Everything is in the title. The engines wind up, the gears get tucked away, the music stops, but then the scene never changes.

I didn't try this yet in an emulator to get an actual SCI save file to reproduce this, but I have a ScummVM save right now.

It is not a game stopper since you can complete the game with max points if you do everything you need, at the very first time you can do it.

Attachments (1)

sq4-pc98-jp.000 (24.8 KB ) - added by darksoul42 7 years ago.

Download all attachments as: .zip

Change History (15)

by darksoul42, 7 years ago

Attachment: sq4-pc98-jp.000 added

comment:1 by m-kiewitz, 7 years ago

I don't fully understand.
So the ship doesn't work properly when you didn't do everything that you could and had to backtrack at the very start of the game?

What exactly did you miss on that playthrough? Maybe it's even a game bug and maybe even happens for the DOS version. I would like to check.

comment:2 by m-kiewitz, 7 years ago

Priority: lownormal

comment:3 by m-kiewitz, 7 years ago

Owner: set to m-kiewitz

comment:4 by csnover, 7 years ago

Keywords: japanese pc98 removed

comment:5 by darksoul42, 7 years ago

I got around to retrying and confirm a few things.

To clarify : the problem is the ship actually never works properly when trying to leave the Super computer, no matter when you try to use it.

I found out at the end of my game play when I attempted to go back to the surface for kicks, but it turns out it does this even when getting at the Super Computer for the first time.

comment:6 by sluicebox, 6 years ago

This bug occurs in every localized floppy version. I don't have the Japanese version but all the other localized versions have the same script change that causes the game to lock up in ScummVM when entering the ship in room 535. This is a ScummVM bug as it works in DOS.

In English versions the script toXenon:doit waits for the music to finish before taking off by testing longSong2:prevSignal for -1. In localized floppies this was changed to testing longSong2:vol for zero. Presumably Sierra's interpreter sets the volume to zero when finished playing and ScummVM doesn't.

I tested a simple workaround script patch to restore the DOS behavior and that worked. Given how long this has been open I'm tempted to submit this workaround so that the lockup is fixed in the immediate until the audio engine is updated with the necessary behavior. This bug is a game breaker if you leave the streets before getting all of the items.

To reproduce in any localized version just warp to room 535 with the debugger and get in the ship.

comment:7 by sluicebox, 6 years ago

Forget the workaround, I found the interpreter change that this script relies on. Just need to find which versions have it and which don't.

comment:8 by m-kiewitz, 6 years ago

I'm wondering what happened in those localized versions, when you used no music card in the audio setup then.

But please no workarounds, we need to fix issues like this in the interpreter.
If you can tell me what change got made, I can check my PC98 copy too.
I also own SQ4 localized to Spanish.

comment:9 by m-kiewitz, 6 years ago

It may even be a change that got made for all versions from some specific point.
I hope there was no interpreter change hacking going on just for localized versions.

Version 0, edited 6 years ago by m-kiewitz (next)

comment:10 by sluicebox, 6 years ago

Good news, it's not a one-off for localized versions, it's an interpreter change that started in SCI_VERSION_1_MIDDLE and seems to be in all versions afterwards.

https://github.com/scummvm/scummvm/pull/1536/

Using the debugger to simply warp to room 535 is *not* enough to test this. Since the script relies on the music fading out, you need to go there normally so that the room music is initialized correctly. Otherwise it could be the wrong room music and so the fading won't do anything and the script will still hang.

comment:11 by digitall, 6 years ago

Keywords: has-pull-request added

comment:12 by sluicebox <22204938+sluicebox@…>, 5 years ago

In 99a7478c:

SCI: Update Sound:vol in processUpdateCues

Sound:vol is updated when updating cues starting in SCI_VERSION_1_MIDDLE.

Fixes bug #10244. SQ4 localized floppy versions depend on this when getting
in the orange ship, they fade music and wait for the volume to reach zero.

Confirmed against asm that this is not in SQ4 floppy (early) but is in
LSL1VGA (middle) and SQ4 localized floppies and SQ4CD (late).

comment:13 by sluicebox, 5 years ago

Resolution: fixed
Status: newclosed

comment:14 by sluicebox, 2 years ago

Owner: changed from m-kiewitz to sluicebox
Note: See TracTickets for help on using tickets.