📈 GH Trending Explorer 🎲 Surprise me

← all repos

aarvsn / Ryty

git clone https://github.com/aarvsn/Ryty.git v1.0.6 · 3d ago

Tool for porting PlayStation 4 & 5 executables to Windows, MacOS and Linux

—
stars, 24h
—
stars, 7 days
+114
stars, 30 days · #2,022
114
★ total
24
forks · 1 open issues

Star history starts 2026-10-20; the chart appears after the second daily snapshot.

LanguageC++
LicenseGPL-2.0
Created2026-10-03 (17d ago)
Last pushtoday
Watchers1
OwnerUser

GitHub topics

Links

README excerpt
# Ryty
Automatic porting of PlayStation 5 and PlayStation 4 executables to native Linux, Windows,
and experimental macOS binaries.
Ryty includes a relinker that converts the executable to the
target system's native format and implementations of
system PRX libraries suitable for dynamic linking. No
emulation, no separate runtime process: guest code runs as host code.
Ryty is a fork of AnyPS5 - see
authors and acknowledgments.
## Highlights
* **Full AMD SHA extension lowering** - all seven SHA-NI instructions
 (SHA1RNDS4, SHA1NEXTE, SHA1MSG1/2, SHA256RNDS2, SHA256MSG1/2) are lowered
 to SSE2-only stubs, hardware-verified by a 360,360-assertion suite.
* **AMD-only instruction coverage** - RDPRU, MCOMMIT, RDPID (with REX.B),
 PREFETCHW, FEMMS, MONITORX/MWAITX, CLZERO, EXTRQ/INSERTQ and MOVNTSS/SD
 are lowered in place or through out-of-line stubs; short sites absorb
 neighbouring instructions.
* **PlayStation 4 and PlayStation 5 Support** - Auto-detection and explicit console selection (`--ps4`, `--ps5`, `--console auto|ps4|ps5`) to port both PS4 and PS5 executables.
* **Experimental macOS Target with Metal** - `--macos` target support with Objective-C / Objective-C++ Metal API graphics rendering bridge.
* **Qt6 GUI** (`ryty-gui`) on Linux, Windows, and macOS, shipped with the Qt6 runtime
 bundled (self-contained AppImage on Linux, windeployqt DLL set on Windows).
* **JSON porting report** (`--report`) with per-site substitutions, summary
 counters and warnings.
* **Hardened parsing** - `DT_STRSZ`-bounded strings, 8-byte GOT slot
 alignment checks, and a resilient level-1 NID filter that keeps every
 reference when CFG analysis cannot run.
Unsupported or unexpected states strictly throw `std::runtime_error`;
`what()` is printed to stderr and the process terminates.
## Build
The relinker CLI uses only the C++20 standard library.
 [code] 
Qt6 is optional and enables the GUI; without it the build skips the GUI
gracefully (the `linux-release-cli` preset builds and tests exactly that
configuration). Full dependency and toolchain notes, including the Windows
MinGW requirement for the runtime libraries, are in
docs/user/BUILDING.md.
On Intel hosts, pass `--to-intel` to the relinker to lower supported
AMD-only instructions in the executable and bundled `sce_module`/`sce_modules`
PRX files. Unsupported instructions or stub jumps outside the x86-64
relative branch range produce an error.
## GUI
`ryty-gui` wraps the CLI: pick input/output, choose the target system, set
the porting options, watch the colored log and optionally emit the JSON
report. It launches the `ryty` binary from its own directory. Downloads from
CI ship the GUI with every Qt6 file it needs. 
## Continuous integration
A single workflow (`.github/workflows/CI.yml`) builds and tests Linux and
Windows, packages the GUI with its runtime, and attaches both zips to GitHub
releases for `v*` tags. Details: docs/dev/CI.md.
## Documentation
* Documentation index
* Building and usage
* Porting pipeline