Opened 17 years ago

Closed 17 years ago

Last modified 15 years ago

#1120 closed defect (fixed)

BASS freezing when using hook on sign (Pocket PC)

Reported by: SF/arisme Owned by:
Priority: normal Component: Engine: Sky
Keywords: Cc:
Game: Beneath a Steel Sky


When using the hook on the security sign outside the building, the game freezes.

I can't get precise debugging information (the debugger is a bit too slow when running in level 6) but it happens around the *swing* functions ...

Tested on today's CVS 0.5.0 branch - just ask if you need a saved game

Ticket imported from: #783732. Ticket imported from: bugs/1120.

Change History (11)

comment:1 by lavosspawn, 17 years ago

Hmm. Okay... but when exactly does it happen? Before the sequence starts? during the sequence? or after it has finsihed?

Do the other sequences (like the intro, e.g.) work?

comment:2 by lavosspawn, 17 years ago

Oh, in particular: Swing seqs are played in a second thread. (actually, the engine's timer is used for them) and SkyLogic waits in fnWaitSwingEnd for the end of the sequence... is this function ever reached? And if it is, is it left again?

comment:3 by SF/arisme, 17 years ago

The sequence never starts - it hangs just after the sentence "that's the most stupid thing ..." is erased. The intro works, but is out of synch (f.e. the "Beneath a Steel Sky" logo is displayed after the music ends). And if I don't skip the intro, the music never starts and is stuck on a simple note when the game begins (but that's a minor problem).

I'll try to add additional debug information, as I cannot run in debuglevel 6 ...

comment:4 by lavosspawn, 17 years ago

huh? ou mean that "beneath a steel sky" logo which comes closer to the player? whoah. It's quite close at the start of the intro, yet the music has already stopped? it must be *way* out of sync, then... can you try and find out if SkyScreen::processSequence gets called before it crashes? If it does, does it crash in the routine or after?

comment:5 by SF/arisme, 17 years ago

Yes, there's probably a blitting or timer issue in the intro ... had no time to investigate since it isn't critical

processSequence is not called before it hangs (musics continue playing, it's "just" a deadlock somewhere :p)

if it can be useful (but I doubt it), here are the engine last words in debug level 5

Doing Script 15da0033 Doing Script 15e30033 Doing Script 15e60033 Doing Script 15e90033 load file 1,85 (2133) file 2133 found! File is RNC compressed. UnpackM1 returned: 138510 load file 1,86 (2134) file 2134 found! ... (more files loaded) ... load file 1,15 (2063) file 2063 found! File is RNC compressed. UnpackM1 returned: 12032

comment:6 by lavosspawn, 17 years ago

This is a bit strange, as the sequence player is running in a seperated thread... does fnNewSwingSeq get called? And fnWaitSwingEnd, too?

if fnNewSwingSeq gets called, can you verify that the timer (SkyState::_timer) is still running/working?

comment:7 by SF/arisme, 17 years ago

Argh, you got me :) OK I missed this one because the code is actually in a .h, but I need to apply the same patch I did to waitForTimer previously to process the events with the Windows API ... Consider it closed after a small test !

comment:8 by lavosspawn, 17 years ago

okidoki. :) commit the patch to the head as well as 0.5.0 branch, please. Endy will tag the 0.5.1 source soon, so don't wait too long. :) Does this fix the intro sync, too? What about the never-ending note at the end of the intro?

comment:9 by SF/arisme, 17 years ago

Will test that later after a commit and some less fun tasks :)

comment:10 by lavosspawn, 17 years ago

Resolution: fixed
Status: newclosed

comment:11 by fingolfin, 15 years ago

Component: Engine: Sky
Game: Beneath a Steel Sky
Note: See TracTickets for help on using tickets.