Skip to content

KN-86 — Marty Glitch Visual Prompt

Scope: Cartridge-resident only. Marty’s visual animation layer ships with the Marty Glitch cartridge. The Remotion ASCII/glyph-wave runtime itself is a firmware primitive available to any cartridge, but Marty’s specific face frames, glitch overlays, and background field animations are loaded from cartridge ROM at slot time.

Voice scope: The persona takes over the CIPHER feedback line. Base firmware HUD, status bar, action bar, and mission UI remain unchanged; only Cipher’s voice/feedback channel is hijacked by Marty.

Hardware constraints (see CLAUDE.md Canonical Hardware Specification):

  • 80×25 text grid, monochrome amber #E6A020 on black #000000
  • 8×8 bitmap glyphs (Press Start 2P + CP437 box-drawing set)
  • Logical framebuffer 960×600, 12×24 physical cell, integer-scaled onto the 1024×600 Elecrow with a 32 px horizontal letterbox per side (same on emulator and prototype per ADR-0014)
  • Target render area: ~40 columns × 20 rows panel, composited within 80×25 HUD

Generate a looping 30–60 frame ASCII/glyph-wave animation sequence rendering Marty Glitch — a Max Headroom-inspired broadcast-pirate persona — for the Kinoshita KN-86 retro handheld terminal. Output constraints: 8×8 bitmap glyphs drawn from the Press Start 2P Latin set and the CP437 box-drawing/shading character set, monochrome amber (#E6A020) on pure black (#000000), no other colors, intensity variation achieved only through glyph density and dithering (░ ▒ ▓ █ plus line-drawing characters ─ │ ┌ ┐ └ ┘ ├ ┤ ┬ ┴ ┼) rather than palette shift. Target render area is roughly 40 columns × 20 rows, composited as an inset panel within the larger 80×25 display; frames should expect surrounding mission-UI text to remain readable in the unused rows. Subject matter is a stylized, geometrically angular human face — Max Headroom’s plastic chromakey aesthetic translated to monochrome glyph art — rendered in three simultaneous layers per frame. Layer one is the face itself, built from CP437 geometry, always just slightly wrong: one feature drifts position by a cell or two between frames, one edge tears, one eye reprints to a different column mid-sequence, the mouth shape flickers through lip positions that don’t quite match the dialogue beat. Layer two is a broadcast-corruption overlay: horizontal sync-roll bars drifting vertically across the face every 8–12 frames, random scanline displacement shifts of 1–3 columns applied to narrow horizontal bands, character substitution jitter where individual glyphs briefly corrupt to a different CP437 character and self-correct within 2 frames, occasional full-frame vertical hold breaks where the whole composition jumps 2–4 rows and snaps back. Layer three is a background field of glyph-wave algorithmic art: geometric test patterns, slow-rotating wireframe cubes rendered in box-drawing characters, vertical bar-graph oscillations resembling a broken color-bar test signal, dithered density fields breathing in and out on a slow 60-frame cycle, all kept quieter than the face so as not to compete. The overall motion should feel like a 1988 television signal being hijacked by a broadcast that doesn’t technically exist yet on this hardware — a cleaner, more confident signal bleeding through tears in the corrupted overlay, as if a newer, sharper Marty is transmitting through the damage of an older, dying one. Vibe is affable-menacing TV-host persona trapped in a malfunctioning broadcast, equal parts infomercial charm and signal ghost. Animation should never feel smooth or interpolated — each frame should read as a discrete signal-capture event, and the cuts between frames should carry the same stutter energy as his vocal delivery: repeated frames that feel like dropped packets, sudden reprints, occasional 1-frame glitches to a wildly different composition that snap back immediately. No color. No motion blur. No sub-glyph precision. Everything snapped to the 8×8 cell grid. Everything amber. Everything stuttering.


Within a 30–60 frame loop, allocate frames by function rather than linear motion:

  • Idle base frames (~40%) — Marty’s face in neutral state, small jitter, background field cycling
  • Speech beats (~30%) — Mouth shape transitions tied to Cipher-line delivery timing
  • Stutter events (~15%) — Repeated frames / dropped-packet effects / 1-frame glitch outs
  • Sync-roll sweeps (~10%) — Horizontal bar drifts top-to-bottom across the whole panel
  • Signal clarity moments (~5%) — Rare “the future signal breaks through cleanly” frames where the corruption temporarily fails and a sharper version of Marty is briefly visible underneath

The clarity moments are narratively load-bearing. They’re the “he’s from the future, riding through on a signal that shouldn’t exist yet” beat — the visual counterpart to the Kinoshita Signal Glyph’s anachronism. Use sparingly so they land.


  • Does the Remotion runtime support per-glyph bitmask masking, or only cell-resolution composition? If the former, layer-three background field can be drawn through tears in layer two. If the latter, layers composite whole-cell.
  • What’s the target frame rate? 12fps reads as period-correct for the 1988 broadcast fiction; 24fps is smoother but risks feeling modern.
  • Is the animation blob per-character (one loop re-sequenced across dialogue) or per-utterance (distinct loops per Cipher line)? Per-utterance is better but costs cart ROM.