Retro gaming enthusiasts demonstrate transmission of C64 games via YouTube — data rates appear to be around 30 bits per second

Commodore VIC-20 playing Snake Pit
(Image credit: Rod Hull)

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 application 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 pair 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 around 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.

Jeff Butts
Contributing Writer

Jeff Butts has been covering tech news for more than a decade, and his IT experience predates the internet. Yes, he remembers when 9600 baud was “fast.” He especially enjoys covering DIY and Maker topics, along with anything on the bleeding edge of technology.

  • Giroro
    The random specific little hobbies that get latched onto and covered as some kind of amazing thing Vs. the bottomless ocean of projects being ignored is beyond my comprehension.
    One of the most coinvent (and popular) ways to store and load C64 games is an audio recording of the cassette tape it was originally stored on. We already have a fantastic and well-known way to transmit C64 code via a YouTube video via the soundtrack. There's Vinyl records that contain C64 software hidden in the runout groove (specific popular example: the album Electric Eye by Prodigal, 1984). To me, that's where the fascination would be.
    Reply
  • kyzarvs
    Why not just have a (skippable!) section of the video that was an audio of the code - just the same way that code used to be stored for those machines (or how analogue modems worked)? I remember well listening to Manic Miner loading on my Sinclair Spectrum 48k as a kid!
    Reply
  • micheal_15
    Why not use sound? like the cassette system.

    Booo BEEEP! booooooooo BEEEEEEEEEEEEEEEP! BSHH BZZ BEEP BZZ BEEP!
    Reply
  • bit_user
    I do like the idea of trying to use video, though. If you could use a decoder program built into your web browser or running on your phone (which you'd then have to point at the monitor), it could even be fairly complex. In terms of bit rate, I think you could design a modulation scheme that could manage a heck of a lot higher bit rate than theirs, although you always have the issue of how much scaling and degradation you're willing to tolerate.
    Reply