Chapter 3 Binary Format

3-9. VectorList

1. VectorList Area

VectorListHeader | u32 | vector_list_tag
u32 | vector_list_header_size
u32 | vector_list_size
u32 | tri_nv_group_num
u32 | vtx_nv_group_num
u32 | nintendo_extension_block_size
u32 | user_extension_block_size
u32 | tri_nv_group_size(0)
...
u32 | tri_nv_group_size(tri_nv_group_num - 1)
u32 | vtx_nv_group_size(0)
...
u32 | vtx_nv_group_size(vtx_nv_group_num - 1)
| TriNvGroup(0)
...
TriNvGroup(tri_nv_group_num - 1)
VtxNvGroup(0)
...
VtxNvGroup(vtx_nv_group_num - 1)
NintendoExtensionBlock
UserExtensionBlock

Figure: VectorList Area Memory Map

u32 vector_list_tag | Tag indicating VectorList. Set the following tag.
    TAG_VECTOR_LIST	0x00060000
u32 vector_list_header_size | Size of VectorListHeader.
u32 vector_list_size | Size of VectorList.
u32 tri_nv_group_num | Total number of TriNvGroup
u32 vtx_nv_group_num | Total number of VtxNvGroup
u32 nintendo_extension_block_size | Nintendo extension block size
u32 user_extension_block_size | User extension block size
u32 tri_nv_group_size | Size of each TriNvGroup.
u32 vtx_nv_group_size | Size of each VtxNvGroup.
TriNvGroup | Normal vector of polygon.
VtxNvGroup | Normal vector of vertex.
NintendoExtensionBlock | Nintendo extension block
UserExtensionBlock | User extension block