bbhost README

The project's README from github.com/droogie/bbhost. As one markdown file: README.md.

bbhost

bbhost is a translation layer that runs Bloodborne on Windows and Linux. The game's own 1.09 executable runs unmodified on the PC's x86-64 CPU; bbhost answers its calls into the PS4's system libraries with PC implementations, and recompiles its GPU work, GCN shaders and the engine's draw calls, for Vulkan. The aim is a definitive PC version of the game - the original, intact, with what a PC release would add: any resolution and aspect ratio, 60 fps and beyond, keyboard and mouse, proper settings, mods and online play.

Cainhurst Castle

bbhost contains no game code or data. You need your own copy of the game: a dump with the 1.09 update and its decrypted executable.

Why not emulation

The PS4 has an x86-64 CPU, so the game's code does not need to be translated to run on a PC - it needs a place to live. bbhost provides that place:

Features

Yharnam in 21:9 Any resolution, ultrawide included. 21:9 and 32:9 with a wider field of view and the HUD where it belongs, and the resolution can be changed while playing. FSR 1 upscaling for slower GPUs.
PC Graphics settings Settings in the game's own menus. The System menu gains PC Settings, PC Graphics, PC Effects, PC Controls, PC Camera and Key Bindings, drawn in the game's style: anti-aliasing, ambient occlusion, shadow distance, fog, motion blur, field of view, frame cap and more.

The setup window

Status

The game is playable on Windows and Linux: the world, its bosses and online sessions. What runs on native code and what is still emulated:

Part State
Game logic (CPU) the game's own code, running natively
System libraries reimplemented by bbhost: all 660 named imports the game binds
Window, input, audio, movies, saves native (SDL3, Vulkan, FFmpeg, LibAtrac9)
Online native sockets and HTTP against a private server; peer-to-peer UDP with NAT traversal
Draws native: each draw is built from the engine's graphics objects; the command buffer only marks its place in the stream
Post-processing (YEBIS) native: every stage's resources built by bbhost
Tessellation native: the host GPU's own tessellation stages
Shaders translated from GCN to SPIR-V by bbhost's own compiler when the game creates them; pixel shaders the lifter accepts are decompiled to typed, structured SPIR-V instead
Frame pacing native: the game's frame-time manager runs as bbhost source; 30 fps by default, 60 by option
Compute dispatches, labels, fences still emulated: run through bbhost's command processor, which walks the game's PM4 command buffers
Texture memory the game's tiled textures are detiled on the GPU; changes are tracked by watching the game's writes

Known issues:

See docs/rendering.md for the graphics in detail and docs/decomp.md for which game functions have been rewritten.

Getting started

  1. Get the game files: a dump of Bloodborne with the 1.09 update copied over it (or kept beside it as CUSA00900-UPDATE, the way shadPS4 keeps it), and the 1.09 eboot.bin decrypted to an ELF (SHA-256 941f887a562aae054fac35af8cc8f27cf075f3d4cc2e029fb5ae2a663aaa5ae7).
  2. Download a release for Windows or Linux, or build bbhost yourself.
  3. Start bbhost. The setup window asks for the two paths, checks them and saves them; press Play.

docs/running.md covers the configuration, the controls, saves, logs and troubleshooting.

Building

cmake -S . -B build -DCMAKE_BUILD_TYPE=RelWithDebInfo
cmake --build build -j
./build/bbhost

Linux builds natively with GCC or Clang; the Windows executable is cross-compiled from Linux with Clang and mingw-w64 (MSVC cannot express the calling conventions involved). Dependencies, the Windows build, tests and packaging are in docs/building.md.

Documentation

Project layout

src/
  main.cpp       start-up and the main loop
  core/          ELF loading, relocation and import binding, TLS, configuration
  hle/           the PS4 system libraries: kernel, files, threads, audio, video,
                 network, NP, Gnm and the GPU command processor
  host/          the PC side: window, input, audio, Vulkan renderer, textures,
                 menus, overlay, plugins, updater
  gcn/           GCN shader decoding, translation and lifting to SPIR-V
  engine/        named engine structures and the features built on them:
                 frame rate, live resolution, menus, params, event flags,
                 PC enhancements
  decomp/        game functions rewritten as source
  net/           the private server's session service, accounts, STUN
  replay/        draw capture comparison
