mirror of
https://github.com/quer3q/ps5-dump-forge.git
synced 2026-10-21 21:12:17 -05:00
Every conversion of a game whose eboot.bin imports libSceAmpr now leaves a working ampr_emu behind (by user decision): no runtime -> the bundled release runtime is installed; an older, unreadable or unknown one (or Forge's trace build) -> replaced; the bundled version or newer -> kept (Pack also needs it to read packs). ampr_emu.index is kept only when it lists exactly the files written, else rebuilt, and then the journal and logs are left out (their file ids follow the old record order). A packed game's index and manifest stay byte for byte. - core lz4.rs: Runtime::action (install/replace/keep/untouched), plain() for conversions without LZ4 options, index_state (the one comparison, Inspect's too) with bounded reads (index_bound, 64 MiB cap; read_all loops for a .pkg source's 64 MiB reads); into a .pkg the builder writes the index; overlay keeps the source's order (solid archives). - Inspect: Lz4Facts.index, runtime_action, pack_runtime_action; the archive index is read after eboot.bin/fakelib so it can't push them out of the read budget. lz4 reader allows the runtime's size to differ from its loose record (a packed game's replaced runtime). - UI: Convert's Update AMPR switch is gone (notes say install/replace/keep and index refresh); the LZ4 tab offers Pack/Unpack and Trace to AMPR games without a runtime and says "This game doesn't use AMPR, so LZ4 can't be used here." otherwise. - Targets: Convert Folder, fpkg, exfat, ffpkg, ffpfsc, ffpfs; LZ4 tab Folder, ffpkg (default), exfat, ffpfs; ffpkg inside a .ffpfsc by default (core, so CLI and app agree). - Save as profile removed everywhere (UI, Tauri command, server route, CLI lz4-profile, core lz4_profile.rs); using a profile (--lz4-profile) is unchanged. - Locales (11), AGENTS.md, DESIGN.md, docs/LZ4.md, README.md, ps5/README.md; tests in core.rs, inspect.rs, reader.rs. Reviewed with Codex (several rounds, clean) and /code-review. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>