I'm trying to run Pirate Ship Higemaru on Sega Saturn and getting few palette problems :
On this picture the score background color is wrong it should be blue instead of black.
I have splitted the picture into 2 tilemaps layers. One displays all tiles with palette <16 and the other one >=16 as the Saturn supports only 16 palettes on a tilemap.
On this one, I get problems with sprite palette, i still keep always the same colors for ennemies, on green levels they have to be green, red on red levels, etc. Could you help he to identify/setup correctly sprite palettes ?
for (i = 0; i < 0x80; i+=4)
{
if(i<128) //NBG1 first 16 palettes moved to 16 colors palettes(12 empty)
{
colBgAddr[0x000 + i +xvbt] = tmp[Prom[i+0]];
colBgAddr[0x000 + i+1+xvbt] = tmp[Prom[i+1]];
colBgAddr[0x000 + i+2+xvbt] = tmp[Prom[i+2]];
colBgAddr[0x000 + i+3+xvbt] = tmp[Prom[i+3]];
}
//NBG2 next 16 palettes moved to 16 colors palettes(12 empty)
// starts at 88 ?
colBgAddr2[0x100 + i +xvbt] = tmp[Prom[i+0+88]];
colBgAddr2[0x100 + i+1+xvbt] = tmp[Prom[i+1+88]];
colBgAddr2[0x100 + i+2+xvbt] = tmp[Prom[i+2+88]];
colBgAddr2[0x100 + i+3+xvbt] = tmp[Prom[i+3+88]];
xvbt+=12; //to get 12 empty colors
#ifndef USE_MAP
Palette = tmp[Prom & 0x0f];
#endif
}
for (i = 0x80; i < 0x180; i+=4)
{
// sprite palettes ?
colAddr[0x000 + i - 0x80] = tmp[(Prom[i + 0x80] & 0x0f) | 0x10];
colAddr[0x000 + i+1 - 0x80] = tmp[(Prom[i+1 + 0x80] & 0x0f) | 0x10];
colAddr[0x000 + i+2 - 0x80] = tmp[(Prom[i+2 + 0x80] & 0x0f) | 0x10];
colAddr[0x000 + i+3 - 0x80] = tmp[(Prom[i+3 + 0x80] & 0x0f) | 0x10];
#ifndef USE_MAP
Palette = tmp[(Prom[i + 0x80] & 0x0f) | 0x10];
#endif
}