diff --git a/docs/rp412-controls.html b/docs/rp412-controls.html new file mode 100644 index 0000000..ad3ed96 --- /dev/null +++ b/docs/rp412-controls.html @@ -0,0 +1,1524 @@ +Red Planet 4.12.3 — Controls + + + +
+ +
+

Virtual World Entertainment · Tesla pod · RP 4.12.3

+

Red Planet
Controls Map

+

+ Every input the pod answers to, on the gamepad and the keyboard. The + keyboard is the pod's button board: the letter and number rows are the + MFD banks laid out as they are printed on the panel, and flight moved to + the number pad so the board stays free. +

+

Generated from the default bindings.txt · all of it rebindable

+
+ +
+
+
Fly
+
Num 8 2 4 6stick · 7/9 pedals · 0 fires
+
+
+
Throttle
+
Shift / Ctrlwalks up or down, holds where you leave it
+
+
+
Reverse
+
Altthe throttle button on the pod stick
+
+
+
Abort
+
Alt + Qends your mission, score banked
+
+
+ + + +
+

Gamepad

+

An Xbox-compatible pad drives all five axes and the grip buttons. Hover or tap a control for its RIO address.

+ +
+ + + + + + + LT · left pedal + RT · right pedal + LB · panic + RB · reverse thrust + + + + + + + STICK + + joystick X/Y + + + + + + + + hat · look + + + + THRTL + + throttle (Y) + + + + + + + Y + X + B + A + + A · main trigger + Y upper · X pinky · B middle + + + + + + unbound + +
+
+ Select a control + Hover the diagram to read its binding. +
+
+ +
+

Keyboard

+

+ Colour is the bank each key drives: green flies the pod, red is an MFD + button bank, amber is a column beside the map. Dark keys are unbound and + free to take. +

+ +
+
+
+ flight & stick + MFD button banks + secondary / screen columns + unbound +
+
+
+ Select a key + Hover a key to read what it drives. +
+ +
+

ALT + Q aborts the mission on the spot — score banked, back to the menu or lobby. It is the only chord the engine listens for; the arrow keys are safe.

+
+
+ +
+

Where the keys live on the panel

+

+ Each MFD carries eight buttons: a four-wide top row and a four-wide row + beneath it. The keyboard rows run left to right across the upper MFDs, + then the lower pair — the same order your hand finds them in the pod. +

+ +
+
+
+
1234
+
Upper Left0x2F – 0x2C
0x2B – 0x28
+
QWER
+
+
+
5678
+
Upper Middle0x27 – 0x24
0x23 – 0x20
+
TYUI
+
+
+
90-=
+
Upper Right0x37 – 0x34
0x33 – 0x30
+
OP[]
+
+ +
+
ASDF
+
Lower Left0x0F – 0x0C
0x0B – 0x08
+
ZXCV
+
+
+
+
+ F1F2F3F4F5F6 +
+
+ Map · radar + + Secondary 0x10 – 0x15
+ Screen 0x18 – 0x1D +
+
+
+ F7F8F9F10F11F12 +
+
+
+
+
HJKL
+
Lower Right0x07 – 0x04
0x03 – 0x00
+
NM,.
+
+ +

+ G and B stay unbound on purpose: they are the physical gap between the + lower clusters. Every button here is also a mouse target on screen — + see The mouse + below — and lights when the game commands its lamp. +

+
+
+
+ +
+

The pod stick

+

+ What the gamepad stands in for. This is the cockpit's own TRIGGER STATUS + readout — four buttons on the grip, drawn the way the upper-right MFD + draws them. Hover one for its address and its stand-ins. +

+ +
+
+
Trigger Status
+
+ The pod joystick as the cockpit draws it, with its four grip buttons circled + + + + +
+ +
+ +
+ + + + + + + + + + + + +
Grip buttons
Upper0x47Y
Main0x40A · Space · Num 0
Middle0x46B
Pinky0x45X
Throttle0x3FRB · Alt
Panic0x3DLB
Hat0x41–44D-pad · arrows
Config 1 · 20x37 · 0x36unbound — yours to map
+

+ The throttle button is reverse thrust; the hat looks around. Both live + off the grip on the real stick. +

+
+ Select a button + Hover a circle on the grip. +
+
+
+ +
+
+ Pod diagram: the stick pitches, rolls and yaws the VTV +
+ Stick — attitude + Pitch, roll and yaw. Left stick on the pad, Num 8 2 4 6 on + the keyboard. +
+
+
+ Pod diagram: the throttle drives the VTV forward and back +
+ Throttle — travel + Forward and reverse. Right stick Y on the pad, + Shift / Ctrl on the keyboard; it holds where you leave it. +
+
+
+

Both plates are the pod's own instruction art, lifted from the shipped gauge assets.

+
+ +
+

The mouse

+

+ The third input. Every button on every display is clickable and lights + when the game commands its lamp — and each one reaches in under the + glass beside it, so the picture is the press target. The lit strip at + the edge is only the lamp. +

+ +
+
+
+
+ + press — top row + press — bottom row + +
+
+ One MFD. Four buttons above the glass and four below, each + 240px deep against a 480px pane — so the two banks + meet in the middle and the whole face answers the mouse. Only + 10px of each clears the edge to show its lamp. +
+
+
+
+ +

Arranging the glass

