Chapter 3 Binary Format

3-3 File Header

u32 | version
u32 | file_size
u32 | header_tag
u32 | file_header_num_byte
u32 | scene_list_num_byte
u32 | env_list_num_byte
u32 | cam_list_num_byte
u32 | light_list_num_byte
u32 | obj_list_num_byte
u32 | shape_list_num_byte
u32 | vtx_list_num_byte
u32 | color_list_num_byte
u32 | vector_list_num_byte
u32 | st_list_num_byte
u32 | tri_list_num_byte
u32 | part_list_num_byte
u32 | mat_list_num_byte
u32 | tex_list_num_byte
u32 | tex_img_list_num_byte
u32 | anim_list_num_byte
u32 | coll_list_num_byte
u32 | switch_list_num_byte
u32 | name_list_num_byte
u32 | nintendo_extension_block_size
u32 | user_extension_block_size
NintendoExtensionBlock
UserExtensionBlock

Figure: File Header

u32 version | Enter the version number. Refer to Chapter 4 "Version Numbering" for details.
u32 file_size | Size (number of bytes) of file
u32 header_tag | File Header Tag
    TAG_HEADER	0x00000000
u32 file_header_num_byte | Size of file header
u32 scene_list_num_byte | Size of SceneList
u32 env_list_num_byte | Size of EnvList
u32 cam_list_num_byte | Size of CamList
u32 light_list_num_byte | Size of LightList
u32 obj_list_num_byte | Size of ObjList
u32 shape_list_num_byte | Size of ShapeList
u32 vtx_list_num_byte | Size of VtxList
u32 color_list_num_byte | Size of ColorList
u32 st_list_num_byte | Size of StList
u32 tri_list_num_byte | Size of TriList
u32 part_list_num_byte | Size of PartList
u32 mat_list_num_byte | Size of MatList
u32 tex_list_num_byte | Size of TexList
u32 tex_img_list_num_byte | Size of TexImgList
u32 anim_list_num_byte | Size of AnimList
u32 coll_list_num_byte | Size of CollList
u32 switch_list_num_byte | Size of SwitchList
u32 name_list_num_byte | Size of NameList
u32 nintendo_extension_block_size | If extension data is created on the Nintendo 64 side, the data is stored in NintendoExtensionBlock. When extension data is not used, set the default flag as follows:
    NINTENDO_EXT_BLOCK_NONE	0x00000000
u32 user_extension_block_size | If extension data is created on the user side, the data is stored in UserExtensionBlock. When extension data is not used, set the default flag as follows:
    USER_EXT_BLOCK_NONE	0x00000000
NintendoExtensionBlock | If extension data is created on the Nintendo 64 side, the data is stored in this NintendoExtensionBlock.
UserExtensionBlock | If extension data is created on the user side, the data is stored in this UserExtensionBlock.