Retro Porting Toolkit · Bring classic console games to modern hardware

Every repository

Repositories in the fleet, grouped by role, each linked and each attributed to the toolchain it belongs to, plus the dependency map showing which shared component is used by which project.

The fleet includes per-console projects, shared components and game ports. Each one is listed here with its role and the toolchain it belongs to. That attribution is usually the first fact you need, and no single repository states it. For what a console's toolchain does rather than where it lives, read the platform pages.

Three shared components turned up only by resolving relative submodule URLs: m68k-recomp-core, z80-recomp-core and recomp-ui. No listing in the fleet shows them, and nothing else on this site links to them.

Per-console projects

Most of these are a recompiler and a runtime for one machine. A game port is a thin repository on top of one of them. Status wording is each project's own, never upgraded.

RepositoryConsoleWhat it isStatus in its own words
mstan/psxrecompPlayStationMIPS R3000A to C, translating both a BIOS image and the game executable, with disc-streamed overlays captured and compiled at run time"The breadth-first push is essentially done; work now is depth and optimization."
mstan/nesrecompNES6502 to C, plus a C runner library that simulates the PPU, APU, mapper and input"This builds a static library. It does not create a playable game by itself."
mstan/snesrecompSNES65816 to C against a C model of the rest of the console, with an interpreter kept live underneath as the correctness floor"SNESRecomp is alpha software."
mstan/gbarecompGame Boy AdvanceARM7TDMI, both ARM and Thumb, to sharded C++ against a shared GBA hardware runtime"These projects are experimental previews and byproducts of developing the framework."
mstan/segagenesisrecompSega Genesis68000 to native C, with the console's second processor, the Z80 sound CPU, handled by the runnerPer-feature table: 68K frontend "Active", sound Z80 static recompilation "Experimental"
mstan/smsggrecompMaster System, Game GearOne Z80 engine for both machines, the Game Gear being a platform flag rather than a fork"Status: early (v0.0.2) pre-release, expect bugs."
mstan/vbrecompVirtual BoyNEC V810 to C, plus a runtime, a TCP debug server and a Beetle VB oracle harness. No V810 interpreter exists in the project at allThe framework carries no status banner. Its downstream port states "Status: Playable."
mstan/ndsrecompNintendo DSBoth DS processors lifted to C ahead of time and interleaved on one event scheduler"Status: very early pre-alpha (v0.0.1)"
mstan/cdirecompCD-iSCC68070 to C, recompiling and running the console's entire CD-RTOS system ROM rather than stubbing it"Very early development" and "Gameplay is not yet reachable."

Shared components

Separately versioned repositories that other projects consume as git submodules. The first three are the ones no listing shows.

RepositoryWhat it isConsumed by
mstan/m68k-recomp-core"Shared clean-room Motorola 68000-family static-recompiler frontend". A shared decoder, validator and annotation reader, plus two platform profiles, genesis and scc68070. Shipped as a source package, not a library, because it depends on consumer-owned headerssegagenesisrecomp, cdirecomp
mstan/z80-recomp-core"Shared Zilog Z80 static-recompiler runtime contract and verified instruction semantics". The decoder and C emitter still live in smsggrecomp; this is the platform-neutral layer their output consumessegagenesisrecomp, smsggrecomp
mstan/recomp-ui"A shared, console-agnostic launcher and in-game settings UI for static-recompilation game ports." One Dear ImGui core, composed per console from a single profile row58 game ports across eight consoles
TechnicallyComputers/retcomm-rbenginePortable snapshot and rollback helpers used for save states and rewindpsxrecomp
TechnicallyComputers/retcomm-catalogJSON manifests of supported titles, downloaded by the RetComM Launcher independently of app updates. Twelve titles at the time of this survey, all PlayStationThe launcher, over HTTP

Game ports

Each game port is a thin layer over one toolchain: a CMake glue file, per-game recompiler input, a small hand-written runtime shim, a tools/ directory and a README. None of them holds a game file, and none holds the generated C. See Port a game for what that layer contains.

PlayStation, on psxrecomp

