Game mods, tools and stuff

Default/With mod. Better visible in motion.

Default/With mod. Better visible in motion.

Playing some Dirt Rally 2, I was annoyed by the behaviour of the eye accomodation. The way it pulsates in brightness and doesn’t expose the scene correctly in VR, I decided to see if it would be possible to fix it.

Result is this mod, it can override the screen area used by the eye accomodation, the eye accomodation parameters like speed & range and also color toning parameters from the game. The new default parameters in the mod config make the eye accomodation changes almost invisible and also reduce the color toning and contrast for more realistic looking colors. They look good at least with the Vive Pro.

Download from here. Get newer v2.0 from here.
Read the readme for instructions how to install and configure it.

Video showing it in action, note the lack of visible brightness changes:

I updated my DCS Shaders peformance mod, found on the ED forums here. Its compatible with DCS version, and also comes with new features such as included sRGB gamma fix, NVG fixes, dithering for the tonemapper (fix banding on the sky), etc.

I noticed from the DCS World shaders that the game appears to be using incorrect method for sRGB gamma conversion. The game uses a simple raise to power, while the correct way is more complicated – result of using the wrong method is elevated black levels. That means that, especially when using a VR headset with an OLED screen, at night time everything looks slightly grey and not as dark and contrasted as they could.

I did a fix for this into the game’s shaders. My method uses sRGB conversion from older, deprecated w3c standard. It is not strictly correct as newer IEC 61966-2-1 standard is slightly different. But the w3c standard is easier to apply the game gamma slider setting alongside with the sRGB space conversion so I used that. In practice the difference between the two is likely unperceivable anyway.

The mod can be downloaded from here, its made for for DCS World version (it might or might not work with other versions). See the readme for install instructions.

I have only tested the mod with my VR performance mod, but hopefully it works even without it.

I made an OpenVR hook/proxy thing for Assetto Corsa that adds some extra options when running in OpenVR mode:

  • Enables the use of seat pitch adjustment from the in-game onboard settings app
  • Allows adjusting supersampling for Assetto Corsa only
  • Allow individual view pitch/roll locking, with neck length option for more natural rotation
  • Enables using a motion controller like the Vive wand to use the in-game UI
  • Allows disabling the automatic re-center at startup so the HMD position is remembered between sessions

Download version 1.0 from here. See the readme.html file for more information.

I personally like using the roll locking set to 1 and pitch locking set to 0 with neck length of 0.3. This gives me a better feel of how the car is behaving and keeping the horizon level makes it easier to look at the track, without having to look up/down on hills like with the ingame lock horizon setting.

Adjusting the seat pitch allows me to align the virtual steering wheel position with the real one and cancel out some upwards pitch I have with my simracing rig.

Here is a short video showing some features and driving with those settings:

First, the seat pitch adjustment is shown. Then I drive a bit and you can see the car roll around the view, but the view follows the uphill section at Flugplatz without having to look up. Then I use the Vive wand to use the UI, including touch pad for navigating the pit screen pages and setup tabs.

It has been developed for the HTC Vive, but it should also work with the Rift if you use it in OpenVR mode. The controller mappings with touch may not work perfectly though.

edit: I did a small fix to the zip file, previous version was of debug build that required debug runtime to load.

OBS OpenVR Input pluginI made an input plugin for Open Broadcaster Software that allows capturing video directly from OpenVR/SteamVR mirror surface.

It allows capturing either the left or right eye, in full resolution as it is rendered by the game with some cropping presets (for HTC Vive) to use on those games which mask out the invisible parts of the image such as The Lab does in the screenshot to the right.

See the OBS resources page here for more information & download, or download directly here.

A known issue is a memory leak in the OpenVR SDK that causes OBS to slowly leak memory if the plugin is active but SteamVR is not running. The leak is quite mild at some tens of kilobytes per minute so its not a too serious issue. I have reported it almost an year ago here but Valve still has not fixed it.

New config options

New camera options

Here is another update to RBRvr which should fix the latency issues with rendering introduced in v1.4. It took a long time to find a way to get it working properly, but now it should be a lot more pleasant to look at.

In addition it comes with options to disable the default camera shake in the in-car view and and to lock the camera to the horizon in either roll axis only or roll + pitch.

I did not have time to test it thoroughly so its possible there are some bugs as the RBR camera override is now done in a totally different manner.

Download from here (v1.5). Get the updated v1.6 from here.

See the readme.txt for instructions and some troubleshooting hints. In-game you can also find a quick help sheet from the desk.

Here is an update to RBRvr that fixes the random crashing issue with the Oculus Rift, the steering wheel rotation setting not working properly and the virtual VR goggles sometimes appearing when pausing/unpausing the game.

Plugin compatibility has not improved with this version since fixing the Rift issue took quite a lot of time.

Download from here (v1.4). Edit: Get updated version from here.

See the readme.txt for instructions and some troubleshooting hints. In-game you can also find a quick help sheet from the desk.

Here’s an update to RBRift, now called RBRvr, that brings support for OpenVR. It should work at least with the HTC Vive, hopefully also with Oculus Rift although as I only have the Vive I haven’t been able to test it on the Rift.

This version also brings other improvements, including ability to drive with the Vive controllers. See the video below.

Download from here (v1.3). Edit: Get the updated version from here.

See the readme.txt for instructions and some troubleshooting hints. In-game you can also find a quick help sheet from the desk.

The default configuration has a render scale of 200%, if you are also using the SteamVR setting to increase the pixel density further you may see some performance problems. The render scale can be changed from the in-game menu or by editing the rbrvr.cfg file.

