VirtualC64 V2.0 beta


New in Version 2.0 beta 1

  • Milestone reached: The remaining Objective-C code has been ported to Swift (hence version number 2.0)
  • The debugger has been reworked. A new SID panel has been added and the CPU panel has gotten an additional "Trace Log" view.
  • The disk inspector has been reworked completely.
  • reSID has been updated to the version used in VICE 3.2.
  • Fixed several bugs in the SID bridge which is the internal API for accessing the reSID library.
  • Added support for the D-Pad on Sony's Dualshock controller.

VirtualC64 V1.11


New in Version 1.11

  • Mouse support has been added. Three different mouse models are emulated (Commodore 1530, Commodore 1531, and Neos).
  • Both sound engines from VICE 3.1 have been ported to VirtualC64 (ReSID in version 2010 and FastSID).

VirtualC64 V1.10


New in Version 1.10

  • This release contains several compatibility improvements. My special thanks goes to David Horrocks, the author of Hoxs64. By peeking into his source code, I was able to rule out a couple of incompatibilities in my own code.
  • The eagle soft loader bug has been resolved. Maniac Mansion and Zak McKracken load fine now.
  • Fixed a bug that caused the emulator to crash when clicking an empty row in the disk user dialog.
  • Fixed a bug that caused a press of the TAB key not to be recognized.

VirtualC64 V1.9


New in Version 1.9

  • The time-travel feature has been reworked. In addition to the old auto-saving feature, the emulator now supports user-saved snapshots. Four new toolbar icons have been added:
    • Rewind : Reloads the latest auto-saved snapshot
    • Revert : Reloads the latest user-saved snapshot
    • Snap : Takes a snapshot
    • Browse : Opens a window showing all snapshots taken
  • Emulation accuracy of the CPU and the two CIA chips has been improved. The emulator now passes most CIA tests from the VICE test suite.
  • Sony's Dualshock 4 (2nd Gen) is now a supported controller.
  • The emulator runs about 10% - 15% faster than the previous release.

VirtualC64 V1.8


New in Version 1.8.1

  • Fixed a bug that prevented the texture upscaler to work on some machines
  • Milestone reached: VirtualC64 passes VICE test vicii_reg_timing
  • Added support for type 19 cartridges (Magic Desk)
  • Processor port and time of day clock emulation have been reworked and made more compatible

New in Version 1.8

  • The Keyboard Manager has been reworked. In the keyboard menu, you can now choose between symbolic and position-based assignment. When using symbolic key assignment, the emulator tries to map a pressed key using its ASCII representation. Up to now, the emulator always used this type of assignment. In position-based mapping, a Mac key is directly connected to a key on the C64 keyboard. The selected assignment can be adjusted individually in a user dialog that can be opend in the keyboard menu.
  • Added an option to skip the mount dialog if a D64, T64, PRG, P00, G64, or NIB file has been opened. When selecting this option, files of these types will be converted to a disk immediately and inserted automatically in the floppy drive.
  • The VC1541 implementation needs to be improved. In order to simplifiy the current code, the option to put the floppy drive in an accellerated, but less compatible read-only mode has been removed.
  • Support for type 18 cartridges (Zaxxon, Super Zaxxon) has been added
  • Fixed a bug that caused the emulator to crash when a TAP file had a .T64 suffix.
  • Fixed a bug that caused the CPU to freeze when a snapshot was loaded into an emulator that contained certain cartridge data.

VirtualC64 V1.7


New in Version 1.7.2 and 1.7.1

  • Fixed some bugs regarding drag and drop, loading d64 files and key recording

New in Version 1.7

  • VIC timing is now very close to VICE (Thanks, Fabio!)
  • Cartridge handler has been rewritten. VirtualC64 now supports several non standard cartridges such as Simons Basic, Final Cartridge III and Comal 80. The Epxy Fast Loader also seems to work, but does not deliver the expected speed increase. This is probably due to the current VC1541 emulation which needs to be improved.
  • Peeking CIA1 register $DC00 sometimes returned a wrong value in case of keyboard events. This prevented some games (Pitfall II) to detect pressed keys. As a side effect, the $DC00 fix causes a lot of interference between joystick and keyboard events. Therefore, joystick emulation keys are disconnected from thekeyboard by default. This behavior can be changed in the emulator setup window.
  • All mount dialogs have been redesigned and simplified. A new mount dialog for cartridges has been added.
  • The media dialog has been replaced by a new disk inspector that lets you observe the GCR encoded data of each track. The functionality of the old media dialog has been moved to three new top level menus (Disk, Datasette, and Expansion)
  • Large portions of the GUI code are now implemented in Swift.

VirtualC64 V1.6


New in Version 1.6

  • Metal code has been ported to Swift and internal texture size bumped up to 2048x2048 texels.
  • Texture post-processing has been separated into two phases which can be controlled independently in the emulator preferences window. It is now possible to combine a pixel upscaling algorithm with a texture filtering algorithm which are both run as seperate compute kernels on the GPU. With EXP and xBR two commonly known pixel scaling algorithms have been implemented.
  • VIC-II compatibility has been improved further by Fabio Ritrovato (Thanks, Fabio!).
  • The VICE color palette has been updated with new RGB values. It is now the default palette.
  • Text snippets can now be dragged and dropped into the emulator window.

