Revive is an application that allows select VR games exclusive to the Oculus Home platform to be played on a rival SteamVR-powered HTC Vive headset. A recent update to Oculus Home crippled Revive, an act that has caused outrage in the VR community. What does Revive actually do under the hood? Who’s behind it? And are Oculus really doing anything wrong anyway? We take a look at the story so far and speak to Revive‘s author LibreVR to dig a little deeper.
Wherever there is a ‘walled garden’ in the digital world, there are those who will seek access from the outside. As virtual reality enters the consumer space there are two major platforms vying for the public’s attention and money, each with their own content delivery portals. For Valve and HTC’s Vive headset it’s Steam, for Oculus and the Rift it’s Oculus Home. The reason for this separation is hopefully obvious. Both parties know that there’s big bucks to be made in distribution. If you can control a customer’s gateway to content, you reap the monetary rewards. At least that’s the theory.
A Question of Content
Nothing out of the ordinary so far then. In fact the PC is awash with different content producers’ own attempts to control their own slice of the global, online content market, with their own proprietary, mutually incompatible portals. EA’s Origin and Ubisoft’s uPlay are two of the larger examples, both tend to feature only content from those publishers.
In this online content portal space, Oculus Home is most directly comparable with Valve’s pioneering Steam portal. Both sell content from multiple publishers and both hold their own exclusive content, games you can only experience via those content portals, generally titles published by the parent organisation. Examples for Oculus Home include Lucky’s Tale and Chronos, for Steam it’s games like Half-Life and Portal. Both content portals share titles with no exclusivity in place but which have VR support, Adventure Time: Magic Man’s Head Games for example. The exclusives may be different, but broadly the approach is similar when it comes to selling and delivering digital content on the PC.
It’s important to note too that a developer can choose whether or not to publish via Oculus Home or Steam or both, if you’re an independent there’s no restriction from Oculus or Valve as to where your game can be sold. Oculus’ stance on exclusivity was outlined neatly by Jason Rubin, Head of Oculus Studios, in an interview with Road to VR‘s Ben Lang at GDC in March.
Choose Your Platform
Predictably, the difference emerges when you look at each platform’s approach to VR headset support.
In order to develop games compatible with either headset, you must do so against that headset’s SDK. The Oculus PC SDK currently only supports one headset: the Rift, with no official way for other headsets to tap into games made for it. Valve’s OpenVR SDK, which powers the HTC Vive, is designed such that headset makers can make their VR headsets compatible with any title that works with OpenVR. In fact, Valve has built their own Rift integration for OpenVR, allowing games written for the Vive to work with the Rift as well.
To put it more simply: Content written for the Oculus PC SDK can only be played on an Oculus Rift and can’t officially work on the HTC Vive. However, OpenVR has an official means by which any headset can access games built for it. Oculus is of course building their own titles (and those they are publishing) with the Oculus PC SDK, which means Vive users can’t play them even if the headset can technically be made to work with those games.
Inevitably, given the cost of both consumer headsets, most people can only realistically entertain the prospect of buying one. However, if a game is exclusive to one platform, especially if that game is sought after, it’s frustrating for those left out. This isn’t new of course. We’ve had this broadly analogous situation in the console space for years now, the difference here is that most people would regard the PC as a unified, open platform, especially when it comes to the choice of which hardware you use with the games you own. And that difference is key. PC gamers for instance have always had the expectation that no matter which keyboard or monitor they choose, their games will work across any of them.
Enter Revive
Revive is an injection driver project created by developer LibreVR which aims to bridge the growing software gap between Oculus Home and SteamVR. It enables the use of select Oculus PC SDK exclusive content on the HTC Vive, so those who aren’t lucky enough to have access to both headsets can enjoy them. As you can imagine, word of the application spread quickly among HTC Vive owners, with users gleefully posting their impressions of Oculus exclusive content played inside the Vive. In most cases users still have to purchase the games they played no matter which headset they wanted to play them with, however some situations enabled by Revive allow games to be played without a user paying (even if this wasn’t the intention of Revive’s developer).
Just last week however, Oculus released an update to its Home which altered the ways in which the platform checked a user’s so-called ‘Entitlement’ to applications launched through it, breaking Revive in the process.
We approached Oculus for a response to the recent updates and the re-jigging of their DRM. They responded with this statement:
Our latest software update included several new features, bug fixes and security upgrades, including an update to our entitlement check that we added to curb piracy and protect games and apps that developers have worked so hard to make.
This update wasn’t targeted at a specific hack.
When we first learned about hacks that modify our software to interfere with the security, functionality and integrity of the Oculus ecosystem, and allow games to run outside the scope of our QA, testing and support, we immediately notified the community that we will not be supporting or maintaining the long term usability or quality of hacked software.
We take the security, functionality and integrity of our system software very seriously and people should expect that hacked games won’t work indefinitely as regular updates to content, apps and our platform may break the hacks.
Why was the update necessary?
The added security improvements were designed to curb piracy and protect content and developers over the long term.
FYI regarding entitlement check – It’s functionality that’s common in commerce platforms that validates a user has purchased a piece of software.
In short, Oculus asserts that it responded to what it saw as a hole in its content platform which could potentially allow the circumvention of security measures put there to protect intellectual property present on the Oculus Home platform.
‘Revive’ Creator Q&A
We wanted to get a deeper understanding of the original exploit, the subsequent patch, and Revive‘s recent fix which once again restores HTC Vive functionality to some Oculus Home games, so we fired a series of questions over to the LibreVR, the creator of Revive.
RtoVR: Can you describe what Revive is, what it does, and why you created it?
LibreVR: Revive allows Vive users to play games that have support for the Oculus Rift. I created this software because I wanted to play Oculus games on my Vive headset. I also strongly believe that VR should not have artificial barriers preventing users from playing certain games just because they bought a different headset than the rest.
RtoVR: Do you think Oculus had legitimate reasons for patching the method by which Revive worked?
LibreVR: …depends on your definition of “legitimate reasons”. It was certainly added to make it harder for other headsets to run Oculus Home games, even if it wasn’t aimed specifically at Revive.
RtoVR: With the extra steps you’ve had to put in place to re-enable Revive in response to Oculus’ 1.4 update, in what theoretical ways (if any) might be re-purposed to allow piracy of Oculus Home content?
LibreVR: I don’t want to elaborate on that point, but it disables the ownership check so you can understand what that means for piracy.
RtoVR: Broadly speaking describe how Revive works?
LibreVR: The Oculus software consists of a number of major components, the most important of which are the Oculus Runtime and the Oculus Platform. The Oculus Runtime is the component that VR games talk to when they identify the headset, get tracking information and send rendered frames to the headset. Revive works by patching the game to use a different implementation of the Oculus Runtime that redirects all this communication to OpenVR, which is used by the Vive headset.
RtoVR: Can you describe how the recent Oculus Home update broke Revive functionality?
LibreVR: VR games also communicate with the Oculus Platform to check whether you own the game (the Entitlement Check) and for online functionality such as matchmaking and micro transactions. Revive previously left this component alone, since it was not necessary to patch this component to play games on the Vive. However since the update they changed the Entitlement Check to not only check whether you own the game, but also check whether you have an Oculus Rift headset connected.
The Oculus Platform patch is still only working for Unreal Engine games, there are quite a lot of Unity Engine games that need a different patch.
RtoVR: After a brief period after the Oculus Home update to 1.4 broke Revive, you now have it working again, can you detail how you managed it?
LibreVR: The Oculus Platform doesn’t have any more protections against patching than the Oculus Runtime. So it was patched using the same method which saved a lot of time. The Oculus Platform is not as intrusive for the user as other DRM solutions that are much harder to patch. But since Revive now needs to disable the Entitlement Check that means that any improvement to their anti-piracy measures will also affect Revive.
RtoVR: What are your views of Oculus’ approach to handling this matter?
LibreVR: I understand why they would do this, but it’s not a very strategic move. By integrating your vendor lock-in checks with your anti-piracy checks you are setting up homebrew developers against your anti-piracy measures.
RtoVR: Oculus states in their official response (as above) that their latest actions were to prevent ‘hacks’ like Revive compromising the “functionality and integrity of the Oculus ecosystem”, in their eyes breaking QA testing scope and safeguards against piracy. Do you think those concerns hold up with reference to Revive?
LibreVR: I didn’t break their piracy safeguards until their update left me with no other option.
RtoVR: How do you view the different approaches taken with regards to software integrity and piracy between Steam and Oculus Home?
LibreVR: They’re quite similar, but SteamVR hasn’t added any hardware checks, in fact they officially allow third-party drivers.
RtoVR: What are you plans for Revive? Does it have a long term future?
LibreVR: I will continue to work around artificial barriers between the different VR hardware. I hope Revive doesn’t need a long term future and that the VR industry eventually comes together to form a truly open standard for VR devices.
Oculus declined to respond directly to LibreVR’s answers, however they sent us this official statement:
This is a hack, and we don’t condone it. Users should expect that hacked games won’t work indefinitely, as regular software updates to games, apps, and our platform are likely to break hacked software.