Firmware for Ultimate 64 and Ultimate 64 Elite


Firmware for the U64 / U64E, version 1.37 - Dated: 2020-12-05

Click here to download
This release has again some significant changes and improvements over 1.34 / 3.8. The following bullet list gives an overview of the features and fixes. Below the items, a short explanation is added.
  • exFAT support
  • Cartridge Port compatibility improvements
  • Hyperspeed file system access through UCI
  • Extended CBM file system support (D71, D81 and DNP)
  • Full REL file support from SoftwareIEC
  • REL file copy between file systems, including FAT with preservation of record length property.
  • Consistent filename convention for storing CBM files on FAT with proper conversions.
  • Free block count added to IEC directory listing.
  • F5 menu restructuring
  • Configuration menu key mapping made more consistent with file browser
  • RAM Disk addition
  • ACIA (6551 emulation) improvements
  • Added fast serial / burst mode wire patches in U64 (optional connections between CIA and SRQ / DATA line.)
  • Addition of additional analog video modes: PAL60 and NTSC50.
  • Slightly improved key mapping for USB keyboards.
  • Fixed double keypress in non-overlay menu, when using USB keyboard.
  • Implemented key repeat for USB keyboards.
  • Many, many bugfixes

exFAT support: Until earlier firmware versions, it was only possible to use FAT16/FAT32 formatted USB disks. Version 3.9 adds the support for the newer exFAT. Many, if not all newer USB sticks are factory formatted with this file system. This brings the maximum disk size to 2TB. Note that 64-bit LBA is not supported.

Hyperspeed file system access through UCI? What does this mean? It means that the virtual file system can now be accessed using a driver that talks to the Ultimate in I/O space, in a CBM compatible way. [UCI stands for Ultimate Command Interface] In order to unleash this hyperspeed, a customized C64 kernal is available. This kernal includes the driver to map one of the device IDs to the virtual file system of the Ultimate. Loading speeds in excess of 200+ blocks per second are feasible. As long as kernal calls are used to access the ‘drive’, this is fully compatible with existing software. Note that this kernal also supports the @ and $ commands, to give drive commands and show the directory of any drive, including the device-ID that routes to the UCI.

Extended CBM file system support means that all (D64, D71, D81 and DNP) images can now be created and are fully writable. Although there is no hardware emulation yet of the 1571 and 1581 drives, the support for the file systems is there. In combination with the hyperspeed kernal driver, this is already very useful, even without hardware emulation of the drives.

REL file support has been added, and in such a way that works regardless of the underlying file system. Thus, it does not matter if the REL file is located on a FAT filesystem, or inside of a CBM disk image. The way the REL file is stored is dependent on the file system, including the side sectors and super side sector for CBM systems. Copying REL files between these file systems is therefore also possible, and the side sectors are created as needed.

Block Access (U1, U2 and B-P commands) have been added. When the current directory is (inside) a CBM disk image, these block commands can be used to read / write random sectors of the disk.

A new file naming convention has been introduced, which makes lossless conversion between CBM and FAT filesystems possible, up to 16 chars. It may not always give pretty results, but it is consistent.

The F5 menu (Task Menu) had grown into an unorganized mess. This has now been restructured and categorized, so it has become a lot easier to find the item and is thus quicker to use. Similarly, the key mapping of the configuration menu has been made more consistent. The cursor keys now always navigate through the menus. Use '+' and '-' to change the value. (I have to get used to this myself!)

In addition to the support for USB disks, an additional RAM disk was added. This is very useful for storing temporary disk images, updater files and so on. It can also be used for an even better file system performance. The size of this temporary disk is 16 MB and does not conflict with REU memory. It is truly additional. In a future version, this temporary storage will be used to implement remote commands that require data to be uploaded, such that remote commands will be more consistent with actions from the file browser, since all actions will be based on the file system.

Cartridge port compatibility improvements. Since the introduction of the turbo mode, the cartridge compatibility of the U64 was flawed. This is simply due to the necessary changes in system architecture to make the turbo mode even possible. In this system core version (1.37), some of the compatibility issues have been solved. In particular, cartridges that toggle the EXROM# / GAME# lines per cycle or even during a cycle are now handled correctly again. This affects also the IDE64 module. In order to get this to work, the cartridge bus mode should be set to "Dynamic", which basically means that the U64 will carefully 'probe' the cycles on the cartridge bus to see how the cycle completes. By cleverly caching these results, turbo mode is applied automatically in memory regions that do not need to run at 1 MHz. This does not mean that cartridge compatibility is now guaranteed for all modules, but it is a good step.

