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
If you notice performance issues or delayed toggling of full screen mode, add -Dsun.java2d.d3d=false to the java command line.

***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 : 2091.992 Kb
Type : jar
changelog.doc changelog.doc
Size : 528.5 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

F1=ESC
F2=TAB
F3=ALT
F4=CAPS LOCK
F5= HELP
F6=LINE FEED
F7=40/80 DISPLAY
F8=NO SCROLL

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

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.

http://www.z64k.com/resources/Z64K.jar


12 November

  • Fixed bug that was preventing USB joysticks being read correctly.

11 November

  • Fixed timing of VDC screen with horizontal display greater than horizontal total when changing character total vertical height multiple times in one frame.

10 November

  • Fixed bug with SID Player which wouldn't allow last song to finish at correct time and start back at song 1.

7 November

  • Added option to selected Swiftlink IO location.

5 November

  • Fixed bug where writing to VDC registers while VDC is busy is incorrectly allowed when it should actuallyfail. Fixes VICE bug #1068

4 November

  • Improved some behaviour when splitting VDC bitmap/character modes.
  • Improved more of the behaviour of theVDC when character vertical height is 0. 

3 November

  • Fixed VDC 8 x 1 timing issues when VDC register 6 changed.
  • Fixed some VDC 8 x 1 timing issues with some new modes.

30 October

  • Modem switches between data and command modes
  • Split display of address and port number in cartridge panel for SwiftLink Cartridge
  • Minor SwiftLink cartridge update.
  • Added SwiftLink Cartridge.   Still a work in progress but confirmed working in Striketerm 2014. Available via File==>Cartridge==>File==>Insert==>Insert Swiftlink.  note it only uses IO1 at the moment.  I will add an option to select IO2 in next release.

28 October

  • Minor updates to AT command responses.
  • RS232 modem sends responses from AT commands.

27 October

  • Added some AT commands.  (ATDT,ADTP, and ATH).   Striketerm 2014 final can dial and hangup connections.  C64 version of Platoterm can connect using the following command at the startup screen with rs232 emulation enabled and baud rate 2400: atdtirata.online:8005.
  • Connection of rs232 to remote site on power up of rs232 is optional.  Connection address can be software controlled (see above).  RS232 settings available on the Setup Tab of System Config settings.
  • Fixed c128 rs232 CIA 1 conflict with serial bus
  • Fixed CIA shift register bug introduced in last update. C128 fast serial works again.
  • Minor fixes to CIA shift register reloading behavior when the new value of SDR is set immediately after the previous SDR has completed it's shift out.  Need proper test program but fixes some issues with rs232 TXD when using UP9600 driver.

26 October

  • Included improved modem clock synchronisation. Improved transfer of data from computer to modem.

25 October

  • Added rs232UP9600 support.

24 October

  • Clear modem buffer when enabling rs232 emulation.
  • Some  improvements to general rs232 emulation.
  • Updated rs232 emulation so input can be recognised on c128 in Striketermterminal

23 October

  • Strike Term 2013  can connect to BBS's with Modem:User Port and Protocol Xmodem-CR selected.  Enable Userport RS232 emulation after terminal screen is active and you have put the address and port number in the serial textbox. Also make sure baud rates match.  I've tested a few BBS's successfully using a baud rate of 2400
  • Some minor improvements to rs232 device.
  • Correctly mask VDC Register 36 Refresh DRAM value. Allows Striketerm 2013 to show VDC screen modes correctly.
  • Fixed bug that was sending an incorrect byte at the start of the package from rs232 to c64
  • Enabled C128 rs223 support
  • Use correct encoding for processing ofreceived rs232 data
  • Sleep rs232 receiver thread during no activity
  • Added VERY BASIC rs232 support.  Available under setup tab of the System Config menu item in settings.  Still a WIP and requires a lot more testing.  I've only tested with V-1541 connecting to CSIP and achieved successful communication at 2400 baud. 

