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

sluicebox 22204938+sluicebox at users.noreply.github.com
Mon Aug 9 21:42:08 UTC 2021


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

Summary:
af7d05999e SCI: Add SQ1 option to enable bearded musicians


Commit: af7d05999e944ffc446078054ed3b8a7a347e228
    https://github.com/scummvm/scummvm/commit/af7d05999e944ffc446078054ed3b8a7a347e228
Author: sluicebox (22204938+sluicebox at users.noreply.github.com)
Date: 2021-08-09T16:40:38-05:00

Commit Message:
SCI: Add SQ1 option to enable bearded musicians

Adds a game option to enable the original graphics that Sierra
disabled for legal reasons but still included.

Trac #12773

Changed paths:
    common/gui_options.cpp
    common/gui_options.h
    engines/sci/detection.cpp
    engines/sci/detection.h
    engines/sci/detection_tables.h
    engines/sci/resource/resource.cpp


diff --git a/common/gui_options.cpp b/common/gui_options.cpp
index 2941fbaa0d..6cf846de17 100644
--- a/common/gui_options.cpp
+++ b/common/gui_options.cpp
@@ -91,6 +91,7 @@ const struct GameOpt {
 	{ GUIO_GAMEOPTIONS13, "gameOptionD" },
 	{ GUIO_GAMEOPTIONS14, "gameOptionE" },
 	{ GUIO_GAMEOPTIONS15, "gameOptionF" },
+	{ GUIO_GAMEOPTIONS16, "gameOptionG" },
 
 	{ GUIO_NONE, nullptr }
 };
diff --git a/common/gui_options.h b/common/gui_options.h
index d771fd9739..88b0127bfe 100644
--- a/common/gui_options.h
+++ b/common/gui_options.h
@@ -83,6 +83,7 @@
 #define GUIO_GAMEOPTIONS13   "\x3c"
 #define GUIO_GAMEOPTIONS14   "\x3d"
 #define GUIO_GAMEOPTIONS15   "\x3e"
+#define GUIO_GAMEOPTIONS16   "\x3f"
 
 #define GUIO0() (GUIO_NONE)
 #define GUIO1(a) (a)
diff --git a/engines/sci/detection.cpp b/engines/sci/detection.cpp
index 365164d2db..71a625aaa7 100644
--- a/engines/sci/detection.cpp
+++ b/engines/sci/detection.cpp
@@ -316,6 +316,17 @@ static const ADExtraGuiOptionsMap optionsList[] = {
 		}
 	},
 
+	// SQ1: Enable graphics that were disabled for legal reasons
+	{
+		GAMEOPTION_SQ1_BEARDED_MUSICIANS,
+		{
+			_s("Enable bearded musicians"),
+			_s("Enable graphics that were disabled for legal reasons"),
+			"enable_bearded_musicians",
+			false
+		}
+	},
+
 	AD_EXTRA_GUI_OPTIONS_TERMINATOR
 };
 
diff --git a/engines/sci/detection.h b/engines/sci/detection.h
index ba3c3cf950..118bdd3cee 100644
--- a/engines/sci/detection.h
+++ b/engines/sci/detection.h
@@ -42,6 +42,7 @@ namespace Sci {
 #define GAMEOPTION_UPSCALE_VIDEOS           GUIO_GAMEOPTIONS13
 #define GAMEOPTION_RGB_RENDERING            GUIO_GAMEOPTIONS14
 #define GAMEOPTION_PALETTE_MODS             GUIO_GAMEOPTIONS15
+#define GAMEOPTION_SQ1_BEARDED_MUSICIANS    GUIO_GAMEOPTIONS16
 
 enum SciGameId {
 	GID_ASTROCHICKEN,
diff --git a/engines/sci/detection_tables.h b/engines/sci/detection_tables.h
index d618f6dfd9..3e22b7ffbe 100644
--- a/engines/sci/detection_tables.h
+++ b/engines/sci/detection_tables.h
@@ -4933,6 +4933,13 @@ static const struct ADGameDescription SciGameDescriptions[] = {
 		AD_LISTEND},
 		Common::EN_ANY, Common::kPlatformMacintosh, ADGF_MACRESFORK, GUIO1(GUIO_NONE)	},
 
+#define GUIO_SQ1_ENGLISH_PC GUIO6(GUIO_NOSPEECH,                 \
+                                  GAMEOPTION_PREFER_DIGITAL_SFX, \
+                                  GAMEOPTION_ORIGINAL_SAVELOAD,  \
+                                  GAMEOPTION_MIDI_MODE,          \
+                                  GAMEOPTION_RGB_RENDERING,      \
+                                  GAMEOPTION_SQ1_BEARDED_MUSICIANS)
+
 	// Space Quest 1 VGA Remake - English Amiga (from www.back2roots.org)
 	// SCI interpreter version 1.000.510 (just a guess)
 	{"sq1sci", "SCI", {
@@ -4957,7 +4964,7 @@ static const struct ADGameDescription SciGameDescriptions[] = {
 		{"resource.003", 0, "c47600e50c6fc591957ae0c5020ee7b8", 1213262},
 		{"resource.004", 0, "e19ea4ad131472f9238590f2e1d40289", 1203051},
 		AD_LISTEND},
-		Common::EN_ANY, Common::kPlatformDOS, 0, GUIO_STD16	},
+		Common::EN_ANY, Common::kPlatformDOS, 0, GUIO_SQ1_ENGLISH_PC },
 
 	// Space Quest 1 VGA Remake - Russian DOS (from ncuxonaT in bug report #10156)
 	// VERSION file reports "2.000"
@@ -5016,7 +5023,9 @@ static const struct ADGameDescription SciGameDescriptions[] = {
 		{"resource.004", 0, "975c6e81194ae6b65e960a248129ecaa", 684119},
 		{"resource.005", 0, "13d96f7905637552c0647175ff816145", 695589},
 		AD_LISTEND},
-		Common::EN_ANY, Common::kPlatformDOS, 0, GUIO_STD16	},
+		Common::EN_ANY, Common::kPlatformDOS, 0, GUIO_SQ1_ENGLISH_PC },
+
+#undef GUIO_SQ1_ENGLISH_PC
 
 	// Space Quest 3 - English Amiga (from www.back2roots.org)
 	// SCI interpreter version 0.000.453 (just a guess)
diff --git a/engines/sci/resource/resource.cpp b/engines/sci/resource/resource.cpp
index 3b5020b48b..9af85d61a9 100644
--- a/engines/sci/resource/resource.cpp
+++ b/engines/sci/resource/resource.cpp
@@ -22,6 +22,7 @@
 
 // Resource library
 
+#include "common/config-manager.h"
 #include "common/file.h"
 #include "common/fs.h"
 #include "common/macresman.h"
@@ -1574,6 +1575,18 @@ bool ResourceManager::isBlacklistedPatch(const ResourceId &resId) const {
 			g_sci->getPlatform() == Common::kPlatformDOS &&
 			resId.getType() == kResourceTypeSound &&
 			resId.getNumber() == 1;
+	case GID_SQ1:
+		// In the SCI remake of SQ1, the bearded musicians at the bar in Kerona
+		//  were removed for legal reasons. Sierra still included them, but the
+		//  real graphics were suppressed with patch files that shrunk the
+		//  guitarists to 13 pixels and replaced the drummer with an alien and
+		//  the Sierra logo. We allow users to enable the original graphics,
+		//  which we do by simply ignoring the patch files. In later versions
+		//  the musicians were completely removed from the game scripts.
+		return resId.getType() == kResourceTypeView &&
+			(resId.getNumber() == 433 || resId.getNumber() == 533) &&
+			ConfMan.getBool("enable_bearded_musicians") &&
+			testResource(resId); // ensure that the original view exists, just to be safe
 	default:
 		return false;
 	}




More information about the Scummvm-git-logs mailing list