Data Toolbox - X-Hax/sa_tools GitHub Wiki
Data Toolbox is a set of tools to work with binary files.
Table of Contents
Using Data Toolbox
The main window has a tab cotrol. Each tab is a different tool. The following settings are shared across multiple tools:
- Offset/Data Offset is the number of bytes trimmed from the beginning of the binary file. At the moment it is only needed for the X360 version, where the offset is 0xC800.
- Ninja ASCII is an alternative way to export models and animations (motions and actions) as C structs. It outputs NJA/NAM files like in the Dreamcast SDK.
Binary Data Extractor
This tool lets you extract a single data item (level, model or action) from a binary file.

Addressis the location of the item in the file. TheMemory Addresscheckbox lets you use the memory pointer (key + actual address in the file) instead.
Struct Converter
This tool lets you convert levels, models and animations to C structs. Models and animations can also be exported as Ninja ASCII, and animations can be exported as JSON. You can use drag-and-drop to add files to the list.

Split
This tool lets you extract data from a single binary file based on a template supplied with SA Tools. Select the base template and add files to split. You can use drag-and-drop to add files to the list.

- The
Labelscombo box lets you configure labels in SAModel files:
Address-based labelswill name items by their address, e.g.object_0014AC3Cfor anNJS_OBJECTlocated at 0x0014AC3C.Full labelswill name items using a label database. We have labels for the X360 prototype (SonicApp.exeonly) and partial labels forsonic.exein the 2004 PC port. When labels aren't found in the database, address-based labels will be used instead.No labelswill strip all metadata from the files. This will reduce their size but item names will be based on the item's location in the model file, not the original binary file.
SplitMDL
This tool lets you extract data from SA2/SA2B *MDL and *MTN files.

Scanner
This tool lets you scan through a binary file to find different types of data in it.

- The
Base Gamecombo box sets game-specific settings such as landtable format, reversed color order for SADX Gamecube or Endianness. Start AddressandEnd Addresscan be used if you want to scan a specific section in the file.Skip Metadatawill strip all metadata from the files. This will reduce their size but item names will be based on the item's location in the model file, not the original binary file.- When the
Keep Level Modelscheckbox is checked, the scanner will not delete models found to be part of a Landtable. - When the
Keep Child Modelscheckbox is checked, the scanner will not delete models found to be part of another model. - The
Basic+ Modelscheckbox makes the Basic model scanner look for Basic+ models (SADX PC/SADX X360) instead of regular Basic models (SA1 DC, SADX Gamecube). Simple Scanuses a less strict check to determine whether model data is valid.Short Rotationtreats rotation value in Motions asshortinstead ofint. Some Chao animations use this.- The
Nodesnumberic box lets you set the minimum number of nodes to scan for in motions. Motions with less nodes will be discarded. Set the value to 0 to find all motions. - In
Find Modelmode, the scanner will scan for models similar to the input model. At the moment only Basic and Basic+ models are supported.
See Data Locations on how to find data in binary files.
Label Tool
This tool lets you import and export labels embedded into SAModel files using external .salabel files.

