В лаунчере появилась группа Моды: выбор папки, общий переключатель, включение каждого мода и стрелки порядка загрузки. Изменения применяются при следующем запуске. Нижний включённый мод имеет больший приоритет; при совпадении файлов в журнале выводится, какой мод заменил предыдущий.
По умолчанию используется bbport/mods/, а в AppImage —
~/.local/share/bbport/mods/. Распакуйте скачанный мод так:
mods/
Название мода/
dvdroot_ps4/
chr/...
param/...
menu/...
Также принимаются:
Название мода/app0/dvdroot_ps4/...иНазвание мода/CUSA03173/dvdroot_ps4/...;- лишняя папка-обёртка, как после распаковки архива в папку с его именем:
Название мода/Название мода v1.2/dvdroot_ps4/...(рядом могут лежать readme/картинки); - мод без
dvdroot_ps4, в котором сразу лежат папки игры:Название мода/chr/...,Название мода/parts/...(chr,parts,map,menu,msg,param,sfx,sound,fontи другие папкиdvdroot_ps4).
Регистр имён в моде не важен: DVDROOT_PS4/Chr/C0000.chrbnd.dcx из мода, собранного
под Windows, заменяет игровой dvdroot_ps4/chr/c0000.chrbnd.dcx. Раньше такой файл
добавлялся рядом под своим именем, и игра его не видела. В журнале запуска видно, сколько
файлов игры мод заменил и сколько добавил: Mods: 12 game files replaced, 0 added.
Если мод должен заменять файлы, а пишет 0 game files replaced, проверьте пути внутри мода.
Архивы ZIP/7z нужно предварительно распаковать. Поддерживаются готовые замены
файлов dvdroot_ps4: текстуры, модели, параметры, интерфейс, звук и шрифты.
Менеджер не объединяет содержимое двух одинаковых .dcx/.bnd файлов: последняя
замена выигрывает целиком.
Для уже подготовленной папки shadPS4 работает соседний каталог
CUSA03173-mods/dvdroot_ps4/... рядом с CUSA03173/. Он подключается автоматически
перед модами из списка. Общий переключатель выключает и его. Можно также выбрать
папку, непосредственно содержащую dvdroot_ps4, как папку модов; такая папка
подключается целиком, без списка отдельных модов.
Соглашение -mods проверено по
исходникам shadPS4.
Оригиналы игры не перезаписываются. На время запуска создаётся отдельное
объединённое дерево ссылок в каталоге данных out/mod-game-*; чтение, stat и
перечисление каталогов видят выбранные замены и остальные оригинальные файлы.
Игровые /app0 и /hostapp доступны только для чтения. Сохранения остаются
в прежней папке и доступны для записи. При обычном завершении или остановке
лаунчером временное дерево удаляется. После SIGKILL/аварийного отключения оно
может остаться; такие каталоги не используются в следующем запуске.
Моды с заменой eboot.bin, sce_module или sce_sys, инжекторы DLL и скриптовые
плагины этим загрузчиком не поддерживаются. Патчи исполняемого кода остаются
в существующей системе patches/ / BB_PATCHES. Символьные ссылки внутри мода
не принимаются. Совместимость конкретного мода с CUSA03173 1.09 определяется
его автором.
Для запуска из терминала:
BB_GAME_DIR=/path/to/CUSA03173 BB_MODS_DIR=/path/to/mods bash run.sh
BB_GAME_DIR=/path/to/CUSA03173 BB_MODS_ENABLED=0 bash run.shПорядок и отключения сохраняются в каталоге данных mods.json:
{"order": ["Первый", "Второй"], "disabled": ["Первый"]}Новые папки включаются автоматически и добавляются в конец по алфавиту.
BB_MODS_CONFIG меняет путь профиля. BB_MOD_TRACE=1 с BB_MODS_DIR выводит
первые чтения реально подключённых файлов для диагностики.
Пакеты с увеличенными текстурами карт не помещаются в графические кучи игры, рассчитанные
на PS4 (2287 и 886 МиБ). Когда куча заполнена, выделения памяти GPU в игре не удаются:
текстуры мерцают, затем игра падает (код 139 в клинике Йозефки, за которой подгружается
Запретный лес, #240). Запуск находит такой пакет сам — и подключённый из папки модов, и уже
записанный в папку игры: текстуру карты больше 4096 пикселей по стороне (у розничной 1.09
таких нет). Тогда применяется патч Increased Graphics Heap Sizes (кучи 3952 и 2560 МиБ, как
у патчей разрешения выше 1080p) и прямая память 9152 МиБ — примерно на 3,3 ГБ больше
оперативной памяти. В журнале:
Graphics heaps: larger (a texture pack: dvdroot_ps4/map/m24/m24_0000.tpfbhd has 8192-pixel textures, ...).
Первая проверка читает около 8600 записей архивов текстур карт (на SSD — доли секунды),
ответ хранится в out/texture-pack.json, пока файлы текстур не изменятся. BB_LARGE_HEAPS=1
включает большие кучи всегда (для пакета, который проверка не узнаёт: например, увеличившего
текстуры не больше чем до 4096), BB_LARGE_HEAPS=0 выключает.
Папка patches/ в каталоге данных (в AppImage — ~/.local/share/bbport/patches/, в лаунчере
группа Сторонние патчи, там же можно выбрать другую папку). Подходят XML-файлы патчей в
формате shadPS4/GoldHEN: берутся Metadata для AppVer="01.09" и eboot.bin, файлы с
TitleID других игр пропускаются. Включение по умолчанию — из isEnabled файла, выбор в
лаунчере сохраняется в patches.json каталога данных:
{"enabled": ["файл.xml/Имя патча"], "disabled": ["файл.xml/Другой патч"]}Поддерживаются строки bytes, bytes16/32/64, float32/64, utf8, utf16.
Патч со строками mask (поиск по шаблону) или с адресом вне eboot пропускается целиком,
с сообщением в журнале. Сторонние патчи применяются после встроенных
(patches/Bloodborne.xml): при пересечении побеждает сторонний. Из терминала:
BB_PATCHES_DIR=/путь BB_PATCHES_CONFIG=/путь/patches.json bash run.sh.
Патчи, которые заменяют указатели в таблицах (как 60 FPS++ и 90 FPS++), загрузчик
переносит на реальный адрес образа. Раньше такие патчи останавливали запуск ошибкой
patch overlaps a relocation.
Настройки sharpen и sharpness теперь работают также для TAA, в лаунчере и
меню игры. Диапазон — 0…1; при 0 или выключенном переключателе дополнительного
прохода нет. RCAS применяется к готовой сцене перед HUD. В историю TAA сохраняется
цвет до повышения резкости, чтобы она не усиливалась при повторном накоплении.
Ровные участки сохраняют исходный цвет, включая HDR; дополнительный буфер не нужен.