kobolt · Codeberg.org

Terminal Mode Commodore 64 Emulator

  • C 96.7%
  • C++ 2.6%
  • Makefile 0.7%
Repository files (latest commit first)
Filename Latest commit message Latest commit date
2026-05-01 08:29:41 +02:00
cia.c Version 0.4 2023-02-12 09:20:04 +01:00
cia.h Version 0.3 2022-06-28 18:36:25 +02:00
console.c Version 0.5 2026-05-01 08:29:41 +02:00
console.h Version 0.4 2023-02-12 09:20:04 +01:00
debugger.c Version 0.4 2023-02-12 09:20:04 +01:00
debugger.h Version 0.3 2022-06-28 18:36:25 +02:00
disk.c Version 0.3 2022-06-28 18:36:25 +02:00
disk.h Version 0.3 2022-06-28 18:36:25 +02:00
dormann.c Version 0.4 2023-02-12 09:20:04 +01:00
joystick.c Version 0.4 2023-02-12 09:20:04 +01:00
joystick.h Version 0.4 2023-02-12 09:20:04 +01:00
LICENSE Version 0.2 2022-04-08 17:00:00 +02:00
lorenz.c Version 0.4 2023-02-12 09:20:04 +01:00
main.c Version 0.4 2023-02-12 09:20:04 +01:00
Makefile Version 0.5 2026-05-01 08:29:41 +02:00
mem.c Version 0.4 2023-02-12 09:20:04 +01:00
mem.h Version 0.4 2023-02-12 09:20:04 +01:00
mos6510.c Version 0.4 2023-02-12 09:20:04 +01:00
mos6510.h Version 0.4 2023-02-12 09:20:04 +01:00
mos6510_trace.c Version 0.4 2023-02-12 09:20:04 +01:00
mos6510_trace.h Version 0.2 2022-04-08 17:00:00 +02:00
panic.h Version 0.2 2022-04-08 17:00:00 +02:00
README.md Version 0.5 2026-05-01 08:29:41 +02:00
resid.cpp Version 0.4 2023-02-12 09:20:04 +01:00
resid.h Version 0.4 2023-02-12 09:20:04 +01:00
serial_bus.c Version 0.3 2022-06-28 18:36:25 +02:00
serial_bus.h Version 0.3 2022-06-28 18:36:25 +02:00
test.h Version 0.2 2022-04-08 17:00:00 +02:00
vic.c Version 0.4 2023-02-12 09:20:04 +01:00
vic.h Version 0.4 2023-02-12 09:20:04 +01:00

Terminal Mode Commodore 64 Emulator

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 codeberg.org ↗