Opened 3 weeks ago
Closed 3 weeks ago
#15482 closed defect (fixed)
SCUMM: INDY4: MacGUI crash with the updated 'Fate of Atlantis' interpreter
Reported by: | dwatteau | Owned by: | eriktorbjorn |
---|---|---|---|
Priority: | normal | Component: | Engine: SCUMM |
Version: | Keywords: | macintosh | |
Cc: | Game: | Indiana Jones 4 |
Description
Current Git HEAD.
I'm having the following crash when trying to start my Macintosh floppy release of Indy4.
(gdb) bt #0 0x90047dac in kill () #1 0x9012d7b4 in abort () #2 0x022069fc in __eprintf () #3 0x00074bf0 in Common::Array<Common::String>::operator[] (this=0x2476fec, idx=1) at array.h:274 #4 0x0016afc8 in Scumm::MacGuiImpl::initialize (this=0x2476f30) at engines/scumm/macgui/macgui_impl.cpp:193 #5 0x00164428 in Scumm::MacGui::initialize (this=0x603b710) at engines/scumm/macgui/macgui.cpp:64 #6 0x002649c0 in Scumm::ScummEngine::init (this=0x641b000) at engines/scumm/scumm.cpp:1335 #7 0x00272034 in Scumm::ScummEngine::run (this=0x641b000) at scumm.h:582 #8 0x00071f60 in runGame (enginePlugin=0x243c1d0, system=@0x2431738, game=@0xbfffd4e0, meDescriptor=0x0) at base/main.cpp:311 #9 0x00074124 in scummvm_main (argc=1, argv=0x2406a10) at base/main.cpp:796 #10 0x0006c324 in SDL_main (argc=1, argv=0x2406a10) at backends/platform/sdl/macosx/macosx-main.cpp:44 #11 0x0082609c in -[SDLMain applicationDidFinishLaunching:] () #12 0x92bf5e1c in _nsnote_callback () #13 0x90805ec0 in __CFXNotificationPost () #14 0x907fdf20 in _CFXNotificationPostNotification () #15 0x92be0224 in -[NSNotificationCenter postNotificationName:object:userInfo:] () #16 0x937a3be8 in -[NSApplication _postDidFinishNotification] () #17 0x937a3ad4 in -[NSApplication _sendFinishLaunchingNotification] () #18 0x937a361c in -[NSApplication(NSAppleEventHandling) _handleAEOpen:] () #19 0x937a31c4 in -[NSApplication(NSAppleEventHandling) _handleCoreEvent:withReplyEvent:] () #20 0x92bf6e28 in -[NSAppleEventManager dispatchRawAppleEvent:withRawReply:handlerRefCon:] () #21 0x92bf6c88 in _NSAppleEventManagerGenericHandler () #22 0x91500960 in aeDispatchAppleEvent () #23 0x915007fc in dispatchEventAndSendReply () #24 0x91500654 in aeProcessAppleEvent () #25 0x932bf2e0 in AEProcessAppleEvent () #26 0x937a190c in _DPSNextEvent () #27 0x937a13f8 in -[NSApplication nextEventMatchingMask:untilDate:inMode:dequeue:] () #28 0x9379d93c in -[NSApplication run] () #29 0x00826704 in main () #30 0x0000795c in _start () #31 0x00007660 in start ()
(fuller GDB backtrace attached below)
The game does work if I use the older interpreter I have.
The newer one (which triggers the crash) comes from the fate1.5 ppc.hqx
update that LucasArts used to publicly host on its FTP site, I believe (I think <https://appsupport.disney.com/hc/en-us/articles/360000760746-Where-can-I-find-updates-and-patches-for-Lucasfilm-games> has the same content).
Two problems I see (I discussed with Bosca a bit about it):
- This particular release is not supported yet.
- Maybe we could provide a cleaner fallback when we find an interpreter that's not supported yet? i.e. at least an
error()
instead of a crash?
You can ping over Discord for tests and such, if necessary :)
Attachments (2)
Change History (8)
by , 3 weeks ago
Attachment: | debug-gdb-indy4-atlantis-floppy-macgui.txt added |
---|
by , 3 weeks ago
Attachment: | fate-1.5.txt added |
---|
comment:2 by , 3 weeks ago
For reference, this is where I got the 1.5 update from:
https://archive.org/details/ftp.lucasarts.com-20130427
So it should be legitimate. I noticed there are other updates there as well, but I wasn't able to properly convert the HQX files on my first attempt, and I don't really have the time to try again right now. It would be great if someone could verify which ones work and which (if any) do not.
comment:3 by , 3 weeks ago
Thanks erik, your patch does fix the issue. It appears that all the interpreters hosted above work out of the box, now.
You can ping me over Discord if you need help with the HQX extraction.
(There's still the issue of the code crashing when encountering an unknown interpreter, though. Might be better to error out, or fall back to not trying to extract content from it?)
comment:4 by , 3 weeks ago
Thanks, I'll try committing that later tonight. I might have better tools for extracting the HQX files then, too.
comment:6 by , 3 weeks ago
Owner: | set to |
---|---|
Resolution: | → fixed |
Status: | new → closed |
I've committed my change, and verified that the other two versions I found in the archived version of LucasArts's FTP server work. (I added some alternate file names for them to match what I got when I extracted them.
full GDB log when the crash happens