Twenty repositories. Eighteen pin psxrecomp as a submodule, at path psxrecomp or psxrecomp-v4.

RepositoryNote
mstan/TombaRecomp
mstan/Tomba2Recomp
mstan/ApeEscapeRecomp
mstan/MegaManX4Recomp
mstan/MegaManX5Recomp
mstan/MegaManX6RecompThe fleet's most heavily modded port, and the reason the mod package system exists
mstan/TsumuLightRecomp
OpokXeno/xenogears-recompPoints both its psxrecomp and its recomp-ui submodules at that owner's own forks
PeriBluGaming/ToyStory2RecompDeclares no submodules. Carries a partial snapshot of the framework and a vendored copy of recomp-ui as a plain tree
Alexbeav/syphon-filter-2-recompiledDeclares no submodules, and ships a setup kit rather than a binary
TechnicallyComputers/MastersOfTerasKasiRecompCarries disc identity requirements in its game.toml
TechnicallyComputers/BombermanPartyEditionRecomp
TechnicallyComputers/Bomberman-World-Recomp
TechnicallyComputers/Bomberman-Fantasy-Race-Recomp
TechnicallyComputers/Klonoa-Door-to-Phantomile
TechnicallyComputers/Marvel-vs.-Capcom-Clash-of-Super-Heroes-Recomp
TechnicallyComputers/Metal-Slug-X-Recomp
TechnicallyComputers/Rampage---Through-Time-Recomp
TechnicallyComputers/Street-Fighter-Alpha-3-Recomp
TechnicallyComputers/TwistedMetal4Recomp

NES, on nesrecomp

Ten repositories, all pinning nesrecomp as a submodule at path nesrecomp.

RepositoryNote
mstan/SuperMarioBrosNESRecompPins a disassembly project as a second submodule, and carries a THIRD-PARTY-LICENSES/ directory
mstan/LegendOfZeldaNESRecomp
mstan/MetroidNESRecomp
mstan/Megaman3NESRecomp
mstan/FaxanaduRecompOne of only two repositories in the whole fleet carrying a MODDING.md
mstan/GumshoeNESRecomp
mstan/DrMarioNesRecomp
mstan/DuckHuntNESRecomp
mstan/YoshiNESRecomp
mstan/YoshisCookieRecomp

SNES, on snesrecomp

Eight repositories. Seven pin snesrecomp as a submodule; one vendors it.

RepositoryNote
mstan/SuperMarioWorldRecompThe most thoroughly documented port in the fleet, and the one that builds two variants from one repository
mstan/MegaManXSNESRecompCommits a runtime coverage manifest and feeds it back into regeneration
mstan/SuperMetroidRecomp
mstan/StarFoxSNESRecomp
mstan/ZeldaAlttPSNESRecomp
mstan/DKC2RecompPoints its snesrecomp and recomp-ui submodules at Nicktendonick forks. MIT at the root over a noncommercial framework
Team-Resurgent/MegaManX-XVendors snesrecomp as a plain tree, and declares recomp-ui in .gitmodules while shipping no gitlink for it, so a clean clone cannot configure

One more SNES repository is in the fleet and is not named or linked here. Its license file says the repository is proprietary, confidential and meant to stay private, so this site holds it back until its owner has been asked. Licenses does the same.

Game Boy Advance, on gbarecomp

Fourteen repositories, all pinning gbarecomp as a submodule at path gbarecomp. Every one of them boots through the real recompiled BIOS, so the user supplies a BIOS dump as well as a cartridge dump.

RepositoryNote
mstan/MinishCapRecompCarries the fleet's canonical baserom.md, quoted on The game file you supply
mstan/MegaManZeroRecomp
mstan/MarioKartSuperCircuitRecompPins a decompilation project as a second submodule
mstan/SuperMarioAdvance2Recomp
mstan/SuperMarioAdvance4Recomp
mstan/WarioWareTwistedRecompPins SDL as an Android build submodule
mstan/EmeraldRecompPins a decompilation project as a second submodule
mstan/FireRedLeafGreenRecompPins a decompilation project as a second submodule
mstan/RubySapphireRecompPins a decompilation project as a second submodule
mstan/DragonBallZBuusFuryRecomp
mstan/DragonBallZLegacyOfGokuRecomp
mstan/DragonBallZLegacyofGokuIIRecomp
mstan/ShrekGBAVideoRecompThe cartridge that needed a 64 MiB mapper the toolchain calls Matrix Memory
Shy/BoktaiRecompPoints its gbarecomp submodule at that owner's own fork

