recomp.board

Who’s recompiling what.

Hundreds of games are still waiting for a recomp, while some get started three or four times over. One row per project, a public repo behind every row, activity read from the commits: check here before you pick a game, and put your time where nobody is working yet.

Rows
Recomp
Decomp
Active
Want help
Unclaimed

Loading the table…

Recomp and decomp projects, sortable by column
Expand row Notes

Version (newest release or tag) and Last commit are read from the repo once a day. The dot next to the date: green under 3 months, amber from 3 months, grey from 6. Toolchain is filled in only when the repo names its recompiler or toolkit, or by whoever claims the row. System is the platform the game shipped on (console, computer or arcade); Runs on is where this project's build lands. Status, Runs on, Notes and the maintainer's name are written by whoever claims the row. On an unclaimed row they stay empty rather than guessed. Click a row to expand it.

Rules

  1. 01 / Repo required

    A row needs a public repository that already exists. That keeps the table from filling up with games reserved by people who never start. The URL is checked when the row is added and again every day.

  2. 02 / Silence expires

    Quiet after 3 months without a commit, Dormant after 6, whatever the status. Automatic, no judgement involved. Dormant is not a verdict: read it as “ask before assuming anyone is on this”.

  3. 03 / Recomp and decomp are separate

    Different work, different skills, different timelines. They share the table but never the same column of it. Filter to one and the other disappears.

  4. 04 / Anyone can add, the owner decides

    You can add a row for a project you found, so the table isn’t empty on day one. It lands marked unclaimed, built only from what the repo says. The person who owns that repo can claim it in one message, and a claimed row is then theirs alone to word, untouched by later scans. Until then, anyone may fix its details.

  5. 05 / Duplicates allowed

    Two projects on the same game both get a row. The point is knowing who does what, not stopping anyone from doing it better.

  6. 06 / No ROMs, ever

    No game files, no links to them, no “where do I find it”. Rows carrying one are rejected automatically and removed on sight.

Add a project

Every route ends in the same place: a validated row on the board. Validation, repo check and publishing are automatic. No human queue, nothing waiting on anyone’s attention.

Route A · No account anywhere

Commit a file

Put .recomp-board.json at the root of your own repository, then give the board its address with the one-field manifest form. Your row says what the file says, and editing the file edits the row. Whoever can commit there decides, which is proof enough. On GitHub the file is even found without the form. Any coding assistant can write the file for you.

See the file

Route B · Form

Issue form

For a project that isn’t yours, a correction, or claiming a row. Guided fields, no JSON. A bot checks the repo, writes the row and answers in the issue within a few minutes.

Open the forms
.recomp-board.json, the file that owns your row

Every field is optional and every one of them is yours. Leave a field out and the row stays empty there. Remove the file and the row goes back to unclaimed.

{
  "game": "Wave Race 64",
  "system": "N64",
  "type": "recomp",
  "project": "Wave Race 64 Recompiled",
  "status": "playable",
  "targets": ["PC", "Linux", "Steam Deck"],
  "toolchain": "N64recomp",
  "approach": "Static recompilation, RT64 renderer",
  "maintainers": [{ "name": "yourhandle", "link": "https://your-profile" }],
  "links": [{ "label": "Discord", "url": "https://discord.gg/..." }],
  "help": ["Audio timing", "Controller mapping on Linux"],
  "notes": "What works, what's next, what hurts."
}

Works on GitHub, GitLab, Codeberg and any Gitea or Forgejo instance. The board never writes to your repository, it only reads that one file.

What one row looks like

You fill in seven fields. version, lastCommit and activity are written by the daily refresh, so leave them out.

{
  "id": "mm-zelda64-recompiled",
  "game": "The Legend of Zelda: Majora's Mask",
  "system": "N64",
  "type": "recomp",
  "project": "Zelda 64: Recompiled",
  "status": "released",
  "repo": "https://github.com/Zelda64Recomp/Zelda64Recomp",
  "maintainers": [{ "name": "Wiseguy", "link": "https://github.com/Mr-Wiseguy" }],
  "links": [{ "label": "Discord", "url": "https://discord.gg/..." }],
  "help": ["Controller mapping on Linux"],
  "notes": "One paragraph: what works, what's next, what hurts."
}

Claiming a row someone else added

Commit a .recomp-board.json to your repository, or send the form from the GitHub account that owns it. The row loses its unclaimed mark, only you can edit it from then on, and the periodic scan stops touching it. Deleting the file, or ticking “Release my claim” in the form, hands it back whenever you want.

If you don’t use GitHub

The repo can live on GitLab, Codeberg, sourcehut or your own server. Any public HTTPS repository is accepted, and for the hosts with a public API the commit date and release tag are pulled from there too. Self-hosted repos keep the same row; the daily check confirms the URL still answers, and the commit date is whatever your repo feed reports.

Route A needs no account anywhere: the file is read from your own host. Only the first listing of a repository outside GitHub goes through the form, which needs a free GitHub account, or through the periodic sweep. What’s not accepted is a row with no public code behind it anywhere; that’s rule 01, and it’s the only thing keeping the table honest.

What this is

The problem it fixes

Recomp work is scattered across a dozen Discord servers, a few repos and the occasional Reddit thread. There’s no way to see, before you start, whether someone is six months into the game you just picked. There are thousands of games and not many of us. Overlap is the expensive mistake.

Where the rows come from

Maintainers who post or commit their own row, and a periodic sweep of public repositories, seeded in part by the community catalogues that came before this one. The sweep copies only what a repository states about itself: game, system, kind of work, commit dates, release tags. It never writes a status, a note or a person’s name. Those cells stay empty on an unclaimed row, and a value the repository doesn’t state plainly is checked by hand. Claim your row and it becomes yours to write.

What it isn’t

Not a claim system, not a quality bar, not a launcher. A row reserves nothing, grants nothing and judges nothing. It says only that this person is working on this game, and here is the code. No ROMs, no builds, no links to either.

Terms of use

Free to use

Read the table, search it, link to it, follow the feed, and let an assistant read it for you. Quoting a few rows with a link back to the board is fine.

Not free to copy

Copying the whole table, or a substantial part of it, into another site, list or dataset needs written permission. Each row states public facts about a public repository and those facts belong to no one; what is protected is the collection and the work of finding and checking it. The site’s code is not licensed for reuse.

Yours stays yours

What a maintainer writes in their own .recomp-board.json remains theirs. The board only displays it, and stops the day the file is deleted.