BLIGHT (File Format)

From Custom Mario Kart
Revision as of 01:42, 21 October 2018 by Riidefi (talk | contribs) (Updated headers based on eggIBinary static analysis)
Jump to navigation Jump to search

The BLIGHT (Binary LIGHT) filetype controls lighting effects on characters, karts, items and objects in a track. It is always seen in the posteffect folder inside an U8. This file is not required for a track to load, as there is a default.blight file inside Common.szs.

File Format

File Header

The following table describes the version 2 LIGHT header.

Offset Type Description
0x00 String File magic. Always LGHT in ASCII.
0x04 UInt32 File size. Always 0x5A8 in MKW.
0x08 Byte Version. Always 02 in MKW
0x09 Byte[3] Padding.
0x0C UInt32 Unknown. Always 00 00 00 00.
0x10 UInt16 Number of LOBJs. Always 0x10 in MKW.
0x12 UInt16 Number of Ambient Lights. Always 0x10 in MKW.
0x14 Byte Unknown. Always 00
0x15 Byte Unknown. Always 00
0x16 Byte Unknown. Always 00
0x17 Byte Unknown. Always FF
0x18 Byte[16] Padding.

However, one thing to note is that although 16 lights are stored in this file, only 8 can be referenced by the KCL (IDs 00 to 07). This is because the KCL only has three binary digits to reference lights (and 111 in binary = 7).

Light Object data (LOBJ)

LOBJ file inside the BLIGHT file

The first light object starts at 0x28. These addresses are relative to the start of the object.


Offset Type Description
0x00 String Section magic. Always LOBJ in ASCII.
0x04 UInt32 Section size. Always 0x50.
0x08 Byte Version. Always 02 in MKW
0x09 Byte[3] Padding.
0x0C UInt32 Unknown. Always 00 00 00 00.
0x10 UInt16 Unknown. Always 00 00.
0x12 Byte Light type? Always 00 on unused/undefined lights, 02 most common, 01 (CCW) and 04 (RR, TD) seen.
0x13 Byte Unknown. Always 01.
0x14 UInt16 This value stores the index of the ambient light this light uses.
0x16 UInt16 Unknown. Always 06 41 or 06 21.
0x18 Float[3] 3D origin vector.
0x24 Float[3] 3D destination vector.
0x30 Float This seems to control how large the color effect is on this light.
0x34 Byte[4] RGBA light color.
0x38 UInt32 Unknown. Always 00 00 00 FF.
0x3C Float Unknown. Always 42 B4 00 00, 90 in float.
0x40 Float Unknown. Always 3F 00 00 00, 0.5 in float.
0x44 Float Unknown. Always 3F 00 00 00?, 0.5 in float.
0x48 UInt64 Padding? Nearly always 00 00 00 00 00 00 00 00. Sometimes it's 00 00 00 FF 00 00 00 00 on the last light.
0x50 End of object, start of next

Ambient Light data

Ambient colors are used by each light object. They are linked by a light.

Offset Type Information
0x00 Byte[4] RGBA ambient light color.
0x04 UInt32 Padding.
0x08 End of color, start of next

All unused ones are 64 64 64 FF (a neutral gray).

Tools

The following tools can handle BLIGHT files: