[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