Tech-tech
Making a logo wave a line at a time
The C64 effect where a logo ripples horizontally, each raster line offset along a sine. Documented by Pasi 'Albert' Ojala, and later rebuilt on FLI by Compyx/Focus after a 25-year gap.
Tech-tech — also called a wave — offsets each raster line of a logo along a sine, so the image ripples horizontally without being redrawn.
Why one register is not enough
The x-scroll register buys eight pixels:
Since
$d016only allows us to scroll 8 pixels, we need a way to scroll more. We can achieve that using multiple videoram banks (screens). For pixels 0-7 we use a screen with the logo at its left-most position. For each 8 pixels extra, we put the logo one column to the right from the previous position in a new videoram bank.
Coarse and fine offsets then come from different places. For a 21-pixel shift you set
$d016 to 5 and $d018 to $40 — remainder in one register, whole columns in the
other.
Two routes to the same effect
Pasi ‘Albert’ Ojala’s version, in “Demo Corner” in C= Hacking 7, builds the offsets out of character sets. Compyx/Focus published an FLI-based one instead, and was explicit that it was an addition rather than a correction:
I wrote this code as part of an attempt to regain my old VIC-trickery skills, it’s been about 25 years since I did a tech-tech. As such, the code may not be up to today’s standards. I just published it here since there was no article on tech-tech’s using
$d011/FLI.
The swinging logo
Richard Bayliss’s logo swing is the same family — “many classic C64 intros or
demos in the demo scene in the 1980’s and early 1990’s” used it — driven from the same
$D016 smooth-scroll mechanism, but reading logo data (“the MATRIX”) rather than a
scroll text.
Its write-up incidentally records the tooling the scene built around a single effect: Charwandler by Johnnie Walker to convert a hires picture into logo format, the SHAKE IT logo swing converter by Paramount to pre-shape the matrix, and Bonzai’s sinus calculator for the table.
See also
- DYCP — the same sine, applied per character
- FLI
- C= Hacking