MCL64 – World’s Fastest Commodore 64

Well at least *one* of the the world’s fastest Commodore 64’s 🙂

There are also the SuperCPU and Chameleon FPGA platforms which are either extremely expensive or unobtainable. The MCL64 board coupled with the Teensy 4.1 cost less than $50!

When I locate most of the C64’s memory ranges inside of the micro controller and disable cycle accurate mode (1Mhz native mode) the 6510 is emulated at over 600Mhz on a dual-issue superscalar processor, so it’s no surprise that we can achieve such a speed improvement!

The project is now on GitHub: https://github.com/MicroCoreLabs/Projects/tree/master/MCL64

I am basing the speed increase on a small BASIC test which counts the “jiffies” during a loop of code. This is the method used by the YouTube host “8-Bit Show and Tell” during his demonstration of the Super CPU Commodore 64 accelerator board:

https://www.youtube.com/watch?v=x9clez2fxxw

In cycle-accurate mode my MCL64 measures the same results as the host, but when comparing the Super CPU accelerated to 20Mhz and the MCL64 in its accelerated mode, the MCL64 is roughly 2X faster than the Super CPU (in raw accelerated mode). The Super CPU has an additional “optimized” BASIC acceleration mode which further speeds up the hardware; however if the MCL64 implemented this optimization it would most likely again be much faster than the Super CPU.

This is the YouTube demonstration of the Super CPU running in its 20Mhz acceleration mode:

This is the MCL64 running in its accelerated mode which is more than 2X faster than the Super CPU:

Small update on 12/12/2021: I created a stripped-down version of the MCL64 code which eliminates all of the 6502’s extraneous reads and writes and tried the BASIC test code once again. This time the test took around 7 jiffies! (The first pass which yielded 525 was using this optimized code without acceleration enabled)

Here are a few C64 cartridge images which I loaded into the MCL64:

MCL64 – World’s Fastest Commodore 64

MCL64 – MOS 6510 Emulator works in Commodore 64

I received my MC64 PCB in the mail today which I plugged it into my Commodore 64 and was happy to get some decent results!

The MCL64 is a port of my MCL65+ project to the MOS 6510 pinout so it can be used as a drop-in replacement for the Commodore 64’s CPU. It uses my 6502 emulator which runs on the Teensy 4.1 which is an Arduino-like board which runs at 600Mhz+ and has 1MB of memory. The 6510 emulation can either be cycle accurate or it can run significantly faster than the original processor!

I am able to boot to BASIC and run a print “Hello World” program, so one of the next steps will be to try running some of the C64 cartridge images directly from the processor’s on-board RAM. I will probably need to add some code to support the C64’s bank switching internally to do this.

I will post the source files on GitHub shortly.

So far so good!

MCL64 – MOS 6510 Emulator works in Commodore 64