AnyPS5 Setup Guides

Practical, platform-specific documentation distilled from upstream usage, build, and input-mapping instructions. These guides describe the supported workflow—not a guarantee that a specific game will run.

Three requirements, often confused

Before Windows or Linux setup, keep these three points clear. Confusing them is the most common reason a conversion “works” but a title still fails.
  • 1. Legal executable input — You provide a clean ELF and any bundled modules you are authorized to use. This site provides none.
  • 2. Correct target output — Use --windows for Windows PE, or the default Linux ELF. Match the PRX library platform to that output.
  • 3. Game-specific coverage — Successfully generating a binary does not mean gameplay, shaders, or all system functions work.

Windows setup

Prebuilt Relinker, Windows PRX libraries, folder layout, PowerShell commands, and frequent pitfalls.

Use official prebuilt binaries to convert compatible, lawfully obtained clean ELF inputs into native Windows executables. This is not a one-click game installer.
You need a Windows x86-64 host, correctly matched AnyPS5 libraries, a Vulkan 1.1 graphics device/driver, and a clean ELF with its bundled modules. The upstream project may not implement APIs required by your title. Windows’ total memory commit limit can also block titles that allocate large direct-memory regions.

1. Download both official components

  • From the Download page, get relinker-v0.1.1.exe and prx-windows-v0.1.1.zip for the same version.
  • Do not mix Windows Relinker output with Linux PRX archives.

2. Prepare the source directory

Place your legally obtained clean ELF next to a sce_module/ or sce_modules/ directory (or prx/ per upstream rules). Example layout:

  • workspace/relinker-v0.1.1.exe
  • workspace/source/input.elf
  • workspace/source/sce_module/<bundled ELF modules>
  • The Relinker errors if both sce_module/ and sce_modules/ exist, or if none of the accepted module directories exist.

3. Generate a Windows executable

Open PowerShell in the workspace and run:

  • .\relinker-v0.1.1.exe --windows source\input.elf app.exe
  • For an Intel host, add --to-intel when you need to translate supported AMD-specific instructions: .\relinker-v0.1.1.exe --windows --to-intel source\input.elf app.exe
  • Do not omit --windows. Naming the file app.exe does not change the default Linux ELF output format.

4. Complete the runtime directory

  • Extract the Windows PRX archive and place host-built system *.prx files under libs/.
  • Keep converted title modules under app0/ as printed by the Relinker, and put authorized application assets in app0/.
  • Windows builds may also need libgcc_s_seh-1.dll, libstdc++-6.dll, and libwinpthread-1.dll from the matching MinGW toolchain near the generated executable.
  • Then try .\app.exe.

Common Windows failure patterns

  • Error 193 (not a valid Win32 application) — often wrong-format files; never put original console .prx binaries into libs/ as Windows host libraries.
  • Unsupported guest TLS instruction — a known conversion limitation on some titles (for example NHL 27 on v0.1.1); switching flags does not universally fix it.
  • Direct-memory backing allocation failed — Windows may fully commit allocated direct memory; close other memory-heavy programs or raise the page file / commit limit.

Linux setup

Native ELF output, runtime file layout, executable permissions, and Linux-specific requirements.

Prepare a native x86-64 Linux output, pair it with Linux-built AnyPS5 libraries, and remember that compatibility remains title-specific. A successful conversion does not prove a title is playable on Linux.
You need an x86-64 Linux system, a working Vulkan 1.1 device/driver, permission to use the input executable, and a clean ELF with its bundled modules. Controller inputs follow SDL mappings; keyboard input is optional via config. Do not confuse Relinker-only macOS build support with Linux game runtime support.

1. Download the Linux release artifacts

  • From the Download page, get relinker-v0.1.1 and prx-linux-v0.1.1.zip for the same version.

2. Arrange source files and relink

  • Layout: relinker-v0.1.1, source/input.elf, and source/sce_module/<bundled modules>.
  • chmod +x ./relinker-v0.1.1
  • ./relinker-v0.1.1 source/input.elf app.elf
  • Linux ELF is the default output. For a supported Intel CPU needing instruction substitution, append --to-intel before the input path.

3. Complete the target runtime layout

  • Place Linux-built AnyPS5 host libraries in libs/, converted title modules under app0/sce_module/ (or the original directory name), and application assets in app0/.
  • chmod +x app.elf then ./app.elf.

