Final Fantasy: 20th Anniversary Edition/DPK

Материал из ConsolWiki
Перейти к: навигация, поиск

DPK является форматом игрового архива. Все хранимые в нём файлы — архивы такого же формата (по сути — папки). Внутри архива файлы упорядочены по возрастанию по хешу имени, а затем по самим именам.

Структура файла

Размер Данные
16 байт Заголовок
Количество файлов × размер записи файла Записи файлов
Суммарный размер файлов Файлы
Показать код на языке: C++

Заголовок

Смещение Размер Описание
0x00 4 байта Количество файлов
0x04 4 байта Общий размер архива
0x08 4 байта Не используется
0x10 4 байта Не используется
Показать код на языке: C++

Запись файла

Смещение Размер Описание
0x00 22 байта Имя файла
0x16 2 байта Хеш имени файла (сумма кодов символов)
0x18 4 байта Смещение файла в архиве
0x22 4 байта Размер файла в запакованном виде
0x26 4 байта Размер файла в распакованном виде
Показать код на языке: C++

Сжатие

Сжатые файлы имеют расширение ".NPK", несжатые — расширение ".PCK"; также у несжатых файлов равны указанные размеры в запакованном и не запакованном виде. Для сжатия используется алгоритм LZ77. Вместо классического байта в качестве минимальной оперативной единицы используется слово размером в два байта. Маска сжатия занимает 32 бита вместо классических 8-ми.

// TODO: Код распаковки