[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