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>
The param.sfo revert shipped as a 'fix' but online verification shows
Apollo Save Tool's current main (v02.32) still ships ATTRIBUTE=32 /
CATEGORY=gde / --authinfo and is a proven universal PS4 app. So 0/gd
is probably innocent too and the real cause is still unidentified.
This commit stops overclaiming: PKG_ATTR, PKG_CATEGORY and AUTHINFO
are now make variables so either build is one flag away, the Makefile
comment records both the evidence and the counter-evidence, and the
stale 'param.sfo is the cause' claim is corrected.
Also deletes installer/font.h and scripts/genfont.py (2366 dead lines
left over from the reverted SDL reskin) and fixes a wrong deployment
path in build.sh: orbisRPC goes to /data/payloads/ for Payload Guest.
GoldHEN's own single payload slot is /data/payload.bin, a different
thing entirely.
These libs are linked but never referenced anywhere in daemon source.
If the modules don't exist on the target firmware, the ELF fails to
load entirely (no log.txt created) — the reported crash on 9.00/12.50/13.52.
Also scrub the live Discord token leaked into installer config files
and hardcoded fallbacks in installer.c (all now SET_ME).
Closes#2, #7. Fixes packaging mismatch #8 (CATEGORY/ATTRIBUTE/
--authinfo tracked separately).
Co-authored-by: SirHumza <sirhumza>
- tmdb_crypto: self-contained SHA1/HMAC, URL builder, response parse,
all verified against hashlib and Sony's live service in unit tests
- tmdb: plain-HTTP fetch with deadline plus 8-entry cache
- detect: TMDB in both resolve paths; artwork URL plumbed through
detect_last_art into presence assets (official Sony CDN, no uploads)
- remove appdb byte-scan: boundary ambiguity returned wrong names,
worse than raw IDs; also removes the multi-MB game-process read
- discord/daemon: full-URL artwork wins, pack URL next, asset key last
- discord: large_image as <art_base_url><lower titleId>.png when
configured (Discord accepts external URLs in asset fields);
uploaded-asset keys remain as fallback via application_id
- cfg: art_base_url field with load/save support
- scripts/sync_icons.sh: FTP pulls all icon0.png (read-only)
- deploy/ARTWORK.md rewritten around URL-pack-first design
The public Discord gateway rejects OAuth2 access tokens (close 4004),
so v1 could never set presence: switch config to a raw user token and
delete the oauth/http module.
- handle close frames; exit fatal on 4004 instead of looping forever
- fix reversed IPv4 packing in sceNetConnect (wrong host)
- fix SSL_read treating WANT_READ/no-data as disconnect
- keep frame bytes glued to the 101 handshake response (HELLO)
- grow recv buffer for large READY payloads; drain-and-skip >2MB
- mask all client frames incl. control; overflow-safe length checks
- drop RESUME (was dead: connect wiped session_id); fresh IDENTIFY
- clear presence stays online, add elapsed timestamps
- tick gateway every second so heartbeats never land late
- connect backoff 5s..300s; live config reload each cycle
/data/GoldHEN/payloads/ is not an auto-load folder (PPPwn only loads
goldhen.bin; folder auto-load is unimplemented GoldHEN feature #296), so the
ELF payload never ran regardless of reboots. Replace that route with the
GoldHEN plugin loader, which auto-starts into the game process at every boot
via plugins.ini [default] with no PC involvement.
- daemon.c/h: extract the payload main() loop into a shared daemon_run()
usable from both the ELF entry (main.c thin wrapper) and the plugin
- detect.c/h: add detect_name_for_title() for the known-titleid plugin mode
- plugin/plugin.c: plugin_load() reads procInfo.titleid via sys_sdk_proc_info,
skips non-game (NPXS/system) titles, starts daemon thread; plugin_unload()
stops it cleanly
- plugin/Makefile: builds orbisrpc_plugin.prx against the GoldHEN SDK
(libGoldHEN_Hook.a + crtprx.o)
- deploy/SETUP.md: rewrite for the plugin route; add plugins.ini [default]
(plugin/plugins.ini.ps4)
- scripts/build.sh: include daemon.c
GoldHEN's /data/GoldHEN/payloads/ auto-loader takes a raw ELF named .bin.
SETUP.md/README told users to deploy the .fself (or the confusingly named
eboot .bin), which would not load. Deploy orbisrpc.elf as orbisrpc.bin;
rename the fself eboot output to orbisrpc-eboot.bin to avoid the trap.
build.sh defaulted LLD to /usr/local/opt/lld@21/bin/ld.lld which
does not exist (lld 21 is built from source at /Users/mac/lldbuild/
build/bin/ld.lld). Bare ./scripts/build.sh now works with no env vars.
README size claims corrected to 182/188 KiB.