Method

How the ledger is kept

A short account of what is listed, where the numbers come from, and what the labels mean.

What is listed

Public projects that recover source code for a video game: matching decompilations, non-matching decompilations, matching disassemblies, static recompilations, source ports built on a decompilation, and reverse-engineered reimplementations. Each entry is a project for one game on one platform; a game can have several.

Verified and unverified

Verified
The project is publicly hosted, its progress is measured from a machine-readable source (decomp.dev, a frogress endpoint, a progress badge or the repository’s own progress data), and an editor has confirmed the entry.
Unverified
Listed from public claims or descriptions. Progress is not measured, or no editor has confirmed it yet. Treat figures and status as provisional.

Where progress comes from

A daily job reads every linked repository through the GitHub REST API (stars, last push, contributors, licence, archived flag, topics) and looks for progress in this order: the project’s report on decomp.dev, its entry on progress.deco.mp, a progress badge or badge endpoint in its README, and a progress file in the repository. The first source that answers is remembered and used from then on. Code progress is the share of code bytes that match the original build; data progress is the same for data sections, when the project reports it.

Numbers are never typed in by hand from a project’s description. When no machine-readable source exists, the entry says “Not measured” and stays unverified.

Status

PlanningAnnounced or set up, with little or no decompiled code yet.
In progressCode is being decompiled and the project is under active work.
Matching completeThe source builds a byte-identical copy of the original program.
Shiftable / modding-readyCode and data can move without breaking the build, so modding is practical.
PC port availableA native build for modern systems exists, based on the decompiled source.
StalledNo meaningful public activity for a long period.
ArchivedRead-only, discontinued or no longer publicly available.

Approach

Matching decompilationC or C++ that compiles to the exact original machine code with the original compiler.
Non-matching decompilationFunctionally equivalent source that does not reproduce the original binary byte for byte.
Matching disassemblyAnnotated assembly that rebuilds the original program; common for 8 and 16 bit systems.
Static recompilationThe original machine code is translated into native code ahead of time.
Source portA native port built on top of a decompilation of the original game.
Reverse-engineered sourceSource recreated by reverse engineering, often a reimplementation of the original executable.

Open data

The full catalog is available as JSON and CSV under CC BY 4.0, and recent changes are published as an Atom feed.

Corrections

Something wrong or missing? Send a correction. See also the disclaimer.