When the Commodore Amiga appeared in the mid 1980s, it was a color-graphics wonder. When held up and compared against the IBM PC’s CGA graphics (ugh!) or the Apple Macintosh’s monochrome screen, it was well ahead of its time and Commodore sold millions of the 68000-based computers. A network of Amiga computers created the special effects for the pilot episode of the successful “Babylon 5” TV series. (Now there’s a piece of trivia for you.) Three decades later, the Amiga is another interesting historical artifact—to most people. But there are still fanatics keeping it alive. Lukas F Hartmann is one such fanatic. After reviving his slumbering interest in the Amiga, he decided it needed more graphics oomph. Time has indeed passed the orphaned Amiga by.
No problem said Hartmann. I’ll just buy an upgraded graphics card, he thought. Oops, “Nowadays, these totally outdated cards are rare and sold for ridiculous prices. My A2000 was stuck with 640x256 PAL resolution, 64 colors (ignoring HAM) or headache-inducing interlaced modes,” he writes on his github page.
Hartmann’s solution: “I'll just make my own graphics card. How hard can it be?"
Knowing he was unlikely to create an ASIC for this application, Hartmann turned to FPGAs and made the extremely reasonable choice of a Xilinx Spartan-6 FPGA. If you want all of the grisly hardware and software design details, click over to his github page (with more info on this Hackaday page) but I’m going to give you the bottom line here.
The miniSpartan6+ dev board started life as a Kickstarter project and now Hartmann’s project, formally named the MNT VA2000 Amiga Graphics Card, is also a crowdfunded project. Hartmann is selling 50 units at €149.00 each. You’ll find it here.
Hartmann’s project is a perfect example that demonstrates just how handy FPGAs can be. An FPGA is exactly the right device for developing hardware like a GPU. It allows for plenty of design experimentation with no incremental hardware or NRE cost and relatively minor time penalties for changing your mind while delivering hardware-driven performance that far exceeds what you might get from a processor stepping through code.