Формат .db архівів фінальної версії гри
Формат блоку хідера наступний:
Довжина імені - беззнакове 2 байт.
Розмір файлу - беззнакове 4 байт
Розмір стисненого - беззнакове 4 байт
crc файлу - беззнакове 4 байт
Далі йде ім'я файлу розмір = Довжина імені (дивимося вище)
Зміщення у файлі - беззнакове 4 байт
+ все це повторюється для всіх фаїлів
Як знайти потрібний чанк(блоки даних у файлі):
З початку файлу читаємо 4 байти - id блоки, слід. 4 байти - розмір блоку.
Ну а далі не проблема пропустити блоки з непотрібним id
Автор: Neo
Додаток:
Взагалі файл складається з індексу та даних. Індекс містить назви файлів, зміщення та розміри. У ТЧ індекс зашифровано різними ключами для різних версій гри. У ЧН він не зашифрований, різниця між англ і рус версіями архівів виключно в коді яким зашифровано індекс. На початку файлу лежить таблиця із шляхами. Вона стиснута і зашифрована, на зразок зипа, але тільки швидшим алгоритмом.
Код Хаффмана – загальний алгоритм стиснення. Він слабкий, але простий та швидкий. Є хмара різних реалізацій. Одна з них використовується у Сталкері. Для того, щоб отримати таблицю з шляхами потрібна саме та сама реалізація.