======== Model Data ======== Banjo-Tooie uses a file-system in which most resources are packed into file blocks throughout the ROM, and are unpacked into RAM when needed. Among these are the model files, each with their own syntax and load-lines. This page's purpose is to cover the syntax and properties of said model files. ===== Header ===== ^ Address ^ Value/Syntax ^ Description ^ | 0x00000000 | [00 00 00 0B] | START | | 0x00000004 | [aa aa aa aa] | Geometry Layout Offset | | 0x00000008 | [bb bb cc cc] | bb=Texture Setup Offset (Usually 00 50), cc=Geo Type* | | 0x0000000C | [dd dd dd dd] | Display List Setup Offset | | 0x00000010 | [ee ee ee ee] | Vertex Store Setup Offset | | 0x00000014 | [00 00 00 00] | ? | | 0x00000018 | [ff ff ff ff] | Animation Setup | | 0x0000001C | [gg gg gg gg] | Collision Setup | | 0x00000020 | [hh hh hh hh] | Effects Setup End Address | | 0x00000024 | [hh hh hh hh] | Effects Setup | | 0x00000028 | [00 00 00 00] | ? | | 0x0000002C | [00 00 00 00] | ? | | 0x00000030 | [00 00 00 00] | ? | | 0x00000034 | [00 00 ii ii] | Related to external textures??? | | 0x00000038 | [jj jj jj jj] | Some animation setup offset? (Vertex clipping?) | | 0x00000044 | [kk kk ll ll] | kk= Tri count, ll= vert count | ''*Geo Types: 0000=normal, 0002= Trilinear MipMapping (RGBA16), 0004=Env mapping'' ---- ===== Texture Setup ===== ^ Offset from TexSetup Start ^ Value/Syntax ^ Description ^ | 0x00000000 | [aa aa aa aa] | Amount of data in bytes to load (including command) | | 0x00000004 | [bb bb cc 00] | bb=Texture Count, cc=External Textures(01y 00n) | | 0x00000008 | [dd dd dd dd] | Texture[i] segment address from texture data start OR External Texture Index* | | 0x0000000C | [ee ff xx yy] | Texture[i] ee = 0x80 for MIP Mapping (00 otherwise), ff =type*, xxyy=Pixel Grid | ''*Types: 01=CI4, 02=CI8 04=RGBA16, 08=RGBA32, 0x10=IA8,'' *External texture indices start at FileID 0x1EF6, 0 indexed. Example: 00 00 13 28 80 04 20 20 External texture file ID= 1EF6+1328 = 321E This will load an RGBA16 32x32 mipmapped texture from FileID 0x321E. ---- ==== Display List Setup ==== ^ Offset from DLSetup Start ^ Value/Syntax ^ Description ^ | 0x00000000 | [aa aa aa aa 00 00 00 00] | F3DEX2 Command Count | | 0x00000008 | [[http://wiki.origami64.net/F3DEX2|F3DEX2]] | F3DEX2 Display List | ---- ==== Vertex Store Setup ==== ^ Offset from VTXSetup Start ^ Value/Syntax ^ Description ^ | 0x00000000 | [aa aa bb bb cc cc] | Draw distance: Negative Coords | | 0x00000006 | [dd dd ee ee ff ff] | Draw distance: Positive Coords | | 0x0000000C | [gg gg hh hh] | Object Coordinate Range | | 0x00000010 | [jj jj] | Collision range? (Enemies, Objects) | | 0x00000014 | [kk kk] | Collision range? (Banjo) | | 0x00000016 | [ll ll] | Vertex Count*2 | ----