GitHub

This is an emulator to run Commodore 64 programs, especially those made in BASIC, in a Linux terminal.

Features

  • 6510 CPU emulation passes Dormann tests and some Lorenz tests.
  • Curses based UI with full 256-color support if available.
  • Approximate PETSCII to ASCII conversion, for both upper/lower case sets.
  • SID support through reSID version 0.16 if available.
  • Joystick support through SDL2.
  • Debugger with CPU trace, stack trace and breakpoint support.
  • CIA timer support, as needed for random numbers in games.
  • Commodore IEC serial bus emulation, used for disk drives.
  • Limited support for D64 disk images. (Read-only.)
  • Run emulation in full speed (warp mode) or closer to original PAL C64 speed.
  • VIC-II raster interrupt, to help some demos work.
  • Can load PRG programs directly by injecting them into memory.
  • Needs the ROMs from the VICE emulator or similar.

Known issues and missing features

  • Sprites are not supported, so many games are probably completely unplayable.
  • Keyboard input only works through KERNAL routines since the CIA keyboard matrix is not fully emulated.
  • VIC-II versus CPU timings are off since the VIC cannot "stun" the CPU.
  • reSID buffers sometimes become unsynchronized after warp mode, causing bad scratching audio.
  • Only joystick in port 2 currently handled.
  • Accuracy in general... Lots of hit and miss with demos and games.

Version history

  • 0.1 - Proof-of-concept prototype version.
  • 0.2 - Graphics support added.
  • 0.3 - Disk drive support added.
  • 0.4 - SID support added.
  • 0.5 - Unicode support added.

Information on my blog

YouTube videos

Read the original on github.com ↗