Skip to content

About

Performance-focused fork optimized for mobile discrete AMD systems and low VRAM budgets.

Resources

Contributing

Security policy

Stars

2 stars

Watchers

0 watching

Forks

 
 

Repository files navigation

Bloodborne: Optimized for AMD

Bloodborne: Optimized for AMD

Experience Bloodborne natively on Windows systems powered by AMD GPUs, enhanced with optimized video memory algorithms, preventative crash measures catered toward AMD GPUs, modern rendering technologies, customizable gameplay, and a redesigned launcher.

My revision of TatsunaKyo's Windows Port, built on bbport and the shadPS4 renderer. The aim for this revision is to make Bloodborne more comfortable to play on a lower-end Windows PCs, especially those powered by AMD GPUs. Many graphical and memory issues have been fixed in this revision. Common crashes in numerous areas of the game, especially when loading in on AMD GPUs, have also been fixed. This project would NOT be possible without the original work and the people involved.




Caution

NO game files are included. You NEED your own decrypted Bloodborne CUSA03173, version 1.09 dump, including eboot.bin and its original data. Most game patches and the added cheats depend on 1.09.

Getting started

  1. Download the full Windows ZIP from Releases and extract it into a new folder.
  2. Open Bloodborne.exe and choose your game folder under Game & files.
  3. Choose your resolution and graphics settings, then press PLAY.
  4. Press Insert or L3+R3 in-game to change the port's settings.

Play Bloodborne.exe starts with your saved options. Saves and shader caches normally live in user/ beside the launcher; you can choose another saves folder. Keep your existing saves, mods and preferences when updating. Each package includes its SHA256 checksum and Start-Verified-Launcher.cmd. Installation and settings

What's unique about this build

This fork prioritizes low-VRAM stability and quality-of-life improvements through a series of targeted optimizations and feature additions that work across the entire renderer and launcher.

Low-VRAM and memory management

The core focus of this build is making Bloodborne playable on budget AMD GPUs, especially the RX 5500M with 4 GB VRAM. Key changes include:

  • Intelligent buffer arena management: Buffer data is split across page-paired arenas, with cold data moved to system memory while hot paths stay in VRAM. This avoids stalls when allocations are refused and keeps the working set tight.
  • Image and render-target coherence: Render targets and the buffer cache are kept coherent when the GPU writes through buffers. Images are kept in VRAM by default instead of being migrated to system memory by the allocator.
  • Staging and copy management: Staging blocks are held within a VRAM budget; the copy thread cannot deadlock the GPU thread because it uses the backing view for guest memory copies.
  • Graceful degradation: When VRAM is constrained, allocations fall back to system memory and cold buffers are automatically reclaimed, with a watchdog preventing freezes during reclamation.

Together, these changes reduce common crash sites (area loads on AMD GPUs), prevent out-of-memory errors, and improve consistency on systems with less than 6 GB of total memory commit.

GPU readbacks and reliability

The launcher now surfaces GPU readbacks alongside the Play page, with a (!) indicator when the "Off" readback mode causes texture smearing upon long enough playtime. This lets users understand the tradeoff between speed and stability:

  • Off: Fastest but can smear when transitioning areas.
  • Relaxed: Cleans up the smear, good middle ground.
  • Precise: Safest but slower; useful for diagnosis.

Quality-of-life features

  • Lamp travel: A dedicated launcher page for lamp-to-lamp travel using a port-drawn menu with headstone tabs, making navigation faster and more visual. (EXPERIMENTAL, NEEDS FURTHER TESTING AFTER 1ST HEADSTONE)
  • Discord Rich Presence: The current area is shown in Discord, helping friends see where you are without joining.
  • Mouse pointer hiding: The pointer automatically hides after 1 second of inactivity in the game window, improving immersion.

Design philosophy

This build treats memory as a first-class constraint, not an optimization target. The renderer is designed to respect the VRAM budget of lower-end hardware while delivering the visual fidelity and frame rates of modern upscaling and frame-generation features. Every optimization is measured against three criteria:

  1. Stability first: No mysterious crashes, no out-of-memory panics, no deadlocks under load.
  2. Transparency: The launcher shows what's happening (readback modes, memory use, frame times) so users can make informed choices.
  3. Consistency: Settings mean the same thing in the launcher and during play, and your choices persist across sessions.

