[Scummvm-git-logs] scummvm master -> 9e8a17e736e16f1aac31f16eac94ec15eb1c3c36

neuromancer noreply at scummvm.org
Sat Jun 15 12:39:09 UTC 2024


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:
fed139dd92 FREESCAPE: fixes for zx release of castle
6b7e2c545a NEWS: added freescape changes
d7daf457f9 FREESCAPE: first pass on the detection tables to add missing data
9e8a17e736 FREESCAPE: second pass on the detection tables to add missing data


Commit: fed139dd92002834d711fbeca74f86e4dac3a9fa
    https://github.com/scummvm/scummvm/commit/fed139dd92002834d711fbeca74f86e4dac3a9fa
Author: neuromancer (gustavo.grieco at gmail.com)
Date: 2024-06-15T14:39:45+02:00

Commit Message:
FREESCAPE: fixes for zx release of castle

Changed paths:
    engines/freescape/games/castle/zx.cpp
    engines/freescape/loaders/8bitBinaryLoader.cpp


diff --git a/engines/freescape/games/castle/zx.cpp b/engines/freescape/games/castle/zx.cpp
index e1f164b611d..0d11fe9e2f9 100644
--- a/engines/freescape/games/castle/zx.cpp
+++ b/engines/freescape/games/castle/zx.cpp
@@ -54,13 +54,17 @@ void CastleEngine::loadAssetsZXFullGame() {
 
 	//loadMessagesFixedSize(&file, 0x4bc + 1, 16, 27);
     loadFonts(kFreescapeCastleFont, 59);
-    loadMessagesVariableSize(&file, 0x4bc, 84 - 13);
+    loadMessagesVariableSize(&file, 0x4bd, 71);
 
     load8bitBinary(&file, 0x6a3b, 16);
 	loadSpeakerFxZX(&file, 0xc91, 0xccd);
 
-	for (auto &it : _areaMap)
+	for (auto &it : _areaMap) {
 		it._value->addStructure(_areaMap[255]);
+		for (int16 id = 214; id < 228; id++) {
+			it._value->addObjectFromArea(id, _areaMap[255]);
+		}
+	}
 
 	_areaMap[1]->addFloor();
 	_areaMap[2]->addFloor();
diff --git a/engines/freescape/loaders/8bitBinaryLoader.cpp b/engines/freescape/loaders/8bitBinaryLoader.cpp
index 0f9ee590264..3bf23a60718 100644
--- a/engines/freescape/loaders/8bitBinaryLoader.cpp
+++ b/engines/freescape/loaders/8bitBinaryLoader.cpp
@@ -425,10 +425,17 @@ Object *FreescapeEngine::load8bitObject(Common::SeekableReadStream *file) {
 	case kEntranceType: {
 		debugC(1, kFreescapeDebugParser, "rotation: %f %f %f", v.x(), v.y(), v.z());
 		if (byteSizeOfObject > 0) {
-			// TODO: there is something here
-			debugC(1, kFreescapeDebugParser, "Warning: extra %d bytes in entrance", byteSizeOfObject);
-			while (byteSizeOfObject--) {
-				debugC(1, kFreescapeDebugParser, "b: %x", readField(file, 8));
+			if (!isCastle()) {
+				debugC(1, kFreescapeDebugParser, "Warning: extra %d bytes in entrance", byteSizeOfObject);
+				while (byteSizeOfObject--)
+					debugC(1, kFreescapeDebugParser, "b: %x", readField(file, 8));
+			} else {
+				FCLInstructionVector instructions;
+				Common::String conditionSource;
+				Common::Array<uint16> conditionArray = readArray(file, byteSizeOfObject);
+				conditionSource = detokenise8bitCondition(conditionArray, instructions, isAmiga() || isAtariST());
+				debugC(1, kFreescapeDebugParser, "Entrance condition:");
+				debugC(1, kFreescapeDebugParser, "%s", conditionSource.c_str());
 			}
 			byteSizeOfObject = 0;
 		}
@@ -601,7 +608,7 @@ Area *FreescapeEngine::load8bitArea(Common::SeekableReadStream *file, uint16 nco
 		if (isAmiga())
 			name = _messagesList[idx + 51];
 		if (isSpectrum())
-			name = areaNumber == 255 ? "GLOBAL" : _messagesList[idx + 17];
+			name = areaNumber == 255 ? "GLOBAL" : _messagesList[idx + 16];
 		else
 			name = _messagesList[idx + 41];
 


Commit: 6b7e2c545a20d51f59087f49d39d65d24f5cb401
    https://github.com/scummvm/scummvm/commit/6b7e2c545a20d51f59087f49d39d65d24f5cb401
Author: neuromancer (gustavo.grieco at gmail.com)
Date: 2024-06-15T14:39:45+02:00

Commit Message:
NEWS: added freescape changes

Changed paths:
    NEWS.md


diff --git a/NEWS.md b/NEWS.md
index 75d61fad4ad..4ad54496c27 100644
--- a/NEWS.md
+++ b/NEWS.md
@@ -24,6 +24,12 @@ For a more comprehensive changelog of the latest experimental code, see:
   - Fixed glitchy staircase in old Maniac Mansion Mania episodes, caused by
     imperfect pathfinding.
 
+ Freescape:
+  - Added support for Atari/Amiga releases of Dark Side
+  - Improved handling of close colinear surfaces
+  - Added "authentic graphics" mode
+  - Fixed several glitches in the different render modes
+
  MM:
    - Added MT32/LAPC-1 support for Xeen engine.
    - Fixed Xeen regression which caused some sound effects to stop abruptly.


Commit: d7daf457f927cb5c2d64b54751f8daaefbfac8bd
    https://github.com/scummvm/scummvm/commit/d7daf457f927cb5c2d64b54751f8daaefbfac8bd
Author: neuromancer (gustavo.grieco at gmail.com)
Date: 2024-06-15T14:39:45+02:00

Commit Message:
FREESCAPE: first pass on the detection tables to add missing data

Changed paths:
    engines/freescape/detection.cpp


diff --git a/engines/freescape/detection.cpp b/engines/freescape/detection.cpp
index b4ff2934be1..8fb93d43c85 100644
--- a/engines/freescape/detection.cpp
+++ b/engines/freescape/detection.cpp
@@ -39,6 +39,7 @@ static const PlainGameDescriptor freescapeGames[] = {
 
 static const ADGameDescription gameDescriptions[] = {
 	// Original Freescape games
+	// Driller
 	{
 		"driller",
 		"",
@@ -49,7 +50,7 @@ static const ADGameDescription gameDescriptions[] = {
 		Common::EN_ANY,
 		Common::kPlatformZX,
 		GF_ZX_RETAIL,
-		GUIO2(GUIO_NOMIDI, GAMEOPTION_AUTOMATIC_DRILLING)
+		GUIO3(GUIO_NOMIDI, GUIO_RENDERZX, GAMEOPTION_AUTOMATIC_DRILLING)
 	},
 	{
 		"driller",
@@ -61,7 +62,7 @@ static const ADGameDescription gameDescriptions[] = {
 		Common::EN_ANY,
 		Common::kPlatformZX,
 		GF_ZX_DISC,
-		GUIO2(GUIO_NOMIDI, GAMEOPTION_AUTOMATIC_DRILLING)
+		GUIO3(GUIO_NOMIDI, GUIO_RENDERZX, GAMEOPTION_AUTOMATIC_DRILLING)
 	},
 	{
 		"driller",
@@ -73,7 +74,7 @@ static const ADGameDescription gameDescriptions[] = {
 		Common::EN_ANY,
 		Common::kPlatformZX,
 		GF_ZX_BUDGET,
-		GUIO2(GUIO_NOMIDI, GAMEOPTION_AUTOMATIC_DRILLING)
+		GUIO3(GUIO_NOMIDI,  GUIO_RENDERZX, GAMEOPTION_AUTOMATIC_DRILLING)
 	},
 	{
 		"driller",
@@ -85,7 +86,7 @@ static const ADGameDescription gameDescriptions[] = {
 		Common::EN_ANY,
 		Common::kPlatformZX,
 		ADGF_UNSUPPORTED | ADGF_DEMO,
-		GUIO2(GUIO_NOMIDI, GAMEOPTION_AUTOMATIC_DRILLING)
+		GUIO3(GUIO_NOMIDI,  GUIO_RENDERZX, GAMEOPTION_AUTOMATIC_DRILLING)
 	},
 	{
 		"driller",
@@ -97,7 +98,7 @@ static const ADGameDescription gameDescriptions[] = {
 		Common::EN_ANY,
 		Common::kPlatformAmstradCPC,
 		GF_CPC_RETAIL,
-		GUIO2(GUIO_NOMIDI, GAMEOPTION_AUTOMATIC_DRILLING)
+		GUIO3(GUIO_NOMIDI, GUIO_RENDERCPC, GAMEOPTION_AUTOMATIC_DRILLING)
 	},
 	{
 		"spacestationoblivion",
@@ -108,7 +109,7 @@ static const ADGameDescription gameDescriptions[] = {
 		},
 		Common::EN_ANY,
 		Common::kPlatformC64,
-		ADGF_UNSTABLE,
+		ADGF_UNSUPPORTED,
 		GUIO2(GUIO_NOMIDI, GAMEOPTION_AUTOMATIC_DRILLING)
 	},
 
@@ -121,7 +122,7 @@ static const ADGameDescription gameDescriptions[] = {
 		},
 		Common::EN_ANY,
 		Common::kPlatformC64,
-		ADGF_UNSTABLE,
+		ADGF_UNSUPPORTED,
 		GUIO2(GUIO_NOMIDI, GAMEOPTION_AUTOMATIC_DRILLING)
 	},
 	{
@@ -133,7 +134,7 @@ static const ADGameDescription gameDescriptions[] = {
 		},
 		Common::EN_ANY,
 		Common::kPlatformC64,
-		ADGF_UNSTABLE,
+		ADGF_UNSUPPORTED,
 		GUIO2(GUIO_NOMIDI, GAMEOPTION_AUTOMATIC_DRILLING)
 	},
 	{
@@ -154,6 +155,9 @@ static const ADGameDescription gameDescriptions[] = {
 		{
 			{"DRILLER.EXE", 0, "cafc0ea0d3424640a7723af87f8bfc0b", 17427},
 			{"DRILLE.EXE", 0, "eb7e9e0acb72e30cf6e9ed20a6480e7a", 51944},
+			{"DRILLC.EXE", 0, "908dd1f8732ebcbaece7d8f0cffd8830", 43864},
+			{"DRILLH.EXE", 0, "033d2d45390886d0bff78cf53e83b6ed", 47496},
+			{"DRILLT.EXE", 0, "afce0e5e0ad8c508e0c31c3e0b18b9a5", 51096},
 			AD_LISTEND
 		},
 		Common::EN_ANY,
@@ -171,7 +175,7 @@ static const ADGameDescription gameDescriptions[] = {
 		Common::EN_ANY,
 		Common::kPlatformAtariST,
 		GF_ATARI_RETAIL,
-		GUIO2(GUIO_NOMIDI, GAMEOPTION_AUTOMATIC_DRILLING)
+		GUIO3(GUIO_NOMIDI, GUIO_RENDERATARIST, GAMEOPTION_AUTOMATIC_DRILLING)
 	},
 	{ // Budget release
 		"driller",
@@ -183,7 +187,7 @@ static const ADGameDescription gameDescriptions[] = {
 		Common::EN_ANY,
 		Common::kPlatformAtariST,
 		GF_ATARI_BUDGET,
-		GUIO2(GUIO_NOMIDI, GAMEOPTION_AUTOMATIC_DRILLING)
+		GUIO3(GUIO_NOMIDI, GUIO_RENDERATARIST, GAMEOPTION_AUTOMATIC_DRILLING)
 	},
 	{ // Virtual Worlds release
 		"driller",
@@ -196,7 +200,7 @@ static const ADGameDescription gameDescriptions[] = {
 		Common::EN_ANY,
 		Common::kPlatformAtariST,
 		ADGF_UNSUPPORTED,
-		GUIO2(GUIO_NOMIDI, GAMEOPTION_AUTOMATIC_DRILLING)
+		GUIO3(GUIO_NOMIDI, GUIO_RENDERATARIST, GAMEOPTION_AUTOMATIC_DRILLING)
 	},
 	{
 		"driller",
@@ -209,7 +213,7 @@ static const ADGameDescription gameDescriptions[] = {
 		Common::EN_ANY,
 		Common::kPlatformAmiga,
 		GF_AMIGA_RETAIL,
-		GUIO2(GUIO_NOMIDI, GAMEOPTION_AUTOMATIC_DRILLING)
+		GUIO3(GUIO_NOMIDI, GUIO_RENDERAMIGA, GAMEOPTION_AUTOMATIC_DRILLING)
 	},
 	{
 		"driller",
@@ -222,7 +226,7 @@ static const ADGameDescription gameDescriptions[] = {
 		Common::EN_ANY,
 		Common::kPlatformAmiga,
 		GF_AMIGA_BUDGET,
-		GUIO2(GUIO_NOMIDI, GAMEOPTION_AUTOMATIC_DRILLING)
+		GUIO3(GUIO_NOMIDI, GUIO_RENDERAMIGA, GAMEOPTION_AUTOMATIC_DRILLING)
 	},
 	{
 		"driller",
@@ -236,7 +240,7 @@ static const ADGameDescription gameDescriptions[] = {
 		Common::EN_ANY,
 		Common::kPlatformDOS,
 		ADGF_DEMO,
-		GUIO2(GUIO_NOMIDI, GAMEOPTION_AUTOMATIC_DRILLING)
+		GUIO3(GUIO_NOMIDI, GUIO_RENDERCGA, GAMEOPTION_AUTOMATIC_DRILLING)
 	},
 	{
 		"driller",
@@ -250,7 +254,7 @@ static const ADGameDescription gameDescriptions[] = {
 		Common::EN_ANY,
 		Common::kPlatformAmiga,
 		ADGF_DEMO,
-		GUIO2(GUIO_NOMIDI, GAMEOPTION_AUTOMATIC_DRILLING)
+		GUIO3(GUIO_NOMIDI, GUIO_RENDERAMIGA, GAMEOPTION_AUTOMATIC_DRILLING)
 	},
 	{
 		"driller",
@@ -264,7 +268,7 @@ static const ADGameDescription gameDescriptions[] = {
 		Common::EN_ANY,
 		Common::kPlatformAmiga,
 		ADGF_DEMO | GF_AMIGA_MAGAZINE_DEMO,
-		GUIO2(GUIO_NOMIDI, GAMEOPTION_AUTOMATIC_DRILLING)
+		GUIO3(GUIO_NOMIDI, GUIO_RENDERAMIGA, GAMEOPTION_AUTOMATIC_DRILLING)
 	},
 	{
 		"driller",
@@ -278,7 +282,7 @@ static const ADGameDescription gameDescriptions[] = {
 		Common::EN_ANY,
 		Common::kPlatformAtariST,
 		ADGF_DEMO | GF_ATARI_MAGAZINE_DEMO,
-		GUIO2(GUIO_NOMIDI, GAMEOPTION_AUTOMATIC_DRILLING)
+		GUIO3(GUIO_NOMIDI, GUIO_RENDERATARIST, GAMEOPTION_AUTOMATIC_DRILLING)
 	},
 	{
 		"driller",
@@ -292,11 +296,11 @@ static const ADGameDescription gameDescriptions[] = {
 		Common::EN_ANY,
 		Common::kPlatformAtariST,
 		ADGF_DEMO,
-		GUIO2(GUIO_NOMIDI, GAMEOPTION_AUTOMATIC_DRILLING)
+		GUIO3(GUIO_NOMIDI, GUIO_RENDERATARIST, GAMEOPTION_AUTOMATIC_DRILLING)
 	},
 	{
 		"driller",
-		"This release requires unpacking, check the wiki for instructions: https://wiki.scummvm.org/index.php?title=Driller/Demos#AtariST_demos",
+		"This demo requires unpacking, check the wiki for instructions: https://wiki.scummvm.org/index.php?title=Driller/Demos#AtariST_demos",
 		{
 			{"driller.prg", 0, "ae9b03e247def6f0793174b1cb4352b5", 1821},
 			{"data", 0, "0c927fbc6c390afd0d0c15b2d7f8766f", 10893},
@@ -306,8 +310,10 @@ static const ADGameDescription gameDescriptions[] = {
 		Common::EN_ANY,
 		Common::kPlatformAtariST,
 		ADGF_UNSUPPORTED | ADGF_DEMO,
-		GUIO2(GUIO_NOMIDI, GAMEOPTION_AUTOMATIC_DRILLING)
+		GUIO3(GUIO_NOMIDI, GUIO_RENDERATARIST, GAMEOPTION_AUTOMATIC_DRILLING)
 	},
+
+	// Dark Side
 	{
 		"darkside",
 		"",
@@ -319,7 +325,7 @@ static const ADGameDescription gameDescriptions[] = {
 		Common::EN_ANY,
 		Common::kPlatformAmiga,
 		ADGF_UNSTABLE,
-		GUIO1(GUIO_NOMIDI)
+		GUIO2(GUIO_NOMIDI, GUIO_RENDERAMIGA)
 	},
 	// Cinemaware release
 	{
@@ -333,12 +339,12 @@ static const ADGameDescription gameDescriptions[] = {
 		Common::EN_ANY,
 		Common::kPlatformAtariST,
 		ADGF_UNSTABLE,
-		GUIO1(GUIO_NOMIDI)
+		GUIO2(GUIO_NOMIDI, GUIO_RENDERATARIST)
 	},
 	// Microstatus release
 	{
 		"darkside",
-		"Encrypted binary with CopyLock",
+		"Encrypted executable with CopyLock",
 		{
 			{"0.DRK", 0, "c19bc332f6550e21e7b8ef79bcf3d99e", 81840},
 			{"1.DRK", 0, "9e700d991054f4393b1ccef706586b5b", 223272},
@@ -347,7 +353,7 @@ static const ADGameDescription gameDescriptions[] = {
 		Common::EN_ANY,
 		Common::kPlatformAtariST,
 		ADGF_UNSUPPORTED,
-		GUIO1(GUIO_NOMIDI)
+		GUIO2(GUIO_NOMIDI, GUIO_RENDERATARIST)
 	},
 	// Stampede Amiga, Issue 1, July 1990
 	{
@@ -361,7 +367,7 @@ static const ADGameDescription gameDescriptions[] = {
 		Common::EN_ANY,
 		Common::kPlatformAmiga,
 		ADGF_UNSUPPORTED,
-		GUIO1(GUIO_NOMIDI)
+		GUIO2(GUIO_NOMIDI, GUIO_RENDERAMIGA)
 	},
 	{
 		"darkside",
@@ -433,7 +439,7 @@ static const ADGameDescription gameDescriptions[] = {
 		Common::EN_ANY,
 		Common::kPlatformZX,
 		ADGF_DEMO,
-		GUIO1(GUIO_NOMIDI)
+		GUIO2(GUIO_NOMIDI, GUIO_RENDERZX)
 	},
 	{
 		"darkside",
@@ -445,7 +451,7 @@ static const ADGameDescription gameDescriptions[] = {
 		Common::EN_ANY,
 		Common::kPlatformZX,
 		ADGF_NO_FLAGS,
-		GUIO1(GUIO_NOMIDI)
+		GUIO2(GUIO_NOMIDI, GUIO_RENDERZX)
 	},
 	{
 		"darkside",
@@ -457,8 +463,9 @@ static const ADGameDescription gameDescriptions[] = {
 		Common::EN_ANY,
 		Common::kPlatformAmstradCPC,
 		ADGF_NO_FLAGS,
-		GUIO2(GUIO_NOMIDI, GAMEOPTION_AUTOMATIC_DRILLING)
+		GUIO2(GUIO_NOMIDI, GUIO_RENDERCPC)
 	},
+	// Total Eclipse
 	{
 		"totaleclipse",
 		"Demo",
@@ -470,7 +477,7 @@ static const ADGameDescription gameDescriptions[] = {
 		Common::EN_ANY,
 		Common::kPlatformAmstradCPC,
 		ADGF_DEMO,
-		GUIO1(GUIO_NOMIDI)
+		GUIO2(GUIO_NOMIDI, GUIO_RENDERCPC)
 	},
 	{
 		"totaleclipse",
@@ -484,7 +491,7 @@ static const ADGameDescription gameDescriptions[] = {
 		Common::EN_ANY,
 		Common::kPlatformZX,
 		ADGF_DEMO | GF_ZX_DEMO_MICROHOBBY,
-		GUIO1(GUIO_NOMIDI)
+		GUIO2(GUIO_NOMIDI, GUIO_RENDERZX)
 	},
 	{
 		"totaleclipse",
@@ -498,7 +505,7 @@ static const ADGameDescription gameDescriptions[] = {
 		Common::EN_ANY,
 		Common::kPlatformZX,
 		ADGF_DEMO | GF_ZX_DEMO_CRASH,
-		GUIO1(GUIO_NOMIDI)
+		GUIO2(GUIO_NOMIDI, GUIO_RENDERZX)
 	},
 	{
 		"totaleclipse",
@@ -510,7 +517,7 @@ static const ADGameDescription gameDescriptions[] = {
 		Common::EN_ANY,
 		Common::kPlatformZX,
 		ADGF_NO_FLAGS,
-		GUIO1(GUIO_NOMIDI)
+		GUIO2(GUIO_NOMIDI, GUIO_RENDERZX)
 	},
 	{
 		"totaleclipse2",
@@ -522,7 +529,7 @@ static const ADGameDescription gameDescriptions[] = {
 		Common::EN_ANY,
 		Common::kPlatformZX,
 		ADGF_TESTING,
-		GUIO1(GUIO_NOMIDI)
+		GUIO2(GUIO_NOMIDI, GUIO_RENDERZX)
 	},
 	{
 		"totaleclipse",
@@ -536,7 +543,7 @@ static const ADGameDescription gameDescriptions[] = {
 		Common::EN_ANY,
 		Common::kPlatformAmstradCPC,
 		ADGF_TESTING,
-		GUIO1(GUIO_NOMIDI)
+		GUIO2(GUIO_NOMIDI, GUIO_RENDERCPC)
 	},
 	{
 		"totaleclipse2",
@@ -550,7 +557,7 @@ static const ADGameDescription gameDescriptions[] = {
 		Common::EN_ANY,
 		Common::kPlatformAmstradCPC,
 		ADGF_TESTING,
-		GUIO1(GUIO_NOMIDI)
+		GUIO2(GUIO_NOMIDI, GUIO_RENDERCPC)
 	},
 	{
 		"totaleclipse",
@@ -568,7 +575,7 @@ static const ADGameDescription gameDescriptions[] = {
 		ADGF_TESTING,
 		GUIO3(GUIO_NOMIDI, GUIO_RENDEREGA, GUIO_RENDERCGA)
 	},
-	{
+	{ // Erbe Software release
 		"totaleclipse",
 		"",
 		{
@@ -595,7 +602,7 @@ static const ADGameDescription gameDescriptions[] = {
 		Common::EN_ANY,
 		Common::kPlatformAmiga,
 		ADGF_UNSUPPORTED,
-		GUIO1(GUIO_NOMIDI)
+		GUIO2(GUIO_NOMIDI, GUIO_RENDERAMIGA)
 	},
 	{
 		"totaleclipse",
@@ -608,7 +615,7 @@ static const ADGameDescription gameDescriptions[] = {
 		Common::EN_ANY,
 		Common::kPlatformAtariST,
 		ADGF_UNSTABLE,
-		GUIO1(GUIO_NOMIDI)
+		GUIO2(GUIO_NOMIDI, GUIO_RENDERATARIST)
 	},
 	{ // Stampede Atari, Issue 7
 		"totaleclipse",
@@ -621,8 +628,10 @@ static const ADGameDescription gameDescriptions[] = {
 		Common::EN_ANY,
 		Common::kPlatformAtariST,
 		ADGF_UNSUPPORTED,
-		GUIO1(GUIO_NOMIDI)
+		GUIO2(GUIO_NOMIDI, GUIO_RENDERATARIST)
 	},
+
+	// Space station oblivion
 	{
 		"spacestationoblivion",
 		"",
@@ -660,6 +669,8 @@ static const ADGameDescription gameDescriptions[] = {
 		GF_ATARI_BUDGET,
 		GUIO2(GUIO_NOMIDI, GAMEOPTION_AUTOMATIC_DRILLING)
 	},
+
+	// Castle Master
 	{
 		"castlemaster",
 		"",
@@ -670,7 +681,7 @@ static const ADGameDescription gameDescriptions[] = {
 		Common::EN_ANY,
 		Common::kPlatformZX,
 		ADGF_UNSTABLE,
-		GUIO1(GUIO_NOMIDI)
+		GUIO2(GUIO_NOMIDI, GUIO_RENDERZX)
 	},
 	{
 		"castlemaster",
@@ -684,7 +695,7 @@ static const ADGameDescription gameDescriptions[] = {
 		Common::EN_ANY,
 		Common::kPlatformDOS,
 		ADGF_UNSTABLE | ADGF_DEMO,
-		GUIO1(GUIO_NOMIDI)
+		GUIO3(GUIO_NOMIDI, GUIO_RENDEREGA, GUIO_RENDERCGA)
 	},
 	{
 		"castlemaster",
@@ -697,7 +708,7 @@ static const ADGameDescription gameDescriptions[] = {
 		Common::EN_ANY,
 		Common::kPlatformAmiga,
 		ADGF_UNSTABLE | ADGF_DEMO,
-		GUIO1(GUIO_NOMIDI)
+		GUIO2(GUIO_NOMIDI, GUIO_RENDERAMIGA)
 	},
 	// Stampede Amiga, Issue 1, July 1990
 	{
@@ -711,7 +722,7 @@ static const ADGameDescription gameDescriptions[] = {
 		Common::EN_ANY,
 		Common::kPlatformAmiga,
 		ADGF_UNSTABLE | ADGF_DEMO,
-		GUIO1(GUIO_NOMIDI)
+		GUIO2(GUIO_NOMIDI, GUIO_RENDERAMIGA)
 	},
 	{
 		"castlemaster",
@@ -727,7 +738,7 @@ static const ADGameDescription gameDescriptions[] = {
 		Common::UNK_LANG,
 		Common::kPlatformDOS,
 		ADGF_UNSTABLE,
-		GUIO1(GUIO_NOMIDI)
+		GUIO3(GUIO_NOMIDI, GUIO_RENDEREGA, GUIO_RENDERCGA)
 	},
 	{
 		"castlemaster",
@@ -743,7 +754,7 @@ static const ADGameDescription gameDescriptions[] = {
 		Common::EN_ANY,
 		Common::kPlatformDOS,
 		ADGF_UNSTABLE,
-		GUIO1(GUIO_NOMIDI)
+		GUIO3(GUIO_NOMIDI, GUIO_RENDEREGA, GUIO_RENDERCGA)
 	},
 	{
 		"castlemaster",
@@ -759,7 +770,7 @@ static const ADGameDescription gameDescriptions[] = {
 		Common::EN_ANY,
 		Common::kPlatformDOS,
 		ADGF_UNSTABLE,
-		GUIO1(GUIO_NOMIDI)
+		GUIO3(GUIO_NOMIDI, GUIO_RENDEREGA, GUIO_RENDERCGA)
 	},
 	{
 		"castlemaster",
@@ -775,7 +786,7 @@ static const ADGameDescription gameDescriptions[] = {
 		Common::ES_ESP,
 		Common::kPlatformDOS,
 		ADGF_UNSTABLE,
-		GUIO1(GUIO_NOMIDI)
+		GUIO3(GUIO_NOMIDI, GUIO_RENDEREGA, GUIO_RENDERCGA)
 	},
 
 	// 3D Construction Kit games
@@ -979,7 +990,7 @@ static const DebugChannelDef debugFlagList[] = {
 class FreescapeMetaEngineDetection : public AdvancedMetaEngineDetection {
 public:
 	FreescapeMetaEngineDetection() : AdvancedMetaEngineDetection(Freescape::gameDescriptions, sizeof(ADGameDescription), Freescape::freescapeGames) {
-		_guiOptions = GUIO8(GUIO_NOMIDI, GAMEOPTION_PRERECORDED_SOUNDS, GAMEOPTION_EXTENDED_TIMER, GAMEOPTION_DISABLE_DEMO_MODE, GAMEOPTION_DISABLE_SENSORS, GAMEOPTION_DISABLE_FALLING, GAMEOPTION_INVERT_Y, GAMEOPTION_AUTHENTIC_GRAPHICS);
+		_guiOptions = GUIO7(GUIO_NOMIDI, GAMEOPTION_EXTENDED_TIMER, GAMEOPTION_DISABLE_DEMO_MODE, GAMEOPTION_DISABLE_SENSORS, GAMEOPTION_DISABLE_FALLING, GAMEOPTION_INVERT_Y, GAMEOPTION_AUTHENTIC_GRAPHICS);
 	}
 
 	const char *getName() const override {


Commit: 9e8a17e736e16f1aac31f16eac94ec15eb1c3c36
    https://github.com/scummvm/scummvm/commit/9e8a17e736e16f1aac31f16eac94ec15eb1c3c36
Author: neuromancer (gustavo.grieco at gmail.com)
Date: 2024-06-15T14:39:45+02:00

Commit Message:
FREESCAPE: second pass on the detection tables to add missing data

Changed paths:
    engines/freescape/detection.cpp


diff --git a/engines/freescape/detection.cpp b/engines/freescape/detection.cpp
index 8fb93d43c85..2db255eb964 100644
--- a/engines/freescape/detection.cpp
+++ b/engines/freescape/detection.cpp
@@ -43,10 +43,7 @@ static const ADGameDescription gameDescriptions[] = {
 	{
 		"driller",
 		"",
-		{
-			{"DRILLER.ZX.DATA", 0, "396c1789a7da3db5058d18eb8d2d35a3", 37590},
-			AD_LISTEND
-		},
+		AD_ENTRY1s("DRILLER.ZX.DATA", "396c1789a7da3db5058d18eb8d2d35a3", 37590),
 		Common::EN_ANY,
 		Common::kPlatformZX,
 		GF_ZX_RETAIL,
@@ -55,10 +52,7 @@ static const ADGameDescription gameDescriptions[] = {
 	{
 		"driller",
 		"",
-		{
-			{"DRILLER.ZX.DATA", 0, "6876fc03e754137f428bd4d5f16452b5", 37888},
-			AD_LISTEND
-		},
+		AD_ENTRY1s("DRILLER.ZX.DATA", "6876fc03e754137f428bd4d5f16452b5", 37888),
 		Common::EN_ANY,
 		Common::kPlatformZX,
 		GF_ZX_DISC,
@@ -67,10 +61,7 @@ static const ADGameDescription gameDescriptions[] = {
 	{
 		"driller",
 		"",
-		{
-			{"DRILLER.ZX.DATA", 0, "2b996ab877f45414f8e2ae4c862746f3", 35214},
-			AD_LISTEND
-		},
+		AD_ENTRY1s("DRILLER.ZX.DATA", "2b996ab877f45414f8e2ae4c862746f3", 35214),
 		Common::EN_ANY,
 		Common::kPlatformZX,
 		GF_ZX_BUDGET,
@@ -79,10 +70,7 @@ static const ADGameDescription gameDescriptions[] = {
 	{
 		"driller",
 		"Not implemented yet",
-		{
-			{"DRILLER.ZX.DATA", 0, "e571795806ed8a30df0fa3109eaa8ffb", 36000},
-			AD_LISTEND
-		},
+		AD_ENTRY1s("DRILLER.ZX.DATA", "e571795806ed8a30df0fa3109eaa8ffb", 36000),
 		Common::EN_ANY,
 		Common::kPlatformZX,
 		ADGF_UNSUPPORTED | ADGF_DEMO,
@@ -91,47 +79,16 @@ static const ADGameDescription gameDescriptions[] = {
 	{
 		"driller",
 		"",
-		{
-			{"DRILL.BIN", 0, "719f5157391e88b2c391c30576340637", 35320},
-			AD_LISTEND
-		},
+		AD_ENTRY1s("DRILL.BIN", "719f5157391e88b2c391c30576340637", 35320),
 		Common::EN_ANY,
 		Common::kPlatformAmstradCPC,
 		GF_CPC_RETAIL,
 		GUIO3(GUIO_NOMIDI, GUIO_RENDERCPC, GAMEOPTION_AUTOMATIC_DRILLING)
 	},
-	{
-		"spacestationoblivion",
-		"",
-		{
-			{"SPACESTATIONOBLIVION.C64.DATA", 0, "85680576865e211f868885e9997a08b8", 22782},
-			AD_LISTEND
-		},
-		Common::EN_ANY,
-		Common::kPlatformC64,
-		ADGF_UNSUPPORTED,
-		GUIO2(GUIO_NOMIDI, GAMEOPTION_AUTOMATIC_DRILLING)
-	},
-
-	{
-		"spacestationoblivion",
-		"",
-		{
-			{"SPACESTATIONOBLIVION.C64.DATA", 0, "2b3537e21b8b871ec074df2962999781", 64514},
-			AD_LISTEND
-		},
-		Common::EN_ANY,
-		Common::kPlatformC64,
-		ADGF_UNSUPPORTED,
-		GUIO2(GUIO_NOMIDI, GAMEOPTION_AUTOMATIC_DRILLING)
-	},
 	{
 		"driller", // Commodore Force - Jan 94
 		"",
-		{
-			{"DRILLER.C64.DATA", 0, "511778d3167ff7504d905df507a03ac5", 63490},
-			AD_LISTEND
-		},
+		AD_ENTRY1s("DRILLER.C64.DATA", "511778d3167ff7504d905df507a03ac5", 63490),
 		Common::EN_ANY,
 		Common::kPlatformC64,
 		ADGF_UNSUPPORTED,
@@ -140,10 +97,7 @@ static const ADGameDescription gameDescriptions[] = {
 	{
 		"driller",
 		"",
-		{
-			{"DRILLER.C64.DATA", 0, "73a6f206e54fb13245fe6d92f60fbb34", 41071},
-			AD_LISTEND
-		},
+		AD_ENTRY1s("DRILLER.C64.DATA", "73a6f206e54fb13245fe6d92f60fbb34", 41071),
 		Common::EN_ANY,
 		Common::kPlatformC64,
 		ADGF_UNSTABLE,
@@ -168,10 +122,7 @@ static const ADGameDescription gameDescriptions[] = {
 	{ // Retail release
 		"driller",
 		"",
-		{
-			{"x.prg", 0, "d002983a8b652f25b18a09425db78c4c", 293159},
-			AD_LISTEND
-		},
+		AD_ENTRY1s("x.prg", "d002983a8b652f25b18a09425db78c4c", 293159),
 		Common::EN_ANY,
 		Common::kPlatformAtariST,
 		GF_ATARI_RETAIL,
@@ -180,10 +131,7 @@ static const ADGameDescription gameDescriptions[] = {
 	{ // Budget release
 		"driller",
 		"",
-		{
-			{"x.prg", 0, "1a79e68e6c2c223c96de0ca2d65149ae", 293062},
-			AD_LISTEND
-		},
+		AD_ENTRY1s("x.prg", "1a79e68e6c2c223c96de0ca2d65149ae", 293062),
 		Common::EN_ANY,
 		Common::kPlatformAtariST,
 		GF_ATARI_BUDGET,
@@ -312,6 +260,56 @@ static const ADGameDescription gameDescriptions[] = {
 		ADGF_UNSUPPORTED | ADGF_DEMO,
 		GUIO3(GUIO_NOMIDI, GUIO_RENDERATARIST, GAMEOPTION_AUTOMATIC_DRILLING)
 	},
+	// Space station oblivion
+	{
+		"spacestationoblivion",
+		"",
+		{
+			{"OBLIVION.EXE", 0, "80783622013750d7c88fd1d35dde919a", 6765},
+			{"DRILLE.EXE", 0, "30edf6be0037b2b0e8c6957df62c2a02", 51944},
+			AD_LISTEND
+		},
+		Common::EN_ANY,
+		Common::kPlatformDOS,
+		ADGF_NO_FLAGS,
+		GUIO4(GUIO_NOMIDI, GUIO_RENDEREGA, GUIO_RENDERCGA, GAMEOPTION_AUTOMATIC_DRILLING)
+	},
+	{
+		"spacestationoblivion",
+		"",
+		AD_ENTRY1s("x.prg", "bf546ee243c38f51d9beb25c203ccb93", 292624),
+		Common::EN_ANY,
+		Common::kPlatformAtariST,
+		ADGF_UNSUPPORTED,
+		GUIO2(GUIO_NOMIDI, GAMEOPTION_AUTOMATIC_DRILLING)
+	},
+	{
+		"spacestationoblivion",
+		"",
+		AD_ENTRY1s("x.prg", "7fc6ef316be4819d88d8031738571a50", 293264),
+		Common::EN_ANY,
+		Common::kPlatformAtariST,
+		GF_ATARI_BUDGET,
+		GUIO2(GUIO_NOMIDI, GAMEOPTION_AUTOMATIC_DRILLING)
+	},
+	{
+		"spacestationoblivion",
+		"",
+		AD_ENTRY1s("SPACESTATIONOBLIVION.C64.DATA", "85680576865e211f868885e9997a08b8", 22782),
+		Common::EN_ANY,
+		Common::kPlatformC64,
+		ADGF_UNSUPPORTED,
+		GUIO2(GUIO_NOMIDI, GAMEOPTION_AUTOMATIC_DRILLING)
+	},
+	{
+		"spacestationoblivion",
+		"",
+		AD_ENTRY1s("SPACESTATIONOBLIVION.C64.DATA", "2b3537e21b8b871ec074df2962999781", 64514),
+		Common::EN_ANY,
+		Common::kPlatformC64,
+		ADGF_UNSUPPORTED,
+		GUIO2(GUIO_NOMIDI, GAMEOPTION_AUTOMATIC_DRILLING)
+	},
 
 	// Dark Side
 	{
@@ -432,10 +430,7 @@ static const ADGameDescription gameDescriptions[] = {
 	{
 		"darkside",
 		"Demo",
-		{
-			{"DARKSIDE.ZX.DATA", 0, "0e4d9b6e64ff24801272ff0b18a3caab", 29182},
-			AD_LISTEND
-		},
+		AD_ENTRY1s("DARKSIDE.ZX.DATA", "0e4d9b6e64ff24801272ff0b18a3caab", 29182),
 		Common::EN_ANY,
 		Common::kPlatformZX,
 		ADGF_DEMO,
@@ -444,10 +439,7 @@ static const ADGameDescription gameDescriptions[] = {
 	{
 		"darkside",
 		"",
-		{
-			{"DARKSIDE.ZX.DATA", 0, "e840db278f1256d1d3a1a34d49644aee", 34460},
-			AD_LISTEND
-		},
+		AD_ENTRY1s("DARKSIDE.ZX.DATA", "e840db278f1256d1d3a1a34d49644aee", 34460),
 		Common::EN_ANY,
 		Common::kPlatformZX,
 		ADGF_NO_FLAGS,
@@ -456,10 +448,7 @@ static const ADGameDescription gameDescriptions[] = {
 	{
 		"darkside",
 		"",
-		{
-			{"DARKCODE.BIN", 0, "203ce55b7582c556c811acd6a1cf4ab6", 35385},
-			AD_LISTEND
-		},
+		AD_ENTRY1s("DARKCODE.BIN", "203ce55b7582c556c811acd6a1cf4ab6", 35385),
 		Common::EN_ANY,
 		Common::kPlatformAmstradCPC,
 		ADGF_NO_FLAGS,
@@ -510,10 +499,7 @@ static const ADGameDescription gameDescriptions[] = {
 	{
 		"totaleclipse",
 		"",
-		{
-			{"totaleclipse.zx.data", 0, "5bc0c4ff50407d16bb409776eda7f4a8", 36055},
-			AD_LISTEND
-		},
+		AD_ENTRY1s("totaleclipse.zx.data", "5bc0c4ff50407d16bb409776eda7f4a8", 36055),
 		Common::EN_ANY,
 		Common::kPlatformZX,
 		ADGF_NO_FLAGS,
@@ -522,10 +508,7 @@ static const ADGameDescription gameDescriptions[] = {
 	{
 		"totaleclipse2",
 		"",
-		{
-			{"totaleclipse.zx.data", 0, "5e80cb6a518d5ab2192b845801b1a32e", 35661},
-			AD_LISTEND
-		},
+		AD_ENTRY1s("totaleclipse.zx.data", "5e80cb6a518d5ab2192b845801b1a32e", 35661),
 		Common::EN_ANY,
 		Common::kPlatformZX,
 		ADGF_TESTING,
@@ -631,53 +614,11 @@ static const ADGameDescription gameDescriptions[] = {
 		GUIO2(GUIO_NOMIDI, GUIO_RENDERATARIST)
 	},
 
-	// Space station oblivion
-	{
-		"spacestationoblivion",
-		"",
-		{
-			{"OBLIVION.EXE", 0, "80783622013750d7c88fd1d35dde919a", 6765},
-			{"DRILLE.EXE", 0, "30edf6be0037b2b0e8c6957df62c2a02", 51944},
-			AD_LISTEND
-		},
-		Common::EN_ANY,
-		Common::kPlatformDOS,
-		ADGF_NO_FLAGS,
-		GUIO4(GUIO_NOMIDI, GUIO_RENDEREGA, GUIO_RENDERCGA, GAMEOPTION_AUTOMATIC_DRILLING)
-	},
-	{
-		"spacestationoblivion",
-		"",
-		{
-			{"x.prg", 0, "bf546ee243c38f51d9beb25c203ccb93", 292624},
-			AD_LISTEND
-		},
-		Common::EN_ANY,
-		Common::kPlatformAtariST,
-		ADGF_UNSUPPORTED,
-		GUIO2(GUIO_NOMIDI, GAMEOPTION_AUTOMATIC_DRILLING)
-	},
-	{
-		"spacestationoblivion",
-		"",
-		{
-			{"x.prg", 0, "7fc6ef316be4819d88d8031738571a50", 293264},
-			AD_LISTEND
-		},
-		Common::EN_ANY,
-		Common::kPlatformAtariST,
-		GF_ATARI_BUDGET,
-		GUIO2(GUIO_NOMIDI, GAMEOPTION_AUTOMATIC_DRILLING)
-	},
-
 	// Castle Master
 	{
 		"castlemaster",
 		"",
-		{
-			{"castlemaster.zx.data", 0, "e2ed83c30cd0ed7119e349d0f677ae91", 36096},
-			AD_LISTEND
-		},
+		AD_ENTRY1s("castlemaster.zx.data", "e2ed83c30cd0ed7119e349d0f677ae91", 36096),
 		Common::EN_ANY,
 		Common::kPlatformZX,
 		ADGF_UNSTABLE,




More information about the Scummvm-git-logs mailing list