Files
BT411/handoff/padrio/bindings.default.txt
T
CydandClaude Opus 4.8 2e475f4575 Handoff: PadRIO module + implementation guide for BT411
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>
2026-07-17 09:22:22 -05:00

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).