Pixel exact emulation of the Commodore 128,Commodore 64, VIC 20 and Atari 2600 written entirely in  Java

Z64K should run on any platform with an updated java runtime environment installed. I will update this site when I get some free time but in the mean time feel free to drop me a message via the contact page with feedback or questions. The changelog only includes changes not shown on this homepage.

*tip: ALT-ENTER togglesfullscreen mode

***JAVA 9 and 10 users should use the –Dsun.java2d.uiScale=1.0 option if the screen does not render nicely on your setup.  See https://bugs.openjdk.java.net/browse/JDK-8189416***


Z64K.jar Z64K.jar
Size : 2099.818 Kb
Type : jar
z64k_quick_guide.txt z64k_quick_guide.txt
Size : 6.7 Kb
Type : txt
changelog.doc changelog.doc
Size : 680 Kb
Type : doc

Keyboard shortcuts

  • ALT+O = Toggle output of VICIIe/VDC to main screen (C128 only)
  • ALT+2 = Toggle 2nd display ON/OFF (C128 only)
  • ALT+ENTER = Toggle Fullscreen mode
  • ALT+INSERT = Paste text from clipboard
  • ALT+DELETE = Copy screen text to clipboard
  • ALT+Q = Toggle capture mouse (C128 & C64)
  • ALT+R = Soft reset
  • CTRL+ALT+R = Hard reset
  • ALT+W = Toggle Warp mode

AdditionalC128 keys

F7=40/80 DISPLAY

The following keymappings override the values in the keyboard configuration editor for the C128
F9 = F1/F2
F10= F3/F4
F11= F5/F6

Other changes are:-
For emulated NUMPAD Joystick Num Lock needs to be OFF.
C128 NUMPAD keys works with Num Lock ON.

There is an option to enable/disable extra c128 keys via settings==>setup==>Extended Keyboard keys in the latest downloadable version of the emulator. Default is enable extended keyboard keys in C128/CPM modes only.

The C128 Direction keys are mapped to PC cursor keys, and CRSR U/D and CRSR L/R mapped to PC NUMPAD / and * when Extended Keyboard keys enabled.


21 March

  • Minor improvement to frame skip

17 March

  • Fixed case where frame wasn't detected during frame skip that could freeze emulator.  Also added timeout value in unlikely case frame is never detected during skipping of frame.
  • Added frame skip (ALT-F while emulator paused) and fixed bug when starting monitor for first time when emulator is paused

17 February

  • Improved Comal-80 support.
  • Added Comal-80 cartridge support.

14 February

  • Added rendering hints to improve display with JRE 9+

6 February

  • Fixed CPM and Expert cartridge VICII graphics fetch bug that was introduced in last version.

4 February

  • Fix C1581 LED behaviour
  • Uploaded correct branch of Z64K.  Earlier version has some disk issues resulting from bug in CIA Port A mask.
  • Fixed bug introduced into SID waveform generator on 15 August 2018.  Samples in the last V8 playcorrectly again.

12 January

  • Fixed a bug that caused the TestBench drive testsuite to fail to mount disk.

8 January

  • Compact toolbar icons on main screen

7 January 2019- New TestBench Frontend

  • Fixed new TestBench Frontendscript for disk images.
  • Fixed case sensitive name of image filethat caused a fatal error on some systems.
  • Removed TestBench from menu when emulating Atari 2600.
  • TestBench support for VICE and HOXS64.
  • TestBench frame resizable.
  • Z64K C128 can select c64 or c128 tests in TestBench

28 December

  • Fixed exit screenshot size when in console mode. Testbench script screenshot tests work again

23 December

  • TestBench selects correct tests for currently emulated computer 

17 December

  • Fixed TAP (raw C64 cassette TAPE images) version 0 support

16 December

  • Fixed some SID player bugs
  • Added c128 Expert Cartridge support
  • Fixed minor bug with c64 cartridge NMI logic

15 December

  • Fixed bug introduced on 10 November that prevented CP/M cartridge working with C128 emulation

13 December

  • Minor changes to Testbench UI tree look and feel.
  • Fixed some bugs with Expert Cartridge.
  • Removed some debug output from emulator that I forgot to disable in last release.

2 December -First formal release!!

  • All logged changes moved into changelog. 
  • Release 1.0 has a java language level of 7 so requires JRE 7 or better. 
  • Future versions with release number 2.x will be created at java language level of 8 so will require JRE 8 or better.