1. Identify the failing stage

First determine whether the Relinker failed to produce an executable or whether the converted title failed to start. A Relinker exit code of 1 indicates invalid arguments; 2 indicates conversion failure with details on standard error. Exit code 0 means conversion succeeded, not that gameplay was tested. With --autorun, the launched application's exit status can be returned instead. Official exit codes ↗

2. Relinker errors before launch

Input modules not found or conflicting

Place the clean ELF beside one of sce_module/ or sce_modules/; prx/ is also accepted and may coexist with either. Both sce_module/ and sce_modules/ at once cause an error, as does having none of the accepted module directories.

Wrong output format

On Windows, specify --windows when converting the executable. Simply naming the output app.exe still produces Linux ELF by default. --to-intel converts supported AMD-only instructions, but unsupported instructions may still fail.

For the exact input rules and supported flags, use Relinker command reference or read upstream USAGE.md ↗.

3. Windows startup: error 193, error 126 and memory

Error 193 — not a valid Win32 application

Check whether an original PS5 .prx module was placed in libs/. That directory must contain Windows-hosted AnyPS5 system libraries, not guest modules. Relinker-generated bundled game modules go in app0/.

Error 126 — specified module could not be found

For self-built Windows system libraries, missing libgcc_s_seh-1.dll, libstdc++-6.dll or libwinpthread-1.dll can cause this error even when the .prx exists. Use the DLLs from the matching mingw64/bin beside the required libraries; the official release archives already include these DLLs. The upstream loader does not search PATH for them.

create direct memory backing ...

Windows commits allocated direct memory immediately. Check Task Manager's Committed value and the system commit limit (RAM plus page file). Reduce other committed memory or increase the page file if the limit is too low.

See official runtime troubleshooting details ↗. The Windows installation guide remains the step-by-step setup reference.

4. Linux: /dev/udmabuf permission denied

On Linux drivers that import shared direct memory through /dev/udmabuf, lack of read/write access may print [gpu] open /dev/udmabuf: Permission denied. Those memory ranges are then copied instead of imported; some GPU writes can fail with BDA access failed. Check the device's owner/group and permissions. On distributions that grant access to the kvm group, adding the user to that group and signing in again is the upstream documented approach. This path is driver-dependent and does not describe the proprietary NVIDIA path. Linux memory-import notes ↗

5. GPU selection and missing text

AnyPS5 chooses a Vulkan 1.1-capable device with graphics, compute and presentation, preferring discrete GPUs. Inspect startup Physical device candidate lines and use ANYPS5_GPU with part of the intended device name to select another. If no device matches, startup prints available device names.

If a title uses the console's system font sets, missing fonts may leave its text blank. AnyPS5 reads an anyps5-fonts/ folder beside the generated executable, or a directory named by ANYPS5_SYSTEM_FONTS; the official font section lists supported substitute Noto font filenames.

6. Diagnose missing system function imports

For advanced debugging, the upstream tools/import_audit.py reads Relinker --registry outputs against built .prx libraries and identifies imports as implemented, stub, absent or game module. A static import audit checks loading dependencies; it does not check graphics or gameplay. Review the command-reference example and upstream import audit documentation ↗.

Scope: current upstream main documentation. Some diagnostics or behavior may differ in tagged release v0.1.1. Additional technical limitations ↗