CyberMask367andSirHumza e35c47b3f5 upto 13.52 firmware and other fixes and changes
changed game detection logic, resolving retro games and homebrew, new rpc style, custom options in config.json, installer is not fixed yet

Co-Authored-By: SirHumza <204067870+SirHumza@users.noreply.github.com>
2026-10-06 03:06:28 +01:00

orbisRPC

orbisRPC — Discord Rich Presence for PS4 (GoldHEN RPC)

version PS4 GoldHEN Discord no tables

Discord Rich Presence for the jailbroken PS4 — every game, zero setup.
A background daemon that lives entirely on your console and posts what you're playing to Discord: name, cover art, timer. No PC at runtime.


Install (5 minutes)

  1. Grab OrbisRPC-Setup-1.0.0.pkg from the Releases page and install it with Package Installer.
  2. Open orbisRPC Setup. It stages orbisrpc.bin + evict.elf in /data/payloads, writes /data/orbisRPC/config.json, evicts any old daemon, then asks for your Discord token.
  3. Launch orbisrpc from Payload Guest (GoldHEN's payload menu), launch a game, watch Discord.

After a reboot: re-jailbreak, then enable AutoRun for orbisrpc in Payload Guest once — it starts itself on every jailbreak after that. ⚠️Firmware note: Currently tested only on PS4 firmware 9.00. Other firmware versions are not yet confirmed.

What you get

🎮 Any game, no lists Names resolve from your console's metadata (SFO, app.xml) plus Sony's TMDB — CUSA, PPSA, indies, zero per-game setup.
🖼️ Real cover art Game art served per title, PlayStation logo when idle.
⏱️ True timers Survive reconnects and restarts, resume across quick game switches.
🧠 Self-learning First-seen titles are remembered, so later boots resolve instantly.
🔄 Self-updating Daemon updates land from GitHub releases with automatic rollback. No reinstall treadmill.
📦 One-tap installer Setup PKG: install → token → payload in place.

How it works

PS4 (GoldHEN)                              Discord
┌─────────────────────────┐      ┌──────────────────┐
│ orbisRPC daemon         │ TLS  │  your profile    │
│  sandbox scan → game ID │ ◄──► │  Playing Game    │
│  metadata/TMDB → name   │      │  [cover] [timer] │
└─────────────────────────┘      └──────────────────┘

Details: docs/DAEMON.md · docs/INSTALLER.md · docs/TROUBLESHOOTING.md · docs/PRODUCTION.md

Config

Only token (your Discord user session token) is required — /data/orbisRPC/config.json. Everything else ships working.

Key Default Meaning
token — Discord user session token (required)
presence_state "On PS4" Activity state line for games and the home screen
presence_settings_text "In Settings" Activity name while Settings is open
poll_interval_s 12 Detection cadence
home_art project logo Idle tile artwork (URL or uploaded asset key)
pkgzone_enabled true Ask pkg-zone.com for homebrew names — sends the title id to a third party; set false to disable
retro_enabled true Ask the retro-games indexes for PS1/PS2/PSP names and covers
show_firmware true Show the Firmware X.YY line
show_idle true Post a presence on the home screen, Settings and the browser
show_media true Post media apps (Netflix, YouTube, Plex…) as Watching
show_homebrew true Post homebrew titles. Retro classics are not affected
debug false Verbose per-poll logging

A false visibility flag still detects the title — it just stops telling Discord about it, so a game underneath keeps showing. The exception is the home screen: with show_idle off, a game that closes is cleared rather than left up, since nothing is running underneath there.

Plus the self-learned titles map, which fills itself in as titles resolve.

Building

./scripts/build_sdk_from_source.sh   # SDK from git (REQUIRED - see note)
PS4_SDK_SRC=~/ps4-payload-sdk-src \
PS4_PAYLOAD_SDK=~/ps4-payload-sdk ./scripts/build_sdk.sh   # daemon payload
make -f installer/Makefile        # Setup PKG (OpenOrbis toolchain, llvmshim)
make -C tests test                # host unit tests
make -C tests asan                # ASan/UBSan
python3 tests/e2e_consumer.py     # contracts + linkage gate

⚠️ Build the SDK from git, not the release ZIP. The SDK's CRT refuses to start on firmware it does not list, and terminates the payload before main() with no log line. The released SDK (v0.9) lists 13.50 but not 13.52, so a ZIP-built payload cannot boot on 13.52. See findings/sdk-13.52.md.

Safety

A user session token grants full account access — never share the config, never commit a real token. Token-based presence is against Discord's ToS (standard practice for headless presence tools; risk is yours).

License

To be finalized (MIT vs GPL). No GPL source is copied into this tree.

2026-10-09 19:01:03 +02:00
Languages
C 97%
Python 1.3%
Shell 1%
Makefile 0.7%