ps5rs v0.4.0
Host-side emulation and middleware detection release.
Added
- Host-side emulator hardening: deterministic per-module
rand, captured guest stdout (ExecutionReport::output_lines), and the self-authoredlibdbg_basicfixture exercisinglibSceDbglogging with a 16-call import trace - Fixture tooling: multi-import dynamic fixture builder (
plan()+build_multi()), stdout + wildcard expectations in the emulator regression suite, and exact-encoding unit coverage for the x86-64 code generator - Third-party middleware detection (
ps5-analysis::middleware): walks game folders and classifies every PRX/SPRX/SO module as ThirdParty / Sony / Unknown via a 30-entry fingerprint catalog — FMOD, Wwise, Gameface, ICU, RENOIR, iZotope/McDSP/Auro-3D/Ozone, Unity (IL2CPP, Burst, PS5 platform, PSN, Save Data, Common Dialog, Audio Spatializer), Google Resonance Audio, CRIWARE, WebKit (Kitt), Epic Online Services ps5rs middleware <games_dir>command: per-game terminal or JSON middleware report (title ID, engine, vendor/product attribution per module)- Dashboard Middleware tab: summary cards, Top Middleware Products ranking, per-game module table with third-party/Sony/unknown badges (
dashboard --games <games_dir>) - String-based detection:
detect_third_partygains FMOD, Wwise, Coherent Gameface, and ICU patterns
Changed
- Module-scan accuracy: middleware walk skips
sce_sys/anddecrypted/dump-artifact folders, dedupes identical copies per game by SHA-256, keeps distinct-content same-name versions
Fixed
- Register zeroing encoding: generated guard code leaked stale register garbage into recorded import args (
xor r8d, eax/xor r9d, eax); now emits45 31 C0/45 31 C9 - RIP-relative displacement math: displacements now anchor to instruction start instead of end
Full changelog: https://github.com/claimore22/ps5rs/blob/v0.4.0/CHANGELOG.md