Opened 10 years ago

Closed 10 years ago

Last modified 10 years ago

#4423 closed defect (fixed)

CRUISE: Crash on most any action (OSX)

Reported by: SF/meddlingmonk Owned by: joostp
Priority: high Component: Engine: Cruise
Keywords: Cc:
Game: Cruise for a Corpse

Description

This is possibly a endianness-related problem. It only happens on computer (OSX) with PPC processor. Other computer (Fedora) with Intel processor doesn't experience it. Using 1.0.0svn42568. Except for walking around (and sometimes even that), on PPC computer most or all actions (look, examine, etc) cause ScummVM to either crash or freeze, requiring me to force quit.

Ticket imported from: #2823293. Ticket imported from: bugs/4423.

Attachments (1)

scummvm_2009-07-17-145427_charles-fredericks-powerbook-g4-13.crash (20.0 KB ) - added by SF/meddlingmonk 10 years ago.
Crash report

Download all attachments as: .zip

Change History (19)

by SF/meddlingmonk, 10 years ago

Crash report

comment:1 by dreammaster, 10 years ago

I had a look at the crash report, and it was hard to wring any information from it as to where the problem might be occurring. Likewise, I had a look through all the initialisation code I could find, and I couldn't find any obvious place that's missing endian mapping.

Hopefully I can prevail on a developer with a big-endian system to give the game a quick run to see where the crash occurs, and from there figure out if, and where, the endian macros are missing.

comment:2 by sev-, 10 years ago

Owner: set to joostp
Priority: normalhigh

comment:3 by sev-, 10 years ago

It would be nice to fix before the release. Joost, do you have ability to test it on a BE system, e.g. PSP?

comment:4 by joostp, 10 years ago

The PSP is Little Endian, but I can try to debug it on my PS3.

comment:5 by joostp, 10 years ago

I can't reproduce this on my PS3 (running Ubuntu PPC) with latest subversion. I've walked around the ship examining and talking to everything I could without any freezes or crashes.

Maybe this is an Mac / OSX only issue? If so, I have no way to fix/test this.

comment:6 by sev-, 10 years ago

First question to the bug submitter. Is there a way for you to obtain the crash backtrace?

Also output of scummvm -d9 (with most debugging output), would be nice.

If there is no possibility, then only way would be to introduce lots of debugging output to the engine and run with -d9.

comment:7 by sev-, 10 years ago

Owner: changed from joostp to dreammaster

comment:8 by joostp, 10 years ago

I just fixed a few unaligned writes in this engine, which may or may not fix this issue. Someone on OSX please test.

comment:9 by SF/meddlingmonk, 10 years ago

No. It doesn't seem to be fixed. It still freezes or crashes on just about any action on my PPC Mac but not Intel PC with Fedora. Again, I suspect this is a problem on big endian machines--so it may not be an issue for Intel Macs but someone with an Intel Mac will have to try it and see.

I'm not sure if I can do a crash backtrace but I've run scummvm -d9:

./scummvm -d9
Debuglevel (from command line): 9
Output sample rate: 22050 Hz
Opening hashed: THEMERC
Opening hashed: THEMERC
File::open: opening 'logo.bmp' failed
File::open: opening 'cursor.bmp' failed
File::open: opening 'cursor_small.bmp' failed
File::open: opening 'checkbox.bmp' failed
File::open: opening 'checkbox_empty.bmp' failed
File::open: opening 'logo_small.bmp' failed
File::open: opening 'search.bmp' failed
File::open: opening 'helvr12-l1.fcc' failed
Opening hashed: THEMERC
User picked target 'cruise' (gameid 'cruise')...
Looking for a plugin supporting this gameid... Cinematique evo 2 engine
Starting 'Cinematique evo.2 engine game'
Starting detection in dir '/Applications/ScummVM Games/cruise'
+ D1
> 'D1': 'a90d2b9ead6b4d812cd14268672cf178'
Matched file: D1
Found game: cruise (256 colors DOS/English) (1)
... new best match, removing all previous candidates
Running Cruise for a Corpse (256 colors/DOS/English)
Opening hashed: DELPHINE.LNG
Opening hashed: system.fnt
Opening hashed: VOL.CNF
Disk number: 1
Disk number: 2
Disk number: 3
Disk number: 4
Disk number: 5
Load overlay: AUTO00
Attempting to load overlay file AUTO00.OVL...
File found on disk 0
Opening hashed: D1
OVL loading done...
Load overlay: SUPER
Attempting to load overlay file SUPER.OVL...
OVL loading done...
2009-07-25 10:27:48.812 scummvm[40935:10b] Warning once: This application, or a library it uses, is using NSQuickDrawView, which has been deprecated. Apps should cease use of QuickDraw and move to Quartz.
releaseOverlay: finish !
Load overlay: LOGO
Attempting to load overlay file LOGO.OVL...
OVL loading done...
Loading BG: LOGO.PI1
Load overlay: XX2
Attempting to load overlay file XX2.OVL...
OVL loading done...
releaseOverlay: finish !
Loading BG: XX2.PI1
Op_FreePreload not implemented
COMMENT: "Raoul n'est pas la"
Load overlay: I00
Attempting to load overlay file I00.OVL...
OVL loading done...
releaseOverlay: finish !
PCSoundFxPlayer::load('CORP13')
PCSoundFxPlayer::play()
Loading BG: I00.PI1
_currentOrder=0/17 _currentPos=16
_currentOrder=0/17 _currentPos=32
_currentOrder=0/17 _currentPos=48
_currentOrder=0/17 _currentPos=64
_currentOrder=0/17 _currentPos=80
_currentOrder=0/17 _currentPos=96
_currentOrder=0/17 _currentPos=112
_currentOrder=0/17 _currentPos=128
_currentOrder=0/17 _currentPos=144
_currentOrder=0/17 _currentPos=160
_currentOrder=0/17 _currentPos=176
_currentOrder=0/17 _currentPos=192
_currentOrder=0/17 _currentPos=208
_currentOrder=0/17 _currentPos=224
_currentOrder=0/17 _currentPos=240
_currentOrder=0/17 _currentPos=256
_currentOrder=0/17 _currentPos=272
Op_FreePreload not implemented
COMMENT: "Raoul n'est pas la"
releaseOverlay: finish !
Load overlay: S33B
Attempting to load overlay file S33B.OVL...
Opening hashed: D2
OVL loading done...
Op_FreePreload not implemented
COMMENT: "Raoul n'est pas la"
_currentOrder=0/17 _currentPos=288
releaseOverlay: finish !
Load overlay: S33B
Attempting to load overlay file S33B.OVL...
OVL loading done...
_currentOrder=0/17 _currentPos=304
_currentOrder=0/17 _currentPos=320
Loading BG: HORLOFND.PI1
_currentOrder=0/17 _currentPos=336
_currentOrder=0/17 _currentPos=352
_currentOrder=0/17 _currentPos=368
_currentOrder=0/17 _currentPos=384
_currentOrder=0/17 _currentPos=400
_currentOrder=0/17 _currentPos=416
_currentOrder=0/17 _currentPos=432
_currentOrder=0/17 _currentPos=448
_currentOrder=0/17 _currentPos=464
_currentOrder=0/17 _currentPos=480
_currentOrder=0/17 _currentPos=496
_currentOrder=0/17 _currentPos=512
_currentOrder=0/17 _currentPos=528
_currentOrder=0/17 _currentPos=544
_currentOrder=0/17 _currentPos=560
_currentOrder=0/17 _currentPos=576
_currentOrder=0/17 _currentPos=592
_currentOrder=0/17 _currentPos=608
_currentOrder=0/17 _currentPos=624
_currentOrder=0/17 _currentPos=640
_currentOrder=0/17 _currentPos=656
_currentOrder=0/17 _currentPos=672
_currentOrder=0/17 _currentPos=688
Op_FreePreload not implemented
_currentOrder=0/17 _currentPos=704
Loading BG: S33.PI1
_currentOrder=0/17 _currentPos=720
_currentOrder=0/17 _currentPos=736
_currentOrder=0/17 _currentPos=752
_currentOrder=0/17 _currentPos=768
_currentOrder=0/17 _currentPos=784
_currentOrder=0/17 _currentPos=800
_currentOrder=0/17 _currentPos=816
_currentOrder=0/17 _currentPos=832
_currentOrder=0/17 _currentPos=848
_currentOrder=0/17 _currentPos=864
_currentOrder=0/17 _currentPos=880
_currentOrder=0/17 _currentPos=896
_currentOrder=0/17 _currentPos=912
_currentOrder=0/17 _currentPos=928
_currentOrder=0/17 _currentPos=944
_currentOrder=0/17 _currentPos=960
_currentOrder=0/17 _currentPos=976
_currentOrder=0/17 _currentPos=992
_currentOrder=0/17 _currentPos=1008
_currentOrder=1/17 _currentPos=0
_currentOrder=1/17 _currentPos=16
_currentOrder=1/17 _currentPos=32
Loading BG: S33F.PI1
Op_FreePreload not implemented
COMMENT: "Raoul n'est pas la"
releaseOverlay: finish !
Load overlay: INVENT
Attempting to load overlay file INVENT.OVL...
OVL loading done...
Load overlay: S33
Attempting to load overlay file S33.OVL...
OVL loading done...
Loading BG: S33.PI1
Bus error

Between the last two lines I examined the ashtray successfully (which seems to work fine everytime with svn 42761) and then tried to examine the rug which consistently crashes, giving the final line.

comment:10 by joostp, 10 years ago

Are you able to run the game in gdb? Getting a backtrace or just the offending line would be tremendously useful...

comment:11 by SF/meddlingmonk, 10 years ago

I've just taught myself what gdb is and how to use it. Hopefully I'm doing this right. I ran scummvm in gdb. I'm only getting freezes right now for some reason instead of sometimes a crash, but here's what I get when it freezes, from running to backtrace:

