ran-j/PS2Recomp

Playstation 2 Static Recompiler & Runtime Tool to make native PC ports

View on GitHub ↗Jump to charts ↓Open shareable report →

Data as of . Signed-in members get hourly updates — create a free account.

Summary Information

Updated 1 hour ago
Added to GitGenius on September 21st, 2026
Created on April 12th, 2025
Open Issues & Pull Requests: 94 (+0)
GitHub issues: Enabled
Number of forks: 136
Total Stargazers: 3,279 (+0)
Total Subscribers: 98 (+0)

Repository Insights (GitGenius)

Median issue/PR response: 25.8 hours
Mean response time: 8.4 days
90th percentile: 22.0 days
Tracked items: 51

How this project is maintained

Roughly one issue in five opened in the past year never receives a reply. 52% of open issues come from outside the core team, a mix of external reports and the maintainers' own roadmap. Work labelled "bug" is answered fastest, typically in about 3 hours, while "runime" waits about 8 days. 64% of issues opened in the past year have been closed, leaving a working backlog. Three people close 93% of everything that gets resolved.

Charts & Analytics

Fetching additional details & charts...

Issue Activity (beta)

Open issues: 23
New in 7 days: 0
Closed in 7 days: 0
Avg open age: 147 days
Stale 30+ days: 22
Stale 90+ days: 12

Recent activity

Opened in 7 days: 0
Closed in 7 days: 0
Comments in 7 days: 0
Events in 7 days: 0

Top labels

  • recompiler (21)
  • runime (20)
  • enhancement (19)
  • bug (14)
  • analyzer (6)
  • question (6)
  • documentation (2)
  • good first issue (1)

Most active issues this week

Sign in to see which issues are moving.
Sign in

Detailed Description

PS2Recomp is a static recompiler that translates PlayStation 2 ELF binaries into C++ code for native PC execution.

The tool addresses the challenge of porting PS2 games to PC by parsing PS2 ELF files, decoding MIPS R5900 instructions, and generating equivalent C++ code that executes on modern hardware. It works through a pipeline of modules: ps2xAnalyzer scans binaries and generates configuration, ps2xRecomp performs the actual instruction-to-C++ translation, ps2xRuntime provides memory management and syscall dispatch, and ps2xIOP handles R3000A IRX execution with a virtual kernel. The translation is literal—each MIPS instruction maps directly to a C++ operation—and supports PS2-specific features like MMI and VU0 macros. The runtime uses relocation symbols to bind function calls when available, falls back to address-based lookup for unresolved jumps, and handles syscalls through encoded immediates or register values.

Adoption suits developers working on PS2 game preservation or porting who have access to game binaries and are willing to invest in configuration and testing. The project provides both a preferred workflow using Ghidra for symbol extraction and a fallback approach for binaries with debug symbols. It requires CMake 3.20 or later, a C++20 compiler (primarily tested with MSVC), and host CPU support for SSE4 or AVX. The tool generates configurable stubs for unimplemented functions, allows selective skipping of code sections, and supports instruction-level patching through TOML configuration.

Development shows active experimentation with recent work on relocation-symbol auto-binding at call sites, generic return handlers for stripped games, and discovery of internal static entry points. The project maintains detailed documentation including a wiki and Ghidra integration instructions, indicating sustained effort toward usability for the reverse-engineering workflow.