Repository navigation
Getting Started
This page covers cloning, building, and your first run. For deeper coverage of the contributor workflow see Contributing; for new-game bring-up see Adding a New Game.
| Tool | Minimum |
|---|---|
| CMake | 3.20 |
| C++ compiler | GCC 11 / Clang 13 (C++20) |
| SDL2 | any recent |
| OpenGL | 3.3 |
| Python | 3.8 (for tools/ scripts) |
Ubuntu / Debian:
sudo apt install cmake build-essential libsdl2-dev libgl-devFedora / RHEL:
sudo dnf install cmake gcc-c++ SDL2-devel mesa-libGL-develmacOS (Homebrew):
brew install cmake sdl2git clone --recurse-submodules https://github.com/PS1Recomp/ps1-recomp.git
cd ps1-recomp
cmake -B build -DCMAKE_BUILD_TYPE=Release
cmake --build build -j$(nproc)--recurse-submodules is required — the project uses ELFIO, toml11, fmt and
googletest as git submodules.
All tests and the full pipeline build without any game files. Use
PS1RECOMP_USE_STUB=ON:
cmake -B build -DCMAKE_BUILD_TYPE=Release \
-DPS1RECOMP_USE_STUB=ON \
-DPS1RECOMP_BUILD_TESTS=ON
cmake --build build -j$(nproc)
ctest --test-dir build --output-on-failureThis is the configuration CI runs on every push (557/557 green).
cmake -B build -DCMAKE_BUILD_TYPE=Release -DPS1RECOMP_BUILD_INTERFACE=ON
cmake --build build -j$(nproc)
./build/ps1Interface/ps1InterfaceThe studio opens an ImGui-based explorer for loading ELFs, browsing functions and editing TOML configs before running the full pipeline.
Disc images are not included for legal reasons. You need your own legal copy. The disc path is configured per-game and can point to any folder.
-
Place your disc image anywhere and note the path.
-
Generate a config:
./build/ps1Analyzer/ps1Analyzer \ --disc "/path/to/Rayman (USA).cue" \ --out configs/rayman.toml -
Recompile MIPS to C++:
./build/ps1Recomp/ps1Recomp configs/rayman.toml \ ps1Runtime/src/recompiled_out.cpp -
Rebuild and run:
cmake --build build -j$(nproc) ./build/ps1Runtime/ps1Runtime --config configs/rayman.toml
For Crash Bandicoot 1 the same workflow applies, plus an environment-gated workaround for the boot hang — see the Crash Bandicoot 1 page.
cmake -B build-asan -DPS1RECOMP_ASAN=ON -DCMAKE_BUILD_TYPE=Debug
cmake --build build-asan -j$(nproc)Combines AddressSanitizer + UndefinedBehaviorSanitizer. Used periodically to catch lifetime and signed-overflow bugs.
ctest --test-dir build --output-on-failure -j$(nproc)Single subsystem:
./build/ps1Test/ps1Test --gtest_filter="GpuTest.*"- New to the architecture? Read Architecture.
- Trying a new title? Read Adding a New Game.
- Something hangs? Read Debugging Tips.
ps1-recomp • Licensed under GPL v3 • Current release: v0.1.0-alpha