[Scummvm-tracker] [ScummVM :: Bugs] #15869: SCUMM: MI1: Message banner can be invisible if palette is all black
ScummVM :: Bugs
trac at scummvm.org
Fri Jul 11 05:34:08 UTC 2025
#15869: SCUMM: MI1: Message banner can be invisible if palette is all black
-------------------------+------------------------------
Reporter: eriktorbjorn | Owner: AndywinXp
Type: defect | Status: new
Priority: normal | Component: Engine: SCUMM
Version: | Resolution:
Keywords: | Game: Monkey Island 1
-------------------------+------------------------------
Comment (by eriktorbjorn):
I've tried it in DREAMM, and the banner is visible there.
Simply extending the case to cover v4 isn't quite enough. We also need to
initialize the shadow palette, apparently? Quick proof-of-concept patch:
{{{
diff --git a/engines/scumm/palette.cpp b/engines/scumm/palette.cpp
index f94c44410dc..4d32ccf0b76 100644
--- a/engines/scumm/palette.cpp
+++ b/engines/scumm/palette.cpp
@@ -270,7 +270,7 @@ void ScummEngine::resetPalette(bool isBootUp) {
_townsScreen->toggleLayers(_townsActiveLayerFlags);
#endif // DISABLE_TOWNS_DUAL_LAYER_MODE
- } else if (isBootUp && (_game.version >= 5 &&
_game.heversion == 0) &&
+ } else if (isBootUp && (_game.version >= 4 &&
_game.heversion == 0) &&
(_game.platform == Common::kPlatformDOS ||
_game.platform == Common::kPlatformUnknown) &&
_renderMode == Common::kRenderDefault) {
// VGA games at boot-up have at their disposal
whatever mode 13h
@@ -278,6 +278,11 @@ void ScummEngine::resetPalette(bool isBootUp) {
// We just need the first few colors, which are
the same as the EGA colors.
// (See #15869: "SCUMM: MI1: Message banner can be
invisible if palette is all black")
setPaletteFromTable(tableEGAPalette,
sizeof(tableEGAPalette) / 3);
+
+ if (_game.id == GID_MONKEY_VGA) {
+ for (int i = 0; i < _shadowPaletteSize;
i++)
+ _shadowPalette[i] = i;
+ }
}
setDirtyColors(0, 255);
}}}
--
Ticket URL: <https://bugs.scummvm.org/ticket/15869#comment:4>
ScummVM :: Bugs <https://bugs.scummvm.org>
ScummVM
More information about the Scummvm-tracker
mailing list