Skip to content

File System ru RU

PRXPHET edited this page Jul 12, 2025 · 1 revision

Поддерживаемые виды архивов

Движком поддерживаются два вида архивов:

  • X-Ray Legacy (*.db, *.xdb).
  • SquashFS (*.sq).

Из особенностей X-Ray Legacy можно лишь выделить только наличие собственного шифрования. Можно поменять значения с помощью сборки движка с файлом trivial_encryptor_ovr.h, и таким образом движок будет читать только архивы, которые были собраны с помощью вашего xrCompress.

В остальном, SquashFS будет лучше: лучше сжатие, быстрее распаковка/упаковка файлов, нет лимита по размеру архива.

Для упаковки: https://github.com/pmq20/squashfuse/files/691217/sqfs43-win32.zip

sqfs43-win32\mksquashfs.exe gamedata gamedata.sq_01 -comp lz4 -Xhc
pause

Для распаковки подойдёт https://github.com/mcmilk/7-Zip-zstd/releases/download/v24.09-v1.5.7-R1/7z24.09-zstd-x64.exe

Anomaly-style архивы

У архивов отсутствует ограничение по названию (gamedata.db*), а также сами архивы можно занести в подкаталог. Каталог для архивов указывается в fsgame.ltx:

$app_arch_root$         = true|   false|  $fs_root$		  | game_archs\

Чистка мусорных файлов

В движок было добавлено два условных вида чистки мусорных файлов:

  • Референсное копирование
  • Неиспользуемые референсы

В референсном копировании все нужные файлы дублируются в отдельную папку. Файлы копируются в тот момент, когда они непосредственно нужны игре, т.е. если загрузило какую-то текстуру, которая используется на какой-то модели, то в этот момент они и будут продублированы.

Из плюсов можно выделить то, что при идеальной отработке не потребуется больше каких-либо махинаций: запаковали отдельно папку в архив и пользуйтесь. Из минусов - занимает дополнительное место на диске.

Для включения референсного копирования, нужно запустить игру с ключом -dev_reference_copy. Также нужно добавить пути в fsgame.ltx:

$game_sounds_reference$	  = true|	false|	$fs_root$|		gamedata_ref\sounds\
$game_textures_reference$ = true|	false|	$fs_root$|		gamedata_ref\textures\
$game_meshes_reference$	  = true|	false|	$fs_root$|		gamedata_ref\meshes\

В неиспользуемых референсах создаётся текстовый файл со всеми возможными путями до файлов игры, и когда какой-либо файл требуется игре, путь удаляется из текстового файла.

Из плюсов можно выделить отсутствие требования к свободному месту на диске, а также возможность дополнительно сверить то, что нужно удалять или нет. Из минусов - удалять файлы придётся самостоятельно.

Для включения режима неиспользуемых референсов, нужно запустить игру с ключом -dev_gamedata_unused. После этого появится файл gamedata_unused.ltx в app_data_root.

Для обеих режимов потребуется до конца пройти игру (в идеале, несколько раз), чтобы быть уверенным, что все файлы будут обработаны.

Clone this wiki locally