PPF patch files
A PPF file patches a CD or DVD disc image such as a .bin or .iso, rather than a cartridge ROM. It writes changes at absolute offsets, so an image never shrinks, though a record past the end will extend one. Three versions exist: PPF1 stores no verification data, PPF2 adds the image size and a 1024-byte sample of it, and PPF3 adds an image-type field and makes that sample optional.
- Extension
- .ppf
- Identifier bytes
- PPF10, PPF20 or PPF30
- Verifies your ROM
- No
- Can change ROM size
- Yes
- Create on this site
- Yes
- Common on
- PlayStation, PlayStation 2, Sega Saturn, Dreamcast
Limitations
- Cannot make an image smaller, only leave it alone or extend it.
- This patcher does not check the verification block that PPF 2.0 and 3.0 can carry.
Why disc images need a different format
A PlayStation game is not a flat ROM. It is a disc image with sector structure, and it is large. Patch formats designed around whole-file checksums are awkward here, so PPF simply overwrites byte ranges at absolute positions. In normal use the size does not change, because a disc image is a fixed shape and a patch has no reason to alter it. Nothing stops a record writing past the end, though, and when one does the image grows to fit. What PPF genuinely cannot do is make an image smaller.
That design has a consequence worth knowing: a PPF patch does not care whether your image is the right game. Version 1 has no verification data at all, and while versions 2 and 3 can carry a 1024-byte sample of the original image, this patcher does not compare it. So where BPS or UPS would refuse to apply to a file whose checksum does not match, a PPF patch applies to whatever you load. Treat every PPF patch as unverified and check your image yourself first.
The three PPF versions
| Version | Magic | Validation |
|---|---|---|
| PPF 1.0 | PPF10 | None. Applies to any file. |
| PPF 2.0 | PPF20 | Stores the image size and a 1024-byte block from offset 0x9320 for identification. |
| PPF 3.0 | PPF30 | Adds an image type field and makes the block check optional. |
The five magic characters are followed by an encoding byte, 0x00, 0x01 or 0x02, naming the same version again. In PPF 3.0 the block offset depends on the image type field: 0x9320 for a BIN image, 0x80A0 for a GI image.
Even where the block is present, it is not a hard gate. The original Paradox applyppf tool prompts and lets you continue past a failed block check, and this patcher does not compare the block at all. Treat it as a hint, not a guarantee.
PPF files can also carry a FILE_ID.DIZ description block, wrapped in @BEGIN_FILE_ID.DIZ and @END_FILE_ID.DIZ markers after the patch data, which some tools display as release notes.
Patching a BIN/CUE set
Patch the .bin file, not the .cue. The .cue is a small text file describing track layout and is not what the patch targets. If a game has multiple .bin tracks, the patch normally targets track 1.
Frequently asked questions
Do I patch the BIN or the CUE file?
The BIN. The CUE file is a plain-text index describing the disc tracks and contains none of the game data a patch modifies. Leave the CUE untouched.
Can a PPF patch change the size of my ISO?
It can only grow one. PPF writes at absolute offsets, so almost every patch leaves the size alone, but a record that writes past the end of the image extends it. There is no way to express a truncation, so a PPF patch can never make an image smaller.
Why did my PPF patch apply but the game is broken?
PPF applies to any image you give it, including the wrong one. Version 1 stores no verification data, and this patcher does not check the optional block that versions 2 and 3 can carry. Confirm your image matches the redump or hack author’s stated checksum before patching.