diff --git a/docs/re/captures/options-key-config-actions.png b/docs/re/captures/options-key-config-actions.png new file mode 100644 index 0000000..b7e7c83 Binary files /dev/null and b/docs/re/captures/options-key-config-actions.png differ diff --git a/docs/re/captures/tutorial-menu-labels.png b/docs/re/captures/tutorial-menu-labels.png new file mode 100644 index 0000000..92bb5d4 Binary files /dev/null and b/docs/re/captures/tutorial-menu-labels.png differ diff --git a/docs/re/flight-controls-runtime.md b/docs/re/flight-controls-runtime.md index ec0a471..b1b56bc 100644 --- a/docs/re/flight-controls-runtime.md +++ b/docs/re/flight-controls-runtime.md @@ -36,6 +36,46 @@ enough to complete a lock. The next thing worth doing is making aim *dwell* — cheapest oracle for whether a lock ever completes is the reticle itself, or finding the lock timer in the player object with the same anchoring trick used for hull. +## The game's own action list (from the OPTIONS key-config screen) + +Decoded from `dat/GP_OPTIONS.pak` (`po_keys_btn*` sprites) — this is the authoritative +set of bindable in-flight actions, straight off the disc, no probing required: + +| # | Action | Our mapping | +|---|---|---| +| 1 | Aircraft Control | LX/LY ✅ | +| 2 | View Point Control | RX/RY (unused by the pilot) | +| 3 / 4 | Left / Right Yaw Control | — (separate from pitch/roll!) | +| 5 / 6 | Accelerate / Decelerate | `RT` / `LT` ✅ | +| 7 | **Use Main Weapon** | `Y` ✅ | +| 8 | **Use Nose Weapon** | `RB` ✅ | +| 9 | Special Move | ❔ | +| 10 | Maneuver | ❔ | +| 11 | Resupply | ❔ | +| 12 | **Change Target** | ❔ — **this is the target-select the loop needs** | +| 13 | Change Main Weapon | ❔ (would reach `ASMissile`, Power 5000) | +| 14 | **Padlock Mode Toggle** | ❔ — **the aim-dwell mechanism** | +| 15 | Radar Map Toggle | d-pad 🟡 (matches the observed map overlay) | + +Two entries change the plan outright: + +- **`Change Target` exists**, so target selection *is* an input after all. The earlier + probe swept `LB/X/B/A/LS/RS` and found no ammo change — consistent with those being + exactly these non-weapon actions. The probe simply watched the wrong indicator. +- **`Padlock Mode Toggle`** is a view/aim lock onto the selected target. That is the + aim-dwell problem solved *by a game mechanic* rather than by tuning a PD controller — + and it is why a human player can hold a contact long enough to lock a missile. + +Also note `CONTROL SETTINGS` carries a **`Control Type`** preset plus **Yaw / Pitch / +Roll Sensitivity** and a separate **`Throttle`** option: the mapping is not fixed, and +the craft's response to a given stick deflection is configurable. Any calibration done +against one profile (e.g. the `ctrl_probe.py` throttle numbers) is only valid for the +save's current settings. + +**Next:** bind physical buttons to actions 9–14 by watching the *reticle and target +panel* (not the ammo counters) — and once `Change Target` and `Padlock` are identified, +re-run the missile test with a locked target. + ## Notes for the reimplementation - Two independent weapons with separate ammo pools and separate HUD counters: