Sonic Retro on GitHub

From Sonic Retro

The Sonic Retro GitHub (an idea originally proposed by Tweaker) allows members to collaborate on projects such as disassemblies and programs. As the name suggests, it uses GitHub to enable multiple members to easily work together on projects of common interest. The repositories are located at, and can be accessed with a Git client or a web browser.

Until January 2012 it used Subversion as a version control system, but this was changed to Mercurial due to technical issues involving software used to support the repostiory (for instance, the web client would not clean up its cache).

In December 2013 the projects were moved to GitHub as Mercurial was also causing problems.

Note: Currently only approved users can gain push access. If you wish to contribute you must ask one of the organization owners (currently FraGag, MainMemory, Andlabs, and SeanieB). Others are free to fork the projects and may send pull requests for consideration for inclusion in the main projects.

Hosted Projects

The repository currently hosts the following projects. Before uploading a new project, post about it in the
Sonic Retro
so it can be decided whether the project merits inclusion.

Knuckles in Sonic 2 disassembly

Puto has uploaded his disassembly of Knuckles in Sonic 2. It is incomplete in the sense that shifting code and data around produces a non-working ROM, and its main use thus far has been porting the Knuckles object contained in it to Sonic 1 and Sonic 2.

Sonic 3D Blast disassembly

The Sonic 3D Blast disassembly in the repository was uploaded by Sik. It is not a complete disassembly, although some major routines, including ones which handle level loading, have been identified and labelled.

Sonic Adventure disassembly

MainMemory uploaded IDBs for a few files, labeled much of the model and level data for the SCHG and his SA1LVL program. These files are here if somebody wants to do a further disassembly, although MainMemory himself has no plans to learn Dreamcast's SH-4 assembly language.

Sonic Adventure DX (PC) disassembly

MainMemory has uploaded his disassembly of Sonic Adventure DX: Director's Cut (PC version) in the repository in June 2010.

Sonic Adventure DX (PC) decompilation

FraGag uploaded this project in January 2011. This project aims to recreate the main executable (sonic.exe) and the several DLLs that make up the Windows port of Sonic Adventure DX: Director's Cut in C and C++.

Sonic Adventure Tools

FraGag uploaded this project in January 2011. This is a set of Visual C# projects providing libraries and utilities that assist in working with Sonic Adventure and its derived games.

Sonic & Knuckles Collection disassembly

MainMemory has uploaded his disassembly of Sonic & Knuckles Collection in the repository in June 2010.

Sonic the Hedgehog disassembly

The Sonic the Hedgehog disassembly on the repository is an updated version of Hivebrain's 2005 disassembly. It is now based on ASM68K, adds symbols for the RAM variables and other constants, as well as macros. Some labels have been replaced with local labels. Also, the code has been split to separate files (only data was split in the previous version) and the ability to switch revisions from the original version to the Japanese Rev01 version has been added using a variable.

Sonic the Hedgehog 2 SMS disassembly

Glitch uploaded his disassembly of the Master System version of Sonic the Hedgehog 2 in February 2009. It can be changed to build the 2.2 version of the game using a variable. One major thing to note that this disassembly uses Z80 ASM instead of the 68K language used in the Sega Mega Drive disassemblies.

Sonic the Hedgehog 2 disassembly

The Sonic the Hedgehog 2 disassembly on the repository is based off Xenowhirl's 2007 disassembly. It was uploaded by Scarred Sun, then FraGag quickly committed some important changes. The disassembly has since been worked on by numerous other contributors. Major additions include a dynamic IDs system which allows entries to be removed from tables such as the game modes array without having to change hardcoded constants throughout the game, a more dynamic way to declare the RAM variables, and the labelling and commenting of numerous routines.


SonicState is a savestate editor written in C# by Delta. It is currently incomplete, although Delta plans to update it.


SonLVL is a level editor for Sonic 2 and Sonic 1 written in C# by MainMemory.


SAModel is a C# library for working with models from Sonic Adventure, Sonic Adventure 2, and their respective ports, and a series of tools using that library.


SADXPCTools is a collection of programs for editing SADXPC.

External links