[Scummvm-git-logs] scummvm master -> 6a0fcad62f4b90517c36676178ef92c16273c36e

neuromancer noreply at scummvm.org
Sat Dec 24 18:55:01 UTC 2022


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:
8ddc39fe73 FREESCAPE: fixed two crashes in the ZX renderer
a410e1d9b8 FREESCAPE: avoid invalid rectangle when drawing shield/energy bar in driller zx release
6a0fcad62f FREESCAPE: added detection of another driller zx release


Commit: 8ddc39fe737fbd5ce43158b96808bef16daf9d33
    https://github.com/scummvm/scummvm/commit/8ddc39fe737fbd5ce43158b96808bef16daf9d33
Author: neuromancer (gustavo.grieco at gmail.com)
Date: 2022-12-24T15:53:53-03:00

Commit Message:
FREESCAPE: fixed two crashes in the ZX renderer

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


diff --git a/engines/freescape/games/palettes.cpp b/engines/freescape/games/palettes.cpp
index 080c10afc06..822c44a3b53 100644
--- a/engines/freescape/games/palettes.cpp
+++ b/engines/freescape/games/palettes.cpp
@@ -41,7 +41,7 @@ byte dos_EGA_palette[16][3] = {
 	{0xff, 0xff, 0x55},
 	{0xff, 0xff, 0xff}};
 
