pouët.net

Down by Life on Mars

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.