From 44dc8e48e7a85c8d4bb145cd7b0c125d4eae4667 Mon Sep 17 00:00:00 2001 From: Cyd Date: Mon, 6 Jul 2026 12:17:40 -0500 Subject: [PATCH] Default bindings: pad-mandatory axes, full keyboard button field Rework the shipped default profile around a required Xbox controller, refined from live-game testing: - All five axes are pad-only now (left stick / triggers / right stick); the key-axis bindings (arrows/WASD-style deflect and rate) are gone from the defaults, though the grammar remains supported. - Keyboard becomes the button field, geometry mirroring the panel: number row + QWERTY row = upper MFD bank, home + bottom rows = lower MFD bank as two 4-key blocks with an unbound gap key (G / B) standing in for the panel keypad gap, F1-F6 / F7-F12 = the Secondary / Screen columns top-to-bottom (0x16/0x17, 0x1E/0x1F deliberately unmapped), numpad = the full internal keypad with the hex keys on the operators (/ * - + . Enter = A-F). - Hat rides the arrow keys, Main stays on Space; Pinky / Middle / Upper / Panic are pad-only so no panic key sits inside the MFD field. - Pad B and LeftShoulder swap to Middle / Panic. - Rest of the throttle column and the external keypad stay unmapped. Co-Authored-By: Claude Fable 5 --- README.md | 11 +- src/VRio.Core/Input/BindingProfileFormat.cs | 111 +++++++++++++++----- tests/VRio.Core.Tests/InputRouterTests.cs | 4 +- 3 files changed, 95 insertions(+), 31 deletions(-) diff --git a/README.md b/README.md index de7fc41..9107596 100644 --- a/README.md +++ b/README.md @@ -29,9 +29,14 @@ controls: bindings* applies edits live). Keys and pad buttons press any RIO address; pad sticks/triggers and keys drive the axes in each axis' realistic travel window, with deflect (spring-back), rate (throttle-style, position holds), - deadzone, and invert options. Defaults: arrows = stick, W/S = throttle, - Q/E = pedals, numpad = internal keypad, IJKL/Space = hat + main, left - stick / triggers / right stick = stick / pedals / throttle on the pad. + deadzone, and invert options. The default profile makes the controller + mandatory: all five axes live on the pad (left stick / triggers / right + stick = stick / pedals / throttle) and the keyboard covers the button + field — number row + QWERTY row = the upper MFD bank, home + bottom + rows = the lower MFD bank (4-key blocks split by an unbound gap key), + F1–F6 / F7–F12 = the Secondary / Screen columns, numpad = internal + keypad (hex keys on the operators), arrows + Space = hat + main, with + ABXY / dpad / shoulders on the pad's named buttons. ## Wire behavior diff --git a/src/VRio.Core/Input/BindingProfileFormat.cs b/src/VRio.Core/Input/BindingProfileFormat.cs index 466b325..4091977 100644 --- a/src/VRio.Core/Input/BindingProfileFormat.cs +++ b/src/VRio.Core/Input/BindingProfileFormat.cs @@ -181,8 +181,9 @@ public static class BindingProfileFormat # RIO input address: lamp buttons 0x00-0x47, internal keypad # 0x50-0x5F, external keypad 0x60-0x6F (hex or decimal). # Throttle | LeftPedal | RightPedal | JoystickY | JoystickX -# .NET Keys name: A-Z, D0-D9 (digit row), NumPad0-NumPad9, -# Up, Down, Left, Right, Space, Enter, OemMinus, Oemplus, ... +# .NET Keys name: A-Z, D0-D9 (digit row), F1-F12, +# NumPad0-NumPad9, Up, Down, Left, Right, Space, Enter, +# OemMinus, Oemplus, Oemcomma, OemPeriod, ... #