If you like it you can donate from the button on the right :)

Known issues:

  • Default camera isn’t always the correct in-car driver one, you may manually need to select the correct camera with the change camera key (default ‘1’) and then save your RBR profile.
  • Codriver mode is a bit buggy (wrong cameras seen).
  • If you have TrackIR, disable it when using RBRvr (head tracking conflicts).


Mclaren F1 GTR from the DLC

A new update for Assetto Corsa broke Joux Plane, so here is a quick update to get it working again. It also has working timing now thanks to AC supporting it in open config tracks now. The lighting is slightly tweaked as well as AC lighting changed quite a bit at some point making the track too bright. It still appears quite flat but at least in the morning it looks ok.

Full changelog:

  • Fixed compatibility with AC v1.1 (track was invisible)
  • Lighting modified to better suit recent AC versions
  • Implemented working start and finish line available in AC v1.1
  • Reverse version is now implemented as track configuration (reduced size)
  • Hotlap start position moved further back and barriers added to disallow reversing at start

Download from here. If you have the old version installed, remove the assettocorsa\content\tracks\joux-plane-rev directory as the reverse config now uses the new track configurations feature.

edit: Quick update to version v1.51 which fixes the reverse config finish line, download from the link above.

Here is another update to RBRift for Richard Burns Rally. Version 1.2 changelog:

  • Significantly improved performance, especially with longer mod tracks
  • Reducend render latency & corrected oculus tracking timing
  • Added config setting for reducing the vignette effect around the eyes
  • Added alt codriver mode where driver is wearing the rift (codriverMode=2)
  • Added gamma controls to cfg with defaults for slightly increased contrast
  • Added windshield hider feature (numpad *)
  • Added debug information display (numpad /)
  • Tweaked clip planes
  • Changed seat adjustment speedup key to left ctrl
  • In-car replay views are now in vr mode
  • Changed correct executable detection method
RBRift v1.2 with reduced vignette and hidden windshield

RBRift v1.2 with reduced vignette and hidden windshield

This version has pretty significant changes, like completely re-done stereo rendering implementation, corrected Oculus timing and new vignette reduction feature. It should now work very smoothly and latency free with vsync on, which is also default now.

Windshield hider is a new feature as well, it allows hiding parts of the car windshield which is just a mapped flat texture on the cars and does not appear right with stereo rendering. Also on many mod cars the windshield is too dark. The feature can be toggled with numpad asterisk key.

Clip plane tweaks should fix issues on some tracks where distant terrain got clipped away and improve in-car clipping. In-car views in replays now appear in “VR mode”. The 3D monitor effect from old versions is unavailable unfortunately, its no longer practical due to the different stereo rendering implementation.

Download from here. See the readme for install instructions as usual and some troubleshooting hints.


Here’s an update v1.1 to RBRift for Richard Burns Rally with fixes to some compatibility issues and few improvements. Changelog:

  •  Reduced number of backbuffers used by RBR (reduced latency)
  •  Fixed D3D error from Oculus runtime
  •  Fixed rift resolution issue in device initialization
  •  Fixed compatibility with rbr_rx.dll plugin (only cockpit was visible in-car)
  •  Added left shift + left ctrl as alternate shortcut key to recentering rift
  •  Added codriver mode

The latency fix should make it useable with vsync enabled, though by default its still disabled in the config. The compatibility fixes hopefully fix the random startup problems and make BTB tracks work that use the rbr_rx plugin.

The new codriver mode allows you to drive from the drivers seat using your standard monitor while a codriver rides with you on the codriver seat wearing the rift. So with it you can take a friend on a virtual rally car ride :) See the readme for instructions how to use it.

Download from here.Update: Go here for version 1.2.

See the readme for install instructions as usual and some troubleshooting hints.

Protip: for better immersion you can change the steering wheel rotation degrees the following way:

  1. Open misc.rbz file with a tool that can extract zip archives like 7-Zip File Manager.
  2. Extract the ‘LM_Driver.ini’ from it under ‘Misc’ directory in RBR.
  3. Modify the ‘Max Steeringwheel degrees’ from the ini file. Note the value is rotation in one direction so its half of what you usually have on your wheel.

I recently got a hold of the Oculus Rift DK2, and decided to try to make Richard Burns Rally work with it using a Direct3D “proxy” DLL. I had actually done it before already when I had access to the DK1 for a few days, but that was very rudimentary and did not really work too well. After some rewriting I got it working quite nicely so its here for anyone to try. It supports:

  • Oculus Rift DK1 and DK2 (DK2 preferred)
  • Full headtracking support, including positional tracking
  • Stereo rendering with correct IPD
  • Virtual 3D HUD
  • Virtual menus

It does not work with direct-to-rift mode for some reason so even the DK2 needs to be in extended mode. Also by default vsync is disabled since I experience some latency issue with vsync on – you can change the behaviour from the config file.

Download from here. Update: Grab version 1.1 from this post!

You need RBR version 1.02 with SSE executable. See the readme file for instructions how to use it and also some troubleshooting hints.

I updated Freejoin with better compatibility for newer AC versions and also some improvements and new features. On the server side race now ends correctly a set time after the first player is finished, track+car config cycle is configurable and the server has administration commands.

Get the updated version from here. The client and server are compatible with the old version as well. For running a server check the server setup guide on that page, the process is somewhat different now.

edit: I did a quick update to version 1.22, on client it fixes all servers being displayed as password protected and on server sessions are automatically added/enabled/disabled depending on cycle setting.