Skip to content

0.4

Choose a tag to compare

@deadinside28 deadinside28 released this 07 Oct 20:30
· 6 commits to master since this release

English · Русский

bbport is the counterpart of Wine + DXVK for a single game: Bloodborne (CUSA03173, v1.09) on Linux. The game's x86-64 code runs directly on the CPU, a runtime written for this game replaces the PS4 system libraries, and the graphics are translated to Vulkan. No game files are included — you need your own dump. AppImage for desktops and the Steam Deck: data in ~/.local/share/bbport, --play starts the game without the launcher window.

Questions about this project: Discord https://discord.gg/KYZRKk9CB — not the shadPS4 server.

What's new since 0.3

FSR 4.1.1 from one DLL, with a button

  • Launcher: Upscaler → FSR 4.1.1 from your own AMD DLL → Choose DLL…, pick amd_fidelityfx_upscaler_dx12.dll 4.1.x (OptiScaler's FSR4_LATEST, or a game with FSR 4.1) — that one file is enough, no loader DLL needed. The DLL is checked first (version, model), then recorded under Proton and translated; progress in the row and in the Log tab, FSR 4.1.1 is selected at the end. Without a window: --build-fsr411 <DLL>.
  • The AppImage brings its own tools: nothing to install but a Proton build. On NixOS the AppImage now builds too: the recording runs on the system through the user's systemd, with umu-launcher from nix-shell. The Proton build is picked automatically (GE-Proton 10+, Proton-CachyOS, Proton Experimental; Steam's Proton 11.0 and GE-Proton 9 do not start FSR 4.1), in the Steam runtime it needs or through umu-launcher.
  • DLLs that cannot work are refused at once with an explanation: AMD's FSR 4.0.x (RDNA4-only) and community INT8 builds (4.0.2b/c).
  • Fixed: a second build from the AppImage failed with Permission denied.
  • RDNA4 (RX 9000): FSR 4.1.1 in FP8. There the DLL runs another variant of its passes, on FP8 matrices. The build records it as well and the game uses it automatically on GPUs with FP8 matrices; INT8 everywhere else. Checked through FP8 emulation on an RX 7800 XT: bit-exact with the DLL. Not yet run on RDNA4 hardware — reports welcome (BB_FSR411_VARIANT=int8 goes back to INT8).

Faster on weak CPUs

  • WRITE_DATA and DMA no longer wait for every pending host copy, only for those touching their range (37 → 2 waits per frame); presenting is recorded on the recording threads. 4 cores / 8 threads (as the Steam Deck): 158 → 167 FPS standing in Yahar'gul, 143 → 146 in the Hunter's Dream.

New memory and translation model — still experimental, off by default

  • Launcher: Mode → New memory and translation model. The game's memory is used by the GPU in place, and the PS4 command processor's work is translated into Vulkan commands. AMD GPUs only (the switch is unavailable elsewhere). Without it the game runs on the 0.3 memory model with all the fixes below.

Fixes

  • Depth of field: dark rectangles, stripes and a flipped copy of the scene in the far blur (sky, fog) with any upscaler (#44).
  • A damaged shader cache (power loss, crash while writing) no longer stops the game at start (#28, #38, #39); the cache is written atomically.
  • Camera motion vectors: the vertical sign is now taken from each frame's G-buffer instead of being fixed — 0.2 and 0.3 were each wrong in some places (#41, #42, #47, #18).
  • Minimizing the window (Win+D) no longer ends the game (#31).
  • CPUs without AVX/BMI1/MOVBE/LZCNT/POPCNT/SSE4.2 (Intel before Haswell) get a clear message instead of Guest fault (signal 4) (#26).
  • BB_READBACKS=2 (precise readbacks) no longer hangs at start.
  • The FSR 4.1.1 build no longer stops silently when a Steam library has no GE-Proton (#40).

Controls and the in-game menu

  • The gesture menu opens from the touchpad again (it did not at all): touches are reported as a DualShock 4 does (a new id per touch, hold time). Left half — gestures, right half — key items; Tab / Backspace and Back/Select as before.
  • The keyboard works next to a connected gamepad (the Steam Deck always has one): before, only Tab and Backspace did.
  • Changing a setting in the in-game menu no longer erases the keyboard and gamepad bindings made in the launcher.
  • The in-game menu (Insert / L3+R3) opens where you left it, also after a restart, and shows the mouse cursor.
  • In-game menu in English or Russian (Language in the menu); launcher in Brazilian Portuguese.

Notes

  • On the Steam Deck use FSR 3 and the 1280×720 output.
  • FSR 4.1.1 models are not included (they come from AMD's DLLs): build them with the launcher's button.
  • NVIDIA: use FSR 3; the new memory model is not available.
  • Not tested yet: FP8 on RDNA4 hardware, the FSR 4.1.1 button on the Steam Deck and on distributions other than NixOS, keyboard play next to a gamepad.

Details (in Russian): docs/CHANGES_0.4.md.


Русский

bbport — аналог Wine + DXVK для одной игры: Bloodborne (CUSA03173, v1.09) на Linux. x86-64-код игры выполняется прямо на процессоре, системные библиотеки PS4 заменяет рантайм, написанный под эту игру, графика переводится в Vulkan. Файлов игры нет — нужен свой дамп. AppImage для ПК и Steam Deck: данные в ~/.local/share/bbport, --play — запуск без окна лаунчера.

Вопросы по проекту — в Discord https://discord.gg/KYZRKk9CB, а не на сервер shadPS4.

Что нового с 0.3

FSR 4.1.1 из одной DLL, кнопкой

  • Лаунчер: Апскейлер → FSR 4.1.1 из своей DLL AMD → Выбрать DLL… и указать amd_fidelityfx_upscaler_dx12.dll 4.1.x (папка FSR4_LATEST у OptiScaler или игра с FSR 4.1) — одного этого файла достаточно, загрузчик не нужен. DLL сначала проверяется (версия, модель), потом записывается под Proton и переводится; ход — в строке и во вкладке «Журнал», в конце FSR 4.1.1 выбирается. Без окна: --build-fsr411 <DLL>.
  • В AppImage уже есть все инструменты: ставить ничего не нужно, кроме Proton. На NixOS AppImage теперь тоже собирает: запись идёт на самой системе через systemd пользователя, с umu-launcher из nix-shell. Proton выбирается сам (GE-Proton 10+, Proton-CachyOS, Proton Experimental; Proton 11.0 из Steam и GE-Proton 9 FSR 4.1 не запускают), в рантайме Steam, который ему нужен, или через umu-launcher.
  • DLL, которые работать не будут, отклоняются сразу с объяснением: официальная FSR 4.0.x от AMD (только RDNA4) и INT8-сборки сообщества (4.0.2b/c).
  • Исправлено: повторная сборка из AppImage падала с Permission denied.
  • RDNA4 (RX 9000): FSR 4.1.1 в FP8. Там DLL запускает другой вариант проходов — на матрицах FP8. Сборка записывает и его, а игра сама берёт его на видеокартах с матрицами FP8; на остальных — INT8. Проверено через эмуляцию FP8 на RX 7800 XT: побитово как DLL. На самой RDNA4 ещё не запускалось — отзывы нужны (BB_FSR411_VARIANT=int8 — вернуть INT8).

Быстрее на слабых процессорах

  • WRITE_DATA и DMA больше не ждут все отложенные копии хоста, только касающиеся их диапазона (37 → 2 ожидания за кадр); показ кадра записывается на потоках записи команд. 4 ядра / 8 потоков (как Steam Deck): 158 → 167 FPS стоя в Яр'гуле, 143 → 146 во Сне Охотника.

Новая модель памяти и трансляции — по-прежнему экспериментальная, по умолчанию выключена

  • Лаунчер: Режим работы → Новая модель памяти и трансляции. Видеочип использует память игры на месте, а работа командного процессора PS4 переводится в команды Vulkan. Только видеокарты AMD (на других переключатель недоступен). Без него работает модель памяти 0.3 со всеми исправлениями ниже.

Исправления

  • Глубина резкости: тёмные прямоугольники, полосы и перевёрнутая копия сцены в дальнем размытии (небо, туман) с любым апскейлером (#44).
  • Повреждённый кэш шейдеров (отключение питания, вылет при записи) больше не останавливает игру при запуске (#28, #38, #39); кэш пишется атомарно.
  • Векторы движения камеры: знак вертикальной оси берётся из G-buffer каждого кадра, а не задан раз и навсегда — 0.2 и 0.3 ошибались каждая в своих местах (#41, #42, #47, #18).
  • Сворачивание окна (Win+D) больше не завершает игру (#31).
  • Процессор без AVX/BMI1/MOVBE/LZCNT/POPCNT/SSE4.2 (Intel до Haswell) — понятное сообщение вместо Guest fault (signal 4) (#26).
  • BB_READBACKS=2 (точное обратное чтение) больше не зависает при запуске.
  • Сборка FSR 4.1.1 больше не завершается молча, если в одной из библиотек Steam нет GE-Proton (#40).

Управление и меню в игре

  • Меню жестов снова открывается с тачпада (раньше не открывалось вовсе): касания передаются так, как их отдаёт DualShock 4 (новый id на каждое касание, время удержания). Левая половина — жесты, правая — личные вещи; Tab / Backspace и Back/Select — как раньше.
  • Клавиатура работает и при подключённом геймпаде (на Steam Deck он есть всегда): раньше работали только Tab и Backspace.
  • Изменение настройки в игровом меню больше не стирает назначения клавиатуры и геймпада из лаунчера.
  • Меню настроек (Insert / L3+R3) открывается там, где его оставили, в том числе после перезапуска, и показывает курсор мыши.
  • Меню в игре на английском или русском (Language в меню); лаунчер на бразильском португальском.

Важно

  • На Steam Deck используйте FSR 3 и вывод 1280×720.
  • Модели FSR 4.1.1 не входят в сборку (они из DLL AMD): соберите их кнопкой в лаунчере.
  • NVIDIA: используйте FSR 3; новая модель памяти недоступна.
  • Ещё не проверено: FP8 на самой RDNA4, кнопка FSR 4.1.1 на Steam Deck и на дистрибутивах кроме NixOS, игра с клавиатурой при подключённом геймпаде.

Подробно: docs/CHANGES_0.4.md.