Benchmarking the Ultimate 64 Hyperspeed Kernal

About a year ago Gideon updated the Ultimate firmware with support for a new C64 Kernal which allows for DMA loading and saving using the standard LOAD and SAVE Kernal routines. I’m a bit behind on this as this has been out for a while, but I finally got around to testing the load and save times using the CBM Disk Transfer Benchmark tool I wrote in 2020.

Basically what Hyperspeed does is hook the soft-IEC into the Kernal LOAD and SAVE routines but uses direct memory access from the Ultimate 64 (and 1541 Ultimate 2+). As you’ll see, this provides for a near-instantaneous load time, due to the fact that the data is transferred directly into memory, bypassing the IEC bus entirely. The obvious down-side is that it requires a custom Kernal, which is not a big deal, and that it only works for the standard Kernal load and save routines, which is a pretty big deal since that essentially rules out anything that needs real 1541 emulation to work.

Update: I’ve added additional testing data. It was suggested to me that I would get even faster scores than I originally posted if I used the Ultimate 64 RAM disk, which resides in system memory rather than attached storage. This is indeed the case. Also, I repeated the same tests on a 1541 Ultimate-II+ and included those scores in the tables. The 1541 U2+ is not as fast but still beats any other option for load speeds by far.

Testing was performed on an Ultimate 64 in NTSC mode and a 1541 Ultimate-II+ on an NTSC Commodore 64, both using the 3.10a Ultimate firmware with the matching UCI KERNAL.

The bottom-line speed comparison

With attached USB storage, Ultimate 64 Hyperspeed is 26 times faster at saving than the baseline 1541, and a whopping 562 times faster loading than the baseline 1541 with stock Kernal. Using the internal RAM disk is even faster: 102 times faster at saving and a blistering 1124 times faster loading than original hardware.

In fact, it is likely faster than this. Hyperspeed loaded 44,956 bytes (177 blocks) from the Ultimate 64 RAM disk in less than one decisecond (<100 milliseconds). The smallest time interval the TOD clock can return is one decisecond. Once we get faster than 300 milliseconds, these differences are not really possible to measure with precision. 1124 is the maximum possible DTB load score. For all intents and purposes, Hyperspeed can achieve instantaneous load times from the internal flash memory utilizing the UCI KERNAL.

A real C64 with a 1541 Ultimate-II+ cartridge is no slouch either. The U2+ can be configured to use the UCI KERNAL matched with Soft-IEC storage just like the Ultimate 64. For attached USB storage, I measured a 11x save score and 161x load score. The internal RAM Disk of the U2+ increased these to a 13x save and 225x load score.

Read on for the detailed comparison tables.

Load Speed Comparison

Disk Transfer Benchmark for Hyperspeed (Loading from attached USB storage)

Load Bytes per Second

System Load Bytes per Second Load Time DTB Load Score
1541 403 01:51.5 1x
SD2IEC 502 01:29.5 1x
1581 507 01:28.6 1x
1541 w/ Epyx Fastload 2121 00:21.2 5x
1541 w/ Warp Speed 3017 00:14.9 8x
1541-II w/ JiffyDOS 3746 00:12.0 9x
1541 w/ Super Snapshot 5 4163 00:10.8 10x
1541 w/ Action Replay 5 5352 00:08.4 13x
1541 w/ Retro Replay PAL 3.8q 5352 00:08.4 13x
1581 w/ JiffyDOS 6515 00:06.9 16x
SD2IEC w/ Epyx Fastload 7136 00:06.3 18x
SD2IEC w/ JiffyDOS 9175 00:04.9 23x
1541 w/ DolphinDOS (U64) 9366 00:04.8 23x
1541 w/ Transwarp 0.84 16056 00:02.8 40x
1541 U2+ Hyperspeed (USB) 64223 00:00.7 161x
1541 U2+ Hyperspeed (RAM Disk) 89912 00:00.5 225x
U64 Hyperspeed (USB) 224780 00:00.2 562x
U64 Hyperspeed (RAM Disk) 449560 00:00.1 1124x

Save Speed Comparison

Disk Transfer Benchmark for Ultimate Hyperspeed (Saving to attached USB storage)

Disk Transfer Benchmarks: Save Bytes per Second (Including Hyperspeed)

System Save Bytes per Second Save Time DTB Save Score
1541 w/ Epyx Fastload 342 02:11.5 1x
1541 370 02:01.5 1x
1581 749 01:00.0 1x
SD2IEC w/ Epyx Fastload 870 00:51.7 2x
SD2IEC 871 00:51.6 2x
1541-II w/ JiffyDOS 925 00:48.6 3x
1541 w/ Super Snapshot 5 1170 00:25.4 5x
1581 w/ JiffyDOS 1905 00:23.6 5x
1541 w/ Action Replay 5 2443 00:18.4 7x
1541 w/ Retro Replay PAL 3.8q 2470 00:18.2 7x
SD2IEC w/ JiffyDOS 2775 00:16.2 8x
1541 w/ Warp Speed 2900 00:15.5 8x
1541 U2+ Hyperspeed (USB) 3978 00:11.3 11x
1541 U2+ Hyperspeed (RAM Disk) 4683 00:09.6 13x
1541 w/ DolphinDOS (U64) 5352 00:08.4 15x
U64 Hyperspeed (USB) 9565 00:04.7 26x
U64 Hyperspeed (RAM Disk) 37463 00:01.2 102x

It doesn’t really seem like an apples-to-apples comparison with real hardware speed loader options like the Epyx Fast Load or Super Snapshot, or even Kernal replacement options like JiffyDOS. But the data is interesting nonetheless, and if you are doing mostly standard file access and have a 1541 Ultimate or U64, it’s the obvious setup to go with. Still, if you have to keep the door open for compatibility and don’t want to deal with changing your Ultimate settings all the time, sticking with JiffyDOS is probably the way to go.

[Update: I now have a dedicated page I’ll be keeping updated for C64 Speed Loader Comparisons.]

How to set up Hyperspeed

Using Hyperspeed involves configuring your Ultimate for IEC file access and using an alternate KERNAL ROM. It took me a couple of tries before I figured out all the relevant settings and pointed the IEC directory into the D64 image I was using for the benchmark. The Highlander has a good instructional video on doing this, which I will link below. One thing he doesn’t mention is that you have to be sure to enable the Command Interface for it to work.

We’ve come a long way since the Epyx Fast Load.

Leave a Reply

Your email address will not be published. Required fields are marked *