Files
Andreas T Jonsson cf520e172e fix(rpi): decode USB HID modifier bits for Shift/Ctrl/Alt
KeyStatusHandlerRaw in the Circle baremetal kernel dropped the
ucModifiers byte and sized the keyboard state arrays to 0x100 entries,
too small for libretro modifier keycodes (RETROK_LSHIFT=304, etc.).
As a result, holding Shift (or Ctrl/Alt) produced no XT scan code in
the shared frontend, so shifted key combinations never worked.

- Translate ucModifiers bits to RETROK_LCTRL/LSHIFT/LALT/RCTRL/RSHIFT/RALT
  so the existing RETROK_LSHIFT -> 0x2A / RETROK_RSHIFT -> 0x36 mapping
  in src/frontend/core.c fires correctly.
- Resize key_states/key_states_current and the dispatch / input_state
  loops from 0x100 to RETROK_LAST so modifier and other high keycodes
  fit and are not silently truncated.
- Add bounds guard for mapped raw keycodes.

Also stages long-pending packaging fixes in tools/package/rpi/package-rpi.sh
(Pi 4/5 KERNEL_MAX_SIZE bump, Pi 4 family DTBs, disable_splash, [pi400]
and [cm4] stanzas) and updates docs/STATUS.md.

Verified with 'make rpi' for Pi 3/4/5 and the new kernel images
written to /dev/sda1.
2026-06-04 15:27:07 +02:00
..