Chapter 3 Binary Format

3-13 Material List

1. MatList Area

MatList is a list that describes information on the material type. When it is referenced by shape data and has texture, it is linked to TexList. MatList is mapped as follows.

MatListHeader | u32 | mat_list_tag
u32 | mat_list_header_size
u32 | mat_list_size
u32 | mat_num
u32 | nintendo_extension_block_size
u32 | user_extension_block_size
u32 | mat_num_byte(0)
...
u32 | mat_num_byte(mat_num - 1)
| Mat(0)
...
Mat(mat_num - 1)
NintendoExtensionBlock
UserExtensionBlock

Figure: MatList Area Memory Map

u32 mat_list_tag | Tag indicating MatList. Set the following flag
    TAG_MAT_LIST	0x000a0000
u32 mat_list_header_size | u32 mat_list_header_size
u32 mat_list_size | Size of this MatList
u32 mat_num | Total number of Mat contained in MatList
u32 nintendo_extension_block_size | Nintendo extension block size
u32 user_extension_block_size | User extension block size
u32 mat_num_byte | Size of corresponding Mat area
Mat | Actual material
NintendoExtensionBlock | Nintendo extension block
UserExtensinoBlock | User extension block