Skip to content

Releases: BioVRDev/Bioshock-Remastered-VR

v1.0.2

Choose a tag to compare

@BioVRDev BioVRDev released this 29 Jul 04:52
a9467e8

BioShock Remastered VR v1.0.2

This release is about coverage. The goal was to get everyone onto the same
build regardless of which store they bought the game from and which headset
they own.

Epic Games Store is now supported

The Epic build of BioshockHD.exe is not the same binary as the Steam one.
The code sits at different addresses and the data sits at different addresses
again, by different amounts, so several features that relied on fixed
addresses were silently switched off for every Epic player.

Fixed in this release:

  • Stereo frame pacing (DeltaClamp). The frame delta function is now found
    by scanning for its own machine code instead of a hardcoded address. Epic
    players had the world advancing once per eye instead of once per eye pair,
    which was most obvious during the bathysphere descent. That descent is now
    identical on both stores.
  • Arm hiding. The identity check that refused to run on Epic has been
    replaced with checks that do not depend on the build.
  • Game config detection. The setup script and the mod now find
    Bioshock.ini in the Epic profile folders, including installs that nest it
    under "My Games". If auto detection fails, the setup script asks you for
    the folder and remembers your answer.

Steam and Epic should now behave identically apart from the reticle, see
Known Issues.

SteamVR fallback for Vive, Vive Pro and Index

BioShock Remastered is a 32 bit game, and SteamVR has never shipped a 32 bit
OpenXR runtime. On Lighthouse headsets the mod could not start VR at all and
ran flat, with xrCreateInstance FAILED (-32) in the log.

The package now includes an OpenXR to OpenVR shim that talks to SteamVR
directly. The setup script detects when the real OpenXR loader cannot work
and installs the shim automatically. This also covers the unrelated case
where a 32 bit OpenXR runtime is registered but its files are missing or
broken, which produces the same error.

Huge thanks to GingasVR, who wrote the SteamVR implementation and tested it on a Vive Pro Eye
with Index controllers. Index controller bindings are included and can be rebound in
SteamVR under Settings, Controllers, Manage Controller Bindings.

Setup and diagnostics

  • Setup.bat detects whether it is sitting in a Steam or Epic
    install and writes to the right config file. Running it from the wrong
    place, or copying a config between installs, no longer silently sends every
    write to the other store's file.
  • It records the config location back into BioshockVR.ini, so the mod finds
    it at runtime without anyone editing anything by hand.
  • It warns when the game folder is not writable, which is what used to cause
    "I have no log file" reports on Program Files installs.
  • If it cannot find a folder it needs, it prompts for the path and explains
    how to copy and paste one.
  • Every log now starts with a version line, so bug reports identify the build.
  • Several failures that used to happen silently now say what went wrong and
    what to do about it.

Install

  1. Extract everything into the folder containing BioshockHD.exe.
    • Steam: steamapps\common\BioShock Remastered\Build\Final
    • Epic: Epic Games\BioshockRemastered\Build\FinalEpic
  2. Right click Setup.bat and choose Run as administrator.
  3. Put your headset on and launch the game through the storefront of your choice, but not the .exe

If you change headsets or switch OpenXR runtimes later, run
Setup.bat again so it can pick the right loader.

Performance

The default render resolution is high. If the framerate is poor, lower
ResolutionX and ResolutionY in BioshockVR.ini, run the setup script
again, and relaunch.

Known issues

  • The stock crosshair still shows on Epic. The code that disables it in
    the engine depends on an address that moved in the Epic build. Until that
    is fixed you can remove the crosshair with this Nexus mod and its "nothing"
    option: https://www.nexusmods.com/bioshock/mods/23
    Steam is unaffected.
  • The health and plasmid meters render too thin. Cosmetic, both stores,
    under investigation.
  • Possible audio desync on Epic. Reported but not yet confirmed or
    reproduced. If you hear it, please say so and include your log.
  • Vive wand bindings are minimal. Index is the tested controller.

Reporting problems

Please include:

  • BioshockVR.log from the game folder
  • openxr_shim.log as well, if that file exists
  • which store you bought the game on, and which headset you use

If the game folder is under Program Files and there is no log there, look in
%LOCALAPPDATA%\VirtualStore\ followed by the same path.

Credits

  • GingasVR for the OpenXR to OpenVR shim, the Lighthouse hardware
    testing, and the writeup that came with it.
    VOID for his massive contributions to this project
  • Everyone who sent logs. Two of the fixes in this release came directly
    from user logs that showed something the developer's own machine could not
    reproduce.

v1.0.1

Choose a tag to compare

@BioVRDev BioVRDev released this 28 Jul 16:20
a9467e8

BioShock Remastered VR — v1.0.1

Bug-fix release. If you installed v1.0.0, the HUD panel never appeared for you
— that's fixed here
, and it's the reason to update.


Upgrading from v1.0.0

Replace dxgi.dll, BioshockVR.dll and FirstTimeSetup.bat.

Your BioshockVR.ini needs two changes. You can either drop in the new one,
or — if you've tuned any weapon grips, since those save into that file — edit
your existing copy:

HudAlphaFix=1
Anisotropy=16

HudAlphaFix=1 is the fix for the invisible HUD. Without it, nothing else in
this release will look any different.

Then run FirstTimeSetup.bat once with the game closed, as before.


Fixed

The HUD panel was invisible. v1.0.0 shipped with HudAlphaFix=0, which
disabled the alpha compositing the captured interface depends on. The panel was
being built and submitted correctly every frame with nothing visible in it, so
the HUD simply vanished with no error anywhere. Every v1.0.0 user had this.

A flat screen would appear mid-gameplay. The cutscene detector identifies
pre-rendered video by looking for frames where the world isn't being composited
— and a level-streaming pause looks identical by that test. Walking through
certain doorways would drop you onto the cinema screen for a couple of seconds.
It now also requires the frame to contain almost no geometry, which a streaming
pause doesn't satisfy.

Epic Games Store installs weren't found. FirstTimeSetup.bat now checks
%APPDATA%\Bioshock Epic HD\Bioshock\ and the Epic install directory, and when
it can't find your config it lists every location it looked in.

R3 could be bound to two things at once. With ControllerDpadModifier=2 and
JumpOnR3=1, the right stick click tried to jump and act as the D-pad
modifier. JumpOnR3 is now switched off automatically when mode 2 is selected,
and the log says so.


Added

Anisotropic filtering set to x16 by the setup script. Effectively free on any
GPU that can run this in VR, and a clear improvement on floors and long
corridors.

Manual path overrides for unusual installs — GameIniPath and GameDirPath
in the ini, both off by default and documented with full example paths.

Quest 1 / Quest 2 D-pad support. ControllerDpadModifier=2 uses right stick
click instead of the thumbrest. Those controllers have no thumbrest sensor, so
the default never worked on them. This existed in v1.0.0 but wasn't documented.

Corrected ini documentation, including two things that were actively
misleading: %APPDATA% and other environment variables are not expanded in
this file, and a line beginning with ; is ignored entirely.


Still broken

The health and EVE bars render incorrectly on the HUD panel. They come out
as thin slivers, or as full bars offset to one side, depending on HudDsvMode.
Everything else on the panel — ammo, EVE counter, subtitles, pickups — is
correct.

The cause is narrowed but not solved. The bars are correct when drawn the
ordinary way, so the capture is doing it; and they're clipped by depth or
stencil, since removing the depth-stencil changes what you see. Binding the
game's own depth-stencil doesn't fix it, which rules out the obvious
explanation.

Three settings to pick between, none right:

HudDsvMode=0    ; full bars, offset to one side
HudDsvMode=1    ; bars collapse to slivers
HudDsvMode=2    ; same as 1

If it bothers you more than a floating panel helps, HudRedirect=0 puts the
whole interface back on the game image the way it was before the panel existed.
Nothing else is affected.

Still open from v1.0.0: in-engine cutscenes track your head (pre-rendered
ones are handled), weapon idle sway, cutscene letterbox bars, and the crossbow,
grenade launcher, chemical thrower and research camera aren't grip-tuned.


Reporting a problem

Attach BioshockVR.log from next to BioshockVR.dll. The config block at the
top shows every setting the mod actually read, which answers most reports
immediately — including, as it turns out, ones I'd have taken days to find
otherwise.

v1.0

Choose a tag to compare

@BioVRDev BioVRDev released this 28 Jul 10:28
ceca9d7

BioShock Remastered VR — v1.0.0

Native VR for BioShock Remastered. Real stereo rendering, head tracking, motion controllers and 6-DOF weapon holding — not a screen in a headset.


Install

  1. Download BioshockVR-v1.0.0.zip below.
  2. Extract all four files next to BioshockHD.exe:
    ...\BioShock Remastered\Build\Final\    BioshockHD.exe    dxgi.dll    BioshockVR.dll    BioshockVR.ini    FirstTimeSetup.bat
    
  3. Run FirstTimeSetup.bat once, with the game closed.
  4. Put your headset on and launch the game normally.

No injector, no plugin folder, no launcher, nothing to edit by hand.

Why step 3 exists: the game reads its config at startup and rewrites it on exit with whatever it actually ran at, so a fresh install starts fullscreen at your desktop resolution and can never fix itself. The setup script sets the values before the game ever starts. It also turns anisotropic filtering up to x16 while it's in there.

It finds Bioshock.ini on its own, backs it up first, changes ten keys in place using the same Windows API the game itself uses, and restores the backup automatically if anything looks wrong. Run it again whenever you change ResolutionX, ResolutionY or GameFovDegrees.


Requirements

  • BioShock Remastered on PC (developed and tested against the Steam build)
  • Any OpenXR headset and runtime — Quest via Link/Air Link, SteamVR, WMR
  • Windows 10/11

What's in it

Rendering

  • True stereo, one eye per frame, with both eyes locked to the same instant so near geometry fuses properly
  • FOV reported to the runtime is kept in sync with what the game actually renders, so turning doesn't warp
  • Automatic guard on the game's world FOV, which otherwise gets stuck wide after a Vita-Chamber respawn and narrow during scripted sequences

Head and camera

  • Full head tracking, rotation and position
  • Pitch decoupled from the game's camera — the horizon stays level
  • Walking head bob removed
  • Adjustable height and IPD

Hands and weapons

  • 6-DOF weapon holding driven by the right controller
  • Aim, crosshair and the actual shot all come from one value, so where the dot is is where the bullet goes
  • Per-weapon grip position and angle, tunable live in-headset and saved automatically
  • Forearms hidden while hands and weapon stay visible
  • The game's flat 2D reticle removed and replaced with a proper VR dot

Interface

  • The HUD is lifted off the game image onto its own layer, so it's readable and sits at a comfortable depth instead of being painted on the world
  • Adjustable size and position, tunable live
  • Menus and the map appear on a screen fixed in the room, not strapped to your face

Cutscenes

  • Pre-rendered cutscenes play on a screen anchored in the room. You can look around it, and the camera no longer follows your head — a large comfort improvement in the opening sequence

Controls

  • Touch/Index controllers mapped to a virtual gamepad
  • Right stick click jumps (zoom is unusable in VR and is unbound)
  • D-pad modifier on the right thumbrest

Tuning it

Everything below can be changed while the game runs, and everything logs a line you can paste back into the ini.

Key What it does
F11 / F12 HUD panel smaller / larger
Del cycle which HUD property F11/F12 edits
Home toggle the HUD panel off, to compare
Numpad 9 cycle weapon grip edit mode: position / angle / aim
Numpad 8 2 4 6 0 5 adjust the current mode
Numpad 7 change step size

Weapon grip tuning saves itself to BioshockVR.ini as you go. Edit the file with the game closed, or your changes will be overwritten.

To get a weapon exactly right: set the angle first, then switch to aim mode and fire at a flat wall, adjusting until the dot sits on the bullet hole.

Some weapons aren't tuned yet

Tuned: wrench, pistol, shotgun, machine gun, plasmids.

Not yet tuned: crossbow, grenade launcher, chemical thrower, research camera. They fall back to a generic grip and will sit wrong in your hand — playable, but not right. Five minutes each with the numpad fixes it, and the values save to your ini. Post them and I'll roll them into the next release.


Known issues and limitations

dxgi.dll conflicts with other graphics mods. ReShade, DXVK, Special K and most injectors also install as dxgi.dll, and only one file can have that name. They can't currently be used together.

Two features are build-specific. The reticle removal and the arm hiding use fixed addresses into the game executable. On a different build they detect the mismatch and safely do nothing — the log will say so. Set DisableReticle=0 and HideArmSleeves=0 to silence it. Everything else works on any build.

Weapon grip offsets are tuned for 2750x2850 at FOV 100. They do not carry across resolutions by any reliable formula. If you change either, expect to re-tune — it takes a few minutes with the numpad.

In-engine cutscenes still track your head. Only pre-rendered ones are detected and moved to the flat screen. The opening is covered; some later scripted sequences are not.

Weapon idle sway remains. The weapon hangs off a bone of the arm mesh, so it inherits the authored idle animation. Hiding the arms doesn't stop it.

Cutscene letterbox bars are still there, now on the flat screen.

Performance. ResolutionX / ResolutionY in the ini are the main dial — lower them and re-run FirstTimeSetup.bat. FOV below 100 looks nearly identical in the headset but runs noticeably better.


Reporting a problem

Please include BioshockVR.log, which appears next to BioshockVR.dll. The config block at the top of it shows every setting the mod actually read, and answers most "it's not working" questions immediately.

Common ones:

  • Nothing happens at all — check BioshockVR_loader.log exists next to the exe. If it's missing, dxgi.dll isn't being loaded.
  • Wrong resolution, or it launches fullscreen — run FirstTimeSetup.bat with the game closed.
  • could not find Bioshock.ini — launch the game once so it creates one, quit, then run setup again.
  • World feels too big or too smallEyeSeparation is half your IPD in cm.
  • You feel too short or too tallCameraHeightOffset, in cm.

Credits

Built on the OpenXR SDK and MinHook.

Huge thanks to VOID and mohamad-balouza/bioshock-vr. Several of the hardest parts here — disabling the reticle through the engine's own console path, the bone indices for hiding the arms without losing the weapon, and the render-target approach to capturing the whole interface at once — were possible because that work is public. Genuinely saved weeks.

# BioShock Remastered VR — v1.0.0

Native VR for BioShock Remastered. Real stereo rendering, head tracking, motion
controllers and 6-DOF weapon holding — not a screen in a headset.


Install

  1. Download BioshockVR-v1.0.0.zip below.
  2. Extract all four files next to BioshockHD.exe:
    ...\BioShock Remastered\Build\Final\
        BioshockHD.exe
        dxgi.dll
        BioshockVR.dll
        BioshockVR.ini
        FirstTimeSetup.bat
    
  3. Run FirstTimeSetup.bat once, with the game closed.
  4. Put your headset on and launch the game normally.

No injector, no plugin folder, no launcher, nothing to edit by hand.

Why step 3 exists: the game reads its config at startup and rewrites it on
exit with whatever it actually ran at, so a fresh install starts fullscreen at
your desktop resolution and can never fix itself. The setup script sets the
values before the game ever starts. It also turns anisotropic filtering up to
x16 while it's in there.

It finds Bioshock.ini on its own, backs it up first, changes ten keys in place
using the same Windows API the game itself uses, and restores the backup
automatically if anything looks wrong. Run it again whenever you change
ResolutionX, ResolutionY or GameFovDegrees.


Requirements

  • BioShock Remastered on PC (developed and tested against the Steam build)
  • Any OpenXR headset and runtime — Quest via Link/Air Link, SteamVR, WMR
  • Windows 10/11

What's in it

Rendering

  • True stereo, one eye per frame, with both eyes locked to the same instant so
    near geometry fuses properly
  • FOV reported to the runtime is kept in sync with what the game actually
    re...
Read more