What this fork had per Tatsuna Kyo's additions

High-fidelity upscaling support: DLSS, FSR and XeSS

DLSS, FSR and XeSS: input scene, reconstruction and display output

They wanted more control over image quality and more choices for people playing on different GPUs. The original port already had DLSS, FSR and TAA; They added XeSS Super Resolution and a separate DLSS model-preset selector, with the same settings available in the launcher and while playing. DLSS model changes apply live on the next scene frame; live quality/resolution changes use the in-game menu's Live resolution setting. The following shows all the upscaling options provided:

Upscaler Available option
DLSS 3.7, 4 & 4.5 Quality/render scale plus a separate model preset; requires a RTX GPU.
FSR 3.1 The existing reconstruction path, also used as a fallback if another provider fails.
FSR 4 / 4.1.1 Additional reconstruction paths, available with their shader assets and the required device features.
XeSS 3.0.2 The added Intel Vulkan integration, with seven dedicated quality modes for supported Intel and other GPUs.
TAA / native AA Temporal AA at the scene's native resolution.

For DLSS, they exposed the following presets exactly as separate choices:

Preset Dropdown label
Default Driver default
E E (CNN / legacy)
F F (CNN / legacy)
J J (Transformer 1st gen)
K K (Transformer 1st gen)
M M (Transformer 2nd gen)
L L (Transformer 2nd gen)

Tip

Be warned that XeSS uses different upscaling ratios when compared to DLSS and FSR — you can read more at Upscalers, presets and XeSS resolution examples

HDR-ready Frame Generation and Multi Frame Generation

Real game frames and extra display frames, with SDR and HDR10 support

Support was added for FSR Frame Generation (x2) and NVIDIA DLSS FG / MFG (x2–x6 modes for supported GPUs) to improve display smoothness while keeping the game's real-frame limit separate. FG can work with a different upscaler and both paths support SDR and HDR10; they wanted HDR users to have the same FG choices. You can activate and adjust FG live from the in-game menu, as well as before launch in the launcher. They kept the normal FPS limit tied to real game frames, with or without FG, and added an optional second limit for the complete FG output. This lets you control the game rate and the generated display rate separately. They go more in-depth with the technicalities of the implementation in the following page: FG setup, hardware requirements and how the integration works

NVIDIA Reflex and AMD Anti-Lag 2

Independent latency controls for supported NVIDIA and AMD GPUs

They added independent latency controls because choosing an upscaler or turning Frame Generation off should not remove the option to reduce the render queue. Both interfaces keep these controls in Frames, alongside FG and the frame limits. They made Reflex a separate Off / On / On + Boost choice, so you can use it without FG. Be warned that NVIDIA FG enables Reflex automatically. They also integrated AMD Anti-Lag 2 through the supported Radeon Vulkan driver interface.

Control Choices Requirements
NVIDIA Reflex Off, On, On + Boost A supported NVIDIA GPU and driver reporting Reflex availability.
AMD Anti-Lag 2 Off, On A supported Radeon GPU and driver exposing VK_AMD_anti_lag.

Important

Intel Xe Low Latency (XeLL) was/is planned but XeLL currently does not support Vulkan. You can read more here: Latency controls, supported hardware and measurements

Frame limits and background control

Separate real and output FPS caps, exact number controls and background Pause/30/60 modes

They wanted more granular control and to choose the frame rate without fighting a slider that jumps hundreds of frames at the slightest movement. Both interfaces let you type an exact number and make small adjustments by dragging. The launcher also supports arrow-key steps and finer dragging with Shift. The real-frame cap can change while playing with Unlocked timing, and your choice is kept when you return to the launcher.

The normal cap controls real game frames. The optional FG output cap includes the generated frames and works alongside it. A 75 FPS real cap therefore does not prevent x2 FG from displaying up to 150 FPS:

Real cap FG Optional output cap What the limits allow
75 FPS Off Off Up to 75 real FPS.
75 FPS x2 Off Up to 75 real and 150 output FPS.
75 FPS x2 120 FPS Up to 60 real and 120 output FPS.
75 FPS x2 130 FPS Up to 65 real and 130 output FPS.

