Actions

Disassemblies

From Sonic Retro

Disassemblies (also called split disassemblies) are reverse-engineered deconstructions of a game's original ROM, created by translating its compiled machine code back into assembly language. In the context of Sonic the Hedgehog games on the Sega Mega Drive/Genesis and its expansions, disassemblies are community-created projects that aim to reconstruct the original game code in a readable and easily editable form. All 4th generation Sonic games use Motorola 68000 assembly.

These projects allow developers to study how the games work internally, modify their behavior, and rebuild bit-perfect ROMs from source. Over time, many disassemblies have been expanded with labels, comments, bug fixes, and optional improvements, making them a standard foundation for modern Sonic ROM hacking.

This page lists all the public disassemblies made by the Sonic hacking community. Some of these are still actively maintained on the Sonic Retro GitHub account, and they are the most up-to-date and accurate disassemblies. Other disassemblies are only listed here for historical purposes and are usually considered obsolete.

Sonic the Hedgehog (16-bit)

The main Sonic 1 disassemblies all support REV00/REV01/REVXB through the Revison assembler flag. Set to 1 by default.

  • Sonic Retro's GitHub account hosts the most up-to-date version of the Sonic 1 disassembly, maintained by the community:
  • Hivebrain 2022 - A heavily expanded 2022 version of the classic 2005 disassembly by Hivebrain, featuring various improvements and more thorough documentation. It targets a modified version of ASM68K known as AXM68K for supporting Z80 macros.
Historical Disassemblies

GitHub

SVN

Revision 00

    • Old Hivebrain 2005 disassemblies:
      • Sonic 1 (Split and Text by Hivebrain) (ASM68K) (info) (457 kB) - A modified version of Hivebrain's split disassembly targeting ASM68K. As a result, it builds much faster, does not need to use an external program for includes (and hence bypasses s1comb.asm), and can be optimized in various ways. The ASM68K branch of the GitHub version of the Sonic 1 disassembly is based on this version.
      • Sonic 1 (Split and Text by Hivebrain) (AS) (info) (1,008 kB) - A modified version of Hivebrain's split disassembly targeting AS. As a result, it does not need to use an external program for includes (and hence bypasses s1comb.asm), and AS-specific features such as functions, nameless temporary labels and improved macro facilities can be used. The GitHub version of the Sonic 1 disassembly is currently based on this version. Build tools for building on non-Windows platforms are available here for Linux and here for Mac.
      • Sonic 1 (Split and Text by Hivebrain) (info) (771 kB) - The original June 2005 release of Hivebrain's Sonic 1 split disassembly. SonED2 project files are available here. It targets SNASM68k. Very well labeled, but because of certain problems with SNASM68k it is recommended to use either the ASM68k version or the AS version of this disassembly (also note that this version doesn't work with any 64-bit OS!).
    • Old drx disassemblies:

Revision 01

Other

Sonic the Hedgehog 2 (8-bit)

Sonic the Hedgehog 2 (16-bit)

Final

The main Sonic 2 disassemblies all support REV00/REV01/REV02 through the gameRevision assembler flag. Set to 1 by default.

Historical Disassemblies

GitHub

    • MapMacros branch - A fork of the Master branch by MainMemory that converts all sprite mappings to a macro format, which has since been merged into the main upstream (although unlike the Sonic 1 disassembly, the branch itself was not deleted).

Revision 00

Revision 01

Revision 02

Nick Arcade prototype

Historical Disassemblies

Simon Wai prototype

Historical Disassemblies

August 21, 1992 "Alpha" prototype

September 14, 1992 "Pre-Beta" prototype

Beta 4

Beta 8

  • The GitHub version has a branch that allows for a complete building of Sonic 2 Beta 8.

Knuckles in Sonic 2

  • The GitHub version has a branch that allows for a complete building of Knuckles in Sonic 2.
Historical Disassemblies

Sonic the Hedgehog CD

  • The GitHub version is the most up to date version, and supports Japanese, European, and American releases. However, it currently does not support all levels.

Sonic the Hedgehog 3

Final

  • The GitHub version of the Sonic & Knuckles disassembly allows building a complete version of Sonic 3, and is the most up to date version.

November 3, 1993 prototype

Sonic & Knuckles

Historical Disassemblies

Sonic 3 & Knuckles

  • The GitHub version of the Sonic & Knuckles disassembly allows building a complete version of Sonic 3 & Knuckles, and is the most up to date version.
Historical Disassemblies

Knuckles' Chaotix

Final

Sonic Crackers

Sonic 3D: Flickies' Island

Sonic Spinball

References