21 October

  • Fixed Z80 OUT (C),reg8 timing

20 October

  • Huge improvement to display and attribute memory latching for all graphics modes and Y smoothing positions.
  • Fixed VDC light pen to trigger correctly . 
  • Improved busy flag behavior when internal VDC buffering runs out of cycles.

17 October 

  • Fixed minor bug where VDC RAM was not properly masked for 16KB of VDC RAM in 64KB mode.
  • Added option for only 16KB of VDC RAM under the Integrated Circuit tab of System Settings
  • Set power on register values for VDC.  This allows command line C128 tostartup in 80 column mode.

16 October - Major rewrite of VDC emulation.

22 September

  • Added C64/C128 Super Snapshot V5 cartridge support.
  • Applied some updates to VDC Busy flag behavior based from observations from thetest program VDC split.  More to come... :)

21 September

  • Fixed bug introduced last update that prevented Soci test 5 from triggering interlace screen.
  • VDC Interlace sync implemented
  • Fixed bug introduced in last version that corrupted VDC demo.

20 September

18 September

  • Fixed minor bug that wouldn't allow parsing of single digit numbers in the  machine monitor.
  • Put a carriage return after disassembly in machine monitor
  • Added -moncommands <file> command line option.  Executes machine monitor commands from a file.Only enabled for C64 and C128 but will be enabled for other emulators in next release. See http://c-128.freeforums.net/thread/462/emulator-testing-report-feature-requests?page=5 for more information
  • Monitor breakpoints are toggled ON/OFF using keyword break [address] or bk [address].  break by itself lists currently enabled breakpoints.
  • Minor updates to VDC vertical sync behaviour. Soci test 3 doesn't cut the first line of characters when in debug border screen mode.
  • Enabled dynamic resizing forall other video chips using screen dimensions widget.

17 September

  • Re-enabled screen dimensions widget that was accidently disabled in last released. 
  • Fixed bug that caused emulator to crash when swapping VDC/VIC screen when  VDC is out of sync.

16 September

  • Fixed a bug where it was possible for odd and even lines to use the same frame buffer.
  • Fixed a bug where if horizontal frequency was changed during cropping of screen.
  • Fixed a bug where frame buffers weren't being released immediately when they were free to be reused.
  • Both the above bugs sometimes caused the emulator to crash or the renderer to freeze. The bug only seemed to appearvery rarely when swapping between c128 VDC and VICIIe screens multiple times in quick succession.
  • Prevent repeating keys for ALT-key shortcuts.

15 September

  • A WIP CRT renderer is available under the screen settings tab in the display settings.  Scan lines will appear and trueinterlaced images will have a slight flicker in this mode similar to real hardware.
  • Viewable Screen dimensions can be resized as by corners. Improved sensitivity of dragging screen boundaries using widget.  note: It still only works for VDC.

14 September

  • Some minor fixes to HBLANK behavior including when Right HBLANK position matches left HBLANK position. Soci tests 11 and 12 no longer flickers obsessively.

12 September

  • Removed experimental HPOS,HSIZE,VPOS,and VSIZE sliders and replaced with widget under screen tab of display settings.  Box that reflects the screen dimensions can be resized and repositioned using the mouse.  Still only works properly with VDC.  Will add support for other video chips soon.
  • Temporarily removed unreliable video information in console window.  I'm working on a new rendering system which will provide a lot more accurate information, especially for VDC.
  • Set language menu item to correct value on start up.
  • Include 'io' command in machine monitor.  At the moment it only supports VICII.  It will be similar functionality as VICE.
    io [<address>]
    e.g. io d000 dumps the VICII registers 

11 September

  • Added experimental HPOS,HSIZE,VPOS,and VSIZE sliders.  Works only for VDC for now but I will add support for all video chips in next release.  The sliders are currently available with the color control sliders under the color adjust tab.  This will only be a temporary location for them.  I will most likely move them into the screen tab of the display settings.
  • Updates to VDC hSync behaviour.

9 September

  • Removed unnecessary clearing of pixels for VICIIe. Overflow pixels from previous frames are automatically detected and cleared only when required.  Reduces CPU load when runningC128 emulation.

6 September

  • Updates to VDC character attribute fetching behaviour
  • Minor updates to VDC busy status.
  • Return correct values of unused bits of ALL VDC registers

3 September

  • Improved VDCSmooth Y scrolling behaviour for bitmaps.

2 September

  • Fixed certain keys pressedon keyboard that should trigger VDC and VICII light pen.
  • VDC lightpen Implemented.
  • Return correct values of unused bits when reading VDC register
  • Set correct display of VDCcursor depending if bottom scan line of cursor is greater than, equal to, or less than top scan line of cursor

1 September

  • Update to VDC smooth scrolling Y behaviour. See Soci tests 6 and 7.
  • More updates to VDC interspace and smooth scrolling Xbehaviour.  See Soci's tests  9 and 10.

31 August

30 August

  • Improved Character Pattern Address behaviour (VDC register 28)
  • More VDC fixes. More of Soci's test display correct characters

29 August

  • Fixed some fetching behaviour of text with vertical resolution greater than 8. Soci test 2 shows correct characters
  • Minor improvement to VDC semigraphic behaviour

28 August 

  • Improved semigraphic and interspace behaviour for single and double pixel modes.
  • Implemented VIC20 cassette motor control using VIA.
  • some minor C128 PLA optimisations

27 August

  • Assign some default values to VDC registers to ensure it's in a stable state for display at startup when loading cartridges like Action Replay via command line.
  • Fixed error where emulator would crash with VDC resolution of 0,0 when starting c128 in 80column mode
  • Fixed cursor display behaviour. Display of Soci's Test 2 shows 1st @ symbol correctly
  • Implemented VDC Character vertical size control (register 23).
  • Variable character pixel sizes supported. Improved display of Soci's tests in the VICE Test repository and Tokra's Big Text modes in VDC mode Mania.
  • Improved reporting of video information in emulator console via help menu.

25 August

  • Some minor updates to VDC smooth X scrolling behaviour.
  • Fixed bug where semigraphic mode was not enabled when it should.
  • Implemented VDC semigraphic mode.
  • Implemented VDC Character horizontal size control (Register 22).
  • Fixed another C128 MMU stack page pointer bug found by Bodo.

24 August

  • Fixed C128 MMU stack and zero page pointers in shared memory.  Thanks Bodo for finding that bug. :)
  • Monitor save binary file. s "filename" start end
  • Some fixes to waveforms related to VICE bug #1037

23 August

  • Improved sound output for Wonderland XIII for both SID 6581 and 8580.  All VICE tests related to VICE bug#746 still pass.

22 August

  • Fix small bug with Sprite Y flipflop behaviour introduced 21 May 2018. Title Needed -  timer at bottom of screen no longer flickers.
  • Some 8580 filter updates

21 August

  • Some fixes to pulse output when TEST bit is set inSID Waveform generator. 

15 August

  • Rolled back some changes to SID waveforms that made final part of Wonderland XIII sound like crap. VICE repository noise writeback test 1 fails now but at least it sounds good again. 

14 August

31 July

  • Add command line options for selecting 80 column mode and dual screen for c128 at startup.
    -80
    -dualscreen
    eg. java -jar Z64K.jar c128 -80 -dualscreen will start the C128 emulator with dual screens with 80 column mode enabledin the main screen.
  • repositioned disk preview window to right side of file chooser.

17 July

  • Improve Game Loop and sound output.

16 July

  • Fixed VDC double pixel mode horizontal blanking behaviour for C128

