progress.py stores the names of implemented and pending items, can measure another source tree with --root and prints a Markdown diff of two runs with --compare. The Progress report workflow compares every pull request with its base, and Progress comment posts the result as a single comment, updated on every push and removed when progress no longer changes. Commenting runs as a separate workflow_run so pull requests from forks never run with write permissions. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> |
||
|---|---|---|
| .github/workflows | ||
| 3rdparty | ||
| core | ||
| docs | ||
| tools | ||
| .gitignore | ||
| .gitmodules | ||
| CMakeLists.txt | ||
| LICENSE | ||
| README.md | ||
README.md
About
* 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.
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.
Releases will be published after the first full successful launch of at least one game.
Status
Execution reaches _start, stack unwinding and exception handling tables are built, reaches main. 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.
The real game reaches the logo, main menu, and gameplay with audio.
Progress, generated by tools/progress.py on every push to main:
- System libraries*: each block is a prx library sized by its functions; green is implemented, blue still calls
NotImplemented. The total only includes functions already declared in the project, not every function of the PS5 firmware. - GPU shader instructions: each block is an instruction encoding of the AMD RDNA 1 + RDNA 2 instruction list; green is recognized by the shader recompiler.
Technical debt of the project, code style conventions
Build
The relinker uses only the C++20 standard library and should build with any conforming compiler.
libc.prx implementations contain compiler-specific code. Linux builds work with GCC; on Windows, MinGW-w64 GCC 15.2.0 (winlibs-gcc15, x86_64-ucrt-posix-seh) is currently required.
The project targets maximum compiler portability. Support for additional compilers will be addressed after the first successful game launch.
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.