Actions

SCHG

Difference between revisions of "Sonic Adventure 2/Cutscenes"

From Sonic Retro

m (EXXXX_0 Information)
 
(37 intermediate revisions by 2 users not shown)
Line 2: Line 2:
 
==Cutscenes==
 
==Cutscenes==
 
Depending on the version of SA2, the data for the event cutscenes can differ. EXXXX.PRS is the main file, while the _0 to _J files contain miscellaneous resources, such as audio timings and lighting/screen fade information. In the Dreamcast version, the models and animation data for a scene are all contained within the main file, while in SA2B, the animation data was split off into an uncompressed file labeled exxxxmotion.bin. With two exceptions in the DC version - those being E0203 and E0210 - the event files can only be interpreted by the game if the main file is compressed.
 
Depending on the version of SA2, the data for the event cutscenes can differ. EXXXX.PRS is the main file, while the _0 to _J files contain miscellaneous resources, such as audio timings and lighting/screen fade information. In the Dreamcast version, the models and animation data for a scene are all contained within the main file, while in SA2B, the animation data was split off into an uncompressed file labeled exxxxmotion.bin. With two exceptions in the DC version - those being E0203 and E0210 - the event files can only be interpreted by the game if the main file is compressed.
 +
 +
Files that are labeled as evmes{{orange|?}}{{green|?}}.prs contain the subtitle text and their assignments per cutscene. The first {{orange|?}} wildcard starts with either H, D, or L, denoting the text used for the Hero Story, Dark Story, and Last Episode respectively. The second {{green|?}} wildcard contains a number from 0 to 5, which represents the language. As an example, evmes{{orange|H}}{{green|1}} contains all the English subtitle information for the Hero Story cutscenes. The contents of these files can be edited using SA2CutsceneTextEditor.
  
 
===Main File Information===
 
===Main File Information===
{| class="prettytable" style="width:70%;"
+
The base pointer for the DC version is 0xC600000<br />
 +
The base pointer for SA2B is 0x8125FE60
 +
{| class="prettytable" style="width:auto;"
 
!Offset!!Type!!Description
 
!Offset!!Type!!Description
 
|-
 
|-
 
| 0
 
| 0
 
| Pointer
 
| Pointer
| Scene geometry
+
| Cutscene asset arrays
 
|-
 
|-
 
| 4
 
| 4
Line 25: Line 29:
 
| 10
 
| 10
 
| Pointer
 
| Pointer
| ARK character reflection control?
+
| ARK character reflection control
 
|-
 
|-
 
| 14
 
| 14
 
| Pointer
 
| Pointer
| Spinning disc slices in ARK control room (Only used in E0200)
+
| Blur model array
 
|-
 
|-
 
| 18
 
| 18
Line 45: Line 49:
 
| 24
 
| 24
 
| Pointer
 
| Pointer
| Models that use animated textures
+
| Texture animation data
 
|-
 
|-
 
| 28
 
| 28
|  
+
| UINT32
| Drop shadow control? A value of 1 indicates updated scene geometry to accommodate proper drop shadows. (SA2B only)
+
| Drop shadow control. A value of 01 allows the character drop shadows to be rendered over updated geometry. (SA2B only)
 
|}
 
|}
  
====Upgrade List====
+
====Cutscene Entity Data====
The upgrade list is constant throughout the game. To work around a technical limitation with the character models in SA2B, Mech Tails and Mech Eggman were given an upgrade slot each for their windshields, as they would have problems rendering otherwise.
+
This section of the main file is the source for all things related to camera controls, models, animations, and Big the Cat cameos for the cutscene.
  
{| class="prettytable" style="width:30%;"
+
{| class="prettytable" style="width:auto;"
!Number!!Description
+
!Offset!!Type!!Description!!Notes
 
|-
 
|-
| 1
+
| 0
| Sonic's Light Shoes
+
| Pointer
|-
+
| Scene Entity Array
| 2
+
|  
| Sonic's Flame Ring
 
|-
 
| 3
 
| Sonic's Bounce Bracelet
 
 
|-
 
|-
 
| 4
 
| 4
| Sonic's Magic Gloves
+
| UINT32
 +
| Scene Entity Count
 +
|
 
|-
 
|-
| 5
+
| 8
| Shadow's Air Shoes
+
| Pointer
 +
| Scene Camera Array
 +
|  
 
|-
 
|-
| 6
+
| C
| Shadow's Flame Ring
+
| UINT32
 +
| Scene Camera Count
 +
|  
 
|-
 
|-
| 7
+
| 10
| Knuckles' Shovel Claw (Left)
+
| Pointer
 +
| Particle Motion Array
 +
| The animations in this array are used for positioning certain particle effects if the scene uses them
 +
|-
 +
| 14
 +
| UINT32
 +
| Particle Motion Count
 +
|  
 
|-
 
|-
| 8
+
| 18
| Knuckles' Shovel Claw (Right)
+
| Pointer
 +
| Big Cameo Array
 +
|  
 
|-
 
|-
| 9
+
| 1C
| Knuckles' Hammer Glove (Left)
+
| UINT32
 +
| Scene Frame Count
 +
| "Scene 0" will contain the total number of frames for the entire cutscene, as its section stores the cutscene geometry and must remain visible at all times.
 +
|}
 +
 
 +
=====Scene Entity Arrays=====
 +
This section of the cutscene entity data array controls which models and animations are to be loaded as a singular entity in a scene. The contents of this section are slightly different between game versions.
 +
 
 +
======Dreamcast======
 +
{| class="prettytable" style="width:auto;"
 +
!Offset!!Type!!Description
 
|-
 
|-
| 10
+
| 0
| Knuckles' Hammer Glove (Right)
+
| Pointer
 +
| Model
 
|-
 
|-
| 11
+
| 4
| Knuckles' Sunglasses
+
| Pointer
 +
| Animation
 
|-
 
|-
| 12
+
| 8
| Knuckles' Air Necklace
+
| Pointer
 +
| Shape Motion
 
|-
 
|-
| 13
+
| C
| Rouge's Pick Nails
+
| UINT32
 +
| Unknown
 +
|-
 +
| 10
 +
| Float(3)
 +
| Position
 
|-
 
|-
| 14
+
| 1C
| Rouge's Treasure Scope
+
| UINT32
 +
| Flags
 +
{| class="prettytable" style="width:auto;"
 +
!ID!!Description!!Notes
 
|-
 
|-
| 15
+
| 0x1
| Rouge's Iron Boots
+
| Entity has environment maps
 +
|  
 
|-
 
|-
| 16
+
| 0x2
| Rouge's Heart Plates
+
| Ignore backface culling
 +
|  
 
|-
 
|-
| 17
+
| 0x4
| Mech Tails' cockpit window (SA2B only)
+
| Unknown
 +
| All entities set this flag
 
|-
 
|-
| 18
+
| 0x8
| Mech Eggman's cockpit window (SA2B only)
+
| Enable Multi-Light System 1
|}
+
| Primarily combines lighting information from tables 1 and 2
 
 
===Character Node Hierarchy===
 
The node hierarchy for the characters in the cutscenes tends to be quite different from their main game counterparts. As a result, there isn't so much a common skeleton for the cutscene models so much as a different arrangement for the same nodes, with some alterations for what's included within the body's mesh. As a general rule of thumb, any part of the mesh that requires shape motions in the scene is not included with the main model.
 
 
 
====Sonic====
 
{|class="prettytable" style="width:30%;"
 
!ID||Description
 
 
|-
 
|-
| 0
+
| 0x10
| Root node
+
| Enable Multi-Light System 2
 +
| Primarily combines lighting information from tables 1, 3, and 4
 
|-
 
|-
| 1
+
| 0x20
| Root node 2 (Main array for the body)
+
| Enable Multi-Light System 3
 +
| Primarily combines lighting information from tables 1 and 4
 
|-
 
|-
| 2
+
| 0x40
| Body node (Parent)
+
| Entity has modifier volumes
 +
|  
 
|-
 
|-
| 3
+
| 0x80
| Body node (Parent 2)
+
| Entity can be reflected
 +
|  
 
|-
 
|-
| 4
+
| 0x100
| Legs + Tail node (Parent)
+
| Entity can have a blur effect
 +
|  
 
|-
 
|-
| 5
+
| 0x200
| Legs + Tail node (Parent 2)
+
| Unknown
 +
|
 +
|}
 +
|}
 +
 
 +
======SA2B======
 +
{| class="prettytable" style="width:auto;"
 +
!Offset!!Type!!Description!!Notes
 
|-
 
|-
| 6
+
| 0
| Left Leg (Parent)
+
| Pointer
 +
| Model
 +
|  
 
|-
 
|-
| 7
+
| 4
| Left Leg node (hip)
+
| Pointer
 +
| Animation
 +
|  
 
|-
 
|-
 
| 8
 
| 8
| Left Leg node (thigh)
+
| Pointer
 +
| Shape Motion
 +
|
 
|-
 
|-
| 9
+
| C
| Left Leg node (knee)
+
| Pointer
 +
| GC Model
 +
| This section is primarily used for "Scene 0" whenever the scene geometry was updated.
 
|-
 
|-
 
| 10
 
| 10
| Left Leg node (end)
+
| Pointer
 +
| Shadow Model
 +
| These models are usually texture-less versions of the character models and are used in cutscenes with GC models
 
|-
 
|-
| 11
+
| 14
| Left Foot node (Parent)
+
| UINT32
 +
| Unknown
 +
|  
 
|-
 
|-
| 12
+
| 18
| Left Foot node (Heel)
+
| Float(3)
 +
| Position
 +
|
 
|-
 
|-
| 13
+
| 24
| Left Foot node (Toe)
+
| UINT32
 +
| Flags
 +
{| class="prettytable" style="width:auto;"
 +
!ID!!Description!!Notes
 
|-
 
|-
| 14
+
| 0x1
| Left Foot node (End)
+
| Entity has environment maps
 +
|  
 
|-
 
|-
| 15
+
| 0x2
| Tail (Parent)
+
| Ignore Shape Motions
 +
|  
 
|-
 
|-
| 16
+
| 0x4
| Tail node (base)
+
| Unknown
 +
| All entities set this flag
 
|-
 
|-
| 17
+
| 0x8
| Tail node (2nd from base)
+
| Ignore Animations
 +
|  
 
|-
 
|-
| 18
+
| 0x10
| Tail node (2nd from end)
+
| Unknown
 +
|  
 
|-
 
|-
| 19
+
| 0x20
| Tail node (end)
+
| Unknown
 +
|  
 
|-
 
|-
| 20
+
| 0x40
| Right Leg (Parent)
+
| Entity has modifier volumes
 +
| This flag causes the models associated with the entity to not appear.
 
|-
 
|-
| 21
+
| 0x80
| Right Leg node (hip)
+
| Entity can be reflected
 +
|  
 
|-
 
|-
| 22
+
| 0x100
| Right Leg node (thigh)
+
| Entity can have a blur effect
 +
|  
 
|-
 
|-
| 23
+
| 0x200
| Right Leg node (knee)
+
| Unknown
 +
|
 +
|}
 +
|  
 
|-
 
|-
| 24
+
| 28
| Right Leg node (end)
+
| UINT32
 +
| Display Layer
 +
| This is a value between 0 and 4, which is tied to the game's rendering system. The higher values are sometimes used with models that use transparency to improve visibility
 +
|}
 +
 
 +
=====Big the Cat Cameo Data=====
 +
This section of the cutscene entity data array controls Big's cameos in each of the scenes.
 +
{| class="prettytable" style="width:auto;"
 +
!Offset!!Type!!Description
 
|-
 
|-
| 25
+
| 0
| Right Foot node (Parent)
+
| Pointer
 +
| Model
 
|-
 
|-
| 26
+
| 4
| Right Foot node (Heel)
+
| Pointer
 +
| Animation array
 
|-
 
|-
| 27
+
| 8
| Right Foot node (toe)
+
| UINT32
 +
| Animation count
 
|-
 
|-
| 28
+
| C
| Right Foot node (end)
+
| UINT32
 +
| Unknown
 +
|}
 +
 
 +
====Upgrade list====
 +
The upgrade list is constant throughout the game. To work around a technical limitation with the character models in SA2B, Mech Tails and Mech Eggman were given an upgrade slot each for their windshields, as they would have problems rendering otherwise.
 +
 
 +
{| class="prettytable" style="width:auto;"
 +
!Number!!Description
 
|-
 
|-
| 29
+
| 1
| Chest node (Parent)
+
| Sonic's Light Shoes
 
|-
 
|-
| 30
+
| 2
| Chest node (middle)
+
| Sonic's Flame Ring
 
|-
 
|-
| 31
+
| 3
| Head + Arms node (Parent)
+
| Sonic's Bounce Bracelet
 
|-
 
|-
| 32
+
| 4
| Head + Arms node (Parent 2)
+
| Sonic's Magic Gloves
 
|-
 
|-
| 33
+
| 5
| Right Arm (Parent, contains arm array)
+
| Shadow's Air Shoes
 
|-
 
|-
| 34
+
| 6
| Right Arm (Parent 2)
+
| Shadow's Flame Ring
 
|-
 
|-
| 35
+
| 7
| Right Arm node (base)
+
| Knuckles' Shovel Claw (Left)
 
|-
 
|-
| 36
+
| 8
| Right Arm node (elbow)
+
| Knuckles' Shovel Claw (Right)
 
|-
 
|-
| 37
+
| 9
| Right Arm node (wrist)
+
| Knuckles' Hammer Glove (Left)
 
|-
 
|-
| 38
+
| 10
| Right hand (Parent)
+
| Knuckles' Hammer Glove (Right)
 
|-
 
|-
| 39
+
| 11
| Right hand (Parent 2)
+
| Knuckles' Sunglasses
 
|-
 
|-
| 40
+
| 12
| Face node (Parent)
+
| Knuckles' Air Necklace
 
|-
 
|-
| 41
+
| 13
| Face node (Parent 2)
+
| Rouge's Pick Nails
 
|-
 
|-
| 42
+
| 14
| Face node (Parent 3)
+
| Rouge's Treasure Scope
 
|-
 
|-
| 43
+
| 15
| Muzzle (Parent)
+
| Rouge's Iron Boots
 
|-
 
|-
| 44
+
| 16
| Head (Parent)
+
| Rouge's Heart Plates
 
|-
 
|-
| 45
+
| 17
| Right eye (Parent)
+
| Mech Tails' cockpit window (SA2B only)
 
|-
 
|-
| 46
+
| 18
| Right eye
+
| Mech Eggman's cockpit window (SA2B only)
 +
|}
 +
 
 +
====Mech Parts list====
 +
The list used to detect mech character parts is constant throughout the game. The way this list works is that each part of the mech is referenced via pointer to its OBJECT struct and pieces that are deemed redundant are rendered invisible. For example, if the player has acquired Mech Tails' Bazooka upgrade, his Vulcan Cannon won't render on his model and vice versa.
 +
 
 +
The list is essentially split into three sections, with the first two including pointers to the upgrade models and the last section focusing on the regular models if they exist. The order of the upgrades in the list is identical to a set of flags that are found in the game's code, which is the basis for the descriptions found in the table. The Tornado object in E0004 references its Vulcan Cannon where the Bazooka upgrade would normally be referenced. The reasoning for this is unclear at the moment.
 +
 
 +
The original purpose of this section was to serve as the upgrade application list for cutscenes. As such, all visible upgrades are supported here, but due to the inclusion of a new upgrade list that more closely matches the in-game implementation, the mech characters are the only ones to utilize the feature at all.
 +
 
 +
{| class="prettytable" style="width:auto;"
 +
!ID!!Description!!ID!!Description!!ID!!Description
 
|-
 
|-
| 47
+
| 0
| Left eye (Parent)
+
| Sonic's Light Shoes 1*
 +
| 31
 +
| Sonic's Light Shoes 2*
 +
| 62
 +
| Null
 
|-
 
|-
| 48
+
| 1
| Left eye
+
| Sonic's Ancient Light**
 +
| 32
 +
| Null
 +
| 63
 +
| Null
 
|-
 
|-
| 49
+
| 2
| Left Arm (Parent, contains arm array)
+
| Sonic's Magic Gloves*
 +
| 33
 +
| Null
 +
| 64
 +
| Null
 
|-
 
|-
| 50
+
| 3
| Left Arm (Parent 2)
+
| Sonic's Flame Ring*
 +
| 34
 +
| Null
 +
| 65
 +
| Null
 
|-
 
|-
| 51
+
| 4
| Left Arm node (base)
+
| Sonic's Bounce Bracelet*
 +
| 35
 +
| Null
 +
| 66
 +
| Null
 
|-
 
|-
| 52
+
| 5
| Left Arm node (elbow)
+
| Sonic's Mystic Melody**
 +
| 36
 +
| Null
 +
| 67
 +
| Null
 
|-
 
|-
| 53
+
| 6
| Left Arm node (wrist)
+
| Mech Tails' Booster (Left, Node 51)
 +
| 37
 +
| Mech Tails' Booster (Right, Node 40)
 +
| 68
 +
| Null
 
|-
 
|-
| 54
+
| 7
| Left hand (Parent)
+
| Mech Tails' Bazooka (Root, Node 11)
 +
| 38
 +
| Null
 +
| 69
 +
| Mech Tails' Vulcan Cannon (Root, Node 3)
 
|-
 
|-
| 55
+
| 8
| Left Hand (Parent 2)
+
| Mech Tails' Laser Blaster (Root, Node 8)
|}
+
| 39
 
+
| Null
====Shadow====
+
| 70
{|class="prettytable" style="width:30%;"
+
| Mech Tails' Missile Blaster (Root, Node 5)
!ID||Description
 
 
|-
 
|-
| 0
+
| 9
| Root node
+
| Mech Tails' Mystic Melody**
 +
| 40
 +
| Null
 +
| 71
 +
| Null
 
|-
 
|-
| 1
+
| 10
| Root node 2 (Main array for the body)
+
| Knuckles' Shovel Claw 1*
 +
| 41
 +
| Knuckles' Shovel Claw 2*
 +
| 72
 +
| Null
 
|-
 
|-
| 2
+
| 11
| Body node (Parent)
+
| Knuckles' Sunglasses*
 +
| 42
 +
| Null
 +
| 73
 +
| Null
 
|-
 
|-
| 3
+
| 12
| Body node (Parent 2)
+
| Knuckles' Hammer Gloves 1*
 +
| 43
 +
| Knuckles' Hammer Gloves 2*
 +
| 74
 +
| Null
 
|-
 
|-
| 4
+
| 13
| Legs + Tail node (Parent)
+
| Knuckles' Air Necklace*
 +
| 44
 +
| Null
 +
| 75
 +
| Null
 
|-
 
|-
| 5
+
| 14
| Legs + Tail node (Parent 2)
+
| Knuckles' Mystic Melody**
 +
| 45
 +
| Null
 +
| 76
 +
| Null
 
|-
 
|-
| 6
+
| 15
| Right Leg (Parent)
+
| Null
 +
| 46
 +
| Null
 +
| 77
 +
| Null
 
|-
 
|-
| 7
+
| 16
| Right Leg node (hip)
+
| Shadow's Air Shoes 1*
 +
| 47
 +
| Shadow's Air Shoes 2*
 +
| 78
 +
| Null
 
|-
 
|-
| 8
+
| 17
| Right Leg node (thigh)
+
| Shadow's Ancient Light**
 +
| 48
 +
| Null
 +
| 79
 +
| Null
 
|-
 
|-
| 9
+
| 18
| Right Leg node (knee)
+
| Shadow's Flame Ring*
 +
| 49
 +
| Null
 +
| 80
 +
| Null
 
|-
 
|-
| 10
+
| 19
| Right Leg node (end)
+
| Shadow's Mystic Melody**
 +
| 50
 +
| Null
 +
| 81
 +
| Null
 
|-
 
|-
| 11
+
| 20
| Right Foot node (Parent)
+
| Mech Eggman's Jet Engine (Right, Node 6)
 +
| 51
 +
| Mech Eggman's Jet Engine (Left, Node 11)
 +
| 82
 +
| Null
 
|-
 
|-
| 12
+
| 21
| Right Foot node (Heel)
+
| Mech Eggman's Large Cannon (Root, Node 22)
 +
| 52
 +
| Null
 +
| 83
 +
| Mech Eggman's Vulcan Cannon (Root, Node 17)
 
|-
 
|-
| 13
+
| 22
| Right Foot node (Toe)
+
| Mech Eggman's Laser Blaster (Root, Node 24)
 +
| 53
 +
| Null
 +
| 84
 +
| Mech Eggman's Missile Blaster (Root, Node 19)
 
|-
 
|-
| 14
+
| 23
| Right Foot node (End)
+
| Mech Eggman's Protection Armor (Node 16)
 +
| 54
 +
| Null
 +
| 85
 +
| Null
 
|-
 
|-
| 15
+
| 24
| Tail (Parent)
+
| Mech Eggman's Mystic Melody**
 +
| 55
 +
| Null
 +
| 86
 +
| Null
 
|-
 
|-
| 16
+
| 25
| Tail node (base)
+
| Rouge's Pick Nails 1*
 +
| 56
 +
| Rouge's Pick Nails 2*
 +
| 87
 +
| Null
 
|-
 
|-
| 17
+
| 26
| Tail node (2nd from base)
+
| Rouge's Treasure Scope*
 +
| 57
 +
| Null
 +
| 88
 +
| Null
 
|-
 
|-
| 18
+
| 27
| Tail node (2nd from end)
+
| Rouge's Iron Boots 1*
 +
| 58
 +
| Rouge's Iron Boots 2*
 +
| 89
 +
| Null
 
|-
 
|-
| 19
+
| 28
| Tail node (end)
+
| Rouge's Mystic Melody**
 +
| 59
 +
| Null
 +
| 90
 +
| Null
 
|-
 
|-
| 20
+
| 29
| Left Leg (Parent)
+
| Null
 +
| 60
 +
| Null
 +
| 91
 +
| Null
 
|-
 
|-
| 21
+
| 30
| Left Leg node (hip)
+
| Null
 +
| 61
 +
| Null
 +
| 92
 +
| Null
 +
|}
 +
 
 +
<nowiki>*</nowiki>Assumed upgrade/normal model<br />
 +
<nowiki>**</nowiki>Upgrade doesn't normally have a visual component
 +
 
 +
===Character Node Hierarchy===
 +
The node hierarchy for the characters in the cutscenes tends to be quite different from their main game counterparts. As a result, there isn't so much a common skeleton for the cutscene models so much as a different arrangement for the same nodes, with some alterations for what's included within the body's mesh. As a general rule of thumb, any part of the mesh that requires shape motions in the scene is not included with the main model.
 +
 
 +
====Sonic====
 +
{|class="mw-collapsible mw-collapsed prettytable" style="width:auto;"
 +
!ID||Description
 
|-
 
|-
| 22
+
| 0
| Left Leg node (thigh)
+
| Root node
 
|-
 
|-
| 23
+
| 1
| Left Leg node (knee)
+
| Root node 2 (Main array for the body)
 
|-
 
|-
| 24
+
| 2
| Left Leg node (end)
+
| Body node (Parent)
 
|-
 
|-
| 25
+
| 3
| Left Foot node (Parent)
+
| Body node (Parent 2)
 
|-
 
|-
| 26
+
| 4
| Left Foot node (Heel)
+
| Legs + Tail node (Parent)
 
|-
 
|-
| 27
+
| 5
| Left Foot node (toe)
+
| Legs + Tail node (Parent 2)
 
|-
 
|-
| 28
+
| 6
| Left Foot node (end)
+
| Left Leg (Parent)
 
|-
 
|-
| 29
+
| 7
| Chest node (Parent)
+
| Left Leg node (hip)
 
|-
 
|-
| 30
+
| 8
| Chest node (middle)
+
| Left Leg node (thigh)
 
|-
 
|-
| 31
+
| 9
| Head + Arms node (Parent)
+
| Left Leg node (knee)
 
|-
 
|-
| 32
+
| 10
| Head + Arms node (Parent 2)
+
| Left Leg node (end)
 
|-
 
|-
| 33
+
| 11
| Right Arm (Parent, contains arm array)
+
| Left Foot node (Parent)
 
|-
 
|-
| 34
+
| 12
| Right Arm (Parent 2)
+
| Left Foot node (Heel)
 
|-
 
|-
| 35
+
| 13
| Right Arm node (base)
+
| Left Foot node (Toe)
 
|-
 
|-
| 36
+
| 14
| Right Arm node (elbow)
+
| Left Foot node (End)
 
|-
 
|-
| 37
+
| 15
| Right Arm node (wrist)
+
| Tail (Parent)
 
|-
 
|-
| 38
+
| 16
| Right hand (Parent)
+
| Tail node (base)
 
|-
 
|-
| 39
+
| 17
| Face node (Parent)
+
| Tail node (2nd from base)
 
|-
 
|-
| 40
+
| 18
| Face node (Parent 2)
+
| Tail node (2nd from end)
 
|-
 
|-
| 41
+
| 19
| Face node (Parent 3)
+
| Tail node (end)
 
|-
 
|-
| 42
+
| 20
| Muzzle (Parent)
+
| Right Leg (Parent)
 
|-
 
|-
| 43
+
| 21
| Head (Parent)
+
| Right Leg node (hip)
 
|-
 
|-
| 44
+
| 22
| Right eye (Parent)
+
| Right Leg node (thigh)
 
|-
 
|-
| 45
+
| 23
| Right eye
+
| Right Leg node (knee)
 
|-
 
|-
| 46
+
| 24
| Left eye (Parent)
+
| Right Leg node (end)
 
|-
 
|-
| 47
+
| 25
| Left eye
+
| Right Foot node (Parent)
 +
|-
 +
| 26
 +
| Right Foot node (Heel)
 
|-
 
|-
| 48
+
| 27
| Left Arm (Parent, contains arm array)
+
| Right Foot node (toe)
 
|-
 
|-
| 49
+
| 28
| Left Arm (Parent 2)
+
| Right Foot node (end)
 
|-
 
|-
| 50
+
| 29
| Left Arm node (base)
+
| Chest node (Parent)
 
|-
 
|-
| 51
+
| 30
| Left Arm node (elbow)
+
| Chest node (middle)
 
|-
 
|-
| 52
+
| 31
| Left Arm node (wrist)
+
| Head + Arms node (Parent)
 
|-
 
|-
| 53
+
| 32
| Left hand (Parent)
+
| Head + Arms node (Parent 2)
|}
 
 
 
====Knuckles====
 
{|class="prettytable" style="width:30%;"
 
!ID||Description
 
 
|-
 
|-
| 0
+
| 33
| Root node
+
| Right Arm (Parent, contains arm array)
 
|-
 
|-
| 1
+
| 34
| Root node 2 (Main array for the body)
+
| Right Arm (Parent 2)
 
|-
 
|-
| 2
+
| 35
| Body node (Parent)
+
| Right Arm node (base)
 
|-
 
|-
| 3
+
| 36
| Body node (Parent 2)
+
| Right Arm node (elbow)
 
|-
 
|-
| 4
+
| 37
| Legs + Tail node (Parent)
+
| Right Arm node (wrist)
 
|-
 
|-
| 5
+
| 38
| Legs + Tail node (Parent 2)
+
| Right hand (Parent)
 
|-
 
|-
| 6
+
| 39
| Right Leg (Parent)
+
| Right hand (Parent 2)
 
|-
 
|-
| 7
+
| 40
| Right Leg node (hip)
+
| Face node (Parent)
 
|-
 
|-
| 8
+
| 41
| Right Leg node (thigh)
+
| Face node (Parent 2)
 
|-
 
|-
| 9
+
| 42
| Right Leg node (knee)
+
| Face node (Parent 3)
 
|-
 
|-
| 10
+
| 43
| Right Leg node (end)
+
| Muzzle (Parent)
 
|-
 
|-
| 11
+
| 44
| Right Foot node (Parent, contains shoe array)
+
| Head (Parent)
 
|-
 
|-
| 12
+
| 45
| Right Foot node (Parent 2)
+
| Right eye (Parent)
 
|-
 
|-
| 13
+
| 46
| Right Foot node (Heel)
+
| Right eye
 
|-
 
|-
| 14
+
| 47
| Right Foot node (Toe)
+
| Left eye (Parent)
 
|-
 
|-
| 15
+
| 48
| Right Foot node (End)
+
| Left eye
 
|-
 
|-
| 16
+
| 49
| Left Leg (Parent)
+
| Left Arm (Parent, contains arm array)
 
|-
 
|-
| 17
+
| 50
| Left Leg node (hip)
+
| Left Arm (Parent 2)
 
|-
 
|-
| 18
+
| 51
| Left Leg node (thigh)
+
| Left Arm node (base)
 
|-
 
|-
| 19
+
| 52
| Left Leg node (knee)
+
| Left Arm node (elbow)
 
|-
 
|-
| 20
+
| 53
| Left Leg node (end)
+
| Left Arm node (wrist)
 
|-
 
|-
| 21
+
| 54
| Left Foot node (Parent, contains shoe array)
+
| Left hand (Parent)
 
|-
 
|-
| 22
+
| 55
| Left Foot node (Parent 2)
+
| Left Hand (Parent 2)
 +
|}
 +
 
 +
====Shadow====
 +
{|class="mw-collapsible mw-collapsed prettytable" style="width:auto;"
 +
!ID||Description
 
|-
 
|-
| 23
+
| 0
| Left Foot node (Heel)
+
| Root node
 
|-
 
|-
| 24
+
| 1
| Left Foot node (toe)
+
| Root node 2 (Main array for the body)
 
|-
 
|-
| 25
+
| 2
| Left Foot node (end)
+
| Body node (Parent)
 
|-
 
|-
| 26
+
| 3
| Tail (Parent)
+
| Body node (Parent 2)
 
|-
 
|-
| 27
+
| 4
| Tail node (base)
+
| Legs + Tail node (Parent)
 
|-
 
|-
| 28
+
| 5
| Tail node (2nd from base)
+
| Legs + Tail node (Parent 2)
 
|-
 
|-
| 29
+
| 6
| Tail node (2nd from end)
+
| Right Leg (Parent)
 
|-
 
|-
| 30
+
| 7
| Tail node (end)
+
| Right Leg node (hip)
 
|-
 
|-
| 31
+
| 8
| Chest node (Parent)
+
| Right Leg node (thigh)
 
|-
 
|-
| 32
+
| 9
| Chest node (middle)
+
| Right Leg node (knee)
 
|-
 
|-
| 33
+
| 10
| Head + Arms node (Parent)
+
| Right Leg node (end)
 
|-
 
|-
| 34
+
| 11
| Head + Arms node (Parent 2)
+
| Right Foot node (Parent)
 
|-
 
|-
| 35
+
| 12
| Left Arm (Parent, contains arm array)
+
| Right Foot node (Heel)
 
|-
 
|-
| 36
+
| 13
| Left Arm (Parent 2)
+
| Right Foot node (Toe)
 
|-
 
|-
| 37
+
| 14
| Left Arm node (base)
+
| Right Foot node (End)
 
|-
 
|-
| 38
+
| 15
| Left Arm node (elbow)
+
| Tail (Parent)
 
|-
 
|-
| 39
+
| 16
| Left Arm node (wrist)
+
| Tail node (base)
 
|-
 
|-
| 40
+
| 17
| Left hand (Parent)
+
| Tail node (2nd from base)
 
|-
 
|-
| 41
+
| 18
| Face node (Parent)
+
| Tail node (2nd from end)
 
|-
 
|-
| 42
+
| 19
| Face node (Parent 2)
+
| Tail node (end)
 
|-
 
|-
| 43
+
| 20
| Face node (Parent 3)
+
| Left Leg (Parent)
 
|-
 
|-
| 44
+
| 21
| Muzzle (Parent)
+
| Left Leg node (hip)
 
|-
 
|-
| 45
+
| 22
| Head (Parent)
+
| Left Leg node (thigh)
 
|-
 
|-
| 46
+
| 23
| Right eye (Parent)
+
| Left Leg node (knee)
 
|-
 
|-
| 47
+
| 24
| Right eye
+
| Left Leg node (end)
 
|-
 
|-
| 48
+
| 25
| Left eye (Parent)
+
| Left Foot node (Parent)
 
|-
 
|-
| 49
+
| 26
| Left eye
+
| Left Foot node (Heel)
 
|-
 
|-
| 50
+
| 27
| Right Arm (Parent, contains arm array)
+
| Left Foot node (toe)
 
|-
 
|-
| 51
+
| 28
| Right Arm (Parent 2)
+
| Left Foot node (end)
 
|-
 
|-
| 52
+
| 29
 +
| Chest node (Parent)
 +
|-
 +
| 30
 +
| Chest node (middle)
 +
|-
 +
| 31
 +
| Head + Arms node (Parent)
 +
|-
 +
| 32
 +
| Head + Arms node (Parent 2)
 +
|-
 +
| 33
 +
| Right Arm (Parent, contains arm array)
 +
|-
 +
| 34
 +
| Right Arm (Parent 2)
 +
|-
 +
| 35
 
| Right Arm node (base)
 
| Right Arm node (base)
 
|-
 
|-
| 53
+
| 36
 
| Right Arm node (elbow)
 
| Right Arm node (elbow)
 
|-
 
|-
| 54
+
| 37
 
| Right Arm node (wrist)
 
| Right Arm node (wrist)
 
|-
 
|-
| 55
+
| 38
 
| Right hand (Parent)
 
| Right hand (Parent)
|}
 
 
====Rouge====
 
{|class="prettytable" style="width:30%;"
 
!ID||Description
 
 
|-
 
|-
| 0
+
| 39
| Root node
+
| Face node (Parent)
 
|-
 
|-
| 1
+
| 40
| Root node 2 (Main array for the body)
+
| Face node (Parent 2)
 
|-
 
|-
| 2
+
| 41
| Body node (Parent)
+
| Face node (Parent 3)
 
|-
 
|-
| 3
+
| 42
| Body node (Parent 2)
+
| Muzzle (Parent)
 
|-
 
|-
| 4
+
| 43
| Legs + Tail node (Parent)
+
| Head (Parent)
 
|-
 
|-
| 5
+
| 44
| Legs + Tail node (Parent 2)
+
| Right eye (Parent)
 
|-
 
|-
| 6
+
| 45
| Right Leg (Parent)
+
| Right eye
 
|-
 
|-
| 7
+
| 46
| Right Leg node (hip)
+
| Left eye (Parent)
 
|-
 
|-
| 8
+
| 47
| Right Leg node (thigh)
+
| Left eye
 
|-
 
|-
| 9
+
| 48
| Right Leg node (knee)
+
| Left Arm (Parent, contains arm array)
 
|-
 
|-
| 10
+
| 49
| Right Leg node (end)
+
| Left Arm (Parent 2)
 
|-
 
|-
| 11
+
| 50
| Right Foot node (Parent, contains shoe array)
+
| Left Arm node (base)
 
|-
 
|-
| 12
+
| 51
| Right Foot node (Parent 2)
+
| Left Arm node (elbow)
 
|-
 
|-
| 13
+
| 52
| Right Foot node (Heel)
+
| Left Arm node (wrist)
 
|-
 
|-
| 14
+
| 53
| Right Foot node (Toe)
+
| Left hand (Parent)
 +
|}
 +
 
 +
====Knuckles====
 +
{|class="mw-collapsible mw-collapsed prettytable" style="width:auto;"
 +
!ID||Description
 
|-
 
|-
| 15
+
| 0
| Right Foot node (End)
+
| Root node
 
|-
 
|-
| 16
+
| 1
| Left Leg (Parent)
+
| Root node 2 (Main array for the body)
 
|-
 
|-
| 17
+
| 2
| Left Leg node (hip)
+
| Body node (Parent)
 
|-
 
|-
| 18
+
| 3
| Left Leg node (thigh)
+
| Body node (Parent 2)
 
|-
 
|-
| 19
+
| 4
| Left Leg node (knee)
+
| Legs + Tail node (Parent)
 
|-
 
|-
| 20
+
| 5
| Left Leg node (end)
+
| Legs + Tail node (Parent 2)
 
|-
 
|-
| 21
+
| 6
| Left Foot node (Parent, contains shoe array)
+
| Right Leg (Parent)
 
|-
 
|-
| 22
+
| 7
| Left Foot node (Parent 2)
+
| Right Leg node (hip)
 
|-
 
|-
| 23
+
| 8
| Left Foot node (Heel)
+
| Right Leg node (thigh)
 
|-
 
|-
| 24
+
| 9
| Left Foot node (toe)
+
| Right Leg node (knee)
 
|-
 
|-
| 25
+
| 10
| Left Foot node (end)
+
| Right Leg node (end)
 
|-
 
|-
| 26
+
| 11
| Tail (Parent)
+
| Right Foot node (Parent, contains shoe array)
 
|-
 
|-
| 27
+
| 12
| Tail node (base)
+
| Right Foot node (Parent 2)
 
|-
 
|-
| 28
+
| 13
| Tail node (2nd from base)
+
| Right Foot node (Heel)
 
|-
 
|-
| 29
+
| 14
| Tail node (2nd from end)
+
| Right Foot node (Toe)
 
|-
 
|-
| 30
+
| 15
| Tail node (end)
+
| Right Foot node (End)
 
|-
 
|-
| 31
+
| 16
| Chest node (Parent)
+
| Left Leg (Parent)
 
|-
 
|-
| 32
+
| 17
| Chest node (middle)
+
| Left Leg node (hip)
 
|-
 
|-
| 33
+
| 18
| Head + Arms node (Parent)
+
| Left Leg node (thigh)
 
|-
 
|-
| 34
+
| 19
| Head + Arms node (Parent 2)
+
| Left Leg node (knee)
 
|-
 
|-
| 35
+
| 20
| Right Arm (Parent, contains arm array)
+
| Left Leg node (end)
 
|-
 
|-
| 36
+
| 21
| Right Arm (Parent 2)
+
| Left Foot node (Parent, contains shoe array)
 
|-
 
|-
| 37
+
| 22
| Right Arm node (base)
+
| Left Foot node (Parent 2)
 
|-
 
|-
| 38
+
| 23
| Right Arm node (elbow)
+
| Left Foot node (Heel)
 
|-
 
|-
| 39
+
| 24
| Right Arm node (wrist)
+
| Left Foot node (toe)
 
|-
 
|-
| 40
+
| 25
| Right hand (Parent)
+
| Left Foot node (end)
 
|-
 
|-
| 41
+
| 26
| Right hand (Parent 2)
+
| Tail (Parent)
 
|-
 
|-
| 42
+
| 27
| Right thumb node (Parent)
+
| Tail node (base)
 
|-
 
|-
| 43
+
| 28
| Right thumb node (middle)
+
| Tail node (2nd from base)
 
|-
 
|-
| 44
+
| 29
| Right thumb node (tip)
+
| Tail node (2nd from end)
 
|-
 
|-
| 45
+
| 30
| Right fingers node (Parent)
+
| Tail node (end)
 
|-
 
|-
| 46
+
| 31
| Right fingers node (middle)
+
| Chest node (Parent)
 
|-
 
|-
| 47
+
| 32
| Right fingers node (tip)
+
| Chest node (middle)
 
|-
 
|-
| 48
+
| 33
| Right pinkie node (Parent)
+
| Head + Arms node (Parent)
 
|-
 
|-
| 49
+
| 34
| Right pinkie node (middle)
+
| Head + Arms node (Parent 2)
 
|-
 
|-
| 50
+
| 35
| Right pinkie node (tip)
+
| Left Arm (Parent, contains arm array)
 
|-
 
|-
| 51
+
| 36
| Right hand
+
| Left Arm (Parent 2)
 
|-
 
|-
| 52
+
| 37
| Face node (Parent)
+
| Left Arm node (base)
 
|-
 
|-
| 53
+
| 38
 +
| Left Arm node (elbow)
 +
|-
 +
| 39
 +
| Left Arm node (wrist)
 +
|-
 +
| 40
 +
| Left hand (Parent)
 +
|-
 +
| 41
 +
| Face node (Parent)
 +
|-
 +
| 42
 
| Face node (Parent 2)
 
| Face node (Parent 2)
 
|-
 
|-
| 54
+
| 43
 
| Face node (Parent 3)
 
| Face node (Parent 3)
 
|-
 
|-
| 55
+
| 44
 
| Muzzle (Parent)
 
| Muzzle (Parent)
 
|-
 
|-
| 56
+
| 45
 
| Head (Parent)
 
| Head (Parent)
 
|-
 
|-
| 57
+
| 46
 
| Right eye (Parent)
 
| Right eye (Parent)
 
|-
 
|-
| 58
+
| 47
 
| Right eye
 
| Right eye
 
|-
 
|-
| 59
+
| 48
 
| Left eye (Parent)
 
| Left eye (Parent)
 
|-
 
|-
| 60
+
| 49
 
| Left eye
 
| Left eye
 
|-
 
|-
| 61
+
| 50
| Left Arm (Parent, contains arm array)
+
| Right Arm (Parent, contains arm array)
 
|-
 
|-
| 62
+
| 51
| Left Arm (Parent 2)
+
| Right Arm (Parent 2)
 
|-
 
|-
| 63
+
| 52
| Left Arm node (base)
+
| Right Arm node (base)
 
|-
 
|-
| 64
+
| 53
| Left Arm node (elbow)
+
| Right Arm node (elbow)
 
|-
 
|-
| 65
+
| 54
| Left Arm node (wrist)
+
| Right Arm node (wrist)
 
|-
 
|-
| 66
+
| 55
| Left hand (Parent)
+
| Right hand (Parent)
 +
|}
 +
 
 +
====Rouge====
 +
{|class="mw-collapsible mw-collapsed prettytable" style="width:auto;"
 +
!ID||Description
 
|-
 
|-
| 67
+
| 0
| Left Hand (Parent 2)
+
| Root node
 
|-
 
|-
| 68
+
| 1
| Left thumb node (Parent)
+
| Root node 2 (Main array for the body)
 
|-
 
|-
| 69
+
| 2
| Left thumb node (middle)
+
| Body node (Parent)
 
|-
 
|-
| 70
+
| 3
| Left thumb node (tip)
+
| Body node (Parent 2)
 
|-
 
|-
| 71
+
| 4
| Left fingers node (Parent)
+
| Legs + Tail node (Parent)
 
|-
 
|-
| 72
+
| 5
| Left fingers node (middle)
+
| Legs + Tail node (Parent 2)
 
|-
 
|-
| 73
+
| 6
| Left fingers node (tip)
+
| Right Leg (Parent)
 
|-
 
|-
| 74
+
| 7
| Left pinkie node (Parent)
+
| Right Leg node (hip)
 
|-
 
|-
| 75
+
| 8
| Left pinkie node (middle)
+
| Right Leg node (thigh)
 
|-
 
|-
| 76
+
| 9
| Left pinkie node (tip)
+
| Right Leg node (knee)
 
|-
 
|-
| 77
+
| 10
| Left hand
+
| Right Leg node (end)
|}
 
 
 
====Mech Tails====
 
{|class="prettytable" style="width:30%;"
 
!ID||Description
 
 
|-
 
|-
| 0
+
| 11
| Mech's Root node
+
| Right Foot node (Parent, contains shoe array)
 
|-
 
|-
| 1
+
| 12
| Mech's Legs node (Parent)
+
| Right Foot node (Parent 2)
 
|-
 
|-
| 2
+
| 13
| Mech's Chest node (Parent)
+
| Right Foot node (Heel)
 
|-
 
|-
| 3
+
| 14
| Vulcan Cannon
+
| Right Foot node (Toe)
 
|-
 
|-
| 4
+
| 15
| Vulcan Cannon node
+
| Right Foot node (End)
 
|-
 
|-
| 5
+
| 16
| Missile Blaster node (base)
+
| Left Leg (Parent)
 
|-
 
|-
| 6
+
| 17
| Missile Blaster node (barrel)
+
| Left Leg node (hip)
 
|-
 
|-
| 7
+
| 18
| Missile Blaster node (tip)
+
| Left Leg node (thigh)
 
|-
 
|-
| 8
+
| 19
| Laser Blaster node (base)
+
| Left Leg node (knee)
 
|-
 
|-
| 9
+
| 20
| Laser Blaster node (barrel)
+
| Left Leg node (end)
 
|-
 
|-
| 10
+
| 21
| Laser Blaster node (tip)
+
| Left Foot node (Parent, contains shoe array)
 
|-
 
|-
| 11
+
| 22
| Bazooka node (base)
+
| Left Foot node (Parent 2)
 
|-
 
|-
| 12
+
| 23
| Bazooka node (barrel)
+
| Left Foot node (Heel)
 
|-
 
|-
| 13
+
| 24
| Bazooka node (tip)
+
| Left Foot node (toe)
 
|-
 
|-
| 14
+
| 25
| Cannon node
+
| Left Foot node (end)
 
|-
 
|-
| 15
+
| 26
| Pilot's root node
+
| Tail (Parent)
 
|-
 
|-
| 16
+
| 27
| Pilot's Chest node
+
| Tail node (base)
 
|-
 
|-
| 17
+
| 28
| Pilot's Left Arm node (base, contains array for arm)
+
| Tail node (2nd from base)
 
|-
 
|-
| 18
+
| 29
| Pilot's Left Arm node (Parent)
+
| Tail node (2nd from end)
 
|-
 
|-
| 19
+
| 30
| Pilot's Left Arm node (Armpit)
+
| Tail node (end)
 
|-
 
|-
| 20
+
| 31
| Pilot's Left Arm node (elbow)
+
| Chest node (Parent)
 
|-
 
|-
| 21
+
| 32
| Pilot's Left Arm node (wrist)
+
| Chest node (middle)
 
|-
 
|-
| 22
+
| 33
| Pilot's Right arm node (base, contains array for arm)
+
| Head + Arms node (Parent)
 
|-
 
|-
| 23
+
| 34
| Pilot's Right arm node (Parent)
+
| Head + Arms node (Parent 2)
 
|-
 
|-
| 24
+
| 35
| Pilot's Right arm node (armpit)
+
| Right Arm (Parent, contains arm array)
 
|-
 
|-
| 25
+
| 36
| Pilot's Right arm node (elbow)
+
| Right Arm (Parent 2)
 
|-
 
|-
| 26
+
| 37
| Pilot's Right arm node (wrist)
+
| Right Arm node (base)
 
|-
 
|-
| 27
+
| 38
| Pilot's Face node (Parent)
+
| Right Arm node (elbow)
 
|-
 
|-
| 28
+
| 39
| Pilot's Face node (Parent 2)
+
| Right Arm node (wrist)
 
|-
 
|-
| 29
+
| 40
| Pilot's Face node (Parent 3)
+
| Right hand (Parent)
 
|-
 
|-
| 30
+
| 41
| Pilot's Right eye
+
| Right hand (Parent 2)
 
|-
 
|-
| 31
+
| 42
| Pilot's Left eye
+
| Right thumb node (Parent)
 
|-
 
|-
| 32
+
| 43
| Pilot's face node (end)
+
| Right thumb node (middle)
 
|-
 
|-
| 33
+
| 44
| Yoke node
+
| Right thumb node (tip)
 
|-
 
|-
| 34
+
| 45
| Lock-on Laser node
+
| Right fingers node (Parent)
 
|-
 
|-
| 35
+
| 46
| Mech's Right foot node (Parent)
+
| Right fingers node (middle)
 
|-
 
|-
| 36
+
| 47
| Mech's Right foot node (Parent 2)
+
| Right fingers node (tip)
 
|-
 
|-
| 37
+
| 48
| Mech's Right foot node (base)
+
| Right pinkie node (Parent)
 
|-
 
|-
| 38
+
| 49
| Mech's Right foot node (calf, Parent)
+
| Right pinkie node (middle)
 
|-
 
|-
| 39
+
| 50
| Mech's Right foot node (calf)
+
| Right pinkie node (tip)
 
|-
 
|-
| 40
+
| 51
| Booster (Right)
+
| Right hand
 
|-
 
|-
| 41
+
| 52
| Mech's Right foot node (Foot, Parent 1)
+
| Face node (Parent)
 
|-
 
|-
| 42
+
| 53
| Mech's Right foot node (Foot, Parent 2)
+
| Face node (Parent 2)
 
|-
 
|-
| 43
+
| 54
| Mech's Right foot node (Foot, Parent 3)
+
| Face node (Parent 3)
 
|-
 
|-
| 44
+
| 55
| Mech's Right foot node (Foot)
+
| Muzzle (Parent)
 
|-
 
|-
| 45
+
| 56
| Mech's Right foot node (Foot, tip)
+
| Head (Parent)
 
|-
 
|-
| 46
+
| 57
| Mech's Left foot node (Parent)
+
| Right eye (Parent)
 
|-
 
|-
| 47
+
| 58
| Mech's Left foot node (Parent 2)
+
| Right eye
 
|-
 
|-
| 48
+
| 59
| Mech's Left foot node (base)
+
| Left eye (Parent)
 
|-
 
|-
| 49
+
| 60
| Mech's Left foot node (calf, Parent)
+
| Left eye
 
|-
 
|-
| 50
+
| 61
| Mech's Left foot node (calf)
+
| Left Arm (Parent, contains arm array)
 
|-
 
|-
| 51
+
| 62
| Booster (Left)
+
| Left Arm (Parent 2)
 
|-
 
|-
| 52
+
| 63
| Mech's Left foot node (Foot, Parent 1)
+
| Left Arm node (base)
 
|-
 
|-
| 53
+
| 64
| Mech's Left foot node (Foot, Parent 2)
+
| Left Arm node (elbow)
 
|-
 
|-
| 54
+
| 65
| Mech's Left foot node (Foot, Parent 3)
+
| Left Arm node (wrist)
 
|-
 
|-
| 55
+
| 66
| Mech's Left foot node (Foot)
+
| Left hand (Parent)
 
|-
 
|-
| 56
+
| 67
| Mech's Left foot node (Foot, tip)
+
| Left Hand (Parent 2)
|}
 
 
 
====Mech Eggman====
 
{|class="prettytable" style="width:30%;"
 
!ID||Description
 
 
|-
 
|-
| 0
+
| 68
| Root node
+
| Left thumb node (Parent)
 
|-
 
|-
| 1
+
| 69
| Mech's Legs node (Parent)
+
| Left thumb node (middle)
 
|-
 
|-
| 2
+
| 70
| Mech's Right Leg node (base)
+
| Left thumb node (tip)
 
|-
 
|-
| 3
+
| 71
| Mech's Right Leg node (calf)
+
| Left fingers node (Parent)
 
|-
 
|-
| 4
+
| 72
| Mech's Right Foot node (heel)
+
| Left fingers node (middle)
 
|-
 
|-
| 5
+
| 73
| Mech's Right Foot node (toe)
+
| Left fingers node (tip)
 
|-
 
|-
| 6
+
| 74
| Jet Engine (Right)
+
| Left pinkie node (Parent)
 
|-
 
|-
| 7
+
| 75
| Mech's Left Leg node (base)
+
| Left pinkie node (middle)
 
|-
 
|-
| 8
+
| 76
| Mech's Left Leg node (calf)
+
| Left pinkie node (tip)
 
|-
 
|-
| 9
+
| 77
| Mech's Left Leg node (heel)
+
| Left hand
 +
|}
 +
 
 +
====Mech Tails====
 +
{|class="mw-collapsible mw-collapsed prettytable" style="width:auto;"
 +
!ID||Description
 
|-
 
|-
| 10
+
| 0
| Mech's Left Leg node (toe)
+
| Mech's Root node
 
|-
 
|-
| 11
+
| 1
| Jet Engine (Left)
+
| Mech's Legs node (Parent)
 
|-
 
|-
| 12
+
| 2
 
| Mech's Chest node (Parent)
 
| Mech's Chest node (Parent)
 
|-
 
|-
| 13
+
| 3
| Blaster node
+
| Vulcan Cannon
 
|-
 
|-
| 14
+
| 4
| Lock-on Laser node
+
| Vulcan Cannon node
 
|-
 
|-
| 15
+
| 5
| Accessories node? (Parent)
+
| Missile Blaster node (base)
 
|-
 
|-
| 16
+
| 6
| Protection Armor
+
| Missile Blaster node (barrel)
 
|-
 
|-
| 17
+
| 7
| Vulcan Cannon
 
|-
 
| 18
 
| Vulcan Cannon node
 
|-
 
| 19
 
| Missile Blaster node (base)
 
|-
 
| 20
 
| Missile Blaster node (barrel)
 
|-
 
| 21
 
 
| Missile Blaster node (tip)
 
| Missile Blaster node (tip)
 
|-
 
|-
| 22
+
| 8
| Large Cannon
 
|-
 
| 23
 
| Large Cannon node
 
|-
 
| 24
 
 
| Laser Blaster node (base)
 
| Laser Blaster node (base)
 
|-
 
|-
| 25
+
| 9
 
| Laser Blaster node (barrel)
 
| Laser Blaster node (barrel)
 
|-
 
|-
| 26
+
| 10
 
| Laser Blaster node (tip)
 
| Laser Blaster node (tip)
 
|-
 
|-
| 27
+
| 11
| Laser Blaster node (glow)
+
| Bazooka node (base)
 
|-
 
|-
| 28
+
| 12
 +
| Bazooka node (barrel)
 +
|-
 +
| 13
 +
| Bazooka node (tip)
 +
|-
 +
| 14
 +
| Cannon node
 +
|-
 +
| 15
 
| Pilot's root node
 
| Pilot's root node
 
|-
 
|-
| 29
+
| 16
| Pilot's chest node (Contains array for the body)
+
| Pilot's Chest node
 
|-
 
|-
| 30
+
| 17
| Pilot's Arms node (Parent)
+
| Pilot's Left Arm node (base, contains array for arm)
 
|-
 
|-
| 31
+
| 18
 
| Pilot's Left Arm node (Parent)
 
| Pilot's Left Arm node (Parent)
 
|-
 
|-
| 32
+
| 19
| Pilot's Left Arm node (base)
+
| Pilot's Left Arm node (Armpit)
 
|-
 
|-
| 33
+
| 20
 
| Pilot's Left Arm node (elbow)
 
| Pilot's Left Arm node (elbow)
 
|-
 
|-
| 34
+
| 21
 
| Pilot's Left Arm node (wrist)
 
| Pilot's Left Arm node (wrist)
 
|-
 
|-
| 35
+
| 22
| Pilot's Left hand node (Parent)
+
| Pilot's Right arm node (base, contains array for arm)
 
|-
 
|-
| 36
+
| 23
| Pilot's Right Arm node (Parent)
+
| Pilot's Right arm node (Parent)
 
|-
 
|-
| 37
+
| 24
| Pilot's Right arm node (base)
+
| Pilot's Right arm node (armpit)
 
|-
 
|-
| 38
+
| 25
 
| Pilot's Right arm node (elbow)
 
| Pilot's Right arm node (elbow)
 
|-
 
|-
| 39
+
| 26
 
| Pilot's Right arm node (wrist)
 
| Pilot's Right arm node (wrist)
 
|-
 
|-
| 40
+
| 27
| Pilot's Right hand node (Parent)
 
|-
 
| 41
 
 
| Pilot's Face node (Parent)
 
| Pilot's Face node (Parent)
 
|-
 
|-
| 42
+
| 28
 
| Pilot's Face node (Parent 2)
 
| Pilot's Face node (Parent 2)
 
|-
 
|-
| 43
+
| 29
 
| Pilot's Face node (Parent 3)
 
| Pilot's Face node (Parent 3)
|}
 
 
====Tails====
 
{|class="prettytable" style="width:30%;"
 
!ID||Description
 
 
|-
 
|-
| 0
+
| 30
| Root node
+
| Pilot's Right eye
 
|-
 
|-
| 1
+
| 31
| Root node 2 (Main array for the body)
+
| Pilot's Left eye
 
|-
 
|-
| 2
+
| 32
| Body node (Parent)
+
| Pilot's face node (end)
 
|-
 
|-
| 3
+
| 33
| Chest node (Parent)
+
| Yoke node
 
|-
 
|-
| 4
+
| 34
| Chest node (middle)
+
| Lock-on Laser node
 
|-
 
|-
| 5
+
| 35
| Head + Arms node (Parent)
+
| Mech's Right foot node (Parent)
 
|-
 
|-
| 6
+
| 36
| Head + Arms node (Parent 2)
+
| Mech's Right foot node (Parent 2)
 
|-
 
|-
| 7
+
| 37
| Left Arm (Parent, contains arm array)
+
| Mech's Right foot node (base)
 
|-
 
|-
| 8
+
| 38
| Left Arm (Parent 2)
+
| Mech's Right foot node (calf, Parent)
 
|-
 
|-
| 9
+
| 39
| Left Arm node (base)
+
| Mech's Right foot node (calf)
 
|-
 
|-
| 10
+
| 40
| Left Arm node (elbow)
+
| Booster (Right)
 
|-
 
|-
| 11
+
| 41
| Left Arm node (wrist)
+
| Mech's Right foot node (Foot, Parent 1)
 
|-
 
|-
| 12
+
| 42
| Left hand (Parent)
+
| Mech's Right foot node (Foot, Parent 2)
 
|-
 
|-
| 13
+
| 43
| Left hand (Parent 2)
+
| Mech's Right foot node (Foot, Parent 3)
 
|-
 
|-
| 14
+
| 44
| Right Arm (Parent, contains arm array)
+
| Mech's Right foot node (Foot)
 
|-
 
|-
| 15
+
| 45
| Right Arm (Parent 2)
+
| Mech's Right foot node (Foot, tip)
 
|-
 
|-
| 16
+
| 46
| Right Arm node (base)
+
| Mech's Left foot node (Parent)
 
|-
 
|-
| 17
+
| 47
| Right Arm node (elbow)
+
| Mech's Left foot node (Parent 2)
 
|-
 
|-
| 18
+
| 48
| Right Arm node (wrist)
+
| Mech's Left foot node (base)
 
|-
 
|-
| 19
+
| 49
| Right hand (Parent)
+
| Mech's Left foot node (calf, Parent)
 
|-
 
|-
| 20
+
| 50
| Right Hand (Parent 2)
+
| Mech's Left foot node (calf)
 
|-
 
|-
| 21
+
| 51
| Face node (Parent)
+
| Booster (Left)
 
|-
 
|-
| 22
+
| 52
| Face node (Parent 2)
+
| Mech's Left foot node (Foot, Parent 1)
 
|-
 
|-
| 23
+
| 53
| Face node (Parent 3)
+
| Mech's Left foot node (Foot, Parent 2)
 
|-
 
|-
| 24
+
| 54
| Eyes (Parent)
+
| Mech's Left foot node (Foot, Parent 3)
 
|-
 
|-
| 25
+
| 55
| Left Eye
+
| Mech's Left foot node (Foot)
 
|-
 
|-
| 26
+
| 56
| Right eye
+
| Mech's Left foot node (Foot, tip)
 +
|}
 +
 
 +
====Mech Eggman====
 +
{|class="mw-collapsible mw-collapsed prettytable" style="width:auto;"
 +
!ID||Description
 
|-
 
|-
| 27
+
| 0
| Muzzle (Parent)
+
| Root node
 
|-
 
|-
| 28
+
| 1
| Head (Parent)
+
| Mech's Legs node (Parent)
 
|-
 
|-
| 29
+
| 2
| Body node (Parent 2)
+
| Mech's Right Leg node (base)
 
|-
 
|-
| 30
+
| 3
| Legs + Tail node (Parent)
+
| Mech's Right Leg node (calf)
 
|-
 
|-
| 31
+
| 4
| Legs + Tail node (Parent 2)
+
| Mech's Right Foot node (heel)
 
|-
 
|-
| 32
+
| 5
| Right Leg (Parent)
+
| Mech's Right Foot node (toe)
 
|-
 
|-
| 33
+
| 6
| Right Leg node (hip)
+
| Jet Engine (Right)
 
|-
 
|-
| 34
+
| 7
| Right Leg node (thigh)
+
| Mech's Left Leg node (base)
 
|-
 
|-
| 35
+
| 8
| Right Leg node (knee)
+
| Mech's Left Leg node (calf)
 
|-
 
|-
| 36
+
| 9
| Right Leg node (end)
+
| Mech's Left Leg node (heel)
 
|-
 
|-
| 37
+
| 10
| Right Foot node (Parent, contains shoe array)
+
| Mech's Left Leg node (toe)
 
|-
 
|-
| 38
+
| 11
| Right Foot node (Parent 2)
+
| Jet Engine (Left)
 
|-
 
|-
| 39
+
| 12
| Right Foot node (Heel)
+
| Mech's Chest node (Parent)
 
|-
 
|-
| 40
+
| 13
| Right Foot node (Toe)
+
| Blaster node
 
|-
 
|-
| 41
+
| 14
| Right Foot node (End)
+
| Lock-on Laser node
 
|-
 
|-
| 42
+
| 15
| Tails (Parent)
+
| Accessories node? (Parent)
 
|-
 
|-
| 43
+
| 16
| Right tail
+
| Protection Armor
 
|-
 
|-
| 44
+
| 17
| Left tail
+
| Vulcan Cannon
 
|-
 
|-
| 45
+
| 18
| Left Leg (Parent)
+
| Vulcan Cannon node
 
|-
 
|-
| 46
+
| 19
| Left Leg node (hip)
+
| Missile Blaster node (base)
 
|-
 
|-
| 47
+
| 20
| Left Leg node (thigh)
+
| Missile Blaster node (barrel)
 
|-
 
|-
| 48
+
| 21
| Left Leg node (knee)
+
| Missile Blaster node (tip)
 
|-
 
|-
| 49
+
| 22
| Left Leg node (end)
+
| Large Cannon
 
|-
 
|-
| 50
+
| 23
| Left Foot node (Parent, contains shoe array)
+
| Large Cannon node
 
|-
 
|-
| 51
+
| 24
| Left Foot node (Parent 2)
+
| Laser Blaster node (base)
 
|-
 
|-
| 52
+
| 25
| Left Foot node (Heel)
+
| Laser Blaster node (barrel)
 
|-
 
|-
| 53
+
| 26
| Left Foot node (toe)
+
| Laser Blaster node (tip)
 
|-
 
|-
| 54
+
| 27
| Left Foot node (end)
+
| Laser Blaster node (glow)
|}
 
 
 
====Eggman====
 
{|class="prettytable" style="width:30%;"
 
!ID||Description
 
 
|-
 
|-
| 0
+
| 28
| Root node
+
| Pilot's root node
 
|-
 
|-
| 1
+
| 29
| Root node 2 (Main array for the body)
+
| Pilot's chest node (Contains array for the body)
 
|-
 
|-
| 2
+
| 30
| Body node (Parent)
+
| Pilot's Arms node (Parent)
 
|-
 
|-
| 3
+
| 31
| Chest node (Parent)
+
| Pilot's Left Arm node (Parent)
 
|-
 
|-
| 4
+
| 32
| Chest node (middle)
+
| Pilot's Left Arm node (base)
 
|-
 
|-
| 5
+
| 33
| Head + Arms node (Parent)
+
| Pilot's Left Arm node (elbow)
 
|-
 
|-
| 6
+
| 34
| Head + Arms node (Parent 2)
+
| Pilot's Left Arm node (wrist)
 
|-
 
|-
| 7
+
| 35
| Left Arm (Parent)
+
| Pilot's Left hand node (Parent)
 
|-
 
|-
| 8
+
| 36
| Left Arm node (base)
+
| Pilot's Right Arm node (Parent)
 
|-
 
|-
| 9
+
| 37
| Left Arm node (elbow)
+
| Pilot's Right arm node (base)
 
|-
 
|-
| 10
+
| 38
| Left Arm node (wrist)
+
| Pilot's Right arm node (elbow)
 
|-
 
|-
| 11
+
| 39
| Left Hand node (Parent)
+
| Pilot's Right arm node (wrist)
 
|-
 
|-
| 12
+
| 40
| Left Hand node (Parent 2)
+
| Pilot's Right hand node (Parent)
 
|-
 
|-
| 13
+
| 41
| Right Arm (Parent)
+
| Pilot's Face node (Parent)
 
|-
 
|-
| 14
+
| 42
| Right Arm node (base)
+
| Pilot's Face node (Parent 2)
 
|-
 
|-
| 15
+
| 43
| Right Arm node (elbow)
+
| Pilot's Face node (Parent 3)
 +
|}
 +
 
 +
====Tails====
 +
{|class="mw-collapsible mw-collapsed prettytable" style="width:auto;"
 +
!ID||Description
 
|-
 
|-
| 16
+
| 0
| Right Arm node (wrist)
+
| Root node
 
|-
 
|-
| 17
+
| 1
| Right hand node (Parent)
+
| Root node 2 (Main array for the body)
 
|-
 
|-
| 18
+
| 2
| Right hand node (Parent 2)
+
| Body node (Parent)
 
|-
 
|-
| 19
+
| 3
| Face node (Parent)
+
| Chest node (Parent)
 
|-
 
|-
| 20
+
| 4
| Face node (Parent 2)
+
| Chest node (middle)
 
|-
 
|-
| 21
+
| 5
| Face node (Parent 3)
+
| Head + Arms node (Parent)
 
|-
 
|-
| 22
+
| 6
| Body node (Parent 2)
+
| Head + Arms node (Parent 2)
 
|-
 
|-
| 23
+
| 7
| Legs node (Parent)
+
| Left Arm (Parent, contains arm array)
 
|-
 
|-
| 24
+
| 8
| Legs node (Parent 2)
+
| Left Arm (Parent 2)
 
|-
 
|-
| 25
+
| 9
| Right Leg node (Parent)
+
| Left Arm node (base)
 
|-
 
|-
| 26
+
| 10
| Right Leg node (hip)
+
| Left Arm node (elbow)
 
|-
 
|-
| 27
+
| 11
| Right Leg node (thigh)
+
| Left Arm node (wrist)
 
|-
 
|-
| 28
+
| 12
| Right Leg node (knee)
+
| Left hand (Parent)
 
|-
 
|-
| 29
+
| 13
| Right Leg node (End)
+
| Left hand (Parent 2)
 
|-
 
|-
| 30
+
| 14
| Right Foot node (Parent)
+
| Right Arm (Parent, contains arm array)
 
|-
 
|-
| 31
+
| 15
| Right Foot node (calf)
+
| Right Arm (Parent 2)
 
|-
 
|-
| 32
+
| 16
| Right Foot node (heel)
+
| Right Arm node (base)
 
|-
 
|-
| 33
+
| 17
| Right Foot node (toe)
+
| Right Arm node (elbow)
 
|-
 
|-
| 34
+
| 18
| Left Leg node (Parent)
+
| Right Arm node (wrist)
 
|-
 
|-
| 35
+
| 19
| Left Leg node (hip)
+
| Right hand (Parent)
 
|-
 
|-
| 36
+
| 20
| Left Leg node (thigh)
+
| Right Hand (Parent 2)
 
|-
 
|-
| 37
+
| 21
| Left Leg node (knee)
+
| Face node (Parent)
 
|-
 
|-
| 38
+
| 22
| Left Leg node (end)
+
| Face node (Parent 2)
 
|-
 
|-
| 39
+
| 23
| Left Foot node (Parent)
+
| Face node (Parent 3)
 
|-
 
|-
| 40
+
| 24
| Left Foot node (calf)
+
| Eyes (Parent)
 
|-
 
|-
| 41
+
| 25
| Left Foot node (heel)
+
| Left Eye
 
|-
 
|-
| 42
+
| 26
| Left Foot node (toe)
+
| Right eye
|}
 
 
 
====Amy====
 
{|class="prettytable" style="width:30%;"
 
!ID||Description
 
 
|-
 
|-
| 0
+
| 27
| Root node
+
| Muzzle (Parent)
 
|-
 
|-
| 1
+
| 28
| Root node 2 (Main array for the body)
+
| Head (Parent)
 
|-
 
|-
| 2
+
| 29
| Body node (Parent)
 
|-
 
| 3
 
 
| Body node (Parent 2)
 
| Body node (Parent 2)
 
|-
 
|-
| 4
+
| 30
 
| Legs + Tail node (Parent)
 
| Legs + Tail node (Parent)
 
|-
 
|-
| 5
+
| 31
 
| Legs + Tail node (Parent 2)
 
| Legs + Tail node (Parent 2)
 
|-
 
|-
| 6
+
| 32
 
| Right Leg (Parent)
 
| Right Leg (Parent)
 
|-
 
|-
| 7
+
| 33
 
| Right Leg node (hip)
 
| Right Leg node (hip)
 
|-
 
|-
| 8
+
| 34
 
| Right Leg node (thigh)
 
| Right Leg node (thigh)
 
|-
 
|-
| 9
+
| 35
 
| Right Leg node (knee)
 
| Right Leg node (knee)
 
|-
 
|-
| 10
+
| 36
 
| Right Leg node (end)
 
| Right Leg node (end)
 
|-
 
|-
| 11
+
| 37
| Right Foot node (Parent)
+
| Right Foot node (Parent, contains shoe array)
 
|-
 
|-
| 12
+
| 38
 +
| Right Foot node (Parent 2)
 +
|-
 +
| 39
 
| Right Foot node (Heel)
 
| Right Foot node (Heel)
 
|-
 
|-
| 13
+
| 40
 
| Right Foot node (Toe)
 
| Right Foot node (Toe)
 
|-
 
|-
| 14
+
| 41
 
| Right Foot node (End)
 
| Right Foot node (End)
 
|-
 
|-
| 15
+
| 42
| Tail (Parent)
+
| Tails (Parent)
 
|-
 
|-
| 16
+
| 43
| Tail node (base)
+
| Right tail
 
|-
 
|-
| 17
+
| 44
| Tail node (2nd from base)
+
| Left tail
 
|-
 
|-
| 18
+
| 45
| Tail node (2nd from end)
 
|-
 
| 19
 
| Tail node (end)
 
|-
 
| 20
 
 
| Left Leg (Parent)
 
| Left Leg (Parent)
 
|-
 
|-
| 21
+
| 46
 
| Left Leg node (hip)
 
| Left Leg node (hip)
 
|-
 
|-
| 22
+
| 47
 
| Left Leg node (thigh)
 
| Left Leg node (thigh)
 
|-
 
|-
| 23
+
| 48
 
| Left Leg node (knee)
 
| Left Leg node (knee)
 
|-
 
|-
| 24
+
| 49
 
| Left Leg node (end)
 
| Left Leg node (end)
 
|-
 
|-
| 25
+
| 50
| Left Foot node (Parent)
+
| Left Foot node (Parent, contains shoe array)
 +
|-
 +
| 51
 +
| Left Foot node (Parent 2)
 
|-
 
|-
| 26
+
| 52
 
| Left Foot node (Heel)
 
| Left Foot node (Heel)
 
|-
 
|-
| 27
+
| 53
 
| Left Foot node (toe)
 
| Left Foot node (toe)
 
|-
 
|-
| 28
+
| 54
 
| Left Foot node (end)
 
| Left Foot node (end)
 +
|}
 +
 +
====Eggman====
 +
{|class="mw-collapsible mw-collapsed prettytable" style="width:auto;"
 +
!ID||Description
 
|-
 
|-
| 29
+
| 0
| Chest node (Parent)
+
| Root node
 
|-
 
|-
| 30
+
| 1
| Chest node (middle)
+
| Root node 2 (Main array for the body)
 
|-
 
|-
| 31
+
| 2
 +
| Body node (Parent)
 +
|-
 +
| 3
 +
| Chest node (Parent)
 +
|-
 +
| 4
 +
| Chest node (middle)
 +
|-
 +
| 5
 
| Head + Arms node (Parent)
 
| Head + Arms node (Parent)
 
|-
 
|-
| 32
+
| 6
 
| Head + Arms node (Parent 2)
 
| Head + Arms node (Parent 2)
 
|-
 
|-
| 33
+
| 7
| Face node (Parent)
+
| Left Arm (Parent)
 
|-
 
|-
| 34
+
| 8
| Face node (Parent 2)
+
| Left Arm node (base)
 
|-
 
|-
| 35
+
| 9
| Muzzle (Parent)
+
| Left Arm node (elbow)
 
|-
 
|-
| 36
+
| 10
| Eyes (Parent)
+
| Left Arm node (wrist)
 
|-
 
|-
| 37
+
| 11
| Right eye
+
| Left Hand node (Parent)
 
|-
 
|-
| 38
+
| 12
| Left eye
+
| Left Hand node (Parent 2)
 
|-
 
|-
| 39
+
| 13
| Face node (Parent 3)
+
| Right Arm (Parent)
 
|-
 
|-
| 40
+
| 14
| Head (Parent)
 
|-
 
| 41
 
| Right Arm (Parent, contains arm array)
 
|-
 
| 42
 
| Right Arm (Parent 2)
 
|-
 
| 43
 
 
| Right Arm node (base)
 
| Right Arm node (base)
 
|-
 
|-
| 44
+
| 15
 
| Right Arm node (elbow)
 
| Right Arm node (elbow)
 
|-
 
|-
| 45
+
| 16
 
| Right Arm node (wrist)
 
| Right Arm node (wrist)
 
|-
 
|-
| 46
+
| 17
| Right hand (Parent)
+
| Right hand node (Parent)
 
|-
 
|-
| 47
+
| 18
| Right hand (Parent 2)
+
| Right hand node (Parent 2)
 +
|-
 +
| 19
 +
| Face node (Parent)
 
|-
 
|-
| 48
+
| 20
| Left Arm (Parent, contains arm array)
+
| Face node (Parent 2)
 
|-
 
|-
| 49
+
| 21
| Left Arm (Parent 2)
+
| Face node (Parent 3)
 
|-
 
|-
| 50
+
| 22
| Left Arm node (base)
+
| Body node (Parent 2)
 
|-
 
|-
| 51
+
| 23
| Left Arm node (elbow)
+
| Legs node (Parent)
 
|-
 
|-
| 52
+
| 24
| Left Arm node (wrist)
+
| Legs node (Parent 2)
 
|-
 
|-
| 53
+
| 25
| Left hand (Parent)
+
| Right Leg node (Parent)
 
|-
 
|-
| 54
+
| 26
| Left Hand (Parent 2)
+
| Right Leg node (hip)
|}
 
 
 
====Super Sonic/Super Shadow====
 
{|class="prettytable" style="width:30%;"
 
!ID||Description
 
 
|-
 
|-
| 0
+
| 27
| Root node
+
| Right Leg node (thigh)
 
|-
 
|-
| 1
+
| 28
| Root node 2 (Main array for the body)
+
| Right Leg node (knee)
 
|-
 
|-
| 2
+
| 29
| Body node (Parent)
+
| Right Leg node (End)
 
|-
 
|-
| 3
+
| 30
| Body node (Parent 2)
+
| Right Foot node (Parent)
 
|-
 
|-
| 4
+
| 31
| Legs + Tail node (Parent)
+
| Right Foot node (calf)
 
|-
 
|-
| 5
+
| 32
| Legs + Tail node (Parent 2)
+
| Right Foot node (heel)
 
|-
 
|-
| 6
+
| 33
| Right Leg (Parent)
+
| Right Foot node (toe)
 
|-
 
|-
| 7
+
| 34
| Right Leg node (hip)
+
| Left Leg node (Parent)
 
|-
 
|-
| 8
+
| 35
| Right Leg node (thigh)
+
| Left Leg node (hip)
 
|-
 
|-
| 9
+
| 36
| Right Leg node (knee)
+
| Left Leg node (thigh)
 
|-
 
|-
| 10
+
| 37
| Right Leg node (end)
+
| Left Leg node (knee)
 
|-
 
|-
| 11
+
| 38
| Right Foot node (Parent, contains shoe array)
+
| Left Leg node (end)
 
|-
 
|-
| 12
+
| 39
| Right Foot node (Parent 2)
+
| Left Foot node (Parent)
 
|-
 
|-
| 13
+
| 40
| Right Foot node (Heel)
+
| Left Foot node (calf)
 
|-
 
|-
| 14
+
| 41
| Right Foot node (Toe)
+
| Left Foot node (heel)
 
|-
 
|-
| 15
+
| 42
| Right Foot node (End)
+
| Left Foot node (toe)
 +
|}
 +
 
 +
====Amy====
 +
{|class="mw-collapsible mw-collapsed prettytable" style="width:auto;"
 +
!ID||Description
 
|-
 
|-
| 16
+
| 0
| Left Leg (Parent)
+
| Root node
 
|-
 
|-
| 17
+
| 1
| Left Leg node (hip)
+
| Root node 2 (Main array for the body)
 
|-
 
|-
| 18
+
| 2
| Left Leg node (thigh)
+
| Body node (Parent)
 
|-
 
|-
| 19
+
| 3
| Left Leg node (knee)
+
| Body node (Parent 2)
 
|-
 
|-
| 20
+
| 4
| Left Leg node (end)
+
| Legs + Tail node (Parent)
 
|-
 
|-
| 21
+
| 5
| Left Foot node (Parent, contains shoe array)
+
| Legs + Tail node (Parent 2)
 
|-
 
|-
| 22
+
| 6
| Left Foot node (Parent 2)
+
| Right Leg (Parent)
 
|-
 
|-
| 23
+
| 7
| Left Foot node (Heel)
+
| Right Leg node (hip)
 
|-
 
|-
| 24
+
| 8
| Left Foot node (toe)
+
| Right Leg node (thigh)
 
|-
 
|-
| 25
+
| 9
| Left Foot node (end)
+
| Right Leg node (knee)
 
|-
 
|-
| 26
+
| 10
| Tail (Parent)
+
| Right Leg node (end)
 
|-
 
|-
| 27
+
| 11
| Tail node (base)
+
| Right Foot node (Parent)
 
|-
 
|-
| 28
+
| 12
 +
| Right Foot node (Heel)
 +
|-
 +
| 13
 +
| Right Foot node (Toe)
 +
|-
 +
| 14
 +
| Right Foot node (End)
 +
|-
 +
| 15
 +
| Tail (Parent)
 +
|-
 +
| 16
 +
| Tail node (base)
 +
|-
 +
| 17
 
| Tail node (2nd from base)
 
| Tail node (2nd from base)
 
|-
 
|-
| 29
+
| 18
 
| Tail node (2nd from end)
 
| Tail node (2nd from end)
 
|-
 
|-
| 30
+
| 19
 
| Tail node (end)
 
| Tail node (end)
 
|-
 
|-
| 31
+
| 20
| Chest node (Parent)
+
| Left Leg (Parent)
 
|-
 
|-
| 32
+
| 21
| Chest node (middle)
+
| Left Leg node (hip)
 
|-
 
|-
| 33
+
| 22
| Head + Arms node (Parent)
+
| Left Leg node (thigh)
 
|-
 
|-
| 34
+
| 23
| Head + Arms node (Parent 2)
+
| Left Leg node (knee)
 
|-
 
|-
| 35
+
| 24
| Left Arm (Parent, contains arm array)
+
| Left Leg node (end)
 
|-
 
|-
| 36
+
| 25
| Left Arm (Parent 2)
+
| Left Foot node (Parent)
 
|-
 
|-
| 37
+
| 26
| Left Arm node (base)
+
| Left Foot node (Heel)
 
|-
 
|-
| 38
+
| 27
| Left Arm node (elbow)
+
| Left Foot node (toe)
 
|-
 
|-
| 39
+
| 28
| Left Arm node (wrist)
+
| Left Foot node (end)
 
|-
 
|-
| 40
+
| 29
| Left hand (Parent)
+
| Chest node (Parent)
 
|-
 
|-
| 41
+
| 30
| Left hand (Parent 2)
+
| Chest node (middle)
 +
|-
 +
| 31
 +
| Head + Arms node (Parent)
 +
|-
 +
| 32
 +
| Head + Arms node (Parent 2)
 
|-
 
|-
| 42
+
| 33
 
| Face node (Parent)
 
| Face node (Parent)
 
|-
 
|-
| 43
+
| 34
 
| Face node (Parent 2)
 
| Face node (Parent 2)
 
|-
 
|-
| 44
+
| 35
| Face node (Parent 3)
 
|-
 
| 45
 
 
| Muzzle (Parent)
 
| Muzzle (Parent)
 
|-
 
|-
| 46
+
| 36
| Head (Parent)
+
| Eyes (Parent)
 
|-
 
|-
| 47
+
| 37
| Right eye (Parent)
 
|-
 
| 48
 
 
| Right eye
 
| Right eye
 
|-
 
|-
| 49
+
| 38
| Left eye (Parent)
 
|-
 
| 50
 
 
| Left eye
 
| Left eye
 
|-
 
|-
| 51
+
| 39
 +
| Face node (Parent 3)
 +
|-
 +
| 40
 +
| Head (Parent)
 +
|-
 +
| 41
 
| Right Arm (Parent, contains arm array)
 
| Right Arm (Parent, contains arm array)
 
|-
 
|-
| 52
+
| 42
 
| Right Arm (Parent 2)
 
| Right Arm (Parent 2)
 
|-
 
|-
| 53
+
| 43
 
| Right Arm node (base)
 
| Right Arm node (base)
 
|-
 
|-
| 54
+
| 44
 
| Right Arm node (elbow)
 
| Right Arm node (elbow)
 
|-
 
|-
| 55
+
| 45
 
| Right Arm node (wrist)
 
| Right Arm node (wrist)
 
|-
 
|-
| 56
+
| 46
 
| Right hand (Parent)
 
| Right hand (Parent)
 
|-
 
|-
| 57
+
| 47
| Right Hand (Parent 2)
+
| Right hand (Parent 2)
|}
 
 
 
===EXXXX_0 Information===
 
====Screen Effects====
 
Information starting at 0x9800 denotes any screen effects that occur within the scene, such as fades or color changes. Each chunk of this information is 64 bytes long, with the last 52 bytes acting as a buffer.
 
{| class="prettytable" style="width:50%;"
 
!Offset!!Type!!Description
 
 
|-
 
|-
| 0
+
| 48
| UINT32
+
| Left Arm (Parent, contains arm array)
| Frame in which the screen information takes effect
 
 
|-
 
|-
| 4
+
| 49
| UINT32
+
| Left Arm (Parent 2)
| Fade control. 1 is a fade, while 2 is a hard cut
+
|-
 +
| 50
 +
| Left Arm node (base)
 +
|-
 +
| 51
 +
| Left Arm node (elbow)
 +
|-
 +
| 52
 +
| Left Arm node (wrist)
 +
|-
 +
| 53
 +
| Left hand (Parent)
 
|-
 
|-
| 8
+
| 54
| Char Array [4]
+
| Left Hand (Parent 2)
| ASCII color (ARGB)
 
 
|}
 
|}
  
