This is where stable builds of Marathon are published; if you're looking for the most reliable experience.
While it can be fun to live on the bleeding edge, GitHub Actions publishes new builds for each new commit, so changes can be unstable.
See the Building page on the wiki.
- Archive
- U8 Archive (
*.arc
) reading and writing
- U8 Archive (
- Audio
- Sound Bank (
*.sbk
) reading and writing
- Sound Bank (
- Event
- Event Playbook (
*.epb
) reading and writing - Time Event (
*.tev
) reading and writing
- Event Playbook (
- Mesh
- Collision (
collision.bin
) reading and writing - Ninja (
*.xna; *.xnd; *.xne; *.xnf; *.xng; *.xni; *.xnm; *.xno; *.xnv
) reading and writing - Path Spline (
*.path
) reading and writing - Reflection Zone (
*.rab
) reading and writing
- Collision (
- Package
- Asset Package (
*.pkg
) reading and writing - Common Package (
Common.bin
) reading and writing - Explosion Package (
Explosion.bin
) reading and writing - Path Package (
PathObj.bin
) reading and writing - Script Package (
ScriptParameter.bin
) reading and writing - Shot Package (
ShotParameter.bin
) reading and writing
- Asset Package (
- Particle
- Particle Container (
*.plc
) reading and writing - Particle Effect Bank (
*.peb
) reading and writing - Particle Generation System (
*.pgs
) reading and writing - Particle Texture Bank (
*.ptb
) reading and writing
- Particle Container (
- Placement
- Set Data (
*.set
) reading and writing - Property Database (
*.prop
) reading and writing
- Set Data (
- Save
- Save Data (
SonicNextSaveData.bin
) reading and writing
- Save Data (
- Script
- Lua Binary (
*.lub
) reading and writing
- Lua Binary (
- Text
- Message Table (
*.mst
) reading and writing - Picture Font (
*.pft
) reading and writing
- Message Table (
Marathon currently doesn't support every format, despite the above list already being pretty large.
The *.at3
format is SONY's proprietary audio format used for the PlayStation 3 version of the game. There are many open-source ways to encode these files.
The *.csb
format is part of the closed-source CriWare audio library; ADX. We have some specifications for this format, as well as the *.cpk
format which contains the actual data, but it's yet to be implemented into Marathon.
The *.ddm
format is a basic container that stores the names of textures per index and all of the texture data that pertains to them in the DirectDraw Surface format. It was supported by Marathon at one point, but only had a reader that exported the textures in a hacky way.
The *.dds
format is for textures - there's no need for Marathon to support this, as there are plenty of image manipulation programs that support it already.
The *.ftm
format contains information pertaining to the Shift-JIS encoding standard and defines the characters used in the font textures. This format is a bit of a nightmare, so not much research has been done on it yet.
The *.fpo
format is the compiled fragment shader format for the PlayStation 3 version of the game. Unlike DirectX, each shader technique in this format is split up into separate files, rather than being in a single shader.
The *.fxo
format is for compiled DirectX shaders - there's no need for Marathon to support this, as there are already disassemblers and compilers for DirectX that are supported by Xbox 360.
The *.hkx
format is part of the closed-source Havok physics library. SONIC THE HEDGEHOG uses Havok 3.3.0-b2, which is conveniently a version of Havok that nobody has outside of development studios.
The *.kbf
format is part of the closed-source Kynapse AI library. This format contains data pertaining to AI behaviour, spatial graphs, Astar
data, FindNearest
data, PathCost
data, path ways and meshes. You can probably see where it gets the name 'big file' from. There has only been minimal research done on this format, as the embedded formats will also have to be researched individually.
The *.mab
format was originally believed to be closely related to particles, since the particles that used meshes were always in this format. However, after digging around the event data for cutscenes, it seems it's also used for timing with various elements (e.g. subtitles, models, etc). The internal assertions for this format refer to it as Acroarts, which is a development environment from CriWare.
The *.mbi
format is a plaintext file containing node definitions for a skeleton. This format hasn't been researched, but the data it represents is all helpfully labelled by whatever internal tool from SEGA exported it.
The *.mdl
format is used by the PlayStation 3 version of the game in place of Ninja models used for terrain. While preliminary research has been done on this format, a lot of the extra data beyond the simple model construction is unknown.
The *.pam
format is SONY's proprietary video format used for the PlayStation 3 version of the game for pre-rendered events. Apparently, this format consists of *.avi
and *.at3
data, but the only encoder available is part of the PlayStation 3 SDK and doesn't allow you to embed audio data in the video.
The *.pfi
format defines the margin and padding per character in a given font map. It was supported by Marathon at one point, but only had a reader and some data wasn't fully researched.
The *.vpo
format is the compiled vertex shader format for the PlayStation 3 version of the game. Unlike DirectX, each shader technique in this format is split up into separate files, rather than being in a single shader.
The *.wmv
format is Microsoft's proprietary Windows Media Video format used for the Xbox 360 version of the game for pre-rendered events. These files can be encoded by pretty much anything, but the audio tracks will need to be kept intact for English and Japanese audio, otherwise the game will either crash or skip the video.
The *.xma
format is Microsoft's proprietary variant of the Windows Media Audio format used for the Xbox 360 version of the game. You can use Xbox 360 SDK Build 3424 to encode these files properly for use with SONIC THE HEDGEHOG.
The Ninja format, particularly for *.xno
files (such as kdv_obj_cage02.xno
) have a NXMT
chunk that is currently unsupported, preventing these files from being fully read by Marathon.
The *.xtm
, *.xto
and *.xtv
formats are leftover plaintext representations of their compiled counterparts as auto-generated C code from a 3ds Max script. These plaintext versions are not supported and aren't used by the game, but they helped with research on the actual compiled Ninja formats, which are supported by Marathon.