This repository has been archived by the owner on Jan 2, 2021. It is now read-only.
Releases: dghost/quake2vr
Releases · dghost/quake2vr
v2.0.0 (alpha)
NOTE: For more info, and download links including the Shareware episode, see http://www.malcolm-s.net/q2vr/
Updates in this version:
- Oculus CV1 (consumer version) support with LibOVR 1.12
- Partial Oculus Touch support. Touch can be used as a gamepad input. Additionally, if "VR Controller Support" is enabled in the game options (VR section) (enabled by default for right-hand aiming), the Touch controllers can be used to aim weapons (orientation only). Positional weapon tracking is not supported.
- VR Comfort Turning (enabled by default, 22.5 degree increments). Can be disabled in game options, VR section. There are also two new console commands "comfortturn_left" and "comfortturn_right", so comfort turning can be used in conjunction with more aimmodes; bound to DPad Left and Right by default.
- Experimental VR auto-crouch feature (disabled by default), which lets you crouch in real-life to trigger in-game crouch. May be buggy. To enable, type 'vr_autocrouch 1' at the console
- VR Supersampling (Render Target Multiplier, Pixels per Display Pixel Override) can be set explicitly in game options (VR, Advanced).
Version 1.9.3
Version 1.9.3 (Pre-release)
Major changes:
- Now use a fullscreen window at the current desktop resolution for fullscreen.
- Should be more robust than triggering a display mode change.
- Means that setting the resolution larger than the current desktop mdoe will result in downsampling.
- Can be disabled using the
vid_fullscreen_desktop 0
cvar followed byvid_restart
. - UI will be added at a later date.
- VR mode now forces the use of a fullscreen window.
- Fullscreen mode forces auto-placement of window, and minimizes issues with windows always appearing on primary monitors.
- Can be disabled using the
vr_force_fullscreen 0
cvar followed byvid_restart
.
- Now default to GPU frame pacing to be disabled and a larger HUD size.
- Won't take effect unless you reset screen and video configurations.
- Shuffle menu options for clarity. Aiming laser is now under main VR menu, custom FOV setting is now under advanced.
- Update to libovr 0.4.1
New features:
- Can now adjust the walking speed in VR mode.
- Walking speed is calculating by multiplying the default walking speed by the value of
vr_walkspeed
. - Does not adjust run speed at all (still 2x baseline walk speed).
- Supports a minimum (0.25) of 25% and a maximum (1.5) of 150% of the original.
- Option also added to the VR menu that allows adjustment from 0.5 to 1.5.
- Walking speed is calculating by multiplying the default walking speed by the value of
- Can now adjust the VR mode HUD resolution.
vr_hud_width
andvr_hud_height
- UI will be added at a later date.
- Add ability to designate a Rift to use by setting
vr_ovr_device
.- Set cvar with the case-sensitive serial number of the device to use.
- UI has also been added to Oculus configuration options to allow this.
Bug fixes:
- Fix shader compatibility issues with Intel HD series GPUs.
- Now use more robust HMD initialization code for Oculus Rift.
- Fix issue with DK2 gamma hack being incorrectly applied to the DK1.
- Fix issue where engine string could crash the game.
- Fix issue that could cause potential crashes with cutscenes.
- OVR latency tester and position tracking messages are only spammed if you have
vr_ovr_debug
enabled. - Fix
vr_autofov
not working. - Fix
vr_autofov_scale
not working. - Fix potential issue with DK2 latency tester (still unsupported however).
- Fix some typos in menus.
- Fix numeric keypad not working.
- Fix issue where debug OVR HMDs were not working correctly.
v1.9.2
Version 1.9.2 (Pre-release)
Major changes:
- VR mode now supports position tracking (
vr_positiontracking
) - Updated to libovr 0.4.0 + adds support for DK2
- Note: Direct HMD mode is currently broken - use extended desktop mode for the time being.
- Extended desktop mode requires setting the Rift as the primary/only display to avoid Vsync issues.
- DK1 + Latency Tester support works again
- Added low persistence support for DK2+ HMDs (
vr_ovr_lowpersistence
) - Added luminance overdrive option for DK2+ HMDs (
vr_ovr_lumoverdrive
) - Added DK2 smearing prevention hack (
vr_ovr_dk2_color_hack
)
- Updated Steamworks API to 1.30
Version 1.9.1 (Pre-release)
Major changes:
- Updated to libovr 0.3.2
- Now supports time warping (
vr_ovr_timewarp
) - Now supports automatic motion prediction (
vr_ovr_autoprediction
) - Now uses geometry based distortion
- No longer supports custom lens separation distance and other customizations
- Latency tester support is broken for the time being and may be removed later
- Now supports time warping (
- Renderer improvements
- Adds support for sRGB framebuffer (
vid_srgb
) vid_gamma
deprecated in favor ofvid_brightness
- Uses software gamma adjustment instead of adjusting display gamma when possible
- Deprecates old bloom effect
- Uses new render pipeline that adds post-processing effects and is more consistent between VR/non-VR
- Supports new blur (
r_blur
) and bloom (r_bloom
) effects - Adds support for FXAA (
r_antialias 2
) and FXAA FSS (r_antialias 3
) (not recommended for DK1) - Generally better performing
- Adds support for sRGB framebuffer (
- Better integration of OpenAL-MOB
- Allows enabling/disabling HRTFs at runtime (
al_hrtf
) - No longer depends on OpenAL Soft configuration to be properly set
- Allows enabling/disabling HRTFs at runtime (
- HUD in VR mode is now more curved
Version 1.9.0 (Pre-release)
Major changes:
- Moved to Q2VR naming scheme for all files
- Executable is now
quake2vr.exe
- Game .dll's are now
vrgamex86.dll
- Will fall back on
kmq2gamex86.dll
ifvrgamex86.dll
is not found - Configuration file is now
vrconfig.cfg
- Save game directory is now
vrsave<n>
- Executable is now
- Ported a majority of platform specific code to SDL2
- Replaced the audio subsystem with one derived from Yamagi Quake II
- Now requires OpenGL 2.0 to run, even when not using VR mode
- Backported KMQuake II v0.20 Update 6 (see below for changes)
Improvements:
- Move to SDL2 brings the following improvements:
- Significantly expanded controller support that no longer relies on Xinput, including support for:
- PS3/PS4 Controllers
- Ouya controllers
- Custom configurations, both in configuration files and if launched via Steam
- More robust audio support with support for multiple audio APIs
- More robust display handling and brightness adjustment
- Significantly expanded controller support that no longer relies on Xinput, including support for:
- Renderer improvements:
- Added support for GPU frame pacing to minimize input latency (
r_fencesync 1
) - Added support for late-frame scheduling (
r_fencesync 2
) - Shader-based antialiasing is now available outside of VR mode
- Significant cleanup of video menu options
- Tuned defaults to more closely match stock Quake II
- Added blur post-processing effects
- Added to effects that cause the full screen to be color blended
- If the game is paused (in menu, console, etc) it blurs the view
- Added support for GPU frame pacing to minimize input latency (
- VR Improvements:
- Proper crosshair support - VR mode now uses the game-wide crosshair!
- Added menu option for the (broken) aiming laser that has existed since 1.0
- The HUD is now curved at a fixed depth to make it easier on the eyes.
- Support for SteamVR as a fallback if direct access to an Oculus Rift device is unavailable.
- The OVR latency tester now automatically sets the in-game motion prediction to it's result.
- Sound Improvements:
- Replaced the audio subsystem with a port from Yamagi Quake II
- The new SDL2 backend is significantly more robust and supports multiple audio APIs
- Now includes OpenAL support and HRTF compatibility via OpenAL Soft
- Significantly enhanced OGG media playback
- Brought back original Quake II railgun effect
- Improved modern railgun effects and added Quake III style core + particle trail
- Simplified various menus by removing unnecessary/esoteric menu items
Fixes:
- Fixed incorrect parameters with emulated HD DK settings
- Fixed screen shot issues with the load/save game menus
- Fixed crashes that occurred under some conditions when setting custom lens separation distances
- Fixed crashing related to bloom support
- No longer attempt to enumerate OVR devices every frame if one is not connected
- No longer equip "no weapon" when cycling weapons
- No longer print messages related to being out of ammo when cycling weapons
- Adaptive Vsync is disabled on AMD drivers to prevent display corruption
- Fixed menus behaving incorrectly while in a demo
- Oculus Latency Tester now works with distortion disabled
- Fix an issue that effected stereo separation when auto-IPD was enabled (may have existed in 1.3)
- Fix crashing on load screen related to null-pointer de-reference in the audio subsystem.
- Fixed an issue where the menu could get stuck on a load screen.
- Fixed the Plasma Beam not rendering correctly in VR mode
- Fixed surface subdivision that would cause seams to appear if applying water warping
- Fixed an issue where input could be applied to VR mode while in a menu or at the console
Changes:
- Deprecation of platform-specific backends in favor of SDL2 and GLEW.
- Significant cleanup of the renderer to remove pre-GL 2.0 extensions + cruft
- Removed support for OpenGL mini drivers
- Added standalone cvar for adaptive vsync (disabled for AMD video cards due to display corruption issues)
- Transitioned from ARB Assembly language shaders to GLSL shaders
- Added mission pack game .dll source to the repo for future builds (might split into separate repo/projects?)
- Default FPS cap increased to 150fps for future HMD support
- Merged
vr_hud_bounce_mode
intovr_hud_bounce
- OVR Latency Tester support now has dedicated cvar
- Replaced OVR bicubic distortion filtering option with bspline-weighted bilinear
- Reduced default OVR motion prediction value
- OVR render path now pre-computes the distortion and stores it in a texture
- Added ability to adjust OVR distortion texture resolution
- Changed default OVR distortion scale to scale to the nearest edge instead of the furthest edge
- Removed software caustic effect and replaced
r_pixel_shader_warp
andr_caustics
withr_waterquality
- Eliminated separate
vr_hud_bounce_mode
option and made it part ofvr_hud_bounce
- CD Audio support is deprecated in favor of ogg media playback
Changes from KMQuake II v0.20 Update 6:
- New
writeconfig
command - Better scaling of UI elements on the HUD
- Support for high-resolution menu graphics
- New cursor on the main menu
- Higher resolution HUD icons
- More impact decals
- Load time optimizations
- Improved load screen progress indicator
- Fix for save games in baseq2 being visible when using a different game dir
- Support longer file paths
- Reduce stutter when opening save/log game menus
- Downsample save game screenshots to nearest power of two
- Better bloom defaults
Version 1.3.1
New features:
- Added option to disable use of auto-calculated FOV
- Added lower sensitivity options for the Xbox 360 controllers
- Added linear exponential smoothing for HUD bounce falloff
- Added option to select HUD bounce falloff smoothing algorithm
Fixes:
- Pausing the game no longer causes loss of control over the view
- Restored pausing the game when a menu is up
- Fixed issues that could cause a crash on disabling VR mode
Changes:
- Removed pretty loading screens in favor of stock Quake II loading screen
- Removed the launch console
- Updated 4x FSAA
- Tweaked defaults
Version 1.3
Note: For this release I had to make changes to how I packaged both the releases and the extras package. It shouldn't cause problems, but if it does I recommend setting up a clean install.
New features:
- Configuration menus for all VR related properties under Options->Virtual Reality
- Support for Xbox 360 Controllers and Xinput compatible gamepads, configurable in the controls menu
- VR mode rendering improvements:
- Added fake 4xSSAA support
- Added bicubic filtering for Oculus Rift distortion shader
- Added support for the Oculus Latency Tester when the OVR Debug Mode is enabled
- Added emulation for the both the HD DK1 and DK1 to the OVR Debug Mode
- Added cvar's to explicitly control auto-configuration of properties:
- Added
vr_autoipd
to control whether it auto-configures IPD or uses value ofvr_ipd
- Added support for specifying custom lens separation distances for the Oculus Rift via
vr_ovr_lensdistance
- Added
vr_ovr_autolensdistance
to control if it auto-configure LSD or uses value ofvr_ovr_lensdistance
- Added
vr_ovr_autoscale
to control if it scales distorted image to the outer edge (default), inner edge, or uses the value ofvr_ovr_scale
.
- Added
Fixes:
- Fixed issue with HUD transparency
- Fixed issues with crosshair scaling improperly
- Fixed an issue with internal handling of angles past clamped tolerances
- Fixed an issue where angle clamping wasn't being performed as constant time operation
- Fixed an issue where the player model rendered wrong on the player configuration screen
- Fixed an issue where the player configuration screen would not save settings
Changes:
- Updates for the Oculus Rift:
- Updated to libOVR 0.2.5
- Improved robustness of Oculus Rift handling
- Allow enabling of VR mode even if an Oculus Rift doesn't have a connected sensor
- Removed automatic magnetic calibration (required by libOVR 0.2.5)
- Renamed
vr_motionprediction
tovr_ovr_prediction
- Updated VR HUD defaults for legibility and enabled transparency by default
- Replaced fixed video modes via
r_mode
with explicit mode setting usingr_width
andr_height
(required for support for future HMDs) - Replaced
in_joystick
within_controller
- set to 1 for Xbox, 2 for Joystick, 0 to disable both. - Added
r_drawnullmodel
to toggle drawing of coordinate axis for null or missing objects - Tweaked compiler optimizations to improve performance
- Removed support for versions of Windows prior to XP (required by Xinput)
- Switched to enumerating GL_EXT_shaderobjects and GL_EXT_packed_depth_stencil instead of GL_ARB_shaderobjects to improve compatibility with pre-OpenGL 3.0 hardware.
- Removed legacy controller configuration options from Options->Controls
- Removed dead code related to Windows 9x, Solaris, and DEC Alpha
- Started renaming RiftQuake II -> Quake II VR
Version 1.2.1
New features:
- Added a simple head/neck model to make up for the Rift's lack of position tracking.
- Enable or disable with
vr_neckmodel
. Enabled by default, setting it to 0 disables it. - Neck length can be adjusted with
vr_neckmodel_up
. Default is 0.232 meters. - Distance between spine and eyes can be adjusted with
vr_neckmodel_forward
. Default is 0.09 meters.
- Enable or disable with
- Added new aim modes.
- Aim mode 3 now requires the cursor be returned to the center of the screen before it rotates the view.
- Aim modes 5 and 6 were consolidated into aim mode 5, and it has been updated to function more like HL2/TF2's
vr_moveaim_mode 2
. It features partially decoupled aiming within a deadzone that moves with the view. - Aim mode 6 is now an implementation of HL2/TF2's default
vr_moveaim_mode 3
. This decouples viewing from aiming horizontally but keeps aiming within a deadzone. Movement is always in the direction you are looking. - Aim mode 7 is now an implementation of HL2/TF2's
vr_moveaim_mode 4
. This is identical to aim mode 6 except movement follows the aim direction. - Aim mode 8 is now a fully decoupled aiming/view mode, with view being absolute direction. You have to physically turn around in order to look behind you.
- Added support for separate horizontal and vertical deadzones.
vr_aimmode_deadzone
has been replaced byvr_aimmode_deadzone_pitch
andvr_aimmode_deadzone_yaw
for vertical and horizontal movement respectively.- Deadzone maximum size has also been increased to 360 degrees for each axis.
- Only applies to aim modes 5, 6, and 7.
- Added a mode to disable thread yielding/sleeping while idling.
- This improves performance, but may increase power consumption or decrease system responsiveness in some cases.
- Enable or disable with
vr_nosleep
. Enabled by default, setting it to 0 disables it.
- Added Oculus Rift debug mode.
- Meant to aid testing/debugging and is disabled unless explicitly enabled at launch.
- If no Rift is detected it emulates an HD DK prototypes.
- To enable add
+set vr_ovr_debug 1
to the command line.
Fixes:
- Fixed issues with teleporting, dying in multiplayer, or loading a save game causing improper view orientation/rotations for all aim modes except 2 and 4. While a fix is still being investigated, due to limitations in the Q2 network protocol aim modes 2 and 4 may not be able to be fixed.
- Fixed the most common causes of stuttering.
- Fixed issues with HUD bouncing that occurred when looking straight up or straight down.
- Fixed bloom causing graphical corruption when adjusting the distortion scale.
Changes:
vr_ovr_scale
has been changed to allow explicitly using the SDK provided distortion scale. Setting it to a value less than 1 enables this behavior, and is the default for new installations.- The near clip plane has been brought in to make weapon model clipping less obvious.
- HUD bouncing now uses spherical interpolation for more accuracy.
- HMD interface has been refactored to make it easier to add support for other HMD's.
Version 1.1
New features:
- Added manual FOV adjustment through
vr_fov_scale
- Added the ability to set movement relative to view direction instead of aim direction through
vr_viewmove
- Added smoothed HUD counter-rotation to help make 2D UI elements less jarring
vr_hud_bounce
controls intensity and disables itvr_hud_bounce_falloff
controls weighting and how many approximate frames it averages over
Fixes/changes:
- Fixed an issue where view offsets were being applied incorrection. This should help a lot of the problems with the world scale seeming off, although it is highly recommended that users change the HUD depth (
reset vr_hud_depth
in the console) afterwards. - Fixed broken rendering when setting the player as left handed
- Fixed crosshair rendering for both left and center handed configuration.
- Escape now always cancels cinematics
- Using the console or the menu no longer pauses gameplay (allows head tracking for scene to prevent nausea)
Version 1.0
Initial release.