15 July

  • Allow 2nd screen of C128to be toggled off if it is in full screen mode without crashing the emulator.
  • Fixed bug when attempting to set 2nd C128 screen to Full screen mode.  Either main screen or 2nd screen can be set to full screen using ALT-ENTER for c128.
  • Minor improvements to toggling full screen mode.  Action happens in same thread as renderer.
  • Disable repaint of bottom panel when in exclusive Full screen mode.  Fixes flickering of bottom put of screen during disk activity when -Dsun.java2d.d3d=false option is used at command line.

14 July

  • Minor improvements to sound output, latency and game loop.
  • Improved responsiveness of portal screen when emulator first starts up.

5 June

  • TestBench UI can execute interactive tests without locking the testbench player.

3 June

  • Some minor improvements to 6510 CPUport behaviour.

2 June

  • Updated German language support by Bodo

31 May

  • Added 256KB geoRAM support. Relevant VICE test programs pass.  Works with GEOS V2

29 May

  • ... and must add C1581 to manual tests as well.  Fixed C1581 reading of disks that was broken in release published 5 minutes ago.  Fortunately I caught that one quick. Hopefully all the recently introduced bugs that TestBench didn't pick up have been fixed now...

28 May

26 May

  • Fixed bug introduced 13 May that prevented tape fast loaders fromworking.
  • Moved Expert Cartridge controls from menu to the cartridge control panel

19 May

  • C64 cartridge:- Set vic bank to 0 on hard reset. Fixes display when swapping from one cartridge to another cartridge thatuses ultimax mode.

18 May

15 May

14 May

  • Included some snapshot information in preview window.

13 May

  • Improved rescaling of snapshot screen previewimages.
  • Enabled screen preview of snapshots.

10 May

  • Snapshots can be loaded from command line and automatically start with the correct computer without explicitly including computer model as an argument.

8 May

  • Fixed RESTORE key for VIC 20

6 May

  • Fixed minor bug with CIA CNT and SP trigger on reset.

5 May

  • Updated c128, c1571, and c1581to use FSDIR line correctly

25 April

  • Create computer objects and application for the first time only when required.
  • Close applications when suspending a computer.
  • Blank main screen during startup of computer.

21 April

  • Fixed a timing issue with VDC busy flag introduced at the start of this year.  VDC version of Risen from Oblivion starts the raster bars at the correct time in the music again. 
  • Updated VIA port latch behaviour.
  • Minor adjustments to Timer B values when in shift mode.
  • Fixed masking of VIA timer B instead of Timer A when Timer B underflow occurs when in shift mode
  • Removed some debugging output from VIC 20

20 April

  • Added a delay to the grounding of VIA1 CA2 pin when it is set to input for VIC20.  All of the VIASR register tests programs that read the state of the interrupt register pass. Only 2 tests fail now in the VIC20 suite of Shift Register test programs...

19 April

18 April

  • Even more fixes to VIA shift register functionality :)
  • Added -snapshot command line option
  • Fixed REU test programs being able to automatically  execute with the Testbench GUI.
  • More fixes to VIA shift register functionality.

16 April

  • Fixed runtime error that could occur when attaching cartridge image in c64 mode on c128 via command line options. c128c64 testbench script does not get stuck on test CPU\cpuport\initvalue.crt

15 April

  • Fixed issue with  c128 entering monitor when resetting after auto-loading program via command line option.
  • Minor adjustment to cia values after loading prg files. Shift register test programs pass when loaded and run via menu for c128 in c64 mode.
  • (Build 20180415.1627) Updated fast serial behaviour at startup for C128.  Some more c128c64 tests pass using the testbench scripts.
  • added -exitscreenshotvicii to support c128c64 testbench script screenshots.
  • added -go64 command line option for c128c64 testbench script support.
  • Fixes to behaviour of portal screen.
  • write sane values into VDC registers on hard reset.  c128 can load C64 cartridges from command line
  • Fixed a whole heap of issues with emulator when starting using command line options.
  • -debugcart option disables loading of config file that can mess with testbench scriptresults.

