- Depth/stencil: draws that test depth or stencil against a bound surface render with a GPU-only depth/stencil attachment (DepthSurface), cleared to DB_DEPTH_CLEAR/DB_STENCIL_CLEAR when made. Z test/write/function and per face the stencil function, operations and masks (BACKFACE_ENABLE); replacements by another value where Vulkan's single reference can carry them. Clear and copy draws, add/sub other than 1, array or mip views and MSAA throw, and texture reads of a surface's memory are refused. Scaleform menus mask with the stencil (REPLACE 0, ADD_CLAMP, EQUAL); their masked content was skipped before. - Mipmapped color targets render through the resident image of the whole chain with a view of the mip, so mips in the packed tail are drawn too; CB_COLOR_VIEW's mip level is read from bits 26-29 (GFX10). - Color: SNORM targets, UNORM16/SNORM16 exports, one-component formats honouring COMP_SWAP (A8), 32_R/32_GR/32_AR exports, linear rows padded to 256 bytes, BLEND_BYPASS. - INDIRECT_BUFFER jumps are followed when copying a submission; thin 3D textures in display and rotated XOR swizzles; only the bytes the GPU changed are written back; resource registration. - VideoOut: a flip stalls the GPU queue while the flip queue is full and holds the submitter back. - APS5_DUMP_FRAMES_EVERY dumps every k-th presented frame. - The graphics test target builds again (missing sources, a hand-aligned 64 KiB buffer, stale expectations updated) and gains DepthStencilTests. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> |
||
|---|---|---|
| .github | ||
| 3rdparty | ||
| core | ||
| docs | ||
| tools | ||
| .gitignore | ||
| .gitmodules | ||
| CMakeLists.txt | ||
| LICENSE | ||
| README.md | ||
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.
Status
* 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.
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).
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.
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.