Pixel exact emulation of the Commodore 128,Commodore 64, Spectrum 48/128K,VIC 20 and Atari 2600
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, 10 and 11 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***
LINUX users: You might need to change the permission of Z64K.jar to allow execution. e.g. chmod +x Z64K.jar.
Latest version 2 of Z64K in development stage. Requires JRE 8 or better. For latest features use this version.*
* last updated 3 January 2022
Size : 2065.791 Kb
Type : jar
Size : 2.583 Kb
Type : txt
Size : 1104.5 Kb
Type : doc
Size : 6.989 Kb
Type : txt
Version 1 of Z64K..
Note: This version is no longer being updated except for bug fixes..
Size : 2158.658 Kb
Type : jar
- 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
The following keymappings override the values in the keyboard configuration editor for the C128
F9 = F1/F2
Other changes are:-
PC CAPS LOCK = C128 SHIFT LOCK
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.
Version 1- http://www.z64k.com/resources/Z64K.jar
Version 2 (in development) - http://www.z64k.com/resources/version2/Z64K.jar
UNLESS otherwise stated assume updates apply to Version 2 of Z64K only
- Updates to c128 mmu. mmuswap-08 and mmuswap-16 pass. All test results match real hardware.
- Use correct block for zero page and stack when RAM backs 2 & 3 are enabled. Fixes PIA globe test
3 January 2022
- Update to c128 mmu swap of zero page to stack and vice versa. All test results at https://sourceforge.net/p/vice-emu/code/HEAD/tree/testprogs/c128/mmu/ match real hardware.
- Allow autoload of file on disk via command line. Append disk source filename with colon and file to be automatically loaded. eg java -jar Z64K.jar c64-8 G:\old_school\C64\disks\geos-plain.d64:boot
- 128, 256, 512, 1024, 2024, and 4096 selectable GEORAM sizes.
- Include updating Z80 registers HL in machine monitor
- C128 writes to dxxx RAM in Z80 mode for bank 0
- Enable beeper by default for ZX Spectrum
- Fixed bug that prevented path and rom locations being reloaded from saved configuration.
- opengl disabled by default. Should only be enabled if UI issues occur on newer graphic cards. Option to enable is available in General Global Settings. Emulator needs to be restarted before effects are applied.
- new command line option -safemode. Disables opengl in config if unable to access settings to unselect the opengl option, All other command line options are ignored in safemode eg. java -jar Z64K.jar -safemode
- Use opengl for hardware acceleration. Fixes glitches in UI without need for Dsun.java2d.d3d=false as a VM option at startup. Improves screen refresh.
- Swiftlink cartridge supports Turbo232 speeds
- Cartridges that don't use IO1 and/or IO2 can be connected at the same time as other expansion devices.
- UI changes to cartridge settings.
- Disable audio master gain adjustment for systems that don't support it.
- Updates to Swiftlink cartridge to support retroterm
- Included buffer free progress bar in settings for internal userport modem.
- Improved some rs232 badly formed address error handling.
- Echo, quiet and verbose toggle button available in settings for userport internal modem
- Set echo default to false. Prevents UP9600 driver in Striketerm being locked if modem on when driver selected
- Detect when client disconnects.
- Minor improvements to Hayes Modem command mode behavior.
- Internal modem echo on and quiet off by default. Echo only in command mode.
- Improved timing of userport rs232 receiving of data. Streaming of audio using retroterm 0.13 plays audio stream at correct speed and no longer causes modem buffer to overflow when playing long streams.
- Increase internal modem buffer size
- Minor Improvements to Machine Monitor next command behaviour.
- Added Machine Monitor next (n) command. Single steps instruction but treats subroutines as a single instruction. Note to self: Must find some decent icons for the single stepping icons. :)
- Fixed debugging with monitor for C128 Z80 cpu memory locations $1800-$3fff
- REU retains memory after reset
- Allow Userport modem to send and receive data at same time
- Added 57600 baud rate option for userport rs232 to support Retroterm V0.13
- Fixed reset bug that wasn't clearing Z80 HALT state when interrupts were disabled.
- Improvements with Z80 HALT timing
- More improvements to ZX spectrum snow effect
- Applied some improvements to ZX Spectrum snow effect as discussed at Playing Robotics on ZX UNO+ - Page 3 - Spectrum Computing Forums
- Setting of Z80 registers using machine monitor is now functional
- Setting of Z80/6502 registers with machine monitoruses current radix
- C128 d7xx floating IO
- refresh DRAM in 2 Mhz mode reads valid data. https://sourceforge.net/p/vice-emu/code/HEAD/tree/testprogs/c128/openio/htst.prg flickers display like real hardware
- Default internal modem with echo off, verbose on, and quiet on.
- Improved internal modem Hayes command set.
- Option to disable userport rs232 modem emulation. Allows connection to tcpser etc.
- Fixed broken fast 1581 serial caused by recent changes to support UP9600
- Included a default keyboard mapping for German keyboards thanks to Tokra . Disclaimer: not thoroughly tested but is much better than the default English mapping when using a German Keyboard. :)
- Fixed restore key for VIC20.
- VIC 20 uses mike-pal.vpl as default
- Some minor fixes with timing of VIC interlace signal
- Userport rs232 modem synchronisation greatly improved. Data transfers much more reliable with UP9600 and standard userport drivers.
- Minor adjustment to value read for VIC $9004 register when in NTSC mode depending on cycle
- Added UP9600 rs232 modem support.
- Fixed bug with automatic loading of SDR value into CIA shift register when loaded at same time as final bit of previous SDRshifted out.
- Improvements to Userport RS232. Huge improvement with sending valid data!
- Fixed ZX spectrum settings title
- Allow ZX spectrum to be default application on startup
- Fixed bug with command line option -limitcycles that caused it not to trigger with TestBench scripts.
- Minor change to latching behaviour to trigger on correct edge as set in ACR. Drive sends pulse from byte ready signalto trigger latching.
- Update to VIA port latching. Fixes VICE bug#582 and Freespin still works!
- Fixed bug with VIA latching not clearing when CA1 interrupt is cleared. Freespin demo doesn't crash anymore. :)
- Added undocumented drive machine monitor commands motor and track
motor [on:off] - turn motor on/off , without arguments prints status of drive motor
track [in:out] - move rw head in/out 1 half track, without arguments prints current track
- Adjusted disk SYNC detection. his-protection test passes.
- Enabled Internal Palette selector available in settings.
- Updated default VDC palette to c128-vdc-deekay.vpl as suggested by Deekay in the readme of the Colour Spectrum demo.
- Freespin runs on 1571 drive in addition to 1541
- C128 support of drive GPU required for Freespin demo
- Improved sync detection. Freespin display a lot more stable (when it actually runs).
- Fixed bug with VIA reset code that would lock drive if PB7 output was on. Freespin no longer locks the drive after reset.
- Show correct frames/second in the frame title for all video chips, including simulated drive gpu.
- Added sound support for Freespin demo. note: Demo still does not run reliably every time yet in emulation but it is improving.
- Improved Freespin demo support. Better drive sync detection. Displays graphical effects correctly (when it works) warning: sometimes crashes the drive where the entire emulator needs to be closed and restarted. Freespin support is still a work in progress.
To play the Freespin demo, after the drive code has loaded, select Drive GPU from Machine settings==> Model panel. When screen turn blacks reattach the same disk image to start the demo.
- Fix debugging of Z80 LD A,I and LD A,R
- Added option to use disk drive as GPU for Freespin demo. note: Not reliable and does not play sounds yet.
- Some improvements to userport rs232 emulation.