But that's my point, the developer included a text file in the utitilies folder called:
PLAYSTATION PATCH FILE VERSION 3.0 FILE-STRUCTURE FOR DEVELOPERS|
1. The PPF 3.0 Header:
@START_PPF30HEADER
.----------+--------+----------------------------------------------.
| POSITION | SIZE | E X P L A N A T I O N |
+----------|--------|----------------------------------------------+
| 00-04 | 05 | PPF-Magic: "PPF30" |
+----------|--------|----------------------------------------------+
| 05 | 01 | Encoding Method: |
| | | - 0x00 = is a PPF 1.0 Patch |
| | | - 0x01 = is a PPF 2.0 Patch |
| | | - 0x02 = is a PPF 3.0 Patch |
+----------|--------|----------------------------------------------+
| 06-55 | 50 | Patch Description |
+----------|--------|----------------------------------------------+
| 56 | 01 | Imagetype: |
| | | - 0x00 = BIN (any) |
| | | - 0x01 = GI (PrimoDVD) |
+----------|--------|----------------------------------------------+
| 57 | 01 | Blockcheck/Patchvalidation: |
| | | - 0x00 = Disabled |
| | | - 0x01 = Enabled |
| | | If disabled applyppf won't validate the patch|
| | | also the 1024 byte block won't be available. |
+----------|--------|----------------------------------------------+
| 58 | 01 | Undo data: |
| | | - 0x00 = Not available |
| | | - 0x01 = Available |
| | | If available applyppf will be able to |
| | | restore a previous patched bin to back to its|
| | | original state. Patchsize increases of course|
+----------|--------|----------------------------------------------+
| 59 | 01 | Dummy: |
| | | Not used. |
+----------|--------|----------------------------------------------+
| 60-1083 | 1024 | Binary block: |
| | | It is used for patchvalidation. |
| | | If Imagetype = 0x00 then its data starting |
| | | from 0x9320. |
| | | If Imagetype = 0x01 then its data starting |
| | | from 0x80A0. |
| | | If Blockcheck = 0x00 then this block won't be|
| | | available. |
+----------|--------|----------------------------------------------+
| 1084-X | XX | The Patch itself.. see below for structure! |
'----------+--------+----------------------------------------------'
@END_PPF30HEADER - TOTAL HEADER-SIZE = 1084 BYTE with validation and
60 BYTE without validation.
And it goes on, don't want to spam the whole file but I'm pretty sure everything you need is included in that file.
EDIT: Read the PPF3.txt in the ppfdev folder, it contains the whole structure provided with examples