[Scummvm-git-logs] scummvm master -> 531042c1e122ac6af23c5527f91127e37e9a26b0

sev- noreply at scummvm.org
Mon Jul 21 10:05:39 UTC 2025


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

Summary:
fb28da228c WAGE: Remove non-WAGE based title from detection table
b55f8af6eb WAGE: Add "Volcano I" and alt version of "The Tower" to detection
531042c1e1 WAGE: Add fallback detection


Commit: fb28da228c528a245744fce4a2ba34db7b6f2a1c
    https://github.com/scummvm/scummvm/commit/fb28da228c528a245744fce4a2ba34db7b6f2a1c
Author: Alikhan Balpykov (luxrage1990 at gmail.com)
Date: 2025-07-21T12:05:35+02:00

Commit Message:
WAGE: Remove non-WAGE based title from detection table

Changed paths:
    engines/wage/detection_tables.h


diff --git a/engines/wage/detection_tables.h b/engines/wage/detection_tables.h
index 9fc6917f4ba..6d465cfb769 100644
--- a/engines/wage/detection_tables.h
+++ b/engines/wage/detection_tables.h
@@ -197,7 +197,6 @@ static const ADGameDescription gameDescriptions[] = {
 	FANGAME("MacWanker 1.0", "2fd407020adf527d1193f3351d7244b5", 178005),
 	FANGAME("Magic Rings", "263e2c90af61f0798bf41f6a1e3f6345", 108788),
 	FANGAMEN("Mansion!", "Mansion! 1.0", "c993619e5bd99ccca6e3ce28d93be33a", 389857),
-	FANGAMEN("Master's Familiar", "xn--Masters Familiar v2.3 -245mphaaa", "d5ee3e1ff136482ef1de7935a0ac3918", 142827), // Original file name "Master’s Familiar v2.3 ••••"
 	FANGAMEN("Maze of the Questing Beast", "MQB", "03775e1894809f24234aeaab18f39451", 134444),
 	FANGAMEN("Maze of the Questing Beast Solutions", "MQB Solutions", "8a27e515f12162cc8b85e4f2bd16a1e5", 37606),
 	FANGAME("Messy House", "32ca71f2ff37997407cead590c2dd306", 176864),


Commit: b55f8af6eb1bf20370d04c7334f111ca3cc5572e
    https://github.com/scummvm/scummvm/commit/b55f8af6eb1bf20370d04c7334f111ca3cc5572e
Author: Alikhan Balpykov (luxrage1990 at gmail.com)
Date: 2025-07-21T12:05:35+02:00

Commit Message:
WAGE: Add "Volcano I" and alt version of "The Tower" to detection

Changed paths:
    engines/wage/detection_tables.h


diff --git a/engines/wage/detection_tables.h b/engines/wage/detection_tables.h
index 6d465cfb769..f1e465e61c8 100644
--- a/engines/wage/detection_tables.h
+++ b/engines/wage/detection_tables.h
@@ -311,6 +311,7 @@ static const ADGameDescription gameDescriptions[] = {
 	FANGAMEND("Time Star", "xn--Time Star-eh2e", "761e91f3da7217dc9516879a8ba08fd9", 210562), // Original file name "Time Starâ„¢"
 	FANGAMEN("Time Streak!!", "xn--Time Streak!!-8q9g", "e90f123a113e38c83c205b5fe50521fb", 483488), // Original file name "Time Streak!!â„¢"
 	FANGAME("The Tower", "4cd8755ccb5bbeaf2e5f7848a8daa033", 556283),
+	FANGAME("The Tower", "r:a79282051dd190bb8d41c7600bdc157e", 733539), // alt version
 	FANGAMEND("Tombworld", "xn--Demo TombWorld-8ra", "695734292024290d5d0aa6a66ff628f6", 663996), // Original file name "Demo TombWorld©"
 	FANGAMEND("Tombworld", "DemoTombWorld", "4b3f56cfa595eab3919a918767e11870", 387403), // alt version
 	BIGGAME("twisted", "", "Twisted! 1.1", "7226874582d7e5fa13004340e9c5ba2b", 957878),
@@ -318,6 +319,7 @@ static const ADGameDescription gameDescriptions[] = {
 	BIGGAME("twisted", "", "Twisted! 1.6", "6e0be4c7d83231e56a431dc4ef7bf978", 960698),
 	FANGAME("The Village", "fd35cad8c61064d6c8aaadab7070ccad", 314572),
 	FANGAME("The Village", "b84ac84be610498c4de5d9bd4fd36175", 314620), // alt version
+	FANGAMEN("Volcano I", "Volcano", "r:d55531ddaa800b77e8f3da6385283183", 101635),
 	FANGAMEN("Volcano", "Volcano 2.4", "d04eba23fe7d566fba0c9b34242d8f10", 227431),
 	FANGAMEN("Volcano II", "xn--Volcano II-0y6e", "7941c08b34bc2408b98c0004c7154aeb", 82735), // Original file name "Volcano II†"
 	FANGAMEN("Who Shot Brownie Dog?", "xn--Who Shot Brownie Dogv1.01-lba88n", "4e7a950567c73e98e4478e5683e943ca", 195923),


Commit: 531042c1e122ac6af23c5527f91127e37e9a26b0
    https://github.com/scummvm/scummvm/commit/531042c1e122ac6af23c5527f91127e37e9a26b0
Author: Alikhan Balpykov (luxrage1990 at gmail.com)
Date: 2025-07-21T12:05:35+02:00

Commit Message:
WAGE: Add fallback detection

Changed paths:
    engines/wage/detection.cpp


diff --git a/engines/wage/detection.cpp b/engines/wage/detection.cpp
index 30bbabc2b49..db64aeaaee5 100644
--- a/engines/wage/detection.cpp
+++ b/engines/wage/detection.cpp
@@ -22,6 +22,9 @@
 
 #include "base/plugins.h"
 
+#include "common/file.h"
+#include "common/macresman.h"
+
 #include "engines/advancedDetector.h"
 
 static const PlainGameDescriptor wageGames[] = {
@@ -40,7 +43,19 @@ static const PlainGameDescriptor wageGames[] = {
 #include "wage/detection_tables.h"
 #include "wage/detection.h"
 
+static ADGameDescription s_fallbackDesc = {
+	"wage",
+	"",
+	AD_ENTRY1(0, 0),
+	Common::EN_ANY,
+	Common::kPlatformMacintosh,
+	ADGF_NO_FLAGS,
+	GUIO0()
+};
+
 class WageMetaEngineDetection : public AdvancedMetaEngineDetection<ADGameDescription> {
+	mutable Common::String _filenameStr;
+
 public:
 	WageMetaEngineDetection() : AdvancedMetaEngineDetection(Wage::gameDescriptions, wageGames) {
 		_md5Bytes = 2 * 1024 * 1024;
@@ -58,6 +73,53 @@ public:
 	const char *getOriginalCopyright() const override {
 		return "World Builder (C) Silicon Beach Software";
 	}
+
+	ADDetectedGame fallbackDetect(const FileMap &allFiles, const Common::FSList &fslist, ADDetectedGameExtraInfo **extra) const override;
 };
 
+ADDetectedGame WageMetaEngineDetection::fallbackDetect(const FileMap &allFiles, const Common::FSList &fslist, ADDetectedGameExtraInfo **extra) const {
+	SearchMan.addDirectory("WageMetaEngineDetection::fallbackDetect", fslist.begin()->getParent());
+
+	for (Common::FSList::const_iterator fs = fslist.begin(); fs != fslist.end(); ++fs) {
+		if (fs->isDirectory())
+			continue;
+
+		Common::Path filePath = Common::Path(fs->getPathInArchive());
+		Common::MacResManager resManager;
+		if (!resManager.open(filePath)) {
+			continue;
+		}
+
+		Common::MacFinderInfo finderInfo;
+		if (resManager.getFileFinderInfo(filePath, finderInfo)) {
+			if (READ_BE_UINT32(finderInfo.type) != MKTAG('A', 'P', 'P', 'L')) {
+				continue;
+			}
+			if (READ_BE_UINT32(finderInfo.creator) != MKTAG('W', 'E', 'D', 'T')) {
+				continue;
+			}
+
+			Common::Path outPath(fs->getFileName());
+			_filenameStr = outPath.toString();
+
+			s_fallbackDesc.filesDescriptions[0].fileName = _filenameStr.c_str();
+
+			ADDetectedGame game;
+			game.desc = &s_fallbackDesc;
+
+			FileProperties tmp;
+			if (getFileProperties(allFiles, kMD5MacResFork, filePath, tmp)) {
+				game.hasUnknownFiles = true;
+				game.matchedFiles[filePath] = tmp;
+			}
+
+			SearchMan.remove("WageMetaEngineDetection::fallbackDetect");
+			return game;
+		}
+	}
+
+	SearchMan.remove("WageMetaEngineDetection::fallbackDetect");
+	return ADDetectedGame();
+}
+
 REGISTER_PLUGIN_STATIC(WAGE_DETECTION, PLUGIN_TYPE_ENGINE_DETECTION, WageMetaEngineDetection);




More information about the Scummvm-git-logs mailing list