Version 1.06
A small but targeted release. Two fixes on top of 1.05, one visible, one you only hit if you'd been poking at the video settings.
What's new
HUD chrome reappears in games that use OBJ palette 7
Several SNES titles store their HUD colors in the top slice of CGRAM — OBJ palette 7, which lives at indices 240–255. Our HDMI driver reserves indices 251–254 for sync-control codes, and when the framebuffer contains one of those values the assembly scanline copy substitutes it with the nearest visible color from the rest of the palette.
That substitution table was only computed once, before the game had uploaded its real palette, and never refreshed. So the first time a game wrote silver/white chrome colors to CGRAM 252/253/254, those pixels showed up on screen as sync-black instead.
Addams Family Values surfaced this first — the skull life counter and its silver frame looked like an empty black pill. The fix is small: the substitute table now updates incrementally on every palette write. Cost is O(4) in the common case, a full rescan only when one of the reserved targets itself moves. All of it stays on Core 0, so the HDMI VBlank ISR is untouched.
As a bonus while I was in there, the fast-mode per-scanline sprite cap went from 16 back up to 32 (SNES hardware max). Some HUDs assemble their chrome from a lot of small sprites and the cap was silently dropping the late ones.
Warning at boot when video settings could hide game content
If you've been debugging something and left BG1 off, or turned transparency off to check what it was doing, it's easy to forget. The next day you fire up a game and wonder why it looks broken.
After the welcome screen, you now get a yellow warning page listing every game-affecting video setting you have turned off — BG1–4, sprites, transparency, HDMA — with a nudge to open the settings menu (Start+Select in-game) if that wasn't intentional. The screen is skipped entirely when everything is at defaults, so you'll only see it when it's telling you something useful. CRT overscan is excluded because it doesn't affect game content.
Press any button or wait eight seconds to continue.
Firmware
frank-snes_m1_1_06.uf2— Board variant M1frank-snes_m2_1_06.uf2— Board variant M2metadata.zip— SNES cover art and game info for the ROM selector (copy to your SD card, same as before)