Retro computer hobbyist Rod Hull from The Future Was 8-bit (TFW8b) and Dave Curran from Tynemouth Software have come up with a way to make retro-gaming streams more interactive. Their latest project lets viewers download the game being played directly onto their original Commodore 64 while watching the stream on YouTube.
The idea started to take shape after Curran built a Commodore PET serial interface and was discussing it with Hull. Hull described an idea along similar lines he'd been working on to inject data into YouTube videos in the form of flashing symbols in the corner of the video. The idea was to be able to download a game the streamer was playing while watching the video, but not bothering with modern downloads, cartridges, or diskettes.
Back in the 1980s, the BBC did something similar using a DIY tuner viewers attached to their TV screen. During episodes of the short-lived series 4 Computer Buffs, a flashing light could transmit the code for an applicatio n to the Commodore 64, Sinclair, or BBC Micro.
Jelly Load is based on that same simple concept. By flashing a part of the screen on and off, you can send binary data — zeroes and ones. A set of photo-resistors connected to the serial port of a Commodore 64, VIC-20, or other vintage computer can read this data and turn it into an executable program. While the idea isn't entirely new, there's a challenge: It has to work on YouTube, which is known for compressing videos and forcing certain frame rates.
Curran, who handled the software development for the program to send and received the data, outlined the requirements he faced. "It must be included in the video and survive whatever post processing YouTube applies; it must be fast enough to fit in a normal video, 5-10 minutes maybe; it must be received by a VIC20 (other machines will follow) using minimal simple hardware that would have been available at the time."
To allow for faster data transmission, the pai r decided to use a 3 x 3 grid of flashing lights. This could, in theory, increase the data transfer speed ninefold. When attached to the monitor in the right spot — and with the video window sized so the flashing lights, created by filming a 3 x 3 matrix of LEDs, align with the photo-resistors — the device can capture the data encoded in the video and store it in memory. They successfully demonstrated this by transmitting a 3.5kB game called Snake Pit entirely through a YouTube video.
Of course, this is an incredibly inefficient and slow way to transfer data, especially given the fact that YouTube allows you to add download links in the description of your video. Hull jokes about that, asking "Why load your 8bit things via the convenience of cassette, disk, or cartridge when you can load things via YouTube video?
His answer is simple: "Because it's horribly slow, that's why. But it is rather cool! And if like me you've got a million bits and bobs lying arou nd the house, you may even have enough electronic purchase left-overs to start making your own Jelly Load interface right now!"
Just how slow are we talking? That depends on the YouTube video framerate and how many frames each 3x3 bit pattern needs to appear. A 30 fps video transmitting nine bits per frame would top out at around 2kB per minute. That's pretty close to matching the experience of using a 300 baud modem... but the test video appears to show each pattern in a 60 fps video for 18 frames, meaning it's only sending 30 bits per second. Hopefully that was merely a test rather than the final data rate.
0 Comments
Post a Comment