Kernal64
A Scala Commodore 64, 128, VIC20, CBM2 and SuperCPU emulator
Install / Use
/learn @abbruzze/Kernal64README
A Scala Commodore 64, 128, VIC20 and CBM 610/620/710/720 cycle-exact emulator
Kernal64 ver 1.8.6b1 (Oct 07th, 2025)
▶️<a href="#wn-latest">Go to latest release</a>
<p id="c64-features"></p>Commodore 64
<br>
Main features
- [x] 6510 CPU cycle-exact
- [x] True drive emulation of 1541, 1571, 1581. Supported disk images:
- D64
- D71
- D81
- G64
- G71
- [x] Local filesystem mounted as a drive
- [x] Tape emulation. Supported tape images:
- TAP
- T64
- [x] Keyboard editor
- [x] Joystick emulation
- Keyboard
- USB joystick
- [x] SID 6581/8580
- [x] Dual SID emulation
- [x] Light pen and 1351 mouse emulation
- [x] MPS803 printer emulation. Print preview panel.
- [x] VIC II
- PAL / NTSC model
- Palette
- Rendering options and effects
- Full screen
- [x] Cartridges
- WiC64
- BeamReacer
- REU
- GEORAM
- SwiftLink
- DigiMAX
- ActionReplay
- KCS
- FinalCartridge I
- FinalCartridge III
- Simon's Basic
- Comal 80
- Magic Desk
- Dinamic
- Game System
- Warp Speed
- Easy Flash
- Ocean
- Fun Play
- Super Games
- Epyx Fastloader
- Super snapshot 5
- GMOD2
- GMOD3
- Zaxxon
- Mach 5
- Page Fox
- CP/M
- Super Explode
- RAM Cart
- Isepic
- [x] RS-232 and Internet connection
- [x] Flyer internet modem
- [x] State saving
- [x] GIF Recorder
- [x] Assembler / Debugger
- [x] Game portals
Commodore 128
<img src="https://github.com/abbruzze/kernal64/blob/master/images/commodore128_vdc.jpg" alt="Commodore 128 VDC"/><br>
Main features
- [x] ▶️<a href="#c64-features">See C64's features</a>
- [x] Z80 instruction-exact emulation
- [x] MMU status panel
- [x] VDC standard and interlaced modes
- [x] 2Mhz mode
- [x] Internal and external function roms
- [x] 128 Cartridges:
- Megabit
- Magic Desk 128
- Generic 128
- Magic Desk 16K
VIC 20
<br>
Main features
- [x] 6502 CPU cycle-exact
- [x] Memory configuration panel
- [x] True drive emulation of 1541, 1571, 1581. Supported disk images:
- D64
- D71
- D81
- G64
- G71
- [x] Local filesystem mounted as a drive
- [x] Tape emulation. Supported tape images:
- TAP
- T64
- [x] Keyboard editor
- [x] Joystick emulation
- Keyboard
- USB joystick
- [x] Light pen and 1351 mouse emulation
- [x] MPS803 printer emulation. Print preview panel.
- [x] VIC
- PAL / NTSC model
- Palette
- Rendering options and effects
- Full screen
- NTSC interlaced mode
- [x] Cartridges
- Final Expansion 3
- Geo RAM
- Ultimem
- VIC 1112 IEEE488
- [x] RS-232 and Internet connection
- [x] Flyer internet modem
- [x] State saving
- [x] GIF Recorder
- [x] Assembler / Debugger
- [x] Game portals
SuperCPU

<br>
Main features
- [x] ▶️<a href="#c64-features">See C64's features</a>
- [x] WD65816 instruction-exact emulation
- [x] SIMM memory: up to 16M
- [x] Emulation of 1Mhz mode during I/O access partially supported
- [x] Shipped with VICE's SCPU rom. CMD's rom 2.04 also supported
- [x] Leds panel: native (65816 in native mode), 20Mhz (turbo mode on), clickable JIFFYDOS (jiffy dos enabled), clickable SPEED (master speed selector), SIMM usage (% of SIMM usage)
CBM II

