Skip to content
asylumexpPublic

About

Run a PS4 game backup inside SWRR on PS5 through Luac0re, without a kernel exploit (tooling only, no game files)

Resources

Stars

29 stars

Watchers

0 watching

Forks

Latest commit

 

History

104 Commits

Folders and files

Repository files navigation

ghostldr

ghostldr runs PS4 game dumps and OpenOrbis homebrew inside Star Wars Racer Revenge (SWRR) on a stock PS5. It uses Luac0re's userland JIT exploit: no kernel exploit, no jailbreak.

You need a PS5 with SWRR (US CUSA03474 or EU CUSA03492) and Luac0re 2.4b, your own game dump, an exFAT USB drive (recommended; installing into SWRR's saved data needs none), and a computer with Python 3.11+. No game files are included.

Ghost of Tsushima running inside SWRR on a stock PS5 (click for the full video)

Full demo, 3½ minutes (MP4): from Luac0re's loader to Ghost's gameplay.

What works

  • Games run from a USB drive plugged into the PS5: no install step, and they load faster than installed ones (docs/usb.md). This is the recommended way. Games can also be installed into SWRR's saved data instead, with no drive.
  • Ghost of Tsushima v2.18 (CUSA11456) plays. It is the most tested title.
  • Bloodborne 1.09 (CUSA00900) reaches gameplay, with its large executable spread over several JIT buffers and no memory plan yet.
  • OpenOrbis homebrew runs (details).
  • An FTP server on the PS5 while a game runs, to put more games onto the drive in it (docs/ftp.md).
  • Other games boot as far as their imports and memory allow.
  • PS4 consoles are experimental: no title has booted on one yet (docs/ps4.md).
  • Jak X instead of SWRR (EU CUSA07992 1.04, with UltraC0re) is experimental: Ghost plays there, in its PS4 Pro mode, from its own install in Jak X's save data (docs/jakx.md).

Getting started

Download the latest release and follow docs/using-the-release.md.

Prefer not to use a terminal? The desktop app walks through the same steps: find the console, check the setup, copy a game to a USB drive (or install it into SWRR's saved data), and play. The release page has an installer for macOS, Windows and Linux with Python included, and the release zip has it in app/ (with Python 3.11+).

Quick start, from the release folder: start Luac0re in SWRR until its loader listens on port 9026, then check the setup.

python3 ghostldr/host/run.py doctor

Copy your dump to an exFAT USB drive plugged into the computer (here mounted at /Volumes/MYDRIVE):

python3 ghostldr/host/gfs_pack.py --src /path/to/app0 --usb /Volumes/MYDRIVE

Plug the drive into the PS5, restart SWRR, start Luac0re again, and boot:

python3 ghostldr/host/run.py boot --app-root usb:/ghostldr --no-build

No drive? Install the game into SWRR's saved data instead, once per title (about 40 minutes for Ghost), from the SWRR region you will play in:

python3 ghostldr/host/gfs_pack.py --src /path/to/app0
python3 ghostldr/host/gfs_install.py

Then restart SWRR, start Luac0re again, and boot with python3 ghostldr/host/run.py boot --no-build.

The computer's firewall must let Python receive on UDP 18194 and TCP 18195–18196.

Documentation

  • Using the release: download to gameplay, step by step.
  • USB drives: games on a USB drive, the recommended way.
  • Ghost on a stock PS5: the same from source, with more troubleshooting.
  • Compatibility: other games, homebrew, profiles, reading the log.
  • Game selector: the picker for several games, on a drive or installed.
  • FTP server: the console's files over FTP while a title runs.
  • Web manager: save backup and restore from a browser.
  • Host tooling: run.py doctor, the boot preflight, the stub report.
  • ghostfs: container names and the title catalogue.
  • PS4: status and the diagnostic to run.
  • Jak X: ghostldr in Jak X with UltraC0re, and what differs from SWRR.
  • Architecture: repository layout, the core, host tools, dev setup.
  • Runtime extension: the NID table and HLE families.

Building from source

You need macOS or Linux, Python 3.11+ and LLVM 18 (clang, ld.lld, llvm-objcopy, llvm-nm). Fetch the PS4 symbol names and Luac0re 2.4b into build/:

tools/fetch_deps.sh

Build the core, extension and selector. The default is Homebrew's llvm@18; add LLVM=/path/to/llvm/bin for another.

make -C ghostldr/native

run.py boot without --no-build runs this itself. The tests are described in docs/architecture.md.

License and credits

MIT, see LICENSE. It covers ghostldr's own code only; Luac0re, ps4libdoc and ps5-payload-sdk keep their own licenses. The selector's built-in font is under the SIL Open Font License 1.1 (OFL.txt).

  • Luac0re, by Gezine and contributors (MIT).
  • mast1c0re, by CTurt and McCaulay.
  • PS4 symbol names from idc/ps4libdoc.
  • ps5-payload-sdk, by John Törnblom (dev payloads only).
  • Noto Sans, by the Noto Project Authors (the selector's font).
  • shadPS4, used only as a reference for how system functions behave. No shadPS4 code is included.

About

Run a PS4 game backup inside SWRR on PS5 through Luac0re, without a kernel exploit (tooling only, no game files)

Resources

Stars

29 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages