Shadow the Hedgehog
From Sonic Retro
|SCHG: Shadow the Hedgehog|
|Stage ID List|
- .ONEs: the .one files are packages used to hold the textures and individual models. The header lists the one version compressor format, which is "One Ver 0.60" All the .one files all packages that keep textures and models packaged within them.
- .BSPs: Inside the multiple .ONE files in the stg0xxx directories are .PRS files, which contain .BSP files; these contain the level geometry. It seems that the level geometry is stored in numerous .ONE files for each level, except for the test levels.
- .XNCPs: As far as I know, .XNCP files are used to create actions or animations.
- .TXDs: The usual texture pack. They are a different format from Sonic Heroes. All of the textures are kept in this pack.
- .FOGs: I'm actually not sure on what these are. I'm assuming create a fog. A .FOG file is usually in each of the stage folders and don't have much in them. Only 1 line has something on it, but even then it's not even full.
- AudioData .BINs: These keep sound effects for what they may correspond to, such as stages or boss battles.
- .PACs: SFX / voice packs (Thanks to Neo Chaotikal)
- .SFDs: CG scenes/cutscenes.
- .AFSs: Packages to store something, in this case it's voices for the characters.
- .ADXs: Sound such as music or voices.
- .MET: Fonts.
- .BIN: Binary files. Files containing "light"in their name are lighting-data for models on the stage; near-identical to the *light.bin files used in Sonic Heroes.
- character: Where character .ONE files are kept.
- common: This directory holds generic misc. data such as Weapon Resources and Len Flares.
- csdFiles: This is where things to make up the little details of the game, such as HUDs, Loading Screens, 2P Results.
- discError: Where discerror .TXDs are kept.
- enemy: Where enemies' and boss' .ONES are kept.
- event: Where events, such as cutscene actions are kept. Seems to use .ONEs and .SCRs file formats.
- fonts: Where text/fonts are kept.
- sound: Where Audio Data and Sound Effects are kept.
- stafroll: Where the .SRD and the .TXD file that make up the credits/staff roll are kept.
- stg0xxx (stg0005 to stg0911): These are where the files that make up the stages in SHTH are kept. Usually contain .TXD files, .ONE files (which contain .PRS files, which contain .BSP and .TXD files) and .DAT files which in the stage's case make up camera data, however, some have .FOG files.
- Root Directory: where music and other voices are kept. Also where CG cutscenes are kept. Also, there is a stg_cmn_gdt.one file that contains variety of common stage object models.
- HeroesONE can be used to edit .ONE files from Shadow the Hedgehog.
Object Layout Data
Object layouts are contained in various little endian .DAT files located inside each level's folder. They have the following layout:
\\ HEADER (0xC bytes) char \\ file magic "sky2" in ascii int32 \\ amount of objects int32 \\ total lenght of misc. section in bytes \\ OBJECT ENTRY (0x2C bytes) float32 \\ X, Y, Z position float32 \\ X, Y, Z rotation (degrees) uint8 \\ usually 01 uint8 \\ 0x10 for CMN, 0x20 for NRM, 0x40 for HRD, 0x80 for DS1 uint8 \\ usually 00, but 0x40 for DS1 uint8 \\ usually 80 uint8 \\ usually 01 uint8 \\ 0x10 for CMN, 0x20 for NRM, 0x40 for HRD, 0x80 for DS1 uint8 \\ usually 00, but 0x40 for DS1 uint8 \\ usually 00 uint8 \\ object type uint8 \\ object list uint8 \\ link ID uint8 \\ render distance uint32 \\ lenght of misc. entry uint32 \\ null
\\ X, Y and Z positions: location of the object in the world \\ X, Y and Z rotations: angle of the object in the world \\ 8 bytes have unknown function \\ object type: this byte sets which object from the list will be loaded \\ object list: this byte sets which list the object will be chosen from \\ link ID: this is used to link two or more objects together \\ render distance: this multiplier sets from which distance the object starts being rendered \\ lenght of misc. entry: amount of bytes of this object's misc. entry. \\ after that, there is an amount of bytes set in the header with the misc. settings for each object. They are loaded in the same order the objects are laid out in the file.