StevenCombs.com

Logo

Blog posts and video from Steven as he “COMBS” through the minutia to discover tech, retro-computing, physical computing, gadgets and sci-fi.

retroCombs Playlist

Commodore Plus/4 Series

17 December 2021

Patch the Original Commodore 65 ROM for the MEGA65, Xemu, Dev Kit, or Nexys4

by Steven B. Combs, Ph.D.
tags: mega65 - c65 - rom

For those of us expecting our MEGA65 by Christmas, I have bad news. The MEGA65 is delayed until March! If, like me, you were on the short list to receive a MEGA65 before the end of 2020, looks like it will be the Easter bunny making the delivery instead of Santa. Here’s the official announcement from the Discord channel:

HO HO OH NO! SANTA IS IN QUARANTINE! But we make sure the Easter Bunny gets his booster vaccination. Due to the current situation it is impossible for us to send out any MEGA65s in December. We are holding our breath for March. Please bear with us! tl;dr version: We have been fighting shortage of electronic components for months and mostly succeeded. But now, last minute, seemingly trivial things like cardboard for your lovely printed boxes are unavailable! We most probably cannot ship before March 2022 and are truly sorry for this. The good news: We will then be able to ship larger quantities at once, which means you might face close to or no delay at all. We will keep you updated and continue doing what we all, you - the community and the MEGA65 team, believe in.

Am I disappointed? You bet I am; however, there are positives to this announcement (says the guy who always has a glass half full). Those who were on the second round of shipments will receive their MEGA65 at about, or on, the same date as the original first 400. If you want to receive one of the first shipments, stock is still available so you can be a part of the initial roll-out.

MEMBERSHIP: I now offer retroCombs memberships from $1 (PET level membership) to $20 (MEGA65 level membership) that include levels in between for all budgets (VIC-20, C64, Plus/4, and C128). If you’d like to support my content and get access to my Discord server along with other cool freebies, check out each level at https://www.buymeacoffee.com/retroCombs.

While we wait, we have plenty of MEGA65 projects to dive into. I’ve shared earlier how to setup a MEGA65 on a Nexys4 for less than $300 and install the free Xemu emulator on a Mac.

In these projects, I mention the closed ROM for the MEGA65 is available to purchasers of a MEGA65 or Dev Kit and those who’ve not purchased a Dev Kit must “technically/legally” use the open ROM; which is not yet ready for prime time.

Since the open ROM needs time to bake (the last update was four months ago), using it means mixed results. We can search and download the original Commodore 65 ROM and then patch that file with tools created by the MEGA65 team until the MEGA65 arrives. In this post and companion blog post, I’ll show the process and we will see if we can go back in time and load the original in development ROM in the emulator, Nexys4, and MEGA65 Dev Kit.

Before you read the rest of this post, take a look at my companion video below.


Table of Contents


Companion YouTube Video

Title: Patch the Original Commodore 65 ROM | Use with a FPGA, Dev Kit, or Xemu

In the video below, I show how to find, download, patch, and use the original C65 ROM with Xemu, a Nexys4, and on a MEGA65.

Video Errata

[2021-12-17] Tayger shared the following: “…In the Version history of the diff files detail view you will find BDF and RDF patch file for the same version.” Let’s look at that in detail:

  1. On the C65 ROM diff file page, scroll down to All Versions.
  2. Click the v on the right side of the page. The RDF and BDF version history will display as shown in the image below:

    RDF and BDF version history for ROM Patch

[2022-05-15] Dan Sanderson posted a comment below noting changes since the original post. I have noted the changes.

Below are the links I mention in this blog post and companion video. All Amazon links are affiliate links. I’d like to thank everyone for your support of the blog and the YouTube channel by starting your purchases here!

  1. Hyperkin Trooper 9 pin retro joystick
  2. MEGA65 - (MOST PROBABLY) THE BEST COMPUTER lgblgblgb/xemu: Emulations
  3. Digilent Nexys A7-100T: FPGA Trainer Board
  4. SanDisk 32 Gb microSD Card with Adapter
  5. Install the MEGA65 on a Nexys4 or A7 FPGA | Build your own MEGA65!
  6. Run a MEGA65 on your Mac using Xemu
  7. Get Legal C65 ROMs

The Problem with the Open ROM

The Open ROM is an interesting project. A group of developers are working to create a license free ROM that includes the updates from the MEGA65 Closed ROM and its own unique features. This project is a work in progress and even a simple program like the one below does not work:

