[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