·
1 commit
to rebase-rpcs3-jun2026
since this release
RPCSX-Clanker core — v2026.06.22-0836
The PlayStation 3 emulation core (librpcsx-android.so, arm64), synced to RPCS3
0.0.41 content and extensively adapted for ARM64 / Adreno / Turnip. Ships
separately from the app and is loaded at runtime.
New & notable
- Synced to RPCS3 0.0.41. CPU/SPU recompilers, the lv2 kernel, Cell HLE,
loader, crypto and util are now at 0.0.41 content (ARM64-adapted, and ahead of
upstream in several ARM areas). - New shader decompiler. The fragment-program decompiler was re-vendored to
the upstream 0.0.41 Assembler engine (SPIR-V 1.5) — the one default-render-path
subsystem that had been a generation behind. - Texture pop-in eliminated. The texture-cache core was re-vendored to 0.0.41
with per-surface resolution scaling. - Cast shadows fixed on Adreno/Turnip via depth-only alpha-test discard
suppression and correct float-depth sampling. - RPCN netplay re-vendored to protocol 30 (protobuf), with client-side
password derivation and a JNI bridge for the app's account/server UI. - Credentials secured. RPCN secrets are no longer written to external storage;
the plaintext password is never stored, logged, or transmitted.
Graphics / RSX / shaders
- New fragment-program Assembler decompiler with the producer side fully wired:
TEXTURE_FORMAT_CONVERT raised so texel conversion emits (fixed disappearing
geometry, enabled foliage), DISABLE_EARLY_Z for cyclic-zeta draws, fragment
outputs gated by mrt_buffers_count, fp16 extension when supported, fragment
constants on the upstream _fetch_constant model. - Hardware texel remapping (format_ex): correct SNORM/sRGB/BX2 normal-map and
non-INT8 conversion; raw texture alpha preserved through conversion. - Vulkan correctness ports: WAW barrier after the present clear, per-source
image-layout dedup in the copy path, sub-4-byte and wide-block GPU deswizzle,
DXT45 unaligned-source guard (ARM), occlusion-query handling. - Host memory coherency: mm_flush(ranges) wired into the nv0039 DMA / nv3089
blit paths. - Mobile-tiler frame-time jitter tuning (predictor confidence + ZCULL cadence)
with per-interval frame-time + readback-source instrumentation in the perf log.
CPU / recompilers
- SPU FRSQEST exponent computed via arithmetic instead of a LUT (upstream
#18905) — bit-identical, drops a per-module 1kB table. - PPU: fixed null dispatch for adde./subfe. Rc-variants (latent crash); IR
optimization passes run on ARM. - vm: skip read-only reservation range-locks when taking a writer lock.
- ARM busy_wait scaled to the device's hardware timer.
lv2 / HLE / loader
- sys_fs: CELL_ENOTDIR propagation; open_raw error-code fidelity.
- sys_ppu_thread_detach zombie-join returns CELL_OK; sys_spu_image_open_by_fd
implemented; SPU events notified after releasing group mutexes; COOPERATE
guard restored on group suspend/resume. - mmapper lazy shared-memory allocation (savestate format v2).
- Networking socket fixes; sceNp DRM time conversion; cellPad validation;
cellSaveData delete-path bounds check.
Savestate
- PPU scalar registers serialized unconditionally — the core fidelity fix
(closes a version-gate desync). - ZSTD-compression finalize missed-wakeup fixed.
- Reload crashes fixed: re-Init firmware VFS so mounts survive; track/destroy all
Android WSI surfaces (NATIVE_WINDOW_IN_USE); SEV-wake WFE-parked threads.
Networking / RPCN
- Emu/NP re-vendored to protocol 30 (FlatBuffers → Protobuf + abseil, wired into
the Android arm64 cross-compile); clans SDK symbols ported. - RPCN JNI bridge (config / hosts / account / enable); client-side PBKDF2-HMAC-
SHA3-256 password derivation. - rpcn.yml moved to app-internal storage, excluded from backup, with one-time
migration; other players' NPIDs/names redacted from netplay logs.
In-game overlays
- Home and quick menus re-vendored from upstream with SDF text rendering wired
into the Vulkan backend; new Clanker Features live-toggle tab. - Quick-menu toggle crash fixed (display_manager locked around button presses).
Power / thermal / memory
- Battery-saver core override (default ON; meaningful idle-CPU drop, no fps cost
on the test device). Big-cluster affinity, low-power WFE, thermal cap and ADPF
hints are default OFF and experimental. - Device-scaled PPU compile memory budget fixes first-launch OOM on
memory-constrained devices.
Known issues
- Frame-time jitter with Write Color Buffers (e.g. Demon's Souls): holds 30fps
but uneven pacing — inherent to synchronous color-buffer readback on a mobile
tile GPU. - Smooth-shaders (async interpreter) forced OFF (freezes); synchronous path used.
- No persistent SPU object cache (short warm-up each launch).
- Some titles still crash/stall (e.g. God of War 3 / SPURS class).
- Savestates may not be compatible across versions.
Built against LLVM 19.1.7 to match upstream. The emulator is the work of the
RPCS3 and RPCSX teams; this fork only ports it to Android. Support them:
https://rpcs3.net/ and https://github.com/RPCSX/rpcsx . Piracy is not permitted.