id summary reporter owner description type status priority component version resolution keywords cc game 7320 FMTOWNS: Need more than 256 colors to display properly SF/hibernatus athrxx "{{{#!Markdown 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. }}} {{{#!div style=""font-size: 75%"" Ticket imported from: !#812891. Ticket imported from: feature-requests/136. }}}" feature request closed low Engine: SCUMM fixed Loom