Actions

SCHG

Difference between revisions of "Sonic Jam/Models"

From Sonic Retro

(Added Sonic's Model Addresses)
(Added all model groups and individual models. Removed sub-models for now; need to find a better way to lay it all out.)
Line 59: Line 59:
 
===Model Groups===
 
===Model Groups===
  
Some models, such as Sonic and Tails, consist of multiple models in a group. After the last model in the group, there's a footer.
+
Some models, such as Sonic and Tails, consist of multiple models in a group. After the last sub-model in the group, there's a footer.
  
The first part of the footer is a list of addresses pointing to each model's footer.
+
The first part of the footer is a list of addresses pointing to each sub-model's footer. Replacing one of these with another sub-model footer address will result in that model being drawn instead.
  
The second part is a list of 3D Vectors, relative positions for each model. They correspond to the addresses given in the previous section.
+
The second part is a list of 3D Vectors, relative positions for each sub-model. They correspond to the addresses given in the previous section.
  
 
Certain model groups have some seemingly unused data that appears before the footer. This data seems to correlate with how the model group parenting hierarchy is set up.
 
Certain model groups have some seemingly unused data that appears before the footer. This data seems to correlate with how the model group parenting hierarchy is set up.
Line 69: Line 69:
 
==Model List==
 
==Model List==
  
Here's the list of models in the game that are currently known. Addresses given are pointers to footers, for both model groups and individual models.
+
Here's the list of models in the game that are currently known. Addresses given are pointers to model group footers, or model footers for ungrouped models.
 +
 
 +
Addresses for sub-model footers can be found in the model group footer; just subtract $06040000 from the part address you want if searching in MUSEUM.MUS, as they're set up for High Work RAM.
  
 
{|class="prettytable" style="width:auto;"
 
{|class="prettytable" style="width:auto;"
 
! Name||Address
 
! Name||Address
|-}
 
 
{|class="prettytable" style="width:auto;"
 
! Sonic||$42620
 
 
|-
 
|-
| Body||$40058
+
| Sonic (Normal)||$42620
 +
|-
 +
| Sonic (Jumping)||$45428
 +
|-
 +
| Sonic (Sprinting)||$44230
 +
|-
 +
| Jumpball||$49D48
 +
|-
 +
| Drop Shadow (Sonic)||$49D88
 +
|-
 +
| Tails||$4D31C
 +
|-
 +
| Tails (Low-Poly)||$4E1B4
 +
|-
 +
| Test Object?||$4E454
 +
|-
 +
| Cyan Pixel?||$4E468
 +
|-
 +
| Black Pixel?||$4E47C
 +
|-
 +
| Blue Pixel?||$4E490
 +
|-
 +
| Stone Arch||$4E9FC
 +
|-
 +
| Star Balloon||$4EE7C
 +
|-
 +
| Star Balloon (Exploding)||$4F754
 +
|-
 +
| Checkpoint Post||$4F98C
 +
|-
 +
| Exit Building||$4FE00
 +
|-
 +
| Exit Doors||$4FEDC
 +
|-
 +
| Drop Shadow (Ring)||$4FF48
 +
|-
 +
| Drop Shadow (Platform)||$4FF5C
 +
|-
 +
| Palm Tree||$5034C
 +
|-
 +
| Bush||$506F4
 +
|-
 +
| Spring||$50B44
 +
|-
 +
| Spinning Top (Tall)||$50DBC
 +
|-
 +
| Post (Tall)||$50E30
 +
|-
 +
| Post & Spinning Top (Short)||$51130
 +
|-
 +
| Grassy Platform||$514E4
 +
|-
 +
| Mission Button||$51888
 +
|-
 +
| Character House Monitor||$51C6C
 +
|-
 +
| Stone Post (Large)||$51EE0
 +
|-
 +
| Stone Post (Small)||$52134
 +
|-
 +
| Water Ripple 1||$521C4
 +
|-
 +
| Water Ripple 2||$521D8
 +
|-
 +
| Water Ripple 3||$521EC
 +
|-
 +
| Water Ripple 4||$52200
 +
|-
 +
| Water Ripple 5||$52214
 +
|-
 +
| Water Ripple 6||$52228
 +
|-
 +
| Big Ring||$52FDC
 +
|-
 +
| Seagull||$53224
 +
|-
 +
| Blue Flicky||$53880
 +
|-
 +
| Green Flicky||$53BC4
 +
|-
 +
| Purple Flicky||$53F08
 +
|-
 +
| Red Flicky||$5424C
 +
|-
 +
| Orange Flicky||$54590
 +
|-
 +
| Monkey||$54D00
 +
|-
 +
| Music Shop||$55C14
 +
|-
 +
| Music Shop Interior||$55D38
 +
|-
 +
| Art Gallery||$56B44
 +
|-
 +
| Art Gallery Interior||$56C88
 +
|-
 +
| Hall of Fame||$57B30
 +
|-
 +
| Hall of Fame Interior||$57C54
 +
|-
 +
| Character House (Robotnik)||$58A18
 +
|-
 +
| Character House (Sonic)||$58B34
 +
|-
 +
| Character House Interiors||$58D4C
 +
|-
 +
| Movie Theater||$59AF0
 +
|-
 +
| Movie Theater Interior||$59C14
 +
|-
 +
| Wall Chunk 1||$5A090
 +
|-
 +
| Wall Chunk 2||$5A4A0
 +
|-
 +
| Wall Chunk 3||$5AB8C
 +
|-
 +
| Wall Chunk 4||$5B20C
 +
|-
 +
| Wall Chunk 5||$5B604
 +
|-
 +
| Wall Chunk 6||$5B9F0
 +
|-
 +
| Wall Chunk 7||$5BE44
 +
|-
 +
| Wall Chunk 8||$5C270
 +
|-
 +
| Wall Chunk 9||$5C560
 +
|-
 +
| Wall Chunk 10||$5CA48
 +
|-
 +
| Wall Chunk 11||$5CE04
 +
|-
 +
| Wall Chunk 12||$5D484
 +
|-
 +
| Wall Chunk 13||$5D960
 +
|-
 +
| Wall Chunk 14||$5E010
 +
|-
 +
| Wall Chunk 15||$5E300
 +
|-
 +
| Wall Chunk 16||$5E548
 +
|-
 +
| Wall Chunk 17||$5E73C
 +
|-
 +
| Wall Chunk 18||$5EC0C
 +
|-
 +
| Wall Chunk 19||$5F1C0
 +
|-
 +
| Wall Chunk 20||$5F6F0
 +
|-
 +
| Wall Chunk 21||$5FB90
 +
|-
 +
| Wall Chunk 22||$5FD30
 +
|-
 +
| Wall Chunk 23||$5FF78
 +
|-
 +
| Wall Chunk 24||$60070
 +
|-
 +
| Wall Chunk 25||$6051C
 +
|-
 +
| Wall Chunk 26||$608A8
 +
|-
 +
| Wall Chunk 27||$60E74
 +
|-
 +
| Wall Chunk 28||$6150C
 +
|-
 +
| Wall Chunk 29||$6191C
 +
|-
 +
| Wall Chunk 30||$61B34
 +
|-
 +
| River Collider 1||$61D3C
 +
|-
 +
| River Collider 2||$6202C
 +
|-
 +
| River Collider 3||$622E0
 +
|-
 +
| River Collider 4||$625BC
 +
|-
 +
| River Collider 5||$6292C
 +
|-
 +
| River Collider 6||$62C00
 +
|-
 +
| River Collider 7||$62E9C
 +
|-
 +
| River Collider 8||$632E4
 +
|-
 +
| River Collider 9||$6368C
 +
|-
 +
| River Collider 10||$638AC
 +
|-
 +
| River Collider 11||$63AF8
 +
|-
 +
| Plateau Top Chunk 1||$63D74
 +
|-
 +
| Plateau Top Chunk 2||$6437C
 +
|-
 +
| Plateau Top Chunk 3||$644EC
 +
|-
 +
| Plateau Top Chunk 4||$6489C
 +
|-
 +
| Plateau Top Chunk 5||$64DF0
 +
|-
 +
| Plateau Top Chunk 6||$64F54
 +
|-
 +
| Plateau Top Chunk 7||$651B4
 +
|-
 +
| River Chunk 1||$65588
 +
|-
 +
| River Chunk 2||$65BE4
 +
|-
 +
| River Chunk 3||$66114
 +
|-
 +
| River Chunk 4||$66668
 +
|-
 +
| River Chunk 5||$66C40
 +
|-
 +
| River Chunk 6||$67284
 +
|-
 +
| River Chunk 7||$67730
 +
|-
 +
| River Chunk 8||$67E4C
 +
|-
 +
| River Chunk 9||$68364
 +
|-
 +
| River Chunk 10||$68780
 +
|-
 +
| River Chunk 11||$68B48
 +
|-
 +
| River Mask 1||$68E08
 +
|-
 +
| River Mask 2||$69E98
 +
|-
 +
| River Mask 3||$697A8
 +
|-
 +
| River Mask 4||$69C0C
 +
|-
 +
| River Mask 5||$6A070
 +
|-
 +
| River Mask 6||$6A5D0
 +
|-
 +
| River Mask 7||$6A938
 +
|-
 +
| River Mask 8||$6ACF4
 +
|-
 +
| River Mask 9||$6AF3C
 +
|-
 +
| River Mask 10||$6B2C8
 
|-
 
|-
| Head||$40C58
+
| River Mask 11||$6B588
 
|-
 
|-
| Right Thigh||$40DA8
+
| Sonic Statue||$6C9AC
 
|-
 
|-
| Right Calf||$41048
+
| Robotnik Statue||$6D290
 
|-
 
|-
| Right Foot||$412A0
+
| Statue Stand||$6D424
 
|-
 
|-
| Left Thigh||$413F0
+
| Big Bridge Chunk 1||$6DB7C
 
|-
 
|-
| Left Calf||$41690
+
| Big Bridge Chunk 2||$6DEFC
 
|-
 
|-
| Left Foot||$418E8
+
| Little Bridge||$6E510
 
|-
 
|-
| Right Bicep||$41A50
+
| Big Bridge Collider||$6EBEC
 
|-
 
|-
| Right Forearm||$41CF0
+
| Little Bridge Collider||$6EC78
 
|-
 
|-
| Right Hand||$41F18
+
| Z Camera Trigger 1||$6F1C0
 
|-
 
|-
| Left Bicep||$42080
+
| Z Camera Trigger 2||$6F7D4
 
|-
 
|-
| Left Forearm||$42320
+
| Z Camera Trigger 3||$6FDD4
 
|-
 
|-
| Left Hand||$42548
+
| Z Camera Trigger 4||$70394
 
|-
 
|-
| Tail||$42608
+
| Z Camera Trigger 5||$70648
 
|}
 
|}
  
 
{{SCHGuides}}
 
{{SCHGuides}}
 
[[Category:SCHG: Sonic Jam]]
 
[[Category:SCHG: Sonic Jam]]

Revision as of 00:44, 19 February 2021

SCHG: Sonic Jam
Main Article
Sonic World

Models
Animations
Textures
Sounds
RAM Editing

Model data starts at $3F908 in MUSEUM.MUS.

Model Format

Models generally consist of the following parts. There are some exceptions, but the general order stays the same.

Vertices

The first part are vertices, stored as a 3D vector.

Indexing Table

The second part is the indexing table for quads, using the vertices given. Indices are words, and jump by $08. The first vertex would be $0000; the second would be $0008. There's one for each quad.

Vertex Normals

The third, for objects that use Dynamic Gouraud Shading, are the vertex normals. These are normalized 3D vectors. As you'd expect, there's one for each vertex.

Draw Settings

After the above is the draw settings. There's one list of settings for each quad. Each list is 16 bytes long. Here's its format:

Description Length
Unknown. Highest bit seems to turn off backface culling. Byte
Unknown. Bits $1 and $2 affect depth testing in certain instances. Byte
Texture index. $0-$1DB. Word
CMDPMOD command for VDP1. Bit flags. Word
Unknown. Word
Static/Dynamic Gouraud Shading Table Index. Word
CMDCTRL command for VDP1. Bit flags. Word
Unknown. Word
Unknown. Word

Footer

This can vary from model to model, depending on which parts are present. For Sonic, this consists of the following:

  1. Pointer to start of vertices (long), number of vertices (long)
  2. Pointer to start of indexing table (long), number of quads (long)
  3. Pointer to draw command (long)
  4. Pointer to vertex normals (long)

Model Groups

Some models, such as Sonic and Tails, consist of multiple models in a group. After the last sub-model in the group, there's a footer.

The first part of the footer is a list of addresses pointing to each sub-model's footer. Replacing one of these with another sub-model footer address will result in that model being drawn instead.

The second part is a list of 3D Vectors, relative positions for each sub-model. They correspond to the addresses given in the previous section.

Certain model groups have some seemingly unused data that appears before the footer. This data seems to correlate with how the model group parenting hierarchy is set up.

Model List

Here's the list of models in the game that are currently known. Addresses given are pointers to model group footers, or model footers for ungrouped models.

Addresses for sub-model footers can be found in the model group footer; just subtract $06040000 from the part address you want if searching in MUSEUM.MUS, as they're set up for High Work RAM.

Name Address
Sonic (Normal) $42620
Sonic (Jumping) $45428
Sonic (Sprinting) $44230
Jumpball $49D48
Drop Shadow (Sonic) $49D88
Tails $4D31C
Tails (Low-Poly) $4E1B4
Test Object? $4E454
Cyan Pixel? $4E468
Black Pixel? $4E47C
Blue Pixel? $4E490
Stone Arch $4E9FC
Star Balloon $4EE7C
Star Balloon (Exploding) $4F754
Checkpoint Post $4F98C
Exit Building $4FE00
Exit Doors $4FEDC
Drop Shadow (Ring) $4FF48
Drop Shadow (Platform) $4FF5C
Palm Tree $5034C
Bush $506F4
Spring $50B44
Spinning Top (Tall) $50DBC
Post (Tall) $50E30
Post & Spinning Top (Short) $51130
Grassy Platform $514E4
Mission Button $51888
Character House Monitor $51C6C
Stone Post (Large) $51EE0
Stone Post (Small) $52134
Water Ripple 1 $521C4
Water Ripple 2 $521D8
Water Ripple 3 $521EC
Water Ripple 4 $52200
Water Ripple 5 $52214
Water Ripple 6 $52228
Big Ring $52FDC
Seagull $53224
Blue Flicky $53880
Green Flicky $53BC4
Purple Flicky $53F08
Red Flicky $5424C
Orange Flicky $54590
Monkey $54D00
Music Shop $55C14
Music Shop Interior $55D38
Art Gallery $56B44
Art Gallery Interior $56C88
Hall of Fame $57B30
Hall of Fame Interior $57C54
Character House (Robotnik) $58A18
Character House (Sonic) $58B34
Character House Interiors $58D4C
Movie Theater $59AF0
Movie Theater Interior $59C14
Wall Chunk 1 $5A090
Wall Chunk 2 $5A4A0
Wall Chunk 3 $5AB8C
Wall Chunk 4 $5B20C
Wall Chunk 5 $5B604
Wall Chunk 6 $5B9F0
Wall Chunk 7 $5BE44
Wall Chunk 8 $5C270
Wall Chunk 9 $5C560
Wall Chunk 10 $5CA48
Wall Chunk 11 $5CE04
Wall Chunk 12 $5D484
Wall Chunk 13 $5D960
Wall Chunk 14 $5E010
Wall Chunk 15 $5E300
Wall Chunk 16 $5E548
Wall Chunk 17 $5E73C
Wall Chunk 18 $5EC0C
Wall Chunk 19 $5F1C0
Wall Chunk 20 $5F6F0
Wall Chunk 21 $5FB90
Wall Chunk 22 $5FD30
Wall Chunk 23 $5FF78
Wall Chunk 24 $60070
Wall Chunk 25 $6051C
Wall Chunk 26 $608A8
Wall Chunk 27 $60E74
Wall Chunk 28 $6150C
Wall Chunk 29 $6191C
Wall Chunk 30 $61B34
River Collider 1 $61D3C
River Collider 2 $6202C
River Collider 3 $622E0
River Collider 4 $625BC
River Collider 5 $6292C
River Collider 6 $62C00
River Collider 7 $62E9C
River Collider 8 $632E4
River Collider 9 $6368C
River Collider 10 $638AC
River Collider 11 $63AF8
Plateau Top Chunk 1 $63D74
Plateau Top Chunk 2 $6437C
Plateau Top Chunk 3 $644EC
Plateau Top Chunk 4 $6489C
Plateau Top Chunk 5 $64DF0
Plateau Top Chunk 6 $64F54
Plateau Top Chunk 7 $651B4
River Chunk 1 $65588
River Chunk 2 $65BE4
River Chunk 3 $66114
River Chunk 4 $66668
River Chunk 5 $66C40
River Chunk 6 $67284
River Chunk 7 $67730
River Chunk 8 $67E4C
River Chunk 9 $68364
River Chunk 10 $68780
River Chunk 11 $68B48
River Mask 1 $68E08
River Mask 2 $69E98
River Mask 3 $697A8
River Mask 4 $69C0C
River Mask 5 $6A070
River Mask 6 $6A5D0
River Mask 7 $6A938
River Mask 8 $6ACF4
River Mask 9 $6AF3C
River Mask 10 $6B2C8
River Mask 11 $6B588
Sonic Statue $6C9AC
Robotnik Statue $6D290
Statue Stand $6D424
Big Bridge Chunk 1 $6DB7C
Big Bridge Chunk 2 $6DEFC
Little Bridge $6E510
Big Bridge Collider $6EBEC
Little Bridge Collider $6EC78
Z Camera Trigger 1 $6F1C0
Z Camera Trigger 2 $6F7D4
Z Camera Trigger 3 $6FDD4
Z Camera Trigger 4 $70394
Z Camera Trigger 5 $70648
Sonic Community Hacking Guide
General
SonED2 Manual | Subroutine Equivalency List
Game-Specific
Sonic the Hedgehog (16-bit) | Sonic the Hedgehog (8-bit) | Sonic CD (prototype 510) | Sonic CD | Sonic CD (PC) | Sonic CD (2011) | Sonic 2 (Simon Wai prototype) | Sonic 2 (16-bit) | Sonic 2 (Master System) | Sonic 3 | Sonic 3 & Knuckles | Chaotix | Sonic Jam | Sonic Jam 6 | Sonic Adventure | Sonic Adventure DX: Director's Cut | Sonic Adventure DX: PC | Sonic Adventure (2010) | Sonic Adventure 2 | Sonic Adventure 2: Battle | Sonic Adventure 2 (PC) | Sonic Heroes | Sonic Riders | Sonic the Hedgehog (2006) | Sonic & Sega All-Stars Racing | Sonic Unleashed (Xbox 360/PS3) | Sonic Colours | Sonic Generations | Sonic Forces
Technical information
Sonic Eraser | Sonic 2 (Nick Arcade prototype) | Sonic CD (prototype; 1992-12-04) | Dr. Robotnik's Mean Bean Machine | Sonic Triple Trouble | Tails Adventures | Sonic Crackers | Sonic 3D: Flickies' Island | Sonic & Knuckles Collection | Sonic R | Sonic Shuffle | Sonic Advance | Sonic Advance 3 | Sonic Battle | Shadow the Hedgehog | Sonic Rush | Sonic Classic Collection | Sonic Free Riders | Sonic Lost World
Legacy Guides
The Nemesis Hacking Guides The Esrael Hacking Guides
ROM: Sonic 1 | Sonic 2 | Sonic 2 Beta | Sonic 3

Savestate: Sonic 1 | Sonic 2 Beta/Final | Sonic 3

Sonic 1 (English / Portuguese) | Sonic 2 Beta (English / Portuguese) | Sonic 2 and Knuckles (English / Portuguese)
Move to Sega Retro
Number Systems (or scrap) | Assembly Hacking Guide | 68000 Instruction Set | 68000 ASM-to-Hex Code Reference | SMPS Music Hacking Guide | Mega Drive technical information