[Scummvm-git-logs] scummvm master -> 4463495b838be535cfb16578f2e1b3c779fcd383

sev- noreply at scummvm.org
Tue Jul 21 11:10:19 UTC 2026


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

Summary:
c0b57d20a1 CHAMBER: Enable engine by default and mark games as testing
f9430ab567 CHAMBER: Add engine author to credits
4463495b83 CHAMBER: Final fixes


Commit: c0b57d20a11380e2735caed9168a8503558840a2
    https://github.com/scummvm/scummvm/commit/c0b57d20a11380e2735caed9168a8503558840a2
Author: Ion Andrei Cristian (lecturatul2017 at gmail.com)
Date: 2026-07-21T13:10:14+02:00

Commit Message:
CHAMBER: Enable engine by default and mark games as testing

Flip the build-by-default flag to yes, promote all game variants
(CGA multi-language, US CGA, EGA and the two Amiga builds) from
ADGF_UNSTABLE to ADGF_TESTING, and add the game to NEWS.md under
2026.4.0.

Changed paths:
    NEWS.md
    engines/chamber/configure.engine
    engines/chamber/detection.cpp


diff --git a/NEWS.md b/NEWS.md
index f7e7b15dd65..367ec8a9b17 100644
--- a/NEWS.md
+++ b/NEWS.md
@@ -17,6 +17,7 @@ For a more comprehensive changelog of the latest experimental code, see:
    - Added support for Dracula 2: The Last Sanctuary.
    - Added support for Nancy Drew: The Secret of Shadow Ranch.
    - Added support for Nancy Drew: Curse of Blackmoor Manor.
+   - Added support for Chamber of the Sci-Mutant Priestess.
 
  General:
    - Optimised mixing and rate converters, for better performance.
diff --git a/engines/chamber/configure.engine b/engines/chamber/configure.engine
index 4d7e7b52461..8c290a4f043 100644
--- a/engines/chamber/configure.engine
+++ b/engines/chamber/configure.engine
@@ -1,3 +1,3 @@
 # This file is included from the main "configure" script
 # add_engine [name] [desc] [build-by-default] [subengines] [base games] [deps] [components]
-add_engine chamber "Chamber" no
+add_engine chamber "Chamber" yes
diff --git a/engines/chamber/detection.cpp b/engines/chamber/detection.cpp
index 5fe2df85bd2..9973461f3d7 100644
--- a/engines/chamber/detection.cpp
+++ b/engines/chamber/detection.cpp
@@ -38,7 +38,7 @@ static const ADGameDescription gameDescriptions[] = {
 		           "PRES.BIN", "b8376a81d9ef6d9c5f783c64f718a782",   8005),
 		Common::UNK_LANG, // EN/FR/DE
 		Common::kPlatformDOS,
-		ADGF_UNSTABLE | GF_SPLASH_PRES | GF_SPLASH2_DRAP,
+		ADGF_TESTING | GF_SPLASH_PRES | GF_SPLASH2_DRAP,
 		GUIO3(GUIO_RENDERHERCGREEN, GUIO_RENDERHERCAMBER, GUIO_RENDERCGA)
 	},
 
@@ -49,7 +49,7 @@ static const ADGameDescription gameDescriptions[] = {
 		           "PRESCGA.BIN", "346be1f34fa5278e78bec85f3d349dc3",   5105),
 		Common::EN_USA,
 		Common::kPlatformDOS,
-		ADGF_UNSTABLE | GF_SPLASH_PRESCGA,
+		ADGF_TESTING | GF_SPLASH_PRESCGA,
 		GUIO3(GUIO_RENDERHERCGREEN, GUIO_RENDERHERCAMBER, GUIO_RENDERCGA)
 	},
 
@@ -60,7 +60,7 @@ static const ADGameDescription gameDescriptions[] = {
 		           "PRESEGA.EGA", "c3fb9e55ec789cd6dc67259a48025c4c",  32000),
 		Common::EN_USA,
 		Common::kPlatformDOS,
