This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision | ||
banjo_tooie:model_data [2019/05/21 11:18] trenavix Brightened colours so I can stop squinting |
banjo_tooie:model_data [2024/02/29 04:24] (current) BanjoFreak64 [Header] |
||
---|---|---|---|
Line 16: | Line 16: | ||
| 0x00000020 | [<color limegreen>hh hh hh hh</color>] | Effects Setup End Address | | | 0x00000020 | [<color limegreen>hh hh hh hh</color>] | Effects Setup End Address | | ||
| 0x00000024 | [<color limegreen>hh hh hh hh</color>] | Effects Setup | | | 0x00000024 | [<color limegreen>hh hh hh hh</color>] | Effects Setup | | ||
- | | 0x00000028 | [00 00 00 00] | ? | | + | | 0x00000028 | [<color aqua>ii ii ii ii</color>] | Vertex-Bone Mapping | |
- | | 0x0000002C | [00 00 00 00] | ? | | + | | 0x0000002C | [<color red>jj jj jj jj</color>] | Texure Animation Setup | |
| 0x00000030 | [00 00 00 00] | ? | | | 0x00000030 | [00 00 00 00] | ? | | ||
- | | 0x00000034 | [00 00 <color aqua>ii ii</color>] | Related to external textures??? | | + | | 0x00000034 | [00 00 <color limegreen>kk kk</color>] | Related to external textures??? | |
- | | 0x00000038 | [<color red>jj jj jj jj</color>] | Some animation setup offset? (Vertex clipping?) | | + | | 0x00000038 | [<color aqua>ll ll ll ll</color>] | Vertex Normals | |
- | | 0x00000044 | [<color limegreen>kk kk</color> <color aqua>ll ll</color>] | kk= Tri count, ll= vert count | | + | | 0x00000044 | [<color red>nn nn</color> <color limegreen>oo oo</color>] | nnnn= Tri count, oooo= vert count | |
- | ''*Geo Types: 0000=normal, 0002= Trilinear MipMapping (RGBA16), 0004=Env mapping'' | + | | 0x00000048 | [00 00 00 00] | ? | |
+ | | 0x0000004C | [00 00 00 00] | ? | | ||
+ | ''*Geo Types: 0000=normal, 0002= Trilinear MipMapping (RGBA16), 0004=Env mapping, 0010=?'' | ||
---- | ---- | ||
Line 53: | Line 55: | ||
| 0x00000000 | [<color red>aa aa</color> <color limegreen>bb bb</color> <color aqua>cc cc</color>] | Draw distance: Negative Coords | | | 0x00000000 | [<color red>aa aa</color> <color limegreen>bb bb</color> <color aqua>cc cc</color>] | Draw distance: Negative Coords | | ||
| 0x00000006 | [<color red>dd dd</color> <color limegreen>ee ee</color> <color aqua>ff ff</color>] | Draw distance: Positive Coords | | | 0x00000006 | [<color red>dd dd</color> <color limegreen>ee ee</color> <color aqua>ff ff</color>] | Draw distance: Positive Coords | | ||
- | | 0x0000000C | [<color red>gg gg</color> <color limegreen>hh hh</color>] | Object Coordinate Range | | + | | 0x0000000C | [<color red>xx xx</color> <color limegreen>yy yy</color> <color aqua>zz zz</color>] | Object Coordinate Range | |
- | | 0x00000010 | [<color red>jj jj</color>] | Collision range? (Enemies, Objects) | | + | | 0x00000012 | [<color red>jj jj</color>] | Collision range? (Enemies, Objects) | |
| 0x00000014 | [<color limegreen>kk kk</color>] | Collision range? (Banjo) | | | 0x00000014 | [<color limegreen>kk kk</color>] | Collision range? (Banjo) | | ||
| 0x00000016 | [<color aqua>ll ll</color>] | Vertex Count*2 | | | 0x00000016 | [<color aqua>ll ll</color>] | Vertex Count*2 | | ||
Line 60: | Line 62: | ||
---- | ---- | ||
+ | ==== Animation Setup ==== | ||
+ | ^ Offset from Setup Start ^Value/Syntax ^Description ^ | ||
+ | | 0x00000000 | [<color red>aa aa aa aa</color>] | Translation Scale (float) | | ||
+ | | 0x00000004 | [<color limegreen>bb bb</color> 00 00] | Bone Count| | ||
+ | ^ Offset From Bone Start ^ ^ ^ | ||
+ | | 0x00000000 | [<color red>xx xx xx xx</color>] | Bone X Translation (float) | | ||
+ | | 0x00000004 | [<color limegreen>yy yy yy yy</color>] | Bone Y Translation (float) | | ||
+ | | 0x00000008 | [<color aqua>zz zz zz zz</color>] | Bone Z Translation (float) | | ||
+ | | 0x0000000C | [<color orange>cc cc</color> <color purple>dd dd</color>] | <color orange>cccc</color>=Bone ID, <color purple>dddd</color>=Parent Index | | ||
+ | |||
+ | ---- | ||
+ | |||
+ | ==== Effects Setup ==== | ||
+ | ^ Offset from Setup Start ^ Value/Syntax ^ Description ^ | ||
+ | | 0x00000000 | [<color red>aa aa</color>] | Effect Count | | ||
+ | | 0x0000002 | [<color limegreen>bb bb</color> <color aqua>cc cc</color>] | <color limegreen>bbbb</color>=Effect ID, <color aqua>cccc</color>=Effect Vertex Count| | ||
+ | | 0x0000006 | [<color orange>dd dd</color> <color purple>ee ee</color>] | <color orange>dddd</color>, <color purple>eeee</color>...=Effect Vertex Index List | | ||
+ | | ...||| | ||
+ | |||
+ | Effect IDs are <code>100*Type + Param (decimal)</code> where Param is usually used to | ||
+ | control the speed of the effect, and Type is taken from | ||
+ | ^Type^DLL Name^Description^ | ||
+ | | 0 | | Code room letters | | ||
+ | | 1 | idscroll | Texture scrolling (along vertical axis) | | ||
+ | | 2 | idlight | Flickering vertex color, for fake lighting around flames | | ||
+ | | 3 | idwater | Oscillating texture scrolling | | ||
+ | | 4 | | | | ||
+ | | 5 | idglow | Vertex color regularly gets brighter and dimmer | | ||
+ | | 6 | | | | ||
+ | | 7 | idwave | Rippling water surface, amplitude controlled by bounding box of affected vertices | | ||
+ | | 8 | idglowa | Like glow, but only for vertex alpha | | ||
+ | | 9 | idflasha | | | ||
+ | | 10 | idflash | | | ||
+ | | 11 | | | | ||
+ | | 12 | idwibble | All wibbles use a spherical wave to change some vertex parameters (usually texture coordinate and color). This one is faster, with a smaller amplitudes| | ||
+ | | 13 | idwibble | Standard wibble | | ||
+ | | 14 | idwibble | Only wibble color | | ||
+ | | 15 | idwibble | Only wibble texture coordinates | | ||
+ | | 16 | idwibble | Also move up and down, like idwave | | ||
+ | | 17 | idbounce | Used for bouncy castle | | ||
+ | | 18 | idtwinkle | Used for mine crystals; occasionally choose a center vertex and briefly brighten the vertex colors on its neighbors with random delays| | ||
+ | | 19 | idflame | | | ||
+ | | 20 | idtwinklea | | | ||
+ | | 21 | idwibble | Fast wibble, with larger amplitudes| | ||
+ | | 22 | idtwinklecolour | | | ||
+ | ---- | ||
+ | |||
+ | ==== Vertex-Bone Mapping ==== | ||
+ | ^ Offset from Setup Start ^Value/Syntax ^Description ^ | ||
+ | | 0x00000000 | [<color red>aa aa</color> <color limegreen>bb bb</color>] | <color red>aaaa</color>=Has Norms, <color limegreen>bbbb</color>=Entry Count | | ||
+ | ^ Offset From Entry Start ^ ^ ^ | ||
+ | | 0x00000000 | [<color red>cc cc</color> <color limegreen>dd dd</color> <color aqua>ee ee</color>] | <color red>cccc</color>=Bone ID, <color limegreen>dddd</color>=Position Count, <color aqua>eeee</color>=Normal Count | | ||
+ | | 0x00000006 | [<color red>xx xx</color> <color limegreen>yy yy</color> <color aqua>zz zz</color>] | Vertex Position (in bone space) | | ||
+ | | ... | | | | ||
+ | | 0x6 + 6*Positions | [<color red>xx</color> <color limegreen>yy</color> <color aqua>zz</color> 00] | Vertex Normal (in bone space) | | ||
+ | | ... | | | | ||
+ | | 0x6 + 6*Positions + 4*Normals | [<color orange>ee ee</color> <color purple>ff ff</color>] | <color orange>eeee</color>, <color purple>ffff</color>,...=Vertex IDs | | ||
+ | |||
+ | Each vertex is assumed to have its own normal, but some share positions. The initial vertices are assigned the first position, then an ID of -1 in the list indicates | ||
+ | that the following vertices should use the next position in the list, and -2 indicates the end. | ||
+ | Thus there are (Normal Count) + (Offset Count) entries in the ID list, including the negative values. | ||
+ | |||
+ | ---- | ||
+ | |||
+ | ==== Texture Animation Setup ==== | ||
+ | Up to five entries corresponding to segments 0xF,0xD,0xE,0xC,0xB of the following form: | ||
+ | |||
+ | ^ Offset from Entry Start ^Value/Syntax ^Description ^ | ||
+ | | 0x00000000 | [<color red>aa aa</color> <color limegreen>bb bb</color>] | <color red>aaaa</color>=Block Size, <color limegreen>bbbb</color>=Block Count | | ||
+ | | 0x00000004 | [<color aqua>cc cc cc cc</color>] | Frames Per Second (float)| | ||
+ | |||
+ | A block is contiguous memory holding texture data which gets loaded into the corresponding segment. | ||
+ | The chosen block advances at the specified framerate, looping back around to the beginning. | ||
+ | |||
+ | ---- |