Vendor: ps5upload v6.1.2 -> v7.0.22 (01afdf8), patch series 27 -> 19:
- Eleven patches upstream took are dropped; the rest are rebased onto v7.
- The .pkg builder now always rebuilds ampr_emu.index from the packaged files (upstream: a
stale index crashes the game); a case clash refuses the build.
- 0016: an LZ4-packed source keeps its own index byte for byte (ampr_emu checks each record
against the pack manifest by file id); a missing or unreadable one refuses the build.
- 0017: eboot.bin is scanned for libSceAmpr once per job instead of three times.
- 0018: prepare reports files visited in its check and plan passes.
- 0019: the test trim redone for v7's new tests.
- lz4_flex pinned to Forge's 0.14 (one copy in the lock); the patches rebuild vendor/
exactly from upstream (recipe uses --binary for deleted fixtures).
Forge:
- KrakenLevel::Stored (--kraken stored, UI picker): an uncompressed package, upstream's
fallback for consoles that install a compressed package but won't start it.
- Archive reader: drains up to 64 MiB of the current entry instead of restarting the
session for a later one, and keeps every entry's first 64 bytes; a 7,169-file RAR's
check stage went from 10+ minutes to 33 s.
- One bar through check and plan (a small, bounded share); Event::Stages announces every
step a job will run (job://stages, the server's jobs[i].stages).
- UI: a step row (done / current / upcoming), a sheen on the bar while a job runs, the time
in the current step, speed and time left only for byte-streaming stages, no nested
scroll in the job list; 11 languages.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
New crate ps5-dump-forge-lz4: AMPRPAK4 manifest writer and validating
reader (volumes, CRC sidecar, runtime profile), AMPRIDX3 and AMPRCMD1
readers, pack rules (TOML profile subset, traces, built-in keep-loose
list, auto-loose), embedded ampr_emu 0.4.2.1 release and trace runtimes
(vendor/ampr_emu, pinned by SHA-256; vendor patch 0023).
Core: trace (in-place folder patch/unpatch, image rebuild + replace),
pack into an LZ4 folder or straight into .ffpkg/.exfat/.ffpfs/.ffpfsc
(measure pass, no staging), unpack any packed source, traces zip
download and reader, Save as profile, LZ4 inspection facts. Every file
and folder written on the PS5 is 0777 (the app loader refuses game files
without world-execute, CE-107750-0). Traces only narrow the keep-loose
list: engine files opened before AMPR starts (.pak/.utoc/.ini) stay loose.
CLI --lz4-* flags and lz4-patch/lz4-unpatch/lz4-profile; server routes
lz4_patch, lz4_unpatch, lz4_traces (streamed zip), lz4_plan_profile;
LZ4 tab in the app. Trace room 256 MiB default, 1 GiB max (measured).
Fuzz targets, scripts/check-lz4.sh upstream cross-check, docs.
Console: Stellar Blade traced, packed (5 .ucas) and played; unpack and
0777 folders boot. Other titles and long sessions are still open (TODO).
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Converts a PS5 game between a folder and every image format ShadowMountPlus 1.7
mounts, and builds or extracts debug FPKG packages. Rust core, Tauri 2 app and a CLI,
Apple Silicon macOS.
- Folder, .exfat, .ffpkg (UFS2), .ffpfs (PFS), .ffpfsc (PFSC container around an
exFAT, UFS2 or PFS image, streamed with no temporary image) and debug FPKG .pkg,
any source to any target, verified by BLAKE3 before publishing.
- .ffpfs is byte-identical to MkPFS's unsigned PS5 layout; the reader validates
the flat path table and collision resolver.
- Inspect: cover, firmware, backport and embedded DLC detection.
- Release workflow creates a draft pre-release for v*-suffixed tags.
Test release: not every format has been hardware-tested on a console yet.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>