Opened 8 days ago

Closed 7 days 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):

  1. This particular release is not supported yet.
  2. 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)

debug-gdb-indy4-atlantis-floppy-macgui.txt (24.0 KB ) - added by dwatteau 8 days ago.
full GDB log when the crash happens
fate-1.5.txt (4.5 KB ) - added by eriktorbjorn 7 days ago.

Download all attachments as: .zip

Change History (8)

by dwatteau, 8 days ago

full GDB log when the crash happens

by eriktorbjorn, 7 days ago

Attachment: fate-1.5.txt added

comment:1 by eriktorbjorn, 7 days ago

I've attached a possible patch. Can you test if it works for you?

comment:2 by eriktorbjorn, 7 days 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 dwatteau, 7 days 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 eriktorbjorn, 7 days ago

Thanks, I'll try committing that later tonight. I might have better tools for extracting the HQX files then, too.

comment:5 by Torbjörn Andersson <eriktorbjorn@…>, 7 days ago

In 8210e874:

SCUMM: Add support for other Mac version of Fate of Atlantis (#15482)

This one used to be distributed as "fate_v1.5.bin" on the LucasArts
FTP sever. The strings resource is pretty close to the other CD
version.

comment:6 by eriktorbjorn, 7 days ago

Owner: set to eriktorbjorn
Resolution: fixed
Status: newclosed

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.

Note: See TracTickets for help on using tickets.