Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

PS5 emulator in Rust.

CI License Rust Platform PRs welcome Last commit

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.

Build

Rust 1.97 or newer. No other dependencies.

git clone https://github.com/keirsalterego/arielPS5
cd arielPS5
cargo build --release

Cargo.toml has an empty [dependencies] section for the parsing work. Standard library only.

Running

cargo run

Games 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.

Contributing

Pull requests are welcome. A few things that make them easy to merge:

  • Keep the diff focused. One concern per PR.
  • cargo fmt and cargo clippy -- -D warnings should 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.

Special thanks

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

Disclaimer

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.

License

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.

About

An experimental PlayStation 5 emulator written from scratch in Rust. Currently an ELF64 loader.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages