zipatch-rs
A Rust library for parsing and applying FFXIV ZiPatch files (.patch).
ZiPatch is the binary patch format used by Final Fantasy XIV to deliver game updates. It describes file additions, deletions, and binary diffs that are applied to the game installation to bring it up to a new version.
What it parses
Chunk types
| Tag | Name | Notes |
|---|---|---|
FHDR |
File Header | V2 and V3 |
APLY |
Apply Option | ignore-missing, ignore-old-mismatch flags |
APFS |
Apply Free Space | |
ADIR |
Add Directory | |
DELD |
Delete Directory | |
SQPK |
SQPK command block | See sub-commands below |
EOF_ |
End of File |
SQPK sub-commands
| Command | Name | Notes |
|---|---|---|
A |
AddData | Writes data into a .dat file at a block offset |
D |
DeleteData | Zeros a block range in a .dat file |
E |
ExpandData | Expands a .dat file with an empty block |
H |
Header | Writes version or index headers into .dat/.index files |
F |
File | AddFile, DeleteFile, RemoveAll, MakeDirTree; supports DEFLATE-compressed blocks |
T |
TargetInfo | Platform (Win32, PS3, PS4), region, debug flag |
I |
Index | Parsed; no-op at apply time |
X |
PatchInfo | Parsed; no-op at apply time |
License
MIT — see LICENSE.