Sven Krasser’s Blog

Musings on technology, security, and sundries.

Building a Commodore 64

The C64 has a special place in my heart. My uncle bought one of the initial breadbin versions when it came out in the 80’s, and my cousins taught me programming in BASIC on it. I was hooked on computing. Later, I got my first computer at home as well, a C64C—or C64-II as it was marketed in Germany.

Nearly four decades later, the C64 community is still going strong. There is even new commercial software released for the platform to this day. There are a number of ways to experience the C64 today. The quickest route is by emulation, e.g. using the VICE emulator. I’ve used VICE and the ACME cross-assembler to write a small game a few years ago (ACME is the same assembler used for my breadboard 6502 project). Cloanto sells C64 Forever, which wraps VICE in a convenient launcher and comes with a bunch of software to try out.

Another option is to buy THEC64, which also emulates the looks of the C64. Under the hood, it uses an ARM CPU to run an emulator. There’s also THEC64 Mini in a smaller form factor and without a working keyboard (I own a Mini, mainly to play California Games). Outside of emulation, there are FPGA/ASIC-based implementations such as the C64DTV. The MISTer is built around a Cyclone V FPGA that can be configured to implement numerous retro platforms, including the C64.

You can also still find original C64s on sites like Ebay. Often, some attention is required such as replacing the capacitors on the circuit board or getting a new power supply as the original power supplies have established a reputation of failing while frying the attached system. Another route to an almost-original system (for varying degrees of “original”) is to build one using modern replacement parts, which is the focus of this post. There are three main areas to consider: the circuit board, the case, and the keyboard. Let’s take a look!

The Circuit Board

The most original option for a new circuit board is the SixtyClone. The SixtyClone is a blank PCB based on actual PCBs used in C64s; three different board revisions are available. A SixtyClone board needs to be populated with components. For some components, there are modern replacement options. For example, there are numerous projects building replacements for the SID sound chip or for the PLA (which implements the glue logic including memory decoding). Other components need to come from original donor boards, such as the VIC-II video chip. In addition, suitable replacements for the original DRAM chips used by the C64 may be hard to come by.

The second option, the C64 Reloaded Mk2 board, addresses some of these problems. It’s populated with all basic components including modern SRAM chips and suitable glue logic. But, it needs to be populated, using ZIF sockets, with some chips. Again, chips like the SID have modern replacement options, but others require obtaining an original part.

The third option is the Ultimate64. The Ultimate64 is an FPGA-based implementation of a C64, thus all logic in the custom chips is implemented on the FPGA and no original chips are required. The board offers support for optional SID chips though—some purists prefer the sound of an original analog SID chip over a digital reimplementation. The Ultimate64 also adds a virtual 1541 floppy disk drive and other conveniences such as HDMI video output. As an FPGA-based solution, it is arguably the least “original” but the only one that does not require any old parts (that are in limited supply and will fail over the years).

The Case

Back in 2014, Dallas Moore managed to snatch up the original injection molds for C64C cases at an auction and started a kickstarter to make more cases. A batch of cases in colorful options was produced. Since then, the molds were sold, and Pixelwizard, a German company selling retrocomputing products, is now selling new cases made from these molds (with different, less colorful options). The cases are shipped in boxes mimicking the design language of original C64C packaging, which is a nice extra touch. Also, Pixelwizard sells mounting hardware for boards and keyboards that fits the cases.

The second option is Perifractic’s BrixtyFour case made out of Legos. The Lego case allows mounting an actual PCB and keyboard, and it is the closest one can get to a new breadbin-style case.

Lastly, Plexilaser offers laser-cut cases made of acrylic, either fully transparent or in transparent gray, that fit the Ultimate64 circuit board. These cases are a new design unrelated to original C64 cases.

The Keyboard

The part that remains a pain point is the keyboard. The easiest route is to get an old original one (e.g. from Ebay). There are a couple of projects, such as the MeC64, that focus on coming up with a completely new replacement. The most promising one is the MechBoard64, which uses Cherry MX or compatible switches. Its creator, MtnBuffalo, sold a small batch but has no plans to manufacture keyboards on a continuous basis and hence released all the instructions and files needed to create a MechBoard64. It requires making a PCB, cutting and bending an aluminum bracket, and creating a custom stabilizer for the unusually long space bar of the C64.

Both the MeC64 and the MechBoard64 use 3D-printed adapters that allow using original C64 keycaps on the MX switches. There are also two Indiegogo campaigns to make new keycaps. The Phase 5 campaign produced batches of keys but has fallen into radio silence since. The second campaign by Jim Drew from CBMSTUFF is blocked on factory availability due to the ongoing pandemic. In addition, Perifractic also offers a Lego-based keycaps solution, the BrixKey4 keycaps set.

There’s another project by FeralChild64 on Github to create Cherry MX-compatible keycaps that don’t require adapters. Custom-printed MX keycaps can be ordered from various vendors, so they are easily available. There are a few challenges with this approach that FeralChild64 notes. First, finding a matching space bar in the right size is tricky. Second, the stems are not centered for 1.5U keys such as the function or shift keys while they are for MX keys. Thus, the positioning of the switches on e.g. the MechBoard64 doesn’t work well for wider MX-style keys.

Putting it all Together

With all of this sorted, I’ve decided to build a newish C64, and components are on route to Los Angeles. Here’s what I settled on:

  • The Ultimate64 as the heart of the system—I like the idea of having all modern parts with modern interfaces such as HDMI while still having a hardware-based implementation (not an emulated one). The Elite version is currently not in stock, so I ordered a regular one.
  • A breadbin-gray case from Pixelwizard—my first choice would have been a transparent one, but those are currently sold out.
  • An original C64 keyboard ordered from Ebay—I’ll take a look at other options once I have a running system. The keyboard already arrived, and you can see it in the picture above.

If you have any input, suggestions, or spotted inaccuracies, then ping me on Twitter. More to come, check back for updates.