The additional analog video modes can be used to run PAL software on analog monitors, such as the 1702, or run 60 Hz software on PAL only screens. In addition to this, the cyan color was adjusted in the analog signal, as it was too green.

The ACIA improvements fix the problem that occurs when an NMI interrupt is missed. In addition, the DCD and DSR lines can now generate interrupts, like on a real 6551. The modem emulation supports pulsing these lines when an incoming connection occurs.

The list of bugfixes is too long to describe here. Some of them were minor; others would eventually hang up the ultimate application; memory leaks… Many thanks to Bart van Leeuwen, who thoroughly tested repeated file system access through UCI.


Firmware for the U64 / U64E, version 1.34 - Dated: 2020-06-21

Click here to download
Added features since 1.28
  • Turbo Mode... The 6510 CPU can now be run faster than 1 MHz.
  • Support for Nordic Power cartridge
  • Faster application processor for smoother file browsing experience
  • Significant lower noise floor when using real SIDs
  • From MarkusC64: For Geos 64 - Download D41, D71, D81 and DNP files directly from the file browser into a RAMDISK of the same type.
  • From MarkusC64: For Geos 64 - Save RAMDISK to USB in the appropriate format, directly from the file browser
  • Added freeze function with USB menu (F11 key)
Fixes since the last withdrawn version 1.33:
  • RESTORE key to boot with default config: Implemented
  • Bootloop problem with flashed CRT: Fixed
  • C64 Hangup problem with reading debug register (D7FF): Fixed
  • C64 Hangup when disabling SID socket: Fixed
  • ARMSID config not working when UltiSid is in the same range: Fixed
  • CIA2 I/O (UserPort) not working: Fixed
  • Sprite collision in Antiriad: Fixed
  • RGB mode sync polarity: Fixed
  • PIO register fault: Flimbo's Quest now working! (Thanks to Tom Roger Skauen, for his debugging efforts!)
Bug fixes / improvements since 1.28:
  • 6522 VIA fixes from gyurco/master
  • Fixed 1541 floppy formatting - sometimes caused read errors
  • Fixed an issue that may have caused network instability
  • Issue #62: FTP server does not check if a directory exists when changing directory
  • Issue #109: Soft IEC seq file reading issue with GET#
  • Issue #121: 1541-C ROM issues (Track 0 sensor issue)
  • Issue #131: SuperGames-Cartridge issue
  • Issue #132: Builtin FC3 monitor hangs from freezer
  • Issue #136: Epyx Fastloader fails sometimes (Example: Space Taxi)
  • Issue #147: Data loss on eject if save fails
Known issues:
  • Corrupted disk access with some loaders, when bus bridge is not on "Quiet" mode, and badlines are disabled. We know this affects Geos MP3. Still under investigation.

Firmware for the U64 / U64E, version 1.28 - Dated: 2020-03-29

Click here to download
Added features since 1.24
  • Debug stream over Ethernet, which logs CPU / VIC access real time, also possible to log C64 CPU and 1541 CPU alongside. U64 only.
  • ACIA (MOS 6551) emulation
  • Modem Layer emulation (6551 <-> LAN), supporting both outbound and inbound connections
  • REU load / save commands from UCI, using the preload settings
  • File append mode for Software IEC.
  • Support for SuperGames cartridge
Bug fixes:
  • Issue #121: 1541C ROM seemed faulty. Track 0 sensor reconnected.
  • Issue #119: Fixed network host name illegal chars.
  • Issue #127: Fix for Epyx Fastload at boot U64 (consider DMA to stop discharging the cap.)
  • Fix for KCS cart at boot of U64
  • Fixed DMA load delay, to let 1541 initialize before running PRG
  • Fixed 1541 address decoding (RAMBOard was faulty!)
  • Fixed Closing telnet connection caused U64/U2+ to freeze.
  • Stability issues fixed in configuration manager.
  • Corrected NMI / IRQ routing for internal cart. (U64)
  • Timing corrections to make external 1764 REU work. (U64)
  • Some U64 factory test improvements. Invisible to you.

Planned work for the upcoming release:

  • CPU Speedup
  • Keystrokes to quickly enable / mute audio channels
  • A sample project for the ESP32, which can be used for others to port stuff like modem emulation.

Firmware for the U64 / U64E, version 1.24 - Dated: 2019-10-13

Click here to download

