Repository navigation
Reference Projects
Italo Dell Areti edited this page May 18, 2026
·
1 revision
ps1-recomp did not happen in isolation. This page indexes the projects we
studied or use as reference, with a short note on what each one contributes
to our design or implementation.
| Project | Sub-page | Why it matters |
|---|---|---|
| N64Recomp (Wiseguy) | Reference-Projects-N64Recomp | Pioneered the static-recompilation technique for retro consoles. Data-driven instruction tables, Generator abstraction, recomp_context pointer pattern. |
| PS2Recomp (ran-j) | Reference-Projects-PS2Recomp | Direct architectural model: three binaries (Analyzer + Recomp + Runtime), in-tree runtime, TOML config, ps2_runtime_macros.h style. |
| psxrecomp (mstan) | Reference-Projects-PSXRecomp | Reference PS1 static recompiler. Tomba! runs full gameplay (movement + FMV + audio). Source of patterns for SPU ADPCM, XA streaming, fiber-based VBlank, BIOS stubs. |
| c1c (ManDude) | Reference-Projects-c1c | Crash Bandicoot 1 hand-decompilation. Architectural sibling to this project (same srczz/*.h + src/*.cc split). emuptr<T> + EMUGLOBALVAR patterns; conceptual reference for the NS chunk subsystem port. |
| psyz (Xeeynamo) | Reference-Projects-PSY-Z | Matching decompilation of PSY-Q 4.00 and 4.70 with symbol maps. Used to cross-reference and expand our PsyQ signature database. |
| Misc (ps1-bare-metal, ghidra_psx_ldr, psx-spx, DuckStation, decomp.me, Chrono Cross decomp) | Reference-Projects-Misc | Hardware definitions, PsyQ GDT type libraries, the No$PSX specs, the gold-standard PS1 emulator, the matching-decomp community platform, and a PSX matching decomp template. |
| Aspect | ps1-recomp | N64Recomp | PS2Recomp | psxrecomp |
|---|---|---|---|---|
| Module split | 3 binaries | 1 CLI; runtime in separate repo | 3 binaries (in-tree runtime) | 2: Recomp + Runtime |
| HLE strategy | Hash-based PsyQ (3463 sigs) | Manual TOML stubs | Macro lists (~430 entries) | None / per-game CSV |
| Tests | 557 gtest + 8 pytest | Minimal | ~10 files | None |
| Runtime location | In-tree | External repo (N64ModernRuntime) |
In-tree | In-tree |
| Code emission | Single recompiled_out.cpp
|
One .c per function (batchable) |
Configurable | Single _full.c + _dispatch.c
|
| License | GPL v3 | MIT | GPL v3 | PolyForm NC |
These projects are cloned locally (not vendored) for cross-reference. By
convention they live in a sibling PS1Recomp-workspace/ directory:
PS1Recomp-workspace/
├── N64Recomp/ N64 static recompiler
├── PS2Recomp/ PS2 static recompiler
├── psxrecomp/ PS1 static recompiler (Tomba reference)
├── c1c/ Crash Bandicoot 1 hand-decomp
├── psyz/ PSY-Q matching decomp + symbol maps
├── gooc/ GOOL compiler (BSD 2-clause)
├── goocdump/ GOOL decompiles per entity
├── CrashEdit/ Crash editor (C#) — NSF parser, GOOL instructions
├── duckstation/ Reference emulator
├── psx-spx.github.io/ No$PSX specs (Markdown)
├── ghidra_psx_ldr/ Ghidra plugin: PSX loader + PsyQ GDTs
├── ps1-bare-metal/ PS1 hardware register definitions
├── chrono-cross-decomp/ Matching decomp template (PSY-Q)
└── decomp.me/ Web platform for matching decomp
This directory is not a git submodule of ps1-recomp — it is a working
mirror that contributors maintain on their own machines.
ps1-recomp • Licensed under GPL v3 • Current release: v0.1.0-alpha