ran-j/PS2Recomp
Turns PS2 game binaries into portable C++ source, so porters get readable, hackable code instead of an opaque emulator.
The problem
Porting a PS2 title to PC usually means either shipping an emulator (you inherit someone else's CPU and GPU emulation, and every fix lives in that emulator) or hand-decompiling millions of instructions before anything runs. PS2Recomp takes a third path: it statically translates a PS2 ELF into C++ and ships a runtime that executes the generated code, giving you a source tree you can read, patch and extend.
What's different
Emulators such as PCSX2 interpret or JIT guest code at runtime behind a full hardware model; PS2Recomp instead emits one C++ statement per MIPS R5900 instruction, which is deliberately literal and therefore slow but transparent. That differs from N64Recomp, its stated inspiration, mainly in scope: PS2Recomp also carries an R3000A IOP module executor, syscall dispatch, and game-override hooks for per-build patches. The config-driven stubs, skip and address-binding model matters more than the translation itself: it lets you triage a stripped retail ELF by routing unknown calls to generic ret0/ret1 handlers, then promote them to real implementations.
Who it's for
Reverse engineers and porting teams who are comfortable in Ghidra and C++ and own the game they are working on. The README's preferred workflow starts in Ghidra, exports functions with a provided script, and recompiles from that map. It is not for players who want to run a disc image, and not for people hoping for a one-click converter; the runtime's own limitation list says performance is very bad for VU and GS, and much hardware emulation is stubbed.
Cost of adoption
You need CMake 3.20+, a C++20 compiler (the README says it is mostly tested with MSVC), SSE4/AVX host support, and submodules cloned recursively. Every port becomes a C++ project you build and maintain yourself, and per-game patches are tied to specific ELF builds and addresses. The licence is GPL-3.0, which is a real constraint if you plan to ship a closed-source port. The README is unusually explicit that this is experimental and that the runtime is a foundation to build on, not a finished product.
Verdict
The repository is about 18 months old, not yet seen on the daily trending board, and picked up roughly 400 stars in a single month on the C++ monthly board, which reads as a spike of attention rather than a long-established tool. The code is candid about its gaps, which is a good sign for maintainer honesty and a bad sign for anyone expecting a drop-in pipeline. It is worth serious time only if you are already doing PS2 reverse engineering and want a C++ codebase as the output; everyone else should watch it and wait for the GS/VU story to improve.
Written by AI from the project's README, updated October 24, 2026. The project's own docs are the source of truth.