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.

So the flying season has ended for me for this year. I got my license a few months ago, and already flew 25 hours as a certified pilot! So far in addition to the DG-505 trainer I flew the Astir CS Jeans and LS-4. Its surprising how different the planes handle and feel despite having a very similar design on first sight.

The LS-4 feels very nice, only thing I dont like about it so far is the wheel brake which is operated by pressing the bottom of both rudder pedals with your heels - slightly tricky if you want to use the rudder at the same time.

I almost had to do an outlanding as well, flying the Astir. I was 450m from the ground and over 8 km away from home in headwind. I felt quite anxious at first but I had a field picked for the outlanding and when I was low enough that I knew I’m absolutely not going to make it home, I felt quite confident about being able to land ok. But then I found a weak thermal still and after a bit of patience made it back up! Track for that flight is here.

Proper cross-country flying still seems a little bit scary, but maybe next year I will go an do it in a two seater with some experienced pilot.

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.


I had my first solo flights a week ago, phew. All went well and I have done the required 10 solo flights now for my final flight test. I was even a bit surprised how easy I felt about the first solo flight, not much anxiety at all. As such the flying itself I feel I can handle well, its any unexpected situations especially during landing that I feel anxious about.

I took some video clips and pics with the Mobius action camera I had with me on a few longer flights, they are below. Next up for me is the final flight test, then I should get my glider license and then at some point I should man up for some cross-country flying. The “standard” easy route in our club seems to be to fly from Rautavaara to Iisalmi and back which is about 100km total. Not a difficult task in good weather but you need to be prepared for an outlanding on a field and the first time doing that feels like a huge challenge.

When weather is not so good it is good time to go do some geocaching. I went to “Kaivannonkierto” trail which is on a peninsula (if thats what it is called) that you can see on the last two flying images above. It is about 3km long looping path with some 15 geocaches and water on both sides.

The nature was nice and I enjoyed the walk, though I found the idea of geocaching trails - where you place as many geocaches as you can next to some path - a bit boring. Stopping every 150m to find a cache identical to the previous one is not too exciting.

Gliding season is in full swing. I did my first flight of the summer almost a month ago already but good weathers didn’t arrive until a few weeks ago. This weekend I flew only two flights, totaling under 1 hour 30 minutes but had plenty of new experiences:

  • New personal altitude record (3000m MSL)
  • Flying inside a cloud
  • Flying in a hail storm
  • Landing during rain
  • New personal shortest flight record (under 30 seconds), because of:
  • A true, non-practice failed wind launch due to winch engine failure

Flying can be unpredictable :) Unfortunately I did not have my cameras and stuff on board so I have only some less exciting photos from the ground.

Trying cloud flying was great, I did it with a teacher of course but managed it quite well. I found trusting the instruments to be not that hard, possibly due to so much simulator flying where the instruments are the only thing you have. Resisting the temptation to react to the things you think you feel the plane is doing is challenging however.

Flight track is here, the fast rise from 1200m MSL to 3000m MSL is inside a cloud. Solo flights ahead of me next…

freejoinAnnoyed by the clumbersome booking system in recently released multiplayer for Assetto Corsa, I wanted to see if something could be done to improve it. I came up with a system that uses prebooked slots and a specially prepared client to join those slots at any time.

Experimental version for AC early access v0.9.10 is available here. It requires the client to install a modified online interface module and a server to be running a special version. See the readme there for additional information.

While it allows joining a server at any time it has some limitations. Mainly you can only select from cars that the server has prebooked and annoyingly when a race is over the session will never end until all clients have disconnected.

edit: Freejoin updated to version 1.20 with better compatibility and various fixes. See the Freejoin page for more info.

A few people have asked for cpbo to be updated to work with Arma 3 PBOs and the possibility of releasing the source. I dont have the time to work on it and its a very old project anyway so here is the source code: download.

The source is licensed under LGPL v2.1 and should compile with Visual Studio 2005.

While in the Czech Republic still a few weeks ago, I had the chance to visit Zbraslavice airfield and do some gliding way before anyone in Finland would even think of starting the gliding season. Of course the weather was not so good that day so I only did one short flight with a local teacher in the L-23 Super Blanik.

