Actions

SCHG

Sonic Heroes

From Sonic Retro

SCHG: Sonic Heroes
Main Article
Mechanic Editing

DOL Editing
EXE Editing
Music Pointers
Object Parameter Data
Relocatable Editing (PC)
File Offsets

Model Editing
Collision Format
Model Format
Level Editing

Camera Editing
Event Editing
ID list
Indirect Editing
Light Editing
Level List
Object Editing
Object Porting
Spline Editing
Texture Animation Editing
Visibility Editing

Particle Editing
Particle Editing
Sound Editing
Music List

Sound Editing
Voices

SCHG How-Tos

Custom Object Material Effect Tutorial
Level Editing Tutorial

This is the Sonic Community Hacking Guide for Sonic Heroes.

Most of the information in this guide applies only to the PC version, although some of it can be applied to the console vesions as well.
This page is for information that does not fit into another page and does not warrant its own page.

Notice

This is an in-depth, technical overview of mostly documentation regarding various file formats used throughout the game, intended to be useful to actual hackers and programmers.

If you are interested in modding the game using pre-existing tools, consider checking out this tutorial on GameBanana. Also, here you can find an updated level editing tutorial.

If you are an end user, looking to simply play some mods, consider visiting this guide.

File formats

This list is complete.

  • .ARC: Playstation 2 archive files. Contains data for levels and events such as level layout, models, textures, animations and other data.
  • .ADX: Music files.
  • .AFS: A container for audio (voice and speech).
  • .ANM: Renderware Animation data. Usually inside ONEs as compressed PRS files.
  • .BIN: Binary data. Can contain different types of data.
  • .BSP: Renderware binary space partitioning data. It contains models for levels. Usually inside ONEs as compressed PRS files.
  • .CVM: PS2 packed archive. Contains game data such as movies, archives and .ONE archives.
  • .CL: Collision data.
  • .DAT: General data container.
  • .DDS: Image format. Usually located inside TXD containers.
  • .DFF: Renderware model format for objects and characters. Usually inside ONEs as compressed PRS files.
  • .DMA: Renderware delta morph animation data format for objects. Found inside ONEs as compressed PRS files.
  • .DMO: These files apparently contain information for demo playback.
  • .DOL: Gamecube Executable file. Contains main codes for the game, plus other data.
  • .EXE: PC Executable file. Contains most of the code for the game, plus other data.
  • .MTD: Gamecube Material effect data.
  • .ONE: Archive format. Container for many file types, usually compressed PRS files.
  • .PRS: Compression format. Can by any file type.
  • .REL: Relocatable module files. They contain code and other data that is not in the EXE or DOL. See Relocatable Editing for editing this type of mechanic for the PC port of the game.
  • .SFD: Video format.
  • .SPL: Renderware spline.
  • .SCR: Script files for events such as cutscenes.
  • .TMB: Cutscene camera data.
  • .TPL: Gamecube icon textures.
  • .TXC: Stores texture animations for stage geometry especially objects.
  • .TXD: Renderware texture archive. Contains .DDS files.
  • .UVB: Renderware UV animation data for objects. Found inside ONEs as compressed PRS files.
  • .XBE: Same as with EXE, but is an Xbox executable.

Binary File Types

  • *_blk.bin: These files contain visibility data. They set which sections and models of the level (loaded from the .ONE file) are visible from each area, allowing the game to increase performance and load decoration which is only visible from certain areas. See Visibility Editing.
  • *_cam.bin: Contains camera data. See Camera Editing.
  • *_DB.bin and *_P*.bin: Contains object placement data. See the Object Editing page for more info.
  • *_light.bin: Contains lightning data that is applied to characters. One level can have more than one light type, and different light types can be applied by trigger objects.
  • *_ptcl.bin: Contains information about particles, smoke, glow and other effects. See Particle Editing.

Filesystem

All files required for the game to run (except the EXE and save data) are located inside the dvdroot folder. The name of this folder can be changed by hex editing the EXE.

  • Tsonic_win.exe is the main executable of the PC version.
  • Launcher.exe is the executable which allows you to configure PC only settings, such as resolution and button mapping.
  • dvdroot\ - Most data regarding levels and events is placed in the dvdroot folder.
    • advertise\ - Data regarding main menus is placed in this folder.
      • E\ - Files for English language menus.
      • F\ - Files for French language menus.
      • G\ - Files for German language menus.
      • I\ - Files for Italian language menus.
      • J\ - Files for Japanese language menus.
      • K\ - Files for Korean language menus.
      • S\ - Files for Spanish language menus.
    • bgm\ - ADX music and AFS container is in this folder.
    • collisions\ - .CL files are located here.
    • font\ - Fonts and much of the text of the game are here.
    • movie\ - .SFD files are located here.
    • playmodel\ - Models, textures and animations for all charaters are located here (including Super Sonic and 2P metallic characters)
    • sound\ - .PAC files with sound banks are located here.
    • stgtitle\ - This folder has the loading screen for every level in the game, including an Extra mission and Super Hard mode version for each.
      • mission\ - The text displayed in the loading screen for every mission in every language is located here.
    • text\ - Text for Launcher.exe is contained here, also the Credits text.
    • textures\ - .TXD files for levels and some objects are here. There are many TXDs in other places though, such as inside .ONE archives.

Aside from those files, usually located in \AppData\Roaming\SEGA\SONICHEROES for the user are a sonic_h.ini file which contains data set in Launcher.exe and extensionless SONICHEROES_XX save files, where XX is the save slot number from 00 to 99.

Tools

Tool Author Description Notes
Reloaded II sewer56lol Current solution for loading and managing Sonic Heroes mods.
Phiskit's PhilePatcher Phiskits A file patching tool, designed not only to patch ISO (i.e. Nintendo GameCube), but can patch other executables without manually hex editing everytime to apply, and update pre-made patches. Useful to quickly re-use hacks from earlier edits. If you're creating patches for, or patching a non-ISO, type the source and/or target executable when opening to use/create a patch.
Heroes Power Plant igorseabra4 Level editor which integrates editors for various file types in a 3D view of the stage. Also supports some Shadow the Hedgehog files.
HeroesONE-Reloaded sewer56lol ONE archive editor that improves over the original HeroesONE (Reloaded themed)
Rail Canyon DeadlyFugu Rail Canyon is a stage viewer/editor.
PACTool sewer56lol Viewer of .PAC sound archives for the PC and XBOX version of Sonic Heroes and Shadow the Hedgehog
BrawlCrate soopercool101 Editor for .rel files. Designed for Super Smash Bros. Brawl, but can edit other GameCube relocatables.
rwio plugin for 3ds Max aap Importer and exporter for DFF models. Used mainly by the community to edit character models. Some modification may be needed after importing to properly reexport and not all models are fully supported.
MatFX tool DK22Pac Material effects converter. Useful to edit material effects for models, though it only works for DFF files.
Magic.TXD DK22Pac and The_GTA .TXD archive editor. Fully supports the TXDs for all versions of Sonic Heroes.
TGE's max scripts TGE Importer and exporter for DFF models, although due to differing bone order on import, these will not export correctly without alteration.
Heroes Hint Editor sewer56lol Allows for editing of hint files present in the font folder in order to create custom stage hints.
RW Analyze Viewer for the structure of RenderWare binary files, including .BSP and .DFF. Has minor editing features.
TGE's animation import script TGE Importer for ANM files for 3d animations onto aap's dff imports. While his original script can also import onto his own model script's imports, these do not properly export with Renderware Max/Maya SDK plugins due to bone order differences.
HeroesONE MainMemory ONE archive editor
Heroes SPL Editor igorseabra4 Editor for SPL spline files.
ONE_Unpk and ONE_Pack (info) (77 kB) Lightning Command-line based .ONE unpacker and repacker
PRSDec Auto Nemesis Decompresser for PRS files. You can get it in the PRS page
  • .ANM files for 2d animations cannot be imported TGE's animation import script, but can be made by converting Adobe .SWF files through the Renderware SDK's 2dConvrt.exe. These may need keyframes named based on the original files to work correctly ingame.

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