Opened 16 years ago

Closed 16 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, 16 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, 16 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, 16 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, 16 years ago

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, 16 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, 16 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, 16 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, 16 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, 16 years ago

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

comment:10 by lavosspawn, 16 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.