The Blanik is certainly a different beast than the modern DG-505 I had flown before. Aluminium construction, not so perfect ergonomics, no high tech gadgets to help you. But I liked it and it was an unique opportunity to have a flight logged in my logbook in another country before I even have my license :)

Short video of an aerotow start there, it was my first time experiencing that as well:

I recently got hold of the Oculus Rift DK1 but ran into a bit of a problem with the fact that my Nvidia card only has four display outputs which all were already in use. So to use the Rift I’d need to unplug one monitor, use a HDMI switch or a HDMI splitter. The splitter seemed like the best option but active splitters seemed very expensive and I read about EDID problems with passive splitters.

Cheap passive HDMI splitter

Cheap passive HDMI splitter

The EDID problem comes when you have two displays (a monitor and the Rift) at the end of the single HDMI output and Windows (or the video card) pretty much randomly uses the EDID from either one - and when it uses the one from the monitor the Oculus SDK will not detect the Rift as being attached and cannot read the information from it. A way to avoid this issue is to plug in the Rift first, let windows detect it and then plug in the monitor. But this is clumbersome and needs to be done on every reboot so it is not very practical.

Thinking about what to do about this the solution was simple: Make Windows not see the desktop monitor at all by cutting off the DDC pins from the HDMI cable that goes to the monitor. DDC is used for communicating the EDID and with those gone Windows will only be able to talk to the Rift. This of course means the Rift must be attached to have something visible in the monitor and the monitor will be limited to resolutions supported by the Rift, but in my case this is not a problem as the Rift reports it can support 1920×1200 which is the native resolution of the monitor I use.

In practice the easiest way to get rid of the DDC pins was to remove them from a HDMI to DVI adapter that goes to the monitor. In the DVI connector DDC data & clock are in pins 6 and 7:


Female side of the DVI connector. Pins number 6 and 7 are the DDC clock and data pins used for reading EDID information.

These were easy to remove with a pair of pliers, you need to be a bit careful to not bend the other pins too much but these adapters are also very cheap so its not a huge loss for it to go wrong. My result:


This is the male DVI side of a HDMI to DVI adapter with the DDC pins cut off.

I use this with a cheap passive HDMI splitter that cost 10 euros and it works well. One problem I did notice is that if I turn off the Rift box I get some signal errors visible on the monitor image, possibly the signal gets too weak when the unpowered Rift box is attached in the cable. It can be avoided by just keeping the Rift powered at all times or by unplugging the power cable from the Rift box instead of just turning it off (Reading the EDID from the Rift still works even with the box unpowered). Some shorter cables might help as well.

edit: Also I noticed that when you unplug the USB cable the rift display turns off so it is an easy way to unpower the rift when its not in use, while keeping the control box on.

Rift and the Dell monitor displaying the same image, but Windows only sees the Rift EDID information.

Rift and the Dell monitor displaying the same image, but Windows only sees the Rift EDID information.


Collidable objects just needed to have the string ‘wall’ in them.

I had a look at why the tree, forest, etc. collisions were not working since some Assetto Corsa patch and it turned out to be easy to fix so here is another update for Joux Plane. I improved the tree collision models as well, they no longer throw you around the track so much (rather you seem to now sometimes get stuck in them. Oh well).

Download v1.4 of Joux Plane from here.

Get version 1.41 from here.

A few of these things under the track were causing problems.

A few of these things under the track were causing problems.

Finally got around to fix the issues in Joux Plane with the recent Assetto Corsa early access versions causing collision problems in some parts of the track. There were some leftover triangles under the track in a few places from lower LOD level mesh used originally by RBR.

A few other improvements are included also, changelog for version 1.3:

  • Removed some remnants of low detail geometry under the track causing collision issues with newer AC versions
  • Broken track section no longer adds dirt to tyres
  • All grass is now valid track to avoid penalty from small cuts
  • Added more zoomed in external cameras

Download it here. The tree collisions also meanwhile seem to have become almost nonexistant and you can fall off the track in many places as well. But just stay on the track and you’re fine ;) Edit: Get the second updated version here instead, it fixes the collisions with trees.