PageUp and PageDown are the volume knob

The cabinets had no volume control - they ran at unity and left level to an
external amplifier - so a player without that hardware had nowhere to turn
it down but environ.ini and a restart. PageUp and PageDown now step the
master volume by 0.05 while you play, from silent to double, and whatever
you leave it on is written to volume.cfg beside the exe and used from then
on. The environ.ini figure decides where a machine that has never been
touched starts out; the keys are the knob, and a knob stays where it was
left.

Page keys because they produce no typed character, so they cannot collide
with the character-keyed commands the engine already answers to, nothing
else in RP binds them, and they are on every keyboard including tenkeyless.

They are polled rather than read off the key-message path, which is worth
recording because the message path looked like the obvious home for them
and was tried first. RP's keyboard pump only takes WM_KEYUP, WM_SYSKEYUP
and WM_CHAR off the front of the queue, and the front end runs message
loops of its own, so key messages get raced for and lost: six deliberate,
well-spaced presses arrived as two. Fine for the abort chord, useless for
something you tap repeatedly to find a level. Reading key state directly
costs nothing and cannot be dropped. That losses figure is a pre-existing
property of the input path, not something this change introduced, and is
worth knowing before anything else gets bound there.

Builds clean, runs, and does not fire unprompted. The step function itself
is proven - it was driven end to end through the message path before the
switch, stepping the right way, clamping, and persisting. What I could not
test from here is the polling trigger, because Windows would not hand the
game foreground and injecting keys without it would have sprayed them
across whatever else was open.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
Cyd
2026-08-06 00:00:36 -05:00
co-authored by Claude Opus 5
parent 523f713a30
commit 4e8392fcfb
6 changed files with 176 additions and 5 deletions
+15
View File
@@ -126,6 +126,21 @@ Every one of these buttons is also **clickable on screen** — the red
strips around each MFD and the amber strips beside the map are the same
addresses, and they light up when the game commands their lamps.
### Volume
`Page Up` and `Page Down` raise and lower the master volume in steps of
0.05, from silent up to 2.0. The level is written to `volume.cfg` beside
the exe as you change it and is picked up again next launch, so it stays
where you left it. `RP412AUDIOVOLUME` in `environ.ini` sets where a
machine starts out before anyone touches the keys; delete `volume.cfg` to
go back to it.
The cabinets had no volume control of their own — they ran the game at
unity and left level and tone to an external amplifier and a 3-way
crossover. These keys stand in for the amplifier; `RP412AUDIOBASS` in
`environ.ini` stands in for the crossover's low band. See
[SOUND.md](SOUND.md).
### Not bound by default
The pilot keypad (`0x50``0x5F`) and external operator keypad