[Scummvm-git-logs] scummvm master -> 4f49dd7388834f2c74e95b839383dacf1c3233ad

sev- noreply at scummvm.org
Sun May 3 20:10:33 UTC 2026


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

Summary:
67a7a85f01 CHAMBER: Move splash screen hardcoded filenames to detection flags
0f7eebb8a1 CHAMBER: Use AD_ENTRY2s with splash file as second detection key
7762f65ba9 CHAMBER: Default to EGA renderer for EGA variant; expand EGA GUIO options
3e2458fab2 CHAMBER: Address review fixes
4f49dd7388 CHAMBER: Add EGA variant detection entry


Commit: 67a7a85f0127e96f9d738fa87c31bf08efa3b222
    https://github.com/scummvm/scummvm/commit/67a7a85f0127e96f9d738fa87c31bf08efa3b222
Author: Ion Andrei Cristian (lecturatul2017 at gmail.com)
Date: 2026-05-03T22:10:27+02:00

Commit Message:
CHAMBER: Move splash screen hardcoded filenames to detection flags

Changed paths:
  A engines/chamber/detection.h
    engines/chamber/chamber.h
    engines/chamber/detection.cpp
    engines/chamber/kult.cpp


diff --git a/engines/chamber/chamber.h b/engines/chamber/chamber.h
index ebd1ecf9e4b..89880fb6610 100644
--- a/engines/chamber/chamber.h
+++ b/engines/chamber/chamber.h
@@ -27,16 +27,16 @@
 #include "common/serializer.h"
 #include "common/rendermode.h"
 #include "engines/engine.h"
+#include "engines/advancedDetector.h"
 #include "gui/debugger.h"
 #include "chamber/renderer.h"
+#include "chamber/detection.h"
 
 namespace Audio {
 class SoundHandle;
 class PCSpeaker;
 }
 
-struct ADGameDescription;
-
 namespace Chamber {
 
 enum CHAMBERActions {
diff --git a/engines/chamber/detection.cpp b/engines/chamber/detection.cpp
index 4253ea5f706..c67dd320b26 100644
--- a/engines/chamber/detection.cpp
+++ b/engines/chamber/detection.cpp
@@ -21,6 +21,7 @@
 
 #include "base/plugins.h"
 #include "engines/advancedDetector.h"
+#include "chamber/detection.h"
 
 namespace Chamber {
 static const PlainGameDescriptor ChamberGames[] = {
@@ -36,7 +37,7 @@ static const ADGameDescription gameDescriptions[] = {
 		AD_ENTRY1s("ere.pxi", "5aa5bd2d79eefde70675b0b6734944f2", 134358),
 		Common::UNK_LANG, // EN/FR/DE
 		Common::kPlatformDOS,
-		ADGF_UNSTABLE,
+		ADGF_UNSTABLE | GF_SPLASH_PRES | GF_SPLASH_DRAP,
 		GUIO3(GUIO_RENDERHERCGREEN, GUIO_RENDERHERCAMBER, GUIO_RENDERCGA)
 	},
 
@@ -46,10 +47,21 @@ static const ADGameDescription gameDescriptions[] = {
 		AD_ENTRY1s("kult1.pxi", "fc0bd31a3c380338f76ff53e421e47b6", 140537),
 		Common::EN_USA,
 		Common::kPlatformDOS,
-		ADGF_UNSTABLE,
+		ADGF_UNSTABLE | GF_SPLASH_PRESCGA,
 		GUIO3(GUIO_RENDERHERCGREEN, GUIO_RENDERHERCAMBER, GUIO_RENDERCGA)
 	},
 
+	// TODO: add EGA variant once Kult2.pxi MD5 is verified
+	// {
+	// 	"chamber",
+	// 	"EGA",
+	// 	AD_ENTRY1s("Kult2.pxi", "<md5>", <size>),
+	// 	Common::EN_USA,
+	// 	Common::kPlatformDOS,
+	// 	ADGF_UNSTABLE | GF_SPLASH_PRESEGA,
+	// 	GUIO1(GUIO_RENDEREGA)
+	// },
+
 	AD_TABLE_END_MARKER
 };
 } // End of namespace Chamber
diff --git a/engines/chamber/detection.h b/engines/chamber/detection.h
new file mode 100644
index 00000000000..c4d48378529
--- /dev/null
+++ b/engines/chamber/detection.h
@@ -0,0 +1,37 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ *
+ */
+
+#ifndef CHAMBER_DETECTION_H
+#define CHAMBER_DETECTION_H
+
+namespace Chamber {
+
+// Bits 0-14 are free for engine use; ADGF_* flags occupy bits 15-31.
+enum ChamberGameFlags {
+	GF_SPLASH_PRESCGA = (1 << 0), ///< Title screen is PRESCGA.BIN (EN_USA CGA)
+	GF_SPLASH_PRES    = (1 << 1), ///< Title screen is PRES.BIN (multilingual CGA)
+	GF_SPLASH_PRESEGA = (1 << 2), ///< Title screen is PRESEGA.EGA (EGA)
+	GF_SPLASH_DRAP    = (1 << 3), ///< Has DRAP.BIN language selection screen
+};
+
+} // End of namespace Chamber
+
+#endif // CHAMBER_DETECTION_H
diff --git a/engines/chamber/kult.cpp b/engines/chamber/kult.cpp
index 75fd0e9d478..7dda221b70e 100644
--- a/engines/chamber/kult.cpp
+++ b/engines/chamber/kult.cpp
@@ -280,31 +280,48 @@ Common::Error ChamberEngine::init() {
 
 	Graphics::Surface *splash = nullptr;
 
-	if (g_vm->_videoMode == Common::RenderMode::kRenderEGA) {
-		/* EGA title screen — load planar EGA splash (same format as FOND.EGA) */
+	if (_gameDescription->flags & GF_SPLASH_PRESEGA) {
+		/* EGA title screen */
 		splash = ega_loadFond("PRESEGA.EGA");
+		if (!splash) {
+			_shouldQuit = true;
+			return Common::kNoError;
+		}
 		g_vm->_renderer->colorSelect(0x30);
-		if (splash)
+		g_vm->_renderer->backBufferToRealFull();
+	} else if (_gameDescription->flags & GF_SPLASH_PRESCGA) {
+		/* EN_USA CGA title screen */
+		splash = loadSplash("PRESCGA.BIN");
+		if (!splash) {
+			_shouldQuit = true;
+			return Common::kNoError;
+		}
+
+		if (ifgm_loaded) {
+			/*TODO*/
+		}
+
+		if (!isCustomHerc) {
+			g_vm->_renderer->colorSelect(0x30);
 			g_vm->_renderer->backBufferToRealFull();
-	} else {
-		if (g_vm->getLanguage() == Common::EN_USA) {
-			/* Load title screen */
-			splash = loadSplash("PRESCGA.BIN");
-			if (!splash)
-				exitGame();
-
-			if (ifgm_loaded) {
-				/*TODO*/
-			}
 		} else {
-			/* Load title screen */
-			splash = loadSplash("PRES.BIN");
-			if (!splash)
-				exitGame();
+			if (_renderMode == Common::kRenderHercG)
+				g_system->getPaletteManager()->setPalette(Graphics::HGC_G_PALETTE, 0, 2);
+			else
+				g_system->getPaletteManager()->setPalette(Graphics::HGC_A_PALETTE, 0, 2);
+
+			g_vm->_renderer->backBufferToRealFull();
+		}
+	} else {
+		/* Multilingual CGA title screen */
+		splash = loadSplash("PRES.BIN");
+		if (!splash) {
+			_shouldQuit = true;
+			return Common::kNoError;
 		}
 
 		if (!isCustomHerc) {
-			/* Select intense cyan-mageta palette */
+			/* Select intense cyan-magenta palette */
 			g_vm->_renderer->colorSelect(0x30);
 			g_vm->_renderer->backBufferToRealFull();
 		} else {
@@ -328,17 +345,19 @@ Common::Error ChamberEngine::init() {
 	readKeyboardChar();
 
 
-	if (g_vm->getLanguage() == Common::EN_USA) {
+	if (!(_gameDescription->flags & GF_SPLASH_DRAP)) {
 		if (ifgm_loaded) {
 			/*TODO*/
 		}
 
-		/* Force English language */
+		/* Single-language variant — force English */
 		c = 'E';
 	} else {
 		/* Load language selection screen */
-		if (!loadSplash("DRAP.BIN"))
-			exitGame();
+		if (!loadSplash("DRAP.BIN")) {
+			_shouldQuit = true;
+			return Common::kNoError;
+		}
 
 		/* Wait for a keypress and show the language selection screen */
 		clearKeyboard();


Commit: 0f7eebb8a19141f6b1367d05d3f19b3859ae1102
    https://github.com/scummvm/scummvm/commit/0f7eebb8a19141f6b1367d05d3f19b3859ae1102
Author: Ion Andrei Cristian (lecturatul2017 at gmail.com)
Date: 2026-05-03T22:10:27+02:00

Commit Message:
CHAMBER: Use AD_ENTRY2s with splash file as second detection key

Changed paths:
    engines/chamber/detection.cpp


diff --git a/engines/chamber/detection.cpp b/engines/chamber/detection.cpp
index c67dd320b26..bb1ead5e6fa 100644
--- a/engines/chamber/detection.cpp
+++ b/engines/chamber/detection.cpp
@@ -34,7 +34,8 @@ static const ADGameDescription gameDescriptions[] = {
 	{
 		"chamber",
 		"",
-		AD_ENTRY1s("ere.pxi", "5aa5bd2d79eefde70675b0b6734944f2", 134358),
+		AD_ENTRY2s("ere.pxi",  "5aa5bd2d79eefde70675b0b6734944f2", 134358,
+		           "PRES.BIN", nullptr,                              0),
 		Common::UNK_LANG, // EN/FR/DE
 		Common::kPlatformDOS,
 		ADGF_UNSTABLE | GF_SPLASH_PRES | GF_SPLASH_DRAP,
@@ -44,18 +45,20 @@ static const ADGameDescription gameDescriptions[] = {
 	{
 		"chamber",
 		"",
-		AD_ENTRY1s("kult1.pxi", "fc0bd31a3c380338f76ff53e421e47b6", 140537),
+		AD_ENTRY2s("kult1.pxi",   "fc0bd31a3c380338f76ff53e421e47b6", 140537,
+		           "PRESCGA.BIN", nullptr,                              0),
 		Common::EN_USA,
 		Common::kPlatformDOS,
 		ADGF_UNSTABLE | GF_SPLASH_PRESCGA,
 		GUIO3(GUIO_RENDERHERCGREEN, GUIO_RENDERHERCAMBER, GUIO_RENDERCGA)
 	},
 
-	// TODO: add EGA variant once Kult2.pxi MD5 is verified
+	// TODO: add EGA variant once Kult2.pxi and PRESEGA.EGA MD5s are verified
 	// {
 	// 	"chamber",
 	// 	"EGA",
-	// 	AD_ENTRY1s("Kult2.pxi", "<md5>", <size>),
+	// 	AD_ENTRY2s("Kult2.pxi",   "<md5>", <size>,
+	// 	           "PRESEGA.EGA", "<md5>", <size>),
 	// 	Common::EN_USA,
 	// 	Common::kPlatformDOS,
 	// 	ADGF_UNSTABLE | GF_SPLASH_PRESEGA,


Commit: 7762f65ba9ddbbcd8dbed588369aa7632fe7a838
    https://github.com/scummvm/scummvm/commit/7762f65ba9ddbbcd8dbed588369aa7632fe7a838
Author: Ion Andrei Cristian (lecturatul2017 at gmail.com)
Date: 2026-05-03T22:10:27+02:00

Commit Message:
CHAMBER: Default to EGA renderer for EGA variant; expand EGA GUIO options

Changed paths:
    engines/chamber/chamber.cpp
    engines/chamber/detection.cpp


diff --git a/engines/chamber/chamber.cpp b/engines/chamber/chamber.cpp
index 012299811c4..2234c6955f4 100644
--- a/engines/chamber/chamber.cpp
+++ b/engines/chamber/chamber.cpp
@@ -64,6 +64,8 @@ ChamberEngine::ChamberEngine(OSystem *syst, const ADGameDescription *desc)
 	_renderMode = Common::parseRenderMode(ConfMan.get("render_mode"));
 	if (_renderMode == Common::kRenderEGA || _renderMode == Common::kRenderHercG || _renderMode == Common::kRenderHercA)
 		_videoMode = _renderMode;
+	else if (_renderMode == Common::kRenderDefault && Common::checkGameGUIOption(GUIO_RENDEREGA, Common::parseGameGUIOptions(ConfMan.get("guioptions"))))
+		_videoMode = Common::kRenderEGA;
 	else
 		_videoMode = Common::kRenderCGA;
 
diff --git a/engines/chamber/detection.cpp b/engines/chamber/detection.cpp
index bb1ead5e6fa..07c8639191e 100644
--- a/engines/chamber/detection.cpp
+++ b/engines/chamber/detection.cpp
@@ -62,7 +62,7 @@ static const ADGameDescription gameDescriptions[] = {
 	// 	Common::EN_USA,
 	// 	Common::kPlatformDOS,
 	// 	ADGF_UNSTABLE | GF_SPLASH_PRESEGA,
-	// 	GUIO1(GUIO_RENDEREGA)
+	// 	GUIO4(GUIO_RENDERHERCGREEN, GUIO_RENDERHERCAMBER, GUIO_RENDERCGA, GUIO_RENDEREGA)
 	// },
 
 	AD_TABLE_END_MARKER


Commit: 3e2458fab29fafbd515cf8a0b4fb715ab40a75c2
    https://github.com/scummvm/scummvm/commit/3e2458fab29fafbd515cf8a0b4fb715ab40a75c2
Author: Ion Andrei Cristian (lecturatul2017 at gmail.com)
Date: 2026-05-03T22:10:27+02:00

Commit Message:
CHAMBER: Address review fixes

Changed paths:
    engines/chamber/chamber.h
    engines/chamber/detection.cpp
    engines/chamber/detection.h
    engines/chamber/kult.cpp


diff --git a/engines/chamber/chamber.h b/engines/chamber/chamber.h
index 89880fb6610..2559d76b7d4 100644
--- a/engines/chamber/chamber.h
+++ b/engines/chamber/chamber.h
@@ -27,10 +27,9 @@
 #include "common/serializer.h"
 #include "common/rendermode.h"
 #include "engines/engine.h"
-#include "engines/advancedDetector.h"
-#include "gui/debugger.h"
 #include "chamber/renderer.h"
-#include "chamber/detection.h"
+
+struct ADGameDescription;
 
 namespace Audio {
 class SoundHandle;
diff --git a/engines/chamber/detection.cpp b/engines/chamber/detection.cpp
index 07c8639191e..79fdf04e56c 100644
--- a/engines/chamber/detection.cpp
+++ b/engines/chamber/detection.cpp
@@ -35,10 +35,10 @@ static const ADGameDescription gameDescriptions[] = {
 		"chamber",
 		"",
 		AD_ENTRY2s("ere.pxi",  "5aa5bd2d79eefde70675b0b6734944f2", 134358,
-		           "PRES.BIN", nullptr,                              0),
+		           "PRES.BIN", "b8376a81d9ef6d9c5f783c64f718a782",   8005),
 		Common::UNK_LANG, // EN/FR/DE
 		Common::kPlatformDOS,
-		ADGF_UNSTABLE | GF_SPLASH_PRES | GF_SPLASH_DRAP,
+		ADGF_UNSTABLE | GF_SPLASH_PRES | GF_SPLASH2_DRAP,
 		GUIO3(GUIO_RENDERHERCGREEN, GUIO_RENDERHERCAMBER, GUIO_RENDERCGA)
 	},
 
@@ -46,7 +46,7 @@ static const ADGameDescription gameDescriptions[] = {
 		"chamber",
 		"",
 		AD_ENTRY2s("kult1.pxi",   "fc0bd31a3c380338f76ff53e421e47b6", 140537,
-		           "PRESCGA.BIN", nullptr,                              0),
+		           "PRESCGA.BIN", "664a75a95340bde200a2752f54ba7aa7",   5105),
 		Common::EN_USA,
 		Common::kPlatformDOS,
 		ADGF_UNSTABLE | GF_SPLASH_PRESCGA,
diff --git a/engines/chamber/detection.h b/engines/chamber/detection.h
index c4d48378529..085263604f4 100644
--- a/engines/chamber/detection.h
+++ b/engines/chamber/detection.h
@@ -29,7 +29,7 @@ enum ChamberGameFlags {
 	GF_SPLASH_PRESCGA = (1 << 0), ///< Title screen is PRESCGA.BIN (EN_USA CGA)
 	GF_SPLASH_PRES    = (1 << 1), ///< Title screen is PRES.BIN (multilingual CGA)
 	GF_SPLASH_PRESEGA = (1 << 2), ///< Title screen is PRESEGA.EGA (EGA)
-	GF_SPLASH_DRAP    = (1 << 3), ///< Has DRAP.BIN language selection screen
+	GF_SPLASH2_DRAP   = (1 << 3), ///< Has DRAP.BIN language selection screen
 };
 
 } // End of namespace Chamber
diff --git a/engines/chamber/kult.cpp b/engines/chamber/kult.cpp
index 7dda221b70e..9eb8b0ceb1d 100644
--- a/engines/chamber/kult.cpp
+++ b/engines/chamber/kult.cpp
@@ -21,9 +21,11 @@
 
 #include "common/error.h"
 #include "common/system.h"
+#include "engines/advancedDetector.h"
 #include "engines/util.h"
 
 #include "chamber/chamber.h"
+#include "chamber/detection.h"
 #include "chamber/common.h"
 #include "chamber/decompr.h"
 #include "chamber/cga.h"
@@ -345,7 +347,7 @@ Common::Error ChamberEngine::init() {
 	readKeyboardChar();
 
 
-	if (!(_gameDescription->flags & GF_SPLASH_DRAP)) {
+	if (!(_gameDescription->flags & GF_SPLASH2_DRAP)) {
 		if (ifgm_loaded) {
 			/*TODO*/
 		}


Commit: 4f49dd7388834f2c74e95b839383dacf1c3233ad
    https://github.com/scummvm/scummvm/commit/4f49dd7388834f2c74e95b839383dacf1c3233ad
Author: Ion Andrei Cristian (lecturatul2017 at gmail.com)
Date: 2026-05-03T22:10:27+02:00

Commit Message:
CHAMBER: Add EGA variant detection entry

Changed paths:
    engines/chamber/detection.cpp


diff --git a/engines/chamber/detection.cpp b/engines/chamber/detection.cpp
index 79fdf04e56c..58c883fe9ea 100644
--- a/engines/chamber/detection.cpp
+++ b/engines/chamber/detection.cpp
@@ -53,17 +53,16 @@ static const ADGameDescription gameDescriptions[] = {
 		GUIO3(GUIO_RENDERHERCGREEN, GUIO_RENDERHERCAMBER, GUIO_RENDERCGA)
 	},
 
-	// TODO: add EGA variant once Kult2.pxi and PRESEGA.EGA MD5s are verified
-	// {
-	// 	"chamber",
-	// 	"EGA",
-	// 	AD_ENTRY2s("Kult2.pxi",   "<md5>", <size>,
-	// 	           "PRESEGA.EGA", "<md5>", <size>),
-	// 	Common::EN_USA,
-	// 	Common::kPlatformDOS,
-	// 	ADGF_UNSTABLE | GF_SPLASH_PRESEGA,
-	// 	GUIO4(GUIO_RENDERHERCGREEN, GUIO_RENDERHERCAMBER, GUIO_RENDERCGA, GUIO_RENDEREGA)
-	// },
+	{
+		"chamber",
+		"EGA",
+		AD_ENTRY2s("Kult2.pxi",   "2f5cea29072e8c16bf4724a0d0a2201d", 142658,
+		           "PRESEGA.EGA", "b0a6474fa95276255f8eb85c12aab031",  32000),
+		Common::EN_USA,
+		Common::kPlatformDOS,
+		ADGF_UNSTABLE | GF_SPLASH_PRESEGA,
+		GUIO4(GUIO_RENDERHERCGREEN, GUIO_RENDERHERCAMBER, GUIO_RENDERCGA, GUIO_RENDEREGA)
+	},
 
 	AD_TABLE_END_MARKER
 };




More information about the Scummvm-git-logs mailing list