Repository navigation
0.3
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.2
Upscalers: no more smearing on stairs
- Camera motion vectors had the vertical axis inverted. Camera pitch and vertical movement were wrong, so wherever the camera bobs up and down — the Cathedral Ward stairs, the sewers — FSR 4 / 4.1.1 smeared the background in streaks and FSR 3.1 blurred it, while the character stayed sharp. Checked against the GPU's own per-vertex motion: now within 0.05 px (was 1.3–3.7 px off).
- 16× anisotropic filtering for scene textures (the game uses 1× for most of them): sharper floors, stairs and walls seen at an angle.
BB_ANISO=0restores the game's filtering.
VRAM no longer grows from area to area
- The texture cache never freed anything; game memory blocks in VRAM were never given back. Now textures unused for 20 s and memory blocks unused for 60 s are released, smaller VMA blocks avoid fragmentation. 13 minutes of teleporting: 3.8 → 7.3 GB before, 4–5.5 GB now.
- Frame statistics have a
Memory:line (VRAM, GTT, RSS, caches).
New memory model — experimental, off by default
- The game's memory lives in system RAM and the GPU uses it in place, like a PC game's buffers: no write tracking, no copies of the whole GPU memory — faster and fewer stutters (Yahar'gul: 144 FPS with the old model, 152–155 with the new one).
- Tested only on the author's PC (RX 7800 XT) and a Steam Deck. It may crash, and it does not work properly on NVIDIA (the port detects this and stays on the old model). Turn it on in the launcher: Performance → New memory model (experimental). By default the 0.2 model is used.
Stability
Guest fault ... 0x263b8e7(frequent on the Steam Deck): GPU completion labels were written withmemcpy, i.e. as two overlapping stores; the game could free the block in between. Now a single atomic store. Not yet confirmed on the Deck.- GPU hangs no longer look like a silent freeze with the sound still playing: a lost device is detected, a 10 s watchdog writes a report naming the stuck draw/dispatch and stops the game. A hang in a particle compute shader was located; the cause is not fixed yet — please send the log if it happens.
- Game files are checked at start: without the 1.09 update, with an old eboot or another edition, the launcher explains what is wrong (
BB_SKIP_GAME_CHECK=1skips it).
Controls and launcher
- Keyboard and gamepad remapping: Controls → Keyboard / Gamepad, press Assign and the key/button.
- Choose the controller to use (wheels and other devices no longer get picked); the selected one is taken as soon as it connects.
- Character name entry in a window over the game.
- The mouse cursor is hidden in fullscreen and after 3 s without movement.
- Drop-down lists show short choices with the full description under the title — no more cut-off text.
Game patches
- Sprint Fix (High FPS): above ~147 FPS (sometimes above ~90) sprinting dropped to half speed. Always applied with the 90 FPS and unlimited modes.
- Intel CPUs: the game's tone mapping turned black / darker than on the PS4 (most of all in the DLC), because Intel's approximate float instructions give different values. The fix is applied automatically on Intel (
BB_INTEL_TONEMAP_FIX=0/1forces it).
Other
- MangoHud is drawn once: two overlays (the AppImage's and a system MangoHud, or Steam's performance overlay on the Deck) showed doubled, offset text.
- FSR 4.1.1 asset build: picks the newest GE-Proton correctly, works without Nix, and avoids the FP8 shader variant on RDNA4 (untested on RDNA4).
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
tools/fsr4cap/build_assets.shinto~/.local/share/bbport/fsr4_411. - NVIDIA: use FSR 3; keep the new memory model off.
- Next patch: the rest of the graphics renderer moves from decoding the PS4 GPU's command stream to DXVK-style translation of the game's graphics API calls.
Details (in Russian): docs/CHANGES_2026-10-06.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.2
Апскейлеры: больше нет мыла на лестницах
- В векторах движения камеры была перевёрнута вертикальная ось. Наклон камеры и движение вверх-вниз считались неверно, поэтому там, где камера покачивается, — лестница к собору, канализация — FSR 4 / 4.1.1 мазали фон полосами, а FSR 3.1 размывал его, при этом персонаж оставался чётким. Сверено с векторами самого GPU по вершинам: теперь расхождение до 0,05 пикселя (было 1,3–3,7).
- Анизотропная фильтрация 16x для текстур сцены (игра ставит большинству 1x): чётче пол, ступени и стены под углом.
BB_ANISO=0— фильтрация игры.
Видеопамять больше не растёт от локации к локации
- Кэш текстур ничего не освобождал, блоки памяти игры в VRAM не возвращались. Теперь текстуры, не использованные 20 с, и блоки, не использованные 60 с, освобождаются, а блоки VMA меньше и не дробят память. 13 минут телепортов: было 3,8 → 7,3 ГБ, стало 4–5,5 ГБ.
- В статистике кадров есть строка
Memory:(VRAM, GTT, RSS, кэши).
Новая модель памяти — экспериментальная, по умолчанию выключена
- Память игры в оперативной памяти, GPU использует её на месте, как буферы игры для ПК: без отслеживания записей и копий всей памяти GPU — быстрее и меньше рывков (Яр'гул: 144 FPS на старой модели, 152–155 на новой).
- Проверена только на ПК автора (RX 7800 XT) и Steam Deck. Может вылетать и не работает должным образом на NVIDIA (порт это замечает и остаётся на старой модели). Включается в лаунчере: Производительность → Новая модель памяти (экспериментально). По умолчанию работает модель 0.2.
Стабильность
Guest fault ... 0x263b8e7(частый на Steam Deck): метки завершения GPU писались черезmemcpy, то есть двумя перекрывающимися записями, и игра успевала освободить блок между ними. Теперь — одна атомарная запись. На Деке ещё не подтверждено.- Зависание GPU больше не выглядит как тихая заморозка при играющем звуке: потеря устройства замечается, сторож через 10 с пишет отчёт с отрисовкой, на которой встал GPU, и останавливает игру. Найдено зависание в шейдере частиц; причина ещё не устранена — если случится, пришлите журнал.
- При запуске проверяются файлы игры: без обновления 1.09, со старым eboot или другим изданием лаунчер объясняет, что не так (
BB_SKIP_GAME_CHECK=1— пропустить).
Управление и лаунчер
- Переназначение клавиатуры и геймпада: Управление → Клавиатура / Геймпад, «Назначить» и нажать клавишу или кнопку.
- Выбор контроллера (рули и другие устройства больше не перехватывают ввод); выбранный берётся, как только подключится.
- Ввод имени персонажа в окне поверх игры.
- Курсор мыши скрыт в полноэкранном режиме и через 3 с без движения.
- Выпадающие списки показывают короткие варианты, а полное пояснение — под заголовком: текст больше не обрезается.
Патчи игры
- Sprint Fix (High FPS): выше ~147 FPS (иногда выше ~90) бег падал до половины скорости. Всегда включается с режимами 90 FPS и «без ограничения».
- Процессоры Intel: тонмаппинг игры становился чёрным / темнее, чем на PS4 (сильнее всего в DLC), потому что приближённые float-инструкции Intel дают другие значения. Исправление включается само на Intel (
BB_INTEL_TONEMAP_FIX=0/1— принудительно).
Прочее
- MangoHud рисуется один раз: два оверлея (из AppImage и системный, или оверлей производительности Steam на Деке) давали двоящийся текст со сдвигом.
- Сборка ассетов FSR 4.1.1: правильно выбирает новейший GE-Proton, работает без Nix и обходит FP8-вариант шейдеров на RDNA4 (на RDNA4 не проверено).
Важно
- На Steam Deck используйте FSR 3 и вывод 1280×720.
- Модели FSR 4.1.1 не входят в сборку (они из DLL AMD): соберите их
tools/fsr4cap/build_assets.shв~/.local/share/bbport/fsr4_411. - NVIDIA: используйте FSR 3, новую модель памяти не включайте.
- Следующий патч: остальная часть графического рендера переходит с разбора команд видеочипа PS4 на трансляцию вызовов графического API игры, по типу DXVK.
Подробно: docs/CHANGES_2026-10-06.md.