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

neuromancer noreply at scummvm.org
Fri Dec 30 14:49:58 UTC 2022


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:
fb9f163c89 FREESCAPE: improved palette handling for Driller Amstrad CPC releases


Commit: fb9f163c89f19049f05005b6c0daa8b33a2b58b7
    https://github.com/scummvm/scummvm/commit/fb9f163c89f19049f05005b6c0daa8b33a2b58b7
Author: neuromancer (gustavo.grieco at gmail.com)
Date: 2022-12-30T11:48:24-03:00

Commit Message:
FREESCAPE: improved palette handling for Driller Amstrad CPC releases

Changed paths:
    engines/freescape/games/palettes.cpp
    engines/freescape/gfx.cpp


diff --git a/engines/freescape/games/palettes.cpp b/engines/freescape/games/palettes.cpp
index 7fcdc792323..989ff3c0d8f 100644
--- a/engines/freescape/games/palettes.cpp
+++ b/engines/freescape/games/palettes.cpp
@@ -83,13 +83,20 @@ byte kDrillerCPCPalette[27][3] = {
 	{0xff, 0xff, 0xff},
 };
 
+byte kDrillerCPCPalette1[27][3] = {
+	{0x00, 0x00, 0x00},  // 0: black
+	{0xff, 0x80, 0x00},  // 1: orange
+	{0x00, 0xff, 0xff},  // 2: cyan
+	{0x00, 0x80, 0x00},  // 3: green
+};
+
 void FreescapeEngine::loadColorPalette() {
 	if (_renderMode == Common::kRenderEGA) {
 		_gfx->_palette = (byte *)&dos_EGA_palette;
 	} else if (_renderMode == Common::kRenderZX) {
 		_gfx->_palette = (byte *)kDrillerZXPalette;
 	} else if (_renderMode == Common::kRenderCPC) {
-		_gfx->_palette = (byte *)kDrillerCPCPalette;
+		_gfx->_palette = (byte *)kDrillerCPCPalette1;
 	} else if (_renderMode == Common::kRenderCGA) {
 		_gfx->_palette = nullptr; // palette depends on the area
 	} else if (_renderMode == Common::kRenderAmiga || _renderMode == Common::kRenderAtariST) {
diff --git a/engines/freescape/gfx.cpp b/engines/freescape/gfx.cpp
index 30e92e2ae16..f5aa745d93b 100644
--- a/engines/freescape/gfx.cpp
+++ b/engines/freescape/gfx.cpp
@@ -126,7 +126,7 @@ bool Renderer::getRGBAtCPC(uint8 index, uint8 &r1, uint8 &g1, uint8 &b1, uint8 &
 		return false;
 
 	assert (_renderMode == Common::kRenderCPC);
-	if (index == 4) { // Solid colors 
+	if (index <= 4) { // Solid colors
 		readFromPalette(index - 1, r1, g1, b1);
 		r2 = r1;
 		g2 = g1;
@@ -135,11 +135,12 @@ bool Renderer::getRGBAtCPC(uint8 index, uint8 &r1, uint8 &g1, uint8 &b1, uint8 &
 	}
 
 	byte *entry = (*_colorMap)[index - 1];
-	byte be = *(entry);
-	readFromPalette((be >> 4), r1, g1, b1);
+	//entry++;
 	entry++;
-	be = *(entry);
-	readFromPalette((be >> 4), r2, g2, b2);
+	byte be = *(entry);
+	//be = *(entry);
+	readFromPalette((be >> 4) % 4, r1, g1, b1);
+	readFromPalette((be & 0xf) % 4, r2, g2, b2);
 	return true;
 }
 




More information about the Scummvm-git-logs mailing list