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