Skip to content

[LIMITATION] PFSC zero-tail: folder→FFPFS include zero-padding when decoded, causing console read failures #49

Description

@RenanGBarreto

Summary

Some PFSC-compressed files served from mounted game backups appear correct at the start but include extra zero bytes appended up to the next 64 KiB block boundary. That zero-padding causes checksums and console reads to fail for certainassets (fonts, cinematics, some animation families), even though images may verify locally.

Observed symptom

  • Downloads return the original file bytes followed by zero bytes up to the next PFSC logical-block boundary.
  • Affected assets vary by path and family; the problem is not limited to a single file extension.

Scope / when this happens

  • This is not a problem for all PFS images. It occurs specifically when converting a game backup folder in a single-pass (folder→FFPFS) flow with PFSC compression enabled. Images produced using a container/wrapper-based flow (e.g., FFPFSC) are not affected by this single-pass-with-compression failure mode.

Likely cause (high level)

  • A mismatch in PFSC size/offset semantics between the writer and reader: the producer encodes or declares sizes one way and the consumer expects block-aligned lengths or interprets offsets differently. As a result, the reader may reconstruct padded logical blocks and not trim them back to the original file length, producing zero tails.

Impact

  • Users who convert raw game backup folders directly into compressed FFPFS images (single-pass with compression enabled) can create images that pass local verification but fail when read on the console or other readers for a subset of files.
  • The issue is dataset-specific (mixed safe/unsafe samples), so blanket extension-based rules are unreliable.

Short-term mitigation (practical)


ℹ️ At this moment, there is no known solution for this issue. Preffer to use FFPFSC over Compressed FFPFS.

Metadata

Metadata

Assignees

Type

Fields

No fields configured for Bug.

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions