ZX Spectrum Software
Here you'll be able to find a (hopefully) complete list of all of the software I've written for the Sinclair ZX Spectrum. Where possible I'll include downloads, although some of the software is hidden away on Maxell 3" discs and is rather tricky to get at. The software I've written for the "Speccy" falls into two categories - Demos (including Intros, and I've added competition graphics here too) and Utilities. I'm not really a games-writer. Below you can view it all, with a little write-up of the software, in reverse-chronological order... that's to say, the new stuff is at the top.
Downloads will come when I have sorted them out.
Demos and Intros
For an explanation of what Demos and Intros are, I suggest taking a look at the Demoscene entry on Wikipedia - it should give a better description than I could attempt to do. You may also like to check out the "lighter" but more specific ZX Spectrum Demos page.
pngconv
bas2tap
This is a typical case of running out of time before a competition, but still wanting to get an entry in. It's not a great piece of work, but oddly pretty I think. It was my 1k Intro for Forever8, held in March 2007 - sadly I was unable to attend the party due to prior engagements, but the intro came 2nd place. Out of two.
Just a note about the sound - it's created by ramping up the frequency of the envelope used by the AY chip, every frame, then dropping it back down. It sounded great in Spin on my work PC, through earphones. Pity it sounds poo in real life, tho'.
sjasmplus
pngconv
bmp2scr
bas2tap
megalz
This player for the raww.orgy 2007. This is I think my second attempt to write code specifically for the 128k Spectrum. The music and graphics are all stored in the extra pages, compressed using the wonderful MegaLZ, and the initialising code parsed the pages to work out what the various entries to the competitions were. It doesn't sound like much but it certainly made it easy to add new entries as they arrived... stick the file in a directory and make a small textfile with the title of the song. Wonderful.
I was a little overwhelmed with competition entries this year, with 7 256b intros, 9 screen$, and 14 AY-tunes, but they all fit into the 128k quite nicely. Well, not th 256b Intros, they were shown at the party separately.
Yet again Nella graces the title screen, this time in full colour. It was mentioned by some of the partygoers that it's a shame this screen wasn't votable, as it would probably have won. A shame for me really, as I really liked the prizes I was giving out. Ho-hum.
sjasmplus
pngconv
bmp2scr
bas2tap
megalz
At previous parties it had always been a little annoying to try and play the winning entries from the first raww.orgy demoparty... the music competition "player" was created by Gasman by loading each one in turn and playing it from BASIC... on a blank screen. My girlfriend thought it was hilarious that we were all sitting there watching a blank telly, nodding sagely at the music, beers-in-hands.
While I was working on the player for the 2007 party I branched off the code at a working point and built in the music and graphics from the original party. The winners, in case you're wondering, were MazingerZX by Lucky, and the gorgeous tune "Through Poland" by Factor6... a very deserved winner, with "Through..." tracks appearing in the following parties, one of which was actually a remix.
Again Nella graces the title screen in glorious black-and-white. In the picture she's waiting for a very special present from the organisers of the party. Oh yes.
Alcohol is a wonderful thing. It's as a result of drinking vast quantities of beer at the 2006 Sundown demoparty in Budleigh Salterton (just down the road from where I currently live), that "<3 Smash" exists. evilpaul of AteBit and I were indulging in beer and talking about the demoscene as a whole. I mentioned that I'm surprised no-one had, at that point, made the link between Smash the democoder and Smash the potato-based food product. "Surely someone should do a demo about it", I slurred. "Yes, let's do it!" he slurred back. And lo', we made it so.
In an age of newschool demos, it's quite refreshing to see a demo released which has a scrolltext, so we proceeded to stupidly greet anyone at the party who we could think of, usually trying to insult them at the same time.
The demo was very well-received by the audience, only came 3rd in the results. Still, fun was had. Hooray for us!
basin
tasm
Point5 followed on from my Forever-winning Intro Point. It's called Point5 because it's half the size, at only 512b. I used a different technique to generate the effect, although it's still not the actual effect I set out to achieve... but it looks nice.
Having got the routine to work, with some sound (not music), I made several modifications in order to squeeze it down to 512b, including removing the sound. Also, due to the poor quality of the Babelfish translation of the rules, I rewrote sections of the code so that it would return to BASIC... a requirement that wasn't actually required.
The intro took part in the Chaos Constructions 2006 512b Intro competition. It came 6th. Better luck next time, eh?
Rotozlow was an exercise in stupidity. I wanted to produce some work for the International Vodka Party, as I was unable to attend, and wanted to produce a stupid demo. So I took a classic effect, the Rotozoomer, and had a go at implementing it... in 100% uncompiled Spectrum BASIC. The result is painful to watch, and due to running out of time I didn't get the main effect to even work correctly.
I sent it to Yerzmyey for the party, which was taking place on the weekend of 29th April, 2006. He picked up my email after the party had ended, so it was a non-entry. No great loss, eh?
megalz
zxtoy
basin
excel
tasm
Released at the Forever7 party which I attended in Trencin, Slovakia, this 1k Intro was an attempt to create an effect that I still haven't achieved. It was for this Intro that I wrote a small Windows application called ZX-Toy - it's a simple graphics app which allowed me to work out values to go into the functions that looked nice. The actual function basically uses a large lookup table of specific sinus values, compressed with MegaLZ. I've since used non-compression methods to do similar things, but we live and learn. It's still a nice piece of code I think... with a lovely little tune based on a track by 65daysofstatic.
The title Point is a play on my name - "Bod" is Czech/Slovakian for "Point" or "Pixel". I didn't know this when I came up with the name all those years ago... it's simply a happy accident.
Point came first in the 1k Intro competition, earning me a T-Shirt, a bottle of wine, a mug, and some headphones for my troubles. Yay me!
bmp2scr
megalz
basin
tasm
Planning ahead compared to the previous years party (for which I'd still not sent out the prizes!), I decided to write a player for the raww.orgy 2006 competitions. Actually it's two players, one for the graphics competition and one for music. Nothing overly special... the graphics fade was an effect that didn't quite work, but it did the job.
The music for the graphics-player is the short tune from British BattleTracker by LaesQ. All of the competition entries were, of course, by the competition, uhm... competitors. The winning tune, Yume Penguine, was a joint project by C-Jeff and Dalezy. The winning graphic was Rawwbow Islands by Equinox.
The model on the screenshot is Nella - I wanted to use a picture of someone I admired, and who would relate well with the title of the party. My current favourite "glamour" model seemed like a good choice. She has since become the party mascot - I even produced some souvenir postcards of the '06 party. Maybe I'll a upload copy. Hmm.
tasm
Two "firsts" for me in one go. This is the first time I attempted to "size-code", and also the first demoparty I actually attended - when I started on the demoscene I didn't really know about demoparties. Sadly it wasn't three "firsts", as it came 5th at ZX-Party 2000 in Wroclaw, Poland.
The intro is, I think, cleverer than people first think... animated bobs and a counter in 1k? I think that's quite good. Or maybe I'm just patting my own back. Gasman won the competition with Quattro Formaggio which, to be fair, was rather special.
tasm
A 3-year gap during which time I graduated from University with a 2:2 (that's a drinking-mans degree) and got a job as a software engineer. After a couple of years it was decided among some UK (and a couple non-UK) sceners to reform a demogroup. The demoscene had changed a lot in the last few years, especially in the ex-USSR countries where the Trackmo was the new demoscene art-form.
Bunch Of Arse, or BOA for short, is the first (and so far only) collaberative work by the newly-formed Raww Arse demogroup. Put together by Gasman it features music by Yerzmyey, graphics by LaesQ and K-0s, and code by Gasman and myself. There's nothing outstanding about the demo, but it comes across as nicely-designed, which was partly the plan... out with the old(school) and in with the new(school).
It got first place at the Phat'9 demoparty.
soundtracker
st-compile
roybot
This was a project by Captain Bob of Technium 220 to highlight the work of the UK scene, which at this point was dwindling somewhat. Each part of the demo contained two tunes and was written by one of the main UK groups of the time: Extacy-3, United Minds, Knuckle Girls, and of course Convention. For our part I selected two tunes by Death (previously Da Gangster, previously Twix) which I thought were decent... and upped the tempo (a trick I often used to make his music easier to write code for).
Effects-wise I didn't want to detract from the music so I kept it simple, with just a standard FLP scroller and "tag" showing what the tune was you were listening to, and perhaps the most subtley clever code I've written. The set of vu-meters in the upper section of the screen are raster-based, with each line a different colour. To make the effect nicer I alternated the BRIGHT attribute on each consecutive line. As I say, it's a subtle effect, but looks really nice. In my humble opinion, of course.
The aim of BBT was for people to vote on which tunes were the best. No prizes were to be awarded, but the winners would get kudos from the scene as a whole. One day C'Bob will count the results and tell us who's won.
soundtracker
st-compile
roybot
The first demo I wrote for the 128k machines, but not really focussing on doing anything clever with it. It's a multi-part demo, but you can switch between the parts, and I seem to recall each part resides in a page of RAM... or something like that. See? Not clever. Not really.
The demo was going to be based around a selection of Jean Michel Jarre covers that Da Gangster (who is now going by the name Death) created... however some of his other tunes were much better so partway through development I decided to use them instead. A are bits of the demo I'm actually quite proud of - the rasters in part 5 work quite nicely, the screen full of vu-meters is pretty good, and the hand-drawn loading screen is lovely.
Incidentally a few people have asked me what the extra effect is in part 3, as it's only viewable on a +3 (or +2a). It's just a hatch pattern on the background, wobbling around. Not special, but I tried it on a +2 and it simply didn't work - it flickered like mad. So I cut it out. It was easier than fixing it.
This was the first proper collaberation between Convention and Extacy-3. It took place when Bogie and LaesQ visited me at Southampton University. We drank, smoked, and wrote stupid scroller texts.
The demo was never meant to be incredibly clever - in fact we never bothered to get the initial raster effect timed correctly on any machine. I think this is part of the demos charm. That and the pervy picture in the main section, which we stole from a demo by Jacek Michalak. I then went on to insult a whole bunch of people in the scrolltext, but in my defence I was very very drunk... Bogie and LaesQ can vouch for that. The scrolltext also featured a guest appearance by my neighbour at the time (I was at University), Bell-End.
As a side-note I think this contains my favourite scroller-code writ by me (after the one in The Last, of course). It's simple but groovy due to the overlaid vu-meters. Quality.
This was pretty much a showcase for the music of new Convention member Da Gangster. Prior to this demo he did a few demos on his own under the moniker Twix (a name I preferred, but it's not my business to make naming decisions). A while later he called himself Death.
When Da Gangster was creating demos on his own he produced several music showcases (I think) called Inner Space 1-4. They're not featured on this site, tho' I have them on a tape somewhere... interestingly I can't seem to spot them on any other websites so I could be holding the only copies of them. I'll have to have a root around and see if I can find them. Anyway, I didn't write them so they don't appear here. So there.
Not, as a lot of people seem to think, "Psycho-1", it's actually pronounced Psycho-Eye... it's not a Roman Numeral. But that's not really important.
Containing ripped music and a ripped colour-flashy-logo-thing (check out the Kraft megademo by Extacy-3 if you want to see the source of the colours), this was quite a nice bit of work. Still very oldschool, but with an odd charm.
LaesQ and Bogie informed me that they were making a new megademo and wanted me to write a guest part. So I did. Fairly simple, and (when I sent it to them) with ripped music which was soon replaced with one of LaesQs own compositions. It was also mentioned that the screen was, as I had a habit of doing, fairly blank... hence the version you see has a lovely ATTR logo on it. The rasters are quite nice, and timed to all 128k machines (I think - I developed it on a +3 and tested it on a +2)... but without having a 48k machine to test with, there is the option to turn the potentially garish effect off.
Despite having a titlescreen that I ripped from "Sit Clive's Nightmare" by The Killer Klowns, and music ripped from several places, this is perhaps the favourite of my demos. Not technically astounding, I just like it, especially the scroller in the last part.
It's not as it's name would suggest my last demo, and it was never intended to be my last... I had always planned more after this. I just picked the name out of the air.
My first real multi-part - single-load demo. By now I had started using Turbo Imploder to compress my demos, meaning the whole thing fit into 16Kb of code-file... and this was before I started size-coding. Ok, it's not that great an achievement, but I think it's this demo that saw the quality of my productions go up. It also features my first attempt at doing raster effects, tho' as I only had a +3 at the time that's the only machine that they're actually timed for.
There are four parts in total, tho' I'm not sure I'd really count the intro, which features poor vu-meters and even poorer music. The rest of the demo isn't so bad, although again there's an effect that I didn't really concentrate of fixing... the fullscreen scroller. But hey, that's just how things go at times.
Another unreleased project, this was my guest part for the unreleased "Save Our Speccy" megademo from the maniacal minds of The Mad Guys. The megademo was in response to the decline (at the time) of the ZX Spectrum.
I sent my part on to Vision, and I don't think I heard from him again - he left the demoscene and the demo was never produced... I think I sent this part out to a few people when I found out that it would not make it into the megademo, but it's not something that ever made it into any PD libraries. I have it on a tape somewhere.
Ah, a demo produced back when ripping stuff was an artform. Well, that's my excuse and I was quite blasé about it too... the subtitle of the demo is RIP. It features ripped music, ripped graphics, and... well that's it. I did the rest myself, which consists of a fairly simple set of scrollers over some screens. Not big, and not clever.
Zcroll (or "Z-Scroll" as some people like to call it) was my attempt at doing something a little different with the standard scrolly text message idea. There are two scrollers, and the one you see changes according to a horizontal sine wave. Make sense? Ah it will do when you see it.
This was my first "planned" demo. My dear +3 was broken for a while and I had the idea to do this while it was away getting repaired. So for the first time I actually sat down with pen and paper and wrote the code. The code went through several iterations as I fixed bugs that I could spot and optimised the code. It work almost first time when I finally got around to typing it all in. This is the approach that I took to most of my work from this point on, rather than just sitting and hacking at a keyboard.
When I concentrated I could produce some OK graphics - this is the result of not concentrating quite hard enough. It's a fairly simple demo, with a ripped tune, and the graphic you can see here. The scroller went along the bottom of the screen. Then, shock! horror! the screen went all fuzzy and Sodit The Hedgehod appeared. This was me being my typical (at that time) anti-non-ZX self. Hardly my best piece of work, but kinda entertaining at the time.
The second of the ID series of demos. Sort of a two-parter as it has an intro that's actually larger (filesize) than the main demo. It uses a bit of music by Simon Tillson, created on the 48k beeper. But I did the music in the main demo, which isn't really anything to be proud of I guess. Ho-hum.
The first of the ID demos, ID standing for Icabod Demo - from before I decided to stick with a lowercase first-letter (which incidentally most people tend to ignore).
Again nothing outstanding in this demo, although I think the idea of the attr-based vu-meter over the top of the main scroller is quite nice. This demo actually features a very poorly-hidden "secret part". Poorly hidden because I recall that I told people how to get into it in the main scrolltext. Press 'I'. How original.
Trip was to be my second demo, a schizophrenic collaberation between my old identity, Cupré, and my new one icabod. It's a production that only ever got as far as having two parts (of a planned four-or-so). The first part used a "greyscale" screenshot from the Terminator 2 game, with a scrolly explaining what the demo was about. The second part was an attempt at Vu-Meters, with a soundtrack of Harold Faltemeyers Axel-F, a chiptune staple.
The demo has never been released. Maybe I will release what was completed one day, just for fun.
This is it. This is where it all began. My first demo... and looking back, a fairly poor production. Flickery, mostly silent (music composition isn't my strong point), and under the pseudonym "Cupré". This was later changed to icabod, partly as it sounds better... a little less French.
The demo consists of 4 parts, all very basic, but I was pretty much experimenting with what I could do. My knowledge of Z80 Assembler wasn't great back then, but we all start from humble beginnings.
This was a little advanced +3 catalogue program that I wrote, giving me some additional information about the files stored on the disc. I don't recall exactly what at the moment - I think it may even have used one of the Sprint programs for display... I should seek it out and check.
Perhaps this should have been called "Sprint64"? Or maybe it was, I've not used it in ages. It's the follow-up to Sprint, my 32x32 PRINT routine for BASIC and implements a simple way to print with a 64x32 screen. Basically it uses a (quite readable) 4x6px font.
Both Sprint and Sprint2 were available from the Prism PD catalog, tho' I'm not sure anyone ever used them. I'll upload them sometime here for posterity.
Sprint was a simple machine-code utility used for printing text from BASIC. "But there's already a PRINT keyword" I hear you cry. True, but Sprint provided a way to print on a 32x32 screen rather than the standard 32x24. Basically it gives an easy way, via a DEF FN function, to print text that's only 6px high. Of course there's the possibility of colour-clash a-plenty, but if you're printing in monochrome from BASIC it's quite a nice system.
A small utility I wrote a loooong time ago which could be used to edit the data files for the game Rockstar Ate My Hamster. I won't detail the game itself but will say that on the B-Side of the tape were a bundle of data-files, each one detailing an artist you could employ. My editor loaded in a data-file and displayed the artist image and information (what I could work out - name, salary, etc). You could then use a simple image editor to alter the image, and change a few of the details about the artist, then save it back to tape.
I recall that it was (mostly) written in BASIC, and I'm not certain that I ever actually used it. As far as I know the software it long-gone.
























