superhot-vr: fix grab, menu button (probably fixes #385) - #400
Open
skryvel wants to merge 3 commits into
Open
Conversation
skryvel
marked this pull request as ready for review
August 8, 2026 15:23
Contributor
|
for the HMD report it is very similar to b024a14 but needs to be more generic to allow more headsets and not hardcode for e.i. quest 2 or 3. |
Contributor
|
other than that. |
Some games sniff these to decide which motion controller scheme to enable, and they typically do it once at startup - before any controller has connected - so the HMD is the only device that can answer. Empty strings land such games in their fallback scheme: SUPERHOT VR picks its Vive scheme, where dropping items needs a trackpad, and Serious Sam 3 ignores controller input entirely. Games match against the handful of device families SteamVR shipped, so derive the family from the OpenXR system name instead of hardcoding one headset, and report the real system name as the model. An unrecognized system name falls back to Oculus-style strings, since touch-style controllers are the modern common case. Implements xrGetSystemProperties in fakexr so the property tests can exercise it.
SUPERHOT VR binds its menu action to a long press of the X button. The binding parser did not know the slot and silently dropped it, leaving the menu unreachable on touch-style controllers. Approximate a long press as a regular click rather than losing the binding.
Generic trackers identify as Vive Trackers, which some games sniff to pick a controller scheme: SUPERHOT VR switches to its Vive scheme when it sees one, where dropping held items requires a trackpad that touch-style controllers do not have. Add a small quirks table keyed on the game executable's name (Wine rewrites argv[0] to the .exe path, so this also works under Proton) and suppress generic trackers for SUPERHOT VR. XRIZER_MAX_TRACKERS overrides the default either way.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Grab/menu/throw working with Quest 3 WiVRn Proton setup. Includes quirks subsystem that is on !397; whichever merges first I'll adjust the other. Has the commit from !394 because it's required.
Recording:
shvr1.mp4