Flash Game Cartridge For The VIC-20


[Petri]’s first computer was the venerable Commodore VIC-20, predecessor to the Commodore 64. With only 5kB of RAM, a very simple graphics chip, and BASIC, it’s a bare-bones system that’s perfect for a 7-year-old future programmer. [Petri] was trying to figure out something to do with this old computer, and realized the simple schematic would allow him to recreate those classic VIC-20 cartridges using modern hardware.

This project began by cracking open a few game cartridges to see what was inside. They’re very simple devices, consisting of a decoupling cap and a ROM chip wired directly to the data and address busses. [Petri] desoldered the ROM and replaced it with a ribbon cable that would give him a clean breadboard to VIC-20 expansion port interface.

Instead of finding a contemporary EEPROM chip to program, [Petri] decided on using a Flash chip. The original cartridge had a 16kB ROM chip, but the smallest parallel Flash chip he could find was 256k. No problem, then; just ignore a few address lines and everything worked out great.

After getting the VIC-20 reading the breadboarded Flash chip, [Petri] started work on a circuit that would program his Flash chip while still attached to the expansion port. With a few buffer chips and an ATMega32a loaded up with Arduino, he’s able to program the Flash chip and turn it over to the VIC-20.

A simple test that toggled the color of the screen as quickly as possible was all that was needed to test the new circuit. Now, [Petri] can finally start on programming some games for his first love.

17 thoughts on “Flash Game Cartridge For The VIC-20

  1. This is cool.

    Quick suggetion, the original ROMs were 8k*8, and the Flash is 256k*8, according to the linked site. So how about adding switches to the five additional address lines, and having 32 different ROM images in the one Flash?

    1. Yep, I’m planning to utilize the extra space in the final version. I’ll probably include a button for toggling the banks and let the ATmega control those additional address lines. I’m also thinking about adding some extra RAM on board but it’s going to be a tight fit because I would like to built the whole thing inside the original game cartridge enclosure. Stay tuned for part 2/2 :)

    2. We used to do that back in the day. there were a lot of “bootleg” rom cars around and you could buy multiple rom cartridges, you flipped the dip switch and then plugged it in.

  2. To echo the first commenter, this is *very* cool.

    This might be the ticket to fixing-up my ol’ Tek 7854 ‘scope using new parts, with the added benefit of playing with the firmware on-the-fly (for no reason other than ‘why not’).

  3. If you get a little more complicated and use a register for the additional address lines (mapped to some memory location) you could switch out the ROM images in software and even have menus for the contents of the flash.

  4. Using an extender board, I used to do this with static RAM that I’d load the program into using the BASIC interface and floppy drive, then do a soft reset to start execution of the what was stored in RAM.

Leave a Reply

Please be kind and respectful to help make the comments section excellent. (Comment Policy)

This site uses Akismet to reduce spam. Learn how your comment data is processed.