About Decompendium
Decompendium is a directory of matching decompilations: projects whose build reproduces a game's original binary byte for byte. It exists so people can see what already exists for a game before starting something new.
How progress is measured
Every few hours, Decompendium fetches each project's latest report from its own CI. Only successful builds of the default branch count; pull requests and forks are ignored. Numbers are shown as reported, never entered by hand.
- Matched code: bytes of code that compile to exactly the original instructions.
- Fully linked: code in translation units that are complete and linked from source.
- Functions: whole functions that match.
Nothing here is ranked by percentage. Projects differ in size, toolchain and goals, and a number alone doesn't capture that.
Opting out
Every project page has an opt-out link. Maintainers can hide a project from the home page, or remove it entirely within 48 hours.
Decompendium listing policy
Decompendium lists matching decompilations: projects whose build reproduces the original binary byte for byte. Anyone can submit a project. Maintainers can opt out at any time.
1. What counts as matching
A target qualifies when all of these hold:
- The repository’s documented build produces a binary for that target.
- The build compares its output against a published hash (SHA-1, MD5 or stronger) of the original binary, and fails or warns visibly on mismatch.
- The project’s stated goal is a byte-identical rebuild. Undecompiled code may remain as assembly or binary blobs.
- The repository does not contain copyrighted game assets or the original binary. Extracting them from a user-supplied copy at build time is fine.
A project is listed if at least one of its targets qualifies, and only qualifying targets are listed.
Not listed: recompilations (static or dynamic), ports, PC ports built on a decomp, functionally equivalent but non-matching decompilations, and projects that only publish documentation or symbol maps.
2. Listing and opt-out
Anyone can submit a qualifying project; maintainer agreement is not required. Maintainers keep full control over their entry.
- Notification. The approval PR mentions the repo’s maintainers once, by GitHub username. Decompendium never opens issues or PRs on a listed project’s repo.
- Confirmed marker. Entries start with
confirmed: false. When a maintainer submits, edits or confirms the entry, it becomestrueand the project page shows “Maintainer confirmed”. Unconfirmed entries are listed normally. - One-click opt-out. Every project page links to a prefilled opt-out issue
form. A maintainer can choose de-emphasis (
show_in_index: false) or full removal. - Earlier objections count. If a maintainer has said publicly that they do
not want the project tracked, the submission is declined as
opted-out.
A maintainer is anyone with push access to the repository, or an organization member who identifies themselves and is confirmed by a catalog maintainer. Opt-out requests from anyone else are passed to the maintainers.
Removal is carried out within 48 hours, without discussion. It deletes the
catalog entry, the published pages and the stored snapshots. The repo URL is
then added to opted_out in config.yaml, so only a maintainer can bring it
back.
3. Forks and duplicates
A fork or second project for the same game and target is listed only if:
- it targets a version, region or platform no listed project covers, or
- the existing project for that target is archived or has had no commits for 12 months, or
- it uses a materially different toolchain or approach that the existing maintainers acknowledge as separate.
Otherwise the submission is closed as duplicate with a pointer to the
existing project.
4. Neutral ordering
No default view sorts by progress. The home directory sorts by recent activity; game pages list projects oldest first; search sorts by relevance.
5. Maintainer-set labels
| Field | Values |
|---|---|
ai_policy |
unspecified (default), allowed, discouraged, prohibited |
status |
active (default), complete, archived |
show_in_index |
true (default) or false |
“Quiet” (no commits for 180 days) is computed, never set by hand. AI policy labels are maintainer statements; Decompendium does not verify them.
Every listed project appears on its game page, in search, on its own page and
in the API, whatever show_in_index says. show_in_index: false only removes
it from the home directory.