Skip to content

About

An unofficial PC port of the Xbox 360 version of Sonic the Hedgehog (2006) created through the process of static recompilation

Topics

Resources

Contributing

Stars

861 stars

Watchers

70 watching

Forks

Repository files navigation


Marathon Recompiled is an unofficial PC port of the Xbox 360 version of Sonic the Hedgehog (2006) created through the process of static recompilation. The port offers Windows, Linux, and macOS support.

This project does not include any game assets. You must provide the files from your own legally acquired copy of the game to install or build Marathon Recompiled.

XenonRecomp and XenosRecomp are the main recompilers used for converting the game's original PowerPC code and Xenos shaders into compatible C++ and HLSL code respectively. The development of these recompilers was directly inspired by N64: Recompiled, which was used to create Zelda 64: Recompiled.

Table of Contents

Minimum System Requirements

  • CPU:
    • x86: 64-bit CPU with support for the AVX instruction set
      • Intel: Sandy Bridge (Intel Core 2nd Generation)
      • AMD: Bulldozer (AMD FX series)
    • ARM: 64-bit ARMv8 CPU
  • GPU with support for Direct3D 12.0 (Shader Model 6), Vulkan 1.2, or Metal 3:
    • NVIDIA: GeForce GT 630 (Kepler)
    • AMD: Radeon HD 7750 (2012, not the RX 7000)
    • Intel: HD Graphics 510 (Skylake)
    • Apple: M1
  • Memory:
    • 8 GB minimum
  • Operating System:
    • Windows 10 (version 1909)
    • A modern Linux distro such as Ubuntu 26.04 LTS
    • macOS 15.0 or newer
  • Storage: 6 GiB required

How to Install

  1. You must have access to the following:

    • For dumping from a real Xbox 360:
      • Xbox 360 (modifications not necessary)
      • Xbox 360 Storage Device (either an Xbox 360 hard drive or an external USB storage device)
      • Xbox 360 Hard Drive Transfer Cable or a compatible SATA to USB adapter (only required for dumping from an Xbox 360 hard drive)
    • For dumping on your PC:
    • Sonic the Hedgehog (2006) for Xbox 360
      • Retail Disc or Digital Copy.
      • All available DLC are optional.

Tip

If you do not have the Xbox 360 Hard Drive Transfer Cable, please ensure that you purchase the correct revision of it for your console.

The latest revision works with both original Xbox 360 and Xbox 360 S|E hard drives, but the first revision only works with original Xbox 360 hard drives.

To know which is which, the first revision cable is gray, whereas the latest revision (which supports any Xbox 360 hard drive) is black.

  1. Before proceeding with the installation, make sure to follow the guide on how to acquire the game files from your Xbox 360.

    • Xbox 360 Hard Drive Dumping Guide
    • Xbox 360 USB Dumping Guide
    • OmniDrive Disc Dumping Guide
  2. Download the latest release of Marathon Recompiled and extract it to where you'd like the game to be installed.

  3. Run the executable and you will be guided through the installation process. You will be asked to provide the files you acquired in the previous step. When presented with options for how to do this:

    • Add Files will only allow you to provide containers or images dumped from an Xbox 360. These often come in the form of very large files without associated extensions. Don't worry if you're not aware of what's inside of them, the installer will automatically detect what type of content is inside the container.

    • Add Folder will only allow you to provide a directory with the game's raw files corresponding to the piece of content that is requested. It will NOT scan your folder for compatible content!

Note

Please note that it is not possible to complete the installation if your files have been modified. In case of other problems such as black screens or crashes, do not try to reinstall the game as it is not possible for the process to result in an invalid installation.

Known Issues

Before reporting any issues, check if they are listed here.

Original Game Bugs

Game bugs present on the original hardware are intentionally preserved and will not be fixed apart from a few minor visual patches that do not affect gameplay. Please do not report issues for these bugs and verify that the issue does not occur on original hardware before reporting. Bug reports for issues found in the original game will be rejected. Bugs that only happen in Marathon Recompiled must be accompanied by footage captured on original Xbox 360 hardware showing that the bug does not happen there.

Marathon Recompiled contains many patches for original game bugs and other annoyances that can be optionally enabled in the configuration file (see below) or by accessing the debug settings.

Debug settings access combination

On the title screen press the following sequence on the D-Pad or arrow keys:

  • Up, Down, Left, Right

A jingle will play, and a new section will reveal itself in the Options menu.

File Picker Unavailable on Steam Deck in Game Mode

Due to some restrictions of how the desktop environment on the Steam Deck works whilst in Game Mode, please note that you may need to at least first boot into Desktop Mode to be able to use the file picker to provide the game files.

Simply booting at least once in Desktop Mode will enable the Deck to use the file picker when going back to Game Mode. You can complete the entire installation process while in Desktop Mode to save yourself the trouble of browsing through Game Mode if necessary.

FAQ

Do you have a website?

Marathon Recompiled does not have an official website.

Please link here when directing anyone to the project.

Caution

Do not download builds of Marathon Recompiled from anywhere but our Releases page.

We will never distribute builds on other websites, via Discord servers or via third-party update tools.

Why does the installer say my files are invalid?

The installer may display this error for several reasons. Please check the following to ensure your files are valid:

  • Please read the How to Install section and make sure you've acquired all of the necessary files correctly.

  • Verify that you're not trying to add compressed files such as .zip, .7z, .rar or other formats.

  • Only use the Add Folder option if you're sure you have a directory with the content's files already extracted, which means it'll only contain files like .xex, .ar.00, .arl and others. This option will not scan your folder for compatible content.

  • Ensure that the files you've acquired correspond to the same region. Discs and Title Updates from different regions can't be used together and will fail to generate a patch.

  • The installer will only accept original and unmodified files. Do not attempt to provide modified files to the installer.

