# Файловые моды В лаунчере появилась группа **Моды**: выбор папки, общий переключатель, включение каждого мода и стрелки порядка загрузки. Изменения применяются при следующем запуске. Нижний включённый мод имеет больший приоритет; при совпадении файлов в журнале выводится, какой мод заменил предыдущий. По умолчанию используется `bbport/mods/`, а в AppImage — `~/.local/share/bbport/mods/`. Распакуйте скачанный мод так: ```text 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](https://github.com/shadps4-emu/shadPS4/blob/main/src/core/file_sys/fs.cpp). Оригиналы игры не перезаписываются. На время запуска создаётся отдельное объединённое дерево ссылок в каталоге данных `out/mod-game-*`; чтение, stat и перечисление каталогов видят выбранные замены и остальные оригинальные файлы. Игровые `/app0` и `/hostapp` доступны только для чтения. Сохранения остаются в прежней папке и доступны для записи. При обычном завершении или остановке лаунчером временное дерево удаляется. После SIGKILL/аварийного отключения оно может остаться; такие каталоги не используются в следующем запуске. Моды с заменой `eboot.bin`, `sce_module` или `sce_sys`, инжекторы DLL и скриптовые плагины этим загрузчиком не поддерживаются. Патчи исполняемого кода остаются в существующей системе `patches/` / `BB_PATCHES`. Символьные ссылки внутри мода не принимаются. Совместимость конкретного мода с CUSA03173 1.09 определяется его автором. Для запуска из терминала: ```sh 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`: ```json {"order": ["Первый", "Второй"], "disabled": ["Первый"]} ``` Новые папки включаются автоматически и добавляются в конец по алфавиту. `BB_MODS_CONFIG` меняет путь профиля. `BB_MOD_TRACE=1` с `BB_MODS_DIR` выводит первые чтения реально подключённых файлов для диагностики. # Сторонние патчи (XML shadPS4) Папка `patches/` в каталоге данных (в AppImage — `~/.local/share/bbport/patches/`, в лаунчере группа **Сторонние патчи**, там же можно выбрать другую папку). Подходят XML-файлы патчей в формате shadPS4/GoldHEN: берутся `Metadata` для `AppVer="01.09"` и `eboot.bin`, файлы с `TitleID` других игр пропускаются. Включение по умолчанию — из `isEnabled` файла, выбор в лаунчере сохраняется в `patches.json` каталога данных: ```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`. # Резкость TAA Настройки `sharpen` и `sharpness` теперь работают также для TAA, в лаунчере и меню игры. Диапазон — **0…1**; при 0 или выключенном переключателе дополнительного прохода нет. RCAS применяется к готовой сцене перед HUD. В историю TAA сохраняется цвет до повышения резкости, чтобы она не усиливалась при повторном накоплении. Ровные участки сохраняют исходный цвет, включая HDR; дополнительный буфер не нужен.