Retained flight shortcuts and keyboard bindings
The reference is TFX 2.05, September 1994. Executing the flight key initialiser recovers 67 non-null scan-code callbacks, retained in keyboard-checks.json. Held-key paths are separate: for example, Y/U HUD intensity has its own per-frame handler.
These are the confirmed extra shortcuts absent from the scanned printed manual’s flight-key descriptions, except where explicitly noted:
| Key | Effect | Native handler |
|---|---|---|
| Ctrl+Enter, confirming the callsign during enrolment | Creates a qualified pilot without completing training. Ctrl during either earlier name field does not count. | 0xa1ee0, rank assignment at 0xa2234 |
| 4 on the number row | Saves the screen as the next available GRAB_00.LBM, GRAB_01.LBM, etc. |
0x841ec, calling 0xd0c24 |
| 5 on the number row | Toggles auto stick pressure, with an on/off message. Its compiled default is on. Documented in the supplied README, but omitted from the printed manual’s flight-key list. | 0x85e54 |
| 6 on the number row | Restores the autopilot’s aircraft-specific cruise-speed preset. | 0x85e3c |
| Hold Right Shift, type PLOP | Toggles the native cheat flag, with CHEAT ACTIVE / CHEAT DISENGAGED messages. |
0x838dc |
| Shift+D | Restores the aircraft’s default weapons loadout and resets chaff/flares to 15 each. The cheat flag is not required. | 0x85c78 |
| Ctrl+D, with cheat active | Enters the original arming workflow during flight, then reloads view artwork and projectile-model bindings. | 0x85c78 |
| O | Alias of Backspace: select/cycle air-to-ground weapons. | 0x84a78 |
| F | Alias of the Ctrl handler: cannon/navigation selection. | 0x846e8 |
| Backslash | Alias of I: toggle the instrument landing system. | 0x847ec; the I callback is a wrapper at 0x84908 |
Key names here refer to QWERTY physical scan-code positions. The number-row shortcuts are distinct from their keypad counterparts. ISO scan code 0x56, the extra key beside Left Shift whose engraving varies by layout, is also bound directly to designator entry. It enters that view rather than taking Z’s view-sensitive lock/selection branch.
Cheat recognition and effects
The sequence is stored as scan codes 19 26 18 19 00: P L O P, followed by a terminator. The recogniser specifically requires the right Shift key (0x36); left Shift does not activate it. Matching letters are consumed before ordinary key dispatch, so the first P does not pause the flight. A mismatched letter resets sequence progress. Repeating the sequence toggles the flag off.
The cheat word is data-object offset 0x13250. Its consumers bypass normal player collision/damage handling at 0x7d270, 0x8f460 and 0xa3504, and unlock the Ctrl+D arming path. This establishes invulnerability-related behaviour; it does not establish unlimited ammunition or fuel, mission completion, or restoration of damage already sustained.
The identically named plop model is the water-crash animation. The cheat recogniser does not invoke it; the shared name does not establish a functional connection.
Plain D’s flight-information toggle is documented in the printed manual. The Shift/Ctrl branches are additional behaviours in that same handler. Shift+D restores weapon assignments and countermeasure counts; it must not be described as a general aircraft repair/refuel shortcut. Ctrl+D’s arming workflow also reloads assets and resets targeting state. These are retained native paths, not features added by the inspection tools.
Training qualification
The CU Amiga tips describe confirming the third name entry with Ctrl+Enter to bypass training. This is also present in DOS 2.05: the name-entry routine returns whether Ctrl is held at confirmation, and enrolment stores the last entry's result in the parser's rank variable. Ordinary enrolment sets rank 0; Ctrl on callsign confirmation sets rank 1. Holding Ctrl only during first-name or surname entry has no effect on qualification. Both todselct and soap_sel in the decoded graph send rank-0 pilots to the nocando training-required message.
There is also a persistent training-completion marker, WAYTXT/A relative to the game's working directory. After the ten training hops, the fws graph calls strain; the launch dispatcher routes that command to the marker writer. It attempts to create the file and writes two bytes, 36 17, the little-endian word 0x1736. Future enrolment reads this marker and gives a new pilot rank 1 even without Ctrl. An absent marker or a different word does not qualify the pilot. Manually supplying this two-byte marker therefore produces the same qualification override; it does not enable invulnerability or unlock every individual campaign mission. This is a normal graduation persistence mechanism, not a second keyboard cheat.
check_enrolment.py executes native name entry, parser-variable lookup/reset, rank assignment and marker writing in isolation. Eight captures cover Ctrl during each entry, missing/incorrect/correct markers, byte order and the writer's exact output. Graphics and filesystem calls are intercepted; parser arrays are populated from the decoded graph. No retail installation or save files are changed, and no complete campaign is run.
Speed preset and stick pressure
The 6 handler calculates:
autopilot target speed = aircraft preset Mach × local speed of sound
Its input fields are 0x14698 and 0x14790; the result is stored at 0x8d40, used by the autopilot. The native aircraft preset capture supplies Mach 0.7 for the Eurofighter, 0.85 for the F-117, and 1.2 for the F-22. This restores the authored preset rather than capturing the aircraft’s current speed. The local sound-speed field is calculated from temperature at 0x99401 and used as the divisor when forming Mach at 0x99192.
The 5 key toggles data byte 0x8f32. It is consumed by several flight-model calculation paths, including 0x9a049, 0x9bd31 and 0x9f932; it is a flight-control aid rather than a graphical toggle. The retail README explicitly documents this key. Its complete aerodynamic effect remains to be characterised alongside the flight model.
Verification and coverage
check_keyboard.py executes the original initialiser and selected handlers in Unicorn. It captures all callback pointers, verifies numbered screenshot filename selection, checks right-versus-left Shift cheat activation and its toggle messages, runs both stick-pressure states and three speed presets, and checks the plain/Shift/Ctrl D branches and countermeasure counts. Message delivery, file writing, arming screens and resource reloads are intercepted: no retail files are changed and no full mission is executed. The report records that scope.
Documentation comparison uses the 108-page scanned English manual, the installation README and the unofficial keyboard summary. Presence in native code is established separately from presence in any particular manual or key list. This is a confirmed shortcut inventory, not a claim that every menu/editor command and modifier-dependent held-key path has been fully mapped.