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);
}