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

AndywinXp noreply at scummvm.org
Tue May 26 20:59:30 UTC 2026


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

Summary:
f03cf2eac7 BOLT: CARNIVAL: Fix BE platforms


Commit: f03cf2eac7a0b359dd05d52b08b1cf4582929017
    https://github.com/scummvm/scummvm/commit/f03cf2eac7a0b359dd05d52b08b1cf4582929017
Author: AndywinXp (andywinxp at gmail.com)
Date: 2026-05-26T22:59:19+02:00

Commit Message:
BOLT: CARNIVAL: Fix BE platforms

Fixes #16830:
"BOLT: CARNIVAL: GFX corrupt"

Changed paths:
    engines/bolt/booth.cpp
    engines/bolt/booths/george.cpp
    engines/bolt/booths/scooby.cpp
    engines/bolt/booths/yogi.cpp
    engines/bolt/swap.cpp
    engines/bolt/utils.cpp


diff --git a/engines/bolt/booth.cpp b/engines/bolt/booth.cpp
index beef808cc12..95d072bf756 100644
--- a/engines/bolt/booth.cpp
+++ b/engines/bolt/booth.cpp
@@ -889,9 +889,9 @@ void BoltEngine::blastColors(byte **paletteTable, int16 index, int16 mode) {
 
 	for (int16 i = 0; i < count; i++) {
 		int16 off = i * 6;
-		localPalette[si] = entry[4 + off];
-		localPalette[si + 1] = entry[6 + off];
-		localPalette[si + 2] = entry[8 + off];
+		localPalette[si]     = READ_UINT16(entry + 4 + off) & 0xFF;
+		localPalette[si + 1] = READ_UINT16(entry + 6 + off) & 0xFF;
+		localPalette[si + 2] = READ_UINT16(entry + 8 + off) & 0xFF;
 		si += 3;
 	}
 
diff --git a/engines/bolt/booths/george.cpp b/engines/bolt/booths/george.cpp
index c4e21972bf2..05c4ce2899e 100644
--- a/engines/bolt/booths/george.cpp
+++ b/engines/bolt/booths/george.cpp
@@ -928,14 +928,14 @@ int16 BoltEngine::helpGeorge() {
 			if (!_georgeActiveHelpObject)
 				break;
 
-			switch (READ_UINT16(_georgeActiveHelpObject)) {
+			switch (READ_UINT32(_georgeActiveHelpObject)) {
 			case 0:
 			case 1:
-				if (READ_UINT16(_georgeActiveHelpObject) == 1) {
+				if (READ_UINT32(_georgeActiveHelpObject) == 1) {
 					_georgeHelpActive = 0;
 				}
 
-				exitCode = READ_UINT16(_georgeActiveHelpObject);
+				exitCode = (int16)READ_UINT32(_georgeActiveHelpObject);
 				break;
 			case 2:
 				if (animPlaying)
@@ -944,7 +944,7 @@ int16 BoltEngine::helpGeorge() {
 				if (animReady)
 					break;
 
-				if (startAnimation(_rtfHandle, 30)) {
+				if (startAnimation(_rtfHandle, _isDemo ? 25 : 30)) {
 					_georgeHelpStep = 0;
 					animPlaying = 1;
 				}
diff --git a/engines/bolt/booths/scooby.cpp b/engines/bolt/booths/scooby.cpp
index 0d126965e52..262754d2a89 100644
--- a/engines/bolt/booths/scooby.cpp
+++ b/engines/bolt/booths/scooby.cpp
@@ -55,7 +55,7 @@ void BoltEngine::displayPicClipHack(byte *pic, int16 offsetX, int16 offsetY, int
 	_scoobyTempPic.paletteCount = 0;
 	_scoobyTempPic.flags = 0;
 
-	if (*pic & 2)
+	if (READ_UINT16(pic) & 0x0002)
 		_scoobyTempPic.flags |= 2;
 
 	_xp->displayPic(&_scoobyTempPic,
@@ -1755,14 +1755,14 @@ int16 BoltEngine::helpScooby() {
 			if (hoveredEntry == nullptr)
 				break;
 
-			selection = READ_UINT16(hoveredEntry);
+			selection = (int16)READ_UINT32(hoveredEntry);
 
 			if (READ_UINT32(hoveredEntry) != 2)
 				break;
 			if (wasPlaying != 0)
 				break;
 
-			if (startAnimation(_rtfHandle, 0x1C)) {
+			if (startAnimation(_rtfHandle, _isDemo ? 23 : 28)) {
 				animFrameIdx = 0;
 				isPlaying = 1;
 			}
diff --git a/engines/bolt/booths/yogi.cpp b/engines/bolt/booths/yogi.cpp
index 52c5dbe5423..d77c33aa42f 100644
--- a/engines/bolt/booths/yogi.cpp
+++ b/engines/bolt/booths/yogi.cpp
@@ -587,7 +587,7 @@ void BoltEngine::yogiHandleActionButton(int16 x, int16 y) {
 			setYogiColors(0);
 		}
 		if (!_yogiHotSpotCount && !stoppedAnim) {
-			_yogiHotSpotCount = startAnimation(_rtfHandle, 0x1D);
+			_yogiHotSpotCount = startAnimation(_rtfHandle, _isDemo ? 24 : 29);
 			_yogiAnimActive = 0;
 		}
 	} else {
diff --git a/engines/bolt/swap.cpp b/engines/bolt/swap.cpp
index e526e17908f..83b5a18e060 100644
--- a/engines/bolt/swap.cpp
+++ b/engines/bolt/swap.cpp
@@ -83,7 +83,7 @@ void BoltEngine::swapSpriteHeader() {
 	WRITE_UINT16(data + 0x0C, READ_BE_INT16(data + 0x0C));
 	WRITE_UINT16(data + 0x16, READ_BE_INT16(data + 0x16));
 
-	if (!(data[0] & 0x10)) {
+	if (!(READ_UINT16(data) & 0x0010)) {
 		uint32 idx = _resolvedPtrs.size();
 		_resolvedPtrs.push_back(data + 0x18);
 		WRITE_UINT32(data + 0x12, idx | 0x80000000);
diff --git a/engines/bolt/utils.cpp b/engines/bolt/utils.cpp
index 26eea1a881f..91735b468b7 100644
--- a/engines/bolt/utils.cpp
+++ b/engines/bolt/utils.cpp
@@ -77,10 +77,11 @@ void BoltEngine::boltPict2Pict(XPPicDesc *dest, byte *boltSprite) {
 	dest->paletteCount = 0;
 	dest->flags = 0;
 
-	if (boltSprite[1] & 0x01)
+	uint16 sprFlags = READ_UINT16(boltSprite);
+	if (sprFlags & 0x0100)
 		dest->flags |= 1;
 
-	if (boltSprite[0] & 0x02)
+	if (sprFlags & 0x0002)
 		dest->flags |= 2;
 }
 




More information about the Scummvm-git-logs mailing list