Opened 6 years ago
Closed 6 years ago
#10792 closed defect (fixed)
SCI: Mac KQ6, QFG1VGA, FPFP, GK1 broken, possibly others
Reported by: | sluicebox | Owned by: | bluegr |
---|---|---|---|
Priority: | normal | Component: | Engine: SCI |
Version: | Keywords: | ||
Cc: | Game: |
Description
ScummVM 2.0 broke mac versions of all SCI games whose data files are in the "Data#" format instead of "RESOURCE.###" which is at least KQ6, QFG1VGA, FPFP, and GK1. They can't be started due to a breaking change in the mac resource loader.
There's already bug #10440 for FPFP but I don't know if it's known that this affected multiple games in the 2.0 release and that a fix is available.
csnover described the problem in the comments for #10440 and there's a commit in his working branch that fixes it by disabling mac resource fork validation: https://github.com/csnover/scummvm/commit/ca420e44167e5ee488b4ad547104fa6b976e6f1c
I don't know if disabling validation is the right ultimate fix but I can confirm that applying this change allows these games to load again. (Except for GK1 which crashes for other reasons but at least it gets farther)
Just wanted to get the state of things written down and on the radar.
Change History (2)
comment:2 by , 6 years ago
Owner: | set to |
---|---|
Resolution: | → fixed |
Status: | new → closed |
There are other changes before this commit. I've adapted it for the current codebase, and pushed it in commit 57f114cbc3f8ecea0668c732550afc638e3ee302.
Closing this, as well as the other linked bug.
This bug was introduced on May 7, 2017: https://github.com/scummvm/scummvm/commit/554a73e01209643161f8adecba825a5bc39f87f8
Validation was added to verify up front that resource maps didn't contain resource offsets and sizes that would go beyond the volume file size.
This validation was never meant to apply to games that don't have external resource map files, such as the Mac SCI 1.1 games, and so disabling it for them is appropriate to restore the original behavior and fix loading the games.
Can we just pull in that commit and close this out?