Skip to content

1.8.0

Choose a tag to compare

@github-actions github-actions released this 05 Oct 16:05
· 229 commits to master since this release

New features

  • Compress NSP to NSZ: the new Compress page turns NSP files into NSZ files, usually 10 to 60% smaller (a test
    game went from 214 MB to 100 MB), installed directly by Tinfoil, DBI and other installers.
    • Every file is checked before and after: damaged NSP files are not compressed, and each NSZ is decompressed again
      and must give back every NCA byte for byte (same SHA-256) before the original is deleted.
    • Choose the level (fast, balanced, maximum) and whether the originals are deleted. Runs in the background with
      live progress in Tasks, can be cancelled, and leaves half of the processors free.
    • Written in Go, compatible with the NSZ format of nsz: nothing else needs to be installed, on Windows, Docker or a
      Raspberry Pi.
    • Games whose NSP has no ticket use the title key of a title.keys file next to prod.keys.

Fixes

  • An NSP without content metadata (for example a damaged one) is listed in Issues instead of disappearing from the
    library.

Other changes

  • The project moved to the DeLFuS77 account. Saved settings that point to the previous address are updated
    automatically, and the Docker Hub description follows the README.

Performance

Big libraries and the full titles database are handled much faster, with less memory:

  • Scans read up to 4 files at the same time (scan_workers in settings.json), bounded so disks and network
    shares are not saturated. The metadata of new files is cached in one transaction instead of one per file: caching
    500 new files went from 4.9 s to 0.09 s.
  • Covers are downloaded after the scan, in parallel. Covers that failed are not retried for a day, and when the
    server cannot be reached the scan stops trying instead of waiting for every cover.
  • Pages reuse their results until the library or the settings change. With 5,000 games and 20,000 titles, the
    Library page went from 17 ms to 0.1 ms and the navigation counts from 9 ms to almost nothing.
  • Cover thumbnails: cards and lists load 360 px thumbnails, made once and cached on disk (about 20 times smaller),
    and every cover can be cached by the browser. Covers were decoded and encoded again on every request before.
  • Startup: the web interface answers right away while the titles database loads in the background, and loading
    it needs about a third of the memory.
  • The Issues page has a search and pages, so thousands of issues do not make one huge page.
  • Watching the folders no longer keeps or sorts the list of every file.