14 April

  • Fixed return value of unused VICII registers.
    ..\testprogs\C64\autostart\defaults\test.crt - ok
  • Emulator default settings value properly setwhen starting prg file from command line.
    ..\testprogs\CIA\shiftregister\cia-icr-test2-continues.prg - ok
    ..\testprogs\CIA\shiftregister\cia-icr-test2-oneshot.prg - ok
  • Started implementing shift register for MOS6522.  viasr00, viasr00exp, viasr04, viasr04exp, viasr08, viasr08expviasr0c, viasr0cexp, viasr1c, and viasr1cexp from the VICE test repository for the VIC 20 pass.

13 April

  • Added 32K option for VIC20 testbench tests.
  • Implemented some optimisations to SID waveform calculations.

12 April

  •  (Build 20180412.2222)Fixed bug introduced in last uploaded version that killed samples in Coma Light 13.
  • Fixed adjustment of frame rate display.
  • Testing of VIC 20 when using testbench scripts saves screenshots at VICE default resolution  
  • More SID fixes.  All SID testbench exitcode tests pass.
  • Take 2... Fixed ring modulation for SID (for real this time) :)
  • Fixed Noise register write-back discussedin VICE bug #746 https://sourceforge.net/p/vice-emu/bugs/746/
  • Fixed ring modulation for SID
  • Fixed read value of OSC for MOS8580. SID detection works in programs that use it. 

11 April

  • GUI version of testbench skips test if it can't find test program.
  • Fixed timeout values for C128 testbench tests.

10 April

  • Fixed error with screenshot on exit when emulator attempts to exit before first screen was rendered.
  • Emulator exits with error code 1 if timeout occurs with testbench scripts.
  • Fixed a bug that could sometimes corrupt loaded disk images because of a resource conflict with the disk viewer.  Seems to only affected disks automatically loaded by command line options including with testbench.  All disk scan tests from the VICE test repository always loads the disk image correctly now.

9 April

  • Full support for testbench scripts still WIP.  A few tests fail in script version that pass in GUI version orwhen executed as a standalone program. Most seem to work as expected though. :)
  • added new commandlinememory option.  -memory <8k|all>  Testbench scripts work for VIC 20.
  • Re-enabled GUI version oftestbench for VIC 20. 
  • added VIC 20 command line options in preparation for testbench script support.

    -unexp, -3k, -8k, -16k, -24k, and -full
    memory expansion size

    -ntsc, -pal
    VIC model
  • added extra command line options to support Testbench scripts

    -console
    Disable GUI

    -debugcart
    S
    ets screen to VICE defaults and exits with exit code when Testbench flag is written to.

    -exitscreenshot <filename> 
    Saves screenshot to filename on exit.  If debugcart is trigger, screenshot is delayed 250,000 cycles. File format should include extension .png.  Screenshots work in console mode.

    -limitcycles  <n> 
    Exit emulator after n cycles

    -warp
    enable warp mode

    note: Screenshots for NTSC needs some fixes to work properly with testbench scripts.  They work fine in the Testbench GUI.  I should have this fixed in the next release.

8 April

  • Fixed reflection warning with jInput libraries for Java 9+. 

7 April

  • Renamed jar file of Z64K NewUI to Z64K.jar for this and future versions
  • Fixed bug that could crash machine monitor when cpu PC overflows.

6 April

  • Fixed issue where disabling sound chip sent emulator to warp mode.

4 April

  • Adjust size of waveform displayed in SID analyser to best fit the window.  Removed addition of DC values with display of voice output.

3 April

  • SID analyser displays data in warp mode as long as sound chip is enabled.
  • Smoother rendering in SID analyser
  • Warp mode no longer disables sound chip.  Warp mode only mutes the sound.Sound chip can be disabled via volume control. When disabled the sound chip registers still get updated but does not calculate any of the waveforms or produce any sound.

