| |
|
|
|
|
|
|
|
|
| |
PackOptions::metadata overrides the title name, icon and display version
found in the dump. A version override is written to the base and to the
newest update, since the NUP loader reads the version from the newest
update first. ProbeMetadata reads what a dump would be packed with, the
version coming from the newest update that reports one, else the base.
Assisted-by: Claude Sonnet 5.5 (wrote the metadata overrides, ProbeMetadata and their test)
|
|
|
--pack-nup (#271)
* file_sys: add a NUP packer for loose dumps
Packs a loose dump (exefs/romfs, base/, updates/<version>/ and
dlc/<titleid>/<n>/) into a NUP v1 container with the aligned record
layout. Every package is kept, files are deduplicated by SHA-256 and
compressed with zstd unless that does not shrink them, and files over
256 MiB are stored raw.
Output is byte-identical on every platform: compression is
single-threaded with every frame parameter set explicitly, and zstd is
always bundled so all builds use the same version.
A low-storage mode deletes each source file once its extent is synced
and journaled, and an interrupted run resumes from the journal.
Assisted-by: Claude Opus 5.5 (wrote the packer, its EdenPack-free dump detection, the aligned record layout and the deterministic zstd setup; ran the Raiders and Donkey Kong Bananza packs and boot checks)
* tests: cover the NUP packer
Round-trips a dump through NupContainer, checks standalone updates, a
bare exefs/romfs dump, low-storage resume and overwrite rejection, and
pins the hash of a packed dump so changes to the output are deliberate.
Assisted-by: Claude Opus 5.5 (wrote the tests, including the pinned output hash)
* qt: add Convert to NUP to the game list
Shown for loose dumps. Asks for confirmation with the estimated space,
offers low-storage mode, runs in the background with progress and
cancel, and resumes an interrupted low-storage conversion.
Assisted-by: Claude Opus 5.5 (wrote the Convert to NUP action and its progress and resume handling)
* cli: add --pack-nup <dump> [out.nup]
Assisted-by: Claude Opus 5.5 (wrote the --pack-nup option)
|