Terminal Mode Commodore 64 Emulator
- C 96.7%
- C++ 2.6%
- Makefile 0.7%
| 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
- Terminal Mode Commodore 64 Emulator
- Terminal Mode Commodore 64 Emulator Update
- Terminal Mode Commodore 64 Emulator Disk Support
- Terminal Mode Commodore 64 Emulator SID Support
- Terminal Mode Commodore 64 Emulator Unicode Support