-		ADGF_UNSTABLE | GF_SPLASH_PRESEGA,
+		ADGF_TESTING | GF_SPLASH_PRESEGA,
 		GUIO4(GUIO_RENDERHERCGREEN, GUIO_RENDERHERCAMBER, GUIO_RENDERCGA, GUIO_RENDEREGA)
 	},
 
@@ -72,7 +72,7 @@ static const ADGameDescription gameDescriptions[] = {
 		           "6.BIN",    "t:926c11afce55dc08e1bb15b1253fd677", 10702),
 		Common::UNK_LANG, // EU EN/FR/DE
 		Common::kPlatformAmiga,
-		ADGF_UNSTABLE,
+		ADGF_TESTING,
 		GUIO1(GUIO_RENDERAMIGA)
 	},
 
@@ -84,7 +84,7 @@ static const ADGameDescription gameDescriptions[] = {
 		           "6.BIN",    "t:3eb1d3f844593949697540de3e74f74a", 16046),
 		Common::EN_USA,
 		Common::kPlatformAmiga,
-		ADGF_UNSTABLE,
+		ADGF_TESTING,
 		GUIO1(GUIO_RENDERAMIGA)
 	},
 


Commit: f9430ab56730667733ce6c7cb744766b12c5869c
    https://github.com/scummvm/scummvm/commit/f9430ab56730667733ce6c7cb744766b12c5869c
Author: Ion Andrei Cristian (lecturatul2017 at gmail.com)
Date: 2026-07-21T13:10:14+02:00

Commit Message:
CHAMBER: Add engine author to credits

Add Ion Andrei Cristian (11-andy-11) to the Chamber credits and
regenerate AUTHORS, gui/credits.h and the credits documentation.

Changed paths:
    AUTHORS
    engines/chamber/credits.pl
    gui/credits.h


diff --git a/AUTHORS b/AUTHORS
index 15f7c88da68..a986f8288ae 100644
--- a/AUTHORS
+++ b/AUTHORS
@@ -148,6 +148,7 @@ ScummVM Team
        Paul Gilbert
 
     Chamber:
+       Ion Andrei Cristian
        Retro-Junk;
        Eugene Sandulenko
 
diff --git a/engines/chamber/credits.pl b/engines/chamber/credits.pl
index f8601f38f53..baa3258b91e 100644
--- a/engines/chamber/credits.pl
+++ b/engines/chamber/credits.pl
@@ -1,4 +1,5 @@
 begin_section("Chamber");
+	add_person("Ion Andrei Cristian", "11-andy-11", "");
 	add_person("Retro-Junk;", "bambarbee", "");
 	add_person("Eugene Sandulenko", "sev", "");
 end_section();
