Difference between revisions of "Sonic Heroes/Object Editing"
From Sonic Retro
Igorseabra4 (talk | contribs) m |
Igorseabra4 (talk | contribs) m (→Second Section Entries) |
||
Line 137: | Line 137: | ||
|} | |} | ||
− | The rest varies from object to object, but they're usually separated into 8 longs or floats. They're explained in the [[Sonic Heroes/Object Editing#Object Specific Settings]] section. | + | The rest varies from object to object, but they're usually separated into 8 longs or floats. They're explained in the [[SCHG:Sonic Heroes/Object Editing#Object Specific Settings|Object Specific Settings]] section. |
== Object Lists == | == Object Lists == |
Revision as of 14:58, 9 March 2016
SCHG: Sonic Heroes |
---|
Main Article |
Mechanic Editing |
DOL Editing |
Model Editing |
Collision Format Model Format |
Level Editing |
Camera Editing |
Particle Editing |
Particle Editing |
Sound Editing |
Music List |
SCHG How-Tos |
Custom Object Material Effect Tutorial |
In the PC version of the game, level object layouts are stored in big endian .bin files located in the /dvdroot folder.
Contents
File Name Layout
The file names are stored in the following format:
sL_PN.bin
L is the level number and N is the player number.
Note: Some files start with stg instead of s
Players
- P1 - Team Sonic
- P2 - Team Dark
- P3 - Team Rose
- P4 - Team Chaotix
- P5 - Super Hard
- PB - All teams (verify)
Because of the player files and the PB files for each level, objects might reference each other from different files (verify)
Levels
This list is used both for the file names and for selecting between the internal object lists (offset 0x28 of first section object entry in the file, explained below).
- 00 - Global (list)
- 01 - Seaside Hill
- 02 - Ocean Palace
- 03 - Grand Metropolis
- 04 - Power Plant
- 05 - Casino Park
- 06 - Bingo Highway
- 07 - Rail Canyon
- 08 - Bullet Station
- 09 - Frog Forest
- 10 - Lost Jungle
- 11 - Hang Castle
- 12 - Mystic Mansion
- 13 - Egg Fleet
- 14 - Final Fortress
- 15 - Enemy (list)
To do: complete list
Object File Layout
The files are always 0x21000 bytes long and seem to have no header. The object list seems to be able to start at the beginning of the file, but usually starts much later, leaving a huge empty space before the list. This is most likely for one single level to load the list from multiple files.
The files are made up by two sections: one starting at the beginning, with 0x30 entries, and one starting at offset 0x18024, with 0x24 entries. Each object is defined by one array from the first section and one from the second section.
First Section Entries
This array starts at the beginning of the .bin file, but retail files usually have an empty space before it. The ID (offset 0x2C) is set with regards to this space. Each entry is 0x30. This section contains most basic info for the objects.
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
Offset | Type | Description |
---|---|---|
0x00 | Float | X Position |
0x04 | Float | Y Position |
0x08 | Float | Z Position |
0x0C | Long | X Rotation |
0x10 | Long | Y Rotation |
0x14 | Long | Z Rotation |
0x18 | Word | Usually 00 02 Unknown effect |
0x1A | Byte | 0x00 for PB 0x20 for Sonic 0x40 for Dark 0x60 for Rose 0x80 for Chaotix 0xA0 for Super Hard Seems to be ignored |
0x1B | Byte | Usually 09 Unknown effect |
0x1C | Long | Usually 00 00 00 00 Unknown effect |
0x20 | Double | Usually repeats the previous double Unknown effect |
0x28 | Byte | Object list |
0x29 | Byte | Object type |
0x2A | Byte | Unknown |
0x2B | Byte | Render distance multiplier |
0x2C | Long | ID used for matching with second section |
Second Section Entries
This array starts at offset 0x18024 in the .bin file and has 0x24 entries, one for each entry in the first section. It sets more object specific settings, such as spring strength or item box content.
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
Offset | Type | Description |
---|---|---|
0x00 | Word | Always 01 00 |
0x02 | Word | ID used for matching with first section |
The rest varies from object to object, but they're usually separated into 8 longs or floats. They're explained in the Object Specific Settings section.
Object Lists
Which list will be used is set in the byte at offset 0x28. The actual object is set in the byte at offset 0x29. Placing an object from another level in the same zone (such as an object from Seaside Hill in Ocean Palace) might work, but objects from different acts will crash the game. Which objects which are available for use in each level is probably set elsewhere.
Note: These lists were based on tests that weren't very well done and might be incorrect or incomplete. "Crash" means the game crashes, "Test" means this object is used but was not looked into, blank means not tested
Global List (00)
- 00 - Nothing
- 01 - Spring
- 02 - Triplet Spring
- 03 - Ring
- 04 - Hint Ring
- 05 - Formation Change Gate
- 06 -
- 07 - Crash
- 08 - Crash
- 09 - Crash
- 0A - Crash
- 0B - Dash Pad
- 0C - Dash Hoop
- 0D - Rainbow Hoops
- 0E - Checkpoint
- 0F - Dash Ramp
- 10 - Cannon
- 11 - Crash
- 12 -
- 13 -
- 14 -
- 15 -
- 16 -
- 17 -
- 18 - Item Box
- 19 - Item Balloon
- 1A -
- 1B - Goal Ring
- 1C -
- 1D -
- 1E -
- 1F -
- 20 -
- 21 - Metal Box
- 22 -
- 23 -
- 24 - Special Stage Key Box
- 25 - Formation Sign
- 26 - Switch
- 27 -
- 28 -
- 29 - Pole
- 2A -
- 2B -
- 2C -
- 2D -
- 2E - Fan
- 2F -
- 30 -
- 31 - Cage (Opened by Switch)
- 50 - Invisible push collision object
- 80 - Test
Seaside Hill List (01)
- Object 08 from this list is used in other zones
To do
Enemy List (15)
- 00 - Flapper
- 10 - Egg Pawn
- 40 -
- D0 -
Object Specific Settings
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
List | Object | 0x04 | 0x08 | 0x0C | 0x10 | 0x14 | 0x18 | 0x1C | |
---|---|---|---|---|---|---|---|---|---|
00 - General | 01 - Spring | Strength (float) | Control time (first word) | ||||||
00 - General | 02 - Triplet Spring | Strenght (float) | Control time (first word) Item (second word) |
||||||
00 - General | 03 - Ring | Is a line? (first word) Amount of rings on line (second word) Note: if set to off, amount still works |
Lenght of line (float) | ||||||
00 - General | 04 - Hint Ring | Line to play (first word) | |||||||
00 - General | 0B - Dash Pad | Speed (float) | Control time (first word) | ||||||
00 - General | 0C - Dash Hoop | Speed (float) | Control time (first word) | ||||||
00 - General | 0F - Dash Ramp | Speed (float) | Pitch (float) | Control time (first word) | |||||
00 - General | 18 - Item Box | First byte sets item type | |||||||
00 - General | 19 - Item Balloon | First byte sets item type. | Scale (float) | ||||||
00 - General | 25 - Formation Sign | Formation (byte) | |||||||
00 - General | 26 - Formation Change Gate | Formation (byte) | Width (float) | Width multiplier (float) (verify) |
Item Type List
- 00 - Nothing
- 01 - 5 Rings
- 02 - 10 Rings
- 03 - 20 Rings
- 04 - Barrier
- 05 - 1UP
- 06 - Speed Shoes
- 07 - Team Blast
- 08 - Invincible
- 09 - Speed Level Up
- 0A - Fly Level Up
- 0B - Power Level Up
- 0C - Refill Flight Gauge