-byte kDrillerZXPalette[8][3] = {
+byte kDrillerZXPalette[9][3] = {
 	{0x00, 0x00, 0x00},
 	{0x00, 0x00, 0xee},
 	{0xee, 0x00, 0x00},
@@ -50,6 +50,7 @@ byte kDrillerZXPalette[8][3] = {
 	{0x00, 0xee, 0xee},
 	{0xee, 0xee, 0x00},
 	{0xee, 0xee, 0xee},
+	{0x00, 0x00, 0x00},
 };
 
 void FreescapeEngine::loadColorPalette() {
diff --git a/engines/freescape/gfx_opengl.cpp b/engines/freescape/gfx_opengl.cpp
index d638449a9a6..63b3444ca95 100644
--- a/engines/freescape/gfx_opengl.cpp
+++ b/engines/freescape/gfx_opengl.cpp
@@ -192,7 +192,7 @@ void OpenGLRenderer::renderPlayerShoot(byte color, const Common::Point position,
 	glOrtho(0, _screenW, _screenH, 0, 0, 1);
 	glMatrixMode(GL_MODELVIEW);
 	glLoadIdentity();
-	if (_renderMode == Common::kRenderCGA) {
+	if (_renderMode == Common::kRenderCGA || _renderMode == Common::kRenderZX) {
 		r = g = b = 255;
 	} else {
 		uint32 pixel = 0x0;


Commit: a410e1d9b82ecd0963a7296556cae70d1fe9de80
    https://github.com/scummvm/scummvm/commit/a410e1d9b82ecd0963a7296556cae70d1fe9de80
Author: neuromancer (gustavo.grieco at gmail.com)
Date: 2022-12-24T15:53:53-03:00

Commit Message:
FREESCAPE: avoid invalid rectangle when drawing shield/energy bar in driller zx release

Changed paths:
    engines/freescape/games/driller.cpp


diff --git a/engines/freescape/games/driller.cpp b/engines/freescape/games/driller.cpp
index 25788e9616a..ad44f0af8de 100644
--- a/engines/freescape/games/driller.cpp
+++ b/engines/freescape/games/driller.cpp
@@ -677,17 +677,17 @@ void DrillerEngine::drawZXUI(Graphics::Surface *surface) {
 	int shield = _gameStateVars[k8bitVariableShield];
 
 	if (energy >= 0) {
-		Common::Rect backBar(43, 188, 105 - energy, 194);
+		Common::Rect backBar(45, 188, 109 - energy, 194);
 		surface->fillRect(backBar, back);
-		Common::Rect energyBar(105 - energy, 188, 106, 194);
+		Common::Rect energyBar(108 - energy, 188, 108, 194);
 		surface->fillRect(energyBar, front);
 	}
 
 	if (shield >= 0) {
-		Common::Rect backBar(43, 181, 106 - shield, 187);
+		Common::Rect backBar(45, 181, 109 - shield, 187);
 		surface->fillRect(backBar, back);
 
-		Common::Rect shieldBar(106 - shield, 181, 106, 187);
+		Common::Rect shieldBar(108 - shield, 181, 108, 187);
 		surface->fillRect(shieldBar, front);
 	}
 }


Commit: 6a0fcad62f4b90517c36676178ef92c16273c36e
    https://github.com/scummvm/scummvm/commit/6a0fcad62f4b90517c36676178ef92c16273c36e
Author: neuromancer (gustavo.grieco at gmail.com)
Date: 2022-12-24T15:53:53-03:00

Commit Message:
FREESCAPE: added detection of another driller zx release

Changed paths:
    engines/freescape/detection.cpp
    engines/freescape/freescape.h
    engines/freescape/games/driller.cpp


diff --git a/engines/freescape/detection.cpp b/engines/freescape/detection.cpp
index ac44744f815..17f0b1598e9 100644
--- a/engines/freescape/detection.cpp
+++ b/engines/freescape/detection.cpp
@@ -39,12 +39,24 @@ static const ADGameDescription gameDescriptions[] = {
 		"driller",
 		"",
 		{
-			{"DRILLER.ZXSPECTRUM.DATA", 0, "396c1789a7da3db5058d18eb8d2d35a3", 37590},
+			{"DRILLER.ZX.EXTRACTED", 0, "396c1789a7da3db5058d18eb8d2d35a3", 37590},
 			AD_LISTEND
 		},
 		Common::EN_ANY,
 		Common::kPlatformZX,
-		ADGF_TESTING,
+		ADGF_ZX_RETAIL | ADGF_TESTING,
+		GUIO2(GUIO_NOMIDI, GAMEOPTION_AUTOMATIC_DRILLING)
+	},
+	{
+		"driller",
+		"",
+		{
+			{"DRILLER.ZX.EXTRACTED", 0, "2b996ab877f45414f8e2ae4c862746f3", 35214},
+			AD_LISTEND
+		},
+		Common::EN_ANY,
+		Common::kPlatformZX,
+		ADGF_ZX_MUSICAL | ADGF_TESTING,
 		GUIO2(GUIO_NOMIDI, GAMEOPTION_AUTOMATIC_DRILLING)
 	},
 	{
diff --git a/engines/freescape/freescape.h b/engines/freescape/freescape.h
index 2becd748687..4ba4005f393 100644
--- a/engines/freescape/freescape.h
+++ b/engines/freescape/freescape.h
@@ -343,6 +343,8 @@ public:
 enum DrillerReleaseFlags {
 		ADGF_AMIGA_RETAIL = (1 << 0),
 		ADGF_AMIGA_BUDGET = (1 << 1),
+		ADGF_ZX_RETAIL = (1 << 2),
+		ADGF_ZX_MUSICAL = (1 << 3),
 };
 
 class DrillerEngine : public FreescapeEngine {
diff --git a/engines/freescape/games/driller.cpp b/engines/freescape/games/driller.cpp
index ad44f0af8de..9db0fa13958 100644
--- a/engines/freescape/games/driller.cpp
+++ b/engines/freescape/games/driller.cpp
@@ -410,15 +410,28 @@ void DrillerEngine::loadAssetsFullGame() {
 		loadSoundsFx(&file, 0x30da6, 25);
 	} else if (isSpectrum()) {
 		loadBundledImages();
-		file.open("driller.zxspectrum.data");
+		file.open("driller.zx.extracted");
 
 		if (!file.isOpen())
-			error("Failed to open driller.zxspectrum.data");
+			error("Failed to open driller.zx.extracted");
 
 		loadMessagesFixedSize(&file, 0x20e4, 14, 20);
-		loadFonts(&file, 0x62ca);
-		//loadGlobalObjects(&file, 0x3b42);
-		load8bitBinary(&file, 0x642c, 4);
+
+		if (_variant & ADGF_ZX_RETAIL)
+			loadFonts(&file, 0x62ca);
+		if (_variant & ADGF_ZX_MUSICAL)
+			loadFonts(&file, 0x5aa8);
+
+		//loadGlobalObjects(&file, 0x642c);
+		//loadGlobalObjects(&file, 0x5c0a);
+
+		if (_variant & ADGF_ZX_RETAIL)
+			load8bitBinary(&file, 0x642c, 4);
+		else if (_variant & ADGF_ZX_MUSICAL)
+			load8bitBinary(&file, 0x5c0a, 4);
+		else
+			error("Unknown ZX spectrum variant");
+
 	} else if (_renderMode == Common::kRenderEGA) {
 		loadBundledImages();
 		file.open("DRILLE.EXE");




More information about the Scummvm-git-logs mailing list