RioProfile gains a nullable AxisRouting section mapping each calibrated axis (X/Y/Z/Rx/Ry/Rz) to a pad target (thumbs, triggers, or None) with a Centered or UnipolarPositive conversion; the default reproduces the old hardcoded routing exactly, so existing profiles are untouched. Routing resolution lives in a pure, ViGEm-free AxisRouter for testability; the sink neutralizes the pad on routing change so stale trigger state cannot leak across profile switches. Motivation: Descent reads the pad via SDL GameController, where the triggers are its stock fire axis-buttons - the old fixed routing put throttle on LeftTrigger (fires) and detent would have read as full reverse. descent-d1x.json now routes Z->RightThumbY (UnipolarPositive, detent = center) and Rz->RightThumbX, triggers untargeted; guarded by tests that parse the shipped JSON through the real deserializer and byte-compare the dxx-rebirth reference copy. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
101 lines
1.6 KiB
JSON
101 lines
1.6 KiB
JSON
{
|
|
"Name": "Descent",
|
|
"MatchExecutables": [
|
|
"d1x-rebirth"
|
|
],
|
|
"PlasmaGreeting": "DESCENT",
|
|
"WallpaperPath": null,
|
|
"OverlayLabels": {},
|
|
"Calibration": {
|
|
"InvertX": false,
|
|
"InvertY": false,
|
|
"InvertZ": false,
|
|
"InvertXR": false,
|
|
"InvertYR": false,
|
|
"InvertZR": false,
|
|
"EnableZR": true
|
|
},
|
|
"AxisRouting": {
|
|
"X": {
|
|
"Target": "LeftThumbX",
|
|
"Mode": "Centered"
|
|
},
|
|
"Y": {
|
|
"Target": "LeftThumbY",
|
|
"Mode": "Centered"
|
|
},
|
|
"Z": {
|
|
"Target": "RightThumbY",
|
|
"Mode": "UnipolarPositive"
|
|
},
|
|
"Rx": {
|
|
"Target": "None",
|
|
"Mode": "Centered"
|
|
},
|
|
"Ry": {
|
|
"Target": "None",
|
|
"Mode": "Centered"
|
|
},
|
|
"Rz": {
|
|
"Target": "RightThumbX",
|
|
"Mode": "Centered"
|
|
}
|
|
},
|
|
"Buttons": {
|
|
"16": 32822,
|
|
"17": 32823,
|
|
"18": 32824,
|
|
"19": 32825,
|
|
"20": 32816,
|
|
"21": 32777,
|
|
"24": 32781,
|
|
"28": 34991,
|
|
"29": 34990,
|
|
"32": 32817,
|
|
"33": 32818,
|
|
"34": 32819,
|
|
"35": 32820,
|
|
"36": 32821,
|
|
"37": 32850,
|
|
"56": 67,
|
|
"57": 68,
|
|
"58": 88,
|
|
"59": 65,
|
|
"60": 4101,
|
|
"62": 4102,
|
|
"63": 83,
|
|
"64": 4097,
|
|
"65": 8194,
|
|
"66": 8192,
|
|
"67": 8193,
|
|
"68": 8195,
|
|
"69": 188,
|
|
"70": 190,
|
|
"71": 4099,
|
|
"80": 48,
|
|
"81": 49,
|
|
"82": 50,
|
|
"83": 51,
|
|
"84": 52,
|
|
"85": 53,
|
|
"86": 54,
|
|
"87": 55,
|
|
"88": 56,
|
|
"89": 57,
|
|
"90": 9,
|
|
"91": 66,
|
|
"92": 82,
|
|
"95": 70,
|
|
"96": 28672,
|
|
"97": 28673,
|
|
"98": 28674,
|
|
"99": 28675,
|
|
"100": 28676,
|
|
"101": 28677,
|
|
"102": 28678,
|
|
"103": 28679,
|
|
"104": 28680,
|
|
"105": 28681
|
|
}
|
|
}
|