Written from scratch. The goal is to run PS5 games on Windows, Linux, and macOS.
The project is in early development and the focus is on the binary formats and the loader: ELF64 executables, Sony's SELF container, module imports, and the kernel surface a game expects to find. A wrong offset in a header does not produce a glitchy frame, it produces garbage, so accuracy at this layer comes first.
Only PS5 is targeted. For PS4 games, use shadPS4.
Rust 1.97 or newer. No other dependencies.
git clone https://github.com/keirsalterego/arielPS5
cd arielPS5
cargo build --releaseCargo.toml has an empty [dependencies] section for the parsing work.
Standard library only.
cargo runGames have to be dumped from a console you own. This project does not distribute game files, firmware, or the keys to decrypt them, and it will not help you find any of those.
Pull requests are welcome. A few things that make them easy to merge:
- Keep the diff focused. One concern per PR.
cargo fmtandcargo clippy -- -D warningsshould both be clean.- If you are adding a parser, include the input that exercises it.
- No new crate dependencies in the parsing code without discussing it first.
- Open an issue before starting anything large, so two people do not write the same thing twice.
Issues are useful too, especially a correctness bug with the input that triggers it, or a pointer to public documentation and research worth reading.
References read while working on this. None of their code is in here.
- shadPS4 for how a PS4 emulator structures its loader
- SharpEmu for showing the PS5 format work is tractable
- Kyty for early PS4 and PS5 loader research
- RPCS3 for a decade of evidence that these projects are worth starting
- The System V ABI ELF specification and the AMD RDNA2 ISA reference guide
This project does not contain any copyrighted system firmware, game data, decryption keys, or proprietary PlayStation assets, and it never will. Nothing of that kind will be accepted into this repository.
Everything here is written from public documentation and public reverse engineering research. Clean-room reimplementation of a console's system software is legal in most jurisdictions. Redistributing the console's copyrighted code is not, which is why none of it is here.
Not affiliated with, endorsed by, or connected to Sony Interactive Entertainment.
GPL-2.0. See LICENSE.
Chosen to match shadPS4, SharpEmu, and RPCS3 so code can move between these projects in either direction without a license conflict.