[Scummvm-git-logs] scummvm master -> 86f230c5adccbb4a2938e4da549c7ac65e089b7e

neuromancer noreply at scummvm.org
Sun Oct 25 10:42:20 UTC 2026


This automated email contains information about 1 new commit which have been
pushed to the 'scummvm' repo located at https://api.github.com/repos/scummvm/scummvm .

Summary:
86f230c5ad SCUMM: RA2: correct detection of RA2 (mac) installer


Commit: 86f230c5adccbb4a2938e4da549c7ac65e089b7e
    https://github.com/scummvm/scummvm/commit/86f230c5adccbb4a2938e4da549c7ac65e089b7e
Author: neuromancer (gustavo.grieco at gmail.com)
Date: 2026-10-25T11:42:07+01:00

Commit Message:
SCUMM: RA2: correct detection of RA2 (mac) installer

Changed paths:
    devtools/scumm-md5.txt
    engines/scumm/detection_tables.h
    engines/scumm/insane/rebel2/rebel.cpp
    engines/scumm/insane/rebel2/releases.cpp
    engines/scumm/insane/rebel2/releases.h
    engines/scumm/scumm-md5.h


diff --git a/devtools/scumm-md5.txt b/devtools/scumm-md5.txt
index 31c39f332c3..5beaef9e6b9 100644
--- a/devtools/scumm-md5.txt
+++ b/devtools/scumm-md5.txt
@@ -475,6 +475,7 @@ rebel1	Star Wars: Rebel Assault
 
 rebel2	Star Wars: Rebel Assault II: The Hidden Empire
 	6b73a08c535c0544785d73ff812908a0	9430	All	DOS	-	-	-	-
+	a48fc2a86cc51e00a1adafb4bf820e46	453981704	en	Mac	Mac	-	Mac v1.0 CD 1 bundle	-
 	569b6160d1d56573ff54f2c908483897	720896	us	PSX	PlayStation	-	Disc 1 executable	-
 	ae607f6ed270311d7dbc033d3e943d3e	750723120	us	PSX	PlayStation	-	Disc 1 raw image	-
 