The optional output field accepts 30–1000 FPS; the negotiated FG multiplier and your system determine what can be reached. They keep the real-frame slider between 30 and 120 because extreme real rates can affect Bloodborne's movement and physics. Generated frames do not advance that logic.

They also added a choice for when you Alt-Tab or leave the game in the background. There is no reason to keep rendering at full speed if you would rather save the power:

Background mode What happens while the window is unfocused
Keep running Keeps your normal frame policy and FG.
Pause game and rendering Pauses game work and rendering, while the window remains able to receive focus again.
30 FPS Limits real background frames to 30, or your lower foreground cap.
60 FPS Limits real background frames to 60, or your lower foreground cap.

FG is suspended during the background pause or limit, and your foreground settings return when you come back. Frame limits are in Frames and background behavior is in Window, with the same categories in both interfaces. The caps and background policy can change live.

Frame-limit behavior and timing details · Focus, pause and presentation

Temporal stability and renderer optimizations

Refresh temporal history after a scene change while retaining normal movement history

They've worked on the motion history used by the upscalers and FG, on resetting old history after camera cuts or teleports, and on unnecessary renderer overhead. The aim is to keep moving objects more stable, avoid carrying one scene into another and give ready frames less CPU work to wait behind. Ordinary movement keeps its temporal accumulation so the image can continue to recover detail.

They have made these optimization changes, but they can't guarantee they will increase FPS on different configurations yet. Testing from other users is very welcome. The guides explain the individual changes and comparisons, including the FG inputs and the remaining pacing work.

Image quality and renderer work · Performance comparisons

Borderless fullscreen

Borderless desktop presentation and optional background pause or frame limits

They added Borderless fullscreen because they wanted to switch between the game and other windows comfortably. It uses the desktop resolution and refresh rate, alongside the original Windowed and Fullscreen choices. You can select it before launch or change window mode while playing.

Borderless has its own V-sync choice. Off requests Immediate presentation for lower queueing; On requests Mailbox, with FIFO as a fallback. Windows, your driver and display still affect the final latency. The background Pause / 30 / 60 options above are useful here too, and all these controls live in Window in both interfaces.

Window modes, V-sync and background settings

A compact overlay you can customize

Keep the basic readout or choose preset, resolution, FG, latency and a small real-frame graph

They wanted the overlay to be useful without covering more of the game than necessary. You can keep the original basic readout, hide it completely, or choose which extra fields you want:

  • DLSS preset letter, without the longer CNN/Transformer descriptions.
  • Input and output resolution, so you can see the scene size and reconstructed output.
  • Active FG provider and multiplier, based on the running mode.
  • Reflex PC latency, when the driver supplies a valid measurement.
  • A small frametime graph, with the latest and peak real-frame interval, to make uneven delivery visible.

The optional text stays on one line. The graph adds one shallow row only when enabled, and starts off. Play keeps Show performance overlay, with Customize overlay… taking you directly to Overlay in the launcher; the in-game tab has the same name.

Overlay fields and how to read the frametime graph

Optional cheats

Combat and movement multipliers plus optional stamina, consumable and fall-damage controls

They added runtime choices alongside the original startup cheats, so you can adjust them from the launcher or while playing:

Added choice Available settings
Player damage Off, x2, x4, x8, x16.
Incoming enemy damage reduction Off, x2, x4, x8, x16; x2 halves received damage without changing the defense stat.
Blood Echoes gained Off, x2, x4, x8, x16.
Movement speed Off, x1.5, x2, x4, x8, x16.
Infinite Stamina Optional toggle.
Consumables / ammunition kept on use Optional toggle; you still need to own the item.
No Fall Damage Optional toggle for normal falls; scripted deaths still apply.

They start off and share the Cheats category in both interfaces. The current reports cover the remaining Echoes multiplier check. The guide explains what each cheat changes and how the runtime verifies its hooks. Startup patches retain their restart requirement.

Cheat behavior and current limitations

A compact and cohesive in-game menu

Seven matching settings categories, available in English or Russian with Insert or L3+R3

