Opened 10 months ago
Last modified 10 months ago
#14753 closed defect
SCUMM: OSX crash with misread local Macintosh resource forks — at Version 2
Reported by: | dwatteau | Owned by: | |
---|---|---|---|
Priority: | normal | Component: | Engine: SCUMM |
Version: | Keywords: | ||
Cc: | Game: |
Description (last modified by )
Both an Engine-SCUMM and Port-OSX issue, I'd say...
On branch-2-8 on OSX PPC. The original Indy3 and Monkey1 Macintosh binaries have been copied "as-is" from the HFS disks to the local HFS+ filesystem, so the resource forks are still there. But, strangely, upgrading from ScummVM 2.7.1 to ScummVM 2.8.0pre, it looks like the resource fork is not properly read by ScummVM on OSX anymore.
The original Macintosh releases of Monkey1 and Indy3 now trigger crashes on this port, which didn't happen on 2.7.1. 2.8.0 now makes use of the original Macintosh binaries (for original GUI and improved sound), but (AFAICS) the engine doesn't check for the proper format of those resources, so if invalid content is read, the engine crashes.
GDB logs below.
Another way of reproducing the crash on a different system is to emulate a bad extraction of the resource fork (such as a blind cp
call from Linux reading the HFS disk), which typically gives you zero-byte files:
$ echo -n > "/path/to/INDY3-MAC/Indy" $ echo -n > "/path/to/MONKEY1-MAC/Monkey Island"
Of course, users should follow our guide about preserving the resource forks, but the crash is probably "not nice" (we could maybe at least check for a 0-byte file?). Moreover, on OSX, reading the local resource fork used to work (without any need to macbinary-encode it).
Change History (4)
by , 10 months ago
Attachment: | indy3-mac.txt added |
---|
by , 10 months ago
Attachment: | monkey1-mac.txt added |
---|
comment:1 by , 10 months ago
Component: | --Unset-- → Engine: SCUMM |
---|---|
Description: | modified (diff) |
Summary: | SCUMM: OSX PPC crash when loading Macintosh resource forks → SCUMM: OSX PPC crash with misread local Macintosh resource forks |
comment:2 by , 10 months ago
Description: | modified (diff) |
---|---|
Summary: | SCUMM: OSX PPC crash with misread local Macintosh resource forks → SCUMM: OSX crash with misread local Macintosh resource forks |
Actually, the crash when reading an original resource fork (which is not macbinary-encoded, but just copied as-is to the local HFS+/APFS volume) is there on modern macOS, too.