Skip to content

DelusionalLogic/winevrlink

Repository files navigation

VRLink for Linux
================

An attempt to get the windows version of wireless steam vrlink to work on
linux.

So far this is a prototype and a horrible hackjob, utilizing multiple
unsupported and un-upstreamable patches in dxvk and wine. It's also
unoptimized, and weird. What it does have going for it is that it works. Using
this you can wirelessly open the SteamVR home from the official SteamVR app for
Oculus, at a glorious 2 frames per second.

As mentioned, this is a major hackjob, involving close to 300 hours of
reversing internal Steam components and quite a bit of guesswork. The
difficulty of running the thing will reflect that. If that catches your
interest though, it's all here.

Besides the hacks to existing libraries contained in `lib/`, this repository
contains 3 new components. `dllhost` holds a wrapper for Valve's driver_vrlink
designed to run inside wine where it connect to a unix domain socket. The other
half of that domain socket is `native/` which is an openvr driver that creates
the domain socket on startup and exchanges data with `dllhost` as a cross-wine
RPC. Finally, `amf/` holds a shim for AMD's AMF to emulate it by using the host
implementation and dxvk.

Obtaining the windows driver
----------------------------

You'll need a copy of the windows vrlink driver to load into wine. Since you're
(presumably) on linux, Steam won't download it by itself, but you can ask Steam
to download content for different platforms. First thing you'll need to to
locate the Steam _depot_. I usually use SteamDB for that, which tells me that
the current depot id is [250821](https://steamdb.info/depot/250821/), but
that'll probably change. To download that depot you open the Steam console by
running `steam "steam://open/console/" in your terminal and run `download_depot
250820 250821` in that console. The console will tell you where you can find
the downloaded files.

Current Issues
--------------

- Audio isn't working.
- Skeleton tracking is not forwarded.

Getting steam to advertise support
----------------------------------

Valve has kindly exposed a commandline option to make steam advertise remote vr
capabilities on linux, even though they don't currently support it themselves.

`steam -vrlinkforceenable`

Thanks Valve :)

About

A wonderful hackjob to get vrlink working on linux

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published