Files
BT412/engine
CydandClaude Fable 5 59c454ba6c Cockpit: fix button lamp brightness -- decode the bitfield, subdue the idle baseline
The buttons all read fully bright once PadRIO went live.  Two causes:

1. The lamp value is a BITFIELD (RP412 LampLevel): bits 0-1 flash mode,
   bits 2-3 state1 brightness, bits 4-5 state2 (flash alternate).  My
   code treated any non-zero as bright.  Now decode it: solid -> state1
   level; flashing -> alternate state1/state2 at the flash rate.  Level
   0=off, 1-2=dim, 3=bright.

2. Diagnosed (BT_LAMP_LOG): the pod lights EVERY mapped button's lamp to
   a uniform DIM baseline (0x14 = state1Dim+state2Dim, L4Lamp
   NotifyOfStateChange) -- 'button present, function idle' -- and only an
   ACTIVE function to bright (0x3C).  So the dim baseline is on all
   buttons; rendering it at RP412's dim red (150,44,28) made the whole
   field look lit.  Darkened off/dim so the idle field reads as unlit
   dark keys; bright (active) keeps RP412's full values and pops.

Verified: idle cockpit shows dark/subdued button keys, not an all-lit
field; the lamp decode animates flash modes and lights bright only on an
active function.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-16 21:10:42 -05:00
..