Main features
- [x] 6509 CPU cycle-exact
- [x] Not true drive emulation of IEEE488 8050. Supported disk images:
- D80
- [x] Models:
- 610 PAL/NTSC
- 620 PAL/NTSC
- 710 NTSC
- 720 NTSC
- [x] MPS803 printer emulation. Print preview panel.
- [x] ACIA and Internet connection
- [x] State saving
- [x] GIF Recorder
- [x] Assembler / Debugger
Installation
Go to https://github.com/abbruzze/kernal64/releases/latest and download and unzip on your computer the latest version. Be sure to have a jre (11 or above) in the path and launch:
- On Windows: k64.bat, kscpu64.bat, k128.bat, vic20.bat or cbm2.bat. If you want the shell support (for --help command line, for example) you should use --shell as first option.
- On Linux: k64.sh, kscpu64.sh, k128.sh, vic20.sh or cbm2.sh.
The scripts start java with the -server option for performance reason. It could happen that your Java installation does not support the server option. In this case edit the script and remove the -server option.
If you want to load a 16M REU modify the memory settings inside the start scripts: for example, you could set -Xmx128M.
Wiki
Wiki pages are available here: https://github.com/abbruzze/kernal64/wiki
What's new history
<p id="wn-latest"></p>What's new 1.8.6b1 (Oct 07th 2025)
- Commodore 128
- Added support for Magic Desk 16K cartridge: now SNK vs CAPCOM for C64/C128 can be run in 128 mode
- Fixed loading of zex128 tests in testbench
What's new 1.8.5b1 (Jul 16th 2024)
- Commodore 64
- Fixed REU read/write from/to 0/1 locations: must read/write ram
- Games
- Fixed loading of GameBase games (they changed urls): download of PRG/D64 seems to be no longer available
What's new 1.8.4b1 (Sep 3rd 2023)
- Fixed joystick emulation with keyboard: fast direction changing (left<->right or up<->down) didn't work properly.
- Added fast save/load states.
What's new 1.8.3b1 (July 20th 2023)
- Fixed bug introduced in previous releases that affects drives (specifically 1541) when user change a floppy. Some demos stop to recognize the change of floppy when requested.
What's new 1.8.2b2 (Apr 21th 2023)
- General
- New keyboard layout handling: now it is possible to use a more natural layout assigning different host keys to the same emulated key. The layout configuration is stored inside a configuration file, depending on the emulated machine. Each configuration file can contain different layout for different operating system. See Wiki for details.
<br>
- New virtual keyboard and keyboard editor: it's possible to enter key using a virtual keyboard. It's possible to edit the keyboard configuration or create a new one from scratch.
- New look and feel Flatlaf (thanks to https://www.formdev.com/flatlaf/)
- Added support for palette configuration loading from file (vpl) for both VIC (I,II) and VDC
- Fixed disk issues when user change disk
- New keyboard layout handling: now it is possible to use a more natural layout assigning different host keys to the same emulated key. The layout configuration is stored inside a configuration file, depending on the emulated machine. Each configuration file can contain different layout for different operating system. See Wiki for details.
- C128
- Improvements for 2Mhz emulation
- Improved MMU (https://sourceforge.net/p/vice-emu/bugs/1835/?page=1)
- Minimal modifications to D030 registry: still partially supported
- Added ASCII/DIN handling for multilingual char rom set. Fixed 128/64 char rom reloading
- C64/C128
- Added Super Explode cartridge
- Added RAM Cart cartridge
- Added Isepic cartridge
- VIC20
- Added support for WiC64
- CBMII
- Fixed 8050 DOS emulation
What's new 1.8.1b1 (Feb 2nd 2023)
- Added support for Magnum Light Phaser light gun. Duck Hunt can be played now (https://csdb.dk/release/?id=226342)
- Fixed audio state saving.
- New initialization memory pattern for all machines.
- Added video & audio support for freespin demo (http://www.quiss.org/freespin/). How to lunch the demo:
- Run the demo
- When it is asked to open/close the driver's lever, re-insert the same demo disk
- Under Settings -> I/O check "freespin cable enabled"
- When the demo finishes uncheck the "freespin cable enabled"
<br>
What's new 1.8.0b2 (Dic 1st 2022)
- New emulators: VIC20 and CBM-II (610/620/710/720)
- New Debugger
- USB Joystick: on (my) Windows 10 laptop jinput library seems to hang sometimes during initialization, freezing the whole emulator. Added a separate thread to check usb joystick availability.
- C64
- Dual SID fixed: some release ago was broken
<br>
VIC20's main features
- True drive emulation of 1541, 1571, 1581
- Tape emulation
- VIC
- PAL / NTSC model
- Palette
- Rendering options and effects
- Full screen
- NTSC interlaced mode
- Cartridges
- Final Expansion 3
- Geo RAM
- Ultimem
- VIC 1112 IEEE488
- RS-232 and Internet connection
- MPS803 printer emulation. Print preview panel
- Game portal (Pouet)
<br>
CBM-II's main features
- 6509 CPU cycle-exact
- Not true drive emulation of IEEE488 8050. Supported disk images:
- D80
- Models:
- 610 PAL/NTSC
- 620 PAL/NTSC
- 710 NTSC
- 720 NTSC
- MPS803 printer emulation. Print preview panel
- ACIA and Internet connection
<br>
What's new 1.7.4b1 (Jul 29th 2022)
- General
- Added support for G71 disk format
- Fixed state saving support: broken on last Wic64 release
- Adjusted LAST_SECTOR_GAP in gcr handling to a larger value: demo E2IRA now runs fine (except for a part into disk B that is not visible; border must be turned off !!)
- C128
- Added support for MagicDesk128 cart (https://github.com/RetroNynjah/Magic-Desk-128). It can be possible to run VolleyForTwo game with cartridge (https://kollektivet.n
