github Coder787-source/KytyPlus v5.0

one hour ago

KytyPlus v5.0

One fix, and it is a compatibility one: PS5 packages no longer abort during installation on
titles whose filesystem metadata is not the last thing in the package.

Package installation (issue #20)

  • Gran Turismo 7's package failed before listing a single file. The installer reported
    Invalid package range: offset=25FC1FD8031, length=3FFDC, total=1F27EE0000 — a read 2.6 TB past
    the end of a 134 GB package. The offset was never the problem; the position it came from was.
  • How the position is chosen was the bug. The package layout lists one boundary per file, and
    the installer took the highest boundary that was 64 KiB-aligned and treated it as the start of the
    game's filesystem. That granularity is finer than the mount is served in: blocks are 256 KiB, so
    a boundary 128 KiB inside a block is a file tail, not a superblock. Decoding a file tail is what
    produced the impossible offset.
  • The position is now proven by decoding it, not guessed. Candidates are required to sit on a
    real block boundary and are tried from the top down until one yields an actual PS5 filesystem
    superblock, which is the position every later read depends on. Up to 512 candidates are tried;
    each is a single block decode, so a package that resolves on the first candidate costs what it
    used to.
  • Failures now say which record broke. A block address that lands outside the package reports
    the records that produced it — the run record, its raw bits, the gap and the accumulated offset —
    instead of a bare range check that cannot be compared between two packages. Running the extractor
    with KYTY_NAPS_TRACE=1 additionally reports the outer filesystem's flags, including whether a
    package is encrypted, and the layout header's table sizes.

Known issues

  • This is verified not to regress the one PS5 package we can test here — it resolves at the same
    position on the first candidate and extracts every file — but Gran Turismo 7 itself has not been
    installed by us, and we will not ask anyone to send a dump. If a package's compressed-block
    addressing also breaks at that size, installation will now fail later, with a message that names
    the records, so the next report is actionable rather than a dead end.
  • Encrypted PS5 packages still cannot be installed. That is unchanged and not fixable here:
    retail package keys are not available, so only packages that carry the plain or debug marker get
    past the outer filesystem.
  • PS4 packages and .ffpfsc images do not use this code path at all, so neither is affected either
    way.

Don't miss a new KytyPlus release

NewReleases is sending notifications on new releases.