• v2.5 3e159f2ed1

    archiver-bot released this 2026-07-13 14:29:19 -05:00 | 5 commits to main since this release

    Fixes

    • Outer-filesystem mount key: the build path derived the mount key with the wrong hash (SHA-256 instead of SHA3-256). All build and signing paths now use SHA3-256.
    • Image key: the IMAGE_KEY entry is now filled with RSA-3072 key wrapping instead of a partial random tail.
    • Package layout descriptor (naps_pkg_layout.dat): two run/flush cadence errors fixed so the descriptor matches the expected on-disk structure. Every raw file opens a run; metadata opens a run on its first block only.
    • Streaming chunk counts: playgo-ficm.dat and playgo-hash-table.dat now count all inner file inodes, including the internal tables, not only user files.
    • Supplemental archive: the general-purpose ZIP writer was replaced with a format-exact writer that the console accepts.
    • Reader: a raw file flagged as compressed no longer throws. The reader only decodes a compressed container when the payload actually carries the container magic.
    • Reader entry ids: inspection labels corrected to the real writer ids (param.json, the streaming descriptors, imagedigs, and so on).
    • ProsperoPackageExtractor.ListFiles: now lists files from data-first packages and from compressed inner images. It previously failed on the primary package format even though full extraction of the same package succeeded.
    • Launch-readiness: a package whose eboot.bin is present but is not a loadable module is no longer reported as ready to launch.
    • Buffered reader: a read that starts at offset 0 is no longer skipped.
    • Package merge: file handles are no longer leaked when one input piece fails to open partway through.

    Additions

    • Installable finalized image: the builder writes the full container image header (mount and package sizes across the whole finalized image, filesystem flags, region locators, the image seed, and the per-region descriptor digests) and the per-block install-metadata tables.
    • Content key wrapping: RSA-3072 wrapping for the container key entries, with deterministic supplemental framing.
    • Native library exports: additional C entry points for key availability, a full validation report, launch-readiness issues, and backup conversion with options.

    Improvements

    • Inner image is always the data-first layout: a raw concatenation of per-file payloads described by a generated naps_pkg_layout.dat.
    • Documentation and code comments reduced to accurate technical descriptions. The API overview, implementation status, format notes, and README updated to match the current code.

    Optimizations

    • Compressor: fixed a quadratic-time hang when compressing the large repetitive metadata region of a small homebrew package. The fix is a lossless early exit; the compressed output is unchanged.
    • Inner metadata is compressed once and reused instead of twice, roughly halving the compression work for a homebrew build.
    • The inner assembler compresses each file once. It previously compressed every compressible file twice; the output is identical.

    Removals and cleanup

    • Inner-compression codec selection removed (the enum, the options, and the helper methods). The raw / zlib / Kraken inner paths are gone. The low-level Kraken and PFSC encoders remain, used by the metadata path and the standalone PFSC tool.
    • Earlier-generation code removed: legacy key-check and key-derivation routines, RSA-2048 helpers and key sets, the Mersenne Twister generator, and the old keystone keys. The keystone builder is now single-path.
    • Dead and legacy code removed: an unused bit reader, an unused shuffle class, unused and incorrect outer-image encrypt/decrypt overloads, and several unused helpers and constants.

    Downloads

    Two kinds of release archive are available. All builds are self-contained.

    GUI application:

    • win-x64.zip
    • win-arm64.zip
    • linux-x64.zip
    • linux-arm64.zip
    • osx-arm64.zip

    Library only:

    • libprosperopkg-win-x64.zip
    • libprosperopkg-win-arm64.zip
    • libprosperopkg-linux-x64.zip
    • libprosperopkg-linux-arm64.zip
    • libprosperopkg-osx-arm64.zip

    Starting the GUI

    Download the archive that matches your system and extract it.

    Windows (win-x64.zip or win-arm64.zip):

    • Run the LibProsperoPkg.Gui executable from the extracted folder.

    Linux (linux-x64.zip or linux-arm64.zip) and macOS (osx-arm64.zip):

    • Open a terminal in the extracted folder.

    • Start the GUI with:

      dotnet LibProsperoPkg.Gui.dll
      

    Creating a homebrew package with the GUI

    1. Start the GUI.
    2. Open the "Homebrew package" page.
    3. Fill in the fields:
      • Homebrew folder: the folder that holds your compiled main module and, optionally, a sce_sys/ metadata tree (param.json, icon0.png, and so on).
      • Output folder: where the finished .pkg is written.
      • Content id: optional. A 36-character id in the form XXYYYY-XXXXYYYYY_00-ZZZZZZZZZZZZZZZZ, for example UP9000-PPSA00000_00-PROSPERO00000000. Left blank, it is taken from param.json, or a default is used.
      • Title: optional display name.
      • Version: the content/master version as NN.NN (default 01.00).
      • Passcode: 32 characters. Left blank, the all-zero debug passcode is used.
      • Main module: the module file name inside the homebrew folder. Defaults to eboot.bin.
    4. Click "Build".
    5. The log shows the output package path and a launch-readiness report: whether the main module and param.json are present and whether the package is ready to install on a console, followed by any warnings/messages.

    Minimum contents of the homebrew folder:

    • The main module (eboot.bin by default).
    • sce_sys/param.json. An icon0.png and other sce_sys assets are optional.
    Downloads
  • v2.0 4c44bf7f73

    archiver-bot released this 2026-07-10 06:04:59 -05:00 | 6 commits to main since this release

    New features

    New package workflows

    • Backup conversion – ProsperoBackupConverter for converting disc/package backups.
    • Homebrew packaging – ProsperoHomebrewPackager to package homebrew content, plus a sample test package under src/HomebrewTest/.
    • Split-package merging – ProsperoPkgMerger for merging multi-part packages.
    • Launch-readiness checks – ProsperoLaunchReadiness to verify a package is ready to run.

    Inner image and metadata

    • Adds the "nwonly" data-first inner-image path with a PS5 inner-image builder, assembler, reader, and metadata/flat-path-table helpers.
    • New metadata models: ProsperoManifest, ProsperoParam, and related enums.
    • New ProsperoElfHeader parsing and a debug-license helper.
    • NAPS layout builder and nwonly NAPS generator.

    Image handling

    • New ProsperoPngDecoder enabling PNG-to-DDS decoding.

    Improvements and fixes

    • Expands the native C ABI (NativeExports.cs, exports.txt, libprosperopkg.h) with many new exported functions.
    • Broader package, ELF, and PFS inspection across the extractor, PKG builder, FIH builder, and SI archive.
    • Reworked Oodle/Kraken compression internals and PFS writer refinements.

    Documentation and build

    • Updates the README, getting-started, API overview, PS5 PKG format, and implementation-status docs to reflect the new capabilities.
    • Updates the Linux and macOS native build workflows.

    Notes

    PKG files still do not install yet and fail currently with following messages :

    [PlayGoCore][DbgInstall] begin (UP9000-PPSA99099_00-PROSPERO00000000)
    [PlayGoCore][DbgInstall] not found PlayGoScenario json
    [PlayGoCore][DbgInstall] Staring Pre-allocation transfer on NativeApplicationActor
    [PlayGoCore][DbgInstall] crc validation disabled
    [PlayGoCore][DbgInstall] BfsContainerCreate : fd=35 container_id=1 name=FIH/SC capacity_reserved=393216 # ret=0x0
    [PlayGoCore][DbgInstall] BfsContainerBind : fd=35 container_id=1 length=65536 offset=0 # ret=0x0
    [PlayGoCore][DbgInstall] BfsContainerBind : fd=35 container_id=1 length=327680 offset=720896 # ret=0x0
    [PlayGoCore][DbgInstall] supplemental info transfer started
    [PlayGoCore][DbgInstall] supplemental info transfer ended (0x00000000)
    [PlayGoCore][DbgInstall] not found PlayGoScenario json
    [PlayGoCore][DbgInstall][ERROR] not support signature.(0x00000000)
    [PlayGoCore][DbgInstall][WARNING] playgo-chunk.crc not found
    [PlayGoCore][DbgInstall] BfsContainerCreate : fd=35 container_id=2 name=PlayGo Chunk capacity_reserved=655360 # ret=0x0
    [PlayGoCore][DbgInstall] BfsContainerBind : fd=35 container_id=2 length=655360 offset=65536 # ret=0x0
    [PlayGoCore][DbgInstall] end (UP9000-PPSA99099_00-PROSPERO00000000, 0x80b21185)
    
    Downloads
  • v1.5 82356a098e

    archiver-bot released this 2026-07-04 09:11:04 -05:00 | 9 commits to main since this release

    Updates :

    • License/ProsperoRif.cs (rif), read/write/create, single + multi-title, TitleId, ServiceLabel, Validate.
    • License/ProsperoRifSet.cs multi-content set reproducing n_rif/ServiceID/has_app/n_ac/size + Summarize.
    • License/ProsperoEntitlementKey.cs content-key carrier + ResolveMode mutual-exclusivity rule.
    • ProsperoDiscBackup (app_0.pkg + app_sc.pkg), open/reassemble/verify/extract, ProsperoConcatStream, ProsperoDiscBackupManifest, ProsperoPlaygoChunkCrc.
    • FIH FormatVersion now read/exposed.
    • NpDrm/ProsperoNpDrmContentInfo.cs content-info projection: container-offset magic switch (CNT/LIH/FIH), content-id, derived title-id, drm/content type, content_flags, is_nested/is_finalized, and patch-kind (None/First/Subsequent/Delta/Cumulative).
    • ProsperoPkgHeader/Reader expose ContentFlags (0x78).
    • PKG/ProsperoPkgValidator.cs PKG validator.
    • PKG/ProsperoExtractionKey.cs key carrier: passcode→SHA-256+SHA3-256 EKPFS candidates, supplied 32-byte image key, or plaintext attempt.
    • PKG/ProsperoPackageExtractor.cs PKG Extractor, Inspect / ListFiles / Extract.
    • PFS/ProsperoPfsExtractor.cs reusable single-image extractor.
    • Content/ProsperoSelfAuthInfo.cs (*.auth_info), a 0x88-byte record (paid + capabilities[4] + attributes[4] + reserved[0x40], little-endian), with read/validate/create/write and a Category helper.
    • Documentation & API Overview updated.

    Native C library updated

    Export Backed by
    lpp_read_auth_info / lpp_write_auth_info ProsperoSelfAuthInfo
    lpp_read_npdrm_content_info ProsperoNpDrmContentInfo
    lpp_inspect_package / lpp_extract_package / lpp_extract_package_ekpfs ProsperoPackageExtractor
    lpp_rif_record_count / lpp_read_rif_content_id / lpp_read_rif_summary ProsperoRif / ProsperoRifSet
    lpp_validate_package ProsperoPkgValidator
    lpp_disc_backup_reassemble / lpp_disc_backup_verify ProsperoDiscBackup

    Summarized (in short) :

    • Package inspection/extraction (including key handling)
    • PFS extraction helpers
    • NpDrm content-info projection
    • PKG validation
    • RIF/license models
    • SELF auth_info parsing
    • Split disc-backup reassembly/verification
    • Extended native C ABI
    Downloads
  • v1.4 1b15b46f76

    archiver-bot released this 2026-07-03 15:49:28 -05:00 | 10 commits to main since this release

    Changelog :

    • Added ProsperoApplicationType and new ProsperoBuildOptions fields to control generated param.json DRM/badge values and optional fake-signing of ELF modules.
    • The build pipeline can now fake-sign eboot.bin/*.elf/*.prx/*.sprx into fake-self before packing and restore original files afterward, with an additional in-place fake-sign helper API.
    • Also fixes pfsimage.xml application-type emission to mirror param.json DRM type instead of hardcoding free.
    • Extended native C interface:
      • lpp_build_package_ex with full option set (lpp_build_options struct)
      • lpp_read_self_info
      • lpp_make_fself_ex
      • lpp_make_fself_file
      • lpp_fake_sign_folder
      • app-type helpers
    • README/docs updates to cover the new API and behavior.
    Downloads
  • v1.3 855ff5c762

    archiver-bot released this 2026-07-03 05:44:19 -05:00 | 15 commits to main since this release

    Changes :

    • Adapted API. See API Overview
    • Expanded C ABI for Linux & macOS users of the native library
    Downloads
  • v1.2 8551d2f7d0

    archiver-bot released this 2026-07-02 08:41:50 -05:00 | 22 commits to main since this release

    Updates :

    • Kraken encoder optimizations
    • SI sce_suppl ZIP now emitted end-to-end
    • naps_meta_300/301/302/308 fix
    • Native .so & .dylib libraries for Linux & macOS (shows currently v1.0 but is from v1.2 source)
    Downloads
  • v1.1 2b09cccc53

    archiver-bot released this 2026-07-01 18:45:07 -05:00 | 24 commits to main since this release

    This release adds :

    • Byte-exact UCP codec for trophy2/.ucp + uds/.ucp
    • npbind.dat Validator
    • fself Generator
    • Fixes: license/np/self/deltainfo/keymap_rp/changeinfo/pronunciation/trophy were silently dropped
    Downloads
  • v1.0 a1a436039e

    v1.0 Stable

    archiver-bot released this 2026-06-28 13:36:07 -05:00 | 25 commits to main since this release

    • Testing build for Windows x64
    Downloads