10 PRINT "RETROCOMBS";
20 GOTO 10

This caused many complaints from readers and viewers who wanted to install Xemu or build a Neyxs4 MEGA65. I get it. The Nexys4 is a $300 project and not having a working ROM does not scream, “value proposition.” Xemu without a working ROM is a simple exercise in frustration. Let’s fix that!

Quick Commodore 65 Introduction

The prototype Commodore 65, formerly known as the C64 DX, never entered production in 1991. A successor to the C64/Plus/4/C128, the C65 was to be the 8-Bit computer to rule them all, including a super speedy 3.54 MHz CPU and graphics that rivaled the Commodore produced Amiga. Unfortunately, the C65 never saw the light of day beyond the believed to be 200 prototype machines which leaked out in a clearance sale at the end of Commodore’s life.

History Reference:

Obtain Original C65 ROM

Owners fortunate enough to get an original C65 prototype have dumped the ROM file contents and shared them online. I’ll not link directly to the ROMs I found; however, below are steps to get your search started.

NOTE: As an owner of a MEGA65 Dev Kit, I own a license for the C65 ROM. I’ll share more on this topic below. [UPDATE: 2022-05-15] It has come to my attention that the C65 ROM is now part of Cloanto’s C64 Forever. I recommend every Commodore fan support this project and keep these ROMs available for all. I purchased the Amiga Forever package years ago and it is nice to know that I’m legal with the many emulators I’ve used. My one complaint, the software they include is for Windows.

  1. Open a browser and navigate to your favorite search engine such as Google or Duck Duck Go (preferred).
  2. Search for 911001.BIN [UPDATE: 2022-05-15] 920282.BIN.

    NOTE: The file name of the .BIN file is the date of the last official room; October 1, 1991.

  3. If you find a page that has multiple C65 ROMs, download one with the specific name listed in step 2.
  4. Make a copy of the file with the name ` 920282_archive.BIN` in case you need a copy of the original ROM file.
  5. Place the 920282.BIN file on your desktop or in another easy to find location.

With an original ROM available, it is time to patch it and add the new functions of the MEGA65.

WARNING: Downloading and patching the C65 ROM files is a legal sticky-wicket. I share this process to educate the community; however, in order to use the original ROM, you must own a MEGA65, Dev Kit, or an original C65 (you have one in your closet, right?). Cloanto owns the rights to C65 ROMs [UPDATE: 2022-05-15] but does not include them in their C64 Forever license. Because of this legal issue for an abandoned 30-year old computer ROM, I take no responsibility for your legal/illegal use of original C65 ROMs.

Use the Original ROM

I was curious to see if the original ROM would work in the emulator and on the two FPGA hardware options, the Neyxs4 and the MEGA65, and would modern MEGA65 software work with the original ROM? Are the MEGA65 developers honoring and respecting what came before in their upgraded version via compatibility? Let’s find out.

Xemu

Xemu uses the Xmega65 emulator. I’ve shared how to set up and use Xemu on a Mac in an earlier post; however, I will again share the process to use the original C65 ROM file before I test it:

  1. Place the original ROM file on the desktop (or other easy to find location). There is no need to rename this ROM file.
  2. Load the Xemu emulator, xmega65.
  3. Right-click in the xmega65 window and a menu will appear.
  4. [UPDATE: 2022-05-15] From the menu, Disks | SD-card | Update files on SD image . The select your ROM image file window will appear as shown in the image below:

    xMEGA Menus

  5. Navigate to the ROM file location.
  6. Select the ROM file and click OK. The prompt below will display:

    System files on your SD-card image seems to be updated successfully. Next time you may need this function, you can use MEGA65.ROM which is a backup copy of your selected ROM. MEGA65 emulation is about to RESET now!

  7. Click the OK button and xmega65 will boot, as shown in the image below:

    *xmega65* with MEGA65 licensed ROM

Success! The original ROM does work with the software emulator. Let’s test it using a demo disk I’ve prepared from modern software created by various MEGA65 developers. As you will see in the companion video, every single title I threw at the original ROM worked and even Commodore 64 mode works! There is a high-level of compatibility between the original ROM and the updates the MEGA65 team is making to complete and add features. Bravo!

I have to admit, this put a huge smile on my face. When the original ROM booted, I felt as if someone magically transported me back to the Commodore headquarters in 1991 to experience the C65 in prototype form for the first time.

Nexys4

