Commit Graph
7 Commits
Author SHA1 Message Date
SirHumza 51c87ebcc7 track brand logo for README hero 2026-09-25 10:36:09 +02:00
SirHumza d950661f78 WIP: default art pack URL (art works from first boot) 2026-09-23 20:57:24 +02:00
SirHumza de523d3c2e WIP: asset-key art only (URLs drop activities), own app id default, extended nametable 2026-09-23 19:04:13 +02:00
SirHumza 260b9dc8c0 Default art backend to public RPC app assets 2026-09-19 11:24:28 +02:00
SirHumza cdb431cfa6 Names tiers, SFO parser, close-frame/diagnostics hardening
- detect: cost-tiered resolution; plugin path skips multi-MB app.db
  scan (game-process safety); payload tries pronunc, sfo, appxml,
  baked table, then app.db; sfo TITLE via app0/sce_sys paths
- sfo.c: bounds-checked PARAM.SFO parser + unit tests incl malformed
- nametable: generated fallback from title DB + generator script
- discord: malformed close frames reconnect loudly; one-time warning
  when artwork requested but no application_id configured
- ws comments de-BearSSLed; gitignore covers artifacts; drop .DS_Store,
  untrack test binary; README art claim corrected
2026-09-19 01:37:55 +02:00
SirHumza 949240f590 daemon: auth via user session token; fix ws/gateway protocol bugs
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
2026-08-23 11:07:38 +02:00
SirHumza 20c13f1ead feat: PS4RP daemon source + working PS4 build
Full daemon source (C, PS4 native):
- log/cfg/jsonlite/b64: logging, /data/PS4RP/config.json, JSON, base64
- http.c: OAuth2 token exchange via SceHttp (authorization_code + refresh)
- ws.c: WebSocket over SceNet + LibreSSL (SSLv23_client_method),
  DNS via sceNetResolverStartNtoa, OrbisNetSockaddr packing
- discord.c: gateway connect/identify/heartbeat/presence set+clear
- detect.c: foreground game via sceUserServiceGetForegroundUser
  + app.xml/app.db title-name resolution
- main.c: poll loop (config poll_interval_s)

Build verified on macOS (LLVM 21 + OpenOrbis toolchain v0.5.4):
- 9 objects compile, lld 21 links build/ps4rp.elf (169KB)
- create-fself produces valid SCE ASLR payload build/ps4rp.fself
- libSceLibreSSL exports the OpenSSL-style TLS API used by ws.c
2026-08-14 08:43:09 +02:00