# Shot charge colour progression — 2026-10-28-r7

jdc requested a white → orange → red charge meter instead of the former red
blink at full power. This changes only the live HUD bar drawing in shotmeter.s.

## Visible behaviour

The same 30-pixel fill and native raw-charge range 15..31 remain. The first
third is white (fill below 10 pixels); the middle is orange; maximum charge
(raw 31 / fill 30) is continuously red. The bar no longer blanks on alternating
blink phases. The recorded charge keeps its colour through the ordinary
post-shot display. Automatic replay retains its existing resident HUD dash
representation, measured speed, held lifetime and exit cleanup.

The colours already exist in the native gameplay palettes: white in palette 0,
index 1; orange in palette 1, index 5; red in palette 1, index A. The patch writes
no CRAM colours and adds no tiles, sprites, shared RAM or DMA entries. Crowd
meters use their existing drawing and colours. Physics, input, charge sampling,
critical chance/power, speeds, goalkeeper and AI logic are unchanged.

## Source and evidence

Source: experimental/shotmeter.s, shotbar at ROM 2ED000..2ED7FF. Only that module
and the ROM title/checksum differ from r6 (596 changed bytes, including shifted
internal branches). Independent builds are byte-identical. The IPS reconstructs
the complete ROM from original v5.1W, MD5 8f863ecb108c1d213953bada9b98f4f2.

New verify_shot_colour.py / shot_colour_hook.py exercise 12 real native
windups (pads 1..4 × Normal/Hard/Easy), check white/orange/red composed pixels,
correct full fill under both former blink phases, native framebuffer colours,
and unchanged native palette values. The same new check rejects r6 at its
incorrect white middle stage. Existing shot_panel checks cover eight native
shot/replay/skip/timeout/pause cases. The shared release wrapper now requires
29 checks, including shot_colour, bound to this exact ROM/source.

SHA256 `a0cd85710be2004a89a5c0b3d8c97ff1fd77649c79d4d5fe487eaa7831aabd65`; CRC32 `47DF3530`.
Private evidence: work/shot-meter-colour-20261028-173307/ (builds, guarded diff, baseline rejection,
colour screenshots, exact-ROM QA receipts). Scripted native input only; no
physical-controller test claimed. See QA_STATUS.json for completed checks.

Delivery follows RELEASES.md: new basename, replace current downloads and the
same Bodin playlist item, retain controller mappings, fresh game progress.
Never close the active RetroArch without jdc's permission.