Difference with previous release V1.21 / V1.22 (Initial Elite release)

  • Changes / Improvements to the U64 FPGA
    • Added Drive B activity to the possible Case LED outputs
    • Increased the number of UltiSIDs from two to eight
    • Fixed Jailbar issue on HDMI output
    • Fixed a Ledstrip issue that slipped into one of the previous versions
    • Improved EMC performance
    • Added Paddle Swap for the U64 Elite
    • Increased application CPU performance
  • Changes to the Ultimate 64 application
    • Added support for 8-SID configuations
    • Split the U64 configuration settings for better overview
    • Added possibility to load / save and reset configuration settings
    • Added the possibility to have temporary configuration settings
    • Added choice of which UltiSID causes the LED strip to light up
    • Added a Visual SID addressing editor
    • Added detection and real time configuration of FPGASID
    • Added detection and real time configuration of SwinSid Ultimate
    • Added detection and real time configuration of ARMSID
    • Fixed screen title when connecting to the machine through Telnet
    • Added joyswap to the configuration menu
    • Option to use Final Cart V1/V2 re-enabled
    • Upgraded the OS to a newer version

Unreleased work:

  • Flashing the ESP32 WiFi module from the file browser menu
  • "Drive C" - software 1581 emulation by Scott Hutter

Thanks go to Chris, Marty and Wilfred for providing various SID replacements to test with. Thanks to MarkusC64 for reviewing the FPGASID configuration code and providing useful feedback.

Firmware for the U64 version 1.21 - Dated: 2019-06-23

Click here to download

Differences with previous release V1.20

  • Based on the Ultimate-II+ firmware Version 3.5a
  • Fixed UltiSid reset; should zero all registers to silence it
  • Fixed debug register for regression testing
  • Fixed directories that match file type extensions


Firmware for the U64 version 1.20 - Dated: 2019-06-19

Click here to download

Differences with previous release V1.18

  • Based on the Ultimate-II+ firmware Version 3.5
  • Added features:
    • Real time streaming VIC video data over Ethernet
    • Real time streaming audio data over Ethernet
    • Added commands on TCP port to enable/disable these streams
    • Added commands to enable/disable emulated drives, over UCI
    • Added possibility to write to D64 images from the menu (e.g. copy PRG files into it).
    • Added DE00 and DF00 ranges as possible options for SID socket decodes
    • Printer emulation now supports color!
  • Improvements to VIC:
    • Sprite collision timing solved
    • Sprite to background collision problem solved
    • Sprite expansion timing corrected, also in combination with multicolor
    • Sprite retriggering fixed
    • Border color change timing one adjusted by one pixel
    • Various improvements to pass emufuxx0r tests. (incl. 50-pixel wide sprites)
    • Fixed loading sprite data when VIC is read AEC=1
    • Sprite timing fixed for NTSC
  • Improvements to CPU:
    • ANE (B) made to work.
    • Implemented SHA, SHS, SHX, SHY and LAX #imm
    • CPU PIO register floating inputs fixed.
  • Improvements to SID:
    • Improvements to ADSR envelope generator (fixes missing notes in e.g. Hawkeye 2018)
    • More realistic values for SID filter resonance
    • Added volume control for the SID digis
    • LowPass boost in sid mixer.
    • Improved anti-aliasing on resample filter in PAL mode
  • Improvements on SID player
    • Built-in SID player now supports MUS files as well (including stereo tunes)
    • Added support for toggling screen on/off in Sidplayer with S key.
    • Added support for song length in SID header.
    • Fixed correct SID model selection for SIDFX boards
    • Various other bug fixes
  • Other machine fixes:
    • U64 speaker volume fix.
  • Other bug fixes
    • Another bug in the network stack that caused stack corruption and random crash
    • Copying a file from a container now restores extension
    • Fixed issue of copying file from .t64 files
    • Added 'Enter' option for .t64 files
    • User Interface improvements / fixes
    • Fixed telnet connection - removing header upon connect (fixes random copy actions)
    • Changed default hostname to match target
Thanks to:
  • David Horrocks for very useful input about VIC sprite handling and custom test programs
  • Rene Garcia for this addition of color to the printer emulation
  • Wilfred Bos for his improvements to the SID (and now MUS) player
  • Scott Hutter for added UCI commands
  • Martijn Wieland for his U64_Streamer PC application Download here: https://www.tsb.space/projects/u64-streamer/
  • Chris Verheijen for his critical ear on UltiSID.

Firmware for the U64 version 1.18

Click here to download

Differences with previous release V1.10

  • Based on the Ultimate-II+ firmware Version 3.4c
  • NTSC mode has been fixed, from 262 lines to 263 lines per frame.
  • SID autoconfig: If there is just one SID, give it the full address range.
  • Speaker volume setting added for U64.
  • Various fixes in the VIC sprite generator. This fixes many demos.
  • Preparations added for Elite version of the U64 board
  • Adjusted analog colors, thanks to Matt Barszcz
  • Fixed sprite collision register timing.
  • Fixed line 137 to 000 rollover. This fixes Lunatico three layer scroller
  • Added LED controls for the two Case LEDs
  • Fixed tape record to tap file
  • Fixed various CIA issues. This fixed the Expert Cart unfreeze problem. Thanks to David Horrocks
  • Refined IRQ timing of the 6502 CPU core.
  • Added AC generator to support UserPort cable
  • Fixed the order of Flash images, to make SS5 NTSC and TAR NTSC work.
  • Fixed RES bit in $D016, should be writable. Thanks to David Horrocks

Changes to the application, 3.4c, compared to previous 3.4:

  • Fixing homedirectory function. Added possibility to use wildcards.
  • Fixed file extensions. Makes songlengths load again.
  • Significant improvements to the Software IEC module.
  • Updates to SID player:
    • Implemented pause feature (using space bar)
    • Pause will now also mute 2nd and 3rd SID chip
    • Fixed SID version check and SID header relocation
    • Fixed display issue when SID model or clock is unknown
    • Updated version of player and copyright year

Firmware for the U64 version 1.10

Click here to download

Differences with previous release V1.0B

  • Based on Ultimate-II+ firmware Version 3.4
  • NTSC mode has been added. The switch can be found in the U64 Specific Settings menu
  • Added rudimentary support for USB Floppy disks (not completely done yet; as removal of floppy is not yet detected)
  • USB problems with low/full speed devices fixed; no more bus hang-ups in these cases. (No full HID support just yet..)
  • VIC collision problem fixed.
  • Improved 1541 compatibility; weak bit areas and floppy speed zones are now properly supported.
  • Various improvements 'under the hood'

Firmware for the U64 version 1.0B

Click here to download

Differences with previous official release V1.06

  • SID has been improved quite a bit.
    • The internal SID is now consistently referenced as "UltiSID", to avoid confusion with other SID products.
    • Various bugs, like the phase of the filters, and the routing of Voice 3 when the VOICE3OFF bit was set have been corrected.
    • A number of SID filter curves have now been implemented and can now be chosen from the configuration menu.
    • The resonance can be changed to two different settings.
    • Combined waveforms can now be selected between 6581 and 8580.
    • Internal bus charge in the SID is now emulated.
  • The 6502 core has been improved. All 'stable' illegal instructions are now fully operational:
    • SLO $07 $17 $03 $13 $0F $1F $1B
    • RLA $27 $37 $23 $33 $2F $3F $3B
    • SRE $47 $57 $43 $53 $4F $5F $5B
    • RRA $67 $77 $63 $73 $6F $7F $7B
    • SAX $87 $97 $83 $8F
    • LAX $A7 $B7 $A3 $B3 $AF
    • DCP $C7 $D7 $C3 $D3 $CF $DF $DB
    • ISC $E7 $F7 $E3 $F3 $EF $FF $FB
    • ANC $0B
    • ANC $2B
    • ALR $4B
    • ARR $6B (including decimal mode!)
    • SBX $CB
    • SBC $EB
    • LAS $BB
    • LAX $AB is stable with constant 00.
  • U64 settings are now restored when the machine resets. This resets the SID settings after using Auto Config + internal SID player.


Ultimate 2+

Firmware for the Ultimate-II+, version 3.9 - Dated: 2020-12-05

Click here to download
Added features since 3.7 / 3.8
See description of U64 updates. All non-U64 specific things are also available in the U2+

Firmware for the Ultimate-II+, version 3.7 - Dated: 2020-03-29

Click here to download
Added features since 3.6
  • ACIA (MOS 6551) emulation
  • Modem Layer emulation (6551 <-> LAN), supporting both outbound and inbound connections
  • REU load / save commands from UCI, using the preload settings
  • File append mode for Software IEC.
  • Support for SuperGames cartridge
Bug fixes:
  • Issue #121: 1541C ROM seemed faulty. Track 0 sensor reconnected.
  • Issue #119: Fixed network host name illegal chars.
  • Fixed DMA load delay, to let 1541 initialize before running PRG
  • Fixed 1541 address decoding (RAMBOard was faulty!)
  • Fixed Closing telnet connection caused U64/U2+ to freeze.
  • Stability issues fixed in configuration manager.

Firmware for the Ultimate-II+, version 3.6

Click here to download

