[Scummvm-git-logs] scummvm master -> 97c736d1074b74e85b5a73abcbe1ac075aece8d9

sev- noreply at scummvm.org
Wed Apr 2 21:22:22 UTC 2025


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

Summary:
55adb9723e CHAMBER: Adjust portrait rendering position for HGA mode
0e73a27515 CHAMBER: Add HGA Support to cga_PrintChar()
97c736d107 CHAMBER: Fix crash in cga_blitToScreen due to division by zero


Commit: 55adb9723e6487cb598408f1f7b3c79801d48795
    https://github.com/scummvm/scummvm/commit/55adb9723e6487cb598408f1f7b3c79801d48795
Author: Muhammad Nasir Bilal (naasrbilal at gmail.com)
Date: 2025-04-02T23:22:18+02:00

Commit Message:
CHAMBER: Adjust portrait rendering position for HGA mode

Changed paths:
    engines/chamber/script.cpp


diff --git a/engines/chamber/script.cpp b/engines/chamber/script.cpp
index 2dcc9a50105..10471e11482 100644
--- a/engines/chamber/script.cpp
+++ b/engines/chamber/script.cpp
@@ -874,6 +874,13 @@ uint16 SCR_D_DrawPortraitDotEffect(void) {
 	cur_image_end = width * height;
 	int16 count = 0;
 
+	if (g_vm->_videoMode == Common::RenderMode::kRenderHercG) {
+		const int START_X = (HGA_WIDTH / 8 - (2 * CGA_WIDTH) / 8) / 2;
+		const int START_Y = (HGA_HEIGHT - CGA_HEIGHT) / 2;
+		x += START_X;
+		y += START_Y;
+	}
+
 	for (offs = 0; offs != cur_image_end;) {
 		target[CalcXY_p(x + offs % cur_image_size_w, y + offs / cur_image_size_w)] = cur_image_pixels[offs]; // TODO check this
 


Commit: 0e73a275150827a8a74681b41a0ccdc0bfe0ad9a
    https://github.com/scummvm/scummvm/commit/0e73a275150827a8a74681b41a0ccdc0bfe0ad9a
Author: Muhammad Nasir Bilal (naasrbilal at gmail.com)
Date: 2025-04-02T23:22:18+02:00

Commit Message:
CHAMBER: Add HGA Support to cga_PrintChar()

Changed paths:
    engines/chamber/cga.cpp


diff --git a/engines/chamber/cga.cpp b/engines/chamber/cga.cpp
index 047793521d8..052c6182f5a 100644
--- a/engines/chamber/cga.cpp
+++ b/engines/chamber/cga.cpp
@@ -543,18 +543,34 @@ Print a character at current cursor pos, then advance
 void cga_PrintChar(byte c, byte *target) {
 	uint16 i;
 	byte *font = carpc_data + c * g_vm->_fontHeight;
-	uint16 ofs = cga_CalcXY_p(char_draw_coords_x++, char_draw_coords_y); // TODO: hga_calcxy_p doesn't work with this??
-	for (i = 0; i < g_vm->_fontHeight; i++) {
-		c = *font++;
-		c = char_xlat_table[c];
-		target[ofs] = c;
-		ofs ^= g_vm->_line_offset;
-		if ((ofs & g_vm->_line_offset) == 0)
-			ofs += g_vm->_screenBPL;
-	}
 
-	if (target == CGA_SCREENBUFFER)
-		cga_blitToScreen((char_draw_coords_x - 1) * g_vm->_fontWidth, char_draw_coords_y,  g_vm->_fontWidth, g_vm->_fontHeight);
+	if (g_vm->_videoMode == Common::RenderMode::kRenderCGA) {
+		uint16 ofs = cga_CalcXY_p(char_draw_coords_x++, char_draw_coords_y);
+		for (i = 0; i < g_vm->_fontHeight; i++) {
+			c = *font++;
+			c = char_xlat_table[c];
+			target[ofs] = c;
+			ofs ^= g_vm->_line_offset;
+			if ((ofs & g_vm->_line_offset) == 0)
+				ofs += g_vm->_screenBPL;
+		}
+
+		if (target == CGA_SCREENBUFFER)
+			cga_blitToScreen((char_draw_coords_x - 1) * g_vm->_fontWidth, char_draw_coords_y,  g_vm->_fontWidth, g_vm->_fontHeight);
+
+	} else if (g_vm->_videoMode == Common::RenderMode::kRenderHercG) {
+		const int16 START_X = char_draw_coords_x++ + (HGA_WIDTH / 8 - (2 * CGA_WIDTH) / 8) / 2; // x + 5
+		const int16 START_Y = char_draw_coords_y + (HGA_HEIGHT - CGA_HEIGHT) / 2;               // y + 74
+		for (i = 0; i < g_vm->_fontHeight; i++) {
+			uint16 ofs = HGA_CalcXY_p(START_X, START_Y + i);
+			c = *font++;
+			c = char_xlat_table[c];
+			target[ofs] = c;
+		}
+
+		if (target == CGA_SCREENBUFFER)
+			cga_blitToScreen(START_X, START_Y, g_vm->_fontWidth, g_vm->_fontHeight);
+	}
 }
 
 


Commit: 97c736d1074b74e85b5a73abcbe1ac075aece8d9
    https://github.com/scummvm/scummvm/commit/97c736d1074b74e85b5a73abcbe1ac075aece8d9
Author: Muhammad Nasir Bilal (naasrbilal at gmail.com)
Date: 2025-04-02T23:22:18+02:00

Commit Message:
CHAMBER: Fix crash in cga_blitToScreen due to division by zero

Changed paths:
    engines/chamber/script.cpp


diff --git a/engines/chamber/script.cpp b/engines/chamber/script.cpp
index 10471e11482..fbd6cd48fa6 100644
--- a/engines/chamber/script.cpp
+++ b/engines/chamber/script.cpp
@@ -885,7 +885,7 @@ uint16 SCR_D_DrawPortraitDotEffect(void) {
 		target[CalcXY_p(x + offs % cur_image_size_w, y + offs / cur_image_size_w)] = cur_image_pixels[offs]; // TODO check this
 
 		if (count % 5 == 0)
-			cga_blitToScreen(offs, 4, 1);
+			cga_blitToScreen(offs, g_vm->_screenPPB, 1);
 
 		offs += step;
 		if (offs > cur_image_end)




More information about the Scummvm-git-logs mailing list