Opened 11 years ago

Closed 11 years ago

Last modified 11 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 11 years ago.
Crash report

Download all attachments as: .zip

Change History (19)

by SF/meddlingmonk, 11 years ago

Crash report

comment:1 by dreammaster, 11 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-, 11 years ago

Owner: set to joostp
Priority: normalhigh

comment:3 by sev-, 11 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, 11 years ago

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

comment:5 by joostp, 11 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-, 11 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-, 11 years ago

Owner: changed from joostp to dreammaster

comment:8 by joostp, 11 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, 11 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, 11 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, 11 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, 11 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, 11 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, 11 years ago

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

comment:15 by SF/meddlingmonk, 11 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, 11 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, 11 years ago

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

comment:18 by joostp, 11 years ago

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