2 April

  • SID Analyser.
    Can toggle muting of SID 1 voice 1-3  with F1,F2, and F3.
    F8 displays voice output prior to going to filter (default).
  • Improved GMod2 cartridge logic.

1 April - New UI

  • M93C86 EEPROM implemented. GMod2 cartridges can read and write to EEPROM.  M93C86 included in snapshots.  Sam's journey includes saved games in snapshots.
  • Added read only GMod2 cartridge support.  Sam's journey cartridge works.  Saving of game state can only be done with snapshots at this stage.
  • Minimum main frame size set to 500x400 pixels and resize screen to single pixel mode is disabled so control buttons are always viewable on top panel.
  • Included a resize to 4:3 aspect ratio button on top panel.
  • Moved console output button to Help menu

31 March - New UI

  • Update VICII snapshot module to support VICIIe.  Snapshots for C64 are backwards compatible.  Snapshots for other emulators will be backwards compatible starting with first official release.
  • More improvements to C128 snapshots.
  • C128 can resume snapshots created by C64 emulation.

30 March - New UI

  • Some improvements to C128 snapshots. Note: snapshots for all emulators are still in development so snapshots created with the beta versions might not be compatible with the final release.  I will make sure starting from the official release of Z64K snapshots are backward compatible.
  • Prevented assembler and pasting text from being able to crash emulator when invalid values are used.

29 March - New UI

  • Fixed some behaviour of Testbench when stopping/skipping tests.
  • Application menu populates correctly when suspending
  • Fixed bug with Atari 2600 that was stopping it from starting and crashed the emulator.

Archived old emulators.

The new UI of Z64K has all the features of the old emulators so I have archived the old obsolete emulators.  Only thing missing from new UI is scanlines and adaption motion blending which needed major improvements anyway.  Also Testbench is missing the filters of the old version but I will be doing a major overhaul of that in the new version.  As is it does the job that is intended.  Things that still need to be done before formal release are:

  • Stable snapshots for C128
  • Testbench support for other emulators. I have a version that can run standalone which I will upload in furtue but it's not very usefuluntil I create proper plugins for other emulators.
  • Fix known errors with assembler that can crash the emulator.  It is caused by the assembler putting invalid values into emulation memory.
  • Controls for SID Analyser
  • General improvement of GUI for all apps including SID Player
  • Manual

28 March - NewUI

  • Fixed issue with Testbench not resetting to correct palette after finishing tests.
  • Enabledtest times in Testbench.
  • Included JInput support to VIC 20
  • CPU multiplier enabled for VIC 20 and C64

27 March - New UI

  • Fixed sticky menus
  • Enabled border mode select for VICII and VIC
  • Changed palettes to use existing VPL files from VICE.
  • Enabled palette selector.
  • Enabled Luma selector.
  • Enabled Remote Monitor. 

The above points means I'm almost finally ready to remove the old obsolete emulates and release the first official version of Z64K! One major item I need to fix before this can happen is stable C128 save states.

Version 1 is created using  Java language level 7 so requires JRE 7 or better. 

For future note when I start working on version 2, it will be created using language level 8 features so will require JRE 8 or better to run.

25 March - New UI

  • Pressing/Releasing ALT key always resets keyboard ports.  Fixes some issues with programs thinking commodore key is stillpressed when using keyboard for hard reset.
  • Added some buttons to enable/disable 2nd screen and to toggle VICII<==>VDC for C128 
  • Enabled keyboard joystick as defaultfor VIC20
  • Added some more languages to the language list

24 March - New UI

  • Undid 4 pixel NTSC change to VIC 20.  I need to confirmation from a user with NTSC VIC 20 position of NTSC screen...
  • Enabled SID Analyser (Previously known as SID Panel). 
    Top 3 windows are the SID voices, 4th Window is volume control, 5th Window is combined output.

    OUTPUT
    F5=Waveform
    F6=Envelope (default)
    F7= Accumulator
    F9=Disable Output(Pause). Must use one of the above options to re-enable.

    CONTROLS
    F11=Decrease samples/second
    F12=Increase samples/second
  • Improved snapshots. C128 snapshots still needs a lot of work.  Updated cartridge image included in snapshot (EasyFlash). 
  • New EasyFlash cartridges defaults bootswitch to off position.

22 March - New UI

  • Started work on a new Cartridge User Interface.  Can create, write and save EasyFlash cartridges. 

19 March - New UI

  • Implemented Am29F040 for EasyFlash.  Easyflash passes torture tests.

18 March - Version 2 of D030 tester

14 March - NewUI

  • Added simple DigiMax support.  Available under Cartridge Menu. Mapped to DE00.

13 March - NewUI

  • Individual models of drives areonly created as needed. Even more improvements to startup time of emulators.
  • Fixed reading of VIA ports in drives. SSDPCM2 V3 - 16khz does not freeze after first logo animation now.

12 March - New UI

  • Some fixes to EasyFlash Cartridge.  Lemmings works now.
  • Re-enabled disk animation on C128

11 March - NewUI

  • Fixed spacing of debug output of 6502 instructions in machine monitor.
  • Drives are only created when needed.  Faster initialisation time for all emulators that use disk drives.

10 March - NewUI

  • GUI changes - Language is now a menu item. (I will be adding other languages soon.)
  • Machine monitor memory dump improvements
  • Screen resizing improvements
  • Improved mouse responses when right clicking in machine monitor to toggle breakpoints
  • Improved mouse response to initiate disk viewer.

24 February

4 February - NewUI

  • Updated mapping of VDC RAM to match real C128 when register 28 is set to 16KB mode.

29 January - NewUI

  • Included some screenshot options via capture tab in screen settings
  • D030 tester updated to Version1.3 (see link below)

26 January - NewUI C128 VICIIe

  • output black during VICII VBLANK.
  • Can be seen in updated D030test ==>d030tester.zip

23 January - NewUI

  • More improvements to phase shifting ofcolor using VICIIe testbit. 

22 January - new D030 test suite

15 January - NewUI

  • Improvements to phase shifting color using VICIIe testbit.  d030 test program updated.

14 January - NewUI

  • fixed VICII PAL screenshot dimensions for use with TestBench
  • More improvements to VICIIe d030 testbit. Fixed bug that can very rarely cause VICIIe running in 2Mhz mode corrupting databus. D030 test program updated. 

11 January - NewUI

  • Improved VICIIe testbit behavior.  Skips correct amount of rasters when set. d030test.prg

9 January - NewUI

  • fixes to assembler.  Correctly handles zeropage instructions.

6 January - NewUI

  • added some command line options.  I haven't tested all of these so let me know if they don't work.
    Z64.jar computer  [-options]
    computer = atari2600|c64|c128|vic20
    options
    -8 diskimage (.d64, .g64, .d71, or .d81 file)
    - reu 512K
    -filename (.prg, .d64, .g64, .d71, or .d81 file)
    -pal
    -ntsc
    -ntscold
    -ciamodel model  (0 or 1) 0=6526, 1=6526A
    -sidenginemodel model (256 or 257) 256=6581, 257=8580
    -cartcrt cartimage (.crt)

3 January 2018- NewUI

  • Added some file drag and drop functionality for PRG, D64, D71, G64, and D81files.

31 December - NewUI

  • Saving and creation of new Disk Images enabled.
  • Fixed crash that occurred when attempting to use multiple drives

29 December - New UI

  • Fixes to C128 2Mhz mode interrupt timing. C128 world record displays raster bars at correct locations. (VICE displays one character too late) http://csdb.dk/release/?id=98201

