[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