diff --git a/gui/credits.h b/gui/credits.h
index 7faf5d706f4..38d9f0dbd3a 100644
--- a/gui/credits.h
+++ b/gui/credits.h
@@ -193,6 +193,7 @@ static const char *const credits[] = {
 "C0""Paul Gilbert",
 "",
 "C1""Chamber",
+"C0""Ion Andrei Cristian",
 "C0""Retro-Junk;",
 "C0""Eugene Sandulenko",
 "",


Commit: 4463495b838be535cfb16578f2e1b3c779fcd383
    https://github.com/scummvm/scummvm/commit/4463495b838be535cfb16578f2e1b3c779fcd383
Author: Ion Andrei Cristian (lecturatul2017 at gmail.com)
Date: 2026-07-21T13:10:14+02:00

Commit Message:
CHAMBER: Final fixes

- Fix the EGA/Amiga endgame saucer animation, which accumulated the
  previous frames on the linear back buffer instead of clearing them.
- Fix Hercules mouse coordinate mapping: in Hercules mode the picture is
  drawn double-width at a (40, 74) offset on a 720x348 surface, so event
  coordinates are now shifted and halved back into the game's native
  320x200 space, restoring hotspot detection and room navigation.

Changed paths:
    engines/chamber/input.cpp
    engines/chamber/script.cpp


diff --git a/engines/chamber/input.cpp b/engines/chamber/input.cpp
index 0292af36952..2be9fb6debe 100644
--- a/engines/chamber/input.cpp
+++ b/engines/chamber/input.cpp
@@ -202,6 +202,19 @@ void pollInputButtonsOnly() {
 	pollInput();
 }
 
+/* In Hercules mode the picture is drawn double-width at a (40, 74) offset on a
+   720x348 surface, so raw event coordinates must be shifted and halved back
+   into the game's native 320x200 space. */
+static void setCursorFromMouse(const Common::Point &mouse) {
+	if (g_vm->_renderMode == Common::kRenderHercG || g_vm->_renderMode == Common::kRenderHercA) {
+		cursor_x = CLIP<int16>((mouse.x - 40) / 2, 0, 319);
+		cursor_y = CLIP<int16>(mouse.y - 74, 0, 199);
+	} else {
+		cursor_x = mouse.x;
+		cursor_y = mouse.y;
+	}
+}
+
 void pollInput(void) {
 	Common::Event event;
 	while (g_system->getEventManager()->pollEvent(event)) {
@@ -228,13 +241,11 @@ void pollInput(void) {
 			break;
 
 		case Common::EVENT_MOUSEMOVE:
-			cursor_x = event.mouse.x;
-			cursor_y = event.mouse.y;
+			setCursorFromMouse(event.mouse);
 			break;
 
 		case Common::EVENT_LBUTTONDOWN:
-			cursor_x = event.mouse.x;
-			cursor_y = event.mouse.y;
+			setCursorFromMouse(event.mouse);
 			mouseButtons |= 1;
 			break;
 
@@ -243,8 +254,7 @@ void pollInput(void) {
 			break;
 
 		case Common::EVENT_RBUTTONDOWN:
-			cursor_x = event.mouse.x;
-			cursor_y = event.mouse.y;
+			setCursorFromMouse(event.mouse);
 			mouseButtons |= 2;
 			break;
 
diff --git a/engines/chamber/script.cpp b/engines/chamber/script.cpp
index 0d5cfead939..d529d9977e5 100644
--- a/engines/chamber/script.cpp
+++ b/engines/chamber/script.cpp
@@ -2846,6 +2846,8 @@ Copy backbuffer to screen, with added vertical mirror
 void ShowMirrored(uint16 h, uint16 ofs) {
 	uint16 x, ofs2 = ofs;
 
+	bool egaClearAbove = isEgaLikeRenderer();
+
 	/*move 1 line up*/
 	ofs2 ^= g_vm->_line_offset;
 	if ((ofs2 & g_vm->_line_offset) != 0 || g_vm->_line_offset == 0)
@@ -2854,7 +2856,8 @@ void ShowMirrored(uint16 h, uint16 ofs) {
 	while (h--) {
 
 		for (x = 0; x < g_vm->_screenBPL; x++) {
-			frontbuffer[ofs2 + x] = frontbuffer[ofs + x] = backbuffer[ofs + x];
+			frontbuffer[ofs + x] = backbuffer[ofs + x];
+			frontbuffer[ofs2 + x] = egaClearAbove ? 0 : backbuffer[ofs + x];
 			backbuffer[ofs + x] = 0;
 		}
 
@@ -2942,6 +2945,8 @@ static void AnimSaucer(void) {
 		height_prev -= (yy - 1);
 
 		/*scale the saucer*/
+		if (isEgaLikeRenderer())
+			memset(backbuffer, 0, 320 * 200);
 		g_vm->_renderer->zoomInplaceXY(cur_image_pixels, width, height, ww, hh, xx, yy, backbuffer);
 
 		baseofs = g_vm->_renderer->calcXY(0, yy);
@@ -3002,7 +3007,7 @@ static void AnimSaucer(void) {
 		height_prev = height_new;
 
 		waitVBlank();
-		g_system->delayMillis(delay / 250);
+		g_system->delayMillis(delay / 1000);
 		delay += 500;
 	}
 }




More information about the Scummvm-git-logs mailing list