Sega Genesis, on segagenesisrecomp

RepositoryNote
mstan/SonicTheHedgehogRecompThe reference Genesis port. Its README reports "530+ functions" generated and "Zero dispatch misses on GHZ"
mstan/SonicTheHedgehog2RecompHas no runner of its own and reaches through the Sonic 1 repository to get to the submodule. The fleet's most heavily widescreen-configured port, at 46 injection sites
mstan/Sonic3AndKnucklesRecompThree games in one repository as three build modes, because the lock-on cartridge is the two smaller ones combined

Master System and Game Gear, on smsggrecomp

RepositoryNote
mstan/SonicTheHedgehogSMSRecompOne of the two bring-up titles for the toolchain
mstan/SonicBlastGGRecompThe Game Gear half of the same bring-up

Virtual Boy and Nintendo DS

RepositoryConsoleToolchainNote
mstan/MarioTennisVirtualBoyRecompVirtual BoyvbrecompThe only vbrecomp port. Its license is scoped to build glue, CMake wiring and documentation only
mstan/MetroidPrimeHuntersRecompNintendo DSndsrecompThe only ndsrecomp port, and it consumes the framework through an ndsrecomp.pin file rather than a submodule

What consumes what

Some repositories declare no submodules at all. The rest declare at least one, and this table collapses every declaration to one row per shared component. It tells you how far a change to a shared repository reaches.

ComponentConsumersWho
recomp-uiMany gitlinks, plus vendored trees and broken declarationsGame ports on PlayStation, SNES, GBA, NES, Genesis and Virtual Boy
psxrecomp18The PlayStation ports, at path psxrecomp or psxrecomp-v4
gbarecomp14Every Game Boy Advance port
nesrecomp10Every NES port
snesrecomp7 gitlinks plus 1 vendored treeEvery SNES port
segagenesisrecomp3Every Genesis port
m68k-recomp-core2segagenesisrecomp and cdirecomp, both at external/m68k-recomp-core
z80-recomp-core2segagenesisrecomp and smsggrecomp, both at external/z80-recomp-core
smsggrecomp2Both Sega 8-bit ports
vbrecomp1The Virtual Boy port
retcomm-rbengine1psxrecomp, at lib/retcomm-rbengine

A shared component is not the same everywhere it is used. Three details.

recomp-ui is shared in intent and fanned out in practice. Its 55 gitlinks pin 18 different commits. The closest is one commit behind its default branch, the furthest 231 behind. Two consumers point their submodule URL at a fork instead of the original, three suppress status reporting with ignore = all, and three pin a named feature branch.

The two CPU cores are in much better shape. Both z80-recomp-core consumers pin the identical commit, which is that repository's only commit. The two m68k-recomp-core consumers are 14 commits apart on one line of development, with cdirecomp behind rather than forked. Their shared decoder and validator are byte-identical between the two pins. All the drift sits in the Genesis profile, which is the split that repository's README asks for.

A vendored copy inside a game port is not the framework. PeriBluGaming/ToyStory2Recomp and Team-Resurgent/MegaManX-X each carry a partial snapshot of a framework instead of a submodule, including older attribution files that say different things. For any statement about a framework, read the framework repository.

Two repositories that are no longer reachable

TechnicallyComputers/Crash-Team-Racing-Recomp and TechnicallyComputers/Crash-Bash-Recomp are named by game pages elsewhere on this site and no longer resolve. Another repository in the same organisation resolves normally, so this is not a network fault: both have gone private or been deleted. They are not linked here, because a link would send you to a 404. Neither could be read, so nothing here says what they held.

Source