aorante como activas en ensamblador el OR de los colores de los sprites??
En el área de la VRAM donde se guarda la info de color para los sprites de MSX2, dentro de esa info los 4 primeros bits (0-3) se utilizan para el color y el bit 6 es el de OR. Es un poco rollo por que se ha de indicar en los 16 colores que componen un sprite.
El bit de OR se ha de indicar en los colores del sprite que se coloca detras (en un plano inferior), al que se ha de fusionar. Luego has de procurar que los dos sprites se posicionen juntos para que se vean correctamente.
Pego aquí la info sobre los colores de sprites, sacado de portar (
http://problemkaputt.de/portar.htm#foregroundsprites):
Sprite coloursIn MSX2 video modes with colored sprites (screen 4-8), the fourth byte of the OAM entires is unused. Instead, the sprite attributes are stored in a separate 'color table'.
That table is always placed at the address of the above sprite attribute table minus 200h. The color table contains 20h entries (one for each entry of the OAM table), and each entry is sized 10h bytes.
The 10h bytes of each entry specify color & attributes for each line of the displayed sprites (assuming that the sprite size is set to 16x16).
The bytes in that color table are used as follow:
Bit 0-3 CL Color Code (0-15)
Bit 4 0 Unused
Bit 5 IC Ignore collisions with other sprites. (1=Ignore)
Bit 6 CC Mix color with sprite that has next higher priority.
Bit 7 EC Early clock (shift this line of the sprite 32 pixels to left)
For screen 4-7 the color code specifies the desired palette color, for screen 8 the sprite colors are hardcoded as follows:
Bit 0 Blue (1=on, 0=off)
Bit 1 Red (1=on, 0=off)
Bit 2 Green (1=on, 0=off)
Bit 3 Intensity (1=Light, 0=dark)
If the intensity-bit is set alone (with b0-2 cleared, ie. color
, then something like bright pink or bright orange is displayed instead.
When CC is set, the color of the sprite is logically ORed with the pixels of the sprite "that has the next higher priority, and that has CC=0". In that case a collision just mixes colors, and does not causes a conflict, ie. bit 5 of status register 0 doesn't get set.
If a line of a sprite has the CC bit set, then it MUST collide with at least one pixel of another sprite with higher priority, otherwise the line of the sprite isn't displayed at all!