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)
Change History (3)
by , 3 years ago
Attachment: | blackwell4.003 added |
---|
comment:1 by , 3 years ago
comment:2 by , 3 years ago
Owner: | set to |
---|---|
Resolution: | → fixed |
Status: | new → closed |
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.
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.