Full title: Down Label: Life on Mars Credits: introspec^LoM (Design, Code) Fatal Snipe^FNM (Music) Diver^4D (Graphics) The bitmap font is based upon the Polish Dirty News OpenType font by Piotr Wozniak: http://www.myfonts.com/fonts/066font/polish-dirty-news/ Dancing people profiles were machine-converted from the clipart collection by All-Silhouettes.com: http://all-silhouettes.com/hiphop-dancers/ Compo: Old School Demo Requirements: A ZX Spectrum with 128K of memory (or compatible) Duration: 3 minutes (looped) Contacts: zxintrospec@gmail.com Notes: "Down" comes in two versions, _abc and _acb, which refers to the stereo channel mapping of your ZX Spectrum. It should work on almost every ZX Spectrum (or clone) with at least 128K of memory (please let me know if it does not). This demo was fast made especially for Sundown 2014, when I realised that another demo I was trying to finish in time for Sundown had no chance of being completed. Almost everything here was done in 10 days, except for the demo kernel, so please forgive a certain lack of polish and inventiveness. The kernel used in this demo is a little bit unusual in that it allows one to implement two "threads", i.e. one can have a video effect run in interrupts and simultaneously unpack the data for the next effect. Since the kernel is asynchroneous, it becomes much easier to provide an uninterrupted demo viewing experience. Another technicality is concerned with the animations used in this demo. They are all specially-prepared 4-frame texture animations. I call them "texture animations" because they can be obtained in any modelling package by fixing a static geometry and by shifting the striped (or checkered) textures by exactly half-width of the stripe. The beauty of such approach is to do with the fact that 2 out of four frames can be obtained by inverting the other two frames. On 128K Spectrum models one can pre-load the frames into 2 screen memories and animate full screen by swapping the pages and updating attributes, when appropriate. "Down" uses this free time to draw the static noise, to seamlessly switch between the animations and to draw screen mask and sprites. Most of the code in this demo was written especially for this demo; however, the kernel and hardware testing routines are actually borrowed from another (multicolour) demo in progress. The kernel relies upon the ZX7 "mega" decompression routine by Einar Saukas, with contributions from Urusergi and Team Bomba. In addition, I am using a psndcj^tbk version of the PSG player (this is the fastest packed PSG player available nowadays). Thanks: Diver^4D for suggesting to stick some noise on top, psndcj^TBK for seeing through an early draft and sharing some code and much enthusiasm, sq^skrju and Trefi^Debris for believing in this project throughout, Fatal Snipe^FNM for allowing me to use his tune and especially nq^skrju for adapting the tune to the British Standard. Special thanks to Mike^ZT, Gasman^H-Prg and rc55 for making the Sundown a truly special experience this year. Greetings to Alone Coder, Boleg, Crash Nicker, Evills^ZT, lordcoxis, Nodeus, Nyuk, psb, PulkoMandy, TSL, Tygrys^speccy.pl. Guys, I love you all. Software used: SjASMPlus ver.1.07RC8 by Aprisobal, based on the SjASM by Sjoerd Mastijn; Processing ver.2.0; ZX7 compressor by Einar Saukas; Spectaculator ver.8.0 by Jonathan Needle; UnrealSpeccy ver.0.38.1 by SMT and other people; UnrealSpeccy modification by TS-Labs and EARL; ZXSpin ver.0.7 by Paul Dunn; ZX Paintbrush ver.2.3.5 by Claus Jahn; Photoshop CS2; Irfan View ver.4.30 by Irfan Skiljan; Far ver.2.0 by Eugene Roshal & FAR Group; Far plug-ins to work with ZX files by HalfElf; TRDtool ver.2.2 by Shiru; TRX2X ver.1.2 beta 2 by Alex Makeev; monoscl by Shiru; mktap ver.5 by Jan Bobrowski; 7-zip ver.9.22 beta by Igor Pavlov; as well as various in-house software.