Hello ! I found a difference between the PC version and the PS version, it's about four screens (kuro7, cosmo2, jtempl and trnad_1). In each sprites, one word coding for transparency can take four values: 0, 1, 2 or 3. This word is at offset 32 in PC sprites, and in "SpriteTP_Blend" (or Section 3) for the PS version:
On PC versionstruct spriteInfos {
uint16 zz0; //Always 0
int16 destX;
int16 destY;
uint16 zz1; //Inused
uint16 zz2; //Inused
uint16 srcX_1;
uint16 srcY_1;
uint16 srcX_2;
uint16 srcY_2;
uint16 width; //Inused: 16,32 or invalid value
uint16 height; //Inused: 16,32 or invalid value
uint16 paletteID;
uint16 ID; //Maybe used for Z value
uint8 parameter;
uint8 state; //flag
uint8 blending; //Boolean
uint8 zz3; //Boolean
uint16 blendingType; <----- HERE
uint16 pageID1;
uint16 pageID2; //If pageID2 > 0, use srcX_2 and srcY_2
uint16 deph;
uint32 Z;
uint32 X; //Proportionnal to srcXs
uint32 Y; //Proportionnal to srcYs
uint16 zz4; //Always 0
};
On PS version (based on Cyb page)struct spritePageInfos{
unsigned page_x:4; // LSB
unsigned page_y:1;
unsigned blendingType:2; <----- HERE
unsigned deph:2;
unsigned ZZ:7; // MSB
};
In the four screens, value of blendingType word is sometimes 2. In this case, there is no transparency by addition...
- 0: average ((colorImg+colorNew)/2)
- 1: additive blending (colorImg+colorNew)
- 2: subtractive blending (colorNew-colorImg)
- 3: 25% additive blending (colorImg+0.25*colorNew) [colne_3 -tv-|fship_5 -water-|min71 -tv-|nmkin_1 -buttons-|prisila -lamp-|ujunon4 & 5 -shine ocean-]
On PC, "blendingType=2" is always transparency by addition, but not on PS (left) :
Someone knows how to use blendingType?