Just tested my record:
Code:
800,"Test Dark Screen",3,-16777216,0x1,100,,-1,0,0,
Code:
1 ID int
2 Name str
3 Type int
0: ffxEffectGlow
1: ffxEffectDeath
2: ffxEffectNetherWorld
3: ffxEffectSwirlingFog
4 Col color, see in hex. rrggbbxx
5 edge int Screen Edge Size - lower the value, closer to the centre of the screen it will go.
6 bw int (the higher this is.. the more Black and White the screen will go) - higher the value, more black and white (greyscale) it will go.
7 unk null
8 LightParams iRefId
9 SoundAmbience iRefId
10 ZoneMusic iRefId
Why do I have that value?
RGBX = Red, Green, Blue, Unused channel.
Each channel is a uint8 value ranging from 0-255 then shifted into its position in a 32 bit integer.
So if you extract each channel:
https://ideone.com/OtCXRO
Code:
public static void main (String[] args) throws java.lang.Exception
{
int colour = -16777216;
int r = (colour)&0xFF;
int g = (colour>>8)&0xFF;
int b = (colour>>16)&0xFF;
int x = (colour>>24)&0xFF;
System.out.println(r);
System.out.println(g);
System.out.println(b);
System.out.println(x);
}
stdout copy
0
0
0
255
0, 0, 0 = black, 255 for the unused bits.
Test other records to see what those values have produced if you get stuck again. It helps with debugging.
Edit: Since the X channel is just ignored bits I believe, you can just use a colour to RGBA converter since alpha will then be the ignored channel and RGB remains in the correct positions.