Opened 3 years ago

Closed 3 years ago

#12770 closed defect (fixed)

Blackwell Deception freezes after end of prologue sequence (AGS)

Reported by: Paolo86cripple Owned by: dreammaster
Priority: high Component: Engine: AGS
Version: Keywords: bw4, freeze.
Cc: Game:

Description

Blackwell deception freezes after the end of prologue. The engine does not load the next scene, it just freezes, the mouse is still movable. Pressing a key completely freezes scummvm.

Attaching a savegame. (you need to give the tie to the ghost and exit the boat via the gap, the prologue will end and the game will freeze at the end of the next scene)

Using a self compiled build on manjaro linux

Attachments (1)

blackwell4.003 (284.2 KB ) - added by Paolo86cripple 3 years ago.

Download all attachments as: .zip

Change History (3)

by Paolo86cripple, 3 years ago

Attachment: blackwell4.003 added

comment:1 by criezy, 3 years ago

This sounds like it is the same as bug #12334, which would indicate that the issue has been here for a while and has not been fixed by the big code update that was done a month or two ago.

comment:2 by dreammaster, 3 years ago

Owner: set to dreammaster
Resolution: fixed
Status: newclosed

LOL. I figured out the cause, and there were actually two problems. One I fixed, and one I didn't.

The first was that the game goes to check the position of the background music playback. But the engine does an explicit check to only return the position if the sound is playing. In Debug mode, the character animations was so slow that by the time they left the screen, the music had already finished, so the get position check would always return 0, and it would be stuck in the loop. I verified by switching to Release mode that they exit quickly enough. I'm not going to change this, as it will be fast enough in release mode, and there may be legitimate reasons not to return the position for non-playing sounds.

The second problem reared it's head quickly thereafter. Turns out I was returning the sound playback position in seconds rather than milliseconds like it should. So even in Release mode it didn't think it was reaching the desired point in the playback, and the music timed out without changing rooms. That's now fixed.

Note: See TracTickets for help on using tickets.