-
LibProsperoPKG v2.5 Stable
released this
2026-07-13 14:29:19 -05:00 | 5 commits to main since this releaseFixes
- 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.datandplaygo-hash-table.datnow 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.binis 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.zipwin-arm64.ziplinux-x64.ziplinux-arm64.ziposx-arm64.zip
Library only:
libprosperopkg-win-x64.ziplibprosperopkg-win-arm64.ziplibprosperopkg-linux-x64.ziplibprosperopkg-linux-arm64.ziplibprosperopkg-osx-arm64.zip
Starting the GUI
Download the archive that matches your system and extract it.
Windows (
win-x64.ziporwin-arm64.zip):- Run the
LibProsperoPkg.Guiexecutable from the extracted folder.
Linux (
linux-x64.ziporlinux-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
- Start the GUI.
- Open the "Homebrew package" page.
- 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
.pkgis written. - Content id: optional. A 36-character id in the form
XXYYYY-XXXXYYYYY_00-ZZZZZZZZZZZZZZZZ, for exampleUP9000-PPSA00000_00-PROSPERO00000000. Left blank, it is taken fromparam.json, or a default is used. - Title: optional display name.
- Version: the content/master version as
NN.NN(default01.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.
- Homebrew folder: the folder that holds your compiled main module and, optionally, a
- Click "Build".
- The log shows the output package path and a launch-readiness report: whether the main module and
param.jsonare 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.binby default). sce_sys/param.json. Anicon0.pngand othersce_sysassets are optional.
Downloads
-
Source code (ZIP)
0 downloads
-
Source code (TAR.GZ)
0 downloads
-
LibProsperoPKG v2.0 Stable
released this
2026-07-10 06:04:59 -05:00 | 6 commits to main since this releaseNew features
New package workflows
- Backup conversion –
ProsperoBackupConverterfor converting disc/package backups. - Homebrew packaging –
ProsperoHomebrewPackagerto package homebrew content, plus a sample test package undersrc/HomebrewTest/. - Split-package merging –
ProsperoPkgMergerfor merging multi-part packages. - Launch-readiness checks –
ProsperoLaunchReadinessto 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
ProsperoElfHeaderparsing and a debug-license helper. - NAPS layout builder and nwonly NAPS generator.
Image handling
- New
ProsperoPngDecoderenabling 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
-
Source code (ZIP)
0 downloads
-
Source code (TAR.GZ)
0 downloads
- Backup conversion –
-
LibProsperoPKG v1.5 Stable
released this
2026-07-04 09:11:04 -05:00 | 9 commits to main since this releaseUpdates :
License/ProsperoRif.cs(rif), read/write/create, single + multi-title,TitleId,ServiceLabel,Validate.License/ProsperoRifSet.csmulti-content set reproducingn_rif/ServiceID/has_app/n_ac/size+Summarize.License/ProsperoEntitlementKey.cscontent-key carrier +ResolveModemutual-exclusivity rule.ProsperoDiscBackup(app_0.pkg + app_sc.pkg), open/reassemble/verify/extract,ProsperoConcatStream,ProsperoDiscBackupManifest,ProsperoPlaygoChunkCrc.- FIH
FormatVersionnow read/exposed. NpDrm/ProsperoNpDrmContentInfo.cscontent-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/ReaderexposeContentFlags(0x78).PKG/ProsperoPkgValidator.csPKG validator.PKG/ProsperoExtractionKey.cskey carrier: passcode→SHA-256+SHA3-256 EKPFS candidates, supplied 32-byte image key, or plaintext attempt.PKG/ProsperoPackageExtractor.csPKG Extractor,Inspect/ListFiles/Extract.PFS/ProsperoPfsExtractor.csreusable 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_infoProsperoSelfAuthInfolpp_read_npdrm_content_infoProsperoNpDrmContentInfolpp_inspect_package/lpp_extract_package/lpp_extract_package_ekpfsProsperoPackageExtractorlpp_rif_record_count/lpp_read_rif_content_id/lpp_read_rif_summaryProsperoRif/ProsperoRifSetlpp_validate_packageProsperoPkgValidatorlpp_disc_backup_reassemble/lpp_disc_backup_verifyProsperoDiscBackupSummarized (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
-
Source code (ZIP)
0 downloads
-
Source code (TAR.GZ)
0 downloads
-
LibProsperoPKG v1.4 Stable
released this
2026-07-03 15:49:28 -05:00 | 10 commits to main since this releaseChangelog :
- Added
ProsperoApplicationTypeand newProsperoBuildOptionsfields to control generatedparam.jsonDRM/badge values and optional fake-signing of ELF modules. - The build pipeline can now fake-sign
eboot.bin/*.elf/*.prx/*.sprxinto fake-self before packing and restore original files afterward, with an additional in-place fake-sign helper API. - Also fixes
pfsimage.xmlapplication-type emission to mirrorparam.jsonDRM type instead of hardcodingfree. - 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
-
Source code (ZIP)
0 downloads
-
Source code (TAR.GZ)
0 downloads
- Added
-
LibProsperoPKG v1.3 Stable
released this
2026-07-03 05:44:19 -05:00 | 15 commits to main since this releaseChanges :
- Adapted API. See API Overview
- Expanded C ABI for Linux & macOS users of the native library
Downloads
-
Source code (ZIP)
0 downloads
-
Source code (TAR.GZ)
0 downloads
-
LibProsperoPKG v1.2 Stable
released this
2026-07-02 08:41:50 -05:00 | 22 commits to main since this releaseUpdates :
- 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
-
Source code (ZIP)
0 downloads
-
Source code (TAR.GZ)
0 downloads
-
LibProsperoPKG v1.1 Stable
released this
2026-07-01 18:45:07 -05:00 | 24 commits to main since this releaseThis 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
-
Source code (ZIP)
0 downloads
-
Source code (TAR.GZ)
0 downloads
-
v1.0 Stable
released this
2026-06-28 13:36:07 -05:00 | 25 commits to main since this release- Testing build for Windows x64
Downloads
-
Source code (ZIP)
0 downloads
-
Source code (TAR.GZ)
0 downloads