Opened 19 months ago

Last modified 10 days ago

#10244 new defect

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

Reported by: darksoul42 Owned by: m-kiewitz
Priority: normal Component: Engine: SCI
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 19 months ago.

Download all attachments as: .zip

Change History (12)

Changed 19 months ago by darksoul42

Attachment: sq4-pc98-jp.000 added

comment:1 Changed 19 months ago by m-kiewitz

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 Changed 19 months ago by m-kiewitz

Priority: lownormal

comment:3 Changed 19 months ago by m-kiewitz

Owner: set to m-kiewitz

comment:4 Changed 18 months ago by csnover

Keywords: japanese pc98 removed

comment:5 Changed 15 months ago by darksoul42

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 Changed 6 weeks ago by sluicebox

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 Changed 6 weeks ago by sluicebox

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 Changed 6 weeks ago by m-kiewitz

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 Changed 6 weeks ago by m-kiewitz

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

Last edited 6 weeks ago by m-kiewitz (previous) (diff)

comment:10 Changed 6 weeks ago by sluicebox

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 Changed 10 days ago by digitall

Keywords: has-pull-request added
Note: See TracTickets for help on using tickets.