Skip to content

AJBats/pad-vr

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

8 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

padVR

A SteamVR driver that exposes a conventional XInput gamepad as a synthesized Index-style controller, so users without working motion controllers can still navigate the SteamVR dashboard and play gamepad-friendly VR games.

Replaces SteamVR's built-in driver_gamepad.

Features

  • Trigger (LT or RT) emulates the right VR controller's trigger — clicks UI elements, pulls in-game triggers.
  • Left analog stick navigates SteamVR menus and dashboard lists.
  • Guide / Xbox button tap opens or closes the SteamVR dashboard.
  • Guide / Xbox button hold (≥0.5s) recenters the seated/standing view.

Build

Requires Windows, MSVC with C++17, CMake ≥ 3.20.

git clone https://github.com/AJBats/pad-vr padVR
cd padVR
git clone https://github.com/ValveSoftware/openvr third_party/openvr
cmake -S . -B build -A x64
cmake --build build --config Release

Outputs:

  • driver/padvr/bin/win64/driver_padvr.dll
  • build/companion/Release/padvr_companion.exe

Install

Register the driver with SteamVR:

"C:/Program Files (x86)/Steam/steamapps/common/SteamVR/bin/win64/vrpathreg.exe" \
    adddriver "<absolute-path-to>/padVR/driver/padvr"

Disable SteamVR's built-in gamepad driver so it can't fight padVR. In C:\Program Files (x86)\Steam\config\steamvr.vrsettings, find:

"driver_gamepad" : { "enable" : true }

and change true to false.

Restart SteamVR, then run build/companion/Release/padvr_companion.exe. Leave it running whenever you want padVR active - it stays fully passive when SteamVR isn't running, so it's safe to leave on 24/7.

The companion runs silently with no tray icon by design. Manage it with Task Manager.

Optional: auto-start the companion on login

  1. Press Win+R, type shell:startup, hit Enter - opens %APPDATA%\Microsoft\Windows\Start Menu\Programs\Startup.
  2. Right-click in the folder → NewShortcut → browse to your build\companion\Release\padvr_companion.exe → finish.

To disable, just delete the shortcut.

⚠️ UEVR users - required per-game config change

If you play any game through UEVR (or UEVRDeluxe), you must disable UEVR's VR-controller mode for each game, or padVR's synth controller will hijack input and the game will stop responding to the gamepad after a button or two. UEVR auto-switches into motion-controller mode the moment it sees a VR controller in SteamVR, and padVR's synth controller looks like one.

For each UEVR game, edit %APPDATA%\UnrealVRMod\<GameName>\config.txt and set:

VR_ControllersAllowed=false

(The line will already exist as VR_ControllersAllowed=true - just flip the value.) Re-inject UEVR / restart the game. The gamepad will now drive the game directly via UEVR's normal pass-through, and padVR continues to handle SteamVR dashboard navigation.

Known issues

  • Real motion controllers won't work alongside an active XInput pad. While the companion sees a powered-on gamepad, padVR's synth controller is live and steals the right-hand role. Fully power down your gamepad (not just put it to sleep) to let real Sense / Touch / Index controllers take over.

Uninstall

"C:/Program Files (x86)/Steam/steamapps/common/SteamVR/bin/win64/vrpathreg.exe" \
    removedriver "<absolute-path-to>/padVR/driver/padvr"

Re-enable driver_gamepad in steamvr.vrsettings if you want SteamVR's default gamepad behavior back. Restart SteamVR.

License

Unlicense - public domain.

About

SteamVR companion app that makes it easier to control SteamVR menu using only a traditional gamepad.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors