Interestingly, but unsurprisingly, this was caused by 20 years old code which now produces no effects
at all, other than causing the bug that this commit fixes :-P I have checked the disasm of every version
of SCUMM, and there is no sign of updatePalette() ever being called at the end of the fadeOut() function.
Removing it fixes the issue. I have tested every game I have for this change, but I'm sure that whatever
that updatePalette() call was trying to fix 20 years ago, it has probably been fixed properly now, so there's
no need for it.
Also, removed _fullRedraw toggles in o_LoadRoom for DIG and COMI, which, judging by the disasm, don't
force the redraw after changing the scene.
There are so many workarounds where we either want to make sure it's not
the "Ultimate Talkie" version or that it is, that it's much nicer to
have a feature flag than having to strcmp() the variant.
In the French VGA floppy release of Monkey Island 1 (and, apparently,
this release alone), the easter egg making fun of Sierra games has a
dark blue background that makes the black text really hard to read (very
much like the MI1 v5 issue in front of the Governor's mansion, which we
already fix). The problem is in the OI itself, which was redrawn to
feature a translated text.
This problem doesn't exist in the other French releases (including the
Amiga VGA one), and the non-French VGA floppy releases look fine, to me.
So, just force a white background instead of dark blue, for this object
and on this particular release only.
(Note: they also messed up the top and left borders of that object, and
so a small black horizontal line will suddenly appear when the "Guybrush
falling into the trees" animation starts. Unfortunately, this is a
horizontal line, while strips are drawn as a series of vertical lines,
so it's hard to only fix this line, especially since its black color is
reused in the same strip for Guybrush trousers... So, this enhancement
just concentrates on solving the main issue, which is the legibility
problem with the blue background.)
The colors in the sign that tells you that the dogs are only sleeping
are much harder to read in the VGA CD version than in the VGA floppy
version. I assume these were not picked deliberately, but rather a
consequence of the palette being different. So this works around that by
temporarily remapping the palette for the sign object, and adjusting one
of the text colors to something close to the floppy version.
In the end, once fully understood, the CGA rendering is very similar for all versions. So I did manage to clean out some code. Hercules mode for MI1EGA is broken here, I will have another commit for that, once I understand how it works.
This does not improve anything about these modes for v2 and v3, except:
- brighter CGA colors
- v2 will also get the more accurate Hercules mouse cursor
I will do improve v2/v3 as separate tasks. v3 seems to be mostly fine, anyway, except for the actors (we dither them just like the backgrounds, but that looks different in DOSBox).
In the 256-color versions of Indy3, there are some weird horizontal
cyan/pink lines which appear out of place in the Berlin night scene.
The official FM-TOWNS release fixed that by reusing some other colors
from the local palette, so we can apply a similar change for the DOS
and Steam versions, as long as we keep the original EGA colors for the
text and inventory.
(We still do a quick check for the original `smapLen`, just in case a
fan translation redid the background.)
Based on a somewhat blurry YouTube video, it looks like this is what the
original did. Though it also looks like it showed a wider image than the
320 pixels ScummVM shows. Possibly 352 pixels, based on the assumption
that it was 44 8-pixel blocks?