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.


  1. cooperised says:

    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?

  2. For the address lines, ignore as in floating or ignore as in pulled low?

  3. Philip says:

    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’).

  4. justice099 says:

    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.

  5. Jeff Phinney says:

    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.

  6. Krusty says:

    The Vic 20 was the first computer I used for accessing BBS via an acoustic coupler. Terminal program was on cassette tape… LOL those were the days! Super project :)

  7. Serial Killer says:

    Didn’t the VIC-20 only have 3.5k RAM?

  8. AL says:

    Could you please tell me the J2 trace on the cartridge board connected to which pin of the original 8K ROM chip? Thanks!

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s


Get every new post delivered to your Inbox.

Join 96,615 other followers