[Scummvm-git-logs] scummvm master -> f5007dae8d10d3f0f4c51283a6c96ec566befd86

moralrecordings noreply at scummvm.org
Mon Sep 14 16:17:38 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:
f5007dae8d FOOL: Add new v2.0.1 variant of Fool's Errand


Commit: f5007dae8d10d3f0f4c51283a6c96ec566befd86
    https://github.com/scummvm/scummvm/commit/f5007dae8d10d3f0f4c51283a6c96ec566befd86
Author: Scott Percival (code at moral.net.au)
Date: 2026-09-15T00:09:40+08:00

Commit Message:
FOOL: Add new v2.0.1 variant of Fool's Errand

Changed paths:
    engines/fool/detection_tables.h
    engines/fool/fool.cpp
    engines/fool/fool.h
    engines/fool/fool_finale.cpp
    engines/fool/fool_game.cpp


diff --git a/engines/fool/detection_tables.h b/engines/fool/detection_tables.h
index 6d990b8d645..283d0ecdd7e 100644
--- a/engines/fool/detection_tables.h
+++ b/engines/fool/detection_tables.h
@@ -43,6 +43,7 @@ const ADGameDescription gameDescriptions[] = {
 	},
 
 	// The Fool's Errand - Version 2.0 (1988-07-25)
+	// Last modified 1988-09-13
 	{
 		"foolserrand",
 		"v2.0",
@@ -53,6 +54,18 @@ const ADGameDescription gameDescriptions[] = {
 		GUIO1(GUIO_NONE)
 	},
 
+	// The Fool's Errand - Version 2.0 (1988-07-25)
+	// Last modified 1989-03-03 - has lowercase filenames, "vers" tag, different string table
+	{
+		"foolserrand",
+		"v2.0.1",
+		AD_ENTRY1s("the fool's errand", "rt:89c3a866c26db6c0716e50a5e98322e8", 178715),
+		Common::EN_ANY,
+		Common::kPlatformMacintosh,
+		ADGF_UNSTABLE,
+		GUIO1(GUIO_NONE)
+	},
+
 	// The Fool's Errand - Version 3.0 (1998-04-01)
 	{
 		"foolserrand",
diff --git a/engines/fool/fool.cpp b/engines/fool/fool.cpp
index f1756f30a63..3a3f4696374 100644
--- a/engines/fool/fool.cpp
+++ b/engines/fool/fool.cpp
@@ -69,6 +69,8 @@ Common::Error FoolEngine::run() {
 		version = kFool11;
 	} else if (versionStr == "v2.0") {
 		version = kFool20;
+	} else if (versionStr == "v2.0.1") {
+		version = kFool201;
 	} else if (versionStr == "v3.0") {
 		version = kFool30;
 	}
diff --git a/engines/fool/fool.h b/engines/fool/fool.h
index 5a2b5039004..d31e91d5975 100644
--- a/engines/fool/fool.h
+++ b/engines/fool/fool.h
@@ -46,8 +46,9 @@ struct FoolGameDescription;
 enum FoolVersion {
 	kFool11 = 1,
 	kFool20 = 2,
-	kFool30 = 4,
-	kFoolDemo10 = 8,
+	kFool201 = 4,
+	kFool30 = 8,
+	kFoolDemo10 = 16,
 };
 
 class FoolEngine : public Engine {
diff --git a/engines/fool/fool_finale.cpp b/engines/fool/fool_finale.cpp
index 1659099a700..d2d884f8973 100644
--- a/engines/fool/fool_finale.cpp
+++ b/engines/fool/fool_finale.cpp
@@ -63,7 +63,7 @@ void FoolPrologue::finaleRun() {
 		}
 	}
 	// 131:00e6
-	for (int i = 6; i <= 9; i++) {
+	for (int16 i = 6; i <= 9; i++) {
 		setPortBitsToPage(i);
 		fillRect(0, 0, SCREEN_HEIGHT, SCREEN_WIDTH, 0);
 		// 131:0110
@@ -240,7 +240,7 @@ void FoolPrologue::finaleRun() {
 			finaleDrawWind(windCount);
 		}
 		// 131:07ea
-		for (int i = 1; i <= windCount; i++) {
+		for (int16 i = 1; i <= windCount; i++) {
 			finaleDrawWind(i);
 			_rain[i].xPos += _rain[i].veloc;
 
diff --git a/engines/fool/fool_game.cpp b/engines/fool/fool_game.cpp
index 2757217eb35..5de97f4ec11 100644
--- a/engines/fool/fool_game.cpp
+++ b/engines/fool/fool_game.cpp
@@ -41,6 +41,7 @@ namespace Fool {
 
 // v1.1 - original release, single-density disks, different about menu
 // v2.0 - fixes full-screen rendering on higher-resolution displays, new about menu, can disable sounds
+// v2.0.1 - labelled as v2.0, but was recompiled and has slight changes. Has a "vers" tag in the resource fork and lowercase filenames.
 // v3.0 - newer ZBasic, changed a few graphics assets, removed custom menu font and sounds for compatibility
 
 
@@ -54,6 +55,10 @@ static const int fool20ZStrOffset[] = {
 	102, 78, 103, 191, 207, 209, 213, 215, 223, 260, 279, 301, 336, 362, 345, 18, 22, 6, 3, 0, 0
 };
 
+static const int fool201ZStrOffset[] = {
+	102, 78, 103, 184, 200, 202, 206, 208, 216, 253, 272, 294, 329, 355, 338, 13, 17, 81, 3, 0, 0
+};
+
 static const int fool30ZStrOffset[] = {
 	97, 73, 98, 161, 177, 179, 183, 185, 193, 230, 251, 273, 308, 334, 317, 8, 12, 76, 3, 0, 0
 };
@@ -168,6 +173,9 @@ void FoolGame::run() {
 		fontChicago = 255;
 		_cardsMaxScore = 666;
 		break;
+	case kFool201:
+		_zstrOffset = fool201ZStrOffset;
+		break;
 	case kFool20:
 	default:
 		_zstrOffset = fool20ZStrOffset;




More information about the Scummvm-git-logs mailing list