[ scummvm-Bugs-812891 ] FMTOWNS: Palette bugs
SourceForge.net
noreply at sourceforge.net
Fri Sep 26 07:26:51 CEST 2003
Bugs item #812891, was opened at 2003-09-26 07:26
Message generated for change (Tracker Item Submitted) made by Item Submitter
You can respond by visiting:
https://sourceforge.net/tracker/?func=detail&atid=418820&aid=812891&group_id=37116
Category: Graphics
Group: None
Status: Open
Resolution: None
Priority: 5
Submitted By: Thomas Combeleran (hibernatus)
Assigned to: Nobody/Anonymous (nobody)
Summary: FMTOWNS: Palette bugs
Initial Comment:
In Loom FM Towns there are some rooms where the
distaff has wrong colors (and other objects actually, the
leaf for example).
That's because the 16 first colors of the palette should
be constant.
They're initialized in sub_114C in INDY3.EXP, sub_156C in
LOOM.EXP and sub_1550 in ZAK.EXP.
And you can find the right palettes at 0x230B8 in
INDY3.EXP, 0x23E6C in LOOM.EXP and 0x23E0C in
ZAK.EXP. See: http://hibernatus34.free.fr/pv/
A little warning: When you enter room 5 in Loom, a call
to o5_roomOps does _shadowPalette[13] = 6 which
makes another glitch on the distaff. So the 16 first
colors are really constant and shouldn't be remapped.
I guess it isn't very important for Zak (there's a
difference, but it's not annoying).
Indy3 should also be ok since the PC version has the
same "bug" as scummvm (look at the verbs in the
gymnasium).
But since you have to fix Loom, i guess it won't hurt to
fix every FM Towns game :)
Same thing for CharsetRendererV3::setColor.
You only fixed Loom, but if you look at the disassembly
(sub_3014 in INDY3.EXP, sub_3718 in ZAK.EXP,
sub_36CC in LOOM.EXP), you can see it should be:
void CharsetRendererV3::setColor(byte color) {
_shadowColor = (_vm->_features &
GF_FMTOWNS) ? 8 : 0;
_color = color & 0x0F;
if ((_vm->_features & GF_FMTOWNS) &&
_color == 0)
_color = 8;
if (_vm->_features & GF_OLD256)
_dropShadow = ((color & 0x80) != 0);
else if (_vm->_features & GF_16COLOR)
_dropShadow = ((color & 0xF0) != 0);
else
_dropShadow = false;
}
The "if (_color == 0) _color = 8;" can be seen at
0000397B in the disassembly of ZAK.EXP for example.
But i guess that case never happens in scripts.
----------------------------------------------------------------------
You can respond by visiting:
https://sourceforge.net/tracker/?func=detail&atid=418820&aid=812891&group_id=37116
More information about the Scummvm-tracker
mailing list