- The
Export Labelsradio button makes the tool save all embedded labels to.salabelfiles. - Cheking the
Erase Internal Labelscheckbox will make the tool clear embedded labels after exporting them. This can be used to reduce the size of SAModel files. - The
Import Labelsradio button overwrites embedded labels in SAModel files with labels found in.salabelfiles. - Checking the
Delete Label Filescheckbox will make the tool remove the.salabelfiles after reading labels from them.
Data Locations
Model Locations in SADX (PC, 2004)
Unlike many other games that store models in special archives or as separate files, Sonic Adventure has levels and models compiled directly into the game's code. This carried over to the ports too, and the file structure is different depending on the version of the game. In the 2004 PC port, the majority of levels and models are in sonic.exe, but some assets are also stored in DLL files in the system folder. If you're looking for something specific you need to know which file it is, so first let's have a look at the file structure.
DLLs in the system Folder
| File | Contents |
|---|---|
ADV00MODELS.DLL |
Station Square level and NPC models |
ADV01MODELS.DLL |
Egg Carrier (outside) level models and objects |
ADV01CMODELS.DLL |
Egg Carrier (inside) level models and objects |
ADV02MODELS.DLL |
Mystic Ruins level models and objects |
ADV03MODELS.DLL |
Mystic Ruins Past level models, objects and NPCs |
BOSSCHAOS0MODELS.DLL |
Chaos 0 boss, Chaos 0 level model and some objects |
CHRMODELS_orig.DLL |
Playable characters |
CHAOSTGGARDEN02MR_DAYTIME.DLL |
Mystic Ruins Garden (Day) level model |
CHAOSTGGARDEN02MR_EVENING.DLL |
Mystic Ruins Garden (Evening) level model |
CHAOSTGGARDEN02MR_NIGHT.DLL |
Mystic Ruins Garden (Night) level model |
Everything else is in sonic.exe.
Model Locations in SA1 (Dreamcast)
The Dreamcast version is a little easier to look through than the PC port because each stage is compiled into a separate binary. Character models, common objects, badniks etc. are located in 1ST_READ.BIN, key 8C010000. Stage-specific objects use the corresponding stage binary.
All binaries except 1ST_READ.BIN are PRS compressed. The following stage files are used:
Action Stages ("STG" Files)
| Filename | Key | Description |
|---|---|---|
| STG00 | C900000 | Hedgehog Hammer |
| STG01 | C900000 | Emerald Coast |
| STG02 | C900000 | Windy Valley |
| STG03 | C900000 | Twinkle Park |
| STG04 | C900000 | Speed Highway |
| STG05 | C900000 | Red Mountain |
| STG06 | C900000 | Sky Deck |
| STG07 | C900000 | Lost World |
| STG08 | C900000 | Ice Cap |
| STG09 | C900000 | Casinopolis |
| STG10 | C900000 | Final Egg |
| STG12 | C900000 | Hot Shelter |
Adventure Fields ("ADV" Files)
| Filename | Key | Description |
|---|---|---|
| ADV00 | C900000 | Station Square |
| ADV0100 | C920000 | Egg Carrier (outside) |
| ADV0130 | C920000 | Egg Carrier (inside) |
| ADV02 | C900000 | Mystic Ruins |
| ADV03 | C900000 | Mystic Ruins (Past) |
Bosses ("B" Files)
| Filename | Key | Description |
|---|---|---|
| B_CHAOS0 | C900000 | Chaos 0 |
| B_CHAOS2 | C900000 | Chaos 2 |
| B_CHAOS4 | C900000 | Chaos 4 |
| B_CHAOS6 | C900000 | Chaos 6 |
| B_CHAOS7 | C900000 | Perfect Chaos |
| B_E101 | C900000 | E-101 Beta |
| B_E101_R | C900000 | E-101 MK II |
| B_EGM1 | C900000 | Egg Hornet |
| B_EGM2 | C900000 | Egg Walker |
| B_EGM3 | C900000 | Egg Viper |
| B_ROBO | C900000 | ZERO |
Chao ("AL" files)
| Filename | Key | Description |
|---|---|---|
| AL_MAIN | C900000 | Chao body and related models |
| AL_RACE | CB80000 | Chao Stadium and Chao Race |
| AL_GARDEN00 | CB80000 | Station Square Garden |
| AL_GARDEN01 | CB80000 | Egg Carrier Garden |
| AL_GARDEN02 | CB80000 | Mystic Ruins Garden |
Other files
| Filename | Key | Description |
|---|---|---|
| ADVERTISE | 8C900000 | Title screen, Super Sonic question mark |
| MINICART | C900000 | Twinkle Circuit |
| SBOARD | C900000 | Sand Hill |
| SHOOTING | C900000 | Sky Chase |
| EV.... | CB80000 | Cutscenes |
| A_MOT | CC00000 | Amys animations |
| B_MOT | CC00000 | Big's animations |
| E_MOT | CC00000 | Gamma's animations |
| K_MOT | CC00000 | Knuckles' animations |
| S_MOT | CC00000 | Sonic's animations |
| S_SBMOT | CB08000 | Snowboard animations (Sonic) |