VIC-20 Emulator


This is the Spectrum port of the SAM version of my VIC-20 emulator. It requires a +2A or +3 machine to run, as they’re the only Spectrum machines to allow the ROMs to be paged out, giving a full 64K of RAM.


Running speed is around 1/10th that of the original machine, but also depends on how much is being written to the display and the mix of addressing modes used.

Limitations of the Spectrum AY-3-8912 chip mean the noise emulation isn’t a faithful representation of the VIC noise generator. This is particularly noticeable in GridRunner, where the firing noise is a hiss rather than a roar.


Version 1.3, last updated 4th September 2008.

VIC-20 Emulator snapshot (96K)
Source Code (GitHub)


Key Action
Symbol-1/3/5/7 F1 / F3 / F5 / F7
Symbol-Space RUN/STOP (hold and press Shift for NMI)
Symbol-Enter CBM key
Symbol-A π (Pi)
Symbol-D | (Pipe)
Kempston Joystick Joystick Control
Cursor Keys Joystick Control
Symbol Joystick Fire

Most key symbols have been mapped to normal Spectrum positions. However, not all Spectrum emulators allow you to type symbols normally, so you may need to type the Spectrum version (i.e. Symbol-X for £, etc.).