User Tools

Site Tools


banjo_tooie:model_data

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
banjo_tooie:model_data [2019/06/07 05:01]
mittenz [Vertex Store Setup] <0x0C,0x0E,0x10> treated as tuple. See function at RAM:0x802EC930
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>xx xx</​color>​ <color limegreen>​yy yy</​color><​color aqua>zz zz</​color>​] | Object Coordinate Range |+| 0x0000000C | [<color red>xx xx</​color>​ <color limegreen>​yy yy</​color>​ <color aqua>zz zz</​color>​] | Object Coordinate Range |
 | 0x00000012 | [<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) |
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. ​
 +
 +----
banjo_tooie/model_data.1559883711.txt.gz · Last modified: 2019/06/07 05:01 by mittenz