#1120 closed defect (fixed)
BASS freezing when using hook on sign (Pocket PC)
Reported by: | SF/arisme | Owned by: | |
---|---|---|---|
Priority: | normal | Component: | Engine: Sky |
Version: | Keywords: | ||
Cc: | Game: | Beneath a Steel Sky |
Description
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 , 21 years ago
comment:2 by , 21 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 , 21 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 , 21 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 , 21 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 , 21 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 , 21 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 , 21 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:10 by , 21 years ago
Resolution: | → fixed |
---|---|
Status: | new → closed |
comment:11 by , 19 years ago
Component: | → Engine: Sky |
---|---|
Game: | → Beneath a Steel Sky |
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?