diff --git a/engines/scumm/detection_tables.h b/engines/scumm/detection_tables.h
index 666320c2c3d..76a84c95f0b 100644
--- a/engines/scumm/detection_tables.h
+++ b/engines/scumm/detection_tables.h
@@ -242,6 +242,7 @@ static const GameSettings gameVariantsTable[] = {
 	{"rebel1", "Demo v1.02c", 0, GID_REBEL1, 7, 0, MDT_NONE, GF_DEMO | GF_TESTING, Common::kPlatformMacintosh, GUIO3(GUIO_NOMIDI, GAMEOPTION_REBEL1_UNLOCK_ALL, GAMEOPTION_REBEL1_NO_DAMAGE)},
 
 	{"rebel2", "", 0, GID_REBEL2, 7, 0, MDT_NONE, GF_TESTING, Common::kPlatformDOS, GUIO5(GUIO_NOMIDI, GAMEOPTION_REBEL2_HIRES, GAMEOPTION_REBEL2_UNLOCK_ALL, GAMEOPTION_REBEL2_NO_DAMAGE, GAMEOPTION_REBEL2_YODA_MODE)},
+	{"rebel2", "Mac", 0, GID_REBEL2, 7, 0, MDT_NONE, GF_TESTING, Common::kPlatformMacintosh, GUIO5(GUIO_NOMIDI, GAMEOPTION_REBEL2_HIRES, GAMEOPTION_REBEL2_UNLOCK_ALL, GAMEOPTION_REBEL2_NO_DAMAGE, GAMEOPTION_REBEL2_YODA_MODE)},
 	{"rebel2", "Demo", 0, GID_REBEL2, 7, 0, MDT_NONE, GF_DEMO | GF_TESTING, Common::kPlatformDOS, GUIO3(GUIO_NOMIDI, GUIO_NOLAUNCHLOAD, GUIO_NOSUBTITLES)},
 	{"rebel2", "Demo Windows 95", 0, GID_REBEL2, 7, 0, MDT_NONE, GF_DEMO | GF_TESTING, Common::kPlatformWindows, GUIO3(GUIO_NOMIDI, GUIO_NOLAUNCHLOAD, GUIO_NOSUBTITLES)},
 	{"rebel2", "Demo DA1.06", 0, GID_REBEL2, 7, 0, MDT_NONE, GF_DEMO | GF_TESTING, Common::kPlatformDOS, GUIO6(GUIO_NOMIDI, GAMEOPTION_REBEL2_HIRES, GAMEOPTION_REBEL2_UNLOCK_ALL, GAMEOPTION_REBEL2_NO_DAMAGE, GAMEOPTION_REBEL2_YODA_MODE, GAMEOPTION_REBEL2_RESTORED_CONTENT)},
@@ -535,6 +536,7 @@ static const GameFilenamePattern gameFilenamesTable[] = {
 	{ "rebel2", "REBEL2.EXE", kGenUnchanged, UNK_LANG, Common::kPlatformDOS, "Demo" },
 	{ "rebel2", "LUCASDMO.EXE", kGenUnchanged, UNK_LANG, Common::kPlatformWindows, "Demo Windows 95" },
 	{ "rebel2", "RA2.EXE", kGenUnchanged, UNK_LANG, Common::kPlatformDOS, "Demo DA1.06" },
+	{ "rebel2", "Rebel Assault II Data 1", kGenUnchanged, UNK_LANG, Common::kPlatformMacintosh, "Mac" },
 	{ "rebel2", "Rebel Assault II Demo Data", kGenUnchanged, UNK_LANG, Common::kPlatformMacintosh, "Demo v1.0" },
 	{ "rebel2", "SLUS_003.81", kGenUnchanged, Common::EN_USA, Common::kPlatformPSX, "PlayStation" },
 
diff --git a/engines/scumm/insane/rebel2/rebel.cpp b/engines/scumm/insane/rebel2/rebel.cpp
index c70d29c3646..9aad3041796 100644
--- a/engines/scumm/insane/rebel2/rebel.cpp
+++ b/engines/scumm/insane/rebel2/rebel.cpp
@@ -165,11 +165,13 @@ bool InsaneRebel2::isSkippableVideoState() const {
 InsaneRebel2::InsaneRebel2(ScummEngine_v7 *scumm) :
 		_release(getRebel2Release(scumm->_game.variant, ConfMan.getBool("rebel2_restored_content"))) {
 	_vm = scumm;
-	if (_release.container) {
-		Common::Archive *archive = createRebel2MacArchive(_vm, _release.container);
-		if (!archive)
-			error("Cannot open Rebel Assault II data bundle '%s'", _release.container);
-		SearchMan.add("rebel2-mac-data", archive, 1);
+	if (_release.containers) {
+		for (const char *const *container = _release.containers; *container; ++container) {
+			Common::Archive *archive = createRebel2MacArchive(_vm, *container);
+			if (!archive)
+				error("Cannot open Rebel Assault II data bundle '%s'", *container);
+			SearchMan.add(*container, archive, 1);
+		}
 	}
 
 	// Rebel Assault II skips ScummEngine::resetScumm(), which normally clears this state.
@@ -642,8 +644,10 @@ InsaneRebel2::~InsaneRebel2() {
 		_rebelEmbeddedHud[i].pixels = nullptr;
 	}
 
-	if (_release.container)
-		SearchMan.remove("rebel2-mac-data");
+	if (_release.containers) {
+		for (const char *const *container = _release.containers; *container; ++container)
+			SearchMan.remove(*container);
+	}
 }
 
 bool InsaneRebel2::isHiRes() const {
diff --git a/engines/scumm/insane/rebel2/releases.cpp b/engines/scumm/insane/rebel2/releases.cpp
index 46e3e799b78..f2ee18ffed2 100644
--- a/engines/scumm/insane/rebel2/releases.cpp
+++ b/engines/scumm/insane/rebel2/releases.cpp
@@ -95,6 +95,14 @@ static const char *const kWindowsDemoFonts[] = {
 	"RA2VID/TALKFONT.NUT", "RA2VID/SMALFONT.NUT", "RA2VID/TITLFONT.NUT", nullptr
 };
 
+static const char *const kMacContainers[] = {
+	"Rebel Assault II Data 1", "Rebel Assault II Data 2", nullptr
+};
+
+static const char *const kMacDemoContainers[] = {
+	"Rebel Assault II Demo Data", nullptr
+};
+
 // Variants match detection_tables.h. Availability also limits passwords,
 // saved pilot progress and the unlock-all option.
 static const Rebel2Release kReleases[] = {
@@ -103,6 +111,11 @@ static const Rebel2Release kReleases[] = {
 		{ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15 },
 		true, false, false, false, false, nullptr, 0, nullptr, nullptr
 	},
+	{
+		"Mac", kMacContainers, "SYSTM/GAME.TRS", nullptr, nullptr,
+		{ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15 },
+		true, false, false, false, false, nullptr, 0, nullptr, nullptr
+	},
 	{
 		// REBEL2.EXE (LE object 1, 0x10) loads two fonts and DEFAULT.TRS
 		// for the release announcement at the end of O_DEMO.SAN.
@@ -145,7 +158,7 @@ static const Rebel2Release kReleases[] = {
 	{
 		// Macintosh v1.0's chapter-6 handler (PEF code section, 0x17fe8)
 		// also skips the shield attack in demo mode and uses 06END_B.
-		"Demo v1.0", "Rebel Assault II Demo Data", "SYSTM/GAME_E.TRS", nullptr, nullptr, { 6 },
+		"Demo v1.0", kMacDemoContainers, "SYSTM/GAME_E.TRS", nullptr, nullptr, { 6 },
 		false, true, true, true, false, kChapter6DemoDifficulty, ARRAYSIZE(kChapter6DemoDifficulty), nullptr, nullptr
 	}
 };
diff --git a/engines/scumm/insane/rebel2/releases.h b/engines/scumm/insane/rebel2/releases.h
index d4dabbe2ead..0d2efdebb88 100644
--- a/engines/scumm/insane/rebel2/releases.h
+++ b/engines/scumm/insane/rebel2/releases.h
@@ -66,7 +66,7 @@ struct Rebel2Release {
 	enum { kNumLevels = 15, kFinale = 16 };
 
 	const char *variant;
-	const char *container;
+	const char *const *containers;
 	const char *strings;
 	// Null-terminated playlist for non-interactive demos.
 	const Rebel2DemoVideo *nonInteractiveVideos;
diff --git a/engines/scumm/scumm-md5.h b/engines/scumm/scumm-md5.h
index cfc2ea6bf27..32b0516f9e5 100644
--- a/engines/scumm/scumm-md5.h
+++ b/engines/scumm/scumm-md5.h
@@ -1,5 +1,5 @@
 /*
-  This file was generated by the md5table tool on Tue Oct 20 17:38:16 2026
+  This file was generated by the md5table tool on Sun Oct 25 10:38:33 2026
   DO NOT EDIT MANUALLY!
  */
 
@@ -564,6 +564,7 @@ static const MD5Table md5table[] = {
 	{ "a2bb6aa0537402c1b3c2ea899ccef64b", "lost", "HE 99", "Demo", 15540, Common::EN_ANY, Common::kPlatformWindows },
 	{ "a3036878840720fbefa41e6965fa4a0a", "samnmax", "Floppy", "Floppy", 9040, Common::EN_ANY, Common::kPlatformDOS },
 	{ "a336134914eaab4892d35625aa15ad1d", "freddi4", "HE 99", "", -1, Common::RU_RUS, Common::kPlatformWindows },
+	{ "a48fc2a86cc51e00a1adafb4bf820e46", "rebel2", "Mac", "", 453981704, Common::EN_ANY, Common::kPlatformMacintosh },
 	{ "a4b30b29a419d49a2ab33bd4414939d1", "tentacle", "", "CD", -1, Common::KO_KOR, Common::kPlatformUnknown },
 	{ "a525c1753c1db5011c00417da37887ef", "PuttTime", "HE 100", "Updated", -1, Common::EN_USA, Common::kPlatformUnknown },
 	{ "a561d2e2413cc1c71d5a1bf87bf493ea", "lost", "HE 100", "Updated", -1, Common::EN_USA, Common::kPlatformUnknown },




More information about the Scummvm-git-logs mailing list