VIC-20 Emulator

Introduction

Vic20emu is a VIC-20 emulator for the SAM Coupé and ZX Spectrum. It emulates the 6502-based home computer, released in 1980 by Commodore Business Machines.

Features

Running speed is around 1/7th that of the original machine, but also dependent on how much is being written to the display and the mix of addressing modes used. The animated images below show the running speed on a normal SAM (6MHz Z80B).

Using the Quazar Mayhem accelerator board (at 20MHz) gives close to original speed (see video below). As well as the increase in processor speed, it benefits from reduced memory contention and the emulation’s heavy register use.

Display resizing is supported, but double-height characters have not yet been implemented. It’s unlikely multi-colour mode will be implemented as it would require SAM’s mode 4, slowing the display code down considerably.

Thanks to Colin Piggot and Jimmy for technical information and the motivation to finish what I’d started, and Dr Beep for his fast instruction decode technique.

Download

Version 1.3, last updated 4th September 2008.

VIC-20 Emulator (38K)
Source Code (GitHub)

A Spectrum version is also available.

Controls

Key Action
Numpad-0 Exit to Snapshot Menu
Cursor Keys Joystick Control
Cntrl Joystick Fire
NumPad-1/3/5/7 F1 / F3 / F5 / F7
NumPad-2/4/6/8 Cursor Down / Left / Right / Up
Esc RUN/STOP (hold and press Shift for NMI)
Edit Right-Shift
Tab Control
Inv CBM key
~ π (Pi)

All other key symbols have been mapped to normal SAM positions.

Screenshots

VIC BASIC

VIC BASIC

GridRunner

GridRunner

Deflex

Deflex

Blitzkreig

Blitzkreig

Videos

This video shows the emulator running on a real SAM Coupé machine fitted with a Quazar Mayhem accelerator board running at 20MHz:

GridRunner video by Colin Piggot