[Scummvm-git-logs] scummvm master -> 2f468045f0e6549c6bee56f31087332c196d6b6e
sev-
noreply at scummvm.org
Sun Apr 26 21:39:21 UTC 2026
This automated email contains information about 4 new commits which have been
pushed to the 'scummvm' repo located at https://api.github.com/repos/scummvm/scummvm .
Summary:
6ab8b9c013 JANITORIAL: Remove trailing spaces
e7f7f417dd CHAMBER: Allowed video renderer selection in the GUI
39bf085060 CHAMBER: Support Amber Hercules rendering
2f468045f0 CHAMBER: Remove pointless global references
Commit: 6ab8b9c013f51c92abd74324c0f4a71378e235e6
https://github.com/scummvm/scummvm/commit/6ab8b9c013f51c92abd74324c0f4a71378e235e6
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2026-04-26T23:39:02+02:00
Commit Message:
JANITORIAL: Remove trailing spaces
Changed paths:
engines/chamber/cga.cpp
diff --git a/engines/chamber/cga.cpp b/engines/chamber/cga.cpp
index 85978fd58bb..703a9e30a5b 100644
--- a/engines/chamber/cga.cpp
+++ b/engines/chamber/cga.cpp
@@ -196,7 +196,7 @@ void CGARenderer::blitToScreen(int16 dx, int16 dy, int16 w, int16 h) {
for (int16 c = 0; c < 4; c++) {
byte color = (colors & 0xC0) >> 6;
colors <<= 2;
- *dst++ = color;
+ *dst++ = color;
}
}
}
@@ -204,7 +204,7 @@ void CGARenderer::blitToScreen(int16 dx, int16 dy, int16 w, int16 h) {
g_system->copyRectToScreen((const byte *)mainSurface->getBasePtr(dx, dy), mainSurface->pitch, dx, dy, w * (0x8 / g_vm->_screenBits), h);
g_system->updateScreen();
return;
- }
+ }
dx = 0;
dy = 0;
w = 320;
@@ -213,46 +213,46 @@ void CGARenderer::blitToScreen(int16 dx, int16 dy, int16 w, int16 h) {
if (mainSurface->w != 720) {
mainSurface->free();
mainSurface->create(720, 348, Graphics::PixelFormat::createFormatCLUT8());
- memset(mainSurface->getPixels(), 0, 720 * 348);
+ memset(mainSurface->getPixels(), 0, 720 * 348);
}
int16 startY = dy;
int16 endY = dy + h;
- if (endY > 200)
+ if (endY > 200)
endY = 200;
- int16 startX_bytes = dx / 4;
- int16 endX_bytes = (dx + w + 3) / 4;
-
- if (endX_bytes > 80)
+ int16 startX_bytes = dx / 4;
+ int16 endX_bytes = (dx + w + 3) / 4;
+
+ if (endX_bytes > 80)
endX_bytes = 80;
for (int y = startY; y < endY; y++) {
uint16 bank = (y % 2) * 8192;
uint16 line = (y / 2) * 80;
-
- int destY = y + 74;
+
+ int destY = y + 74;
int destX = 40 + (startX_bytes * 8);
-
- byte *dst = (byte *)mainSurface->getBasePtr(destX, destY);
-
+
+ byte *dst = (byte *)mainSurface->getBasePtr(destX, destY);
+
for (int x_bytes = startX_bytes; x_bytes < endX_bytes; x_bytes++) {
byte cga_byte = SCREENBUFFER[bank + line + x_bytes];
for (int p = 0; p < 4; p++) {
byte color = (cga_byte >> (6 - p * 2)) & 3;
byte finalColor = (color == 0) ? 0 : 1;
*dst++ = finalColor;
- *dst++ = finalColor;
+ *dst++ = finalColor;
}
}
}
-
+
int renderX = 40 + (startX_bytes * 8);
int renderY = startY + 74;
int renderW = (endX_bytes - startX_bytes) * 8;
int renderH = endY - startY;
-
+
g_system->copyRectToScreen((const byte *)mainSurface->getBasePtr(renderX, renderY), mainSurface->pitch, renderX, renderY, renderW, renderH);
g_system->updateScreen();
return;
@@ -615,7 +615,7 @@ void CGARenderer::printChar(byte c, byte *target) {
} else if (g_vm->_videoMode == Common::RenderMode::kRenderHercG) {
const int16 START_X = char_draw_coords_x++;
- const int16 START_Y = char_draw_coords_y;
+ const int16 START_Y = char_draw_coords_y;
for (i = 0; i < g_vm->_fontHeight; i++) {
uint16 ofs = HGA_CalcXY_p(START_X, START_Y + i);
c = *font++;
Commit: e7f7f417dd1c7c3199fd383937014835b1b1c051
https://github.com/scummvm/scummvm/commit/e7f7f417dd1c7c3199fd383937014835b1b1c051
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2026-04-26T23:39:02+02:00
Commit Message:
CHAMBER: Allowed video renderer selection in the GUI
Changed paths:
engines/chamber/detection.cpp
diff --git a/engines/chamber/detection.cpp b/engines/chamber/detection.cpp
index 54bd3c1de5b..4253ea5f706 100644
--- a/engines/chamber/detection.cpp
+++ b/engines/chamber/detection.cpp
@@ -37,7 +37,7 @@ static const ADGameDescription gameDescriptions[] = {
Common::UNK_LANG, // EN/FR/DE
Common::kPlatformDOS,
ADGF_UNSTABLE,
- GUIO0()
+ GUIO3(GUIO_RENDERHERCGREEN, GUIO_RENDERHERCAMBER, GUIO_RENDERCGA)
},
{
@@ -47,7 +47,7 @@ static const ADGameDescription gameDescriptions[] = {
Common::EN_USA,
Common::kPlatformDOS,
ADGF_UNSTABLE,
- GUIO0()
+ GUIO3(GUIO_RENDERHERCGREEN, GUIO_RENDERHERCAMBER, GUIO_RENDERCGA)
},
AD_TABLE_END_MARKER
Commit: 39bf085060abf00bb236aeba40d283d483fe7d6f
https://github.com/scummvm/scummvm/commit/39bf085060abf00bb236aeba40d283d483fe7d6f
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2026-04-26T23:39:02+02:00
Commit Message:
CHAMBER: Support Amber Hercules rendering
Changed paths:
engines/chamber/cga.cpp
engines/chamber/chamber.cpp
engines/chamber/chamber.h
engines/chamber/kult.cpp
diff --git a/engines/chamber/cga.cpp b/engines/chamber/cga.cpp
index 703a9e30a5b..f31ee2f971d 100644
--- a/engines/chamber/cga.cpp
+++ b/engines/chamber/cga.cpp
@@ -123,8 +123,10 @@ static const uint8 PALETTE_CGA2[4 * 3] = {
Switch to CGA 320x200x2bpp mode
*/
void CGARenderer::switchToGraphicsMode() {
- if (g_system->getWidth() == 720) {
+ if (g_vm->_renderMode == Common::kRenderHercG) {
g_system->getPaletteManager()->setPalette(Graphics::HGC_G_PALETTE, 0, 2);
+ } else if (g_vm->_renderMode == Common::kRenderHercA) {
+ g_system->getPaletteManager()->setPalette(Graphics::HGC_A_PALETTE, 0, 2);
} else {
g_system->getPaletteManager()->setPalette(PALETTE_CGA, 0, 4);
}
@@ -146,9 +148,12 @@ void waitVBlank(void) {
}
void CGARenderer::colorSelect(byte csel) {
- if (g_system->getWidth() == 720) {
+ if (g_vm->_renderMode == Common::kRenderHercG) {
g_system->getPaletteManager()->setPalette(Graphics::HGC_G_PALETTE, 0, 2);
g_system->setCursorPalette(Graphics::HGC_G_PALETTE, 0, 2);
+ } else if (g_vm->_renderMode == Common::kRenderHercA) {
+ g_system->getPaletteManager()->setPalette(Graphics::HGC_A_PALETTE, 0, 2);
+ g_system->setCursorPalette(Graphics::HGC_A_PALETTE, 0, 2);
} else {
const byte *pal;
if (csel & 0x10)
@@ -165,7 +170,7 @@ void CGARenderer::blitToScreen(int16 dx, int16 dy, int16 w, int16 h) {
if (!mainSurface) {
mainSurface = new Graphics::Surface();
}
- if (g_system->getWidth() != 720) {
+ if (g_vm->_renderMode == Common::kRenderCGA) {
if (mainSurface->w != g_vm->_screenW) {
mainSurface->free();
mainSurface->create(g_vm->_screenW, g_vm->_screenH, Graphics::PixelFormat::createFormatCLUT8());
diff --git a/engines/chamber/chamber.cpp b/engines/chamber/chamber.cpp
index dcc8e0b8726..611df714263 100644
--- a/engines/chamber/chamber.cpp
+++ b/engines/chamber/chamber.cpp
@@ -55,12 +55,15 @@ ChamberEngine::ChamberEngine(OSystem *syst, const ADGameDescription *desc)
_prioritycommand_2 = false;
_pxiData = NULL;
- Common::RenderMode renderMode = Common::parseRenderMode(ConfMan.get("render_mode"));
- if (renderMode == Common::kRenderEGA || renderMode == Common::kRenderHercG || renderMode == Common::kRenderHercA)
- _videoMode = renderMode;
+ _renderMode = Common::parseRenderMode(ConfMan.get("render_mode"));
+ if (_renderMode == Common::kRenderEGA || _renderMode == Common::kRenderHercG || _renderMode == Common::kRenderHercA)
+ _videoMode = _renderMode;
else
_videoMode = Common::kRenderCGA;
+ if (_renderMode == Common::kRenderHercA)
+ _videoMode = Common::kRenderHercG;
+
_screenH = _screenW = _screenBits = _screenBPL = _screenPPB = 0;
_line_offset = _line_offset2 = _fontHeight = _fontWidth = 0;
@@ -105,7 +108,7 @@ void ChamberEngine::syncGameStream(Common::Serializer &s) {
}
int ChamberEngine::getX(int original_x) {
- return original_x;
+ return original_x;
}
int ChamberEngine::getY(int original_y) {
diff --git a/engines/chamber/chamber.h b/engines/chamber/chamber.h
index 3eeaffb05af..ebd1ecf9e4b 100644
--- a/engines/chamber/chamber.h
+++ b/engines/chamber/chamber.h
@@ -83,6 +83,7 @@ public:
bool _prioritycommand_2;
Common::RenderMode _videoMode;
+ Common::RenderMode _renderMode;
byte *_pxiData;
diff --git a/engines/chamber/kult.cpp b/engines/chamber/kult.cpp
index eef6b1ed4f4..d99687d68a3 100644
--- a/engines/chamber/kult.cpp
+++ b/engines/chamber/kult.cpp
@@ -308,8 +308,11 @@ Common::Error ChamberEngine::init() {
g_vm->_renderer->colorSelect(0x30);
g_vm->_renderer->backBufferToRealFull();
} else {
- /* Set authentic Hercules Green phosphor palette */
- g_system->getPaletteManager()->setPalette(Graphics::HGC_G_PALETTE, 0, 2);
+ 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();
}
}
Commit: 2f468045f0e6549c6bee56f31087332c196d6b6e
https://github.com/scummvm/scummvm/commit/2f468045f0e6549c6bee56f31087332c196d6b6e
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2026-04-26T23:39:03+02:00
Commit Message:
CHAMBER: Remove pointless global references
Changed paths:
engines/chamber/cga.cpp
diff --git a/engines/chamber/cga.cpp b/engines/chamber/cga.cpp
index f31ee2f971d..04fbedbe978 100644
--- a/engines/chamber/cga.cpp
+++ b/engines/chamber/cga.cpp
@@ -268,7 +268,7 @@ void CGARenderer::blitToScreen(int16 ofs, int16 w, int16 h) {
int16 dy = ofs / byte_per_line;
int16 dx = (ofs % byte_per_line) * (0x8 / g_vm->_screenBits);
- g_vm->_renderer->blitToScreen(dx, dy, w, h);
+ blitToScreen(dx, dy, w, h);
}
void CGARenderer::backBufferToRealFull() {
@@ -303,7 +303,7 @@ void CGARenderer::backBufferToRealFull() {
srcPtr += CGA_BYTES_PER_LINE;
}
}
- g_vm->_renderer->blitToScreen(0, 0, g_vm->_screenW, g_vm->_screenH);
+ blitToScreen(0, 0, g_vm->_screenW, g_vm->_screenH);
}
void CGARenderer::realBufferToBackFull() {
@@ -323,7 +323,7 @@ void CGARenderer::copyScreenBlock(byte *source, uint16 w, uint16 h, byte *target
}
if (target == SCREENBUFFER)
- g_vm->_renderer->blitToScreen(oofs, w * (0x8 / g_vm->_screenBits), oh);
+ blitToScreen(oofs, w * (0x8 / g_vm->_screenBits), oh);
}
/*
@@ -341,7 +341,7 @@ void CGARenderer::swapRealBackBuffer() {
*d++ = t;
}
- g_vm->_renderer->blitToScreen(0, 0, g_vm->_screenW, g_vm->_screenH);
+ blitToScreen(0, 0, g_vm->_screenW, g_vm->_screenH);
}
@@ -364,7 +364,7 @@ void CGARenderer::swapScreenRect(byte *pixels, uint16 w, uint16 h, byte *screen,
}
if (screen == SCREENBUFFER)
- g_vm->_renderer->blitToScreen(oofs, w * (0x8 / g_vm->_screenBits), oh);
+ blitToScreen(oofs, w * (0x8 / g_vm->_screenBits), oh);
}
/*
@@ -433,7 +433,7 @@ void CGARenderer::blit(byte *pixels, uint16 pw, uint16 w, uint16 h, byte *screen
}
if (screen == SCREENBUFFER)
- g_vm->_renderer->blitToScreen(oofs, w * (0x8 / g_vm->_screenBits), h);
+ blitToScreen(oofs, w * (0x8 / g_vm->_screenBits), h);
}
/*
@@ -455,7 +455,7 @@ void CGARenderer::fill(byte pixel, uint16 w, uint16 h, byte *screen, uint16 ofs)
}
if (screen == SCREENBUFFER)
- g_vm->_renderer->blitToScreen(oofs, w * (0x8 / g_vm->_screenBits), h);
+ blitToScreen(oofs, w * (0x8 / g_vm->_screenBits), h);
}
void CGARenderer::fillAndWait(byte pixel, uint16 w, uint16 h, byte *screen, uint16 ofs) {
@@ -523,7 +523,7 @@ void CGARenderer::drawVLine(uint16 x, uint16 y, uint16 l, byte color, byte *targ
mask >>= (x % g_vm->_screenPPB) * g_vm->_screenPPB;
pixel >>= (x % g_vm->_screenPPB) * g_vm->_screenPPB;
- ofs = g_vm->_renderer->calcXY_p(x / g_vm->_screenPPB, y);
+ ofs = calcXY_p(x / g_vm->_screenPPB, y);
uint16 ol = l;
while (l--) {
@@ -534,7 +534,7 @@ void CGARenderer::drawVLine(uint16 x, uint16 y, uint16 l, byte color, byte *targ
}
if (target == SCREENBUFFER)
- g_vm->_renderer->blitToScreen(x, y, 1, ol);
+ blitToScreen(x, y, 1, ol);
}
/*
@@ -556,7 +556,7 @@ void CGARenderer::drawHLine(uint16 x, uint16 y, uint16 l, byte color, byte *targ
mask >>= (x % g_vm->_screenPPB) * g_vm->_screenPPB;
pixel >>= (x % g_vm->_screenPPB) * g_vm->_screenPPB;
- ofs = g_vm->_renderer->calcXY_p(x / g_vm->_screenPPB, y);
+ ofs = calcXY_p(x / g_vm->_screenPPB, y);
uint16 ol = l;
while (l--) {
@@ -574,7 +574,7 @@ void CGARenderer::drawHLine(uint16 x, uint16 y, uint16 l, byte color, byte *targ
}
}
if (target == SCREENBUFFER)
- g_vm->_renderer->blitToScreen(x, y, ol, 1);
+ blitToScreen(x, y, ol, 1);
}
/*
@@ -592,7 +592,7 @@ uint16 CGARenderer::drawHLineWithEnds(uint16 bmask, uint16 bpix, byte color, uin
ofs += g_vm->_screenBPL;
if (target == SCREENBUFFER)
- g_vm->_renderer->blitToScreen(oofs, l * 4 + 2, 1);
+ blitToScreen(oofs, l * 4 + 2, 1);
return ofs;
}
@@ -616,7 +616,7 @@ void CGARenderer::printChar(byte c, byte *target) {
}
if (target == SCREENBUFFER)
- g_vm->_renderer->blitToScreen((char_draw_coords_x - 1) * g_vm->_fontWidth, char_draw_coords_y, g_vm->_fontWidth, g_vm->_fontHeight);
+ 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++;
@@ -629,7 +629,7 @@ void CGARenderer::printChar(byte c, byte *target) {
}
if (target == SCREENBUFFER)
- g_vm->_renderer->blitToScreen(START_X, START_Y, g_vm->_fontWidth, g_vm->_fontHeight);
+ blitToScreen(START_X, START_Y, g_vm->_fontWidth, g_vm->_fontHeight);
}
}
@@ -654,7 +654,7 @@ void CGARenderer::blitScratchBackSprite(uint16 sprofs, uint16 w, uint16 h, byte
}
if (screen == SCREENBUFFER)
- g_vm->_renderer->blitToScreen(oofs, w * (0x8 / g_vm->_screenBits), oh);
+ blitToScreen(oofs, w * (0x8 / g_vm->_screenBits), oh);
}
void CGARenderer::blitFromBackBuffer(byte w, byte h, byte *screen, uint16 ofs) {
@@ -679,7 +679,7 @@ void CGARenderer::blitSprite(byte *pixels, int16 pw, uint16 w, uint16 h, byte *s
}
if (screen == SCREENBUFFER)
- g_vm->_renderer->blitToScreen(oofs, w * (0x8 / g_vm->_screenBits), oh);
+ blitToScreen(oofs, w * (0x8 / g_vm->_screenBits), oh);
}
/*
@@ -700,7 +700,7 @@ void CGARenderer::blitSpriteFlip(byte *pixels, int16 pw, uint16 w, uint16 h, byt
}
if (screen == SCREENBUFFER)
- g_vm->_renderer->blitToScreen(oofs, w * (0x8 / g_vm->_screenBits), oh);
+ blitToScreen(oofs, w * (0x8 / g_vm->_screenBits), oh);
}
/*
@@ -727,7 +727,7 @@ void CGARenderer::blitSpriteBak(byte *pixels, int16 pw, uint16 w, uint16 h, byte
}
if (screen == SCREENBUFFER)
- g_vm->_renderer->blitToScreen(oofs, w * (0x8 / g_vm->_screenBits), oh);
+ blitToScreen(oofs, w * (0x8 / g_vm->_screenBits), oh);
}
@@ -974,7 +974,7 @@ void CGARenderer::hideScreenBlockLiftToDown(uint16 n, byte *screen, byte *source
memcpy(target + tofs, source + tofs, w);
if (screen == SCREENBUFFER) {
- g_vm->_renderer->blitToScreen(0, 0, g_vm->_screenW, g_vm->_screenW);
+ blitToScreen(0, 0, g_vm->_screenW, g_vm->_screenW);
}
waitVBlank();
@@ -1019,7 +1019,7 @@ void CGARenderer::hideScreenBlockLiftToUp(uint16 n, byte *screen, byte *source,
memcpy(target + tofs, source + tofs, w);
if (screen == SCREENBUFFER) {
- g_vm->_renderer->blitToScreen(0, 0, g_vm->_screenW, g_vm->_screenH);
+ blitToScreen(0, 0, g_vm->_screenW, g_vm->_screenH);
}
waitVBlank();
@@ -1058,7 +1058,7 @@ void CGARenderer::hideScreenBlockLiftToLeft(uint16 n, byte *screen, byte *source
}
if (screen == SCREENBUFFER) {
- g_vm->_renderer->blitToScreen(0, 0, g_vm->_screenW, g_vm->_screenH);
+ blitToScreen(0, 0, g_vm->_screenW, g_vm->_screenH);
}
waitVBlank();
@@ -1095,7 +1095,7 @@ void CGARenderer::hideScreenBlockLiftToRight(uint16 n, byte *screen, byte *sourc
}
if (screen == SCREENBUFFER) {
- g_vm->_renderer->blitToScreen(0, 0, g_vm->_screenW, g_vm->_screenH);
+ blitToScreen(0, 0, g_vm->_screenW, g_vm->_screenH);
}
waitVBlank();
@@ -1278,15 +1278,15 @@ void CGARenderer::traceLine(uint16 sx, uint16 ex, uint16 sy, uint16 ey, byte *so
dy = h * 2;
if (g_vm->_videoMode == Common::RenderMode::kRenderCGA) {
- ofs = g_vm->_renderer->calcXY_p(sx / 4, sy);
+ ofs = calcXY_p(sx / 4, sy);
mask = 0xC0 >> ((sx % 4) * 2);
} else {
- ofs = g_vm->_renderer->calcXY_p(sx / 8, sy);
+ ofs = calcXY_p(sx / 8, sy);
mask = 0x80 >> (sx % 8); // TODO: check this
}
/*
- ofs = g_vm->_renderer->calcXY_p(sx / 4, sy);
+ ofs = calcXY_p(sx / 4, sy);
mask = 0xC0 >> ((sx % 4) * 2);
*/
@@ -1330,7 +1330,7 @@ void CGARenderer::traceLine(uint16 sx, uint16 ex, uint16 sy, uint16 ey, byte *so
}
if (target == SCREENBUFFER)
- g_vm->_renderer->blitToScreen(0, 0, g_vm->_screenW, g_vm->_screenH);
+ blitToScreen(0, 0, g_vm->_screenW, g_vm->_screenH);
}
/*TODO: get rid of this structure and pass everything relevant as arguments?*/
@@ -1695,7 +1695,7 @@ void CGARenderer::zoomInplaceXY(byte *pixels, byte w, byte h, byte nw, byte nh,
zoom.eh = h - 1;
zoom.xbase = x % 4;
- cga_ZoomInplace(&zoom, nw, nh, target, target, g_vm->_renderer->calcXY_p(x, y));
+ cga_ZoomInplace(&zoom, nw, nh, target, target, calcXY_p(x, y));
}
} // End of namespace Chamber
More information about the Scummvm-git-logs
mailing list