RasterCore
Ready to execute

Hardware Heritage

DYCP stands for "Different Y Character Position." On the Commodore 64 and Amiga, standard text modes were rigid grids. To make text "wave" vertically, demosceners had to use tricks.

C64 Tech

On C64, this was often done using Flexible Line Interpretation (FLI) or by multiplexing sprites to draw the letters, allowing per-letter positioning.

Amiga Tech

The Amiga's Blitter could copy font data to arbitrary screen coordinates rapidly, making this effect trivial compared to 8-bit machines.

Modern Logic

We simulate this by drawing text to an offscreen canvas and then copying vertical slices to the main canvas with a sine-wave offset.

DYCP Scroller

Vertical sine waves on horizontal text.

Legacy Concept

; C64 Sprite Y-Expansion Trick
LDA #$00
STA $D017 ; Y-Expand Off
LDA SineTable,X
STA $D001 ; Sprite 0 Y-Pos
INX

Modern JS

for (let i = 0; i < textLen; i++) {
  let y = Math.sin(time + i * 0.5) * amp;
  ctx.fillText(char[i], x + i * spacing, base + y);
}