SkillAgentSearch skills...

Kernal64

A Scala Commodore 64, 128, VIC20, CBM2 and SuperCPU emulator

Install / Use

/learn @abbruzze/Kernal64

README

workflow status Release Language Downloads

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
  • 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:
    1. Run the demo
    2. When it is asked to open/close the driver's lever, re-insert the same demo disk
    3. Under Settings -> I/O check "freespin cable enabled"
    4. 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
View on GitHub
GitHub Stars128
CategoryDevelopment
Updated6d ago
Forks15

Languages

Scala

Security Score

100/100

Audited on Mar 22, 2026

No findings