AnyPS5 README

The project's README from github.com/boykopovar/AnyPS5. As one markdown file: README.md.

About

Tool for automatic executables porting to Linux and Windows.

Includes a relinker that converts executable to the target system's native format and implementations of system prx libraries suitable for dynamic linking. No emulation or separate runtime process.

Usage, Build instructions, Architecture, Technical debt of the project, code style conventions, contributing

Status

libraries shaders

progress map

* System libraries: percentage of the functions known to the project so far (declared in core/libs/prx), not of every PS5 system function. The total grows as more functions are declared.

List of verified games

Dreaming Sarah (2D platformer) runs at a stable 60 fps on a GTX 1050 Ti / i5-7500 3.4GHz.

Unsupported or unexpected states strictly throw std::runtime_error. what() is printed to stderr and the process terminates.

The shader recompiler successfully produces SPIR-V (validated via Spirv-Tools when built with ANYPS5_ENABLE_SPIRV_TOOLS).

Compatibility

See the game compatibility list for tested games and known issues.

Input mapping

SDL-mapped game controllers are supported, including analog sticks and triggers. Keyboard and mouse controls can be configured with an anyps5-input.ini file. See input mapping for the supported devices and configuration format.

Disclaimer

This project is intended for interoperability, research, preservation, and compatibility purposes. It does not include, distribute, or require copyrighted software, firmware, cryptographic keys, or proprietary libraries. Users are responsible for ensuring that any binaries used with this project are obtained and used in accordance with applicable laws and their respective license terms.

License

This project is licensed under the GNU General Public License version 2 only.

AnyPS5 (boykopovar/AnyPS5)

Searching Database…

40.1K ·GitHub
What is this?AnyPS5 is a tool that automatically ports PS5 executables so they run natively on Linux and Windows, without emulation.
Is this an emulator, or does it actually compile PS5 executables into native programs?It is not an emulator. It includes a relinker that converts the PS5 executable into the target system's native format, plus reimplementations of the PS5's system prx libraries for dynamic linking.
How do I build it?You build the relinker and libc.prx implementations from source. The relinker is standard C++20 and builds with any conforming compiler.
What compiler do I need?On Linux, GCC works out of the box. On Windows you currently need MinGW-w64 GCC 15.2.0 specifically, the winlibs-gcc15 x86_64-ucrt-posix-seh build, because the libc.prx code has compiler-specific parts.
Is it ready to use right now?No, there are no releases yet. Execution currently reaches main and the shader recompiler produces valid SPIR-V, with one real game reaching the menu and gameplay with audio, but releases wait for the first fully successful game launch.
Who is this project for?It's aimed at researchers, reverse engineers, and preservationists working on executable porting, not at end users looking to play games today.
Which operating systems does it target?Linux and Windows are the two target platforms for the ported executables.
Does this include any PS5 firmware, keys, or copyrighted files?No. The project explicitly avoids bundling or requiring any copyrighted software, firmware, or proprietary libraries, and it is licensed under GPL-2.0 only.
How far along is execution right now?It reaches the program's main entry point with working exception handling and stack unwinding. A real game has been reported reaching its logo, main menu, and gameplay with audio.
What does the shader recompiler do?It translates the game's shaders into SPIR-V that is validated through SPIR-V-Tools, so they can run on the host system's Vulkan driver.
Why hasn't there been a release yet?The author is holding off on releases until the project reaches the first fully successful launch of at least one game, since the project is still in active research-stage development.
What happens if the relinker hits something it can't handle?Unsupported or unexpected states throw a std::runtime_error, print the error message to stderr, and terminate the process rather than continuing in an unknown state.
Creator
boykopovar
Size
41.2 MB
Stars
40.1K
Age
2mo
Commits · 90 Days