How aarvsn/ryty works
Ryty ports PS4/PS5 executables into native host binaries. The main workflow is selecting options, resolving a target plan, analyzing and transforming the input, then producing and optionally verifying a target artifact and report. The GUI wraps the CLI; the separate PRX libraries provide guest-facing system APIs, including a substantial graphics-driver and shader-recompilation subsystem. The README documents additional Apple targets, batch operation, and the web studio. Source excerpts are limited, so internal relinker stages and several optional integrations are shown only at the documented level.
Main entry points: RelinkerPipeline.cpp Relinker pipeline · main.cpp Ryty CLI · Driver.hpp AGC driver · ShaderResources.hpp Graphics resources
Components 19
Porting workflow
- Ryty CLI
core/relinker/main.cpp - Porting plan
core/relinker/cli/src/PortOne.cpp - ELF analysis
core/relinker/relinker/src/parsing/ElfReader.cpp - Relinker pipeline
core/relinker/relinker/src/pipeline/RelinkerPipeline.cpp - Instruction lowering
core/relinker/codegen/src/Amd64OnlyConverter.cpp - Target output
core/relinker/elfpatcher/src/apple/AppleImages.cpp - Reports and verify
core/relinker/cli/src/PortOne.cpp
User interfaces
- Qt GUI
app/gui/MainWindow.cpp - Web Studio
Guest runtime
- System PRX libraries
core/libs/prx
Graphics translation
- AGC driver
core/libs/prx/libSceAgcDriver/Execution/include/Driver/Driver.hpp - GPU queues
core/libs/prx/libSceAgcDriver/Execution/src/Driver/Queues/QueueWorker.cpp - Graphics resources
core/libs/prx/libSceAgcDriver/Graphics/include/ShaderResources.hpp - Graphics pipelines
core/libs/prx/libSceAgcDriver/Graphics/src/Pipeline.cpp - Shader recompiler
core/shader/recompiler/Recompiler.cpp - SPIR-V backend
core/shader/recompiler/SpirvBackend/src/SpirvModuleEmitter.cpp - Shader disk cache
core/shader/recompiler/ShaderDiskCache.cpp
Other components
- User
- Host platform
Connections 19
- User → Qt GUI: sets options
- User → Ryty CLI: supplies input
- User → Web Studio: inspects ELF
- Qt GUI → Ryty CLI: launches
- Ryty CLI → Porting plan: resolves options
- Porting plan → Relinker pipeline: selects target
- Relinker pipeline → ELF analysis: analyzes input
- Relinker pipeline → Instruction lowering: lowers instructions
- Relinker pipeline → Target output: produces binary
- Target output → Host platform: targets platform
- Ryty CLI → Reports and verify: reports and verifies
- Relinker pipeline → System PRX libraries: links libraries
- System PRX libraries → AGC driver: provides graphics API
core/libs/prx/libSceAgcDriver/Execution/src/Driver/Queues/QueueWorker.cpp - AGC driver → GPU queues: executes submissions
core/libs/prx/libSceAgcDriver/Execution/src/Driver/Queues/QueueWorker.cpp - AGC driver → Graphics resources: uses graphics resources
- Graphics resources → Graphics pipelines: builds pipelines
- Graphics resources → Shader recompiler: recompiles shaders
core/libs/prx/libSceAgcDriver/Graphics/include/ShaderResources.hpp - Shader recompiler → SPIR-V backend: emits SPIR-V
- Shader recompiler → Shader disk cache: caches shaders