====Stage Lighting Information====
+
====Super Sonic/Super Shadow====
Information starting at 0xA800 pertains to any scene lighting present in the cutscene. Each piece of data is 56 bytes long, with the last 32 bytes acting as a buffer. These parameters are seemingly unused in SA2B.
+
{|class="mw-collapsible mw-collapsed prettytable" style="width:auto;"
{| class="prettytable" style="width:50%;"
+
!ID||Description
!Offset!!Type!!Description
 
 
|-
 
|-
 
| 0
 
| 0
| UINT32
+
| Root node
| Frame in which the lighting information takes effect
 
 
|-
 
|-
| 4
+
| 1
| UINT32
+
| Root node 2 (Main array for the body)
| Fade control. 1 is a fade, while 2 is a hard cut
 
 
|-
 
|-
| 8
+
| 2
| Float
+
| Body node (Parent)
| Red
+
|-
 +
| 3
 +
| Body node (Parent 2)
 
|-
 
|-
| C
+
| 4
| Float
+
| Legs + Tail node (Parent)
| Green
 
 
|-
 
|-
| 10
+
| 5
| Float
+
| Legs + Tail node (Parent 2)
| Blue
 
 
|-
 
|-
| 14
+
| 6
| Float
+
| Right Leg (Parent)
| Light Intensity
 
|}
 
 
 
====Object Lighting Information====
 
Starting at 0x26800 are 68-byte chunks that dictate the object lighting information for the corresponding cutscene. The last 20 bytes can be considered a buffer for now.
 
{| class="prettytable" style="width:50%;"
 
!Offset!!Type!!Description
 
 
|-
 
|-
| 0
+
| 7
| UINT32
+
| Right Leg node (hip)
| Frame in which the lighting information takes effect
 
|-
 
| 4
 
| UINT32
 
| Fade control. 1 is a hard cut, while 2 is a fade-in from the previous set of instructions
 
 
|-
 
|-
 
| 8
 
| 8
| Float
+
| Right Leg node (thigh)
| Light Direction Vector (X-Component)
 
 
|-
 
|-
| C
+
| 9
| Float
+
| Right Leg node (knee)
| Light Direction Vector (Y-Component)
 
 
|-
 
|-
 
| 10
 
| 10
| Float
+
| Right Leg node (end)
| Light Direction Vector (Z-Component)
 
 
|-
 
|-
| 14
+
| 11
| Float
+
| Right Foot node (Parent, contains shoe array)
| Red
 
 
|-
 
|-
| 18
+
| 12
| Float
+
| Right Foot node (Parent 2)
| Green
 
 
|-
 
|-
| 1C
+
| 13
| Float
+
| Right Foot node (Heel)
| Blue
 
 
|-
 
|-
| 20
+
| 14
| Float
+
| Right Foot node (Toe)
| Light intensity
 
 
|-
 
|-
| 24
+
| 15
| Float
+
| Right Foot node (End)
| Ambient R
 
 
|-
 
|-
| 28
+
| 16
| Float
+
| Left Leg (Parent)
| Ambient G
 
 
|-
 
|-
| 2C
+
| 17
| Float
+
| Left Leg node (hip)
| Ambient B
 
|}
 
 
 
==In-Level Scenes==
 
Scenes that are labeled as MEXXXX.PRS in the event files are cutscenes that occur within a game state, such as before certain boss fights like Big Foot and Flying Dog. The contents of these files are not as robust as those of the main cutscenes, often only containing animation and shape motion data for the designated characters. As these scenes rely on the player models, specific parts of their body are omitted and replaced with cutscene-specific variants for the duration of the scene, with the exception of Mech Eggman as he only requires animation data. The contents of these files can be broken down as follows:
 
 
 
{| class="prettytable" style="width:70%;"
 
!Offset!!Type!!Description
 
 
|-
 
|-
| 0
+
| 18
| UINT32
+
| Left Leg node (thigh)
| An indicator of the characters in the scene. Can be 01 (Sonic), 02 (Shadow), 03 (Sonic and Shadow), 10 (Knuckles), 20 (Rouge), 30 (Knuckles and Rouge), 80 (Mech Eggman)
 
 
|-
 
|-
| 4
+
| 19
| Pointer
+
| Left Leg node (knee)
| Camera information
 
 
|-
 
|-
| 8
+
| 20
| Pointer
+
| Left Leg node (end)
| Sonic's pointer array (if applicable)
 
 
|-
 
|-
| C
+
| 21
| Pointer
+
| Left Foot node (Parent, contains shoe array)
| Shadow's pointer array (if applicable)
 
 
|-
 
|-
| 18
+
| 22
| Pointer
+
| Left Foot node (Parent 2)
| Knuckles' pointer array (if applicable)
 
 
|-
 
|-
| 1C
+
| 23
| Pointer
+
| Left Foot node (Heel)
| Rouge's pointer array (if applicable)
 
 
|-
 
|-
 
| 24
 
| 24
| Pointer
+
| Left Foot node (toe)
| Mech Eggman's pointer array (if applicable)
+
|-
 +
| 25
 +
| Left Foot node (end)
 +
|-
 +
| 26
 +
| Tail (Parent)
 +
|-
 +
| 27
 +
| Tail node (base)
 +
|-
 +
| 28
 +
| Tail node (2nd from base)
 +
|-
 +
| 29
 +
| Tail node (2nd from end)
 +
|-
 +
| 30
 +
| Tail node (end)
 +
|-
 +
| 31
 +
| Chest node (Parent)
 +
|-
 +
| 32
 +
| Chest node (middle)
 +
|-
 +
| 33
 +
| Head + Arms node (Parent)
 +
|-
 +
| 34
 +
| Head + Arms node (Parent 2)
 +
|-
 +
| 35
 +
| Left Arm (Parent, contains arm array)
 +
|-
 +
| 36
 +
| Left Arm (Parent 2)
 +
|-
 +
| 37
 +
| Left Arm node (base)
 +
|-
 +
| 38
 +
| Left Arm node (elbow)
 +
|-
 +
| 39
 +
| Left Arm node (wrist)
 +
|-
 +
| 40
 +
| Left hand (Parent)
 +
|-
 +
| 41
 +
| Left hand (Parent 2)
 +
|-
 +
| 42
 +
| Face node (Parent)
 +
|-
 +
| 43
 +
| Face node (Parent 2)
 +
|-
 +
| 44
 +
| Face node (Parent 3)
 +
|-
 +
| 45
 +
| Muzzle (Parent)
 +
|-
 +
| 46
 +
| Head (Parent)
 +
|-
 +
| 47
 +
| Right eye (Parent)
 +
|-
 +
| 48
 +
| Right eye
 +
|-
 +
| 49
 +
| Left eye (Parent)
 +
|-
 +
| 50
 +
| Left eye
 +
|-
 +
| 51
 +
| Right Arm (Parent, contains arm array)
 +
|-
 +
| 52
 +
| Right Arm (Parent 2)
 +
|-
 +
| 53
 +
| Right Arm node (base)
 +
|-
 +
| 54
 +
| Right Arm node (elbow)
 +
|-
 +
| 55
 +
| Right Arm node (wrist)
 +
|-
 +
| 56
 +
| Right hand (Parent)
 +
|-
 +
| 57
 +
| Right Hand (Parent 2)
 
|}
 
|}
  
