AnyPS5 takes a PS5 executable and turns it into a native Linux or Windows program. Not an emulator wrapped around the game: the output is an ordinary .elf or .exe that your operating system loads and runs like anything else you installed.

It's one of the busiest repositories in the console-preservation scene right now, with tens of thousands of stars and thousands of commits, and it's licensed under the GPL-2.0.

Emulation vs. porting

An emulator pretends to be the console. It simulates the hardware and the operating system every frame while the game runs, and that pretending costs a lot of CPU. AnyPS5 does the work once, ahead of time:

  • It converts the executable into the native format of the target system.
  • It replaces the console's system libraries with native shared libraries that your OS loader links in, the same way any other program pulls in a .so or .dll.
  • It translates the GPU shaders into SPIR-V so they run on Vulkan, and caches the results to disk.

There's no separate runtime process sitting between the game and your hardware. Once converted, it's just a program.

The three moving parts

The relinker. This is the command-line tool you actually run. It reads the executable's imports, checks its system calls, filters out functions the game never uses, converts any bundled modules that ship with it, and writes out a Linux ELF or a Windows PE. An optional --to-intel pass rewrites AMD-only CPU instructions so the result runs on Intel chips too.

The system libraries. PS5 games call into the console's own libraries by numeric ID rather than by name. AnyPS5 reimplements those libraries from scratch as native shared libraries and labels each function with the ID the game expects, so the OS loader can match them up without knowing anything about PlayStation. The project tracks how much of each library it has implemented on its progress page.

The shader recompiler. The PS5's GPU is AMD RDNA, and its shaders are compiled for that hardware. The recompiler decodes them, rebuilds their control flow, converts them to an intermediate form, optimizes it and emits SPIR-V for Vulkan. Compiled shaders are cached in memory and on disk, so the stutter of compiling one only happens the first time.

Where it stands

Early, and honest about it. The compatibility list has one verified game so far: Dreaming Sarah, a 2D platformer, playable on Windows. It holds a steady 60 fps on a GTX 1050 Ti with an i5-7500, and around 36 fps on Intel HD 620 laptop graphics. Linux status for it is still marked unknown.

The project also fails loudly on purpose. Anything it doesn't support yet throws an error, prints what went wrong and exits, rather than limping along with glitches. For a project at this stage that's the right call: crashes with a clear message are much easier to fix than mystery bugs.

Controllers work through SDL, including analog sticks and triggers, and keyboard and mouse can be mapped with an anyps5-input.ini file. The input mapping doc has the format.

Trying it

There are no prebuilt releases yet, so you build it yourself. The build guide covers it, but in short you need:

  • An x86-64 machine with Git, CMake 3.22.1 or newer, Ninja and a C++20 compiler.
  • On Linux, GCC and binutils.
  • On Windows, one specific MinGW-w64 build: WinLibs GCC 15.2.0 (UCRT, POSIX threads). Other compilers aren't supported.
  • A GPU with Vulkan support to actually run the result.

Building produces the relinker plus the replacement system libraries. You point the relinker at a game's executable and pick Linux or Windows output, and it lays out a folder with the converted program, a libs/ directory of system libraries and the game's own resources. The usage guide walks through the options.

The legal part

AnyPS5 ships no games, no console firmware, no encryption keys and none of Sony's libraries. Everything it provides is written from scratch. The project frames itself as an interoperability, research and preservation tool, and it puts the responsibility on you: any game you feed it has to be one you obtained and use legally.

Why it's worth watching

Most console preservation work has meant emulators, and emulators for modern consoles are hard: they need beefy hardware and years of work before anything big runs well. Converting the game into a native program sidesteps a lot of that overhead. It's a long road from one 2D platformer to the rest of the library, but the architecture is clean, the documentation is unusually good for a project this young, and the pace of commits is fast.

If you want to follow along, the GitHub repo is the place to start, and it's in the resource index now. The architecture doc is a good read even if you never build it.

End of transmission.