What are the keyboard and mouse bindings?

Gamepad Keyboard Mouse
A Space
B Escape
X Left Shift Left Click
Y E
D-Pad Up Up Arrow Wheel Up
D-Pad Down Down Arrow Wheel Down
D-Pad Left Left Arrow X1
D-Pad Right Right Arrow X2
Start Return
Back Backspace
Left Trigger Q Middle Click
Right Trigger F Right Click
Left Shoulder
Right Shoulder
Left Stick Click
Left Stick Up W
Left Stick Down S
Left Stick Left A
Left Stick Right D
Right Stick Click
Right Stick Up
Right Stick Down
Right Stick Left
Right Stick Right

You can change the keyboard bindings by editing config.toml located in the configuration directory, although using a controller is encouraged until Action Remapping is added in a future update.

Refer to the left column of this enum template for a list of valid keys, and this one for a list of valid mouse buttons.

Where is the save data and configuration file stored?

The save data and configuration files are stored at the following locations:

  • Windows: %APPDATA%\MarathonRecomp\
  • Linux: $XDG_CONFIG_HOME/MarathonRecomp/. For the Flatpak version, this is: ~/.var/app/io.github.sonicnext_dev.marathonrecomp/config/MarathonRecomp/
  • macOS: ~/Library/Application Support/MarathonRecomp/

You will find the save data under the save folder. The configuration file is named config.toml.

I want to update the game. How can I avoid losing my save data? Do I need to reinstall the game?

Updating the game can be done by simply copying and replacing the files from a release on top of your existing installation. Your save data and configuration will not be lost. You won't need to reinstall the game, as the game files will always remain the same across versions of Marathon Recompiled.

How can I force the game to store the save data and configuration in the installation folder?

You can make the game ignore the default configuration paths and force it to save everything in the installation directory by creating an empty portable.txt file. You are directly responsible for the safekeeping of your save data and configuration if you choose this option.

How can I force the game to run the installation again?

While it's unlikely you'll need to do this unless you've modified your game files by accident, you can force the installer to run again by using the launch argument: --install.

How can I force the game to run under X11 or Wayland?

Use either of the following arguments to force SDL to run under the video driver you want:

  • X11: --sdl-video-driver x11
  • Wayland: --sdl-video-driver wayland

The second argument will be passed directly to SDL as a hint to try to initialize the game with your preferred option.

Where is the game data for the Flatpak version installed?

Given it is not possible to run the game where the Flatpak is stored, the game data will be installed to ~/.var/app/io.github.sonicnext_dev.marathonrecomp/data. The Flatpak build will only recognize this directory as valid. Feel free to reuse this data directory with a native Linux build if you wish to switch in the future.

If you wish to move this data to another location, you can do so by creating a symlink from this directory to the one where you'll migrate your installation to.

Warning

Using external frame rate limiters or performance overlays may degrade performance or have negative consequences.

Can I install the game with a PlayStation 3 copy?

You cannot use the files from the PlayStation 3 version of the game. Supporting these files would require an entirely new recompilation, as they have proprietary formatting that only works on PS3 and the code for these formats is only present in that version. All significant differences present in the PS3 version of the game have been included in this project as options.

Why is the game detecting my PlayStation controller as an Xbox controller?

If you're using a third-party input translation layer (such as DS4Windows or Steam Input), it is recommended that you disable these for full controller support.

What other platforms will be supported?

This project does not plan to support any more platforms other than Windows, Linux and macOS at the moment. Any contributors who wish to support more platforms should do so through a fork.

Building

Check out the building instructions here.

Credits

Marathon Recompiled

  • ga2mer: Creator of the recompilation, laying the initial foundation for the project. Other responsibilities include maintaining the audio backend and providing various patches for the game.

  • IsaacMarovitz: Graphics Programmer for the recompilation. Other responsibilities include maintaining macOS support and aiding in porting mod manager patches to the recompilation.

  • squidbus: Graphics Programmer for the recompilation. Aided in researching the game's internals.

  • Hyper: Developer of system level features, such as achievement support and the custom menus, alongside various other patches and features to make the game feel right at home on modern systems. Aided in researching the game's internals.

  • Rei-san: Developer of quality of life patches and extensive amounts of research into the game's internals.

  • Desko: Aided in researching the game's internals and created many quality of life patches for the original game used by the recompilation.

  • LJSTAR: Artist behind the project logo. Provided French localization for the custom menus.

  • brianuuuSonic: Provided Japanese localization for the custom menus.

  • Kitzuku: Provided German localization for the options menu.

  • Ray Vassos: Provided German localization for the achievements menu.

  • DaGuAr: Provided Spanish localization for the custom menus.

  • NextinHKRY: Provided Italian localization for the custom menus.

  • Hotline Sehwani & SilverIceSound: Produced the installer music (original prod. by Tomoya Ohtani).

Special Thanks

  • Unleashed Recompiled Development Team: Created much of the ground work that made all of this possible and sped up development time considerably.

  • Skyth: Provided graphics consultation and support for dynamic aspect ratio.

  • Darío: Creator of the graphics hardware abstraction layer plume, used by the project's graphics backend.

  • Syko: Aided in identifying fonts used by the original SonicNext logo.

  • ocornut: Creator of Dear ImGui, which is used as the backbone of the custom menus.

  • Raymond Chen: Useful resources on Windows application development with his blog "The Old New Thing".

About

An unofficial PC port of the Xbox 360 version of Sonic the Hedgehog (2006) created through the process of static recompilation

Topics

Resources

Contributing

Stars

861 stars

Watchers

70 watching

Forks

Releases

Packages

Used by

Contributors

Languages