fix(input): match original low-byte key scans
The Win16 handlers mask the keyboard scan to its low byte. Main and keypad Enter therefore both produce the right-flipper scan 0x1c, both Ctrl keys produce the left-flipper scan 0x1d, and scan 0x1b is the physical main-keyboard plus/right-bracket position accepted alongside keypad plus. Rust omitted main Enter and scan 0x1b, and incorrectly assigned Right Ctrl to the right flipper. Map the native keys to those recovered scan semantics. Keep A/D, arrows, and Equal only as explicit modern aliases and document the distinction. Test Plan: - `cargo test --workspace --all-targets --all-features` -- 125 passed - `cargo clippy --workspace --all-targets --all-features -- -D warnings` -- passed - `rumdl check --flavor commonmark README.md RECONSTRUCTION.md CHANGELOG.md` -- passed - `git diff --cached --check` -- passed
This commit is contained in:
+3
-3
@@ -54,10 +54,10 @@ for long end-to-end validation runs.
|
||||
|
||||
| Action | Original key | Additional modern key |
|
||||
| --- | --- | --- |
|
||||
| Start game / add up to 4 players | `+` | `=` uses the same main-keyboard key |
|
||||
| Start game / add up to 4 players | Keypad `+` or the main `+`/`]` position | `=` is also accepted |
|
||||
| Charge launcher | Hold Down arrow, release to launch | - |
|
||||
| Left flipper | Left Ctrl | `A` or Left arrow |
|
||||
| Right flipper | Keypad Enter | Right Ctrl, `D`, or Right arrow |
|
||||
| Left flipper | Ctrl (left or right) | `A` or Left arrow |
|
||||
| Right flipper | Enter (main or keypad) | `D` or Right arrow |
|
||||
| Nudge | Space, Left Shift, keypad `3` | Right Shift aliases keypad `3` |
|
||||
| Help | F1 | Enter/Escape returns |
|
||||
| Settings | `TDKPIN.INI` before launch | F10 opens the portable settings screen |
|
||||
|
||||
Reference in New Issue
Block a user