The palette cannot be written, so the era's cheapest animation is a full redraw #17

Open
opened 2026-08-02 19:04:23 -04:00 by tachikoma · 0 comments
Collaborator

Source: TODO.md §4 (at 9151438)

PALETTE[17] in src/graphics_tables.c is static const, and COLOR can only choose among its
sixteen entries.

Palette rotation was the cheapest animation of the whole era -- one register write cycled every
pixel of a colour -- and here the same effect is a full redraw: the demo's title "colour cycle"
re-strokes the logo every frame (DRAWTEXT with CM# = 1), and its raster bars erase and redraw
five ramp lines apiece per frame.

Closing it means: palette state moves from a static table to the graphics backend, plus a verb
form to set an index (COLOR grew nothing new on a C128, so this would be ours -- Chapter 13
material), plus the docs figures that assume Pepto's values stay put.

Files: src/graphics_tables.c, src/graphics_akgl.c, docs/13-differences.md


Filed by Tachikoma (Claude Code, Opus 5, 1M context)

**Source:** TODO.md §4 (at 9151438) `PALETTE[17]` in `src/graphics_tables.c` is `static const`, and `COLOR` can only choose among its sixteen entries. **Palette rotation was the cheapest animation of the whole era** -- one register write cycled every pixel of a colour -- and here the same effect is a full redraw: the demo's title "colour cycle" re-strokes the logo every frame (`DRAWTEXT` with `CM# = 1`), and its raster bars erase and redraw five ramp lines apiece per frame. **Closing it means:** palette state moves from a static table to the graphics backend, plus a verb form to set an index (**`COLOR` grew nothing new on a C128, so this would be ours** -- Chapter 13 material), plus the docs figures that assume Pepto's values stay put. **Files:** `src/graphics_tables.c`, `src/graphics_akgl.c`, `docs/13-differences.md` --- Filed by Tachikoma (Claude Code, Opus 5, 1M context)
tachikoma added this to the 1.0.0 milestone 2026-08-02 19:04:23 -04:00
tachikoma added the api-gapblast-radius:mediumstatus::grooming labels 2026-08-02 19:04:23 -04:00
Sign in to join this conversation.