[Scummvm-tracker] [ScummVM :: Bugs] #16395: SCI: LSL1VGA fix broken dialogue box colors after restart (original bug)
ScummVM :: Bugs
trac at scummvm.org
Sat Dec 20 00:00:11 UTC 2025
#16395: SCI: LSL1VGA fix broken dialogue box colors after restart (original bug)
----------------------------+-----------------------------------
Reporter: GermanTribun | Owner: sluicebox
Type: feature request | Status: closed
Priority: normal | Component: Engine: SCI
Version: | Resolution: wontfix
Keywords: original | Game: Leisure Suit Larry 1
----------------------------+-----------------------------------
Changes (by sluicebox):
* keywords: => original
* owner: (none) => sluicebox
* resolution: => wontfix
* status: new => closed
Comment:
It's a script bug in the original. I don't see how to reasonably fix it. I
tried!
Restarting this game usually alters at least one global color incorrectly.
It's not just the dialog background color, there are 30+ other colors that
are affected. It all depends on the system palette, which depends on the
room you're in and other game state. Even restarting from the first room
outside the bar alters a color incorrectly that shows up much later. If
you know where to look, you'll see a lot of this in LSL1.
The SCI engine initializes the system palette from palete 999. LSL1's
initialization script immediately searches the system palette for 30+ RGB
colors using `kPaletteFind` and stores them in global variables. But when
restarting SCI, the engine does not reset the system palette, and neither
does the script, so the LSL1 initialization script gets different results
from `kPaletteFind`.
Our options are limited. The engine must not alter the system palette on
restart; that breaks things. I patched in an explicit load of palette 999
before the LSL1 color script to see if that would fix it, and it does, but
it also breaks the restart transition. I can't patch the initialization
script to run again later, because it does too many things and would still
get the wrong result because of the first room. I'm out of ideas given the
structure of these scripts.
Technically, we could patch the script to use the hard-coded palette
colors instead of querying the system palette, but that would be a huge
patch because there are 30+ of these queries. I'm unwilling to write such
a massive patch for this cosmetic original behavior; i would be
disproportionate and not spark joy. I'm also don't want to write a small
patch for this one color when in fact there are many colors in this game
with this problem. We either fix it or leave it like the original. These
patches are also risky, because hard-coding colors would break versions
with different palettes; that's the reason they're not hard-coded in the
first place. We would have to manage that too, so more complexity, and
still possibly break other versions. Amiga for sure, but who knows how
many other fan mods or translations are out there.
Closing as WONTFIX, but it's more of a CANTFIX. It's a good bug though!
--
Ticket URL: <https://bugs.scummvm.org/ticket/16395#comment:1>
ScummVM :: Bugs <https://bugs.scummvm.org>
ScummVM
More information about the Scummvm-tracker
mailing list