Coder Social home page Coder Social logo

ejay / revive Goto Github PK

View Code? Open in Web Editor NEW

This project forked from librevr/revive

0.0 1.0 0.0 969 KB

This is a proof-of-concept compatibility layer between the Oculus SDK and OpenVR. Please forward all donations to the EFF.

Home Page: https://supporters.eff.org/donate

License: MIT License

C 9.20% C++ 90.80%

revive's Introduction

Revive Compatibility Layer

This is a proof-of-concept compatibility layer between the Oculus SDK and OpenVR.

WARNING: This is still pre-release software, don't buy games from the Oculus Store expecting this layer to work for you. Even for the games that have installation instructions there may still be compatibility issues or it may not work at all for you.

Installation

You need to have Oculus Home installed.

If you need to recenter the headset you can do so in the Steam VR dashboard by holding down the Dashboard button and selecting Recenter seated position.

Game-specific patches are no longer supported (except for Project Cars), all Oculus Home games should now be playable using the Revive Injector.

Oculus Home games

Credit goes to @rjoudrey for implementing the injector.

  1. Download the Revive Injector here.
  2. Go to the installation directory of the game in C:\Program Files (x86)\Oculus\Software.
  3. Find the main executable for the game. For Unreal Games the executable ends with ...-Shipping.exe.
  4. Extract ReviveInjector.exe and the Revive folder next to the executable.
  5. Make sure SteamVR is running and then drag main executable onto ReviveInjector.exe.

Project Cars (Steam, 64-bit)

You need to have Oculus Home installed.

  1. Download the Project Cars patch here.
  2. Install Project Cars from Steam, then go to its properties in the Steam Library.
  3. Uncheck "Use Desktop Game Theatre while SteamVR is active".
  4. Go to the Local Files tab and click "Browse Local Files...".
  5. Extract the patch into the folder that opened.
  6. Make sure SteamVR is running and then start pCARS64.exe
  7. A dialog will incorrectly state that Project Cars does not support VR, ignore that and press OK.

Controls

Xbox Controller

Most games are designed around the Xbox controller, so that remains the preferred input device for all Oculus Home games.

The controls are self-explanatory.

Touch (Vive) Controllers

When both Vive controllers are connected they will be used to emulate the Oculus Touch controllers. Many games allow you to use the Oculus Touch in place of the Xbox controller if you don't have one.

The Vive controllers have been mapped a little bit differently to accommodate the different designs of the controllers. The touchpad functions both as buttons and as the thumbstick, you can switch between them using the Application Menu button.

In Thumbstick Mode you move your finger across the touchpad to move the thumbstick and press down to press the thumbstick. In Button Mode the touchpad is divided into four diagonal areas, each mapped to the buttons A, B, X, Y press down on the touchpad to press the buttons.

By default the left controller starts in Thumbstick Mode and the right controller starts in Button Mode. For most games you will not have to switch between these modes.

Oculus Remote

Some games have support for the Oculus Remote instead of the Oculus Touch. If so, you can turn off one of your Vive controller and use the remaining one as the Oculus Remote.

When only one Vive controller is connected it will be used as an Oculus Remote. The remote maps the touchpad as a DPad with an Enter button in the middle, just like the Oculus Remote. The Application Menu serves as the Back button.

Implementation

It works by reimplementing functions from the Oculus Runtime and translating them to OpenVR calls. Unfortunately Oculus has implemented a Code Signing check on the Runtime DLLs, therefore the Revive DLLs cannot be used unless the application is patched.

The Revive DLLs already contain the necessary hooking code to work around the Code Signing check in any application. However you will still need to patch the application to actually load the Revive DLLs.

To-Do List

  • Translate Oculus Touch haptic feedback to the Vive Controllers.
  • Add render models for the Vive controller to show the Oculus Touch mapping.
  • Implement OpenGL and DX12 support

revive's People

Contributors

rjoudrey avatar librevranon avatar

Watchers

Erik Jager avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.