Difference between revisions of "Sonic Adventure DX: PC/Model Locations"
From Sonic Retro
MainMemory (talk | contribs) m (→ADV02MODELS.DLL: +Textures) |
MainMemory (talk | contribs) m (→ADV03MODELS.DLL: +Textures) |
||
Line 1,130: | Line 1,130: | ||
key=0x10000000 | key=0x10000000 | ||
{| class="prettytable" | {| class="prettytable" | ||
− | !Address||Description||Parent||Child||Sibling | + | !Address||Description||Parent||Child||Sibling||Textures |
|- | |- | ||
| 133658 | | 133658 | ||
Line 1,137: | Line 1,137: | ||
| 133578 | | 133578 | ||
| None | | None | ||
+ | | OBJ_PAST.PVM | ||
|- | |- | ||
| 134398 | | 134398 | ||
Line 1,143: | Line 1,144: | ||
| | | | ||
| | | | ||
+ | | OBJ_PAST.PVM | ||
|- | |- | ||
| 1350D8 | | 1350D8 | ||
Line 1,149: | Line 1,151: | ||
| | | | ||
| | | | ||
+ | | OBJ_PAST.PVM | ||
|- | |- | ||
| 135E18 | | 135E18 | ||
Line 1,155: | Line 1,158: | ||
| | | | ||
| | | | ||
+ | | OBJ_PAST.PVM | ||
|- | |- | ||
| 136B58 | | 136B58 | ||
Line 1,161: | Line 1,165: | ||
| | | | ||
| | | | ||
+ | | OBJ_PAST.PVM | ||
|- | |- | ||
| 137898 | | 137898 | ||
Line 1,167: | Line 1,172: | ||
| | | | ||
| | | | ||
+ | | OBJ_PAST.PVM | ||
|- | |- | ||
| 1385D8 | | 1385D8 | ||
Line 1,173: | Line 1,179: | ||
| | | | ||
| | | | ||
+ | | OBJ_PAST.PVM | ||
|- | |- | ||
| 139318 | | 139318 | ||
Line 1,179: | Line 1,186: | ||
| | | | ||
| | | | ||
+ | | OBJ_PAST.PVM | ||
|} | |} | ||
Revision as of 11:43, 17 July 2010
Template:SCHG SADX:PC This page is about models.
Model Locations
The following is a list of locations where OBJECT Structs can be found.
sonic.exe
Key=0x00400000
Misc. Objects
Address | Description | Parent | Child | Sibling |
---|---|---|---|---|
4B4834 | Ring | None | None | None |
4B5C3C | Rotatable Spring | None | 4B5924 | None |
4B67C8 | Spring | None | 4B649C | None |
4B7A04 | Spike Ball | None | None | None |
4B8B34 | Dash Panel | None | 4B87F4 | None |
4BA2D8 | End Level Capsule | None | 4B9698 | 4B906C |
4BA6D4 | Emerald Piece | None | None | None |
4BB4B4 | Spikes | None | 4BAA94 | None |
4BCF94 | Dash Hoop | None | 4BC874 | 4BC428 |
4BF28C | Item Box | None | 4BEAD4 | None |
4BFEF4 | Rocket Platform | None | 4BF6B4 | None |
4C48CC | Weed | None | None | None |
4C688C | Widespring | None | 4C6650 | None |
4C908C | Checkpoint | None | 4C8004 | 4C76DC |
4C9C4C | Dynamite pack (Gamma) | None | None | None |
51F6D4 | Froggy | None | None | None |
54EFD4 | Boa-Boa's head | None | ||
55A334 | Aircraft Enemy Missile | None | ||
560AE4 | Aircraft Enemy + Missiles | None | ||
560DFC | Aircraft Door | None | ||
56132C | Aircraft Platform | None | ||
561F24 | "Air Signal" | None | ||
565510 | Kiki | None | ||
56C9B4 | "Togeball" | None | None | None |
56DBF0 | Unidus | None | None | None |
56ECD8 | Gola | None | None | None |
56FA74 | Spinner Blades | 570D8C | None | None |
570D8C | Spinner Body | None | 56FA74 | None |
571764 | Cop Speeder head | None | None | None |
57388C | Cop Speeder | None | ||
5749FC | Emblem | None | None | None |
5889E4 | Ice Ball enemy | None | ||
848FBC | E-103's Jet Booster | None | None | None |
C3B270 | Emerald Coast skybox | None | None | None |
C3B37C | Emerald Coast skybox bottom | None | None | None |
C43B1C | Emerald Coast Spike Gate | None | C43244 | None |
C3C7AC | Emerald Coast palmtree | None | C3B5C0 | C3C778 |
C4C00C | Emerald Coast Dolphin | None | C4C00C | None |
C85444 | Emerald Coast Umbrella 1 | None | C8406C | None |
C85444 | Emerald Coast Umbrella 2 | None | C85444 | None |
CD7774 | Question Mark from Character Select | None | None | None |
D33328 | Chaos 2 | None | ||
D9E240 | Chaos 4 | None | ||
DEDF38 | Chaos 6 skybox bottom | None | None | None |
DEEED8 | Chaos 6 skybox | None | None | None |
F870E4 | Fishing target from Chaos 6 fight | None | None | None |
10DE59C | E-101's Jet Booster | None | None | None |
12EB424 | Mission End Mark | None | None | None |
12EB7EC | Red Flag | None | None | None |
12EBFF4 | Sonic Advance 2 billboard | None | None | None |
12EC61C | Medallion | None | None | None |
12F5EA0 | Statue from Mission mode | None | ||
162BFE4 | Light from Final Egg | None | ||
1C28BB8 | Small Mirror from Lost World | None | None | None |
228C058 | Helicopter from Speed Highway | None | ||
229D214 | 2P Eggmobile | None | ||
229EE24 | 2P Eggman | None | ||
22A0008 | Eggman's Missile from Speed Highway | None | ||
24C1E88 | Sky Chase Dragon something | |||
24C469C | Sky Chase Dragon head 1 | None | ||
24C6CAC | Sky Chase Dragon head 2 | None | ||
24CF810 | Sky Chase Dragon body | None | ||
2C9F1C0 | E-105 in cutscenes | None | ||
2CA7940 | E-104 in cutscenes | None | ||
2CB00C0 | E-103 in cutscenes | None | ||
2F31468 | Tails' crashed plane in Emerald Coast | None | ||
2FCB04C | Name Machine Button | None | None | None |
2FCB2D4 | Name Machine Door | None | None | None |
2FCFC70 | Chao Name Machine | None | None | None |
3204540 | Chao Teleporter | None | None | None |
32065B4 | Chao Teleporter (Egg Carrier) | None | None | None |
3206D00 | Probably Chao Egg | None | None | None |
34B8780 | Kart Kiki body | None | ||
34BE5F4 | Kart dash panel | None | ||
34C07CC | Kart jump panel | None | None | None |
34CBC74 | Rhinotank | None | ||
34D0CF0 | Sweep | None | ||
34E3584 | Buyon's head | None | ||
34E50C4 | Buyon's feet | None |
Dr. Eggman
Address | Description | Parent | Child | Sibling |
---|---|---|---|---|
49C830 | Root of Model | None | 49C734 | None |
Tikal
Address | Description | Parent | Child | Sibling |
---|---|---|---|---|
4D4880 | Root of Model | None | 4D484C | None |
Amy's Birdie
Address | Description | Parent | Child | Sibling |
---|---|---|---|---|
582410 | Right Wing | 58251C (Right Arm) | None | None |
58251C | Right Arm | 5827A4 (Left Arm) | 582410 (Right Wing) | None |
582698 | Left Wing | 5827A4 (Left Arm) | None | None |
5827A4 | Left Arm | 582940 (Tail) | 582698 (Left Wing) | 58251C (Right Arm) |
582940 | Tail | 583EE0 (Head) | None | 5827A4 |
583EE0 | Head | 584EAC (Body) | None | 582940 (Tail) |
58418C | Right Foot | 58443C (Left Foot) | None | None |
58443C | Left Foot | 584EAC (Body) | None | 58418C (Right Foot) |
584EAC | Body | 584EE0 | 58443C (Left Foot) | 583EE0 (Head) |
584EE0 | Root of Model | None | 584EAC (Body) | None |
Tornado
Address | Description | Parent | Child | Sibling | Textures |
---|---|---|---|---|---|
23EB198 | Tornado 2 (with Sonic and Tails) | None | SHOOTING2.PVM | ||
240C158 | Tornado 2 transformed (with Sonic and Tails) | None | SHOOTING2.PVM | ||
24B1DA0 | Tornado (with Sonic and Tails) | None | SHOOTING1.PVM |
CHRMODELS.DLL
Key=0x10000000
Sonic
Address | Description | Parent | Child | Sibling |
---|---|---|---|---|
55E76C | Tail | 55E7D0 | None | None |
55F330 | Left Shoe Toe | |||
55F948 | Left Shoe Heel | |||
560DD0 | Right Shoe Toe | |||
5613F8 | Right Shoe Heel | |||
563D0C | Right Arm Elbow | |||
565C34 | Eye Globe | 569594 (Head) | None | None |
569594 | Head | 56998C | 565C34 (Eye Globe) | None |
5698F0 | Right Eye | |||
569CE8 | Left Eye | |||
56AD48 | Body | 56ADE4 | 569E20 | None |
56AF50 | Root of Model (No model data) | None | 56AF1C | None |
57BC44 | Jump Ball | None | None | None |
57D788 | Cutscene Mouth | 5812AC (Head) | None | None |
5812AC | Cutscene Head | None | 57D788 (Mouth) | None |
583284 | Crystal Ring | None | None | 564CD0 |
583904 | Crystal Ring item | None | None | None |
Rolling
Address | Description | Parent | Child | Sibling |
---|---|---|---|---|
5729CC | Root of Model (No model data) | None | 572998 | None |
Light Speed Dash
Address | Description | Parent | Child | Sibling |
---|---|---|---|---|
6837E8 | Root of Model (No model data) | None | None | 6837B4 |
Misc. Models
Address | Description | Parent | Child | Sibling |
---|---|---|---|---|
7276E4 | Snowboard | None | None | None |
61AA94 | Sonic's Spindash Trail | |||
61B4DC | Sonic's Spindash Trail Ball |
Metal Sonic
Address | Description | Parent | Child | Sibling |
---|---|---|---|---|
586270 | Left Thigh | None | None | None |
586714 | Left Knee | None | None | None |
586DA4 | Left Toe | 587B98 | None | None |
587B98 | Left Heel and Foot Joint | None | 586DA4 | None |
587DF8 | Left Shin | None | None | 587B98 |
588148 | Right Thigh | None | None | None |
5885EC | Right Knee | None | None | None |
588C7C | Right Toe | 589A60 | None | None |
589A60 | Right Heel and Foot Joint | None | 588C7C | None |
589CC0 | Right Shin | None | None | 589A60 |
589FE8 | Left Upper Arm | None | None | None |
58A4FC | Left Elbow | None | None | None |
58ABA4 | Left Fingers | None | None | None |
58AE90 | Left Thumb | 58B22C | None | 58ABA4 |
58B22C | Left Hand | None | 58AE90 | None |
58B440 | Left Forearm | None | None | 58B22C |
58B768 | Right Upper Arm | None | None | None |
58BC6C | Right Elbow | None | None | None |
58C324 | Right Fingers | None | None | None |
58C610 | Right Thumb | 58C9BC | None | 58ABA4 |
58C9BC | Right Hand | None | 58C610 | None |
58CBD0 | Right Forearm | None | None | 58C9BC |
58DB0C | Muzzle | 58F808 | None | None |
58F808 | Top of Head | 58FAAC | 58DB0C | None |
58FA10 | Left Eye | None | None | None |
58FCB0 | Right Eye | None | None | None |
590E60 | Torso | None | None | None |
591068 | Root of Model (No model data) | None | 591034 | None |
59E254 | Jump Ball | None | 59C200 | None |
Rolling
Address | Description | Parent | Child | Sibling |
---|---|---|---|---|
59C234 | Root of Model (No model data) | None | 572998 | None |
Super Sonic
Address | Description | Parent | Child | Sibling |
---|---|---|---|---|
62C4CC | Head | 62C8C4 | 628B54 | None |
62DE88 | Root of Model (No model data) | None | 62DE54 | None |
62FE6C | Jump Ball | None | None | None |
Tails
Address | Description | Parent | Child | Sibling |
---|---|---|---|---|
42AD54 | Root of Model (No model data) | None | 42AD20 | None |
Flying
Address | Description | Parent | Child | Sibling |
---|---|---|---|---|
437C44 | Root of Model (No model data) | None | 437C10 | None |
Knuckles
Address | Description | Parent | Child | Sibling |
---|---|---|---|---|
2E23B0 | Root of Model (No model data) | None | 2E237C | None |
Amy
Address | Description | Parent | Child | Sibling |
---|---|---|---|---|
16460 | Root of Model (No model data) | None | 1642C | None |
Gamma
Address | Description | Parent | Child | Sibling |
---|---|---|---|---|
207290 | Root of Model (No model data) | None | 20725C | None |
Big
Address | Description | Parent | Child | Sibling |
---|---|---|---|---|
12541C | Root of Model (No model data) | None | 1253E8 | None |
ADV02MODELS.DLL
key=0x10000000
Address | Description | Parent | Child | Sibling | Textures |
---|---|---|---|---|---|
30CD0 | Blue Chaos Emerald | None | 30BF0 | None | MROBJ.PVM |
31A10 | Green Chaos Emerald | None | 31930 | None | MROBJ.PVM |
32750 | Purple Chaos Emerald | None | 32670 | None | MROBJ.PVM |
33490 | Red Chaos Emerald | None | 333B0 | None | MROBJ.PVM |
341D0 | Sky Blue Chaos Emerald | None | 340F0 | None | MROBJ.PVM |
34F10 | Yellow Chaos Emerald | None | 34E30 | None | MROBJ.PVM |
35C50 | White Chaos Emerald | None | 35B70 | None | MROBJ.PVM |
36990 | Master Emerald | None | MROBJ.PVM | ||
37908 | Master Emerald (incomplete) | None | MROBJ.PVM | ||
38868 | Master Emerald (three pieces missing) | None | MROBJ.PVM | ||
38D78 | Master Emerald Shard | None | 38CAC | None | MROBJ.PVM |
261F08 | Mecha Sonic | None | 26178C | None | ADV_MR03.PVM |
ADV03MODELS.DLL
key=0x10000000
Address | Description | Parent | Child | Sibling | Textures |
---|---|---|---|---|---|
133658 | Master Emerald | None | 133578 | None | OBJ_PAST.PVM |
134398 | Red Chaos Emerald | None | OBJ_PAST.PVM | ||
1350D8 | Yellow Chaos Emerald | None | OBJ_PAST.PVM | ||
135E18 | Green Chaos Emerald | None | OBJ_PAST.PVM | ||
136B58 | Sky Blue Chaos Emerald | None | OBJ_PAST.PVM | ||
137898 | Blue Chaos Emerald | None | OBJ_PAST.PVM | ||
1385D8 | Purple Chaos Emerald | None | OBJ_PAST.PVM | ||
139318 | White Chaos Emerald | None | OBJ_PAST.PVM |
BOSSCHAOS0MODELS.DLL
key=0x10000000
Address | Description | Parent | Child | Sibling |
---|---|---|---|---|
135BC | Chaos 0 | None |
Model Format
Remember: all pointers are 4 Bytes, and need to have a key subtracted from them to find the correct location in a file.
For sonic.exe, subtract 0x00400000.
For DLL files, subtract 0x10000000.
For the dreamcast version, subtract 0x0C900000.
As a rule, data sets occur in the reverse order that these pointers do. In a non-hacked model, the model data always starts with the material structs and goes down the file to the vertex struct, with the exception of the vertex struct. The verts occur right after the mesh struct and the normals are the last data set before the attach struct. The tools sonic team used strictly followed that rule, but the game can operate outside of that constraint so make sure your pointers are always accurate. A crashing game usually means a bad pointer!
Note: these are listed in the order they will appear in the file. However, it is likely that you will start at the OBJECT Struct.
MATERIAL Struct
The game loads as many of these structs as indicated in the attach struct. The format is as follows.
offset | Type | Description | Notes |
---|---|---|---|
0 | 4 Bytes | Diffuse Color | in BRGA format |
4 | 4 Bytes | Specular Color | in BRGA format |
8 | 4 Bytes | Unknown | |
C | 4 Bytes | Texture ID | |
10 | Byte | Unknown | |
11 | Byte | Unknown | |
12 | Byte | UV Clamping | |
13 | Byte | End of MATERIAL Struct | Always $94 |
POLY Struct
Triangles
Three shorts, indicating the vertices to use.
Quads
Four shorts, indicating the vertices to use.
Strips
A byte indicating the number of strips to load, a byte indicating the direction to read the strips in, followed by an array of shorts indicating which vertices to use.
VColor Struct
An array of BGRA colors for each vertex in the strip.
UV Struct
An array of two shorts representing the U and V coordinates for each vertex in the strip.
MESH Struct
The game loads as many of these structs as indicated in the attach struct. The format is as follows.
offset | Type | Description | Notes |
---|---|---|---|
0 | Byte | Material ID | |
1 | Byte | Poly Type | $00 = Triangles, $40 = Quads, $C0 = Strips |
2 | Short | Poly Total | This is how many polys to load |
4 | Pointer | Polys | Read notes on poly data |
8 | Padding (0x8) | PNormal and Pattr | Unused by sadx, but are part of official sega model format |
10 | Pointer | Vertex Colors | |
14 | Pointer | UV Coordinates |
VERTEX Struct
A Float[3] for each vertex, times the total specified in the ATTACH Struct.
ATTACH Struct
Offset | Type | Description | Notes |
---|---|---|---|
0 | Pointer | Vertices | |
4 | Pointer | Normals | If this is null, the model doesn't use normals. |
8 | 4 Bytes | Vertex/Normal Total | |
C | Pointer | Meshes | |
10 | Pointer | Materials | |
14 | 2 Bytes | Mesh Total | |
16 | 2 Bytes | Material Total | |
18 | Float[3] | Center | |
24 | Float | Radius | |
28 | 4 Bytes | Null |
OBJECT Struct
Offset | Type | Description | Notes |
---|---|---|---|
0 | 4 Bytes | Flags | See section below. |
4 | Pointer | Attach | |
8 | Float[3] | Position | |
14 | 4 Bytes[3] | Rotation | only read first 2 bytes of each |
20 | Float[3] | Scale | Ignored for level geometry. |
2C | Pointer | OBJECT Child | |
30 | Pointer | OBJECT Relate |
Flags
These flags have (or don't have) various effects on how the model data is used.
Bit | Value (hex) | Description |
---|---|---|
0 | 1 | Don't apply position values. Seems to have no actual effect. |
1 | 2 | Don't apply rotation values. Seems to have no actual effect. |
2 | 4 | Don't apply scale values. Seems to have no actual effect. |
3 | 8 | Don't render this model. Does not affect level geometry. |
4 | 10 | This model has no children. Seems to have no actual effect. |
5 | 20 | Rotation values are in ZYX order. Seems to have no actual effect. |
6 | 40 | Don't include this model for animations. Does not affect level geometry. |
7 | 80 | ??? Seems to have no actual effect. |
Model Editing Tutorial
Disclaimer
"The information below on model editing is old, outdated, and generally a pain. It should be ignored, but for the moment I am way too lazy to give it an update proper. Look to the right for a list of much more useful, up-to-date, and pertinent information." - Dude
Alright, so you want to edit models in SADX.
First off you need to think of what character you want to edit.
Let's say you want to do Sonic. His head model is name group5674388.
The 5674388 is the decimal offset in CHRMODELS.DLL you need to go to. Use a calculator to convert this number to hexadecimal; in this case the value is 569594.
Open CHRMODELS.DLL in a hex editor. Open the "go to" window (usually done by pressing Ctrl+G). If your editor supports decimal you can just paste in the original value, or you can choose hexadecimal and use that number. Most models end in something like _4 or _20; you only need the numbers before the dash.
Once you have gone to the offset for Sonic's head, you will see 04 00 00 00 (or 0400 0000, depending on how your hex editor is set up; every 2 numbers/letters is one hex byte).
So you want to skip the first 4 bytes, in this case that is 04 00 00 00. You should now see 68 95 56 10 (or another value for a different model). These four bytes are the next offset you want to go to, but they are in little endian and have had 10000000 added to them. Reverse the order of the bytes and subtract 10000000 to get 00569568, and then go to this address.
This time we do NOT skip the first 4 bytes, we select the first 4 bytes which are 78 73 56 10 and once again, reverse the byte order and subtract 10000000. You should get 00567378.
Go to this offset. You are now at the model =D. what you need to do now, is export your edited model in .obj format. (When editing the model do not use symmetry modifiers or mirror the model! You must edit each vertex by hand, you can't mirror it)
Drop your .obj file on obj2vt.exe and you will get an out.vt. Open the out.vt in a hex editor and check how many bytes it has. Off the top of my head, I believe sonic has around 4,000 something. well, check how many bytes that has, and go back to CHRMODELS.DLL. Select a block, the same size as the other file and hit the delete key. Go back to out.vt and select everything and copy it. Paste it in CHRMODELS.DLL were you deleted the old model.
Save, and it should work.
Animation Locations
sonic.exe
Eggman
Address | Description |
---|---|
49E254 | Standing |
4A094C | Walking |
4A3564 | Running |
4A513C | ??? |
4A6BF4 | Turning around |
Tikal
Address | Description |
---|---|
4F83F4 | Standing |
4FC8DC | Walking |
4F46BC | ??? |
500814 | ??? |
Tornado
Address | Description |
---|---|
23EFDDC | Tornado 2 flying |
23F2AA4 | Tornado 2 hit |
23F612C | Tornado 2 fatal hit |
23F8974 | Tornado 2 falling |
240F23C | Tornado 2 transformed flying |
2411CE4 | Tornado 2 transformed hit |
2414D9C | Tornado 2 transformed fatal hit |
2417514 | Tornado 2 transformed falling |
24B7A0C | Tornado flying |
24BA71C | Tornado hit |
24BDDBC | Tornado fatal hit |
24C09FC | Tornado falling |
Misc. Objs.
Address | Description |
---|---|
4B8BC4 | Dash Panel |
5228A4 | Froggy Swimming |
5858A4 | Amy's Birdie |
24D700C | Sky Chase Dragon's body main animation |
CHRMODELS.DLL
Sonic
Address | Description |
---|---|
5C310C | Standing |
60EE6C | Standing -> Surf Stance |
610AF4 | Surf Stance |
5C85E4 | Looking around |
61660C | Bored Comment |
61A8A4 | Bored Comment 2 |
61660C | Bored Comment 2 -> Standing |
6125AC | Lean Forward |
613E94 | Lean Back |
5CC0CC | Walk 1 |
5CF9D4 | Walk 2 |
5D320C | Walk 3 |
5D64A4 | Run 1 |
5E7CE4 | Run 2 |
5D9674 | Jump (in air)/Spindash (on ground) |
5D9674 | Roll |
5DB61C | Spring flight |
5DEED4 | Spring flight -> Falling |
5E241C | Falling |
5E512C | Landing |
5D914C | Skid stop |
5F194C | Push (start) |
5F46E4 | Push (loop) |
5FABC4 | Take damage |
5FF48C | Hurt landing |
5D914C | Skid Stop |
68788C | Air Flip |
5EDB24 | Hit wall 1 |
60A7EC | Hit wall recovery |
5F7D44 | Slow backflip |
5F63AC | turn around |
60C434 | Slide stance |
5F7DDC | Spin Ball (no flash) |
68A424 | Pick up object |
68C82C | object Run |
6999AC | Object stop |
69B194 | Object Turnaround |
68DA54 | Object stand |
6902BC | Object walk |
5DB61C | Trampoline Flight |
67642C | Trampoline Backflip |
5DB61C | Trampoline Flight 2 |
678DB4 | Trampoline Flip 2 |
5DB61C | Trampoline Flight 3 |
673AA4 | Slip |
67A9AC | Slip |
6804DC | slow frontflip |
6CACEC | Hanging |
6B39CC | Pull |
6B5234 | Shake Tree |
6EC184 | Pick up object |
6EDE5C | Shake object |
6EFA74 | Stop shaking |
6AEFEC | Standing -> Pick up |
6B0854 | idle holding tree |
691774 | object jump |
693C1C | object jump -> object fall |
695754 | Object fall |
697824 | Object landing |
6A3404 | Throw object |
6A825C | Toss object |
6ABFCC | Air throw |
6AE064 | Air toss |
68A424 | Put object down |
6EA6FC | Light dash flight |
6C848C | Ready to pull |
6DA174 | monkeybars (broken eyes) |
6DDE54 | monkeybars (broken eyes) |
6DBFD4 | monkeybars (broken eyes) |
6B8B1C | climbing ladder |
6BAAC4 | Shot from cannon |
6E1B3C | Slipping on ice |
6E5304 | Jump pad invert |
6E732C | Flight to jump pad |
610AF4 | Surfer stance |
6C53AC | Win level |
6C6AE4 | Win -> Standing |
6AEFEC | Standing -> holding tree |
6B0854 | holding tree |
6BE124 | holding rocket |
6BC4FC | holding rocket |
6D0C24 | gassed/drunk sonic |
5FABC4 | pain flight |
5D9674 | Spin |
6E9454 | breathe bubble |
6F824C | Drowning |
5FABC4 | hit |
606EE4 | death 1 |
67E3D4 | Falling |
66120C | Sky Deck grasping cylinder |
65F6A4 | Sky Deck cylinder shimmy |
65B9DC | Sky Deck cylinder shimmy (other way) |
6633C4 | slide down Sky Deck cylinder |
665D3C | slide down Sky Deck cylinder -> Sky Deck grasping cylinder |
670224 | holding icicle |
671EAC | Slipping on icicle |
667804 | jumping from icicle |
6690BC | Flight from icicle |
6690BC | latching onto icicle |
66BE64 | moving left on icicle |
66EBDC | moving right on icicle |
66EBDC | instance of 100 |
7147EC | snowboard stance |
723514 | turning on board |
7214AC | turning on board |
719A84 | jumping on board |
717FFC | Jumping on Board -> Falling on Board |
72539C | board stance 2 |
727214 | board stance 2 |
71F734 | wavering on board |
71C9CC | hit on board |
70E814 | Falling on board |
7103CC | Falling on board |
7133D4 | hit on board |
70AF64 | Standing on board |
70CB8C | eh more boarding animations |
702BC4 | Jump trick 1 |
70935C | Jump trick 2 |
7372A4 | Jump trick 3 |
7372A4 | Jump trick 4 |
6F9C24 | Spin jump trick |
72A1F4 | Spin jump trick |
72B95C | Spin jump trick -> Falling on Board |
6FDACC | Melon grab |
716584 | Crouch on board |
5D9674 | Spin |
64B6A4 | Shower |
64EDBC | Shower 2 |
657D14 | Shower 3 |
64389C | Shake off water |
61CD24 | Pet chao |
61DE4C | Pet chao loop |
61F2C4 | Stop petting chao |
62161C | Whistle |
638ECC | Super Sonic Standing |
633064 | Super Sonic Standing -> Moving 1 |
63418C | Super Sonic Moving 1 |
635334 | Super Sonic Moving 2 |
635334 | Super Sonic Moving 3 |
638EDC | Super Sonic Spring Flight |
638EE4 | Super Sonic Spring Flight -> Falling |
638EEC | Super Sonic Falling |
638EF4 | Super Sonic Landing? |
638EFC | Super Sonic Victory |
638F04 | Super Sonic Victory -> Standing |
638ED4 | Super Sonic Jumping |
59F424 | Metal Sonic Hover |
Tails
Address | Description |
---|---|
4FF9F4 | Standing |
4FF9F4 | Landing |
4FF9F4 | Standing after landing (animates faster) |
4FF9F4 | ? |
52C81C | Standing -> Looking Around |
531774 | Looking Around |
52C81C | Looking Around -> Standing |
50DEB4 | Lean Forwards |
50F6AC | Lean Backwards |
50263C | Walking 1 |
4D4154 | Walking 2 |
4D4154 | Walking 3 (Tail Effect) |
4D569C | Running 1 |
4D569C | Running 2 |
4D730C | Jumping (in air)/Spindash (on ground) |
4D730C | Rolling |
4D73A4 | Spin ball |
47D9AC | Spring Flight |
47E664 | Spring Flight -> Falling |
47F41C | Falling |
481BF4 | Landing |
4DE1E4 | Braking |
4E067C | Turning |
50263C | Walking? |
4F3E8C | Pushing |
4C0FF4 | Pushing Loop |
4A79B4 | Hurt |
4ABA9C | Hurt Landing |
4B4794 | Dying |
4B661C | Dying w/ head shaking? |
517064 | ? |
517064 | Drowning |
4DE1E4 | ? |
4D130C | Tumbling |
4860FC | Tumbling -> Sitting |
488F74 | Sitting -> Standing |
4D8B2C | Tumbling -> Standing |
48A9CC | Flying |
48C644 | Flying reached maximum height |
48E3DC | Flying falling |
48F9F4 | more Flying |
48F9F4 | more Flying |
48E3DC | Flying reached limit |
471204 | Tail Attack |
47521C | Spin Tail Attack |
476954 | Spin Tail Attack |
47796C | Spin Tail Attack |
478904 | Spin Tail Attack |
479A3C | Spin Tail Attack |
47AD94 | Spin Tail Attack |
47BCBC | Spin Tail Attack |
47CC34 | Spin Tail Attack |
472BDC | Spin Tail Attack |
473BD4 | Spin Tail Attack |
4BD2D4 | Victory |
4BEBDC | Victory -> Standing |
4C8D5C | Standing -> Failure |
4CAC14 | Failure |
497E5C | Pick Up object |
499E34 | Walking with object 2 |
49CF0C | Braking with object |
49E804 | Turn around with object |
49FEDC | Holding object |
4A1D14 | Walking with object 1 |
47D9AC | ? |
47E664 | ? |
47D9AC | ? |
47E664 | ? |
47F41C | ? |
47D9AC | ? |
481BF4 | ? |
4FF9F4 | ? |
4FF9F4 | ? |
4E5EC4 | ? |
4D6E34 | Shaking tree |
51889C | Holding object -> Nuzzle object |
51A294 | Nuzzle object |
51BC2C | Nuzzle object -> Holding object |
4F3E8C | Standing -> Holding tree |
4F5C54 | Holding tree |
497E5C | ? |
497E5C | Falling with object |
497E5C | ? |
497E5C | ? |
4ED88C | ? |
4F34B4 | Throw object on ground |
4ED88C | ? |
4F34B4 | Throw object in air |
497E5C | Put down object |
Knuckles
Address | Description |
---|---|
3B8E0C | Standing |
3B8E0C | stand alternate? |
3B8E0C | stand again |
3B8E0C | stand alternate again? |
3AE8FC | wait |
3B2814 | wait 2 |
3AE8FC | not sure |
384ECC | lean forward |
386694 | lean back |
3BC004 | walk 1 |
38033C | walk 2 |
38033C | walk 3 |
3835C4 | run 1 |
3835C4 | run 2 |
388474 | Jumping |
388474 | roll |
38850C | ball, no flash |
32EBBC | spring |
3305E4 | falling |
33198C | fall |
335FEC | land |
38E57C | stop? |
390244 | dodge? |
3A8E84 | push |
378094 | push 2 |
35737C | hit wall |
35A3D4 | knocked back? |
360AFC | get down and shake head |
362984 | get down and stay and shake head |
38E57C | dodge/stop? |
37CDA4 | wind flip |
33A75C | Knocked back? |
33EFCC | shake head |
389EA4 | partial back flip |
388474 | spin |
340564 | glide 1 |
3C5D528 in sonic.exe RAM??? | ready to pull |
35737C | hurt? |
3D02C4 | drown |
406F94 | end pose |
408AFC | not sure |
3C5C34 | ready to dig |
3C7DCC | dig 2 |
3C8C34 | glide up? |
3CA65C | fall from glide |
3C5C34 | stand still, not moving. |
346F6C | lay 1 |
355074 | lay 2 |
37ABFC | lay 3 |
3521AC | wall climb |
34D80C | fall from wall? |
340564 | glide |
341FDC | jumpy glide? |
343C84 | glide to stand |
367884 | punch 1 |
36C0D4 | punch 2 |
372FA4 | punch 3 |
3B8E0C | stand |
3B8E0C | stand 2 |
3B8E0C | stand 3 |
3B8E0C | stand 4 |
3B8E0C | stand 5 |
3B8E0C | stand 6 |
3B8E0C | stand 7 |
3758BC | jump back |
3B8E0C | stand |
3B8E0C | stand |
3B8E0C | stand |
3B8E0C | stand |
3B8E0C | stand |
3EE6EC | pickup object |
3DEA1C | walk object |
3E2194 | throw object |
3E391C | throw object in air? |
3E5784 | hold object |
3E7ADC | walk object |
32EBBC | spring |
3305E4 | fall |
32EBBC | spring |
3305E4 | fall after spring |
33198C | fall |
32EBBC | spring |
335FEC | land on ground |
3B8E0C | idle |
3AC414 | hang from 1 arm |
40F574 | push |
387F3C | push tree |
3D1DCC | shake start |
3D3AF4 | shake loop |
3D578C | put down |
3A8E84 | ready to push? |
3AA6EC | ready to push? |
3D65D4 | spring object |
3D767C | fall object |
3D89A4 | fall object 2 |
3DC364 | land object |
3A17DC | punch |
3A83DC | throw |
3A17DC | punch |
3A83DC | throw in air object |
3EE6EC | drop object |
41BEF4 | monkey bars |
412C54 | monkey bars 2 |
411144 | moneky bars 3 |
3EB3C4 | climb wall |
32EBBC | spring |
3B8E0C | idle |
3A8E84 | not sure |
3AA6EC | ready to push? |
40C26C | hanging? |
40A644 | same |
3BFFD4 | not sure |
3C0AFC | still not sure |
3C1CB4 | still not sure |
3C384C | I HAVE NO IDEA D: ! |
Animation Format
Offset | Type | Description |
---|---|---|
0 | Pointer | Model (OBJECT Struct) |
4 | Pointer | Section 2 |
Offset | Type | Description |
---|---|---|
0 | Pointer | Frame Data |
4 | 4 Bytes | Total frame count |
8 | 2 Bytes | Data flags |
A | 2 Bytes | Unknown (Always? 2) |
Flags:
0x1: Contains Position data
0x2: Contains Rotation data
0x4: Contains Scale data
The next section contains data in the following order, as the flags dictate:
Position Data pointer
Rotation Data pointer
Scale Data pointer
4 Byte Position Data frame count
4 Byte Rotation Data frame count
4 Byte Scale Data frame count
Position/Scale data:
Offset | Type | Description |
---|---|---|
0 | 4 Bytes | Frame number |
4 | Float | X |
8 | Float | Y |
C | Float | Z |
Rotation data:
Offset | Type | Description |
---|---|---|
0 | 4 Bytes | Frame number |
4 | 4 Bytes | X |
8 | 4 Bytes | Y |
C | 4 Bytes | Z |
If the position, rotation and scale data exist, they will override the values from the OBJECT Struct.