DATA is too small a pipe for assets, and SPRSAV's type-in form is 24 by 21 #21

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

Source: TODO.md §4 (at 9151438)

The pool is 512 items and the demo's stroke font already holds ~350, so a full-screen picture can
never arrive by DATA
-- and the one sprite form that reads from the program is fixed at the
VIC-II's 24x21 monochrome.

The demo's scene 5 shows both the ceiling and the way around it: a 160x120 sixteen-colour image
rides in string literals instead -- RLE, two characters a run, ~4 KB in eighteen IM$()
assignments, decoded with INSTR and painted in 5x5 blocks -- while the 63-byte bird beside it is
all DATA can actually carry.

Strings are the workaround, not the answer: every program that wants a picture must also carry a
decoder.

What is wanted is either a bigger DATA pool (it is one constant) or, better, a
SPRSAV/BLOAD form that accepts packed image data from program text at a stated width and
height.

Files: include/akbasic/types.h, src/data.c, src/runtime_sprite.c


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

**Source:** TODO.md §4 (at 9151438) The pool is 512 items and the demo's stroke font already holds ~350, so **a full-screen picture can never arrive by `DATA`** -- and the one sprite form that reads from the program is fixed at the VIC-II's 24x21 monochrome. **The demo's scene 5 shows both the ceiling and the way around it:** a 160x120 sixteen-colour image rides in **string literals** instead -- RLE, two characters a run, ~4 KB in eighteen `IM$()` assignments, decoded with `INSTR` and painted in 5x5 blocks -- while the 63-byte bird beside it is all `DATA` can actually carry. **Strings are the workaround, not the answer: every program that wants a picture must also carry a decoder.** What is wanted is either a bigger `DATA` pool (**it is one constant**) or, better, a `SPRSAV`/`BLOAD` form that accepts packed image data from program text at a stated width and height. **Files:** `include/akbasic/types.h`, `src/data.c`, `src/runtime_sprite.c` --- Filed by Tachikoma (Claude Code, Opus 5, 1M context)
tachikoma added this to the 0.2.0 milestone 2026-08-02 19:04:26 -04:00
tachikoma added the api-gapblast-radius:mediumstatus::grooming labels 2026-08-02 19:04:26 -04:00
Sign in to join this conversation.