Opened 20 years ago

Closed 19 years ago

Last modified 19 years ago

#1196 closed defect (fixed)

COMI: strange light pixels

Reported by: SF/logicdeluxe Owned by: fingolfin
Priority: normal Component: Engine: SCUMM
Version: Keywords:
Cc: Game: Monkey Island 3


ScummVM 0.5.3cvs (Aug 27 2003 16:57:28) This can be seen on several places throughout the game. Some charakters have some strange light colored pixels on them. For example this can be seen on Lafeet on Scull Island, on Elain in Part V or on LeChuck at the ice set in Part VI.

Ticket imported from: #795940. Ticket imported from: bugs/1196.

Attachments (1) (54.9 KB ) - added by SF/logicdeluxe 20 years ago.

Download all attachments as: .zip

Change History (7)

by SF/logicdeluxe, 20 years ago

Attachment: added

comment:1 by fingolfin, 20 years ago

Interesting. I see the problem, too (with Elaine in part V, at least, using your savegame). Note: all actors in that scene are set to shadow_mode 3, maybe that's related...

comment:2 by SF/bigmuzzy, 20 years ago

Kenny's lemonade has no color when he pour it through the bottomless mug.

[English version of CoMI; Windows XP SP1; ScummVM 0.6.0pre (Feb 24 2004 12:10:45)]

comment:3 by Kirben, 19 years ago

I noticed the palette glitches in all those scenes stop if I exclude (pcolor = 4) from the shadow_mode 3 section of akos codec1. So could add hack to 0.6.0 branch for now. That isn't correct solution though, COMI disasm. clearly shows the same '(pcolor < 8)' check for shadow_mode 3 in akos codec 1 but divides each pcolor values into separate cases of code after that.

comment:4 by fingolfin, 19 years ago

It would be interesting to see that disasm... could you attach or email it? Thanks!

comment:5 by fingolfin, 19 years ago

What happens is this: Shadow mode 3 is used; in this special mode, colors 0-7 act as "shadow" colors; they are used to fake a "darkening" of the color below the pixel being drawn. To achieve (a resemblence of) transparency like this with 8bit graphics, the game uses a trick: the shadow palettes match each color to another "faded" color, from the same palette. Anyway, let's forget about these details for now...

The problem is that the game apparently only ever sets the shadow palettes for level 6 and 7. At least the scripts I've looked at only do it for that palette. As a result, when the other levels get used (like by the elaine-costume in this scene), we don't get the desired result.

Solution: always let the shadow palettes default to all black (in other words, memset it to black within startScene()).

comment:6 by fingolfin, 19 years ago

Owner: set to fingolfin
Resolution: fixed
Status: newclosed
Note: See TracTickets for help on using tickets.