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