[Scummvm-git-logs] scummvm master -> c21003d7ea8ea2ca6daaeec3c2f887a52079bb8f
sev-
noreply at scummvm.org
Tue Jun 17 18:49:14 UTC 2025
This automated email contains information about 4 new commits which have been
pushed to the 'scummvm' repo located at https://api.github.com/repos/scummvm/scummvm .
Summary:
54a873ba52 COMMON: Expose data/resfork sizes in MacResMan
6dcf57e600 GUI: INTEGRITY: Simplified checksum calculations and added size calculations for mac files
991f8f808d DIRECTOR: Change h: prefix in md5s (?) to f:. It seems to be front of the file
c21003d7ea MOHAWK: Change 'h:' md5 prefix in detection tables to f:
Commit: 54a873ba52e8b72fd7546c5fe81deac2dbe8741d
https://github.com/scummvm/scummvm/commit/54a873ba52e8b72fd7546c5fe81deac2dbe8741d
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2025-06-17T20:49:05+02:00
Commit Message:
COMMON: Expose data/resfork sizes in MacResMan
Changed paths:
common/macresman.h
diff --git a/common/macresman.h b/common/macresman.h
index e98da991817..c741ffb81fb 100644
--- a/common/macresman.h
+++ b/common/macresman.h
@@ -267,6 +267,18 @@ public:
*/
uint32 getResForkDataSize() const;
+ uint32 getResForkSize() const {
+ if (!hasResFork())
+ return 0;
+ return _resForkSize;
+ }
+
+ uint32 getDataForkSize() const {
+ if (!hasDataFork())
+ return 0;
+ return _dataLength;
+ }
+
/**
* Calculate the MD5 checksum of the resource fork
* @param length The maximum length to compute for
Commit: 6dcf57e600751a3379b714130dea396834924af1
https://github.com/scummvm/scummvm/commit/6dcf57e600751a3379b714130dea396834924af1
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2025-06-17T20:49:05+02:00
Commit Message:
GUI: INTEGRITY: Simplified checksum calculations and added size calculations for mac files
Changed paths:
gui/integrity-dialog.cpp
diff --git a/gui/integrity-dialog.cpp b/gui/integrity-dialog.cpp
index b3e8c8ea131..aec7fef451c 100644
--- a/gui/integrity-dialog.cpp
+++ b/gui/integrity-dialog.cpp
@@ -370,24 +370,38 @@ Common::Array<Common::StringArray> IntegrityDialog::generateChecksums(Common::Pa
// Data fork
// Various checksizes
for (auto size : {0, 5000, 1024 * 1024}) {
+ fileChecksum.push_back(Common::String::format("md5-d-%d", size));
fileChecksum.push_back(Common::computeStreamMD5AsString(*dataForkStream, size, progressUpdateCallback, this));
dataForkStream->seek(0);
}
// Tail checksums with checksize 5000
dataForkStream->seek(-5000, SEEK_END);
+ fileChecksum.push_back("md5-dt-5000");
fileChecksum.push_back(Common::computeStreamMD5AsString(*dataForkStream, 0, progressUpdateCallback, this).c_str());
// Resource fork
if (macFile.hasResFork()) {
// Various checksizes
for (auto size : {0, 5000, 1024 * 1024}) {
+ fileChecksum.push_back(Common::String::format("md5-r-%d", size));
fileChecksum.push_back(macFile.computeResForkMD5AsString(size, false, progressUpdateCallback, this));
}
// Tail checksums with checksize 5000
+ fileChecksum.push_back("md5-rt-5000");
fileChecksum.push_back(macFile.computeResForkMD5AsString(5000, true, progressUpdateCallback, this).c_str());
- fileChecksums.push_back(fileChecksum);
}
+ fileChecksum.push_back("size");
+ fileChecksum.push_back(Common::String::format("%llu", (unsigned long long)macFile.getDataForkSize()));
+
+ fileChecksum.push_back("size-r");
+ fileChecksum.push_back(Common::String::format("%llu", (unsigned long long)macFile.getResForkSize()));
+
+ fileChecksum.push_back("size-rd");
+ fileChecksum.push_back(Common::String::format("%llu", (unsigned long long)macFile.getResForkDataSize()));
+
+ fileChecksums.push_back(fileChecksum);
+
g_checksum_state->calculatedSize += dataForkStream->size();
macFile.close();
@@ -404,13 +418,18 @@ Common::Array<Common::StringArray> IntegrityDialog::generateChecksums(Common::Pa
Common::Array<Common::String> fileChecksum = {filename.toString()};
// Various checksizes
for (auto size : {0, 5000, 1024 * 1024}) {
+ fileChecksum.push_back(Common::String::format("md5-%d", size));
fileChecksum.push_back(Common::computeStreamMD5AsString(file, size, progressUpdateCallback, this).c_str());
file.seek(0);
}
// Tail checksums with checksize 5000
file.seek(-5000, SEEK_END);
+ fileChecksum.push_back("md5-t-5000");
fileChecksum.push_back(Common::computeStreamMD5AsString(file, 0, progressUpdateCallback, this).c_str());
+ fileChecksum.push_back("size");
+ fileChecksum.push_back(Common::String::format("%llu", (unsigned long long)file.size()));
+
file.close();
fileChecksums.push_back(fileChecksum);
}
@@ -442,37 +461,26 @@ Common::JSONValue *IntegrityDialog::generateJSONRequest(Common::Path gamePath, C
Common::Path relativePath = Common::Path(fileChecksum[0]).relativeTo(gamePath);
file.setVal("name", new Common::JSONValue(relativePath.toConfig()));
- Common::File tempFile;
- if (!tempFile.open(Common::Path(fileChecksum[0])))
- continue;
- uint64 fileSize = tempFile.size();
- tempFile.close();
-
- file.setVal("size", new Common::JSONValue((long long)fileSize));
-
Common::JSONArray checksums;
Common::StringArray checkcodes;
- if (fileChecksum.size() == 9)
- checkcodes = {"md5-d", "md5-d-5000", "md5-d-1M", "md5-dt-5000", "md5-r", "md5-r-5000", "md5-r-1M", "md5-rt-5000"};
- else
- checkcodes = {"md5", "md5-5000", "md5-1M", "md5-t-5000"};
-
- int index = -1;
- for (Common::String val : fileChecksum) {
- index++;
+ uint i;
+ for (i = 1; i < fileChecksum.size(); i += 2) {
Common::JSONObject checksum;
- if (index < 1) {
- continue;
- }
- checksum.setVal("type", new Common::JSONValue(checkcodes[index - 1]));
- checksum.setVal("checksum", new Common::JSONValue(val));
+ checksum.setVal("type", new Common::JSONValue(fileChecksum[i]));
+ checksum.setVal("checksum", new Common::JSONValue(fileChecksum[i + 1]));
+
+ if (fileChecksum[i].hasPrefix("size"))
+ break;
checksums.push_back(new Common::JSONValue(checksum));
}
file.setVal("checksums", new Common::JSONValue(checksums));
+ for (; i < fileChecksum.size(); i += 2)
+ file.setVal(fileChecksum[i], new Common::JSONValue(fileChecksum[i + 1]));
+
filesObject.push_back(new Common::JSONValue(file));
}
Commit: 991f8f808d7730eb0b333bfc4cd36389a8ffaf66
https://github.com/scummvm/scummvm/commit/991f8f808d7730eb0b333bfc4cd36389a8ffaf66
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2025-06-17T20:49:05+02:00
Commit Message:
DIRECTOR: Change h: prefix in md5s (?) to f:. It seems to be front of the file
Changed paths:
engines/director/detection_tables.h
diff --git a/engines/director/detection_tables.h b/engines/director/detection_tables.h
index 70a2a984ed8..7edf9086d7e 100644
--- a/engines/director/detection_tables.h
+++ b/engines/director/detection_tables.h
@@ -4360,7 +4360,7 @@ static const DirectorGameDescription gameDescriptions[] = {
MACGAME1("gigglevania", "", "Pantsylvania", "r:d9082ba24e164f376ffb3090c43fa997", 303893, 404),
WINGAME2("gigglevania", "", "PANTS.EXE", "t:2c22991e2349ff5fc6f4f23940ae6487", 697317,
- "INTRO.DXR", "h:41101e9d94da0a627e75f5b93ae22f48", 5008606, 404),
+ "INTRO.DXR", "f:41101e9d94da0a627e75f5b93ae22f48", 5008606, 404),
// Found on Elroy Goes Bugzerk CD
MACDEMO1("gigglevania", "Demo", "Pantsylvania Demo", "r:da1e2ceef5a0013fa068e9a3ad013336", 502075, 400),
WINDEMO1("gigglevania", "Demo", "PANTDEMO.EXE", "t:ad83c38a5bbf3ce654dc27641cd505cc", 8422605, 400),
@@ -5963,7 +5963,7 @@ static const DirectorGameDescription gameDescriptions[] = {
// Earlier demos are D3; the Great Big Demo is from Spaceship Warlock AV (1996)
// Great Big Windows demo is also on this disc, despite it being HFS and Mac-only
MACGAME1("totaldistortion", "", "Installer Files/xn--TD MACPPC-qa02c", "r:17efee018a660458fae80de4364021ac", 485818, 404),
- WINGAME1("totaldistortion", "", "TOTAL_DN.EXE", "h:461b407c321e80487ae4882056310f9f", 700747, 404),
+ WINGAME1("totaldistortion", "", "TOTAL_DN.EXE", "t:f1adf50f829a148bbae442ee5cca0bd3", 700747, 404),
MACDEMO1("totaldistortion", "Great Big Demo", "TD Demo 12 Meg", "r:17efee018a660458fae80de4364021ac", 485818, 404),
WINDEMO1("totaldistortion", "Great Big Demo", "TD_DEMO.EXE", "t:028063f8a752f5ffda7477f328500d82", 700447, 404),
WINDEMO1("totaldistortion", "Great Big Demo", "TD_DEMON.EXE", "t:028063f8a752f5ffda7477f328500d82", 700447, 400),
@@ -6390,9 +6390,9 @@ static const DirectorGameDescription gameDescriptions[] = {
// From Ultra Gameplayers #98
MACDEMO2("aol", "", "WELCOME", "r:06ed90580400cd9e263525f84c8075fd", 705417,
- "Installer", "h:b5b0f62a80b345e4e25063bffbdb9f0a", 5854464, 500),
+ "Installer", "f:b5b0f62a80b345e4e25063bffbdb9f0a", 5854464, 500),
WINDEMO2("aol", "", "WELCOME.EXE", "t:9ba379aef91e4ad2c8c8a66f78a33db8", 5417967,
- "SETUP.EXE", "h:26b91350fc6ba73a6f76b73f3c781415", 21106117, 501),
+ "SETUP.EXE", "f:26b91350fc6ba73a6f76b73f3c781415", 21106117, 501),
MACDEMO1("aptesampler", "", "Product Sampler", "aa6a527c1314eae56f00d9b9fb587683", 719033, 501),
WINDEMO1t("aptesampler", "", "APTE32.EXE", "a42cd36dd6224f4382f676f946e48914", 1410355, 501),
@@ -6821,7 +6821,7 @@ static const DirectorGameDescription gameDescriptions[] = {
WINGAME2f_l("gadgetpaf", "", "GADGET/GADGET.EXE", "1a7acbba10a7246ba58c1d53fc7203f5", 1411507,
"DATA/TEXT_E.Cxt", "056ab5419f65fab51fa50c28ad360e76", 561824, Common::ES_ESP, 501, GF_32BPP),
WINDEMO2f_l("gadgetpaf", "Demo", "GADGET.exe", "t:7e393434e06153a6413baf1b448f440e", 1647502,
- "TEXT_E.Cxt", "h:f2efb64dc4e3e1ea705309426fff7824", 152776, Common::ES_ESP, 501, GF_32BPP),
+ "TEXT_E.Cxt", "f:f2efb64dc4e3e1ea705309426fff7824", 152776, Common::ES_ESP, 501, GF_32BPP),
MACGAME1("gamingmegapac", "", "Gaming MegaPac", "b861188374e80b1184e7f96dcab4fc9b", 719005, 501),
@@ -7502,13 +7502,13 @@ static const DirectorGameDescription gameDescriptions[] = {
// Mac version requires installation, 'Install Secrets of the Minds', Installer VISE Lite 3.6
MACGAME2("secretmind", "Disc 1", "Secrets of the Minds", "r:575bc118621e964630087984e463c283", 90895,
- "XBITEMOV/ANAD01.DIR", "h:ed02ee44b196363709d3be9b00623fce", 124730, 500),
+ "XBITEMOV/ANAD01.DIR", "f:ed02ee44b196363709d3be9b00623fce", 124730, 500),
WINGAME2("secretmind", "Disc 1", "Install Secrets of the Mind/Mind.exe", "t:e9cfac3e743c99605893a1b5e90a821d", 1412092,
- "XBITEMOV/ANAD01.DIR", "h:ed02ee44b196363709d3be9b00623fce", 124730, 500),
+ "XBITEMOV/ANAD01.DIR", "f:ed02ee44b196363709d3be9b00623fce", 124730, 500),
MACGAME2("secretmind", "Disc 2", "Secrets of the Minds", "r:575bc118621e964630087984e463c283", 90895,
- "XBITEMOV/BLDE01.DIR", "h:e137bdd5e7afe3b68ad8309e78edeb43", 87132, 500),
+ "XBITEMOV/BLDE01.DIR", "f:e137bdd5e7afe3b68ad8309e78edeb43", 87132, 500),
WINGAME2("secretmind", "Disc 2", "Install Secrets of the Mind/Mind.exe", "t:e9cfac3e743c99605893a1b5e90a821d", 1412092,
- "XBITEMOV/BLDE01.DIR", "h:e137bdd5e7afe3b68ad8309e78edeb43", 87132, 500),
+ "XBITEMOV/BLDE01.DIR", "f:e137bdd5e7afe3b68ad8309e78edeb43", 87132, 500),
// Both versions require installation
MACGAME1("secretpaths1", "", "Secret Paths in the Forest", "r:4f0fb528e9c495fd2822ad400178e7a8", 716771, 501),
@@ -7752,9 +7752,9 @@ static const DirectorGameDescription gameDescriptions[] = {
},
MACGAME2("ultragameplayers", "#98", "Start PPC", "r:b69f9cb79da512852ed383a1cfef14b9", 718097,
- "NEW_UGP.Dxr", "h:b6c7ab2e81611d3cf3daa7d4f62b7a9b", 8931668, 501),
+ "NEW_UGP.Dxr", "f:b6c7ab2e81611d3cf3daa7d4f62b7a9b", 8931668, 501),
WINGAME2("ultragameplayers", "#98", "START95.EXE", "t:3504faad6bcbf5eef2ca88be1f618b9e", 1034041,
- "NEW_UGP.Dxr", "h:b6c7ab2e81611d3cf3daa7d4f62b7a9b", 8931668, 501),
+ "NEW_UGP.Dxr", "f:b6c7ab2e81611d3cf3daa7d4f62b7a9b", 8931668, 501),
MACGAME1_l("ursaminorblue", "Hybrid release", "URSA (PPC)", "08166af62693ceab79b28d90d2f6c86b", 106927, Common::JA_JPN, 501),
WINGAME1_l("ursaminorblue", "Hybrid release", "START/UMB_32.EXE", "1a7acbba10a7246ba58c1d53fc7203f5", 1405383, Common::JA_JPN, 501),
@@ -8621,7 +8621,7 @@ static const DirectorGameDescription gameDescriptions[] = {
// Requires installation, Setup.exe/Setup, Installer VISE Lite 3.6
MACGAME1("rockettmilkss", "", "xn--Rockett's got milk-cba45j", "r:b0b0e36586489ca6070d20feeff52fa5", 1194536, 600),
WINGAME2("rockettmilkss", "", "SETUP.EXE", "t:4623015fc4f068dce16877798eff3599", 5299185,
- "SETUP.SCR", "h:6cf2d7908884109d915caba5c2671168", 354934, 600),
+ "SETUP.SCR", "f:6cf2d7908884109d915caba5c2671168", 354934, 600),
WINGAME1t_l("rymdjakten", "Romjakten", "ROMJAKT.EXE", "c4259b2ecfd421bd28f29b8a6ddf42f3", 1522656, Common::NB_NOR, 602),
MACGAME1t_l("rymdjakten", "Romjakten", "Romjakten", "960f8041921e1ca6c0781cb0f17abc25", 1032378, Common::NB_NOR, 602),
@@ -9972,7 +9972,7 @@ static const DirectorGameDescription gameDescriptions[] = {
"unwrap.dxr", "69dd7f79e76af5b0eab89d5ae589f836", 50599487, 800),
WINGAME2("urubonus", "", "DEMO.EXE", "t:e1d0f97d43f0c5cd7a489100ba35f447", 2861430,
- "MOF.DXR", "h:cea5b508833dea38abe41b743b3676cd", 1416050, 850),
+ "MOF.DXR", "f:cea5b508833dea38abe41b743b3676cd", 1416050, 850),
MACGAME1("vug2005", "", "VUGames.osx", "a171b7a952d1ac68ae3cd419d6dfc674", 262042, 850),
WINGAME1("vug2005", "", "VUG_2005.exe", "c163f36141579ee374f7b4b2bddee95a", 2823410, 850),
Commit: c21003d7ea8ea2ca6daaeec3c2f887a52079bb8f
https://github.com/scummvm/scummvm/commit/c21003d7ea8ea2ca6daaeec3c2f887a52079bb8f
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2025-06-17T20:49:05+02:00
Commit Message:
MOHAWK: Change 'h:' md5 prefix in detection tables to f:
Changed paths:
engines/mohawk/detection_tables.h
diff --git a/engines/mohawk/detection_tables.h b/engines/mohawk/detection_tables.h
index 759c75b5384..54ac21b27db 100644
--- a/engines/mohawk/detection_tables.h
+++ b/engines/mohawk/detection_tables.h
@@ -1069,7 +1069,7 @@ static const MohawkGameDescription gameDescriptions[] = {
{
"amazingwriting",
MetaEngineDetection::GAME_NOT_IMPLEMENTED, // Reason for being unsupported,
- AD_ENTRY1s("system.dat", "h:6d65aa2cc7d437bb352aa18c0d63e332", 131),
+ AD_ENTRY1s("system.dat", "f:6d65aa2cc7d437bb352aa18c0d63e332", 131),
Common::FR_FRA,
Common::kPlatformMacintosh,
ADGF_UNSUPPORTED,
More information about the Scummvm-git-logs
mailing list