Формат DBPF2 и его декодирование: Часть теоретическая
Автор: AnriRS
Статьи по теме
- библиотека компонентов для работы с файлами TS3 – DBPF2: типы данных, на русском языке;
- библиотека компонентов для работы с файлами TS3 – DBPF2: декодер и кодер, на русском языке;
- описание формата – Sims3: DBPF, на английском языке;
- описание формата – Spore: DBPF, на английском языке;
- типы ресурсов, которые могут храниться в файле Package – Sims3: File Types на английском языке;
Файл Package в формате DBPF версии 2.0 хранит различные типы записей и состоит из трех частей:
- заголовка файла;
- индексной таблицы;
- секции данных;
Заголовок данных
Заголовок данных имеет размер 96 байт такого вида:
Назначение важных полей описано в следующем разделе
Индексная таблица
Важно понимать, что, во-первых, записи могут не идти подряд, во-вторых, при возрастании номеров записей в индексной таблице вовсе не обязательно возрастают адреса размещения их данных.
Секция данных
Секция данных состоит из записей. Каждая запись характеризуется типом ресурса (ResourceType), группой (ResourceGroup) и экземпляром (Instance). Совокупность этих трех идентификаторов уникальна для каждой записи. Вообще-то запись – это просто набор байт, интерпретация которых зависит от типа ресурса