From 52da65bc0d39105b801639971f071247c70b8a7c Mon Sep 17 00:00:00 2001 From: Cyd Date: Wed, 5 Aug 2026 10:18:43 -0500 Subject: [PATCH] Release 4.12.7 Flight sticks, HOTAS throttles, twist grips and rudder pedals, none of which the game could see before: they arrive through DirectInput rather than XInput, and PadRIO only read XInput. joyconfig.bat is the setup: the wizard asks you to move each control in turn and derives the sign convention from the direction of the move, then writes the joystick rows of bindings.txt between marker lines, leaving anything you have edited yourself alone. Confirmed on the Logitech Extreme 3D: a full pass wrote all four axes, six buttons and the hat, with X and the throttle lever inverted to match the pod's convention and Y left alone - and the deadzone on the twist grip was then hand-tuned from 0.08 to 0.18 in the file, which is the workflow the marker section exists for. Version strings bumped in RPL4.CPP, pack-dist.ps1 and the controls page that ships in the zip. Built clean, packed, zipped (1004 entries, nothing loose at the root) and smoke-tested from the dist: boots reporting 4.12.7, virtual RIO up, and no DirectInput enumeration at all on a default bindings.txt - the joystick layer only opens when the profile asks for it. Co-Authored-By: Claude Opus 5 (1M context) --- README.md | 12 ++++++++++++ RP_L4/RPL4.CPP | 2 +- docs/rp412-controls.html | 6 +++--- pack-dist.ps1 | 4 ++-- 4 files changed, 18 insertions(+), 6 deletions(-) diff --git a/README.md b/README.md index 0f8f927..c6c0ebc 100644 --- a/README.md +++ b/README.md @@ -75,6 +75,18 @@ Winners Circle camera is framed off the award stand itself rather than off whoever is standing on it, so the shot is the same one for every player at every head count. +[v4.12.7](https://gitea.mysticmachines.com/VWE/RP412/releases/tag/v4.12.7) +is about sticks. Anything that is not an Xbox-class pad — a flight stick, +a HOTAS throttle, a twist grip, rudder pedals, a wheel — comes in through +DirectInput rather than XInput, and the game could not see any of it. +Now it can, and `joyconfig.bat` sets it up: the wizard asks you to move +each control in turn, works out which device and axis answered and which +way round it reads, and writes the joystick rows of `bindings.txt`, +leaving anything you have edited yourself alone. A twist grip or rudder +bar drives both pedals through one signed `Pedals` axis, and a real +throttle lever owns its channel outright rather than nudging a position +the way a spring-centred stick has to. Ported from the sibling BT411. + ## Playing Grab the release zip (or run `pack-dist.ps1` on a build). Single player: diff --git a/RP_L4/RPL4.CPP b/RP_L4/RPL4.CPP index 00f1a4d..6ea588e 100644 --- a/RP_L4/RPL4.CPP +++ b/RP_L4/RPL4.CPP @@ -188,7 +188,7 @@ int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine fclose(file); } - DEBUG_STREAM << "Red Planet 4.12.6" << std::endl << std::flush; + DEBUG_STREAM << "Red Planet 4.12.7" << std::endl << std::flush; DEBUG_STREAM << "L4CONTROLS=" << getenv("L4CONTROLS") << std::endl << std::flush; #ifdef RP412_STEAM diff --git a/docs/rp412-controls.html b/docs/rp412-controls.html index b9c84d1..35f67c3 100644 --- a/docs/rp412-controls.html +++ b/docs/rp412-controls.html @@ -1,4 +1,4 @@ -Red Planet 4.12.6 — Controls +Red Planet 4.12.7 — Controls