This reached second place in the 256-byte intro competition at raww.orgy 2006, the UK’s one and only Spectrum demo party. The concept was to take a rotozoomer, a demo effect well known for being smooth and fluid, and add a darker industrial side to it. I didn’t manage to get it to do everything I’d planned, but then that’s 256-byte size limits for you.
Source code is included in the download, if reading Z80 assembler is your idea of a good time.
The techy background: normally, to display a pattern rotated at angle Î¸ you would step over a texture, advancing cos Î¸ steps across and sin Î¸ steps down for each pixel you plot. A cosine wave, of course, is a sine wave shifted by a quarter period. If you vary this so that your ‘cosine’ is shifted more or less than a quarter period, it results in the shearing effect you see here.
For the music (if indeed it qualifies as music), I initialised the Spectrum sound chip with 14 carefully-chosen bytes located at the end of the code. However, the rest of the code over-ran slightly, so those bytes were overwritten by some unrelated data. I tried to trim the code down, but soon realised that the random junk actually sounded better than the bytes that were meant to be there, and so I left it at that.