AnyPS5 Guides

Build AnyPS5 from source

A reproducible source build starts with submodules and ends with matching libraries.

Reviewed ·

Use a recorded source revision

Install the documented toolchain first. Clone recursively, record git rev-parse HEAD, and keep local patches in a separate branch. A PR number alone does not identify the exact patch tested: commits and conflict resolutions can change.

Terminal / example
git clone --recursive https://github.com/boykopovar/AnyPS5.git
cd AnyPS5
git rev-parse HEAD
cmake -S . -B build -G Ninja -DCMAKE_BUILD_TYPE=Release
cmake --build build --parallel
cmake --build build --target libs --parallel

Do not skip the libraries target

The explicit libs target is required to rebuild replacement system libraries. Copy the produced host libraries from build/core/libs/libs/ into the runtime libs/ folder. Relinker-only builds do not provide a complete runtime. macOS-related relinker options do not establish supported macOS gameplay.

Keep a build that can be reproduced

A source checkout, build directory and runtime directory serve different purposes. Record the source commit and compiler version before configuring CMake. If you merge a testing PR, record its exact commits and any conflict resolution. Rebuild both the executable tools and libs target after source changes, then copy the matching outputs into a fresh runtime directory. Mixing an old relinker with newly built libraries makes a reported result harder to reproduce.

Run relevant upstream tests for the subsystem you changed and preserve failures with the build record. Passing library or relinker tests confirms those test cases, not a playable PS5 title. When a build fails, keep the configure command and the first compiler error; hundreds of later messages can be consequences of one missing dependency or unsupported toolchain. Avoid importing random precompiled submodule libraries into a source build.

Original sources

Related guides