[Scummvm-git-logs] scummvm master -> 298a511da5045d9a0296059ab65ba5e05ea47417

dwatteau noreply at scummvm.org
Fri Mar 28 04:53:15 UTC 2025


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

Summary:
3c20a0cb05 SCUMM: Add detection entry for fan-made Italian translation of Loom FM-TOWNS
4c5242e6c3 SCUMM: Add detection entry for fan-made Italian translation of Indy3 VGA
0f9f9d2568 SCUMM: Add detection entry for fan-made Italian translation of Indy3 TOWNS
298a511da5 SCUMM: Detect and reject the seriously corrupted "ryf's Indy3act" French translation


Commit: 3c20a0cb0509ea66201b8f622be095e257aeb8c3
    https://github.com/scummvm/scummvm/commit/3c20a0cb0509ea66201b8f622be095e257aeb8c3
Author: Donovan Watteau (contrib at dwatteau.fr)
Date: 2025-03-28T03:30:18+01:00

Commit Message:
SCUMM: Add detection entry for fan-made Italian translation of Loom FM-TOWNS

This is the 'tsm/Carmine' translation from OldGamesItalia.

Reported by luke-70it in Trac#15744.

Changed paths:
    devtools/scumm-md5.txt
    engines/scumm/scumm-md5.h


diff --git a/devtools/scumm-md5.txt b/devtools/scumm-md5.txt
index ae997422dd6..e2c2802694b 100644
--- a/devtools/scumm-md5.txt
+++ b/devtools/scumm-md5.txt
@@ -203,6 +203,7 @@ loom	Loom
 #	37f56ceb13e401a7ac7d9e6b37fecaf7	5748	ru	DOS	EGA	EGA	Fan translation	PRCA RuSCUMM v1.1 (uses custom launcher)
 	cd46c9f122272d02bbf79332ff521898	5748	ru	DOS	EGA	EGA	Fan translation	PRCA RuSCUMM v1.2 16 Mar 07
 	303708df4166067540a5c481eceb04ef	7540	ru	FM-TOWNS	FM-TOWNS	-	Fan translation	PRCA RuSCUMM v1.0 16 Mar 07
+	2edee19abf8ab2868b09c5959683dbd4	7540	it	FM-TOWNS	FM-TOWNS	-	Fan translation	tsm/Carmine OldGamesItalia
 
 monkey	The Secret of Monkey Island
 	c666a998af90d81db447eccba9f72c8d	-1	en	Atari	No AdLib	EGA	-
diff --git a/engines/scumm/scumm-md5.h b/engines/scumm/scumm-md5.h
index 97815fd5759..31bfe64ad06 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 Mon Mar 24 17:34:20 2025
+  This file was generated by the md5table tool on Thu Mar 27 21:33:00 2025
   DO NOT EDIT MANUALLY!
  */
 
