Co-Authored-By: Claude Opus 5.5 <[email protected]>
Bloodborne for Windows (Jgamrot fork)
Run your own decrypted copy of Bloodborne (CUSA03173, version 1.09) natively on Windows 10 or 11. The game's own code runs directly on your CPU and its graphics are translated to Vulkan. This fork is based on Supermedo's Windows port by Mohammed Albarghouthi, which builds on deadinside28's bbport and the shadPS4 renderer.
No game files are included. You need your own dump of Bloodborne. This project is not affiliated with Sony Interactive Entertainment or FromSoftware.
Download
From the latest release, download bbport-windows.zip and extract the whole archive. The two Source code downloads are for developers. Previews of upcoming features are marked Pre-release on the releases page.
Features
Launcher and setup
- A setup wizard on first start that installs the game from your own ZIP or PKG dump, checks the game files, saves and trophy key, and can be reopened from Game → Setup wizard.
- Every setting in one place: graphics, display, game, controller, cheats, online and mods.
Play Bloodborne.exestarts the game straight away with your saved settings.- Update notifications for full releases.
Graphics
- NVIDIA DLSS (GeForce RTX 20 series and newer), AMD FSR 3.1 and FSR 4, native-resolution TAA.
- Output from 720p to 4K, fullscreen switchable while playing, 30/60/90 FPS or unlocked with a cap.
- The game's effects on or off: chromatic aberration, depth of field, motion blur, SSAO, the game's AA, dynamic shadows, screen-space reflections, model detail.
- Shader pre-build: shaders the game is known to use are built while it starts (Preparing
shaders in the window title) instead of stuttering the first time an area or effect appears.
The included catalog covers the game up to the Blood-starved Beast so far; it lists shaders,
not game code, and each install builds them from its own files. Off with
BB_SHADER_PREBUILD=0.
In the game
- PC settings in the game's own System menu: PC Graphics, Display, Effects, Settings and Gameplay, Achievements, and Restart to Apply. Quit Game on the title screen.
- The Insert / L3+R3 guide: FPS, achievements with icons and Gamerscore, all settings, mods and cheats. Achievement toasts when a trophy unlocks, with your own sounds, pictures, animations and texts if you like (below).
Controls
- Controller, and keyboard and mouse at the same time, with rebindable keys
(
key_<action>=lines inbbport.ini). - Mouse camera: click the game window and the mouse turns the camera 1:1. Sensitivity and invert Y are in Settings > Controls > Mouse. Locked on, a quick sideways flick of the mouse switches targets, as in Dark Souls III.
- Keyboard movement smoothing: changing direction with WASD swings smoothly instead of stopping for a moment (Settings > Controls > Keyboard, Off to disable).
- Button prompts: PlayStation, Xbox or keyboard keys (see below), switchable in the launcher and the guide. Xbox and keyboard prompts are Nexus Mods downloads the launcher adds for you.
Optional enhancements (off by default; switch them on in the launcher's Mods page or the guide. They are made from your own game files at start, which stay unchanged.)
- Lamps: Level Up and Storage (
pc_enhanced_lamps): every lit lamp also offers the game's own level-up and storage screens, once you have used the Doll and the storage box. - Rebirth in the Nightmare (
pc_rebirth): reallocate your stats at the Altar of Despair. - Hunter's Dream mirror (
pc_mirror_appearance): the workshop mirror opens the appearance editor, the developers' unused "Put on Disguise". - Two invaders (
pc_two_invaders) in Mensis, Mergo's Loft, the Nightmare Frontier and the Old Hunters' areas. Every player in a session needs it on.
Also
- Online play (beta): messages, bloodstains and ghosts through The Hunter's Dream, and co-op through a shadNet server. Cheats, the free camera and the debug menu are off while playing online, whatever the settings say; seamless co-op keeps them, as everyone there chose to play together.
- Online play (beta): seamless co-op on a server one of the players runs, and online through a
private shadNet server. The Hunter's Dream is off for now: it
doesn't accept this build (#10);
BB_HUNTERS_DREAM=1shows it again. - Death respawns skip the game's fixed 12-second wait.
- Mods and third-party patches, loaded without changing your game files.
- The Old Hunters on base-game dumps, with a DLC folder setting.
What changed in each release: docs/CHANGELOG.md.
First-time setup
- Right-click bbport-windows.zip and choose Extract All. Put the
bbport-windowsfolder somewhere permanent, such asC:\Games\Bloodborne\bbport-windows. Do not run the game from inside the zip. - Double-click Bloodborne.exe. The setup wizard opens on a new install; Skip setup goes straight to the launcher.
- In the wizard's Game step, either:
- click Install from ZIP / PKG and choose your dump (for example
cusa-03173.zip) and a destination such asC:\Games\Bloodborne. The base game and the plain 1.09 update are extracted intoCUSA03173; allow about 70 GB free for a 30 GB archive. Or - click Choose existing game folder and pick the folder with
eboot.bindirectly inside.
- click Install from ZIP / PKG and choose your dump (for example
- On Your data, optionally import your own
keys.json(for achievement names) or choose an existing saves folder. The checks turn green when the game folder has version 1.09; amber is normal for a new install without saves. - Click Play now. The first launch prepares files and builds the known shaders (Preparing shaders: N% in the window title), so it takes a while; later starts are quick.
C:\Games\Bloodborne\
├── bbport-windows\
│ ├── Bloodborne.exe
│ └── bin\bb-probe.exe
└── CUSA03173\ ← the Game folder
├── eboot.bin
├── dvdroot_ps4\
├── sce_module\
└── sce_sys\
If the launcher says No eboot.bin, you chose the wrong folder. If it reports version 1.00, the 1.09 update did not apply.
DLC. The Game of the Year edition (CUSA03173) already includes The Old Hunters. With a
base-game dump, dump your add-ons too: each is a folder named like SPEXPANSIONDLC03 with only
sce_sys inside. Put them in one folder and choose it as DLC folder on the Game page.
Achievements. Names, descriptions and Gamerscore need the trophy key from your own PS4 in
user\keys.json (shadPS4's format, {"TrophyKeySet":{"ReleaseTrophyKey":"..."}}). Without it,
achievements show their numbers and icons. Nothing syncs to PlayStation Network.
Custom trophy notifications
In the guide (Insert / L3+R3), Achievements > Trophy notifications lets you pick a theme, set the sound and how long it stays on screen, and preview each grade. Previews don't unlock or save anything.
- Original banner: the green banner at the bottom (default).
- Card: a dark card at the top right. The platinum has a short animation.
- Card, cinematic platinum: same, with a longer, brighter platinum.
- Corner popup: rises from the bottom right corner, with the trophy's name and description.
Turn off Animate the platinum to show the platinum's own artwork instead.
You can also add your own files to user\custom_trophy (it's inside your saves folder, so move
it along with them). None are needed and the port ships none.
| File | What it does |
|---|---|
bronze, silver, gold, platinum + .mp3 .wav .ogg .flac .m4a .opus |
Sound for that grade. trophy.* covers any grade without its own. Up to 20 seconds. |
<grade>_anim.gif (or .apng .png .jpg .webp .bmp) |
Picture or animation for that grade in Card and Corner. Plays once and stops on the last frame. trophy_anim.* covers the rest. Up to 600 frames and 20 seconds. |
<grade>_anim.ini |
loop=1 repeats it, delay_ms= starts it later. frames=, columns= and fps= read the .png as a sprite sheet. |
badge.png |
The disc on the right of the card. |
font.ttf (or .otf), font-light.ttf |
Fonts for Card and Corner. Default on Windows: Segoe UI. |
notifications.ini |
The guide's options, plus your own texts: text_unlocked=, text_banner=, name_bronze= … name_platinum=. Edit it with the game closed. |
Sounds, pictures and grade names per grade need the trophy key (see Achievements above).
Without it, only trophy.* is used on a real unlock; previews still show each grade.
Example, Portuguese texts and a looping platinum:
user\custom_trophy\
├── notifications.ini theme=card_cinematic
│ text_unlocked=Troféu conquistado!
│ name_platinum=Platina
├── platinum_anim.gif
├── platinum_anim.ini loop=1
├── platinum.ogg
└── trophy.wav (every other grade)
Reload sounds in the guide picks up new sounds. Everything else is read when the game
starts. Files that can't be read are listed in user\last_run.log.
Keyboard button prompts
Choose Keyboard in the launcher (Settings > Controls). The key images are Kenney's
Input Prompts (CC0): the first time you choose
Keyboard, the launcher writes them into a copy of your game's menu/common.tpf.dcx in the
mods folder, so nothing from the game ships with the port. Xbox prompts work the same way.
Choosing Keyboard also sets your
keys to the ones the images show: E interact, Left Shift dodge, R blood vial, Q item,
F transform, left / right / middle mouse for attack / firearm / lock-on, Left Ctrl + left mouse
for strong attack, Space for L3, G and H for gestures and personal effects. Switch back to
PlayStation or Xbox in the launcher or the guide's Mods tab at any time.
Already have another launcher or game installation?
Keep your extracted game folder where it is; there is no need to extract it again.
- Close the game and the old launcher, and back up the old launcher's
userfolder (saves, trophies,keys.json), itsbbport.iniand itsmodsfolder. - Extract this package to a new folder and run its
Bloodborne.exe. Do not copy onlyBloodborne.exeinto an older port. - On Game, set Game folder to your existing folder with
eboot.bin, and Saves folder to your existinguserfolder (or copy your saves into the new one while everything is closed). Keep the backup until your character loads. - Copy over the mods you still want and enable them under Mods.
Settings for advanced users
Game settings are stored in bbport.ini and launcher settings in
%APPDATA%\bbport-launcher\settings.json. Environment overrides on the launcher's Advanced
page take precedence:
| Setting | bbport.ini |
Override |
|---|---|---|
| Lamps: Level Up and Storage | pc_enhanced_lamps=1 |
BB_PC_LAMPS=1 |
| Rebirth | pc_rebirth=1 |
BB_PC_REBIRTH=1 |
| Hunter's Dream mirror | pc_mirror_appearance=1 |
BB_PC_MIRROR=1 |
| Two invaders | pc_two_invaders=1 |
BB_PC_TWO_INVADERS=1 |
| Mouse camera | mouse_camera=0 turns it off |
BB_MOUSE_CAMERA=0 |
| Mouse flick that switches lock-on targets (mouse counts; higher needs a bigger flick) | mouse_flick_threshold=300, 0 turns it off |
BB_MOUSE_DEBUG=1 logs it |
| Mouse pointer in the game's menus | mouse_menu=0 turns it off |
BB_MOUSE_MENU=0 |
| 12-second respawn wait | BB_RESPAWN_DELAY_FIX=0 restores it |
|
| Strict frame cap (no single frame faster than the cap) | BB_STRICT_FRAME_CAP=0 |
|
| High-FPS sprint fix | sprint_fix=0 turns it off |
BB_SPRINT_FIX=0 |
| High-FPS effects in whole 1/30 s steps (effects that never ended, such as Ebrietas' rocks) | BB_EFFECT_STEP_GATE=0 |
|
| High-FPS effects that move by each frame's time while counting in whole steps (smooth steps) | BB_EFFECT_SMOOTH=0 |
|
| High-FPS torch, brazier and candle flicker at 30's pace (with the effect step gate) | BB_BLINK_HOLD=0 |
|
| High-FPS wakes in water spreading at 30's pace (with the effect step gate) | BB_WATER_GATE=0 |
|
FPS presets below their target play as the lower rate would (fixed steps, effects' step, turn step, cape stiffness, grass wind and, with camera_fix=1, the camera's eases follow each frame's time) |
BB_FRAME_TIME_PRESETS=0 keeps the preset's per-frame values |
|
| Ultrawide camera and centered HUD (non-16:9 outputs) | output_res=16:9 size |
BB_ASPECT=0 |
| Indirect dispatch guard (skips implausible GPU work counts) | BB_INDIRECT_GUARD=0 |
|
| Indirect draw guard (skips implausible vertex and instance counts) | BB_INDIRECT_DRAW_GUARD=0 |
|
| PS4 GPU rules for NaN and infinity in shaders (min/max, clamp, legacy multiply-adds, clamped rsq, negated compares) | BB_GCN_NAN=0 |
|
| Pad stick neutral and travel per controller (clone pads) | BB_PAD_CENTER_CAL=0, BB_PAD_DEADZONE, BB_PAD_CENTER |
|
| Safe saves (write to a copy, then replace) | BB_SAFE_SAVES=0 |
|
| Xbox pads: Back + d-pad left/right for the touchpad halves | BB_PAD_BACK_COMBO=0 |
|
| Skip draws that cannot change anything | BB_SKIP_EMPTY_DRAWS=0 |
|
| Blur-kernel sample count clamp (exit with debug exception 0xa0020007) | BB_KERNEL_CLAMP=0 |
|
| Failed render jobs give their slot back (Laurence's cinematic above 30 FPS) | BB_JOB_SLOT_FIX=0 |
|
| Render resource cache in 512 MiB of the port's memory (the game's: 160 MiB) | BB_RENDER_RESOURCE_CACHE_MB=160 keeps the game's |
|
| GX range allocator at 288 MiB (the game's: 160 MiB; Ebrietas' trail filled it before device losses) | BB_GX_REGION_MB=160 keeps the game's (up to 416) |
|
| Shader cache written by another build: its shaders are rebuilt | BB_SHADER_BUILD_CHECK=0 |
|
| Skip draws whose vertex buffer table pointer is null | BB_SKIP_NULL_VB_TABLE=0 |
|
| Zeroed vertex buffer descriptors read as zero (a valid vertex format) | BB_NULL_VERTEX_INPUT=0 |
|
| All engine hooks (in-game menus and features) | BB_ENGINE_HOOKS=0 |
|
| NVIDIA GPUs keep their boost clocks (Reflex Boost hint, not with DLSS Frame Generation) | BB_NV_BOOST=0 |
|
| Hot pages: memory the game rewrites before almost every use stays writable and is uploaded on each use (at most 8 MiB) | BB_HOT_PAGES=0 off, =1 the older rule (no size limit) |
|
| Legacy CPU translations (on by themselves on CPUs without BMI1, LZCNT or MOVBE) | legacy_cpu=0 or 1 |
BB_LEGACY_CPU=0 or 1 |
For testing the legacy CPU translations only, not for play:
| Test | Override |
|---|---|
| Leave the short instructions untranslated, as in 2.1 (135 LZCNT/TZCNT, 58 MOVBE) | BB_LEGACY_CPU_SHORT_SITES=0 |
Run untranslated LZCNT/TZCNT as BSR/BSF, as an Ivy Bridge CPU does, on a newer CPU (with BB_LEGACY_CPU=1) |
BB_LEGACY_CPU_SIMULATE_BSR=1 |
Known issues
- Character creation could show a blank or ghosted preview on the first visit; 1.6.12 and 1.6.13 previews include a fix that still needs confirming in play. Backing out and choosing New Game again restores it.
- Rebirth and two invaders have not been tested in play yet.
- Keep the frame cap at 120 FPS or lower. The sprint fix removes the known half-speed sprint above it, but higher caps are not tested yet.
- Areas and effects beyond the shader catalog (so far, after the Blood-starved Beast) still stutter briefly the first time while their shaders compile; later releases extend the catalog. On AMD and Intel GPUs most fragment shaders still compile in play. On a black screen, try Advanced → Clear shader cache.
- Occasional "exploded" character faces: set GPU readbacks to Precise (Settings > System > Engine); it costs some speed.
Requirements
- Windows 10 (1903 or later) or Windows 11, 64-bit, and a graphics card with Vulkan 1.3.
- An Intel Core 4th generation (Haswell, 2013) or newer, or an AMD Ryzen: the game uses instructions of the PS4's processor (AVX, BMI1, MOVBE, LZCNT). Intel 2nd and 3rd generation (Sandy and Ivy Bridge, many Xeon E5 v1/v2) run with those instructions translated, best effort; CPUs without AVX cannot run the game.
- About 6 GB of available memory (RAM plus page file), 10 GB for 1440p or 4K output.
- DLSS needs an NVIDIA GeForce RTX 20 series or newer; FSR works on other cards.
Roadmap, help and source
- What is planned next: docs/ROADMAP.md.
- Problems: open an issue with your graphics
card, what happened, and
user\last_run.logfrom thebbport-windowsfolder. - Building: packaging/windows/README.md.
Credits
- Supermedo (Mohammed Albarghouthi) for the Windows port, deadinside28 for bbport, and the shadPS4 team for the renderer and shader recompiler.
- droogie's bbhost for the in-engine PC menus, Rebirth, the mirror, two invaders and keyboard prompt text.
- Online: the network, NP and shadNet code of shadPS4 0.20, put together for the port by Awaken (BloodBorneButPc) with the backend for The Hunter's Dream (Discord sign-in on the Online page) adapted from bbhost's network code (GPL-3.0-or-later), taken in through Supermedo's port; see gpu/bbnet/SHADNET-PORT.md and gpu/bbnet/THD-PORT.md. Thanks to Metr1k and The Hunter's Dream team, and to Wozzardman's shadp2p, which the first online version was built on.
- Hunter's Atlas, the full-screen map, by MikeTat1988 (GPL-2.0); see tools/atlas/README.md.
- Frame generation from Supermedo's port, and fixes from more of its pull requests: emurphy04 (ultrawide, live resolution), EricDar12, DarkSpartan, k1m0206, andrecabralgit, fliperama86, parsifal295, T0ug (older processors) and cassioKenji (keyboard sprint).
- Fixes and features from Supermedo pull requests, kept with their authors' commits: ayozetr (DLC), DarkSpartan, gtggdd4mzb-source and yumlevi, andrecabralgit, noatdk, FIocker (including the English menu), jpramosjp and gStone.
- The mouse camera by imedved (Nexus Mods), ported by mcrib884 and Jhony-Jhansen.
- Xbox and keyboard prompt images from Input Prompts by Kenney (CC0).
- The respawn fix after AwesomeObserver's Windows work.
- ShadPs4Plus PKG Extractor 1.1 by AzaharPlus (GPL-2.0), included for installing your dump.
- Bloodborne Enhanced inspired the lamp and rematch features, which are implemented independently; its files are not used or included. It can still be installed manually as a mod.
The port is free software under the repository's LICENSE; third-party notices are in
the release's licenses folder. Bloodborne belongs to Sony Interactive Entertainment and
FromSoftware.





