Skip to content

MichaelJW/DorsalVR

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

71 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

DorsalVR - A VR interface for PC games

@MichaelJW

DorsalVR is a Windows VR app that can pass motion data from your HMD and XR controllers to other software running on Windows, and mirror your monitor to a virtual screen inside the VR headset.

It currently supports outputting motion data via DSU (DualShock over UDP, also known as cemuhook protocol), which makes it compatible with Dolphin Emulator. Future versions will support output via other means.

Requirements

DorsalVR uses OpenXR and is written in Unity; currently it will only run on Windows (64-bit).

It supports any VR equipment that supports OpenXR (that is, any equipment that can use SteamVR, Oculus, or WMD), and so it can be used with the Oculus Quest or Quest 2, but only via Oculus Link, Air Link, or Virtual Desktop (Windows version) - it cannot run natively on the headset, even via sideloading.

If using Virtual Desktop, you may wish to disable "Increase video nominal range" in the Streaming settings; otherwise, the colours feel more washed out.

Usage

First, download the latest release's zip file from the releases page, and unzip it to a folder on your hard drive.

  • If using SteamVR: add DorsalVR.exe to Steam as a non-Steam game. Right-click it in your library, select Properties..., and tick Include in VR library.
  • If using the Oculus app: add DorsalVR.exe to your Library. (Click the Plus button, click App not listed? Add it here, then find DorsalVR.exe.)

Load DorsalVR as you would any VR app or game using SteamVR or Oculus. The first time you load it, it will do some setup in the background, immediately quit, and open a folder in Explorer, ready for you to set up your desired config.

Dolphin

Currently, the only app actively supported is Dolphin Emulator, ideally 5.0-14382 or higher; see this page in the Wiki for instructions on setting that up.

Command Line Parameters

One command line parameter is supported:

  • --yaml=path/to/config.yaml: chooses a YAML config file to load. If this is not specified, default.yaml will be used.

You can set these command line parameters via the app's Properties in Steam or via Menu > Edit in Oculus - in either case, put the parameters in the Launch Options box.

Known Bugs

Virtual Controller Angle Mismatch

Different OpenXR runtimes (SteamVR, Oculus, etc) can report the controllers' rotations in different ways; the specifics of this can change between one version of the runtime and the next.

If your virtual controller does not seem to match the angle or position of your real controller, please report it as an issue, and supply the details of the controllers and runtime you are using.

In Development

The following features are planned:

  • An actual UI for choosing config files.
  • A more aesthetic environment.
  • Better controller models.
  • Different forms of controller data output other than DSU.
  • Built-in support for other apps (to begin with: Citra, Cemu, Yuzu, and Ryujinx).
  • More tweaks to the controllers, to allow mapping, say, a virtual steering wheel.

Take a look at the open enhancements to see how progress is going, and feel free to suggest your own ideas.

Thanks

Big thanks to the Dolphin team for a tremendously well-written and well-documented emulator. The excellent Dolphin blog post Mastering Motion got me interested in this in the first place - read it, it's superb.

In particular, thanks to iwubcode, jordan-woyak, and Filoppi for their work on Free Look, motion input, and DSU, which I have learnt so much from.

Thanks also to: