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.
Continue reading →