A ZX81 game hidden in Camouflage’s vinyl record

We continue with the programs hidden in audio. This time, I’m revisiting a record I had already presented: Camouflage.

Instead of repeating all the previous articles each time, I’ll refer you to the dedicated page, which explains what I do with vinyl records and lists all the pages containing programs, explanations, etc.


For Chris Sievey’s Camouflage, the data is not hidden: it is clearly indicated on the cover that the three programs for the ZX81 (a computer from the early 80s) are present. In my first article, about 5 years ago, I explained that I hadn’t been able to retrieve the data. This time, I persevered.

The cover

First thing, it’s important to clean the vinyl well. Second thing, I upgraded from a basic turntable (an ION model) to a slightly more advanced Sony model (PS-LX300USB). Third thing, I recorded directly in mono (which is important) with a USB sound card more effective than the USB of the turntable. With all of this, I was able to extract the first program (Camouflage, a kind of clip for the main title of the record) and the 1 KB ZX81 version of Flying Train (the third program) without errors. As for the second file, it was more… tedious.

A manual analysis

The solution is to load the WAV file into Audacity and manually correct it. To simplify: with the ZX81, a 0 is encoded with 4 pulses, a 1 is encoded with 9 pulses, and there is a gap between each group. It’s better explained there, but the idea is to visually search for errors, places where the reading may seem complicated. I used a program called ZX81 Tape Converter (in Java) and corrected all the places that seemed ambiguous. Be careful, it’s better to make a modification, test it, and then validate it.


Program analysis (it indicates the sample)

An ambiguous zone

A zone to correct

So, I went through the file (~3 minutes) to search for errors and did a copy/paste of a valid zone instead. Luckily, the recording was pretty good and I had to modify very few areas. Once the modifications were made in the .wav file, I was able to extract usable .p files for an emulator with ZX81 Tape Converter.

The last little problem, when I wanted to synchronize the audio track with the image for the video, I found the song slow… before realizing that if the data was recorded at 33 RPM, the music had to be played at 45 RPM. For the video, I played around with the playback speed to synchronize the video and the music, but it’s not perfect towards the end, sorry.

We start with Flying Train in the 1 KB ZX81 version, very basic. In this version, you have to press V to descend and land the plane on the train.

The second one is Flying Train in the 16 KB ZX81 version, with a little intro and an explanation. It’s quite complicated, but the principle is the same: you have to descend (with V) or fall (with C).

The third one is Camouflage, a kind of interactive clip. I synchronized the music (more or less).