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.