Skip to content

v1.4.0

Choose a tag to compare

@acwright acwright released this 25 Jul 14:47
· 38 commits to main since this release

Adds Sprite as a fifth project type, covering the one part of the TMS9918 the editor had never touched.

Sprites are a hardware layer that overlays Graphics I, Graphics II or Multicolor (never Text Mode), so a sprite project is a companion to a screen project rather than a variant of one — it has no screen of its own.

Sprite editor

  • 8×8 or 16×16 patterns. A 16×16 sprite is four hardware patterns in column-major order (top-left, bottom-left, top-right, bottom-right); the editor shows one 16×16 grid with the quadrant seams marked and handles the interleaving.
  • Size and magnification are project settings, matching VDP register 1 where both are global bits. Switching between 8×8 and 16×16 only regroups the 256 patterns — no pixels are lost either way.
  • One colour per sprite, with a backdrop behind transparent pixels. Colour 0 is legal and means invisible; the picker marks those slots so they aren't mistaken for empty ones.
  • A sprite sheet picker showing every slot in its own colour.

Animations

Name any number of frame sequences and play them back at 1–30 fps over the backdrop, with hardware 1×/2× magnification applied. Reorder, retarget, scrub — every structural change undoable.

Export

Table Bytes Contents
sprite_patterns 2048 All 256 patterns, already in hardware quadrant order
sprite_colors 256 (8×8) or 64 (16×16) One byte per sprite, for Sprite Attribute Table byte 4
sprite_anim_<name> one per frame Pattern numbers (slot × 4 at 16×16), for attribute byte 3

All five formats apply — 6502 (ca65), Z80, BASIC DATA, binary — plus PNG as a sprite sheet or an animation film strip.

Sample

Astro Ace — a ship cycling its exhaust, a walking alien, and a four-frame explosion that cools from yellow to dark red.

Fixes

  • Three colour-union sites narrowed by elimination and silently assumed Graphics II; a fifth colour model turned these into type errors, now narrowed positively.
  • The localStorage index guard hard-coded its list of modes — the bug that hid saved Multicolor projects in Round 3. It now derives from the mode table, so a future mode can't reintroduce it.

Suite 406 green; type-check, lint and the Pages build clean.