Giter Club home page Giter Club logo

marathon's Introduction


Marathon

A toolkit and library for SONIC THE HEDGEHOG file formats


Releases

GitHub Releases

This is where stable builds of Marathon are published; if you're looking for the most reliable experience.

GitHub Actions

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.

Building

See the Building page on the wiki.

Capabilities

Unsupported

Marathon currently doesn't support every format, despite the above list already being pretty large.

Adaptive Transform Acoustic Coding 3 (ATRAC3)

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.

Cue Sheet Binary

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.

Proprietary Sonic Team texture container

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.

DirectDraw Surface

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.

Font Map

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.

PlayStation 3 Fragment Shader Bytecode

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.

DirectX Shader Bytecode

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.

Havok Collision Data

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.

Kynapse Big File

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.

Proprietary CriWare and Sonic Team property format

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.

Motion Base Information

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.

SOX Model Format

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.

Proprietary SONY video format

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.

Font Proportion

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.

PlayStation 3 Vertex Shader Bytecode

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.

Windows Media Video

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.

Xbox Media Audio

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.

Ninja Morph Type

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.

Ninja Raw

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.

marathon's People

Contributors

awuwunya avatar gerbilsoft avatar hyperbx avatar knuxfan24 avatar radfordhound avatar sajidur78 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

marathon's Issues

Object Placement string writing

When reading, the reader is successfully able to read Japanese characters, but is unable to properly write them, instead writing a question mark in its place.

When reading:
image

After saving and reading the saved file:
image

Modding the Main Menu

Which file contains the information for the main menu of the game? I want to be able to add all the characters to the multiplayer mode, but after examining the wiki I'm not sure which file that is

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.