21 December - NewUI (see 9 October entry for more information)

  • Fixed VDC 40 column mode sometimes not displaying.
  • Vertical adjust value is now implemented for VDC interlace screen modes as well as non interlaced screen modes.
  • New low level interlace detection.  The rendering of screens detects valid interlace signal instead of being forced into interlace modes when the relevant register bits are set. 

9 December - NewUI

  • Added ability to select custom ROMs. (see 9 October for link and more info)

4 December - C128 Beta and NewUI

  • Fixed a bug introduced with update on 5 August which wouldn't allow tapes to load with the Commodore 128 in both C128 and C64 modes.

26 November - New version of NewUI - C1581 works!!!

21 November - New version of NewUI emulator uploaded. (see below) 

  • Note: c1581 emulation is incomplete.  Computers can communicate with the c1581 via serial port but I still need to complete WD1770 emulation for reading/writing disk functions. .d81 images can only be previewed at this stage in the diskviewer.

24 October - All emulators

  • Fixed Weave renderer.  Interlaced modes for C128 and VIC20 shows correctly again.

9 October - NEW UI

  • New UI is almost ready to replace the current emulators!

    The only things missing from new UI now that are available in the currently released versions are as follows.  Note this list does not include things I still need to fix such as full C128 snapshot support.
    • Luma coefficient selector (added 27 March 2018)
    • CPU multiplier (enabled 28 March 2018)
    • Palette selector (added 27 March 2018)
    • Border Mode (enabled 27 March 2018)
    • SID Panel (enabled 24 March 2018)
    • Test Bench Configuration options (backend implemented)
    • Scan lines and Motion Adaptive Blending
    • JINPUT support (done for c64&c128 11/10/17, VIC 20 28 March 2018)
    • Remote Monitor (added 27 March 2018)
    • Disk RPM
    • Machine Monitor (is implemented but missing some commands)
    • C128 Function ROMs (added 10 December)
    • Full Language support
  • Most of the above items will require little effort to finalise so I should be able to release the new UI soon for comprehensive testing. I will provide a complete list of the new features then as well. A couple of the new features included are ALT+DELETE and ALT+INSERT to copy/paste text (automatically detects if source text is all in upper case or combination lower/upper case), and dynamic screen resizing. :)

1 October - Change Log and New UI

  • Archived change log into changelog.doc
  • I've uploaded an updated version of the new UI (see below).  It's getting much closer to be able to totally replace the currently released emulators! :) 

30 September - C64 BETA

  • Set raster to correct value when loading snapshots.  Fixes loading of snapshots that rely on exact raster position. eg IK+. I discovered bug while implementing snapshots for new UI. See below for link to new UI.

23 September - NEW UI

  • I've had a few requests on the progress of the new UI so rather than sending out individual copies I have uploaded a temporary version for download.  I will update the downloadable version occasionally but I won't be announcing any of the updates or features until I am ready to release it. I warmly welcome feedback and questions while I develop the new UI.  The new UI is functional and reasonably stable but is not fully tested yet.

17 September - All emulators

  • Fixed issue with latest version of Java where frame could loose focus after toggling between full screen and window modes.
  • NEWS ***UPDATE on progress of new UI***  I am very close to having all the features of the current emulators in the new improved UI so I am hoping to release it in the next few weeks for wider testing.  If you would like a preview of it please send me a message and I will send you a copy now. :)


28 August - News: No new updates ready to be released yet but I'm busy working on a new UI that will allow execution of any of the emulators from one jar file.  New features to the UI will include volume control, improved file handling interface, and individual screen controls for multiple screens including video signal information(C128).

5 August - C128 Beta

  • version b - Fixed a bug with FSDIR. It was the reason why the upgraded version of CP/M 3.0 PLUS would not load. It's a bug that has made me scratch my head for ages, but now that I found it, it was so obvious what the problem was. :p
  • Updated some fast serial logic.  Upgraded version of CP/M 3.0 PLUS works.