Final Fantasy: 20th Anniversary Edition/DPK
Материал из ConsolWiki
DPK является форматом игрового архива. Все хранимые в нём файлы — архивы такого же формата (по сути — папки). Внутри архива файлы упорядочены по возрастанию по хешу имени, а затем по самим именам.
Содержание
Структура файла
Размер | Данные |
---|---|
16 байт | Заголовок |
Количество файлов × размер записи файла | Записи файлов |
Суммарный размер файлов | Файлы |
Заголовок
Смещение | Размер | Описание |
---|---|---|
0x00 | 4 байта | Количество файлов |
0x04 | 4 байта | Общий размер архива |
0x08 | 4 байта | Не используется |
0x10 | 4 байта | Не используется |
Запись файла
Смещение | Размер | Описание |
---|---|---|
0x00 | 22 байта | Имя файла |
0x16 | 2 байта | Хеш имени файла (сумма кодов символов) |
0x18 | 4 байта | Смещение файла в архиве |
0x22 | 4 байта | Размер файла в запакованном виде |
0x26 | 4 байта | Размер файла в распакованном виде |
Сжатие
Сжатые файлы имеют расширение ".NPK", несжатые — расширение ".PCK"; также у несжатых файлов равны указанные размеры в запакованном и не запакованном виде. Для сжатия используется алгоритм LZ77. Вместо классического байта в качестве минимальной оперативной единицы используется слово размером в два байта. Маска сжатия занимает 32 бита вместо классических 8-ми.
// TODO: Код распаковки