The Big SteamVR Input Release

While this was a very exciting change because it allows custom button mappings per game, it also required a major refactor of this plugin. However this provided an opportunity to clean up a bunch of cruft that had built up with PSMoveSteamVRBridge. @SuperEvenSteven got the ball rolling and did a ton of work breaking apart the massive monolithic mess that this plugin had become. I finally got around to incorporating his work and finishing off the refactor.

Because this is a major change to how all of the controller configuration and button mapping works you'll want to consult the updated Steam-VR-Setup wiki page for details on editing the new config files and setting up button mappings in the new SteamVR Input Editor.

As before you can download a zip'ed version of the build, but I would strongly recommend instead using the new installer executable. It will automatically register the plugin with SteamVR and create handy links to PSMoveService and PSMoveConfigTool on your desktop.

Changes

Added support for new SteamVR input API

Moved configuration out of steamvr.vrsettings into %appdata%/PSMoveSteamVRBridge

Added installer using BitRock

PSMoveService now auto-starts when steamvr starts if PSMoveSteamVRBridge is installed

Only start psmove_monitor if there is no valid HMD configuration

Save HMD configuration into PSMoveSteamVRBridgeConfig.json so that you don't have to do head alignment at start up every time

Support for Virtual Controllers

A virtual controller is an untracked gamepad with a ping pong ball attached for tracking. Since a ping pong ball is symmetrical we can't get an orientation off of it, so we use the HMDs orientation. Buttons on the gamepad can be mapped to SteamVR buttons. See the Virtual Controller Setup page in the wiki for details.