DB-архивы — S.T.A.L.K.E.R. Inside Wiki

DB-архивы

Материал из S.T.A.L.K.E.R. Inside Wiki

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

Формат .db архивов финальной версии игры

Формат блока хидера следующий:

Длина имени - беззнаковое 2 байт

Размер файла - беззнаковое 4 байт

Размер сжатого - беззнаковое 4 байт

crc файла - беззнаковое 4 байт

Далее идёт имя файла размер = Длине имени(смотрим выше)

Смещение в файле - беззнаковое 4 байт

+ все это повторяется для всех фаилов

Как найти нужный чанк(блоки данных в файле):

С начала файла читаем 4 байта - id блока, след. 4 байта - размер блока.

Ну, а дальше не проблема пропустить блоки с ненужным id

Автор: Neo

Дополнение:

Вообще файл состоит из индекса и данных. Индекс содержит названия файлов, смещения, и размеры. В ТЧ индекс зашифрован разными ключами для разных версий игры. В ЧН он не зашифрован, разница между англ и рус версиями архивов исключительно в коде которым зашифрован индекс. В начале файла лежит таблица с путями. Она сжата и зашифрована, наподобии зипа, но только более быстрым алгоритмом.

Простой и быстрый шифр + быстрое сжатие по Хаффману - [1]

Код Хаффмана - общий алгоритм сжатия. Он слабый, но простой и быстрый. Есть туча разных реализаций. Одна из них используется в Сталкере. Для того, чтобы получить таблицу с путями нужна именна та же реализация.

Автор: Don Reba

Для русской версии:

Dbarchivesn.jpg


ЗЫЫ:

Для архивов 2002-2005 xrp/xp0 года юзался более упрощенный метод компрессии LZW - [2]

Автор: Anonymous



Другие места
LANGUAGE