Step by step

  1. Download and verify the official files

    From the v0.1.1 release on GitHub, download relinker-v0.1.1 (the converter) and prx-linux-v0.1.1.tar.gz (the system libraries; the .zip has the same content). Check both against our download page and make the relinker executable:

    Terminal
    sha256sum relinker-v0.1.1 prx-linux-v0.1.1.tar.gz
    chmod +x relinker-v0.1.1
  2. Create a working folder

    Folder layout before conversion
    ~/anyps5/
    ├── relinker-v0.1.1
    ├── prx-linux-v0.1.1.tar.gz
    └── source/
        ├── eboot.elf        <- the game's main executable (plain ELF)
        └── sce_module/      <- the modules that ship with the game (plain ELF)

    The executable's file name does not matter. v0.1.1 looks for the bundled modules in a folder named sce_module or sce_modules next to the executable. Files still inside a SELF container are rejected: the relinker only accepts plain ELF files.

  3. Convert the executable

    AMD processor
    cd ~/anyps5
    mkdir -p game
    ./relinker-v0.1.1 source/eboot.elf game/app.elf
    Intel processor
    cd ~/anyps5
    mkdir -p game
    ./relinker-v0.1.1 --to-intel source/eboot.elf game/app.elf

    Linux ELF is the default output, so no extra option is needed. --to-intel rewrites the AMD-only instructions it finds in the files; it cannot fix code a game generates while running, so some games only work on AMD processors.

    The relinker also converts the bundled modules, prints each one as a Guest module: line and writes them under game/app0/. Exit code 0 means success, 1 invalid arguments, 2 a failed conversion with the reason printed.

  4. Add the AnyPS5 system libraries

    Terminal
    tar -xzf prx-linux-v0.1.1.tar.gz -C game
    ls game/libs | head

    game/libs now holds the AnyPS5 .prx libraries. Only AnyPS5's libraries belong there, never the game's original modules. A custom --rpath at conversion time would change this location; the default is $ORIGIN/libs.

  5. Add the game's data

    Copy the game's data files into game/app0/, next to the converted sce_module folder:

    Runtime folder
    ~/anyps5/game/
    ├── app.elf
    ├── libs/               <- from prx-linux-v0.1.1.tar.gz: *.prx
    └── app0/
        ├── sce_module/      <- converted modules ("Guest module:" lines)
        └── ...              <- the game's data files
  6. Allow GPU memory sharing

    With Mesa drivers (not the NVIDIA proprietary driver), AnyPS5 shares memory with the GPU through /dev/udmabuf, and your user needs read-write access to it. Many distributions create it as root:kvm with mode 0660:

    Terminal
    ls -l /dev/udmabuf
    sudo usermod -aG kvm "$USER"
    # log out and back in for the group change to apply

    Without access, start-up prints [gpu] open /dev/udmabuf: Permission denied and some GPU writes fail with BDA access failed.

  7. Run it

    Terminal
    cd game
    chmod +x app.elf
    ./app.elf

    When a game reaches something AnyPS5 has not implemented yet, it stops and prints an error that names it. That is expected for most games today; the games list shows how far yours has been reported to get.

Controls

Controllers recognised by SDL work automatically, including DualShock 4 and Xbox pads. For keyboard and mouse, create anyps5-input.ini next to app.elf; see the controls section for the format.

Troubleshooting on Linux

"Permission denied" for /dev/udmabuf

Your user cannot open the device. Add it to the group that owns /dev/udmabuf and log in again. An ACL such as setfacl -m u:$USER:rw /dev/udmabuf also works, but only until the next reboot.

The wrong graphics card is used

Current builds take the first suitable Vulkan device and prefer a dedicated card. The documentation for the main branch adds ANYPS5_GPU to choose another one by part of its name; the names are printed at start-up. This variable may not exist in v0.1.1.

Terminal
ANYPS5_GPU=radeon ./app.elf

The game stops with an error about a function

That function is not implemented in AnyPS5 yet. Look up the game on our games list, search the issues, and share the exact message in Game bring-up if nobody has reported it.

Not verified yet

The official compatibility notes list this as not verified: Linux with Intel GPUs.

Sources: USAGE.md, COMPATIBILITY.md, v0.1.1 argument parser and the release files.