They translated the port's settings menu into English, retained Russian, and replaced the long page with seven tabs: Image, Frames, Window, Overlay, Cheats, Effects and Advanced. Press Insert or L3+R3 to open it. Close and restart controls stay within reach, with a layout that adapts to the available space.

Those seven categories now match the launcher. If you find Reflex under Frames before launching, you find it under Frames during play too. Sharpening stays in Image, background behavior in Window, and model detail/game effects in Effects. Both interfaces use the same saved preferences, and settings that need a restart tell you so.

Optional developer diagnostics

Optional developer profiling with session logs and crash information

They added an opt-in profiler so a crash or performance report can include more than a description of what happened. It keeps a separate session folder with logs, settings, timings and Windows crash details when available. Enable Advanced → Diagnostics before reproducing a problem; it starts off for normal play because profiling can add overhead.

They also added Generate Support Report, available in Diagnostics and Log. It brings the useful information together, removes personal paths and credentials, and lets you inspect every included file before exporting a ZIP. The anonymous CPU/RAM profile is optional, and you choose whether to attach the report to GitHub yourself.

Support Report contents, privacy and hardware submissions

Diagnostics and useful bug reports

The original mod/patch loading, keyboard/controller support, shortcuts, shader-cache tools, game effects and beta online co-op remain available, with their original credits.

Requirements and test setup

  • Windows 10 1903 or later / Windows 11, 64-bit, with a current graphics driver.
  • Vulkan 1.3 support. Specific DLSS/FSR 4/XeSS/FG features have additional GPU and driver requirements.
  • Around 6 GB of free memory commit (RAM plus page file), or 10 GB for 1440p/4K output.
  • Your own decrypted CUSA03173 1.09 game files.

They test the revisions on their Windows 11 PC with a GeForce RTX 5070 Ti. This is the main gameplay test configuration for their fork. Automated tests also cover settings, controls, hook behavior, renderer contracts and package contents. Coverage and open problems are collected in test methods and current reports, rather than repeated throughout the documentation. AMD/Intel hardware and other Windows configurations depend on community feedback.

Help and development

For a bug report, include your GPU, driver, settings, reproduction steps and user/last_run.log. For crashes or performance issues, enable the optional diagnostics before reproducing the problem. Current reports lists the remaining checks; testing explains the recorded results and environments; the roadmap covers planned features and priorities.

For black screens, try Advanced → Clear shader cache. Rebuilding it can cause initial stutter. Report fork-specific issues here; the upstream Discord belongs to the original project.

Windows build instructions · Publishing a release

Credits

This revision is maintained by rakefire impala. The Windows port and original launcher are by Tatsuna Kyo and Supermedo. The upstream history, copyright notices and licenses are retained.

Built on bbport, the native Linux port of Bloodborne by deadinside28, and on the shadPS4 renderer. The original README is in docs/original-readme.

Online play uses the network and PSN code of shadp2p by Wozzardman (the shadPS4 Bloodborne co-op project), the shadNet server of the shadPS4 team, and The Hunter's Dream server by droogie and its team.

Also used: NVIDIA Streamline (DLSS Frame Generation and Reflex), Intel XeSS (Super Resolution), FSR-Vulkan and the AMD FidelityFX SDK (FSR), FSR 4 assets from FireBurn/Q2RTX, the DLSS bridge adapted from IFreemz/shadPS4-Bloodborne-DLSS-FSR, the NVIDIA DLSS SDK (nvngx_dlss.dll under NVIDIA's license), LibAtrac9, SDL3, FFmpeg, Dear ImGui, sirit, magic_enum, miniz, xbyak, wepoll, cpp-httplib, Protocol Buffers, OpenSSL, miniupnpc, JSON for Modern C++, Vulkan Memory Allocator, MSYS2 / LLVM, PyInstaller and Pillow. Game patches by Kyo, Lance McDonald, auser1337, illusion, emoose and the Bloodborne community.

NVIDIA, GeForce RTX and DLSS are trademarks of NVIDIA Corporation.

License

GNU GPL v2 or later (LICENSE). Third-party components keep their own licenses (see licenses\ in the download).

About

Performance-focused fork optimized for mobile discrete AMD systems and low VRAM budgets.

Resources

Contributing

Security policy

Stars

2 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages