v1.0
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
- Download
BioshockVR-v1.0.0.zipbelow. - Extract all four files next to
BioshockHD.exe:...\BioShock Remastered\Build\Final\ BioshockHD.exe dxgi.dll BioshockVR.dll BioshockVR.ini FirstTimeSetup.bat - Run
FirstTimeSetup.batonce, with the game closed. - 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.logexists next to the exe. If it's missing,dxgi.dllisn't being loaded. - Wrong resolution, or it launches fullscreen — run
FirstTimeSetup.batwith 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 small —
EyeSeparationis half your IPD in cm. - You feel too short or too tall —
CameraHeightOffset, 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.0Native VR for BioShock Remastered. Real stereo rendering, head tracking, motion
controllers and 6-DOF weapon holding — not a screen in a headset.
Install
- Download
BioshockVR-v1.0.0.zipbelow. - Extract all four files next to
BioshockHD.exe:...\BioShock Remastered\Build\Final\ BioshockHD.exe dxgi.dll BioshockVR.dll BioshockVR.ini FirstTimeSetup.bat - Run
FirstTimeSetup.batonce, with the game closed. - 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.logexists next to the
exe. If it's missing,dxgi.dllisn'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 small —
EyeSeparationis half your IPD in cm. - You feel too short or too tall —
CameraHeightOffset, in cm.
Credits
Built on the [OpenXR SDK](https://github.com/KhronosGroup/OpenXR-SDK) and
[MinHook](https://github.com/TsudaKageyu/minhook).
Huge thanks to VOID and
[mohamad-balouza/bioshock-vr](https://github.com/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.