include/         the plugin API and the engine SDK (layouts, params, symbols)
plugins/         the official plugins (randomizer, boss rush, mutators) and an example
patches/         byte patches as data
res/             the Windows exe's icon and version details
tests/           unit tests (ctest)
tools/           shader tools, format tools, test drivers and packaging scripts
third_party/     LibAtrac9, Dear ImGui, Monocypher

Roadmap

License

bbhost is free software, licensed under the GNU General Public License, version 3 or later (see LICENSE). The third-party code in third_party/ and src/host/shaders/fsr1/ keeps its own licenses. The debug menu's glyphs (plugins/debug_menu/font14.bin) come from the X11 fonts k14 and 7x14, which are in the public domain.

Bloodborne is a trademark of Sony Interactive Entertainment. bbhost is not affiliated with or endorsed by Sony or FromSoftware, and contains none of the game's code or data.

Acknowledgements

bbhost (droogie/bbhost)

Searching Database…

611 ·GitHub
Что это?bbhost — это слой трансляции, который запускает немодифицированный исполняемый файл PS4-версии Bloodborne 1.09 на Windows и Linux, заново реализуя системные библиотеки PS4 и переводя её работу с GPU (GCN-шейдеры и draw calls) в Vulkan; цель — полноценная PC-версия с любым разрешением, 60 fps, клавиатурой и мышью, модами и сетевой игрой.
Это эмулятор?Не в классическом смысле: поскольку PS4 и PC используют процессоры x86-64, собственный код игры выполняется нативно, без интерпретатора или рекопмилятора, а bbhost заново реализует системные библиотеки PS4 и всё больше переносит графику из эмулируемого командного процессора GPU в нативный код Vulkan.
Как его запустить?Скачайте сборку релиза для Windows или Linux (или соберите bbhost сами), затем запустите его; окно настройки попросит указать путь к дампу игры и расшифрованному исполняемому файлу, проверит их, сохранит пути, и вы нажимаете Play.
Нужна ли мне своя копия Bloodborne?Да — bbhost не содержит ни кода, ни данных игры. Нужен дамп Bloodborne с установленным обновлением 1.09 и его eboot.bin, расшифрованным в ELF-файл.
Всё ли уже работает безупречно?Нет — compute-диспетчеризация, метки и барьеры по-прежнему идут через эмулируемый командный процессор, во вновь посещаемых локациях возможны подтормаживания при первой компиляции пайплайнов, примерно каждый четвёртый первый призыв не удаётся и требует повтора, а на AMD RX 580 под Windows сообщается о неустранённом зависании GPU.
Работает ли сетевая игра?Да — bbhost запускает приватный сервер для кооператива, вторжений, сообщений, кровавых пятен и знаков призыва между игроками bbhost, используя нативные сокеты/HTTP плюс одноранговый UDP с обходом NAT.
Можно ли модифицировать игру через bbhost?Да, не затрагивая исходные файлы игры: в комплект входят замена файлов, правка таблиц параметров по имени поля, байтовые патчи в виде данных и нативные плагины, такие как рандомайзер, boss rush и собственное debug-меню разработчиков.
Какие PC-функции он добавляет сверх оригинального релиза?Любое разрешение и соотношение сторон (включая 21:9/32:9 с корректным FOV), масштабирование FSR1, 60 fps с исправленным таймингом игры, полная поддержка клавиатуры и мыши, а также внутриигровые PC-меню настроек для графики, эффектов, управления и камеры.
Поддерживается ли Steam Deck?Да, окно настройки явно распознаёт и поддерживает Steam Deck как целевое устройство.
Creator
droogie
Size
8.9 MB
Stars
611
Age
10d
Commits · 90 Days