Основные сведения[]
Все игровые файлы в большинстве сборок запакованы в базы данных в виде файлов-архивов. За время существования игр серии «Сталкер» всего было четыре основных вида таких архивов:
- Файл с именем data.xrp или gamedata.xrp. Формат ранних сборок — до 1465 включительно.
- Файл (или несколько файлов) с именем вида gamedata.xp* (* — это число от 0 до 9). Формат для большинства сборок.
- Файл (или несколько файлов) с именем вида gamedata.db*. Формат для поздних предфинальных сборок и финальной игры. В случае финальной версии игры и предфинальной мультиплеерной сборки, формат был немного изменён и получил две разновидности - для русской и для международной версий.
- Файл (или несколько файлов) с расширением вида %имя_файла%.db*, реже %имя_файла%.xdb*. Формат для ресурсов модификаций (размещённых в папке
mods/
), а также ресурсов финальных версий Чистого Неба и Зова Припяти, в сборках не встречается.
Для работы с игровыми базами данных существует множество утилит, написанных фанатами игры. Наибольшую известность получил т.н. «конвертер Бардака», написанный программистом bardak. И эта известность, в первую очередь, связана с универсальностью утилиты. При помощи «конвертера» можно распаковывать все существующие форматы и запаковывать в форматы финальных версий игры (в т.ч. поздних сборок ТЧ). Кроме того, исходный код «конвертера« открыт, и любой желающий, при наличии хороших знаний C++, может использовать его по своему усмотрению.
Однако, у сей замечательной утилиты есть и недостатки. Во-первых, «конвертер» — это чисто консольная утилита, и с обработкой файлов большого размера (свыше, приблизительно, 1,8 Гб), могут возникнуть проблемы. Имеющийся любительский графический интерфейс положения не спасает, и корректно работает только с .xdb–форматом. Во-вторых, можно запаковывать только в форматы пре-бета и бета сборок. То есть для всех сборок с номерами до 2232, есть возможность только распаковки архивов. Впрочем, как уже было указано, исходный код открыт, и вышеупомянутые недостатки можно исправить.
Работа с утилитой Бардака[]
Последнюю версию можно скачать по прямой ссылке здесь, последнюю версию пака утилит (конвертер входит в его состав), можно скачать по прямой ссылке здесь.
Исходный код можно скачать по прямой ссылке здесь.
По сути, «конвертер» представляет собой многофункциональную утилиту для работы с файлами игры. Среди его функций есть такие специфические, как извлечение из трёхмерных моделей составных частей (анимация, скелет). Но в нашем случае, мы рассмотрим только одну возможность - работа с файлами баз данных.
Конвертер представляет собой консольное приложение, и работа с ним осуществляется через «батники».
Ниже представлено содержимое батников для распаковки и запаковки.
Распаковка
converter.exe -unpack %имя_файла_БД% -%ключ% -dir %имя_папки_назначения%[1]
Запаковка (для -2947ww, -2947ru, -xdb)
converter.exe -pack %имя_папки% -%ключ% -out %имя_файла_БД_назначения%
Ключи[]
Ключи — это специальные указатели, поясняющие «конвертеру», с каким форматом сейчас предстоит работа. Ниже приведены все необходимые для работы с базами данных ключи.
-11xx
Предназначен для формата архивов ранних версий игры. Обычно это один файл с именем data (до 1230 сборки) или gamedata (с 1230 до 1465) и расширением .xrp. Доступна только распаковка.
-2215
Предназначен для распаковки архивов большинства сборок (с номерами от 1469 и до 2232). Обычно это один или несколько файлов с расширениями вида .xp* (* — это число от 0 до 9). Доступна только распаковка.
-2945
Предназначен для распаковки архивов поздних сборок игры (с номерами от 2307), включая предрелизные мультиплеерные сборки (кроме 2947). Обычно это несколько файлов с расширениями вида .db*.
-2947ru
Предназначен для распаковки архивов русской версии финальной игры. Десять архивов с именем gamedata и расширениями от .db0 до .db9, четыре архива патчей .dba, .dbb, .dbc, .dbd и один архив украинской локализации .dbu.
-2947ww
Предназначен для распаковки архивов международной версии финальной игры, а также для распаковки официальной MP–сборки с номером 2947 и сборки Чистого Неба под номером 3120.
-xdb
Предназначен для распаковки архивов игр Чистое Небо и Зов Припяти.
-3120
Этот ключ был в самой первой версии конвертера; предназначается для 3120 сборки. По-сути, он аналогичен ключу -2947ww
.
Также для «конвертера» существует графический интерфейс пользователя, но с какой из версий утилиты он работает нормально, до сих пор непонятно — везде происходила корректная распаковка только для .xdb - формата.
Работа с утилитой от GSC[]
Утилита для работы с архивами от GSC присутствует в большинстве сборок — это xrCompress.exe. Формат, с которым утилита работает, определяется версией сборки, в составе которой она присутствовала.
Запаковка осуществлятся переносом необходимой папки методом Drag'n'Drop на xrCompress.exe. Также имеется вариант запаковки с помощью командной строки:
xrCompress.exe %имя_папки%
При этом существует такая особенность, что если путь задан как C:\folder\
то выходной файл будет в папке folder, а если путь задан как C:\folder
то выходной файл будет в корне диска C:\.
Ключи запаковки
- -fast - быстрая запаковка (меньше сжатие, но быстрее)
- -store - запаковка без сжатия (оптимально для тех ресурсов, которые сжатию поддаются очень плохо - текстуры, звуки, видео)
Распаковка есть, но как её осуществить — не ясно. Есть предположение, что в поздних версиях утилиты такая возможность вообще была убрана.
Создание различий
Таинственный ключ -diff
, с помощью которого, как предполагалось, осуществляется распаковка, на самом деле предназначен для создания различий между ресурсами, для получения патча.
xrCompress.exe -diff %имя_папки_с_изменёнными_ресурсами% %имя_папки_с_оригинальными_ресурсами% -out %имя_папки_для_результата%
Обратите внимание, в результате работы НЕ создаётся архив.
Пример использования. На ТЧ портирована некая локация из ЧН. Вместе с ней вытащены все используемые локацией текстуры и звуки. Но некоторые уже существуют в ресурсах ТЧ и только занимают место. С помощью данного режима, их можно отфильтровать.
Ключи создания различий
- -crc - не проверять по хешу CRC32
- -nofileage - не проверять по дате создания файлов
- -nosize - не проверять по размеру файлов
- -nobinary - не включать в проверку бинарные файлы (все которые не редактируются "блокнотом")
Также по проблеме есть сообщение с форума GM.
Вообще, утилита достаточно мало изучена. Есть сведения, подтверждающие то, что для неё существует большое количество ключей запуска. И вышеприведённое сообщение это подтверждает. Кроме того, версии утилиты из разных сборок различаются, иногда довольно значительно. Мододелы этот инструмент практически не используют, а применяется он в основном лишь теми, кто работает со старыми сборками, и только для запаковки игровых файлов.
Примечание. Есть xcompress 108 кб - он только запаковывает, 112( + xcore 2215 билд) распаковывает создавая разницу между пустой папкой gamedata (должна быть или выдаст ошибку), 396 кб - пока не изучено ВНИМАНИЕ при запаковке пропускает *old txt tga smf и еще не успел прочитать какие конвертер бардака по ссылке в xray_re-converter-rev6447-20110116.rar запустить не удалось, работает converter_25aug2008.7z
Другие инструменты[]
Также существуют другие программы для работы с игровыми ресурсами.
S.T.A.L.K.E.R. Universal Extractor[]
Программа с графическим интерфейсом, предназначена для распаковки всех трёх игр и 15 сборок. Последнюю версию можно скачать на этой странице.
Примечания[]
- ^ По умолчанию gamedata. Указывать необязательно.