[Scummvm-git-logs] scummvm master -> 1f21d0ac5fefa0005f102a7936a80b316c3f4405

neuromancer noreply at scummvm.org
Tue Oct 7 02:39:02 UTC 2025


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

Summary:
4bfcf219a6 FREESCAPE: completed support for castle master for zx (disc)
6c8ba30774 FREESCAPE: castle master for zx switched to testing in detection tables
d16ede63eb FREESCAPE: fixed incorrect message in castle master for zx (spanish)
158fd7a755 FREESCAPE: only render thunder outside in castle
1f21d0ac5f FREESCAPE: fix bug breaking bug in castle (zx)


Commit: 4bfcf219a656c0d28474f2b8722d468531b2ec21
    https://github.com/scummvm/scummvm/commit/4bfcf219a656c0d28474f2b8722d468531b2ec21
Author: neuromancer (gustavo.grieco at gmail.com)
Date: 2025-10-06T21:56:32-03:00

Commit Message:
FREESCAPE: completed support for castle master for zx (disc)

Changed paths:
    engines/freescape/detection.cpp
    engines/freescape/games/castle/zx.cpp


diff --git a/engines/freescape/detection.cpp b/engines/freescape/detection.cpp
index 475a929c0a5..59376d9b954 100644
--- a/engines/freescape/detection.cpp
+++ b/engines/freescape/detection.cpp
@@ -801,7 +801,7 @@ static const ADGameDescription gameDescriptions[] = {
 		AD_ENTRY1s("castlemaster.zx.data", "e2ed83c30cd0ed7119e349d0f677ae91", 36096),
 		Common::EN_ANY,
 		Common::kPlatformZX,
-		ADGF_UNSTABLE,
+		ADGF_UNSTABLE | GF_ZX_RETAIL,
 		GUIO3(GUIO_NOMIDI, GAMEOPTION_TRAVEL_ROCK, GUIO_RENDERZX)
 	},
 	// Disc release