@@ -170,6 +170,7 @@ static const MD5Table md5table[] = {
 	{ "2d9d46f23cb07bbc90b8ad464d3e4ff8", "atlantis", "Mac", "CD", -1, Common::EN_ANY, Common::kPlatformMacintosh },
 	{ "2e85f7aa054930c692a5b1bed1dfc295", "football2002", "", "Patched", -1, Common::EN_ANY, Common::kPlatformUnknown },
 	{ "2e8a1f76ea33bc5e04347646feee173d", "pajama3", "", "", -1, Common::DE_DEU, Common::kPlatformUnknown },
+	{ "2edee19abf8ab2868b09c5959683dbd4", "loom", "FM-TOWNS", "", 7540, Common::IT_ITA, Common::kPlatformFMTowns },
 	{ "2f7583da072d027057983c43bb3fa53f", "spyfox", "HE 100", "", 49742, Common::EN_GRB, Common::kPlatformWii },
 	{ "2fe369ad70f52a8cf7ad6077ee64f81a", "loom", "EGA", "EGA", 5748, Common::DE_DEU, Common::kPlatformAmiga },
 	{ "303708df4166067540a5c481eceb04ef", "loom", "FM-TOWNS", "", 7540, Common::RU_RUS, Common::kPlatformFMTowns },


Commit: 4c5242e6c384ad47d0e2fdccc6969e404fef878c
    https://github.com/scummvm/scummvm/commit/4c5242e6c384ad47d0e2fdccc6969e404fef878c
Author: Donovan Watteau (contrib at dwatteau.fr)
Date: 2025-03-28T04:04:53+01:00

Commit Message:
SCUMM: Add detection entry for fan-made Italian translation of Indy3 VGA

2007 translation from OldGamesItalia.

Reported by luke-70it in Trac#15744.

Changed paths:
    devtools/scumm-md5.txt
    engines/scumm/scumm-md5.h


diff --git a/devtools/scumm-md5.txt b/devtools/scumm-md5.txt
index e2c2802694b..448e6a9186c 100644
--- a/devtools/scumm-md5.txt
+++ b/devtools/scumm-md5.txt
@@ -161,6 +161,7 @@ indy3	Indiana Jones and the Last Crusade
 
 	f3c4ed6101b4c26c762b2dfb16b1481d	6295	fr	DOS	VGA	VGA	Fan translation	atp-fr.com, v0.9a
 	cb8feea195746e042368e2b738766d8b	-1	ko	DOS	VGA	VGA	Fan translation	ScummVM-Kor
+	e893df6788fc63fef936dd531f9712ec	6295	it	DOS	VGA	VGA	Fan translation	OldGamesItalia (2007)
 	275786f0f6894d1fe1ab5f1d103bb814	6295	ru	DOS	VGA	VGA	Fan translation
 
 loom	Loom
diff --git a/engines/scumm/scumm-md5.h b/engines/scumm/scumm-md5.h
index 31bfe64ad06..66055ef5dc0 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 Thu Mar 27 21:33:00 2025
+  This file was generated by the md5table tool on Fri Mar 28 02:49:06 2025
   DO NOT EDIT MANUALLY!
  */
 
@@ -725,6 +725,7 @@ static const MD5Table md5table[] = {
 	{ "e6cd81b25ab1453a8a6d3482118c391e", "pass", "", "", 7857, Common::EN_ANY, Common::kPlatformDOS },
 	{ "e72bb4c2b613db2cf50f89ff6350e70a", "ft", "", "", -1, Common::ES_ESP, Common::kPlatformUnknown },
 	{ "e781230da44a44e2f0770edb2b3b3633", "maniac", "V2", "V2", 1988, Common::EN_ANY, Common::kPlatformAmiga },
+	{ "e893df6788fc63fef936dd531f9712ec", "indy3", "VGA", "VGA", 6295, Common::IT_ITA, Common::kPlatformDOS },
 	{ "e8d0697906e53fee8b7e9f5652696da8", "atlantis", "", "CD", 11915, Common::JA_JPN, Common::kPlatformDOS },
 	{ "e9271b3d0694c7101f10d675ab7c0133", "freddi4", "HE 99", "", -1, Common::IT_ITA, Common::kPlatformWindows },
 	{ "e94c7cc3686fce406d3c91b5eae5a72d", "zak", "V2", "V2", 1916, Common::EN_ANY, Common::kPlatformAmiga },


Commit: 0f9f9d25688d3ada7e5d03fdfa06447822554a47
    https://github.com/scummvm/scummvm/commit/0f9f9d25688d3ada7e5d03fdfa06447822554a47
Author: Donovan Watteau (contrib at dwatteau.fr)
Date: 2025-03-28T04:05:54+01:00

Commit Message:
SCUMM: Add detection entry for fan-made Italian translation of Indy3 TOWNS

v1.0 2007 translation from Glorifindel at OldGamesItalia/IAGTG.

Reported by luke-70it in Trac#15744.

Changed paths:
    devtools/scumm-md5.txt
    engines/scumm/scumm-md5.h


diff --git a/devtools/scumm-md5.txt b/devtools/scumm-md5.txt
index 448e6a9186c..c83eaf93068 100644
--- a/devtools/scumm-md5.txt
+++ b/devtools/scumm-md5.txt
@@ -163,6 +163,7 @@ indy3	Indiana Jones and the Last Crusade
 	cb8feea195746e042368e2b738766d8b	-1	ko	DOS	VGA	VGA	Fan translation	ScummVM-Kor
 	e893df6788fc63fef936dd531f9712ec	6295	it	DOS	VGA	VGA	Fan translation	OldGamesItalia (2007)
 	275786f0f6894d1fe1ab5f1d103bb814	6295	ru	DOS	VGA	VGA	Fan translation
+	b27efc535df2bc2db998947c15ce57fb	7552	it	FM-TOWNS	FM-TOWNS	-	Fan translation	Glorifindel at OldGamesItalia/IAGTG (2007), v1.0
 
 loom	Loom
 	4dc780f1bc587a193ce8a97652791438	5748	en	Amiga	EGA	EGA	-	Antti Leimi, Andrea Petrucci
diff --git a/engines/scumm/scumm-md5.h b/engines/scumm/scumm-md5.h
index 66055ef5dc0..61146b0a53c 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 Fri Mar 28 02:49:06 2025
+  This file was generated by the md5table tool on Fri Mar 28 03:02:43 2025
   DO NOT EDIT MANUALLY!
  */
 
@@ -577,6 +577,7 @@ static const MD5Table md5table[] = {
 	{ "b100abf7ff83146df50db78dbd5e9cfa", "freddicove", "HE 100", "", 41182, Common::FR_FRA, Common::kPlatformUnknown },
 	{ "b23f7cd7c304d7dff08e92a96120d5b4", "zak", "V1", "V1", 1896, Common::EN_ANY, Common::kPlatformDOS },
 	{ "b250d0f9cc83f80ced56fe11a4fb057c", "maniac", "V2", "V2", 1988, Common::EN_ANY, Common::kPlatformDOS },
+	{ "b27efc535df2bc2db998947c15ce57fb", "indy3", "FM-TOWNS", "", 7552, Common::IT_ITA, Common::kPlatformFMTowns },
 	{ "b289a2a8cbedbf45786e0b4ad2f510f1", "samnmax", "Floppy", "Floppy", -1, Common::IT_ITA, Common::kPlatformDOS },
 	{ "b2bc1df014ca9a563396cce691e9f23a", "socks", "HE 99", "", 13668, Common::FR_FRA, Common::kPlatformWindows },
 	{ "b47be81e39a9710f6f595f7b527b60f8", "puttrace", "HE 99", "", 32923, Common::EN_GRB, Common::kPlatformWindows },


Commit: 298a511da5045d9a0296059ab65ba5e05ea47417
    https://github.com/scummvm/scummvm/commit/298a511da5045d9a0296059ab65ba5e05ea47417
Author: Donovan Watteau (contrib at dwatteau.fr)
Date: 2025-03-28T05:52:47+01:00

Commit Message:
SCUMM: Detect and reject the seriously corrupted "ryf's Indy3act" French translation

This is a very old fan-made translation (circa 2001-2002), if not one
of the first ones, targeted at the VGA release of Indy3.

Problem is that it used very poor tooling (mostly a hex editor and
luck I believe, trying not to change any game offset) and it deeply
corrupted several .LFL files in the process, also inserting bogus
data in some opcodes.

Rejecting it feels safer, we don't want bug reports about a release
having some many corrupted resources.

Checked against a copy I had on a 2004 hard drive… and I do remember
already hitting deep issues when playing this translation, back in
the ScummVM 0.7-0.8 days.

Good news is that alternatives exist (with much better grammar and
spelling along the way), and as far as I can remember, ScummTr was
precisely created for the French ATP team in response to the poor
results of this first attempt.

(Night work sponsored by my sleep paralysis demons.)

Changed paths:
    engines/scumm/metaengine.cpp


diff --git a/engines/scumm/metaengine.cpp b/engines/scumm/metaengine.cpp
index 49f2c4660ce..97970d00d37 100644
--- a/engines/scumm/metaengine.cpp
+++ b/engines/scumm/metaengine.cpp
@@ -365,6 +365,38 @@ Common::Error ScummMetaEngine::createInstance(OSystem *syst, Engine **engine,
 		debug(1, "Using MD5 '%s'", res.md5.c_str());
 	}
 
+	bool foundCorruptedFanTranslation = false;
+
+	// Some fan-made translations used bad tools or techniques which deeply
+	// corrupted the resources of the game, making them buggy or even crash.
+	//
+	// One such example is a French translation of Indy3 VGA (ca. 2001-2002),
+	// known as "ryf's Indy3act", which contains corrupted opcodes in at least
+	// 07.LFL, 34.LFL and 72.LFL.
+	if (res.md5 == "1875b90fade138c9253a8e967007031a" && !strcmp(res.game.gameid, "indy3") && res.game.platform == Common::kPlatformDOS && (res.game.features & GF_OLD256)) {
+		Common::String md5OtherRes;
+		Common::FSNode resFile;
+		Common::File f;
+
+		// Look for 07.LFL, since this translation shares the English 00.LFL file
+		if (searchFSNode(fslist, "07.LFL", resFile))
+			f.open(resFile);
+		if (f.isOpen()) {
+			md5OtherRes = Common::computeStreamMD5AsString(f, kMD5FileSizeLimit);
+			f.close();
+		}
+
+		if (!md5OtherRes.empty() && md5OtherRes == "0f08943f6cda84ae4fb9b1b1af4f3c58")
+			foundCorruptedFanTranslation = true;
+	}
+
+	if (foundCorruptedFanTranslation) {
+		// Like ADGF_UNSUPPORTED, but cheap
+		GUIErrorMessage(_("This fan-made translation is not supported, because it is known to contain\n"
+		                  "corrupted resources that might make it crash or seriously misbehave."));
+		return Common::kUnsupportedGameidError;
+	}
+
 	// We don't support the "Lite" version off puttzoo iOS because it contains
 	// the full game.
 	if (!strcmp(res.game.gameid, "puttzoo") && !strcmp(res.extra, "Lite")) {




More information about the Scummvm-git-logs mailing list