I recently upgraded my T300 wheelbase to the Simagic Alpha Mini. I had a few custom made rims and the TM Open Wheel rim that I wanted to try to get working on the Simagic base, including all the buttons. After a few days of hardware exploring, learning about nRF24 & logic analyzers and packet disassembly I managed to figure out the important bits of the wireless protocol Simagic uses and make my rims work with the base directly.

I put all the info over at a github repository if someone else wants to do the same, or perhaps the opposite attaching a Simagic rim to another base :)

Simagic rim getting probed

Here’s a new version of the VR eye accomodation fix, with a few new features. On the original accomodation fix side there is now ability to have different color toning settings for daytime and night stages (with interpolation for other times of day). This is primarily because previously I was not happy with having to make a compromise with the contrast on the gamma setting, I wanted it higher for daytime but that made the nights too dark. So now being able to set different gamma for different times of day allows for better look in both cases. Its still not quite perfect as in some stages like Scotland the lighting is not entirely consistent with other stages.

An extra feature I implemented is haze reduction, which reduces the fog in daytime good weather conditions which is too thick in some stages like Finland. It works properly only in some locations (Finland, Wales, Poland primarily) as I had to limit its effectiveness so it wouldn’t bring any unfair advantage in worse weather conditions where thick fog is intentional. Here is a comparison screenshot from Finland stage:
Haze reduction

Another feature I added is overriding some vegetation pixel shaders from the game which makes most of the vegetation use alpha-to-coverage for much less aliased appearance when MSAA is enabled. This was primarily motivated by wanting to remove the weird distracting dither effect from the trees. This dithering removal looks like this (view the image in full size), the better aliased vegetation isn’t so well visible in a static screenshot but it looks much smoother in motion:
alpha-to-coverage

Download v2.0 of the mod from here, read the readme for instructions.

As before, the default config is made for the Vive Pro. Other headsets, especially LCD panel ones might need some adjustments. Also the mod should work without VR as well, but in that case you probably will want to disable at least the accomodation area override setting (overrideArea=0 into the config).

Here’s a quick update to the DCS VR Shaders mod for DCS version 2.7.0.4625. The ENABLE_HMD_MASK & MASKSIZE settings are removed in this version as DCS now includes a correctly implemented headset mask. Everything else seems to be as before, though this version is not very heavily tested.

Download from here.

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: https://youtu.be/c3ew2zCGULE

Yet another update for the VR shaders performance mod – which is now called just “VR shaders mod” because it does more than just performance improvements.
List of changes for this version:
– Renamed the mod to ‘DCS World VR shaders mod’
– Compatibility with DCS World version 2.5.6.49314 (23.5.2020)
– Removed MSAA_MASKSIZE setting as ED “cloned” it to DCS itself
– Added multi-sampled terrain shadow sampling (less aliased shadows with MSAA)
– Added alpha-to-coverage support for trees and tree flat shadows (less aliased trees with MSAA)
– Fixed ship wakes being permanently “burned in” with high water detail
– Simple transparent objects rendering setting (off by default – not well tested)
– Fixed some issues with NVG especially with NVG_GAIN_ADJUSTS_POSITION enabled

Get it from DCS forums: here.

It has new AToC and multisampled terrain texture sampling features which make shadows on terrain, trees and tree flat shadows less aliased with MSAA enabled. Comparison screenshot is here, again in motion the difference is more visible.

Yet another DCS shaders performance update is available on the DCS forums here.

Its compatible with 2.5.6.47224 beta and fixes a few issues that have accumulated over time. There is also a setting to keep bloom enabled, it seems to have a much smaller performance hit noways.

It also contains a new feature: Supersampling for the albedo (diffuse) textures. It is a very performance-cheap way to get improved clarity especially for the cockpit labels and stuff. So instead of having to supersample the entire rendered scene to get more sharpness, it will sample the diffuse texture multiple times.

The difference looks like this:
diffuse supersampling
Even with just 2x sampling the text labels (like “FIRE EXTGH”) are much sharper and its performance hit is very neglible, almost any GPU tha runs DCS in VR probably can do 4x without any noticeable hit. It looks even better in the headset than in the screenshot. With it its possible to turn down the pixel density quite a bit without getting a blurry cockpit, and then use the performance headroom to do 4xMSAA for smoother geometry edges.

It can be controlled with _HMD.hlsl setting ENABLE_DIFFUSE_SS, the default is 4x.

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 2.5.3.23788 (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.

https://youtu.be/m-mTcbT8obI

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.