+

+ The pod bolted its displays down at one size. On a desktop panel there + is room to trade viewscreen for instrument, so all six are yours to + size — and the radar to place. Set these in environ.ini + beside the exe; they are read once at startup. +

+ +
+
+
+ + +
+
CENTERas the pod had it
+
+
+
+ + +
+
LEFTbottom corner; the MFD slides inboard
+
+
+
+ + +
+
RIGHTthe same, other side
+
+
+
+ + +
+
MIDLEFThalfway up; leaves the bottom row alone
+
+
+
+ + +
+
MIDRIGHThalfway up, right
+
+
+ +
+ + + + + + + + +
environ.ini — display layout
L4MFDSCALEAll five MFDs, as a percentage of pod size. 25–200, default 100
L4MFDSCALE_xxAny one on its own — UL UC UR LL LR. Unset inherits the line above.
L4RADARSCALEThe radar alone. It already sits at 1.35× the MFDs.
L4RADARPOSCENTER · LEFT · RIGHT · MIDLEFT · MIDRIGHT
+
+ +
+

+ Ask for too much and the layout wins. Panes are + clamped against their actual neighbours and shrink evenly, so nothing + overlaps and nothing comes out stretched. Scale the MFDs beside the + radar and it is the radar that gives way — halfway up a side it has + one above and one below, and it grows from the middle both ways. +

+
+ +

Filling the screen

+

+ The cockpit fits itself to whatever window it gets and keeps 16:9, so a + wide panel letterboxes rather than stretching. Launch with + -fitstart-fullscreen.bat — and it goes + borderless over the whole monitor and picks the render size to land on + the viewscreen 1:1, instead of you guessing at -res. +

+
+ +
+

Rebinding

+

+ bindings.txt sits beside the exe, written with the full + default layout on first run. Change a line, restart. Delete the file to + restore these defaults — worth doing after an update, since an existing + file is never overwritten. +

+ +
+
# grammar
+key <name>      button <addr> [toggle]
+key <name>      axis <axis> deflect <n>
+key <name>      axis <axis> rate <n>
+pad <button>    button <addr> [toggle]
+padaxis <src>   axis <axis> [invert]
+                    [deadzone <d>] [rate <n>]
+
+# deflect springs back, rate sticks where
+# you leave it (that is the throttle)
+ +
# examples
+key J        button 0x40      # trigger on J too
+pad X        button 0x40      # trigger on X
+
+key NumPadAdd      axis Throttle rate 0.75
+key NumPadSubtract axis Throttle rate -0.75
+
+# drop 'invert' to flip the stick
+padaxis LeftStickX axis JoystickX deadzone 0.2
+
+ +
+ + + + + + + + + + +
Reference — axes, address space, key names
AxesThrottle · LeftPedal · RightPedal · JoystickX · JoystickY
Buttons0x00 – 0x47
Keypads0x50 – 0x6F — unbound by default; the game never reads them
Key namesA–Z · D0–D9 · F1–F12 · NumPad0–9 · Up Down Left Right · Space · Return · Shift · Ctrl · Alt · OemMinus · Oemplus · Oemcomma · OemPeriod
PadA B X Y · DPadUp/Down/Left/Right · Start · Back · LeftShoulder · RightShoulder · LeftThumb · RightThumb
Pad axesLeftStickX/Y · RightStickX/Y · LeftTrigger · RightTrigger
+
+
+ + +
+ + diff --git a/pack-dist.ps1 b/pack-dist.ps1 index 7e43aa3..e8cf8fa 100644 --- a/pack-dist.ps1 +++ b/pack-dist.ps1 @@ -76,6 +76,28 @@ foreach ($pair in @( } Set-Content -Path "$dist\CONTROLS.txt" -Encoding ascii -Value $controls +# The same map as a page, for anyone who would rather look at the +# diagrams than read them. Its source is the published artifact, which is +# a fragment - the publisher supplies the document shell - so wrap it to +# stand alone: without a doctype the browser drops into quirks mode, and +# without a charset the typography arrives as mojibake. Written without a +# BOM so the charset declaration is the only thing speaking. +$controlsPage = Get-Content (Join-Path $root 'docs\rp412-controls.html') -Raw -Encoding UTF8 +$page = @" + + + + + + + +$controlsPage + + +"@ +[System.IO.File]::WriteAllText( + "$dist\CONTROLS.html", $page, (New-Object System.Text.UTF8Encoding $false)) + # --- OpenAL runtime -------------------------------------------------------- # The exe links OpenAL32.dll (32-bit). Prefer shipping the already-installed # runtime beside the exe; oalinst.exe covers machines where that misses. @@ -352,8 +374,11 @@ pod's real button banks: click them with the mouse, and they light up as the game commands their lamps. environ.ini is self-documenting: every option ships in the file with a comment (Steam networking, keyboard lighting, stick inversion, LAN -hosting, developer keys, and more). CONTROLS.txt has the full controls -map with pad and keyboard diagrams. +hosting, developer keys, display scaling and radar placement, and more). + +CONTROLS.html is the full controls map - open it in a browser for the +pad, keyboard and pod-panel diagrams. CONTROLS.txt is the same thing as +plain text. Known prototype notes: pods race untextured (the player1-8 skins come from the presets system, not shipped data), and text drawn on the plasma