The order for each character's pointer array always begins with the player model's animations, followed by the model -> animation -> shape motion data sets for each cutscene model. The head's data goes first, followed by the mouth, then the left hand, and finally the right hand.
+
===EXXXX_0 Information===
 +
In earlier version of Sonic Adventure 2, the event files that had an additional number as a suffix contained all the additional data for the cutscene. The final builds adjusted this system so that the various languages would utilize files that only contained their subtitle and audio timings. EXXXX_0 was originally meant to contain data related to the Japanese language setting, but the final builds repurposed them to contain and load the external graphical effects used in each cutscene.
 +
 
 +
====Screen Effects====
 +
Information starting at 0x9800 denotes any screen effects that occur within the scene, such as fades or color changes. Each chunk of this information is 64 bytes long, with the last 32 bytes acting as a buffer. There are a total of 64 possible entries that can be implemented for this section.
 +
{| class="prettytable" style="width:auto;"
 +
!Offset!!Type!!Description
 +
|-
 +
| 0
 +
| UINT32
 +
| Frame in which the screen information takes effect
 +
|-
 +
| 4
 +
| Byte
 +
| Effect type
 +
{| class="prettytable" style="width:auto;"
 +
!ID!!Description
 +
|-
 +
| 1
 +
| Screen fade-in
 +
|-
 +
| 2
 +
| Screen cut-in
 +
|-
 +
| 3
 +
| Texture fade-in
 +
|-
 +
| 4
 +
| Texture cut-in
 +
|-
 +
| 5
 +
| Background fade-in
 +
|-
 +
| 6
 +
| Background cut-in
 +
|}
 +
|-
 +
| 5
 +
| Char Array [3]
 +
| Null
 +
|-
 +
| 8
 +
| Char Array [4]
 +
| ASCII color (ARGB)
 +
|-
 +
| C
 +
| Byte
 +
| Fadeout check
 +
|-
 +
| D
 +
| Byte
 +
| Null
 +
|-
 +
| E
 +
| INT16
 +
| Screen texture ID*
 +
|-
 +
| 10
 +
| UINT32
 +
| Visible time*
 +
|-
 +
| 14
 +
| INT16
 +
| Position X*
 +
|-
 +
| 16
 +
| INT16
 +
| Position Y*
 +
|-
 +
| 18
 +
| Float
 +
| Width*
 +
|-
 +
| 1C
 +
| Float
 +
| Height*
 +
|}
 +
 
 +
