PlayUEF: stream Acorn Electron & BBC Micro games from the web
PlayUEF is a free, web-based player for UEF format Acorn cassette games.
Just connect your 8-bit Acorn computer's cassette port to the headphone socket on a laptop or smartphone and you're ready to load games!
Just connect your 8-bit Acorn computer's cassette port to the headphone socket on a laptop or smartphone and you're ready to load games!
Quick start with Acorn Arcadians
For testing I have connected it to the STH archive of over 1000 cassette games for you try below :)
For testing I have connected it to the STH archive of over 1000 cassette games for you try below :)
The details
PlayUEF is a javascript player for UEF format Acorn Electron and BBC Micro cassette games. Conversion from UEF to 44.1KHz WAV is done in the web browser, and played in a nice virtual cassette deck. UEF is a format that was created to archive media for Acorn Computers. Over 1000 cassette-based games have been archived in UEF format :)
But why?
I wrote PlayUEF because I have an old Acorn Electron and no peripherals. I love the idea that someone like me can just get a retro computer down from the attic, or off eBay, and get going! (In the same way Apple II fans can)
Yep I have other retro machines with floppy / cassette / modern mass storage add-ons... but I wanted a minimalistic, no fuss, low-cost way to load games into the Electron! And so PlayUEF was born. The helpful folks at the stardot forums also convinced me to extend this to handle a wider set of UEF chunks and thus more BBC micro games.
Yep I have other retro machines with floppy / cassette / modern mass storage add-ons... but I wanted a minimalistic, no fuss, low-cost way to load games into the Electron! And so PlayUEF was born. The helpful folks at the stardot forums also convinced me to extend this to handle a wider set of UEF chunks and thus more BBC micro games.
How computer tapes store data
Like many 1980s home computers, the BBC Micro and Acorn Electron load and store software on cassette by converting an analog audio signal into binary data and vice versa. Binary data is represented a very long series of very short tones of two different pitches. This is a frequency modulation scheme known as Audio Frequency-Shift Keying.
Influenced by the Kansas City standard, the Acorn format uses a low tone (one 1200Hz cycle) to represent a binary 0, and a high tone (two 2400Hz cycles) to represent a binary 1:
Influenced by the Kansas City standard, the Acorn format uses a low tone (one 1200Hz cycle) to represent a binary 0, and a high tone (two 2400Hz cycles) to represent a binary 1:
The Acorn cassette format uses one stop and start bit to delimit the data packet, making 10 bits in total to transmit an 8-bit byte of data. The least significant bit is transmitted first. The example above in binary is 00101010 (42 in decimal) - an ASCII character *. (This character signifies the beginning of an Acorn block header.)
PlayUEF converts archived data in UEF files into this audio format, and plays it in the browser to be loaded directly by your retro machine.
Of course because the audio is dynamically generated there are a few tricks for speeding up loading times you can also try.
Virtual cassette player
The javascript player as a nice animated cassette at the top. As the tape plays (and as you move the scrubber) you will see the spools rotate and the amount of tape changes according to the play position! Getting this to behave realistically is trickier than you might expect, but luckily someone has already done the math.
The coolest feature - the terminal also displays data being loaded in real-time. This is actually a bit of a cheat. The javascript is checking for the play time, calculating the baud rate and displaying a substring of the UEF data block being transmitted. And it works! |