Now that we know the original ROM works with software emulation, will it work with the Nexys4 or MEGA65 Dev Kit FPGA? The process to update the ROM is the same for both FPGA boards:

  1. Remove the SD Card from the FPGA.
  2. Place the SD Card into a computer.
  3. Rename the original ROM file MEGA65.ROM.
  4. Copy the ROM file to the SD Card.
  5. Eject the SD Card.
  6. Insert the SD Card into the FPGA.
  7. Turn on the FPGA.

In a pleasant surprise, the original ROM works on the Nexy4, as do several modern software titles.

Dev Kit

Finally, I tested the original ROM on my MEGA65 Dev Kit. I suspected the same result as the Nexys4 and was not disappointed.

Patch the Original C65 ROM

Using the original ROM is a vast improvement over the Open ROM; however, if you want the latest features of the MEGA65, the development team provides and option to patch the original ROM to include all the latest features of the Closed ROM. Here’s the process:

Download Patch Tools

There are a couple of ways to patch the original ROM; however, I’ll share the easiest GUI method using M65 Connect. Since M65Connect is available for Mac, Linux, and Windows, everyone can patch the C65 ROM. Let’s download a copy of M65Connect:

  1. Use a web browser and visit the MEGA65 FileHost at https://files.mega65.org.
  2. Click the Files button in the upper-left corner of the page.
  3. In the File search… box, type M65Co and a list of M65Connect versions will display.
  4. Click the download button || in the row that matches the operating systems you use.
  5. Install the application.

We are now ready to patch the original C65 ROM.

Download the C65 ROM Diff File

  1. Return to the Files area of the FileHost in your browser.
  2. In the File search… box, type ‌diff files and the ROM patch file named C65 ROM diff files will appear.
  3. Click the download button || and save the .BDF diff file in the same location as the original C65 ROM file.

Let’s patch the original ROM with the diff file.

Patch the ROM

M65Connect makes patching the original C65 ROM a point and click process.

  1. Load M65Connect.
  2. From the main menu, select File | Patch ROM File and the Patch ROM file dialog box will appear as shown below:

    Patch ROM File dialog box

  3. Select the Source ROM File by clicking the folder button 📁 to the right of the text box to display a file selection dialog box.
  4. Navigate to the location of the original C65 ROM file named 920282.BIN and select.
  5. Select the ROM Patch File by clicking the folder button 📁 to the right of the text box to display a file selection dialog box.
  6. Navigate to the location of the diff file with a name similar to 920262.BDF and select.
  7. Verify the names in the text boxes are correct.
  8. Click the Save patched ROM as… button and the Save patched ROM file as… dialog box will appear.
  9. Save the file as MEGA65.ROM and press the Save button and the new file will be saved to the same location as the two original files.

The resultant MEGA65.ROM file is now ready to use.

Patch Updates

When the MEGA65 team releases an update to the DIFF file, use the same steps found in the previous section to update either the original or the recent updated ROM. The MEGA65 development team announced that we will soon be able to apply the DIFF updates from the MEGA65 by copying the diff file to an SD Card and use the Freezer on a MEGA65 to patch the ROM file.

Use Patched ROM

Using the process outlined earlier to update the ROMs for both the software emulation and FPGA, it is time to see if the patch ROM works.

Xemu

Once again, I loaded my MEGA65-DEMOS.D81 disk image and checked C64 mode. The patched ROM worked without issues in emulation, but will it work on FPGA hardware?

MEGA65 and Nexys4 FPGA

Repeating the steps earlier to place the ROM file on the SD card for the FPGA, I loaded my MEGA65-DEMOS.D81 disk image on both the Nexys4 and the MEGA65 Dev Kit. As suspected, everything worked without a hitch.

Final Thoughts

  1. In my experience, using a patched ROM provides the same experience as using the Closed ROM, making this a great option for anyone wanting to get started with the MEGAA65 in emulation or with an FPGA.
  2. I should have shared this technique immediately after my posts on the Xemu emulator or Nexys4 FPGA. Apologies to those frustrated using the open ROM option on these platforms.

Join the Fun

Don’t miss the retro-computing fun. SUBSCRIBE to my YouTube channel and check out my other posts.

Help make this content better! Leave your comments, corrections, additions, and thoughts in the comments below. You can email me at retrocombs@icloud.com. Thanks for reading and if you are inclined, please let others know about the blog using the hashtag #retroCombs.

🕹️ retroCombs, OUT!

comments powered by Disqus