The Commodore 64 Gets a Graphics Card Upgrade

More than 40 years after its initial release, you can now significantly upgrade the Commodore 64's graphics with this cartridge-based GPU.

Nick Bild
3 months ago β€’ Retro Tech
Displaying high-resolution graphics on a Commodore 64 (πŸ“·: Christian Forstreuter)

Sometimes that aging computer sitting beneath your desk is just not up to the task that you are asking of it. That can be fixed, of course. By installing a new CPU, or perhaps another stick of memory, or some specialized hardware like a GPU via a standard expansion interface, the performance of that old computer can get a major boost. But upgrading a computer was not always so easy as it is today.

Flash back to the early days of the personal computing revolution. Machines of that era, like the Commodore 64, Tandy Color Computer, and the ZX Spectrum, were lacking industry-wide standards and interfaces to simplify upgrades. You might be able to buy a cartridge with a few kilobytes of RAM without too much trouble, but if you wanted to upgrade the CPU or graphics chip, you would not only need to get out your soldering iron, but you might also need to significantly rearchitect the entire system.

For this reason, seeing substantial upgrades to these computers is quite rare. A Commodore 64 is a Commodore 64, more or less. But engineer and retro computing enthusiast Christian Forstreuter has demonstrated that it is possible to give the Commodore 64 a major graphics update by just plugging in a cartridge. This custom graphics card leverages technology from the Yamaha MSX2+ personal computer, which was first released in the late 1980s.

Only about six years may have passed between the initial release of the Commodore 64 and the Yamaha MSX2+ computers, but technological progress was screaming along, so the differences in their display technologies are very substantial. The card is built around the Yamaha V9958 Video Display Processor. It supports graphical modes with resolutions as high as 512x424 pixels β€” the Commodore 64, by way of comparison, natively supports a maximum resolution of 320x200 pixels.

The upgrades extend well beyond just a higher pixel count. The graphics modes support up to 19,000 colors, and up to 32 hardware sprites of 16x16 pixels are available. The Video Display Processor also supports vertical soft scrolling and has hardware acceleration for common operations like filling the screen, drawing lines, and copying areas of the screen. A 128 kilobyte memory chip is also included in the cartridge to serve as VRAM.

A binary stored on the cartridge makes a number of new commands, like CLEAR, LINE, FRAME, BLOCK, and VCOP, available to easily interact with the graphics chip. The V9958 is also memory mapped, so all of its capabilities are available from either BASIC or assembly programs.

Forstreuter has provided some nice examples showing what this graphics card is capable of. But naturally, just plugging in the cartridge will not immediately give all your favorite games upgraded graphics. Software needs to be written specifically to interact with the new cartridge, and none of the classics were. So if you want to make the most of the V9958’s capabilities, you will need to get busy writing your own software.

If you would like to play around with this interesting device for yourself, details are available on GitHub under a Creative Commons Attribution-ShareAlike 4.0 International License.

Nick Bild
R&D, creativity, and building the next big thing you never knew you wanted are my specialties.
Latest articles
Sponsored articles
Related articles
Latest articles
Read more
Related articles