4. Understand failures before retrying

  • If dependency resolution fails, confirm the correct system libraries are present.
  • If the program starts but crashes, check standard error.
  • Relinker exit code 2 means conversion failed.
  • An error from a missing runtime API is often a compatibility limitation, not always a setup mistake.

Relinker usage

Commands, platform flags, AMD-to-Intel conversion, input controls, error codes, and import audit.

Basic syntax: relinker [options] <input.elf> <output>. Linux ELF is the default even if the filename ends in .exe. Use --windows for Windows PE. The input must be a clean ELF with bundled ELF modules in supported sibling directories.

Relevant options

OptionPurpose
--windowsGenerate a Windows PE executable.
--to-intelConvert supported AMD-specific instructions for Intel hosts; not universally guaranteed.
--windows-diagnosticsStartup dependency diagnostics; requires Windows output.
--registryEmit import metadata in an adjacent .registry.json file.
--rpath &lt;path&gt;Change runtime host-library lookup from the default $ORIGIN/libs.
--autorunLaunch the generated output after conversion; requires a prepared matching runtime.
unused-filter=0|1|2Control import filtering (no leading --); default 0.

Import audit

Upstream includes a Python 3 script to classify imported functions as implemented, stubbed, absent, or provided by bundled modules. A static audit is not gameplay proof.

  • relinker --registry source/input.elf app.elf
  • python3 tools/import_audit.py app.registry.json --libs build/core/libs/libs --modules source/sce_module

Controllers and keyboard mapping

  • SDL-recognized controllers map to standard PS-style inputs.
  • For keyboard customization, create anyps5-input.ini next to the converted executable (for example Cross = KEY:Space, LeftStickUp = KEY:I).
  • A missing config file is fine (built-in bindings apply). An invalid line can stop input initialization.

Fonts, GPU, and exit codes

  • Titles that need PS5 system fonts may require a local anyps5-fonts/ directory with properly licensed substitutes (upstream lists accepted Noto fonts).
  • AnyPS5 selects the first usable Vulkan 1.1 device and prefers a discrete GPU; set ANYPS5_GPU to pick another detected device by name.
  • Exit codes: 0 conversion succeeded; 1 invalid arguments; 2 conversion failed (details on stderr). With --autorun, the launched app’s exit status may be returned instead.

Build from source

Windows and Linux toolchains, CMake build targets, and the distinction between Relinker-only and full builds.

Compile the Relinker alone for format testing, or build the entire project with host libraries. Know which outcome you actually need.
Relinker-only is not a playable runtime. That mode skips SDL, Vulkan, FFmpeg, FreeType, the shader recompiler, and system libraries. It is useful for developing and testing format conversion, but it does not produce a complete game runtime.

Toolchain (full build)

  • x86-64 host, Git, CMake ≥ 3.22.1, Ninja, C++20.
  • Linux: GCC/G++ and binutils.
  • Windows: documented full-build compiler is MinGW-w64 GCC 15.2.0 with the WinLibs x86_64-ucrt-posix-seh variant; put mingw64/bin on PATH before CMake configuration.

Option A: Relinker-only build

  • cmake -S . -B build-relinker -G Ninja -DCMAKE_BUILD_TYPE=Release -DANYPS5_RELINKER_ONLY=ON -DBUILD_TESTING=ON
  • cmake --build build-relinker --parallel
  • ctest --test-dir build-relinker --output-on-failure
  • This mode supports Linux, Windows, and macOS toolchains for the converter. It does not imply native macOS gaming support.

Option B: Full build with host libraries

  • git submodule update --init --recursive
  • cmake -S . -B build -G Ninja -DCMAKE_BUILD_TYPE=Release -DCMAKE_C_COMPILER=gcc -DCMAKE_CXX_COMPILER=g++
  • cmake --build build --parallel
  • cmake --build build --target libs --parallel
  • The default build step alone does not generate the runtime PRX libraries. On Windows, FFmpeg downloads may need SSL_CERT_FILE pointed at a CA bundle. On Linux, SDL/X11 builds may need X11 and Xext development headers.

Check the original documentation

Build flags and dependencies can change faster than a community guide. Prefer upstream AnyPS5 BUILD.md and docs/user/USAGE.md for the commit you checked out. Match documentation to your checkout rather than examples from unrelated branches.