Skip to content

PS5 Library 0.7.23

Choose a tag to compare

@deox1111 deox1111 released this 10 Oct 07:53
· 6 commits to main since this release

Changes

  • Faster unpacking. Archives now unpack on several threads: one decodes while others write the files, flush them and create folders. Writes go to storage in 4 MiB blocks instead of 256 KiB, and the free-space check runs per file and every 32 MiB instead of before every block. Small files are written four at a time. (#13)
  • Large game folders install. After unpacking, the library no longer lists every file of the game: it stops at the game folder (the one with sce_sys/param.json). The old limit of 100,000 files and 16 folder levels is gone; if a folder is still too deep or too large, the error names the folder. Installing a game folder from Files works the same way. (#13)
  • A retry does not unpack again. When unpacking finished and a later step failed, Try again continues from the unpacked files instead of unpacking the whole archive a second time. (#13)
  • Unpacking details. The download card shows how fast the game is written and the archive read, files per second, how much of the time the decoder is busy and how much it waits for storage. (#13)
  • Homebrew from the default catalog. The firmware check stops only sources the catalog marks as FPKG (fake game packages). Apps in a catalog's PKG category, such as the evoX homebrew packages, can be downloaded on any firmware again; on firmware above 11.60 they used to open a page with no way to continue. (#14)
  • Download for GitHub files. Files from GitHub releases have a Download button instead of Solve the CAPTCHA: there is no CAPTCHA. The console checks the file and adds it to Downloads. (#14)
  • Installed packages show as installed. A package the console installed now turns from "Sent to the console package installer" to installed by itself, including apps whose title IDs ShadowMount does not list. (#14)
  • Placeholder title IDs. A catalog entry with an ID such as CUSA00000 takes the real ID from its file name, so its download is no longer refused as a different game. (#14)
  • Game page for installed games. My games → Manage uses the game's own background, shows the real size of an image or folder and the full location.
  • Store rows. A selected tile is no longer cut off under the row title.

Validation and limitations

Host build, integration tests (package confirmation from the console's install records, placeholder IDs, catalog firmware rules), C++ archive tests (threaded unpacking of many small files, a large file, an empty file and a path stored twice, cancellation and retry; repeated runs and ThreadSanitizer) and UI checks passed. On a PS5 (firmware 13.60) unpacking to the internal SSD went from 55 to about 139 MB/s for a 1 GiB image in a 7z, and from 6.9 to 11.9 MB/s for a folder of 6,000 small files. Strongly compressed data is limited by the console's CPU (about 30 MB/s for text-like LZMA2 data), and creating a file on the console's storage takes a few milliseconds, which limits games made of many small files. Homebrew Launcher, Mario Kart 64 and PS5Library from the default catalog downloaded with Download and installed; the Mario Kart 64 and PS5Library downloads switched to installed by themselves. EVO Player installed after Restart ShadowMount. The new folder scan and the retry after unpacking are covered by tests, not yet by a 100,000-file game on the console. After publishing, Settings → Updates on a console running 0.7.22 found this release on GitHub, checked it against its SHA-256 file, replaced both saved copies and started it within seconds.

Load the new ELF; it replaces the running version and keeps your catalogs and settings. A download in progress pauses; Resume continues it.

Thanks to @amithacoon for the detailed unpacking analysis (#13) and @Expliicityy for the report (#14).