Skip to content

How to use the relinker

Conversion succeeds or fails before a game can start. Gameplay still depends on library and shader coverage.

Unofficial notes. No game files, BIOS, firmware, keys, ROMs, or mirrored builds. Download each project only from its official GitHub repository.

Web converter or local binary

The official README links a web converter on GitHub Pages. Files stay on your device. The v0.1.2 release also ships a local relinker and the host libraries. Prefer those two official entry points. This site does not embed either one.

Command shape

relinker [options] <input.elf> <output>. Linux output is the default even if the output name ends in .exe. Pass --windows for a PE executable. relinker --help prints usage and exits 0. Running it with no arguments prints usage to stderr and exits 1.

Intel and Rosetta

--to-intel rewrites supported AMD-only instructions in the executable and bundled modules. Instructions a game builds at runtime are not converted, so those titles still need an AMD CPU. --to-rosetta implies --to-intel and also lowers a few instructions Rosetta lacks. It conflicts with --windows. --macos writes an x86-64 Mach-O, not a native ARM64 game.

Folder layout

The output expects libs/ for AnyPS5 host libraries and app0/ for the title resources and converted modules. Do not put original console modules in libs/. On Windows that mistake is error 193, because Windows tries to load them as DLLs. A custom --rpath can move the library search path. Quote $ORIGIN so the shell does not expand it.

Controllers, fonts, GPU

SDL gamepads work, including sticks and triggers. Keyboard and mouse bindings live in anyps5-input.ini. The format is in the upstream input-mapping document. Games that ask for system fonts look in anyps5-fonts/ and can use listed Noto substitutes. The first Vulkan 1.1 device with graphics, compute, and a swapchain is chosen, discrete over integrated. ANYPS5_GPU selects another device by a case-insensitive name fragment.

Exit codes

0 means conversion succeeded, or help was printed. 1 means bad arguments. 2 means conversion failed and the reason is on stderr. With --autorun, a successful conversion returns the launched program's exit code instead.

relinker --windows source/input.elf app.exe
relinker source/input.elf app.elf
relinker --windows --to-intel source/input.elf app.exe

Deprecated debug flags such as --skip-sce-module and --lazy-binding are omitted. Upstream says they make output extremely unstable.

Official usage document