VirtualC64 V1.5


New in Version 1.5.2

  • Code base has been ported to XCode 9.
  • Joystick manager has been reimplemented in Swift.
  • A C64 font is now used in the directory preview window.
  • Fixed a bug that caused the emulator to crash when a window with an open debug panel was closed.
  • Fixed a sprite priority issue (Thanks, Fabio!).

New in Version 1.5.1

  • Fixed a bug that prevented audio output when certain external speakers were connected.

New in Version 1.5

  • Code architecture is now compatible with Swift. Two Swift extensions have been implemented in this release: Touch Bar support for latest MacBook Pros and a reimplemented audio interface.
  • Mouse cursor disappears automatically in fullscreen mode.
  • Standard key combinations for entering and leaving fullscreen mode are now working properly.
  • Fixed a bug that prevented some special keys from being used for joystick emulation.
  • Fixed a bug that caused some automatically taken snapshots to be damaged.
  • Fixed a bug that caused some drive memory data missing in snapshot files
  • Audio playback now terminates properly when a breakpoint or an illegal instruction is reached.

VirtualC64 V1.4


New in Version 1.4.2

  • Fixed Lorenz-test LDAB which was broken since 1.0rc4.
  • Fixed a bug that held down the NMI line permanently when pressing RunStop/Restore. As a result, pressing this key combination only worked once.
  • The keyboard mapping has been extended. The ESC key is now mapped to 'RunStop' and the TAB key to 'Restore'.
  • The internal code base has been cleaned up.

New in Version 1.4.1

  • The new VIC code has been optimized for speed. In warp mode, the emulator is about 10% faster now.
  • Debug menu option "Hide sprites" was broken. This has been fixed.

New in Version 1.4

  • This release contains important VIC II compatibility improvements. Demo "Deus ex Machina" by Crest and Oxyron (2000) runs rather flawlessly now. Furthermore, VirtualC64 passes VICE tests spriteenable1, spriteenable3 (mostly), spriteenable4, and sprite0move.
  • VirtualC64 can now read NIB image files. Please note that a lot of floppy disks provided in NIB format contain copy protection mechanisms which are likly to be incompatible with the current drive emulation.
  • Fixed a bug that prevented the synchronization timer to stabalize in some situations.
  • Starting with V0.9.9.3, VirtualC64 was no longer able to read T64 files created by CONV64 as these files contain corrupt header information. Such files can be read again.

VirtualC64 V1.3


New in Version 1.3

  • VirtualC64 emulates a virtual datasette supporting the TAP format. To insert a virtual tape, simply drag and drop a TAP file into the main emulator window.
  • A new toolbar icon has been added that opens a media dialog. The dialog provides information about the currently inserted disk, tape, and the attached expansion port cartridge.
  • (Hopefully) fixed a bug that sometimes caused audio playback to stop when a saved state was dragged from the time travel drawer into the emulator window.

VirtualC64 V1.2


New in Version 1.2.1

  • VirtualC64 utilizes a different approach to grab the background wallpaper. In previous versions, the code failed when the wallpaper was not pointing to a single image but a folder, causing the emulator to crash during initialization.
  • Texture drawing is no longer triggered by a displayLink (which was common in OpenGL based apps). The drawing code has been moved inside MTKView::drawRect (which is the recommended method for Metal based apps).
  • By pressing ALT-s, a screenshot is quick-saved to file Desktop/Untitled.png (feature request #213).

New in Version 1.2

  • VirtualC64 can now read G64 image files. Please note that a lot of floppy disks provided in G64 format contain copy protection mechanisms which are likly to be incompatible with the current drive implementation.
  • Pasting text snippets into the emulator via CMD-V was broken in 1.1. This has been fixed.

VirtualC64 V1.1


New in Version 1.1.3

  • Fixed a synchronization issue that kept the internal texture buffers unitialized on some machines.
  • Internal texture size has been doubled (noticable when CRT or blur filter is active).

New in Version 1.1.2

  • Fixed a synchronization issue that caused the emulator to crash on some machines when a second emulator window was open.

New in Version 1.1.1

  • Now, VirtualC64 issues a warning message and safely terminates on Macs not supporting Metal.

New in Version 1.1

  • VirtualC64 goes Metal. Old OpenGL code has been removed.
  • GPU code is now capable of texture post-processing. Some proof-of-concept filters such as blur, sepia, and simple CRT have been added.
  • In fullscreen mode, it is now possible to retain the proper screen aspect ratio.
  • Resurrected the "Flash file into memory" option which was broken in V1.0.

VirtualC64 V1.0


VirtualC64 emulates a Commodore 64 personal computer on your Macintosh. I started the project in 2006 to create a virtual CPU environment that can be used as a demonstrator program in a first year or second year course on computer engineering. Over the years, I have added more and more features and emulation accuracy has increased steadily. Although the emulator still does not reach the awesome compatibility of VICE, VirtualC64 can call itself a full-grown Commodore 64 emulator by now.