A self-contained kit so the BT411 author can add cockpit-less play (XInput
pad + keyboard driving the stock RIO path) upstream. Under handoff/padrio/:
- PADRIO-IMPLEMENTATION.md -- the guide: the RIOBase seam (split RIO into an
abstract control surface + serial RIO + PadRIO), the three-file integration
(L4RIO split, L4CTRL.h rioPointer -> RIOBase*, the L4CTRL.cpp PAD token ->
primaryControlType=PrimaryRIO so MechRIOMapper engages unchanged), the
build/XInput note, the bindings.txt format, config, and verification.
- src/ -- the two NEW drop-in files (L4PADRIO.*, L4PADBINDINGS.*).
- reference/L4RIO.h -- the header after the RIOBase split.
- bindings.default.txt -- a sample of the profile written on first run.
The guide also documents the two game-side gotchas BT411 shares and will hit
when a real device first drives the mapper: (1) keyboard bring-up bridges must
stand down when rioPointer != 0, and (2) the .CTL streamed mapping resolves one
attribute slot early under the shorter WinTesla parent chain (stick writes
throttle) -- a LATENT real-pod bug PadRIO exposes; fix = a named pad slot at the
front of the mapper's AttributePointers[] (reconstruction-gotchas §11).
Handoff files only; does not touch the BT411 remote.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
137 lines
5.1 KiB
Plaintext
137 lines
5.1 KiB
Plaintext
# BT412 input bindings - keyboard and Xbox (XInput) controller.
|
|
#
|
|
# One binding per line, '#' starts a comment, keywords are case-
|
|
# insensitive. Loaded at game start; delete this file to restore
|
|
# the defaults.
|
|
#
|
|
# key <name> button <addr> [toggle]
|
|
# key <name> axis <axis> deflect <n>
|
|
# key <name> axis <axis> rate <n-per-second>
|
|
# pad <button> button <addr> [toggle]
|
|
# padaxis <src> axis <axis> [invert] [deadzone <d>] [rate <n-per-second>]
|
|
#
|
|
# <addr> RIO input address: lamp buttons 0x00-0x47, internal keypad
|
|
# 0x50-0x5F, external keypad 0x60-0x6F (hex or decimal).
|
|
# <axis> Throttle | LeftPedal | RightPedal | JoystickY | JoystickX
|
|
# <name> Keys name: A-Z, D0-D9 (digit row), F1-F12, NumPad0-NumPad9,
|
|
# Up, Down, Left, Right, Space, Enter, PageUp, PageDown,
|
|
# OemMinus, Oemplus, Oemcomma, OemPeriod, ...
|
|
# <button> A B X Y DPadUp DPadDown DPadLeft DPadRight Start Back
|
|
# LeftShoulder RightShoulder LeftThumb RightThumb
|
|
# <src> LeftStickX LeftStickY RightStickX RightStickY
|
|
# LeftTrigger RightTrigger
|
|
#
|
|
# 'deflect' holds the axis there while the key is down and springs
|
|
# back on release; 'rate' walks the axis by <n> per second and the
|
|
# position sticks (the throttle). Every lamp button is also clickable
|
|
# on the on-screen cockpit, so unbound addresses are never stranded.
|
|
|
|
# ---- Driving: number pad + modifiers ------------------------------
|
|
# The whole letter board stays free for the MFD banks; driving lives
|
|
# on the numpad with the throttle lever on the modifier keys.
|
|
key NumPad8 axis JoystickY deflect -1 # stick forward
|
|
key NumPad2 axis JoystickY deflect 1 # stick back
|
|
key NumPad4 axis JoystickX deflect 1 # stick left
|
|
key NumPad6 axis JoystickX deflect -1 # stick right
|
|
key NumPad7 axis LeftPedal deflect 1
|
|
key NumPad9 axis RightPedal deflect 1
|
|
key NumPad0 button 0x40 # Main trigger (Space works too)
|
|
key Shift axis Throttle rate 0.75 # throttle up
|
|
key Ctrl axis Throttle rate -0.75 # throttle down
|
|
key Alt button 0x3F # Throttle-head button
|
|
|
|
# ---- Driving: Xbox controller (signs match the pod convention) ----
|
|
padaxis LeftStickX axis JoystickX invert deadzone 0.24
|
|
padaxis LeftStickY axis JoystickY invert deadzone 0.24
|
|
padaxis RightStickY axis Throttle deadzone 0.24 rate 0.75
|
|
padaxis LeftTrigger axis LeftPedal deadzone 0.12
|
|
padaxis RightTrigger axis RightPedal deadzone 0.12
|
|
|
|
# ---- Joystick column: hat on the arrows, Main on Space ------------
|
|
key Space button 0x40 # Main trigger
|
|
key Up button 0x42 # Hat Up
|
|
key Down button 0x41 # Hat Back
|
|
key Left button 0x44 # Hat Left
|
|
key Right button 0x43 # Hat Right
|
|
|
|
# ---- Xbox controller: buttons -------------------------------------
|
|
pad A button 0x40 # Main
|
|
pad B button 0x46 # Middle
|
|
pad X button 0x45 # Pinky
|
|
pad Y button 0x47 # Upper
|
|
pad DPadUp button 0x42 # Hat Up
|
|
pad DPadDown button 0x41 # Hat Back
|
|
pad DPadLeft button 0x44 # Hat Left
|
|
pad DPadRight button 0x43 # Hat Right
|
|
pad LeftShoulder button 0x3D # Panic
|
|
pad RightShoulder button 0x3F # Throttle-head button
|
|
pad Start button 0x37 # config 1
|
|
pad Back button 0x36 # config 2
|
|
|
|
# ---- Upper MFD bank: the number row is the top MFD row and the
|
|
# ---- QWERTY row is the row under it, left to right across the
|
|
# ---- Left / Middle / Right MFDs.
|
|
key D1 button 0x2F
|
|
key D2 button 0x2E
|
|
key D3 button 0x2D
|
|
key D4 button 0x2C
|
|
key D5 button 0x27
|
|
key D6 button 0x26
|
|
key D7 button 0x25
|
|
key D8 button 0x24
|
|
key D9 button 0x37
|
|
key D0 button 0x36
|
|
key OemMinus button 0x35
|
|
key Oemplus button 0x34
|
|
key Q button 0x2B
|
|
key W button 0x2A
|
|
key E button 0x29
|
|
key R button 0x28
|
|
key T button 0x23
|
|
key Y button 0x22
|
|
key U button 0x21
|
|
key I button 0x20
|
|
key O button 0x33
|
|
key P button 0x32
|
|
key OemOpenBrackets button 0x31
|
|
key OemCloseBrackets button 0x30
|
|
|
|
# ---- Lower MFD bank: home row and the row below it, two 4-key
|
|
# ---- blocks split by an unbound gap key (G / B), mirroring the
|
|
# ---- keypad gap between the Lower Left and Lower Right MFDs.
|
|
key A button 0x0F
|
|
key S button 0x0E
|
|
key D button 0x0D
|
|
key F button 0x0C
|
|
key H button 0x07
|
|
key J button 0x06
|
|
key K button 0x05
|
|
key L button 0x04
|
|
key Z button 0x0B
|
|
key X button 0x0A
|
|
key C button 0x09
|
|
key V button 0x08
|
|
key N button 0x03
|
|
key M button 0x02
|
|
key Oemcomma button 0x01
|
|
key OemPeriod button 0x00
|
|
|
|
# ---- Secondary / Screen columns on the function keys, top to
|
|
# ---- bottom (0x16/0x17 and 0x1E/0x1F intentionally unmapped).
|
|
key F1 button 0x10
|
|
key F2 button 0x11
|
|
key F3 button 0x12
|
|
key F4 button 0x13
|
|
key F5 button 0x14
|
|
key F6 button 0x15
|
|
key F7 button 0x18
|
|
key F8 button 0x19
|
|
key F9 button 0x1A
|
|
key F10 button 0x1B
|
|
key F11 button 0x1C
|
|
key F12 button 0x1D
|
|
|
|
# The pilot keypad (0x50-0x5F) and external keypad (0x60-0x6F) are
|
|
# unbound - the game never reads them - but remain bindable here
|
|
# (they arrive as arcade RIO key events).
|