<nowiki>*</nowiki>These values are used in combination with the texture screen effect IDs
 +
 
 +
====Simple Particle Effect Information====
 +
Information starting at 0xA800 pertains to simple particle effects present in the cutscene, such as flashing lights or the sun. Each piece of data is 56 bytes long, with the last 32 bytes acting as a buffer. There are a total of 2048 possible entries that can be implemented for this section.
 +
{| class="prettytable" style="width:auto;"
 +
!Offset!!Type!!Description
 +
|-
 +
| 0
 +
| UINT32
 +
| Frame in which the particle information takes effect
 +
|-
 +
| 4
 +
| Byte
 +
| Particle ID
 +
{| class="prettytable" style="width:auto;"
 +
!ID!!Description
 +
|-
 +
| 0
 +
| Null
 +
|-
 +
| 1
 +
| Dust puff
 +
|-
 +
| 2
 +
| Sparkle
 +
|-
 +
| 3
 +
| Sparkle
 +
|-
 +
| 4
 +
| Dirt patches
 +
|-
 +
| 5
 +
| Fire blast
 +
|-
 +
| 6
 +
| Steam
 +
|-
 +
| 7
 +
| Snow blast
 +
|-
 +
| 8
 +
| Sun
 +
|-
 +
| 9
 +
| Sun cancel
 +
|-
 +
| A
 +
| Water splash
 +
|-
 +
| B
 +
| Smoke cloud
 +
|-
 +
| C
 +
| Steam puff
 +
|-
 +
| D
 +
| Rocket steam puff
 +
|-
 +
| E
 +
| Flame puff
 +
|-
 +
| F
 +
| Null
 +
|-
 +
| 10
 +
| Game crash
 +
|-
 +
| 11
 +
| Pulsing texture
 +
|-
 +
| 12
 +
| Pulsing texture cancel
 +
|}
 +
|-
 +
| 5
 +
| Byte
 +
| Particle Motion ID
 +
|-
 +
| 6
 +
| INT16
 +
| Null
 +
|-
 +
| 8
 +
| Float
 +
| Texture ID*
 +
|-
 +
| C
 +
| Float
 +
| Pulse Control*
 +
|-
 +
| 10
 +
| Float
 +
| Unknown*
 +
|-
 +
| 14
 +
| Float
 +
| Particle Size*
 +
|}
 +
 
 +
<nowiki>*</nowiki>Custom particles treat these values as depicted in the list, while normal particles treat these as displacement values
 +
 
 +
====Object Lighting Information====
 +
Starting at 0x26800 are 68-byte chunks that dictate the object lighting information for the corresponding cutscene. The last 20 bytes can be considered a buffer for now. Lighting information is split into four sections of 256 entries each and all four sets are combined at runtime, depending on the entity flag settings. The Dreamcast version only applies the first section's information by default unless the multi-light entity flags are set, while SA2B applies all four lighting sets at all times. "Scene 0" entities ignore all lighting instructions by default unless the multi-light entity flags are set. There are a total of 1024 possible entries that can be implemented for this section.
 +
{| class="prettytable" style="width:auto;"
 +
!Offset!!Type!!Description
 +
|-
 +
| 0
 +
| UINT32
 +
| Frame in which the lighting information takes effect
 +
|-
 +
| 4
 +
| UINT32
 +
| Fade control. 1 is a hard cut, while 2 is a fade-in from the previous set of instructions
 +
|-
 +
| 8
 +
| Float
 +
| Light Direction Vector (X-Component)
 +
|-
 +
| C
 +
| Float
 +
| Light Direction Vector (Y-Component)
 +
|-
 +
| 10
 +
| Float
 +
| Light Direction Vector (Z-Component)
 +
|-
 +
| 14
 +
| Float
 +
| Red
 +
|-
 +
| 18
 +
| Float
 +
| Green
 +
|-
 +
| 1C
 +
| Float
 +
| Blue
 +
|-
 +
| 20
 +
| Float
 +
| Light intensity
 +
|-
 +
| 24
 +
| Float
 +
| Ambient R
 +
|-
 +
| 28
 +
| Float
 +
| Ambient G
 +
|-
 +
| 2C
 +
| Float
 +
| Ambient B
 +
|}
 +
 
 +
====Blur Effect Information====
 +
Information starting at 0x37800 denotes the controls for motion blur effects used by models in the blur array. Each chunk is 64 bytes in size. There are 64 total blur effect entries per cutscene.
 +
{| class="prettytable" style="width:auto;"
 +
!Offset!!Type!!Description!!Notes
 +
|-
 +
| 0
 +
| UINT32
 +
| Frame in which the blur information takes effect
 +
|
 +
|-
 +
| 4
 +
| UINT32
 +
| Effect duration
 +
|
 +
|-
 +
| 8
 +
| Char Array [6]
 +
| Blur Model ID
 +
| A maximum of six model IDs can be entered here. IDs are determined by their placement in the blur models array
 +
|-
 +
| E
 +
| UINT16
 +
| Null
 +
|
 +
|-
 +
| 10
 +
| UINT32
 +
| Blur Entity Count
 +
|
 +
|}
 +
 
 +
====Animated Particle Effect Information====
 +
Information starting at 0x38800 pertains to specific animated particle effects that are loaded in a cutscene, such as smoke clouds and moving sparkles. Each data chunk is 64 bytes in size. There are a total of 64 possible entries that can be implemented for this section.
 +
{| class="prettytable" style="width:auto;"
 +
!Offset!!Type!!Description
 +
|-
 +
| 0
 +
| Float(3)
 +
| Position
 +
|-
 +
| C
 +
| Float(3)
 +
| Rotation and Speed controls
 +
|-
 +
| 18
 +
| UINT16
 +
| Unknown
 +
|-
 +
| 1A
 +
| UINT16
 +
| Unknown
 +
|-
 +
| 1C
 +
| UINT16
 +
| Unknown
 +
|-
 +
| 1E
 +
| UINT16
 +
| Unknown
 +
|-
 +
| 20
 +
| UINT32
 +
| Frame in which the particle information begins to play
 +
|-
 +
| 24
 +
| Float(3)
 +
| Particle spread controls
 +
|-
 +
| 30
 +
| UINT32
 +
| Number of particle instances
 +
|-
 +
| 34
 +
| UINT32
 +
| Unknown
 +
|-
 +
| 38
 +
| UINT32
 +
| Particle ID
 +
{| class="prettytable" style="width:auto;"
 +
!ID!!Description
 +
|-
 +
| 0
 +
| Null (Game crash)
 +
|-
 +
| 1
 +
| Dust puff
 +
|-
 +
| 2
 +
| Sparkle
 +
|-
 +
| 3
 +
| Sparkle
 +
|-
 +
| 4
 +
| Dirt patches
 +
|-
 +
| 5
 +
| Fire blast
 +
|-
 +
| 6
 +
| Steam
 +
|-
 +
| 7
 +
| Snow blast
 +
|-
 +
| 8
 +
| Game crash
 +
|-
 +
| 9
 +
| Game crash
 +
|-
 +
| A
 +
| Water splash
 +
|-
 +
| B
 +
| Smoke cloud
 +
|-
 +
| C
 +
| Steam puff
 +
|-
 +
| D
 +
| Rocket steam puff
 +
|-
 +
| E
 +
| Flame puff
 +
|-
 +
| F
 +
| Null
 +
|-
 +
| 10
 +
| Game crash
 +
|}
 +
|-
 +
| 3C
 +
| UINT32
 +
| Unknown
 +
|}
 +
 
 +
====Video Overlay Information====
 +
Information starting at 0x39800 determines whether or not an FMV overlay is meant to be loaded in a scene. Depending on the settings, the video can either be superimposed over the screen, or a mesh that's in the cutscene. The chunks are 64 bytes long, with the last 16 acting as a buffer. There are a total of 64 possible entries that can be implemented for this section. <br />
 +
In the Dreamcast and GameCube versions, .m1v files are loaded for these cases. The 2012 re-release checks for and loads the .sfd equivalents of the video overlays.
 +
{| class="prettytable" style="width:auto;"
 +
!Offset!!Type!!Description
 +
|-
 +
| 0
 +
| UINT32
 +
| Frame in which the video begins to play
 +
|-
 +
| 4
 +
| INT16
 +
| X Position. Positive values push the video overlay to the right.
 +
|-
 +
| 6
 +
| INT16
 +
| Y Position. Positive values push the video overlay down.
 +
|-
 +
| 8
 +
| Float
 +
| Depth value. A higher value means the video overlay will be pushed further away from the screen
 +
|-
 +
| C
 +
| Byte
 +
| Overlay type
 +
{| class="prettytable" style="width:auto;"
 +
!ID!!Description
 +
|-
 +
| 0
 +
| Null
 +
|-
 +
| 1
 +
| Screen overlay
 +
|-
 +
| 2
 +
| Mesh overlay
 +
|-
 +
| 3
 +
| Screen overlay
 +
|-
 +
| 4
 +
| Screen overlay
 +
|-
 +
| 5
 +
| Pause video
 +
|-
 +
| 6
 +
| Resume video
 +
|}
 +
|-
 +
| D
 +
| Byte
 +
| Overlay texture ID*. Any meshes that use the texture ID denoted here will have the specified texture replaced with the video.
 +
|-
 +
| E
 +
| UINT16
 +
| Null
 +
|-
 +
| 10
 +
| Text
 +
| Name of the video file that's to be loaded
 +
|}
 +
 
 +
<nowiki>*</nowiki>This is used in combination with the "Mesh overlay" type.
 +
 
 +
===EXXXX_1-J Information===
 +
{| class="prettytable" style="width:auto;"
 +
!Suffix!!Language
 +
|-
 +
| 1
 +
| English
 +
|-
 +
| 2
 +
| French
 +
|-
 +
| 3
 +
| Spanish
 +
|-
 +
| 4
 +
| German
 +
|-
 +
| 5
 +
| Italian (2012 port only)
 +
|-
 +
| J
 +
| Japanese
 +
|}
 +
 
 +
The start of the file contains subtitle data. Each data set is 8 bytes long and is tied to the subtitle order found in the appropriate evmes?? file.<br />
 +
 
 +
There are a maximum of 256 subtitle entries per cutscene.
 +
 
 +
{| class="prettytable" style="width:auto;"
 +
!Offset!!Type!!Description
 +
|-
 +
| 0
 +
| INT32
 +
| Frame in which the subtitle is set to appear. A value of -1 in this slot indicates that the subtitle will be used as the opening text crawl for the cutscene.
 +
|-
 +
| 4
 +
| UINT32
 +
| Number of frames in which the subtitle is to remain onscreen.
 +
|}
 +
 
 +
Information starting at 0x800 and continuing until the end of the file contains audio timings for voices and BGM for each language. Each chunk is 72 bytes in size. Voice clip playback is determined by the cutscene ID, so a value used by E0000 will not be the same as the value used by E0102, for example. <br />
 +
 
 +
There are a maximum of 512 audio entries per cutscene.
 +
 
 +
{| class="prettytable" style="width:auto;"
 +
!Offset!!Type!!Description
 +
|-
 +
| 0
 +
| UINT32
 +
| Frame in which the audio clip begins to play
 +
|-
 +
| 4
 +
| Byte
 +
| SFX initializer. FF is considered a null value and is ignored
 +
|-
 +
| 5
 +
| Byte
 +
| Credits initializer and scroll speed control. This is hardcoded to only work with E0210. FF is a null value
 +
|-
 +
| 6
 +
| UINT16
 +
| Number of the voice clip that's to be loaded if applicable. This number is added to a default value set by each cutscene and the result is compared against a master array to load the desired voice clip. FF FF denotes a null entry
 +
|-
 +
| 8
 +
| Text
 +
| Name of audio track that's to be loaded, if applicable. Placing a hex value of 30 in this spot will stop the current audio track from playing
 +
|-
 +
| 18
 +
| Text
 +
| Name of jingle that's to be loaded, if applicable. No cutscenes appear to use this feature
 +
|}
 +
 
 +
==Mini-Event Scenes==
 +
Scenes that are labeled as MEXXXX.PRS in the event files are cutscenes that occur within a game state, such as before certain boss fights like Big Foot and Flying Dog. The contents of these files are not as robust as those of the main cutscenes, often only containing animation and shape motion data for the designated characters. As these scenes rely on the player models, specific parts of their body are omitted and replaced with cutscene-specific variants for the duration of the scene, with the exception of Mech Eggman as he only requires animation data. The contents of these files can be broken down as follows:
 +
 
 +
{| class="prettytable" style="width:auto;"
 +
!Offset!!Type!!Description
 +
|-
 +
| 0
 +
| UINT32
 +
| Character flags
 +
|-
 +
| 4
 +
| Pointer
 +
| Camera information
 +
|-
 +
| 8
 +
| Pointer
 +
| Sonic's pointer array (if applicable)
 +
|-
 +
| C
 +
| Pointer
 +
| Shadow's pointer array (if applicable)
 +
|-
 +
| 10
 +
| Pointer
 +
| Mechless Tails' pointer array (unused)
 +
|-
 +
| 14
 +
| Pointer
 +
| Mechless Eggman's pointer array (unused)
 +
|-
 +
| 18
 +
| Pointer
 +
| Knuckles' pointer array (if applicable)
 +
|-
 +
| 1C
 +
| Pointer
 +
| Rouge's pointer array (if applicable)
 +
|-
 +
| 20
 +
| Pointer
 +
| Mech Tails' pointer array (unused)
 +
|-
 +
| 24
 +
| Pointer
 +
| Mech Eggman's pointer array (if applicable)
 +
|}
 +
 
 +
For Sonic, Shadow, and Knuckles' player models, any models attached to nodes 42 (Left Hand), 47 (Mouth), 49 (Head), and 61 (Right Hand) will be omitted for the duration of the scene. Rouge only omits models attached to nodes 47 and 49.
 +
 
 +
The order for each character's pointer array always begins with the player model's animations, followed by the model -> animation -> shape motion data sets for each cutscene model. The head's data goes first, followed by the mouth, then the left hand, and finally the right hand.<br />
 +
 
 +
The DC base pointer for these scenes is 0xCB00000<br />
 +
The base pointer for these scenes in SA2B is 0x816DFE60
 +
 
 +
===MEXXXX_0-5 Information===
 +
{| class="prettytable" style="width:auto;"
 +
!Suffix!!Language
 +
|-
 +
| 0
 +
| Japanese
 +
|-
 +
| 1
 +
| English
 +
|-
 +
| 2
 +
| French
 +
|-
 +
| 3
 +
| Spanish
 +
|-
 +
| 4
 +
| German
 +
|-
 +
| 5
 +
| Italian (2012 port only)
 +
|}
 +
 
 +
Much like the _1 to _J files for the main event cutscenes, MEXXXX_0 to _5 dictates audio and subtitle information for the mini-event scenes. These files are uncompressed.
 +
 
 +
The start of the file contains subtitle timings and their duration. Each data set is 8 bytes in size and is tied to the subtitle order found in the appropriate evmes?? file. <br />
 +
 
 +
There are a maximum of 32 subtitle entries per cutscene.
 +
{| class="prettytable" style="width:auto;"
 +
!Offset!!Type!!Description
 +
|-
 +
| 0
 +
| UINT32
 +
| Frame in which the subtitle is set to appear
 +
|-
 +
| 4
 +
| UINT32
 +
| Number of frames in which the subtitle remains onscreen after it has been loaded
 +
|}
 +
 
 +
Information starting at 0x100 contains timings for each language. Each chunk is 76 bytes in size. Note that voice clip entries are dependent on the cutscene's internal ID, so the "first" entry of ME0001 isn't the same as the one found in ME0007, for example. <br />
 +
 
 +
There are a maximum of 64 effect timings per cutscene.
 +
{| class="prettytable" style="width:auto;"
 +
!Offset!!Type!!Description
 +
|-
 +
| 0
 +
| UINT32
 +
| Frame in which the instruction is set to begin
 +
|-
 +
| 4
 +
| Byte
 +
| Screen control. 1 is a normal fade-in, while 2 maintains the screen fade tint until the mini-event is finished.
 +
|-
 +
| 5
 +
| Byte
 +
| Sound effect ID that is to be loaded, if applicable. FF is considered a null value
 +
|-
 +
| 6
 +
| Byte
 +
| Unknown
 +
|-
 +
| 7
 +
| Byte
 +
| Null (00)
 +
|-
 +
| 8
 +
| UINT16
 +
| Number of the voice clip that's to be loaded if applicable. This number is added to a default value set by each cutscene and the result is compared against a master array to load the desired voice clip. Valid entries are written as 00 ??, while FF FF is a null value.
 +
|-
 +
| A
 +
| Byte
 +
| BGM control. Setting this value to 2D (45) will cause the level's music to play at the frame specified.
 +
|-
 +
| 1A
 +
| Byte
 +
| Jingle control. No cutscenes use this feature by default
 +
|-
 +
| 2C
 +
| Float
 +
| Rumble power. This determines the strength and duration of the rumble feature
 +
|}
 +
 
 +
==References==
 +
<references />
 +
 
 
{{SCHGuides}}
 
{{SCHGuides}}

Latest revision as of 21:37, 16 July 2023

SCHG: Sonic Adventure 2
Dreamcast
GameCube
PC

Cutscenes

Depending on the version of SA2, the data for the event cutscenes can differ. EXXXX.PRS is the main file, while the _0 to _J files contain miscellaneous resources, such as audio timings and lighting/screen fade information. In the Dreamcast version, the models and animation data for a scene are all contained within the main file, while in SA2B, the animation data was split off into an uncompressed file labeled exxxxmotion.bin. With two exceptions in the DC version - those being E0203 and E0210 - the event files can only be interpreted by the game if the main file is compressed.

Files that are labeled as evmes??.prs contain the subtitle text and their assignments per cutscene. The first ? wildcard starts with either H, D, or L, denoting the text used for the Hero Story, Dark Story, and Last Episode respectively. The second ? wildcard contains a number from 0 to 5, which represents the language. As an example, evmesH1 contains all the English subtitle information for the Hero Story cutscenes. The contents of these files can be edited using SA2CutsceneTextEditor.

Main File Information

The base pointer for the DC version is 0xC600000
The base pointer for SA2B is 0x8125FE60

Offset Type Description
0 Pointer Cutscene asset arrays
4 Pointer Texture list
8 UINT32 Scene count
C Pointer Texture sizes
10 Pointer ARK character reflection control
14 Pointer Blur model array
18 Pointer Mech character parts (Usually contains pointers to their upgrades and weapons)
1C Pointer Tails' tails
20 Pointer Upgrade list
24 Pointer Texture animation data
28 UINT32 Drop shadow control. A value of 01 allows the character drop shadows to be rendered over updated geometry. (SA2B only)

Cutscene Entity Data

This section of the main file is the source for all things related to camera controls, models, animations, and Big the Cat cameos for the cutscene.

Offset Type Description Notes
0 Pointer Scene Entity Array
4 UINT32 Scene Entity Count
8 Pointer Scene Camera Array
C UINT32 Scene Camera Count
10 Pointer Particle Motion Array The animations in this array are used for positioning certain particle effects if the scene uses them
14 UINT32 Particle Motion Count
18 Pointer Big Cameo Array
1C UINT32 Scene Frame Count "Scene 0" will contain the total number of frames for the entire cutscene, as its section stores the cutscene geometry and must remain visible at all times.
Scene Entity Arrays

This section of the cutscene entity data array controls which models and animations are to be loaded as a singular entity in a scene. The contents of this section are slightly different between game versions.

Dreamcast
Offset Type Description
0 Pointer Model
4 Pointer Animation
8 Pointer Shape Motion
C UINT32 Unknown
10 Float(3) Position
1C UINT32 Flags
ID Description Notes
0x1 Entity has environment maps
0x2 Ignore backface culling
0x4 Unknown All entities set this flag
0x8 Enable Multi-Light System 1 Primarily combines lighting information from tables 1 and 2
0x10 Enable Multi-Light System 2 Primarily combines lighting information from tables 1, 3, and 4
0x20 Enable Multi-Light System 3 Primarily combines lighting information from tables 1 and 4
0x40 Entity has modifier volumes
0x80 Entity can be reflected
0x100 Entity can have a blur effect
0x200 Unknown
SA2B
Offset Type Description Notes
0 Pointer Model
4 Pointer Animation
8 Pointer Shape Motion
C Pointer GC Model This section is primarily used for "Scene 0" whenever the scene geometry was updated.
10 Pointer Shadow Model These models are usually texture-less versions of the character models and are used in cutscenes with GC models
14 UINT32 Unknown
18 Float(3) Position
24 UINT32 Flags
ID Description Notes
0x1 Entity has environment maps
0x2 Ignore Shape Motions
0x4 Unknown All entities set this flag
0x8 Ignore Animations
0x10 Unknown
0x20 Unknown
0x40 Entity has modifier volumes This flag causes the models associated with the entity to not appear.
0x80 Entity can be reflected
0x100 Entity can have a blur effect
0x200 Unknown
28 UINT32 Display Layer This is a value between 0 and 4, which is tied to the game's rendering system. The higher values are sometimes used with models that use transparency to improve visibility
Big the Cat Cameo Data

This section of the cutscene entity data array controls Big's cameos in each of the scenes.

Offset Type Description
0 Pointer Model
4 Pointer Animation array
8 UINT32 Animation count
C UINT32 Unknown

Upgrade list

The upgrade list is constant throughout the game. To work around a technical limitation with the character models in SA2B, Mech Tails and Mech Eggman were given an upgrade slot each for their windshields, as they would have problems rendering otherwise.

Number Description
1 Sonic's Light Shoes
2 Sonic's Flame Ring
3 Sonic's Bounce Bracelet
4 Sonic's Magic Gloves
5 Shadow's Air Shoes
6 Shadow's Flame Ring
7 Knuckles' Shovel Claw (Left)
8 Knuckles' Shovel Claw (Right)
9 Knuckles' Hammer Glove (Left)
10 Knuckles' Hammer Glove (Right)
11 Knuckles' Sunglasses
12 Knuckles' Air Necklace
13 Rouge's Pick Nails
14 Rouge's Treasure Scope
15 Rouge's Iron Boots
16 Rouge's Heart Plates
17 Mech Tails' cockpit window (SA2B only)
18 Mech Eggman's cockpit window (SA2B only)

Mech Parts list

The list used to detect mech character parts is constant throughout the game. The way this list works is that each part of the mech is referenced via pointer to its OBJECT struct and pieces that are deemed redundant are rendered invisible. For example, if the player has acquired Mech Tails' Bazooka upgrade, his Vulcan Cannon won't render on his model and vice versa.

The list is essentially split into three sections, with the first two including pointers to the upgrade models and the last section focusing on the regular models if they exist. The order of the upgrades in the list is identical to a set of flags that are found in the game's code, which is the basis for the descriptions found in the table. The Tornado object in E0004 references its Vulcan Cannon where the Bazooka upgrade would normally be referenced. The reasoning for this is unclear at the moment.

The original purpose of this section was to serve as the upgrade application list for cutscenes. As such, all visible upgrades are supported here, but due to the inclusion of a new upgrade list that more closely matches the in-game implementation, the mech characters are the only ones to utilize the feature at all.

ID Description ID Description ID Description
0 Sonic's Light Shoes 1* 31 Sonic's Light Shoes 2* 62 Null
1 Sonic's Ancient Light** 32 Null 63 Null
2 Sonic's Magic Gloves* 33 Null 64 Null
3 Sonic's Flame Ring* 34 Null 65 Null
4 Sonic's Bounce Bracelet* 35 Null 66 Null
5 Sonic's Mystic Melody** 36 Null 67 Null
6 Mech Tails' Booster (Left, Node 51) 37 Mech Tails' Booster (Right, Node 40) 68 Null
7 Mech Tails' Bazooka (Root, Node 11) 38 Null 69 Mech Tails' Vulcan Cannon (Root, Node 3)
8 Mech Tails' Laser Blaster (Root, Node 8) 39 Null 70 Mech Tails' Missile Blaster (Root, Node 5)
9 Mech Tails' Mystic Melody** 40 Null 71 Null
10 Knuckles' Shovel Claw 1* 41 Knuckles' Shovel Claw 2* 72 Null
11 Knuckles' Sunglasses* 42 Null 73 Null
12 Knuckles' Hammer Gloves 1* 43 Knuckles' Hammer Gloves 2* 74 Null
13 Knuckles' Air Necklace* 44 Null 75 Null
14 Knuckles' Mystic Melody** 45 Null 76 Null
15 Null 46 Null 77 Null
16 Shadow's Air Shoes 1* 47 Shadow's Air Shoes 2* 78 Null
17 Shadow's Ancient Light** 48 Null 79 Null
18 Shadow's Flame Ring* 49 Null 80 Null
19 Shadow's Mystic Melody** 50 Null 81 Null
20 Mech Eggman's Jet Engine (Right, Node 6) 51 Mech Eggman's Jet Engine (Left, Node 11) 82 Null
21 Mech Eggman's Large Cannon (Root, Node 22) 52 Null 83 Mech Eggman's Vulcan Cannon (Root, Node 17)
22 Mech Eggman's Laser Blaster (Root, Node 24) 53 Null 84 Mech Eggman's Missile Blaster (Root, Node 19)
23 Mech Eggman's Protection Armor (Node 16) 54 Null 85 Null
24 Mech Eggman's Mystic Melody** 55 Null 86 Null
25 Rouge's Pick Nails 1* 56 Rouge's Pick Nails 2* 87 Null
26 Rouge's Treasure Scope* 57 Null 88 Null
27 Rouge's Iron Boots 1* 58 Rouge's Iron Boots 2* 89 Null
28 Rouge's Mystic Melody** 59 Null 90 Null
29 Null 60 Null 91 Null
30 Null 61 Null 92 Null

*Assumed upgrade/normal model
**Upgrade doesn't normally have a visual component

Character Node Hierarchy

The node hierarchy for the characters in the cutscenes tends to be quite different from their main game counterparts. As a result, there isn't so much a common skeleton for the cutscene models so much as a different arrangement for the same nodes, with some alterations for what's included within the body's mesh. As a general rule of thumb, any part of the mesh that requires shape motions in the scene is not included with the main model.

Sonic

ID Description
0 Root node
1 Root node 2 (Main array for the body)
2 Body node (Parent)
3 Body node (Parent 2)
4 Legs + Tail node (Parent)
5 Legs + Tail node (Parent 2)
6 Left Leg (Parent)
7 Left Leg node (hip)
8 Left Leg node (thigh)
9 Left Leg node (knee)
10 Left Leg node (end)
11 Left Foot node (Parent)
12 Left Foot node (Heel)
13 Left Foot node (Toe)
14 Left Foot node (End)
15 Tail (Parent)
16 Tail node (base)
17 Tail node (2nd from base)
18 Tail node (2nd from end)
19 Tail node (end)
20 Right Leg (Parent)
21 Right Leg node (hip)
22 Right Leg node (thigh)
23 Right Leg node (knee)
24 Right Leg node (end)
25 Right Foot node (Parent)
26 Right Foot node (Heel)
27 Right Foot node (toe)
28 Right Foot node (end)
29 Chest node (Parent)
30 Chest node (middle)
31 Head + Arms node (Parent)
32 Head + Arms node (Parent 2)
33 Right Arm (Parent, contains arm array)
34 Right Arm (Parent 2)
35 Right Arm node (base)
36 Right Arm node (elbow)
37 Right Arm node (wrist)
38 Right hand (Parent)
39 Right hand (Parent 2)
40 Face node (Parent)
41 Face node (Parent 2)
42 Face node (Parent 3)
43 Muzzle (Parent)
44 Head (Parent)
45 Right eye (Parent)
46 Right eye
47 Left eye (Parent)
48 Left eye
49 Left Arm (Parent, contains arm array)
50 Left Arm (Parent 2)
51 Left Arm node (base)
52 Left Arm node (elbow)
53 Left Arm node (wrist)
54 Left hand (Parent)
55 Left Hand (Parent 2)

Shadow

ID Description
0 Root node
1 Root node 2 (Main array for the body)
2 Body node (Parent)
3 Body node (Parent 2)
4 Legs + Tail node (Parent)
5 Legs + Tail node (Parent 2)
6 Right Leg (Parent)
7 Right Leg node (hip)
8 Right Leg node (thigh)
9 Right Leg node (knee)
10 Right Leg node (end)
11 Right Foot node (Parent)
12 Right Foot node (Heel)
13 Right Foot node (Toe)
14 Right Foot node (End)
15 Tail (Parent)
16 Tail node (base)
17 Tail node (2nd from base)
18 Tail node (2nd from end)
19 Tail node (end)
20 Left Leg (Parent)
21 Left Leg node (hip)
22 Left Leg node (thigh)
23 Left Leg node (knee)
24 Left Leg node (end)
25 Left Foot node (Parent)
26 Left Foot node (Heel)
27 Left Foot node (toe)
28 Left Foot node (end)
29 Chest node (Parent)
30 Chest node (middle)
31 Head + Arms node (Parent)
32 Head + Arms node (Parent 2)
33 Right Arm (Parent, contains arm array)
34 Right Arm (Parent 2)
35 Right Arm node (base)
36 Right Arm node (elbow)
37 Right Arm node (wrist)
38 Right hand (Parent)
39 Face node (Parent)
40 Face node (Parent 2)
41 Face node (Parent 3)
42 Muzzle (Parent)
43 Head (Parent)
44 Right eye (Parent)
45 Right eye
46 Left eye (Parent)
47 Left eye
48 Left Arm (Parent, contains arm array)
49 Left Arm (Parent 2)
50 Left Arm node (base)
51 Left Arm node (elbow)
52 Left Arm node (wrist)
53 Left hand (Parent)

Knuckles

ID Description
0 Root node
1 Root node 2 (Main array for the body)
2 Body node (Parent)
3 Body node (Parent 2)
4 Legs + Tail node (Parent)
5 Legs + Tail node (Parent 2)
6 Right Leg (Parent)
7 Right Leg node (hip)
8 Right Leg node (thigh)
9 Right Leg node (knee)
10 Right Leg node (end)
11 Right Foot node (Parent, contains shoe array)
12 Right Foot node (Parent 2)
13 Right Foot node (Heel)
14 Right Foot node (Toe)
15 Right Foot node (End)
16 Left Leg (Parent)
17 Left Leg node (hip)
18 Left Leg node (thigh)
19 Left Leg node (knee)
20 Left Leg node (end)
21 Left Foot node (Parent, contains shoe array)
22 Left Foot node (Parent 2)
23 Left Foot node (Heel)
24 Left Foot node (toe)
25 Left Foot node (end)
26 Tail (Parent)
27 Tail node (base)
28 Tail node (2nd from base)
29 Tail node (2nd from end)
30 Tail node (end)
31 Chest node (Parent)
32 Chest node (middle)
33 Head + Arms node (Parent)
34 Head + Arms node (Parent 2)
35 Left Arm (Parent, contains arm array)
36 Left Arm (Parent 2)
37 Left Arm node (base)
38 Left Arm node (elbow)
39 Left Arm node (wrist)
40 Left hand (Parent)
41 Face node (Parent)
42 Face node (Parent 2)
43 Face node (Parent 3)
44 Muzzle (Parent)
45 Head (Parent)
46 Right eye (Parent)
47 Right eye
48 Left eye (Parent)
49 Left eye
50 Right Arm (Parent, contains arm array)
51 Right Arm (Parent 2)
52 Right Arm node (base)
53 Right Arm node (elbow)
54 Right Arm node (wrist)
55 Right hand (Parent)

Rouge

ID Description
0 Root node
1 Root node 2 (Main array for the body)
2 Body node (Parent)
3 Body node (Parent 2)
4 Legs + Tail node (Parent)
5 Legs + Tail node (Parent 2)
6 Right Leg (Parent)
7 Right Leg node (hip)
8 Right Leg node (thigh)
9 Right Leg node (knee)
10 Right Leg node (end)
11 Right Foot node (Parent, contains shoe array)
12 Right Foot node (Parent 2)
13 Right Foot node (Heel)
14 Right Foot node (Toe)
15 Right Foot node (End)
16 Left Leg (Parent)
17 Left Leg node (hip)
18 Left Leg node (thigh)
19 Left Leg node (knee)
20 Left Leg node (end)
21 Left Foot node (Parent, contains shoe array)
22 Left Foot node (Parent 2)
23 Left Foot node (Heel)
24 Left Foot node (toe)
25 Left Foot node (end)
26 Tail (Parent)
27 Tail node (base)
28 Tail node (2nd from base)
29 Tail node (2nd from end)
30 Tail node (end)
31 Chest node (Parent)
32 Chest node (middle)
33 Head + Arms node (Parent)
34 Head + Arms node (Parent 2)
35 Right Arm (Parent, contains arm array)
36 Right Arm (Parent 2)
37 Right Arm node (base)
38 Right Arm node (elbow)
39 Right Arm node (wrist)
40 Right hand (Parent)
41 Right hand (Parent 2)
42 Right thumb node (Parent)
43 Right thumb node (middle)
44 Right thumb node (tip)
45 Right fingers node (Parent)
46 Right fingers node (middle)
47 Right fingers node (tip)
48 Right pinkie node (Parent)
49 Right pinkie node (middle)
50 Right pinkie node (tip)
51 Right hand
52 Face node (Parent)
53 Face node (Parent 2)
54 Face node (Parent 3)
55 Muzzle (Parent)
56 Head (Parent)
57 Right eye (Parent)
58 Right eye
59 Left eye (Parent)
60 Left eye
61 Left Arm (Parent, contains arm array)
62 Left Arm (Parent 2)
63 Left Arm node (base)
64 Left Arm node (elbow)
65 Left Arm node (wrist)
66 Left hand (Parent)
67 Left Hand (Parent 2)
68 Left thumb node (Parent)
69 Left thumb node (middle)
70 Left thumb node (tip)
71 Left fingers node (Parent)
72 Left fingers node (middle)
73 Left fingers node (tip)
74 Left pinkie node (Parent)
75 Left pinkie node (middle)
76 Left pinkie node (tip)
77 Left hand

Mech Tails

ID Description
0 Mech's Root node
1 Mech's Legs node (Parent)
2 Mech's Chest node (Parent)
3 Vulcan Cannon
4 Vulcan Cannon node
5 Missile Blaster node (base)
6 Missile Blaster node (barrel)
7 Missile Blaster node (tip)
8 Laser Blaster node (base)
9 Laser Blaster node (barrel)
10 Laser Blaster node (tip)
11 Bazooka node (base)
12 Bazooka node (barrel)
13 Bazooka node (tip)
14 Cannon node
15 Pilot's root node
16 Pilot's Chest node
17 Pilot's Left Arm node (base, contains array for arm)
18 Pilot's Left Arm node (Parent)
19 Pilot's Left Arm node (Armpit)
20 Pilot's Left Arm node (elbow)
21 Pilot's Left Arm node (wrist)
22 Pilot's Right arm node (base, contains array for arm)
23 Pilot's Right arm node (Parent)
24 Pilot's Right arm node (armpit)
25 Pilot's Right arm node (elbow)
26 Pilot's Right arm node (wrist)
27 Pilot's Face node (Parent)
28 Pilot's Face node (Parent 2)
29 Pilot's Face node (Parent 3)
30 Pilot's Right eye
31 Pilot's Left eye
32 Pilot's face node (end)
33 Yoke node
34 Lock-on Laser node
35 Mech's Right foot node (Parent)
36 Mech's Right foot node (Parent 2)
37 Mech's Right foot node (base)
38 Mech's Right foot node (calf, Parent)
39 Mech's Right foot node (calf)
40 Booster (Right)
41 Mech's Right foot node (Foot, Parent 1)
42 Mech's Right foot node (Foot, Parent 2)
43 Mech's Right foot node (Foot, Parent 3)
44 Mech's Right foot node (Foot)
45 Mech's Right foot node (Foot, tip)
46 Mech's Left foot node (Parent)
47 Mech's Left foot node (Parent 2)
48 Mech's Left foot node (base)
49 Mech's Left foot node (calf, Parent)
50 Mech's Left foot node (calf)
51 Booster (Left)
52 Mech's Left foot node (Foot, Parent 1)
53 Mech's Left foot node (Foot, Parent 2)
54 Mech's Left foot node (Foot, Parent 3)
55 Mech's Left foot node (Foot)
56 Mech's Left foot node (Foot, tip)

Mech Eggman

ID Description
0 Root node
1 Mech's Legs node (Parent)
2 Mech's Right Leg node (base)
3 Mech's Right Leg node (calf)
4 Mech's Right Foot node (heel)
5 Mech's Right Foot node (toe)
6 Jet Engine (Right)
7 Mech's Left Leg node (base)
8 Mech's Left Leg node (calf)
9 Mech's Left Leg node (heel)
10 Mech's Left Leg node (toe)
11 Jet Engine (Left)
12 Mech's Chest node (Parent)
13 Blaster node
14 Lock-on Laser node
15 Accessories node? (Parent)
16 Protection Armor
17 Vulcan Cannon
18 Vulcan Cannon node
19 Missile Blaster node (base)
20 Missile Blaster node (barrel)
21 Missile Blaster node (tip)
22 Large Cannon
23 Large Cannon node
24 Laser Blaster node (base)
25 Laser Blaster node (barrel)
26 Laser Blaster node (tip)
27 Laser Blaster node (glow)
28 Pilot's root node
29 Pilot's chest node (Contains array for the body)
30 Pilot's Arms node (Parent)
31 Pilot's Left Arm node (Parent)
32 Pilot's Left Arm node (base)
33 Pilot's Left Arm node (elbow)
34 Pilot's Left Arm node (wrist)
35 Pilot's Left hand node (Parent)
36 Pilot's Right Arm node (Parent)
37 Pilot's Right arm node (base)
38 Pilot's Right arm node (elbow)
39 Pilot's Right arm node (wrist)
40 Pilot's Right hand node (Parent)
41 Pilot's Face node (Parent)
42 Pilot's Face node (Parent 2)
43 Pilot's Face node (Parent 3)

Tails

ID Description
0 Root node
1 Root node 2 (Main array for the body)
2 Body node (Parent)
3 Chest node (Parent)
4 Chest node (middle)
5 Head + Arms node (Parent)
6 Head + Arms node (Parent 2)
7 Left Arm (Parent, contains arm array)
8 Left Arm (Parent 2)
9 Left Arm node (base)
10 Left Arm node (elbow)
11 Left Arm node (wrist)
12 Left hand (Parent)
13 Left hand (Parent 2)
14 Right Arm (Parent, contains arm array)
15 Right Arm (Parent 2)
16 Right Arm node (base)
17 Right Arm node (elbow)
18 Right Arm node (wrist)
19 Right hand (Parent)
20 Right Hand (Parent 2)
21 Face node (Parent)
22 Face node (Parent 2)
23 Face node (Parent 3)
24 Eyes (Parent)
25 Left Eye
26 Right eye
27 Muzzle (Parent)
28 Head (Parent)
29 Body node (Parent 2)
30 Legs + Tail node (Parent)
31 Legs + Tail node (Parent 2)
32 Right Leg (Parent)
33 Right Leg node (hip)
34 Right Leg node (thigh)
35 Right Leg node (knee)
36 Right Leg node (end)
37 Right Foot node (Parent, contains shoe array)
38 Right Foot node (Parent 2)
39 Right Foot node (Heel)
40 Right Foot node (Toe)
41 Right Foot node (End)
42 Tails (Parent)
43 Right tail
44 Left tail
45 Left Leg (Parent)
46 Left Leg node (hip)
47 Left Leg node (thigh)
48 Left Leg node (knee)
49 Left Leg node (end)
50 Left Foot node (Parent, contains shoe array)
51 Left Foot node (Parent 2)
52 Left Foot node (Heel)
53 Left Foot node (toe)
54 Left Foot node (end)

Eggman

ID Description
0 Root node
1 Root node 2 (Main array for the body)
2 Body node (Parent)
3 Chest node (Parent)
4 Chest node (middle)
5 Head + Arms node (Parent)
6 Head + Arms node (Parent 2)
7 Left Arm (Parent)
8 Left Arm node (base)
9 Left Arm node (elbow)
10 Left Arm node (wrist)
11 Left Hand node (Parent)
12 Left Hand node (Parent 2)
13 Right Arm (Parent)
14 Right Arm node (base)
15 Right Arm node (elbow)
16 Right Arm node (wrist)
17 Right hand node (Parent)
18 Right hand node (Parent 2)
19 Face node (Parent)
20 Face node (Parent 2)
21 Face node (Parent 3)
22 Body node (Parent 2)
23 Legs node (Parent)
24 Legs node (Parent 2)
25 Right Leg node (Parent)
26 Right Leg node (hip)
27 Right Leg node (thigh)
28 Right Leg node (knee)
29 Right Leg node (End)
30 Right Foot node (Parent)
31 Right Foot node (calf)
32 Right Foot node (heel)
33 Right Foot node (toe)
34 Left Leg node (Parent)
35 Left Leg node (hip)
36 Left Leg node (thigh)
37 Left Leg node (knee)
38 Left Leg node (end)
39 Left Foot node (Parent)
40 Left Foot node (calf)
41 Left Foot node (heel)
42 Left Foot node (toe)

Amy

ID Description
0 Root node
1 Root node 2 (Main array for the body)
2 Body node (Parent)
3 Body node (Parent 2)
4 Legs + Tail node (Parent)
5 Legs + Tail node (Parent 2)
6 Right Leg (Parent)
7 Right Leg node (hip)
8 Right Leg node (thigh)
9 Right Leg node (knee)
10 Right Leg node (end)
11 Right Foot node (Parent)
12 Right Foot node (Heel)
13 Right Foot node (Toe)
14 Right Foot node (End)
15 Tail (Parent)
16 Tail node (base)
17 Tail node (2nd from base)
18 Tail node (2nd from end)
19 Tail node (end)
20 Left Leg (Parent)
21 Left Leg node (hip)
22 Left Leg node (thigh)
23 Left Leg node (knee)
24 Left Leg node (end)
25 Left Foot node (Parent)
26 Left Foot node (Heel)
27 Left Foot node (toe)
28 Left Foot node (end)
29 Chest node (Parent)
30 Chest node (middle)
31 Head + Arms node (Parent)
32 Head + Arms node (Parent 2)
33 Face node (Parent)
34 Face node (Parent 2)
35 Muzzle (Parent)
36 Eyes (Parent)
37 Right eye
38 Left eye
39 Face node (Parent 3)
40 Head (Parent)
41 Right Arm (Parent, contains arm array)
42 Right Arm (Parent 2)
43 Right Arm node (base)
44 Right Arm node (elbow)
45 Right Arm node (wrist)
46 Right hand (Parent)
47 Right hand (Parent 2)
48 Left Arm (Parent, contains arm array)
49 Left Arm (Parent 2)
50 Left Arm node (base)
51 Left Arm node (elbow)
52 Left Arm node (wrist)
53 Left hand (Parent)
54 Left Hand (Parent 2)

Super Sonic/Super Shadow

ID Description
0 Root node
1 Root node 2 (Main array for the body)
2 Body node (Parent)
3 Body node (Parent 2)
4 Legs + Tail node (Parent)
5 Legs + Tail node (Parent 2)
6 Right Leg (Parent)
7 Right Leg node (hip)
8 Right Leg node (thigh)
9 Right Leg node (knee)
10 Right Leg node (end)
11 Right Foot node (Parent, contains shoe array)
12 Right Foot node (Parent 2)
13 Right Foot node (Heel)
14 Right Foot node (Toe)
15 Right Foot node (End)
16 Left Leg (Parent)
17 Left Leg node (hip)
18 Left Leg node (thigh)
19 Left Leg node (knee)
20 Left Leg node (end)
21 Left Foot node (Parent, contains shoe array)
22 Left Foot node (Parent 2)
23 Left Foot node (Heel)
24 Left Foot node (toe)
25 Left Foot node (end)
26 Tail (Parent)
27 Tail node (base)
28 Tail node (2nd from base)
29 Tail node (2nd from end)
30 Tail node (end)
31 Chest node (Parent)
32 Chest node (middle)
33 Head + Arms node (Parent)
34 Head + Arms node (Parent 2)
35 Left Arm (Parent, contains arm array)
36 Left Arm (Parent 2)
37 Left Arm node (base)
38 Left Arm node (elbow)
39 Left Arm node (wrist)
40 Left hand (Parent)
41 Left hand (Parent 2)
42 Face node (Parent)
43 Face node (Parent 2)
44 Face node (Parent 3)
45 Muzzle (Parent)
46 Head (Parent)
47 Right eye (Parent)
48 Right eye
49 Left eye (Parent)
50 Left eye
51 Right Arm (Parent, contains arm array)
52 Right Arm (Parent 2)
53 Right Arm node (base)
54 Right Arm node (elbow)
55 Right Arm node (wrist)
56 Right hand (Parent)
57 Right Hand (Parent 2)

EXXXX_0 Information

In earlier version of Sonic Adventure 2, the event files that had an additional number as a suffix contained all the additional data for the cutscene. The final builds adjusted this system so that the various languages would utilize files that only contained their subtitle and audio timings. EXXXX_0 was originally meant to contain data related to the Japanese language setting, but the final builds repurposed them to contain and load the external graphical effects used in each cutscene.

Screen Effects

Information starting at 0x9800 denotes any screen effects that occur within the scene, such as fades or color changes. Each chunk of this information is 64 bytes long, with the last 32 bytes acting as a buffer. There are a total of 64 possible entries that can be implemented for this section.

Offset Type Description
0 UINT32 Frame in which the screen information takes effect
4 Byte Effect type
ID Description
1 Screen fade-in
2 Screen cut-in
3 Texture fade-in
4 Texture cut-in
5 Background fade-in
6 Background cut-in
5 Char Array [3] Null
8 Char Array [4] ASCII color (ARGB)
C Byte Fadeout check
D Byte Null
E INT16 Screen texture ID*
10 UINT32 Visible time*
14 INT16 Position X*
16 INT16 Position Y*
18 Float Width*
1C Float Height*

*These values are used in combination with the texture screen effect IDs

Simple Particle Effect Information

Information starting at 0xA800 pertains to simple particle effects present in the cutscene, such as flashing lights or the sun. Each piece of data is 56 bytes long, with the last 32 bytes acting as a buffer. There are a total of 2048 possible entries that can be implemented for this section.

Offset Type Description
0 UINT32 Frame in which the particle information takes effect
4 Byte Particle ID
ID Description
0 Null
1 Dust puff
2 Sparkle
3 Sparkle
4 Dirt patches
5 Fire blast
6 Steam
7 Snow blast
8 Sun
9 Sun cancel
A Water splash
B Smoke cloud
C Steam puff
D Rocket steam puff
E Flame puff
F Null
10 Game crash
11 Pulsing texture
12 Pulsing texture cancel
5 Byte Particle Motion ID
6 INT16 Null
8 Float Texture ID*
C Float Pulse Control*
10 Float Unknown*
14 Float Particle Size*

*Custom particles treat these values as depicted in the list, while normal particles treat these as displacement values

Object Lighting Information

Starting at 0x26800 are 68-byte chunks that dictate the object lighting information for the corresponding cutscene. The last 20 bytes can be considered a buffer for now. Lighting information is split into four sections of 256 entries each and all four sets are combined at runtime, depending on the entity flag settings. The Dreamcast version only applies the first section's information by default unless the multi-light entity flags are set, while SA2B applies all four lighting sets at all times. "Scene 0" entities ignore all lighting instructions by default unless the multi-light entity flags are set. There are a total of 1024 possible entries that can be implemented for this section.

Offset Type Description
0 UINT32 Frame in which the lighting information takes effect
4 UINT32 Fade control. 1 is a hard cut, while 2 is a fade-in from the previous set of instructions
8 Float Light Direction Vector (X-Component)
C Float Light Direction Vector (Y-Component)
10 Float Light Direction Vector (Z-Component)
14 Float Red
18 Float Green
1C Float Blue
20 Float Light intensity
24 Float Ambient R
28 Float Ambient G
2C Float Ambient B

Blur Effect Information

Information starting at 0x37800 denotes the controls for motion blur effects used by models in the blur array. Each chunk is 64 bytes in size. There are 64 total blur effect entries per cutscene.

Offset Type Description Notes
0 UINT32 Frame in which the blur information takes effect
4 UINT32 Effect duration
8 Char Array [6] Blur Model ID A maximum of six model IDs can be entered here. IDs are determined by their placement in the blur models array
E UINT16 Null
10 UINT32 Blur Entity Count

Animated Particle Effect Information

Information starting at 0x38800 pertains to specific animated particle effects that are loaded in a cutscene, such as smoke clouds and moving sparkles. Each data chunk is 64 bytes in size. There are a total of 64 possible entries that can be implemented for this section.

Offset Type Description
0 Float(3) Position
C Float(3) Rotation and Speed controls
18 UINT16 Unknown
1A UINT16 Unknown
1C UINT16 Unknown
1E UINT16 Unknown
20 UINT32 Frame in which the particle information begins to play
24 Float(3) Particle spread controls
30 UINT32 Number of particle instances
34 UINT32 Unknown
38 UINT32 Particle ID
ID Description
0 Null (Game crash)
1 Dust puff
2 Sparkle
3 Sparkle
4 Dirt patches
5 Fire blast
6 Steam
7 Snow blast
8 Game crash
9 Game crash
A Water splash
B Smoke cloud
C Steam puff
D Rocket steam puff
E Flame puff
F Null
10 Game crash
3C UINT32 Unknown

Video Overlay Information

Information starting at 0x39800 determines whether or not an FMV overlay is meant to be loaded in a scene. Depending on the settings, the video can either be superimposed over the screen, or a mesh that's in the cutscene. The chunks are 64 bytes long, with the last 16 acting as a buffer. There are a total of 64 possible entries that can be implemented for this section.
In the Dreamcast and GameCube versions, .m1v files are loaded for these cases. The 2012 re-release checks for and loads the .sfd equivalents of the video overlays.

Offset Type Description
0 UINT32 Frame in which the video begins to play
4 INT16 X Position. Positive values push the video overlay to the right.
6 INT16 Y Position. Positive values push the video overlay down.
8 Float Depth value. A higher value means the video overlay will be pushed further away from the screen
C Byte Overlay type
ID Description
0 Null
1 Screen overlay
2 Mesh overlay
3 Screen overlay
4 Screen overlay
5 Pause video
6 Resume video
D Byte Overlay texture ID*. Any meshes that use the texture ID denoted here will have the specified texture replaced with the video.
E UINT16 Null
10 Text Name of the video file that's to be loaded

*This is used in combination with the "Mesh overlay" type.

EXXXX_1-J Information

Suffix Language
1 English
2 French
3 Spanish
4 German
5 Italian (2012 port only)
J Japanese

The start of the file contains subtitle data. Each data set is 8 bytes long and is tied to the subtitle order found in the appropriate evmes?? file.

There are a maximum of 256 subtitle entries per cutscene.

Offset Type Description
0 INT32 Frame in which the subtitle is set to appear. A value of -1 in this slot indicates that the subtitle will be used as the opening text crawl for the cutscene.
4 UINT32 Number of frames in which the subtitle is to remain onscreen.

Information starting at 0x800 and continuing until the end of the file contains audio timings for voices and BGM for each language. Each chunk is 72 bytes in size. Voice clip playback is determined by the cutscene ID, so a value used by E0000 will not be the same as the value used by E0102, for example.

There are a maximum of 512 audio entries per cutscene.

Offset Type Description
0 UINT32 Frame in which the audio clip begins to play
4 Byte SFX initializer. FF is considered a null value and is ignored
5 Byte Credits initializer and scroll speed control. This is hardcoded to only work with E0210. FF is a null value
6 UINT16 Number of the voice clip that's to be loaded if applicable. This number is added to a default value set by each cutscene and the result is compared against a master array to load the desired voice clip. FF FF denotes a null entry
8 Text Name of audio track that's to be loaded, if applicable. Placing a hex value of 30 in this spot will stop the current audio track from playing
18 Text Name of jingle that's to be loaded, if applicable. No cutscenes appear to use this feature

Mini-Event Scenes

Scenes that are labeled as MEXXXX.PRS in the event files are cutscenes that occur within a game state, such as before certain boss fights like Big Foot and Flying Dog. The contents of these files are not as robust as those of the main cutscenes, often only containing animation and shape motion data for the designated characters. As these scenes rely on the player models, specific parts of their body are omitted and replaced with cutscene-specific variants for the duration of the scene, with the exception of Mech Eggman as he only requires animation data. The contents of these files can be broken down as follows:

Offset Type Description
0 UINT32 Character flags
4 Pointer Camera information
8 Pointer Sonic's pointer array (if applicable)
C Pointer Shadow's pointer array (if applicable)
10 Pointer Mechless Tails' pointer array (unused)
14 Pointer Mechless Eggman's pointer array (unused)
18 Pointer Knuckles' pointer array (if applicable)
1C Pointer Rouge's pointer array (if applicable)
20 Pointer Mech Tails' pointer array (unused)
24 Pointer Mech Eggman's pointer array (if applicable)

For Sonic, Shadow, and Knuckles' player models, any models attached to nodes 42 (Left Hand), 47 (Mouth), 49 (Head), and 61 (Right Hand) will be omitted for the duration of the scene. Rouge only omits models attached to nodes 47 and 49.

The order for each character's pointer array always begins with the player model's animations, followed by the model -> animation -> shape motion data sets for each cutscene model. The head's data goes first, followed by the mouth, then the left hand, and finally the right hand.

The DC base pointer for these scenes is 0xCB00000
The base pointer for these scenes in SA2B is 0x816DFE60

MEXXXX_0-5 Information

Suffix Language
0 Japanese
1 English
2 French
3 Spanish
4 German
5 Italian (2012 port only)

Much like the _1 to _J files for the main event cutscenes, MEXXXX_0 to _5 dictates audio and subtitle information for the mini-event scenes. These files are uncompressed.

The start of the file contains subtitle timings and their duration. Each data set is 8 bytes in size and is tied to the subtitle order found in the appropriate evmes?? file.

There are a maximum of 32 subtitle entries per cutscene.

Offset Type Description
0 UINT32 Frame in which the subtitle is set to appear
4 UINT32 Number of frames in which the subtitle remains onscreen after it has been loaded

Information starting at 0x100 contains timings for each language. Each chunk is 76 bytes in size. Note that voice clip entries are dependent on the cutscene's internal ID, so the "first" entry of ME0001 isn't the same as the one found in ME0007, for example.

There are a maximum of 64 effect timings per cutscene.

Offset Type Description
0 UINT32 Frame in which the instruction is set to begin
4 Byte Screen control. 1 is a normal fade-in, while 2 maintains the screen fade tint until the mini-event is finished.
5 Byte Sound effect ID that is to be loaded, if applicable. FF is considered a null value
6 Byte Unknown
7 Byte Null (00)
8 UINT16 Number of the voice clip that's to be loaded if applicable. This number is added to a default value set by each cutscene and the result is compared against a master array to load the desired voice clip. Valid entries are written as 00 ??, while FF FF is a null value.
A Byte BGM control. Setting this value to 2D (45) will cause the level's music to play at the frame specified.
1A Byte Jingle control. No cutscenes use this feature by default
2C Float Rumble power. This determines the strength and duration of the rumble feature

References


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