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 9 May 2021
Size : 2045.966 Kb
Type : jar
Size : 2.583 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
Size : 6.989 Kb
Type : txt
Size : 903 Kb
Type : doc
- 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
- ZX Spectrum - experimental SID option at port xxcf when xx is the SID register. Currently when SID is enabled, beeper and AY are disabled.
- Updated undocument machine monitor IO command to dump c64/c128 registers. e.g. io d500 will dump detailed c128 mmu values. io by itself will dump values only for all io registers. note: the io command is still work in progress.
- Fixed broken stand alone SID Player
- Improved Spectrum +2A contented memory and border update timing. btime and contend NOP tests match real +3 Spectrum hardware
- C64/C128/VIC 20 - Reset machine if required for autoload
- Improve MEMPTR (Z80 WZ register) behaviour)
- Include Z80 WZ register value in debugger output
- Allow drop and drag of TZX files into ZX spectrum.
- Allow loading of version 2, mode 4 Z80 snapshots
- Fixed bug that could change value of the Z80 OUT (c),0 instruction if it was last instruction being executed before a reset.
- Updates to contended memory timing of Z80 IN and OUT port instructions.
- Adjust Spectrum +2A IRQ by 3 cycles. fusetest results match other emulators but btime is out by 3 cycles compared to other emulators. Need results from real hardware...
- Improved partial decoding of port 7ffd for Spectrum +2A
- TZX block type 2A and 33 implemented.
- Disable tape traps when correct ROM is not banked in.
- Minor adjustments to Spectrum +2A IRQ and contended memory timing
- Start of Spectrum +2A support.
- Option for mono output of beeper and AY. (On by default)
- Enabled saving of ZX spectrum z80 snapshot.
- Fixed a bug with loading z80 files. (A/F and A'/F' were reversed)
- Support for loading of 128K Z80 files. (V2 hardware type 3 and V3 hardware type 4)
- Include ZX spectrum models 16K, 48K NTSC, and plus 2.
- Adjust border update by one cycle. Fixes BTIME timing
- Loading TAP and TZX via load program automatically resets the emulation (in preparation of autorun.) Loading TAP and TZX via Datasette menu does not automatically reset the emulation (required for multi tape demos/games)
- Improved Z80 port access timing. Fusetest passes all tests in Spectrum 48K and Spectrum 128K.
- TZX Block type 15 support.
- Minor update to ULA snow effect.
- Tape auto stop and trap options.
- Automatically press play when using Spectrum tape fast load.
- Set Spectrum 128 clock to correct speed.
- Set tape block pause time to correct value.
- Improved TZX file support. Included TZX files in tap loader
- Fixed broken .sna file support for ZX Spectrum
- Included missing IR contend memory cycles. Updates to snow effect.
- Implemented TZX tape file support. (incomplete - only available under load program at this stage but will populate the cassette settings preview panel when loaded.)
- Minor tweak to snow effect
- Snow effect extends over entire ULA memory access cycles
- Can save ZX spectrum settings
- Option to enable/disable snow effect.
- Added ULA snow effect
- Fix port timing of Z80 OUTI, OUTD, OTIR and OTDR instructions. ULA test scroll17 displays without jitter.
- Enabled drag and drop of files to ZX spectrum.
- Writes to multiple ZX spectrum IO ports at same time allowed. Displays scroll text above screen for scroll17 ULA test.
- Slightly adjust default ZX spectrum screen position.
- Improved reading of floating bus during contended IO.
- Fix bus timing of LD(IX+d),n and LD(IY+d),n Z80 instructions. FPGA48all test displays correctly
- Improved single stepping of instructions during ZX Spectrum contended memory.
- show correct disassembly of indexed ALU Z80 instructions
- Improved memory bus timing of EX (SP), HL.
- Fixed debugging of memory when switching to ram1 with the machine monitor bank command
- Fixed disassembling of LD (HL),r z80 instructions.
- Improved timing of ZX spectrum border relative to screen.
- Implemented undocumented z80 instructionOUT (c),0 (ed71)
- Show current TAP block in cassette settings.
- Updated ZX spectrum icon.
- Decrease voltage level of ZX spectrum tape data playback through speaker.
- Disable tape player motor and sound from tape when MIC is reset for ZX spectrum.
- Fixed screen size of ZX spectrum 128K.
- ZX spectrum tape rewind and fast forward.
- Added option for normal load of TAP files.
- Use correct ROM for Spectrum 48K.
- Added option for ZX Spectrum 128.
- Implemented Z80 interrupt mode 0.
- Added ZX spectrum cursor key keyboard mapping
- Improve sound output of ZX Spectrum AY on higher sample rates
- Fix floating bus behaviour for arkanoid. Sound no longer has unintended noise.
- Fixed default gain for SID. It was set as though digimax was connected by default meaning sound was playingat half the level it should have been.
- Increased portaddress range of valid read/write to AY registers
- Added awork in progress AY option for ZX spectrum.
- Allow loading of ZX Spectrum tap files. No autoload at the moment, must use load"" enter after loading tap file(using the following keyboard sequence:- j, shift p, shift p, enter)
- All ZX spectrum timing tests pass with uncontended and contend memory. Sidewize plays without flicker
- BOTH versions of Z64K. Fixed loading of all .d71 disks images. Some were failing to load correctly if the BAM double sided flag was not set to $80.
- Updated c128 Z80 port read and port write behaviour
- Improved ZX spectrum beeper output
- Fixed broken C64 CP/M
- Improvements to ZX spectrum contended memory timing.
- Improved ZX spectrum floating bus behaviour. Arkanoid works.
- Updated t-state timing of Z80 RLD, RRD and EX (SP),index instructions.
- Updates to ZX Spectrum ports
- Updated Z80 flag behaviour for undocumented bits. All of Patrik Rak's Zilog Z80 Test suite including programs including MEMPTRpass.
- Fixed monitor dumping of REU memory.
- Updated flag behaviour for Z80 CCF and SCF instruction.
- Updated some internal Z80 behaviour. MEMPTR test program only fails 5 tests now.
- Implemented undocumented Z80 Flag behaviour. ZEXALL passes all tests.
- Z80 instructions INI, INIR,IND,INDR,OUTI,OTIR,OUTD,OTDR are now cycle exact
- Fix copy highlighting length of Z80 monitor debugging
- More improvements to timing of ZX Spectrum contended memory.
- Z80 instructions CPI,CPIR,CPD, and CPDR are now cycle exact.
- Improved ZX Spectrum keyboard handling to handle all high byte address port range
- More improvements to ZX Spectrum contended memory timing.
- Improved ZX Spectrum contented memory and contented IO. Full screen raster in Shock Megademo 3 shows correctly. ULA test 3 and ULA test 3 modified show same output as reference screen from real ZX spectrum.
- Improved floating bus behaviour. Floatspy passes self test as OK.
- Place 0xff on the bus for ZX spectrum Z80 interrupt mode 2
- Implemented ZX Spectrum floating bus behaviour for disconnected IO reads.
- Greatly improved ZX spectrum contended memory timing.
- ZX spectrum map cap shift to left-CTRL in addition to left-SHIFT. Shift would sometimes get stuck when pressing both left and right shift together.
- Improved Z80 HALT behaviour
- Implemented some contended memory behaviour of the ZX Spectrum
- Add Custom and Gamepad joystick options for ZX Spectrum.
- Improved Z80 instruction cycle exacttiming.
- Fix number of raster lines for ZX Spectrum. It was one less than it was meant to be.
- Correctly set Interrupt flag when loading z80 files.
- Fixed Kensington direction mapping.
- Kensington joystick support using numpad direction keys (0=fire).
- Added ZX spectrum Beeper sound.
- Partial v2 z80 file format support for ZX spectrum.
- Updated some reading of io port behaviour. Fixes unintended animation in Fairlight and Fairlight 2
- Basic z80 file support. (v1 only). Tested with Firelord and Fairlight. Both are in aplayable state.
- ZX spectrum screen timing adjustments.
- Backspace key
- Enabled changing of zx spectrum border color
- Assign correct attribute value to characters. Flashing cursor works now.
- Enabled ZX spectrum keyboard.
- Start of ZX Spectrum proof of concept emulation. Loads up to "1982 Sinclair Research Ltd" screen. No input devices yet. Only minimal interaction available using machine monitor. Still a major work in progress.
- Fixed bug with monitor mem command if no addresswas included.
- Improved speed and display of memory and REU dumps in monitor
- Included monitor reudump (rd) command.
- Fixed monitor input when switching between emulators.
- Centre windows when they arefirst opened.
- Remove some debugging code that triggered monitor during Z80 IO access.
- Update to REU floating bus behaviour.
- Set correct REU size when using command line options
- Set flags correctly for LD A,I and LDA A,R (needs testing)
- Fix bug with Z80 RES/SET instructions that got broken in previous release
- Fix disassembly of Z80 DDCB and FDCB instructions
- Implemented missing Z80 instructions JP (IX) and JP (IY)
- Implement missing Z80 instructions ld a,i (ed57) and in a,(*) (db). Note: in a,(*) is not currently cycle exact so may cause issues with programs that require exact timing. This will be fixed in next release. Both of these instructions in addition to the HALT command require furthertesting.
- Fixed C128 that got broken in 10 February release
- Set default emulation or application via General settings in Global settings
- Set default value of REU floating bus value to 255
- Slight improvement to REU timing. Test b3 of REU Timing 2 passes.
- Improved VIC-II reset code and NTSC/PAL switching to prevent the emulator from ever being in an invalid state that couldpotentially cause it to crash.
- Fixed bug where VICII could crash emulator while doing a hard reset. Always crashed when doing a hard resetusing 50/60Hz mode.
- Save state of 50/60 Hz.
- Include emulated computer name in window title bar
- Show "paused" in title bar when emulator is paused.
- Save Custom IC Glue Logic
- Send labels from Assembler to emulated computer.
- Implemented Z80 HALT command. *requires testing.
- Fixed bug that could crash assembler when loading source code from file.
- Confirm before exiting
- Stand alone Assembler option
- Enabled loading of t64 files into memory. Need to type RUN and ENTER to execute program.
3 February - Version 2 of Z64Konly
- Included option for Custom IC Glue Logic available in the VICII section of model settings. Undead shows "hidden" text.
2 February - Version 2 of Z64K only
- Updated C128 REU to use bits 7 and 6 of register d506 for DMA target. Fixes replays in Volley for Two when using REU as the extended replay method.
31 January - Version 2 of Z64K only
- Allow use of shift key for selection of text in assembler in combination with mouse or arrow keys
- Included more statistics of assembled program in bottom assembler status bar.
- An example of what can be compiled with the Assembler is d030tester2.0 for the c128.
- Fixed bug with assembling indirect JMP. Use official opcodes for assembling NOP and SBC #imm
- Assembler - Ignore assign label '=' inside double quotes
- Assembler - Fix formatting when line with label and command on same line has leading whitespace
- Assembler - Ignore comment character (;) and command delimiter character (:) when in quotes
30 January - Version 2 of Z64K only
- Bug fix toassembler !byte command
- Assembler detects more errors in source
- Assembler available via the Applications menu.
24 January - Version 2 of Z64K only
- Fixed bug that was preventing assembling of indirect indexed and indexed indirect instructions in the machine monitor
3 January - Version 2 of Z64K only
- Command line option -vdc will start in 80 column mode for c128 emulation
2 January - Version 2 of Z64K only
- -moncommands <filename> command line option -
Happy NEW YEAR!!!
31 December - Version 2 of Z64K only
- Load dragged and dropped and autoload prg in c128 mode if emulation was in previously running in c64 mode. Fixes internal testbench running d030 tests.
30 December - Version 2 of Z64K only
- Minor change to exit screenshot support
29 December - Version 2 of Z64K only
- Save screenshots on exit of c128 mode for TestBench
- Screen shot options available in media settings. TestBench screenshots are saved in the format VICE testbench uses for it's test suite. 1:1 pixel default (aspect ration not maintained), 4:3 aspect ratio - Use X or Y as the base dimension.
28 December - Version 2 of Z64K only
- C128 extra keys options available in model settings
- Enable Copy from screen for Version 2 of Z64K.
- Fix copy from VDC screen for Version 1 of Z64K.
- Add CPU multiplier for C64, C128 and VIC 20 of Version 2 of Z64K. Available under speed settings. Speed up games like Fairlight and Driller without affecting timing of music etc..
25 December - Version 2 of Z64K only
- Updated some CIA shift behaviour. All VICE test repository CIA shift register related tests pass now.
24 December - Version 2 of Z64K only
- Disable VIC-II grey dot for C128 emulation when running testbench.
- Fixed issue with testbench scripts using c64 emulation.
- Enable drives when testbench "debugcart" option is enabled. Allows drive via tests to pass.
17 December - Version 2 of Z64K only
- Some audio driver updates to improve sound output in Linux
13 December - Version 2 of Z64K only
- Improve tape counter timing when using rewind/f. fwd.
- Start of UI settings for CBM Datasette. Proper Reverse and Fast Forward implemented .
- Partial implementation of VIC20 and disk drive snapshots
6 December - Version 2 of Z64K only
- Added load_labels (ll) and save_labels (sl) Machine Monitor commands.
- Added add_label (al), clear_labels (cl), delete_label (dl), and show_labels (shl), Machine Monitor commands.
- Added radix and registers Machine Monitor commands.
- When "Audio plugin to control the Game loop speed" not selected Game Loop sleep time is factors in audio buffer size. Improves stability of audio on lower end devices.
- Re-enable separate thread for audio driver. "Audio plugin to control the Game loop speed" off by default.
5 December - Version 2 of Z64K only
- Option to use Audio plugin to control the Game loop speed. Available in Volume control. Lag will be determined by sound buffer size. On by default.
- Multiple updates to Audio driver. Should be a lot more stable, especially on lower end systems.
30 November - Version 2 of Z64K only
- Replaced monitor single step cycle "r" command with "cycle" and "zc". The command is now included in the machine monitor help (? cycle). r is currently disabled and is reserved for the register command.
- Fixed bug when exiting machine monitor where last stepped instruction in debugger window would be over written.
29 November - Version 2 of Z64K only
- Update Machine monitor output to correct valueswhen stepping through cycles or instructions in the open IO area.
- Greatly improved speed and memory usage when executing a huge number of debugging cycles in machine monitor.
- Fixed overflow bug that caused machine monitor to freeze if disassembling entire memory.
25 November - Version 2 of Z64K only
- Updated VDC model to partly emulate behaviour of VDC register 27 value > 0 in multicolour bitmap as discussed here.
22 November - Version 2 of Z64K only
- Included progress bar of filter setup when reSID is selected. Save the filter tables into the config folder for quicker setup of filtersnext time emulator is started with reSID enabled.
- Added an option which isavailable in settings to use the WIP reSID engine. It is based very close to the current VICE reSIDemulation. Note: Emulator will freeze for a few seconds while the filters are being calculated when reSID is first selected.
18 October - Version 2 of Z64K only
- Option to dump all ofPIA memory to a file.
- Option to save General and Sound Settings
16 October - Version 2 of Z64K only
- Option to disable sound chip.
15 October - Version 2 of Z64K only
- Removed code that caused sound buffers to be dropped.
11 October - Version 2 of Z64K only
- Option to disable multithreading screen rendering (General global settings)
- Options to select rendering method and to disable software rendering. (General global settings)
- Option to select exact 50/60hz mode for VICII (Model settings)
- Numpad joystick recognises 0 as fire in addition to right CTRL.
27 July - Version 2 of Z64K only
- add soundrate, soundbufsize and VICIIpalette commandline options
26 July - Version 2 of Z64K only
- Include Atari 2600 select option keys in hot key help.
- Add Game Select and Game Reset buttons into Atari 2600 toolbar.
- update 856x versions of VICII behavior when switching from bitmap to text mode as seen in VICE test repository modesplit test program.
25 July - Version 2 of Z64K only
- Atari 2600 drop and drag cartridge
- Save machine model settings (c64 and c128 only)
- * Include 8562 (NTSC) and 8565 (PAL) grey dot options of VICII for C64. Rename C128 VICIIe options to 8564 (NTSC) and 8566 (PAL). Removed 6567R56A (old NTSC) option for C128. *Version 2 of Z64K Only
- Fixed IRQ timing for CBM drive 1571 . Timera.prg passes from the VICE test repository
12 July - Version 2 of Z64K only
- C128 VICII uses correct RAM block when MMU RAM banks 2 & 3 are enabled.
- Fixed fatal error when attempting to start stand alone SID player caused by 6 July update .
11 July - Version 2 of Z64K only
- fixed ROM handling for VIC 20. Fixes NTSC mode and Custom ROMs.
- fixed load address out of range when loading file with machine monitor.
7 July - Version 2 of Z64K only
- Fixed bug with ROM configuration which caused a fatal error with C128 emulation if settings were opened before starting the emulation.
6 July- Version 2 of Z64K only
- Fix timing of CPM cartridge when using C128 emulation.
- Fix debugging output of CPM cartridge.
- All screen attributes are immediately refreshed when the emulator is paused the same as when the emulation is running normally.
- Debug mode of screen available when the machine monitor is active which shows progress of current frame being generated. A white dot shows current position of raster beam.
- Support for the new format of HVSC songlengths.md5 with SID player
27 June - Version 2 of Z64K only
- Fixed bug with C128 PIA where zero page and page 1 were not immediately updated when PIA RAM banks updated. piaglobe test program works without glitches now.
21 June - Version 2 of Z64K only
- Some internationalization support. Available in Global settings ==> Language
20 June - Version 2 of Z64K only
- Fixed play/pause button of SID Player to be able to start playing again after being paused.
- Mirror 1541 VIA registers across entire range ($1800-$1bfff and $1c00-$1fff) - allows latest Krill loaders to work
9 June - Version 2 of Z64K only
- re-enabled code I forgot to enable after implementing some updates to d030 testbit behaviour. The disabled code was causing a fatal crash of c128 if testbit was set but not reset. e.g. poke 53296,2
8 June - Version 2 of Z64K only
- Fixed stuck bit behaviour for REU size 128KB (1700) and 256KB (1764)
7 June - Version 2 of Z64K only
- Customisable REU ram sizes
- Included some missing Z80 opcodes.
6 June - Version 2 of Z64K only
- Fixed bug that caused cartridges with relocatable IO to disconnect if being swapped to a lower IO range. (DIGIMAX, Swiftlink and PIA)
- Display correct file size in disk preview for files greater than 255 blocks
- Option for8 bit userport DAC
- Fixed bug with VDC where latches would sometimes not reload during vertical scrolling of bitmap screen
3 June - Version 2 of Z64K only
- Fixed a bug with the SID selection UI sometimes not updating the SIDIO correctly.
2 June - Version 2 of Z64K only
- Support for up to 8 SID chips! Tested with The tuneful EIGHT which runs at full speed without glitches on my system but slower systems may struggle with all eight SIDs active at the same time.
Option via settings ==>Machine Settings==>SID==>STEREO SID.
Following is an example of the command line options to start The tuneful EIGHT with eight SID chips active (7 extra SID chips) and 8580 (sidenginemodel 257) selected:-
z64k.jar c64 -stereosid 7 -sid2address d420 -sid3address d480 -sid4address d4a0 -sid5address d500 -sid6address d520 -sid7address d580 -sid8address d5a0 -sidenginemodel 257 D:\c64\test\prg\the-tuneful-eight.prg
- Fixed command line option for -sidenginemodel when selecting 8580 at startup.
31 May -Version 2 of Z64K only
- Include cartridge image in snapshots
30 May -Version 2 of Z64K only
- c128 ROM revision selection
- ROM select all
- VIC 20 bug fix when swapping NTSC/PAL
- screenshot menu item
- Hotkey help text
29 May - Version 2 of Z64K only
- enable file drag and drop.
28 May - Version 2 of Z64K only
- Customisable joystick keymapping available via Settings==>Machine settings==>Controllers for all emulations.
- Machine monitor help text for individual commands.
- Support for Action Replay 2, 3 and 4 CRT cartridge formats,
23 May-Version 2 of Z64K only
- Added help (?)command to machine monitor (WIP) - shows most but not all available commands
- Improved Retro Replay status flag
- Fixed bug with bank selection for Retro Replay Cartridge.
- Added option to allow flashing of Retro Replay Cartridge (Version 2 of Z64K only)
21 May -Version 2 of Z64K only
- Improved DMA timing of REU. All tests in VICE test repository pass.
20 May - Version 2 of Z64K only
- Improvements to REU emulation.
- rmw-trigger tests pass.
- DMA timing stays at 1Mhz when C128 in 2Mhz mode.
- Added support for Atomic Power, Super Snapshot V4 and Snapshot64 CRT types.
Full list of currently supported CRT types in version 2:-
0 - NORMAL
1 - ACTIONREPLAY
2 - KCSPOWERCARTRIDGE
4 - SIMONSBASIC
5 - OCEANTYPE1
6 - EXPERT
7 - FUNPLAY
8 - SUPERGAMES
9 - ATOMICPOWER
10 - EPYXFASTLOAD
13 - FINALCARTRIDGE1
15 - GAMESSYSTEM
17 - DINAMIC
18 - ZAXXON
19 - MAGICDESK
20 - SUPERSNAPSHOTV5
21 - COMAL80
32 - EASYFLASH
36 - RETROREPLAY
40 - SUPERSNAPSHOTV4
47 - SNAPSHOT64
53 - PAGEFOX
60 - GMOD2
- Fixed fatal error when REU DMA occurred before assigning a value to REU register 6
- Fixed Comal80 CRT type
- Fixed Magic Desk CRT type
- Change LXA magic number back to 0xee to match my real hardware. Cracked versions of Wizball work again.
- Can insert Retro Replay and REU at thesame time (Version 2 of Z64K only)
- Added Retro Replay CRT support
- Updated magic constant for 6502 LXA. LXAand FLIBUG tests pass from the VICE test repository
- Minor fix to interrupt trigger timing for CIA SDR so it triggers the same time as SDR is set (4 cycle delay). cia-sp-test-oneshot-old.prg passes now which means all VICE test repository tests pass.
- More updates to CIA SDR flag behaviour so cia-sdr-icr-new and cia-sdr-icr-old test programs pass.
- Some improvements to the CIASDR flag behaviour based on the cia-sdr-icr-new.prg test program in the VICE test repository.
- Removed test code I forgot to remove from MOS 6526 that was causing some disk loaders to fail. Higher Level loader between parts works now.
- Fixed timing glitch with Athena when scrolling down screen.
- Improved shift registertiming so cia-sdr-load.prg in the VICE test repository passes.
- Fixed a glitch in Frostbite.
28 April 2020 - Version 2 of Z64K available for preview
- Z64K is getting a facelift! The work involved seems to never end and I don't know when I'll be happy to formally release it so I've decided to start uploading the progress of the new version of Z64K. It already has most of the features of the existing released version of Z64K implemented but there is still a lot of work to do before it's at the stage it can replace it. It requires JRE8 or better, The link is available here ==> http://www.z64k.com/resources/version2/Z64K.jar
- Fixed VDC writing to register 19 before 18 behaviour as discussed at emd/c128-vdc.s is broken
- Delayed clearing of sprite collisions register by 4 pixels. Fixes spritevssprite test program.
- REU timing fixes, All VICE test repositoryxfertiming tests pass.
- Mouse cursor icon changes when hovering over Border Mode dimensions image under Screen settings to better hint that screen and border size can be manually adjusted.
- Handle cases where the Vertical smooth scroll is greater than the total number of scan lines per character with the VDC in bitmap mode.
- Fixed bug with drop and drag functionality.
- C128 emulation recognises .c128 files
- Update of character base address should be applied immediately (VDC register 28, confirmed with VDC split test program). Re-enabled Character Vertical Size(VDC register 23). VDC 101 100% supported now. :)
- Improved latching of VDC char base address. Almost there... Artifacts between logo and scroller of VDC101 no longer appear. Still need to fix smooth x scrolling for logo and remove artifacts above logo.
- Fixed a bug with character vertical size. VDC101 logo imageshows correctly in demo linked in next dot point.
- Fixed a bug with VDC register 6. Still not perfect yet but a huge improvement running VDC101
- Resetting c128 also resets d030 test bit.
- Fixed bug in Pitfall II wherefirst and last column of pixels displayed incorrectly that was reintroduced in a recent update.
- Added 64K EF cartridge support for Atari 2600
- Fixed bug that didn't set correct bank selection registers for ROMS with 3 x 4K ROMS. Updated RAM size detection code for SC to detect variable RAM sizes. FA (RAM Plus) cartridges work now.
- Fixed colour priority of TIA playfield in score mode.
- Allow loading of .a26 file extension.
- Fix minor bug with TIA RESP timing. 32 text demo show correct spacing for all rows now.
- Slightly improved TIA NUSIZ register behaviour when updatedduring draw
- Adjusted behaviour of TIA NUSIZ when registerupdated close to drawing of pixels. Fixes jitter in Meltdown.
- Fixed correct Palette selection for Atari 2600 PAL/NTSC.
- Added most of the Thumb mode ARM commands for DPC+ cartridge.
- Attempting to load a weird size Atari Cartridge no longer crashes the emulator.
- Fixed bug with DCP+ function 2. Gizzle Snow, Pac-man Eat-Run, and The Quest display correctly now.
- Fixed ARM BCS instruction
- Added some ARM support for Atari 2600 DPC+ cartridge. Frantic Freddy is playable now.
- Added Atari 2600 DPC+ cartridge support
- Slightly adjust Atari 2600 crystal clock speed to be 3.579575 MHz
- Added Atari 2600 Spectravideo Compumate support
- Fixed graphics in first and last pixel column in Pitfall II
- Atari 2600 Pitfall II support.
- Updates to TIA RESP timing during draw. 32 char demo now has correct spacing.
- Updates to TIA RESMP timing. Snoopy clouds and landscape display much better.
- Reset Cartridge to default bank on when resetting the Atari 2600
- Fixed some MOS6532 default values on reset of Atari 2600. Summer Games and Winter Games work now.
- Removed some glitches during TIA HMOVE .
- Update to RESMP timing. Clouds in Snoopy display much better.
- Improvements to Atari 2600 MOS6532 timeremulation
- Added Atari 26001K and 2K bank switching cartridge detection.
- Fixed some TIA HMOVE behaviour. Mega bitmapDemo displays correctly again.
- Prevent crashing of Atari 2600 when attempting to load unrecognised cartridge size
- Added CPU status in debugger window for Atari 2600
- Added 8K Superchip cartridge detection for Atari 2600
- Create custom sample rate for Atari 2600 to exactlymatch TIA sample rate. Removes high pitch sound from Quadrun.
- Updated Cosmic Ark and Bang! starfield effect to output single/double or no pixel depending on internal TIA clock cycles.
- Updated quick guide to include Atari 2600 Keyboard options for changing switches.
- Atari 2600 - New TIA model which is now much more accurate. Path in snowfield of Spikes Peak displays at the correct position.
- Added Atari 2600 TigerVision cartridge support. (extension .3f)
- Fixed behaviour of C64/C128 IO range de00-dfff when no cartridge has been inserted on startup.
- Minor updates to CRT emulation
- Fixed some bugs with VIC 20 serial outthat was causing JiffyDOS to misbehave.
11 May - Major update to Full Screen handling (ALT+ENTER)
- Fixed some weird behavior when using Java 11 of Windows when toggling full screen mode on setup with 3 monitors.
- Full screen settings available under General tab of Global Settings.
- New borderless mode (default full screen method).
- Multiple monitor support (c128 can have 2 active full screens at the same time)
- Added Machine Monitor console history. Use UP/DOWN arrows.
- Made Machine Monitor console window colorful.
- New Machine Monitor console window.
- Updated C128 Machine monitor commands rb0 and rb1 to no longer mess with MMU.
rb0 - debug using memory in RAM bank 0
rb1 - debug using memory in RAM bank 1
system - debug using system view of memory (defaults back to this when exiting monitor)
- breakpoints for c128 now have 17 bit range. eg:-
- bk e000 will set a breakpoint at bank 0 location e000
- bk 1e000 will set a breakpoint at bank 1 location e000.
- Report actual cycles/second executed on slow devices that can't handle full emulationspeed (e.g. Raspberry Pi).
- Added dumping of C128 mmu in machine monitor. io d500
- Emulator runs at correct speed after host computer resumes from sleeping.
- Fixed bug caused by last update to Ocean cartridge that prevented Shadow of the beast working.
- Re-enabled Full Screen options when display mode options are detected.
- Disable Full Screen options of Full Screen modes not found.
- Mirror Ocean Type 1 CART ROM LO to CART ROM HI. https://sourceforge.net/p/vice-emu/code/HEAD/tree/testprogs/C64/carts/ocean/ocean.crt cartridge works now.
- Added command line options for soundrate and soundbufsize
Specify the sound playback sample rate (SoundSampleRate). (8000..192000)
Specify the size of the audio buffer in milliseconds (25..350).
- Updated VIC20 VIC noise generator as discuss in VICE feature request #328 6561 noise generator has been reverse engineered
- Mastervolume control enabled for VIC20 and Atari 2600.
- Minor changes to SID player UI behaviour
- Set minimum size for SID Player window. Expand SID information text area on window resize.
- Minor tweaks to sound latency reporting.
- Major rewrite of Audio plugin. Options to change sample rate and buffer size available on the General tab of Global settings.
- Removed settings box in development that should not have appeared in the File menu.
- Fixed bug when manual selection of 2nd SID selection was always setting it to address $d520 no matter what value was selected. All 2nd SID locations in Super Mario Bros work.
- Fixed a bug with SP logic that caused VICE test repository cia-int tests to fail.
- Fixed a bug with the CIA SP output that was bringing the IRQ pin low when byte wassent regardless of the mask value in the IMR. Thanks Krill for the bug report and pointing me in the right direction to fix this. :)
- Fixed some of the Fast Serial bugs that were introduced in 5 May 2018 release. C128 version of JiffyDOS ROMs function correctly again when using1571 and 1581 drives.
- Removed doubling up of 1541 debugging output when using C128 emulation.
- Include drive CPU state at top of Machine Monitor when debugging device 8:
- Allow Machine monitor to assemble to device 8.
- Disassembly window is refreshed when assembled code falls in range of what is displayed in the window.
- Fixed some Machine monitor debugger output for 1571 when drive is in 2 Mhz mode.
- When a breakpoint is trigger, correct CPU is shown by default when entering theMachine Monitor.
- Fixed bug with cursor in interlaced mode.
- Updated VDC interlaced bitmap behaviour when vertical adjust is set to 0. Thanks Scott Hutter for the test program . :)
- Fixed bug introduced on 22/11/2018 when SID envelope underflows. Hang drum sounds much better now.
- Disabled extra pixel in VDC 40 column bitmap mode
- Minor improvement to frame skip
- 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
- Improved Comal-80 support.
- Added Comal-80 cartridge support.
- Added rendering hints to improve display with JRE 9+
- Fixed CPM and Expert cartridge VICII graphics fetch bug that was introduced in last version.
- 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.
- Fixed a bug that caused the TestBench drive testsuite to fail to mount disk.
- 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
- Fixed exit screenshot size when in console mode. Testbench script screenshot tests work again
- TestBench selects correct tests for currently emulated computer
- Fixed TAP (raw C64 cassette TAPE images) version 0 support
- Fixed some SID player bugs
- Added c128 Expert Cartridge support
- Fixed minor bug with c64 cartridge NMI logic
- Fixed bug introduced on 10 November that prevented CP/M cartridge working with C128 emulation
- 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.