diff --git a/engines/freescape/games/castle/zx.cpp b/engines/freescape/games/castle/zx.cpp
index d4005ff79ef..f4cfe5ab533 100644
--- a/engines/freescape/games/castle/zx.cpp
+++ b/engines/freescape/games/castle/zx.cpp
@@ -113,12 +113,11 @@ void CastleEngine::loadAssetsZXFullGame() {
 	loadMessagesVariableSize(&file, 0x4bd, 71);
 	switch (_language) {
 		case Common::ES_ESP:
-			loadRiddles(&file, 0x1470 - 4 - 2 - 9 * 2, 9);
-			loadMessagesVariableSize(&file, 0xf3d, 71);
-			load8bitBinary(&file, 0x6aab - 2, 16);
+			loadRiddles(&file, 0x1458, 9);
+			load8bitBinary(&file, 0x6aa9, 16);
 			loadSpeakerFxZX(&file, 0xca0, 0xcdc);
 
-			file.seek(0x1218 + 16);
+			file.seek(0x1228);
 			for (int i = 0; i < 90; i++) {
 				Graphics::ManagedSurface *surface = new Graphics::ManagedSurface();
 				surface->create(8, 8, Graphics::PixelFormat::createFormatCLUT8());
@@ -130,11 +129,19 @@ void CastleEngine::loadAssetsZXFullGame() {
 
 			break;
 		case Common::EN_ANY:
-			loadRiddles(&file, 0x145c - 2 - 9 * 2, 9);
-			load8bitBinary(&file, 0x6a3b, 16);
-			loadSpeakerFxZX(&file, 0xc91, 0xccd);
-
-			file.seek(0x1219);
+			if (_variant & GF_ZX_RETAIL) {
+				loadRiddles(&file, 0x1448, 9);
+				load8bitBinary(&file, 0x6a3b, 16);
+				loadSpeakerFxZX(&file, 0xc91, 0xccd);
+				file.seek(0x1219);
+			} else if (_variant & GF_ZX_DISC) {
+				loadRiddles(&file, 0x1457, 9);
+				load8bitBinary(&file, 0x6a9b, 16);
+				loadSpeakerFxZX(&file, 0xca0, 0xcdc);
+				file.seek(0x1228);
+			} else {
+				error("Unknown Castle Master ZX variant");
+			}
 			for (int i = 0; i < 90; i++) {
 				Graphics::ManagedSurface *surface = new Graphics::ManagedSurface();
 				surface->create(8, 8, Graphics::PixelFormat::createFormatCLUT8());
@@ -157,10 +164,10 @@ void CastleEngine::loadAssetsZXFullGame() {
 	_gfx->readFromPalette(7, r, g, b);
 	uint32 white = _gfx->_texturePixelFormat.ARGBToColor(0xFF, r, g, b);
 
-	_keysBorderFrames.push_back(loadFrameWithHeader(&file, _language == Common::ES_ESP ? 0xe06 : 0xdf7, red, white));
+	_keysBorderFrames.push_back(loadFrameWithHeader(&file, _variant & GF_ZX_DISC ? 0xe06 : 0xdf7, red, white));
 
 	uint32 green = _gfx->_texturePixelFormat.ARGBToColor(0xFF, 0, 0xff, 0);
-	_spiritsMeterIndicatorFrame = loadFrameWithHeader(&file, _language == Common::ES_ESP ? 0xe5e : 0xe4f, green, white);
+	_spiritsMeterIndicatorFrame = loadFrameWithHeader(&file, _variant & GF_ZX_DISC ? 0xe5e : 0xe4f, green, white);
 
 	_gfx->readFromPalette(4, r, g, b);
 	uint32 front = _gfx->_texturePixelFormat.ARGBToColor(0xFF, r, g, b);
@@ -171,25 +178,17 @@ void CastleEngine::loadAssetsZXFullGame() {
 	background->create(backgroundWidth * 8, backgroundHeight, _gfx->_texturePixelFormat);
 	background->fillRect(Common::Rect(0, 0, backgroundWidth * 8, backgroundHeight), 0);
 
-	file.seek(_language == Common::ES_ESP ? 0xfd3 : 0xfc4);
+	file.seek(_variant & GF_ZX_DISC ? 0xfd3 : 0xfc4);
 	_background = loadFrame(&file, background, backgroundWidth, backgroundHeight, front);
 
 	_gfx->readFromPalette(6, r, g, b);
 	uint32 yellow = _gfx->_texturePixelFormat.ARGBToColor(0xFF, r, g, b);
 	uint32 black = _gfx->_texturePixelFormat.ARGBToColor(0xFF, 0, 0, 0);
-	_strenghtBackgroundFrame = loadFrameWithHeader(&file, _language == Common::ES_ESP ? 0xee6 : 0xed7, yellow, black);
-	_strenghtBarFrame = loadFrameWithHeader(&file, _language == Common::ES_ESP ? 0xf72 : 0xf63, yellow, black);
-
-	//Graphics::ManagedSurface *bar = new Graphics::ManagedSurface();
-	//bar->create(_strenghtBarFrame->w, _strenghtBarFrame->h, _gfx->_texturePixelFormat);
-	//_strenghtBarFrame->copyRectToSurface(*bar, 2, 0, Common::Rect(2, 0, _strenghtBarFrame->w - 2, _strenghtBarFrame->h));
-	//_strenghtBarFrame->free();
-	//delete _strenghtBarFrame;
-	//_strenghtBarFrame = bar;
-
-	_strenghtWeightsFrames = loadFramesWithHeader(&file, _language == Common::ES_ESP ? 0xf92 : 0xf83, 4, yellow, black);
+	_strenghtBackgroundFrame = loadFrameWithHeader(&file, _variant & GF_ZX_DISC ? 0xee6 : 0xed7, yellow, black);
+	_strenghtBarFrame = loadFrameWithHeader(&file, _variant & GF_ZX_DISC ? 0xf72 : 0xf63, yellow, black);
+	_strenghtWeightsFrames = loadFramesWithHeader(&file, _variant & GF_ZX_DISC ? 0xf92 : 0xf83, 4, yellow, black);
 
-	_flagFrames = loadFramesWithHeader(&file, (_language == Common::ES_ESP ? 0x10e4 + 15 : 0x10e4), 4, green, black);
+	_flagFrames = loadFramesWithHeader(&file, (_variant & GF_ZX_DISC ? 0x10e4 + 15 : 0x10e4), 4, green, black);
 
 	file.skip(24);
 	int thunderWidth = 4;


Commit: 6c8ba30774b5d72501e38dc3d089d5e3cfedd70f
    https://github.com/scummvm/scummvm/commit/6c8ba30774b5d72501e38dc3d089d5e3cfedd70f
Author: neuromancer (gustavo.grieco at gmail.com)
Date: 2025-10-06T22:01:45-03:00

Commit Message:
FREESCAPE: castle master for zx switched to testing in detection tables

Changed paths:
    engines/freescape/detection.cpp


diff --git a/engines/freescape/detection.cpp b/engines/freescape/detection.cpp
index 59376d9b954..df1fb850cb8 100644
--- a/engines/freescape/detection.cpp
+++ b/engines/freescape/detection.cpp
@@ -801,7 +801,7 @@ static const ADGameDescription gameDescriptions[] = {
 		AD_ENTRY1s("castlemaster.zx.data", "e2ed83c30cd0ed7119e349d0f677ae91", 36096),
 		Common::EN_ANY,
 		Common::kPlatformZX,
-		ADGF_UNSTABLE | GF_ZX_RETAIL,
+		ADGF_TESTING | GF_ZX_RETAIL,
 		GUIO3(GUIO_NOMIDI, GAMEOPTION_TRAVEL_ROCK, GUIO_RENDERZX)
 	},
 	// Disc release
@@ -811,7 +811,7 @@ static const ADGameDescription gameDescriptions[] = {
 		AD_ENTRY1s("castlemaster.zx.data", "98513a4438ba93971d793a0fbc875b70", 36309),
 		Common::EN_ANY,
 		Common::kPlatformZX,
-		ADGF_UNSTABLE | GF_ZX_DISC,
+		ADGF_TESTING | GF_ZX_DISC,
 		GUIO3(GUIO_NOMIDI, GAMEOPTION_TRAVEL_ROCK, GUIO_RENDERZX)
 	},
 	// Spanish release was disc-only?
@@ -821,7 +821,7 @@ static const ADGameDescription gameDescriptions[] = {
 		AD_ENTRY1s("castlemaster.zx.data", "3e6f6b283fa00a3073edce2392950601", 36309),
 		Common::ES_ESP,
 		Common::kPlatformZX,
-		ADGF_UNSTABLE | GF_ZX_DISC,
+		ADGF_TESTING | GF_ZX_DISC,
 		GUIO3(GUIO_NOMIDI, GAMEOPTION_TRAVEL_ROCK, GUIO_RENDERZX)
 	},
 	{
@@ -835,7 +835,7 @@ static const ADGameDescription gameDescriptions[] = {
 		},
 		Common::EN_ANY,
 		Common::kPlatformDOS,
-		ADGF_UNSTABLE | ADGF_DEMO,
+		ADGF_TESTING | ADGF_DEMO,
 		GUIO4(GUIO_NOMIDI, GAMEOPTION_TRAVEL_ROCK, GUIO_RENDEREGA, GUIO_RENDERCGA)
 	},
 	{
@@ -908,7 +908,7 @@ static const ADGameDescription gameDescriptions[] = {
 		},
 		Common::UNK_LANG, // Multi-language
 		Common::kPlatformDOS,
-		ADGF_UNSTABLE,
+		ADGF_TESTING,
 		GUIO4(GUIO_NOMIDI, GAMEOPTION_TRAVEL_ROCK, GUIO_RENDEREGA, GUIO_RENDERCGA)
 	},
 	{
@@ -924,7 +924,7 @@ static const ADGameDescription gameDescriptions[] = {
 		},
 		Common::UNK_LANG, // Multi-language
 		Common::kPlatformDOS,
-		ADGF_UNSTABLE,
+		ADGF_TESTING,
 		GUIO4(GUIO_NOMIDI, GAMEOPTION_TRAVEL_ROCK, GUIO_RENDEREGA, GUIO_RENDERCGA)
 	},
 	{


Commit: d16ede63ebd4aa4fad47e644e3b5f95457c17b7b
    https://github.com/scummvm/scummvm/commit/d16ede63ebd4aa4fad47e644e3b5f95457c17b7b
Author: neuromancer (gustavo.grieco at gmail.com)
Date: 2025-10-06T22:04:27-03:00

Commit Message:
FREESCAPE: fixed incorrect message in castle master for zx (spanish)

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


diff --git a/engines/freescape/games/castle/castle.cpp b/engines/freescape/games/castle/castle.cpp
index 109bbba3c9c..3658446bf47 100644
--- a/engines/freescape/games/castle/castle.cpp
+++ b/engines/freescape/games/castle/castle.cpp
@@ -828,7 +828,7 @@ void CastleEngine::drawFullscreenGameOverAndWait() {
 		if (_language == Common::EN_ANY)
 			scoreString = "SCORE XXXXXXX";
 		else if (_language == Common::ES_ESP)
-			scoreString = "PUNTAJE XXXXXXX";
+			scoreString = "PUNTOS XXXXXXX";
 		else
 			error("Language not supported");
 	}


Commit: 158fd7a7557952cb39975e7d1194b6832afefa2b
    https://github.com/scummvm/scummvm/commit/158fd7a7557952cb39975e7d1194b6832afefa2b
Author: neuromancer (gustavo.grieco at gmail.com)
Date: 2025-10-06T22:20:21-03:00

Commit Message:
FREESCAPE: only render thunder outside in castle

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


diff --git a/engines/freescape/games/castle/castle.cpp b/engines/freescape/games/castle/castle.cpp
index 3658446bf47..b54f3c2579c 100644
--- a/engines/freescape/games/castle/castle.cpp
+++ b/engines/freescape/games/castle/castle.cpp
@@ -1681,15 +1681,17 @@ void CastleEngine::drawBackground() {
 	clearBackground();
 	_gfx->drawBackground(_currentArea->_skyColor);
 
-	if (_background) {
-		if (!_skyTexture)
-			_skyTexture = _gfx->createTexture(_background->surfacePtr(), true);
-		_gfx->drawSkybox(_skyTexture, _position);
-		if (_thunderTextures.empty()) {
-			_thunderTextures.push_back(_gfx->createTexture(_thunderFrames[0]->surfacePtr(), true));
-			_thunderTextures.push_back(_gfx->createTexture(_thunderFrames[1]->surfacePtr(), true));
+	if (_currentArea->isOutside()) {
+		if (_background) {
+			if (!_skyTexture)
+				_skyTexture = _gfx->createTexture(_background->surfacePtr(), true);
+			_gfx->drawSkybox(_skyTexture, _position);
+			if (_thunderTextures.empty()) {
+				_thunderTextures.push_back(_gfx->createTexture(_thunderFrames[0]->surfacePtr(), true));
+				_thunderTextures.push_back(_gfx->createTexture(_thunderFrames[1]->surfacePtr(), true));
+			}
+			updateThunder();
 		}
-		updateThunder();
 	}
 }
 


Commit: 1f21d0ac5fefa0005f102a7936a80b316c3f4405
    https://github.com/scummvm/scummvm/commit/1f21d0ac5fefa0005f102a7936a80b316c3f4405
Author: neuromancer (gustavo.grieco at gmail.com)
Date: 2025-10-06T23:38:38-03:00

Commit Message:
FREESCAPE: fix bug breaking bug in castle (zx)

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


diff --git a/engines/freescape/games/castle/castle.cpp b/engines/freescape/games/castle/castle.cpp
index b54f3c2579c..c6bf89d098d 100644
--- a/engines/freescape/games/castle/castle.cpp
+++ b/engines/freescape/games/castle/castle.cpp
@@ -351,7 +351,6 @@ void CastleEngine::gotoArea(uint16 areaID, int entranceID) {
 		_gfx->_keyColor = 255;
 
 	_lastPosition = _position;
-	_gameStateVars[0x1f] = 0;
 
 	if (areaID == _startArea && entranceID == _startEntrance) {
 		if (getGameBit(31))
@@ -1391,8 +1390,6 @@ void CastleEngine::updateTimeVariables() {
 	}
 
 	if (_lastTenSeconds != seconds / 10) {
-		//_gameStateVars[0x1e] += 1;
-		//_gameStateVars[0x1f] += 1;
 		_lastTenSeconds = seconds / 10;
 		executeLocalGlobalConditions(false, false, true);
 	}




More information about the Scummvm-git-logs mailing list