Differences with previous release V3.4c

  • General Usability and Compatibility
    • Added possibility to load / save and reset configuration settings
    • Added the possibility to have temporary configuration settings
    • Improvements to the 6502 CPU for improved 1541 compatibility
  • Improvements to SID player
    • Built-in SID player now supports MUS files as well (including stereo tunes)
    • Added support for toggling screen on/off in Sidplayer with S key.
    • Added support for song length in SID header.
    • Fixed correct SID model selection for SIDFX boards
  • Various other bug fixes
    • Copying a file from a container now restores extension
    • Fixed issue of copying file from .t64 files
    • Added 'Enter' option for .t64 files
    • User Interface improvements / fixes
    • Fixed telnet connection - removing header upon connect (fixes random copy actions)
    • Changed default hostname to match target

Firmware for the Ultimate-II+, version 3.4c

Click here to download

Differences with previous release V3.4(a)

  • Fixing homedirectory function. Added possibility to use wildcards.
  • Fixed file extensions. Makes songlengths load again.
  • Fixed missing SID voices in U2/U2+
  • Significant improvements to the Software IEC module.
  • Updates to SID player:
    • Implemented pause feature (using space bar)
    • Pause will now also mute 2nd and 3rd SID chip
    • Fixed SID version check and SID header relocation
    • Fixed display issue when SID model or clock is unknown
    • Updated version of player and copyright year

Firmware for the Ultimate-II+ version 3.4 Click here to download

Differences with previous release V3.3(a)

  • Added rudimentary support for USB Floppy disks (not completely done yet; as removal of floppy is not yet detected)
  • USB problems with low/full speed devices fixed; no more bus hang-ups in these cases. (No full HID support just yet..)
  • Improved 1541 compatibility; weak bit areas and floppy speed zones are now properly supported.
  • Various improvements 'under the hood'


1541 Ultimate-II

Firmware for the Ultimate-II, version 3.7 - Dated: 2020-03-29

Click here to download
Added features since 3.6
  • ACIA (MOS 6551) emulation (In dual drive version ONLY)
  • Modem Layer emulation (6551 <-> LAN), supporting both outbound and inbound connections (In dual drive version ONLY)
  • REU load / save commands from UCI, using the preload settings
  • File append mode for Software IEC.
  • Support for SuperGames cartridge
Bug fixes:
  • Issue #121: 1541C ROM seemed faulty. Track 0 sensor reconnected.
  • Issue #119: Fixed network host name illegal chars.
  • Fixed DMA load delay, to let 1541 initialize before running PRG
  • Fixed 1541 address decoding (RAMBOard was faulty!)
  • Fixed Closing telnet connection caused U64/U2+ to freeze.
  • Stability issues fixed in configuration manager.

Latest firmware for the 1541 Ultimate-II is version 3.6

Click here to download

Differences with previous release V3.4c

  • General Usability and Compatibility
    • Added possibility to load / save and reset configuration settings
    • Added the possibility to have temporary configuration settings
    • Improvements to the 6502 CPU for improved 1541 compatibility
  • Improvements to SID player
    • Built-in SID player now supports MUS files as well (including stereo tunes)
    • Added support for toggling screen on/off in Sidplayer with S key.
    • Added support for song length in SID header.
    • Fixed correct SID model selection for SIDFX boards
  • Various other bug fixes
    • Copying a file from a container now restores extension
    • Fixed issue of copying file from .t64 files
    • Added 'Enter' option for .t64 files
    • User Interface improvements / fixes
    • Fixed telnet connection - removing header upon connect (fixes random copy actions)
    • Changed default hostname to match target
  • Dropped features:
    • Support for the ISO9660 filesystem.
    • The audio variant no longer supports recording TAP files. The dual drive version does.
Firmware for the 1541 Ultimate-II, version 3.4c Click here to download

Differences with previous release V3.4(a)

  • Fixing homedirectory function. Added possibility to use wildcards.
  • Fixed file extensions. Makes songlengths load again.
  • Fixed missing SID voices in U2/U2+
  • Significant improvements to the Software IEC module.
  • Updates to SID player:
    • Implemented pause feature (using space bar)
    • Pause will now also mute 2nd and 3rd SID chip
    • Fixed SID version check and SID header relocation
    • Fixed display issue when SID model or clock is unknown
    • Updated version of player and copyright year

Firmware for the 1541 Ultimate-II version 3.4 Click here to download

Differences with previous release V3.2

  • The USB2LAN problem is now fixed. This bug took me over 50 hours to find and fix.
  • Improved 1541 compatibility; weak bit areas and floppy speed zones are now properly supported.
  • All other under the hood fixes that were done for U2+ and U64 that apply for U2 are backported to the U2 as well.