Blog Home

Quake for Oculus Rift

My Oculus Rift CV1 finally arrived last week, so of course I had to update my fork of the excellent Quakespasm engine for the new Oculus 1.4 API.

Quake VR

While I was at it, I also fixed a number of bugs, included support for the Rift's headphones and the XBox One controller – I'd still recommend you play with mouse & keyboard, though. Controls are set up with reasonable defaults, but you can of course change everything in the options menu. There's also a new VR/HMD options menu where you can configure your preferred aim mode (e.g. decouple it from the view) and crosshair style.

The game starts directly in VR Mode, disables view bobbing and sets the texture mode to NEAREST for the proper, pixelated oldschool vibe.

Once you're in the game, press END or the start button on your gamepad to recenter the view.

Short playthrough of the first few levels of Quake in VR

Download and Source

Friday, May 27th 2016
— Dominic Szablewski, @phoboslab


#1 – Quaker – Friday, May 27th 2016, 21:44

Can i humble ask for support for the Vive ?


#2 – Trashbook – Saturday, May 28th 2016, 01:10

Vive support please. Oculus is trash.

#3 – Dominic – Saturday, May 28th 2016, 01:26

I don't have a Vive. Plugging the Vive SDK instead of OVR into the source shouldn't be too much work, though.

#4 – Dys – Saturday, May 28th 2016, 03:16

Use this code.

528253 r 62725252

#5 – Thilus – Saturday, May 28th 2016, 03:49

So glad to see this updated, thank you!
Also, I'll echo the call for motion controller support. Vive or Hydra controllers would really put this over the top, if it's possible!

#6 – ravioli – Saturday, May 28th 2016, 06:06

Thanks for updating! dm2 is a beaut!

#7 – ncmaothvez – Tuesday, May 31st 2016, 21:25

Received my CV1 last week too and almost immediately tried to find a Rift version of Quake. Glad I found your port! Looks really sweet!

Is the FOV locked to slightly less than 90deg in VR mode? I can change the FOV in non-VR mode but not in VR mode.

Also, on my system all liquid and teleporter textures get replaced by a semi-transparent gray texture, sometimes mixed with triangular shaped fragments of the real texture. Any idea what could be wrong?

I'm using a GeForce GTX750Ti with driver version 365.19.

#8 – ncmaothvez – Tuesday, May 31st 2016, 21:59

Update to above: The texture issue seems to be related to the r_oldwater setting. When set to 0, the water/teleporter textures disappear in VR mode.

#9 – Dominic – Tuesday, May 31st 2016, 22:49

@ncmaothvez: the FoV in VR is about 140 I believe. Not sure; it's dictated by OVR. Allowing you to change the FoV in VR would defeat the purpose of VR. It's supposed to be mapped 1:1 to the FoV of the headset. Anything else will only make you dizzy.

If you want to have transparent water, you also need updated BSPs I believe. It should work, though.

#10 – pegnose – Tuesday, June 28th 2016, 23:03

I also experience the missing textures for portals and water surfaces. They are just gray.

Also, how is hmd reset done now? "VR_RESET" does not seem to work anymore.

Otherwise: I love this, just played the new anniversary episode!! :)

#11 – pegnose – Tuesday, June 28th 2016, 23:11

OK, "Center View" works for me.

#12 – pegnose – Tuesday, June 28th 2016, 23:12

A little off-topic: when I switch to the new episode, I have to re-assign mouse1 for firing. The rest remains set. Why might that be?

#13 – pegnose – Tuesday, June 28th 2016, 23:45

Hm, I experience a strong frame rate hick-up every couple of seconds. GTX 980 Ti. Might be a NVidia thing. I use another OpenGL base VR software: WorldViz. There it is the same. My GPU driver is up to date.

It is rather disturbing, and problematic during fast game-play. Anyone else?

#14 – Xizt – Thursday, July 7th 2016, 18:49

Hm, I experience a strong frame rate hick-up every couple of seconds. GTX 980 Ti. Might be a NVidia thing.

#15 – Clueless – Saturday, August 20th 2016, 20:50

Please, please, please can someone explain to me in simple term how to get this latest version up and running. I have downloaded and unzipped both Quakespasm-Rift-2.1 and quakespasm-0.92.0_win64, but cannot figure out what to do to get this running.

Frustrated because I had Quake running with Oculus SDK 0.8.

Any help would be much appreciated.

#16 – Jacob.herzog – Thursday, October 13th 2016, 08:40

The blog is

#17 – cv1 support only? – Friday, November 25th 2016, 18:36

oculus sucks

#18 – Muldjord – Tuesday, November 29th 2016, 22:33

Holy cow! I just found this and I've been playing through two of the worlds in Quake using my Rift CV1. It's amazing! The game really is a masterpiece, and for the first time I actually feel like I get to know the maps because I AM IN IT!

The VR implementation is flawless. I especially like that you give us a lot of options for the way the mouse behaves with the HMD view. I always loved the way HL2 did it on the DK1 (and 2). So it pleases me that you've made that same method possible in this.

Thank you for making this! It is by far the best Rift experience I've had so far.

#19 – hobart – Wednesday, January 4th 2017, 00:44

wish you compiled normal quakespasm instead of just the SDL version.

#20 – IloveTouch – Thursday, January 5th 2017, 08:49

Can you pls add touch controllers?

#21 – Erik – Saturday, January 28th 2017, 18:34

Works well with both cv1 and dk2. You have to map a few buttons if you want to use xbox controller, or kbd/mouse works great too. Text messages are a little wonky, as is the character status bar, and some lighting effects are a little strange. Also, it's a bit weird when things get close to your face. Overall though, pretty comfortable, particularly if you change the aiming dot to a line; it's like shooting fish in a barrel. I did feel a little nauseated after playing for an hour or so. Definitely going to set up a couple of stations with this for the next lan party I run. =)

Post a Comment:

Comment: (Required)

(use <code> tags for preformatted text; URLs are recognized automatically)

Name: (Required)

Please type phoboslab into the following input field or enable Javascript. This is an anti-spam measure. Sorry for the inconvenience.