Chapter 3 Binary Format
3-19 LightList

2. Light Area

The Light area stores the actual light data. The Light area is mapped as follows.

LightHeader u32 light_tag
u32 this_light_index
u32 light_header_size
u32 light_size
u32 light_name_index
u32 light_type
float ambient_r
float ambient_g
float ambient_b
u32 dir_light_num
u32 nintendo_extension_block_size
u32 user_extension_block_size
DirLight(0)
...
DirLight(dir_light_num - 1)
NintendoExtensionBlock
UserExtensionBlock

Figure: Light Area Memory Map

u32 light_tag Tag indicating Light. Set the following tag.
TAG_LIGHT	0x000f0100
u32 this_light_index Index number of this Light
u32 light_header_size Size of this LightHeader
u32 light_size Size of this Light
u32 light_name_index Index number of Light name in NameList
u32 light_type Specifies the type of light. Currently, the following types are defined.
LIGHT_TYPE_DIRECTION	0X00000000
LIGHT_TYPE_POSITION	0x00000001

LIGHT_TYPE_DIRECTION: Specifies a directional light.

LIGHT_TYPE_POSITION: Specifies a positional light.

float ambient_r Red component of ambient color
float ambient_g Green component of ambient color
float ambient_b Red component of ambient color
u32 dir_light_num Number of DirLight
u32 nintendo_extension_block_size Nintendo extension block size
u32 user_extension_block_size User extension block size
DirLight The DirLight area describes data related to one type of directional light.
NintendoExtensionBlock Nintendo extension block
UserExtensionBlock User extension block