Sonic Heroes/Object Editing
From Sonic Retro
Revision as of 21:45, 24 March 2016 by Igorseabra4 (talk | contribs) (→List 09 (Frog Forest, Lost Jungle))
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
- 1 File Name Layout
- 2 Object File Layout
- 3 Object Lists
- 3.1 List 00 (General)
- 3.2 List 01 (Seaside Hill)
- 3.3 List 02 (Ocean Palace)
- 3.4 List 03 (Grand Metropolis)
- 3.5 List 04 (Power Plant)
- 3.6 List 05 (Casino Park, BINGO Highway, Robot Carnival)
- 3.7 List 07 (Rail Canyon, Egg Albatross)
- 3.8 List 08 (Bullet Station)
- 3.9 List 09 (Frog Forest, Lost Jungle)
- 3.10 List 11 (Hang Castle, Mystic Mansion, Robot Storm)
- 3.11 List 13 (Egg Fleet)
- 3.12 List 14 (Final Fortress)
- 3.13 List 15 (Enemy)
- 3.14 List 16 (Egg Emperor)
- 3.15 List 20 (Egg Hawk)
- 3.16 List 33 (Multiplayer Boblsed Race)
- 4 Object Specific Settings
File Name Layout
The file names are stored in the following format:
sLL_NN.bin
LL is the level number and NN is the player number.
Note: Some files start with stg instead of s
The level numbers (LL) are the ones used in the File Names and Data list.
Players:
- DB - Decoration for all teams
- PB - Objects for all teams
- P1 - Team Sonic
- P2 - Team Dark
- P3 - Team Rose
- P4 - Team Chaotix
- P5 - Super Hard
DB files contain mostly decoration and objects that don't interact with the players, such as grass patches and the giant decoration casino chips. PB files contain normal stage objects. Both files are loaded for all teams. The object lists are the same, so there's no restriction for which objects can be placed in any of the files. There doesn't seem to be any difference in the way each of the files are loaded, so they are most likely separate for organization.
All special stage and multiplayer levels have only the DB and PB files. The team battles and Last story bosses also only have DB and PB.
Because of the player files, DB and PB files for each level, objects might reference each other from different files (verify)
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 main section and one from the misc. section.
Main 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 |
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 as objects will be loaded regardless of this |
0x1B | Byte | Usually 09 Unknown; related to parenting to a moving object? |
0x1C | Long | Usually 00 00 00 00 Unknown effect |
0x20 | 8 bytes | Usually repeats the previous 8 bytes Unknown effect |
0x28 | Byte | Object list |
0x29 | Byte | Object type |
0x2A | Byte | Link ID* |
0x2B | Byte | Render distance multiplier* |
0x2C | Long | Object ID* |
Notes:
- Link ID is used for all kinds of event activators (switches, triggers, bingo table, frog), also for gruping enemies together and linking warp flowers
- Render distance multiplier sets from which distance the object starts being rendered
- Object ID is used for matching with the Misc. Section; I don't know if these can be numbered out of order or if this number is even used at all (it might find the matching entry just from the order it appears in the file)
Misc. 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
In the main section entry, which list will be used is set in the byte at offset 0x28. The actual object from the list is set in the byte at offset 0x29.
The objects which are available for placement in each level are not defined by the list themselves; for example, although the Pulley is in the global list, placing it in Seaside Hill will crash the game. And some objects from list 01, which would be the Seaside Hill list, can be placed in Ocean Palace and even in some other levels. Which objects are available for use in each level is probably set in the EXE.
Note: These lists were based on tests that weren't very well done and might be incorrect or incomplete.
List 00 (General)
- 00 - Nothing
- 01 - Spring
- 02 - Triple Spring
- 03 - Ring
- 04 - Hint Ring
- 05 - Switch
- 07 - Target Switch
- 08 - Wall Push Switch
- 0B - Dash Panel
- 0C - Dash Ring
- 0D - Rainbow Hoops
- 0E - Checkpoint
- 0F - Dash Ramp
- 10 - Cannon
- 15 - Spike Ball
- 18 - Item Box
- 19 - Item Balloon
- 1B - Goal Ring
- 1D - Pulley
- 20 - Wooden Box
- 21 - Metal Box
- 22 - Steel Box
- 23 - Chaotix Chao
- 24 - Cage Box
- 25 - Formation Sign
- 26 - Formation Change Gate
- 29 - Pole
- 2C - Power Gong
- 2E - Fan
- 31 - Locked Cage
- 32 - Chaotix Warp Flower
- 50 - Invisible collision object
- 56 - Trigger volume for talking
- 59 - Trigger volume for lightning modifier (lightning is set in sLL_light.bin)
- 61 - ?
- 62 - Egg Hawk path node info
- 63 - ?
- 64 - ?
- 67 - Special Stage Key
- 80 - ?
- 82 - ?
List 01 (Seaside Hill)
- 02 - Large Moving Block on Rails
- 03 - Large Sliding Block
- 04 - Large Breakable Block
- 05 - Moving Ruin Platform
- 08 - Trigger (volume) (used in other levels)
- 0A - Sun
- 0B - Chaotix Hermit Crab
- 80 - Flower Patch
- 81 - Decoration pole with spike
- 82 - Whale Spawner (unsure)
- 83 - Seagulls
- 86 - Waterfall (large)
- 87 - Tides
- 88 - Small Stone Platform
- 89 - Waterfall (small)
List 02 (Ocean Palace)
- 00 - Crumbling Stone Pillar
- 01 - Falling Stone Structure
- 02 - Breakable Door
- 03 - Small Breakable Block
- 04 - Kaos (demonic-looking wheel-boulders that fall off the statues)
- 06 - Moving Item Balloon (used in Metal Overlord)
- 0B - ? (Used in Power Plant)
- 0C - Kaos trigger
- 80 - ?
- 81 - Turtle Feet
- 83 - Flowing Water
- 84 - Plant
- 85 - Ruin decoration shaped like whale tail with water flowing from it
List 03 (Grand Metropolis)
- 00 - Accelerator Road
- 02 - Road energy blocker
- 03 - Grand Metropolis door
- 04 - Falling Bridge
- 05 - ?
- 06 - Flying car spawner
- 07 - Blimp with platform
- 08 - Accelerator (invisible, pushes you foward)
- 81 - Plane trigger
- 84 - Decoration energy piston
- 85 - Flashing floor lights
- 86 - HEXAeco Signboard
List 04 (Power Plant)
- 00 - Upward path
- 01 - Energy column
- 02 - Elevator
- 03 - Lava Section Platform
- 04 - Energy blocker for lava section
- 06 - Fireball
- 08 - Energy blocker for column
- 10 - Orange Door
- 12 - Lava
- 13 - Energy blocker for elevator
- 14 - Large Sphere?
- 15 - Green upward path
- 16 - Elevator Support Column
- 80 - Large Sphere?
- 81 - Energy Wall Background
- 82 - Crane
- 83 - Hexagonal Satellite
- 84 - HEXAeco Rotating Wall thing
- 85 - Strip of flashing floor arrows
List 05 (Casino Park, BINGO Highway, Robot Carnival)
- 00 - Small Bumper (Pinball Tables)
- 01 - Green Sphere "Spring"
- 02 - Flipper (Pinball Tables)
- 03 - Small Triangular Bumper (Pinball Tables)
- 04 - Bumpy Star Panel (Pinball Tables)
- 05 - Bumpy Star Panel (used outside the tables)
- 06 - Large Triangular Bumper (Pinball Tables)
- 07 - BINGO "Lost" Floating Marker (BINGO Highway)
- 08 - Casino Style Door
- 09 - Breakable Glass Floor
- 0A - Floating Dice
- 0B - Pinball Triple Slot (Pinball Tables)
- 0C - Pinball Single Slot (Pinball Tables)
- 0D - Bingo Chart (BINGO Highway)
- 0E - Bingo Number (BINGO Highway)
- 10 - Dash Arrow (Pinball Tables)
- 11 - Chaotix Casino Chip (BINGO Highway)
- 80 - Floating Indicator Light Arrow
- 81 - Large Floating Arrow (Casino Park)
- 82 - Large Floating Letter (Casino Park)
- 84 - Giant Dice (Casino Park)
- 85 - Giant Slot (Casino Park)
- 86 - Giant Roulette
- 87 - Giant Casino Chip (BINGO Highway)
List 07 (Rail Canyon, Egg Albatross)
List 08 (Bullet Station)
- 00 -
- 01 -
- 02 -
- 04 -
List 09 (Frog Forest, Lost Jungle)
- 00 - Frog
- 02 - Small Green Platform
- 03 - Bouncy Mushroom (smaller)
- 04 - Tall Vertical Vine
- 05 - Tall tree that grows and has many platforms
- 06 - Ivy that grows as you grind on it (Frog Forest)
- 07 - Large Yellow Platform
- 08 - Bouncy Fruit
- 09 - Bouncy Mushroom (bigger)
- 0B - Swinging Vines
- 0C - Mossy Ball
- 0E - Giant Alligator (Lost Jungle)
- 12 - ? (Lost Jungle)
- 13 - ? (Lost Jungle)
- 80 - Butterfiles (Frog Forest)
- 81 - Pink Flower (Frog Forest)
- 82 - Small Mushroom (Frog Forest)
- 83 - Medium Plant (Frog Forest)
- 84 - Small Plant with red leaves (Frog Forest)
- 85 - Small Plant (Frog Forest)
- 86 - Big Plant (Frog Forest)
- 87 - Yellow Plant (Frog Forest)
- 88 - Green Mushroom (Frog Forest)
- 89 - Puddle (Frog Forest)
- 8A - Plant with trunk (Frog Forest)
- 8B - Large Leaf (Frog Forest)
- 8C - Flowers growing from swamp (Lost Jungle)
- 8D - Wiggling Mushroom (Lost Jungle)
- 91 - Hanging Yellow Fruit (Lost Jungle)
- 93 - Moss patch on the ground (Lost Jungle)
- 95 - Large green thing that sprouts from the wall (Lost Jungle)
- 97 - Large Plant (Lost Jungle)
- 98 - Swamp Water for the entire level (Lost Jungle)
- 9A - Floating Trunk (Lost Jungle)
List 11 (Hang Castle, Mystic Mansion, Robot Storm)
- 00 - Teleporter Switch
- 01 - Door (Hang Castle)
- 02 - Cracked Wall (Hang Castle)
- 03 - Floating Platform (Hang Castle)
- 04 - Flame/Torch
- 05 - Pumpkin Ghost
- 06 - Floating Platform (Mystic Mansion)
- 07 - Cracked Wall (Mystic Mansion)
- 08 - Door (Mystic Mansion)
- 09 - Chaotix Key (Hang Castle)
- 0B - Door Close Trigger? (Mystic Mansion)
- 0C - Music Control Trigger (Mystic Mansion)
- 80 - Glow Effect (Mystic Mansion)
- 81 - Bridge (Mystic Mansion)
- 82 and 83 - Related to lightning effect seen from windows (Mystic Mansion)
- 84 - Smoke Screen (Hang Castle)
- 85 - Skeleton (Mystic Mansion)
- 86 - Skeleton Trigger (Mystic Mansion)
- 87 - Spinning Skeleton Hands (Mystic Mansion)
- 88 - Curtain (Hang Castle)
- 89 - Glowing spider signs (Hang Castle)
- 8A - Tree (Hang Castle)
- 8B - Spiked plant (decoration) (Hang Castle)
- 8C - Small plant (decoration) (Hang Castle)
- 8D - Swinging Axe (Hang Castle)
List 13 (Egg Fleet)
List 14 (Final Fortress)
List 15 (Enemy)
- 00 - Egg Flapper
- 10 - Egg Pawn
- 20 - Klagen
- 30 - Falco
- 40 - Egg Hammer
- 70 - Cameron
- 90 - Rhino Liner
- C0 - Egg Bishop
- D0 - E-2000
- D2 - Metal Madness (?)
- D3 - Metal Overlord (?)
List 16 (Egg Emperor)
List 20 (Egg Hawk)
- 80 - Road Decoration Block
- 81 - Whale Statue
- 82 - Tower
List 33 (Multiplayer Boblsed Race)
Object Specific Settings
There is a lot of debug text data in the EXE which explains the misc. settings for most of the game's objects. It was probably used to aid the developers when building the level layouts, and can help us understand what each of them does too. If you search for "OBJECT" as text in the EXE in a hex editor you will find it
These settings are defined in the Misc. Section Entries:
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 | 0x20 | Notes |
---|---|---|---|---|---|---|---|---|---|---|
00 | 01 - Spring | Strength (float) | Control time (first word) | |||||||
00 | 02 - Triple Spring | Strenght (float) | Scale | Control time (first word) Item (second word) |
||||||
00 | 03 - Ring | Related to placing in lines/circles Will check debug data for info later |
Lenght of line (float) | |||||||
00 | 04 - Hint Ring | Line to play (first word) | Has setting to disappear with a switch | |||||||
00 | 05 - Switch | Has many settings | ||||||||
00 | 07 - Target Switch | First byte sets item type Third byte sets link ID |
||||||||
00 | 0B - Dash Panel | Speed (float) | Control time (first word) | |||||||
00 | 0C - Dash Ring | Speed (float) | Control time (first word) | |||||||
00 | 0D - Rainbow Hoops | Has similar settings to the dash ring, plus settings for ring position and distance | ||||||||
00 | 0E - Checkpoint | Has settings for priority ID | ||||||||
00 | 10 - Cannon | Has settings for elevation, pitch, strength and control time for each formation | ||||||||
00 | 18 - Item Box | First byte sets item type | ||||||||
00 | 19 - Item Balloon | First byte sets item type | Scale (float) | |||||||
00 | 25 - Formation Sign | Formation (byte) | ||||||||
00 | 26 - Formation Change Gate | Formation (byte) | Width offset (float) | Height offset (float) | ||||||
00 | 2E - Fan | Has settings for: fan scale, height for Triangle Dive, height for others, start on/off, wind scale, whether the fan itself is rendered | ||||||||
00 | 31 - Cage (opened by switch) | Formation (byte) | Width (float) | Width multiplier (float) (verify) | Has settings for scale and direction | |||||
05 | 86 - Giant Casino Chip | Scale (float) | Type (long) | Speed (long) |
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
Egg Pawn Settings
List: 15
Object: 10
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
0x04
First byte: Start Type
- 00 - Asleep
- 01 - Walking
- 02 - Stopped
- 04 - Warp
Third byte: Weapon Type
- 00 - None
- 01 - Lance
- 02 - Laser Cannon
- 03 - M-Gun 90
- 04 - M-Gun 120
- 05 - M-Gun 150
- 06 - M-Gun 180
Fourth Byte: Shield Type
- 00 - None
- 01 - Concrete Shield
- 02 - Solid Shield
- 03 - Spike Shield
0x08
Second byte: Distance from which robot can see you
0x0C: ?
0x10: Warp height
0x14: ?
0x18: Shot speed
0x1C Fourth byte: ?