Atariscne.org

[Atari.Org services are back, read updates here.]

In 2024, an unexpected email dropped into my inbox from someone called Simon. He was wondering if I might be able to recover the contents of some old Atari ST floppy disks and transfer them into a format that a modern PC could read.

As it turned out, Simon had been part of a group called The Cyberpunks (also known, on occasions, as The Androids). The Cyberpunks formed after two Simons met in a Lancashire, England high school in the late-1980s. They taught themselves to program as children (initially on the ZX Spectrum and BBC), and since they were the only people in ther school who knew how to code, they became friends.

What followed was a deep dive into the world of ST disk restoration, source code archaeology and demo revival, all culminating in a new megademo release at Silly Venture 2024 WE.

This is the story of how one man's dusty box of floppies, once forgotten in a parent's loft, sparked a 30 year comeback!

It was a fairly quiet Saturday in September 2024 when an unexpected email landed in my inbox. The email was from a guy called Simon, a fellow Atari ST enthusiast, asking if I could help him recover the contents of some floppy disks that had spent the last 33 years tucked away in his parents’ attic.

Among them were source code disks and a handful of unreleased demos from back in the day.

I was happy to help, of course!  I’ve always been curious about people’s demoscene histories, so I carried on to ask a few questions about his Atari ST demo scene background.  Simon kindly wrote his story on how the Cyberpunks were formed, their early years, through to their rediscovery and rebirth.  So, I will now hand over to Simon, who will tell you his story...

The Cyberpunks formed after two Simons met in a Lancashire high school in the late 1980s. We had both taught ourselves to program as children (ZX Spectrum and BBC), and since we were the only people in our school who knew how to code we became friends.

After one of us got an Atari ST the other begged and pleaded to get one too, and we started learning how to program it together.

At first we were coding in Basic but after we got copies of The B.I.G. Demo and The Cuddly Demos we realised we were going to need an assembler. We saved our lunch money until we could afford a copy of Devpac and the book Atari ST Internals.
We started trying to figure out how to recreate the mind-blowing demo effects, trying to reverse engineer how various impossible tricks could be done. A phone number in an XXX International scroller gave us our first and only contact in the demo scene, and some tips that helped unlock more advanced techniques.

We began work on a megademo to be called The Debut Demo, setting a release date for the end of the 1990 summer holidays, and wrote and released a screen called The Preview Demo to announce it to the world – which in practise meant giving copies to a few friends and kind of assuming the rest of the world would somehow see it.

Unfortunately, after an all-nighter working on a screen my ST overheated and died, and work was halted for about 9 months until I was able to persuade my mother that a replacement would be a good investment in my future.

Work resumed, now with a new name, and in November 1991 The Pleasuredemo was finished. Just one thing stopping us releasing it – getting permission to use a sample from U2’s hot new single The Fly. I sent a letter to their management and waited for a reply. And waited. And waited.

It was a full year before the reply arrived - apparently lost in the Irish postal system due to strikes - and it was “no”:

I planned to replace the music with something by local band The Acrobats Of Sa, but by this point we had started college and kind of moved on – plus we’d seen demos like The Dark Side Of The Spoon that were way ahead of ours, so we never got around to doing it.

Eventually we went away to university and our ST’s got packed away in attics, where they sat collecting dust for 30 years.

Rediscovery


In September 2024 I went to visit my mother with instructions to sort through all the junk that had been gathering dust in her attic. Amongst a lot of actual junk I found a box of floppy disks with all our demos. I thought it would be nice to see them again, but the ST was long deceased so I searched online for a disk recovery service. I was very lucky to find Tronic, who enthusiastically agreed to see if he could recover whatever was on the disks.

I thought the odds were pretty low that they were recoverable, but a week or two later he sent me a photo of The Pleasuredemo running on an ST. Memories came flooding back.

Unfortunately it did not run under emulation. The demo ran from a bootsector and loaded screens compressed with Pack-Ice to a fixed memory address. Emulators do not seem to approve of such things.

However, other disks contained source code and data files, and after reacquainting myself with Devpac I was able to get most of the screens up and running.

There was talk about releasing some screens in a compilation, but Tronic convinced me that since we had a full demo it should be a standalone release – The Pleasuredemo should be reborn.

Rebirth

After failing to fix the bootstrap, then failing to get a simpler bootstrap working, I decided to put together a new configuration of the demo. I removed three old screens which hadn’t aged well and added the Small Balls demo, originally a stand-alone demo.

This allowed me to fit everything on a double-sided floppy disk without compression, which I wanted to do so that the screens could also run as standalone executables.

I wrote a new bootstrap that could parse TOS relocation tables so that screens could be loaded at any memory address, which required fixing up a few screens that weren’t well-behaved – e.g. some ripped music that wasn’t location-independent had to be replaced. It seemed to make the emulators happy though.

Over the next couple of months I went through all the screens making sure they ran smoothly in various conditions and cleaned up system state on exit.

This required trying to understand how they all worked –made much harder by the fact there were about a dozen comments total, and we seemingly chose label names based on the song we were listening to rather than to indicate what the code did (though if we could somehow do both in 7 characters, all the better).

After not looking at 68000 assembly for three decades I was surprised how quickly it came back – though to this day it is still 50:50 whether I put the arguments in the right order for a CMP instruction first time.

The fine details of the hardware were blurry but it came back quickly enough - all those $ffff addresses that map to hardware features were like old friends only lightly buried, along with the ways they could be used to trick the ST into doing things its designers had never imagined.

I started adding comments, replacing magic numbers with named constants and renaming labels to at least vaguely suggest what the code does, generally cleaning things up to make it more presentable.

I fixed a few bugs along the way and streamlined a couple of questionable implementations, but for the most part the screens look and sound just as they did in 1991/1992 – though some of the scrollers have been trimmed to remove the most embarrassing adolescent nonsense.

Finally, there was just that U2 sample again… I tracked down one of the members of The Acrobats Of Sa on Facebook and asked for permission to sample one of their songs, which equally amused and bemused them.

Unfortunately, they didn’t have an instrumental mix of the song I wanted to use, and I wasn’t able to cut usable loops from the vocal version, so in the end I decided to stick with U2 – I don’t think they will really care now. I digitally “resampled” it though, writing a Python tool to convert a short FLAC edit to the 8-bit, 15khz sample format I needed for the ST.

I also replaced the music in the intro screen, originally a distorted loop from Thriller played back at the wrong speed, now a sample from Frankie Goes To Hollywood ‘s Welcome To The Pleasure Dome… which in retrospect should have been an obvious choice all along!

Finally everything ran smoothly on Hatari, Steem and ST hardware - either as standalone screens or from the bootstrap and menu.

My original plan was to submit Small Balls to Silly Venture and “release” the full demo via Demozoo and a Facebook post. When the organisers learned that Small Balls was part of a bigger demo they suggested submitting the whole thing instead, so after a mad rush to get everything ready it was submitted at 11pm the night before Silly Venture WE 2024 commenced – officially releasing just over 33 years late.

What next?

It was a joy to immerse myself in 68000 assembly language and ST demo coding again after all this time – there is something very pure about working so close to the hardware, knowing exactly what each instruction is going to do (ideally!) and how long it will take to do it. Whilst the ST hardware is incredibly limited compared to modern machines, you do have almost unrestricted access to it.

There is a lot more information available these days, including detailed hardware data and explanations of various tricks and techniques used in demos – there is a wealth of source code to reference for inspiration on Github (including the entire source code for The Pleasuredemo now).

Emulators mean it is possible to use modern tools to write code and test it. VS Code extensions can provide 68000 syntax highlighting and show clock cycle counts for each instruction. VASM can build TOS executables in milliseconds on a virtual HDD mounted in Hatari, where you can run and debug them. It’s a lot more accessible than it used to be!

Seeing how far the demo scene has advanced in the decades since The Pleasuredemo is a little overwhelming – there is amazing work being done every year, and the community seems stronger than ever (and a lot easier to connect with than cold-calling a landline in a scroller). I hope to be able to find the time to put something new together this year, to see how it is to write something from scratch this time!

🔗Demozoo.org
🔗GitHub Repo

Comments powered by CComment

© 2025 The Atariscne Collective | info@atariscne.org