[Scummvm-tracker] [ScummVM :: Bugs] #15509: SCUMM: Detection of Mac version of MI1 from the LucasArts Mac CD Game Pack is broken when using Dumper Companion
ScummVM :: Bugs
trac at scummvm.org
Wed Jul 9 14:31:45 UTC 2025
#15509: SCUMM: Detection of Mac version of MI1 from the LucasArts Mac CD Game Pack
is broken when using Dumper Companion
-------------------------+------------------------------
Reporter: eriktorbjorn | Owner: (none)
Type: defect | Status: new
Priority: normal | Component: Engine: SCUMM
Version: | Resolution:
Keywords: | Game: Monkey Island 1
-------------------------+------------------------------
Comment (by eriktorbjorn):
After looking some more, it seems that the SCUMM engine will already
transparently handle MacBinary files (see `ScummFile::open()`), and the
game detection also tries to (see part 1 of `detectGames()`).
Yet the detection fails.
I ''think'' the problem is that it tries to verify that it's a MacBinary
file from whatever position the stream is left at after calculating the
MD5 sum. If I first rewind it to the beginning, it seems to work fine:
{{{
diff --git a/engines/scumm/detection_internal.h
b/engines/scumm/detection_internal.h
index 6c0c189d47c..c4aa0ba344d 100644
--- a/engines/scumm/detection_internal.h
+++ b/engines/scumm/detection_internal.h
@@ -533,6 +533,7 @@ static void detectGames(const Common::FSList &fslist,
Common::List<DetectorResul
d.md5Entry =
findInMD5Table(md5str.c_str());
if (!d.md5Entry && (platform ==
Common::Platform::kPlatformMacintosh || platform ==
Common::Platform::kPlatformUnknown)) {
+ tmp->seek(0);
Common::SeekableReadStream
*dataStream = Common::MacResManager::openDataForkFromMacBinary(tmp);
if (dataStream) {
Common::String dataMD5 =
computeStreamMD5AsString(*dataStream, kMD5FileSizeLimit);
}}}
Does that seem like a sensible fix?
--
Ticket URL: <https://bugs.scummvm.org/ticket/15509#comment:10>
ScummVM :: Bugs <https://bugs.scummvm.org>
ScummVM
More information about the Scummvm-tracker
mailing list