(gdb) run
Starting program: /Applications/ScummVM.app/Contents/MacOS/scummvm
Reading symbols for shared libraries +++++++++++++++++....................................................................... done
Reading symbols for shared libraries . done
Reading symbols for shared libraries . done
Reading symbols for shared libraries . done
Reading symbols for shared libraries . done
Reading symbols for shared libraries .. done
Reading symbols for shared libraries . done
Reading symbols for shared libraries . done
Reading symbols for shared libraries ... done
Reading symbols for shared libraries . done
Reading symbols for shared libraries . done
Reading symbols for shared libraries . done
Reading symbols for shared libraries . done
Reading symbols for shared libraries . done
Reading symbols for shared libraries . done
2009-07-25 14:20:39.964 scummvm[366:813] Warning once: This application, or a library it uses, is using NSQuickDrawView, which has been deprecated. Apps should cease use of QuickDraw and move to Quartz.
User picked target 'cruise' (gameid 'cruise')...
Looking for a plugin supporting this gameid... Cinematique evo 2 engine
Starting 'Cinematique evo.2 engine game'

Program received signal EXC_BAD_ACCESS, Could not access memory.
Reason: KERN_PROTECTION_FAILURE at address: 0x03acbd1a
0x0031ea08 in Cruise::PCSound::getVolume ()
(gdb) bt
#0 0x0031ea08 in Cruise::PCSound::getVolume ()
#1 0x0031e760 in Cruise::PCSound::getVolume ()
#2 0x003203b0 in Cruise::PCSound::getVolume ()
#3 0x00321248 in Cruise::PCSound::getVolume ()
#4 0x0030e170 in Common::Array<Cruise::CtStruct>::clear ()
#5 0x00307fa4 in Common::Array<Cruise::CtEntry>::operator[] ()
#6 0x000105c0 in Common::Singleton<Common::EventRecorder>::instance ()
#7 0x00010c48 in Common::Singleton<Common::EventRecorder>::instance ()
#8 0x0000bca0 in Common::Array<Common::String>::push_back ()
#9 0x00c65ddc in allpass::process ()
#10 0x92053670 in _nsnote_callback ()
#11 0x9586b5cc in _CFXNotificationPostNotification ()
#12 0x92050dac in -[NSNotificationCenter postNotificationName:object:userInfo:] ()
#13 0x93828db8 in -[NSApplication _postDidFinishNotification] ()
#14 0x93828cd0 in -[NSApplication _sendFinishLaunchingNotification] ()
#15 0x937b0674 in -[NSApplication(NSAppleEventHandling) _handleAEOpen:] ()
#16 0x937afeac in -[NSApplication(NSAppleEventHandling) _handleCoreEvent:withReplyEvent:] ()
#17 0x92073ff0 in -[NSAppleEventManager dispatchRawAppleEvent:withRawReply:handlerRefCon:] ()
#18 0x92073dc4 in _NSAppleEventManagerGenericHandler ()
#19 0x95769ce4 in aeDispatchAppleEvent ()
#20 0x95769bec in dispatchEventAndSendReply ()
#21 0x957699f0 in aeProcessAppleEvent ()
#22 0x95e182d0 in AEProcessAppleEvent ()
#23 0x937ad9d8 in _DPSNextEvent ()
#24 0x937ad160 in -[NSApplication nextEventMatchingMask:untilDate:inMode:dequeue:] ()
#25 0x937a6e1c in -[NSApplication run] ()
#26 0x00c66414 in allpass::process ()
#27 0x00002b80 in ?? ()
#28 0x00002890 in ?? ()

comment:12 by joostp, 10 years ago

Thanks for this backtrace (and taking the time to learn gdb =)).
Unfortunately nothing immediately jumps out at me, but perhaps dreammaster has an idea...

btw. the freezing is just gdb holding on to the window at the point of the crash. If you drop back to gdb, which appears to have happened given the error message, the program will have crashed.

comment:13 by joostp, 10 years ago

OK, just tried it on my Intel Mac and it crashes there too, so this isn't an alignment or endianness issue...

comment:14 by joostp, 10 years ago

Should be fixed/worked-around for real now, could you please try again?

comment:15 by SF/meddlingmonk, 10 years ago

Seems to be working. No crashes on examining or anything else. But you may want to look into the the Player Menu's behavior. It comes up ok when I right/left click but none of the actions seem to work. No crash, just no response at all. Can only save/load through CTRL-F5. It's like this on Fedora as well. Maybe should be a new bug report but maybe it's connected to what you just fixed.

comment:16 by joostp, 10 years ago

Thanks for testing (and reporting the bug in the first place).

The menu issue is completely unrelated, and a separate bug report should be filed for it. Closing this one.

comment:17 by joostp, 10 years ago

Owner: changed from dreammaster to joostp
Resolution: fixed
Status: newclosed

comment:18 by joostp, 10 years ago

Summary: CRUISE: Crash on most any action PPCCRUISE: Crash on most any action (OSX)
Note: See TracTickets for help on using tickets.