What Does FPGA Mean?
FPGA stands for field-programmable gate array, a type of integrated circuit that can be reconfigured after manufacture. Unlike a traditional computer chip, FPGAs use programmable logic blocks and interconnects that can be reconfigured to suit a variety of different purposes.
In essence, an FPGA can be reprogrammed to act as any type of digital circuit. This can be done over and over again simply by loading a new configuration into RAM to emulate a different type of chip. While older FPGAs used circuit diagrams, new ones use text-based programming to describe the behavior instead.
These chips have a wide variety of different uses, particularly in AI acceleration and machine learning. Microsoft has partnered with Intel to enhance Bing search using Intel’s Arria family of FPGAs. They are used in signal and image processing systems and have a unique role in helping designers prove concepts in the early stages of development.
Since FPGAs can be reprogrammed to behave as different types of circuits over and over again, they are also perfect for video game hardware emulation. Instead of running an emulator in software, FPGAs effectively emulate different video game systems at a hardware level.
RELATED: What Is Machine Learning?
How Does FPGA System Emulation Work?
FPGA emulation requires someone to write a “core” for the hardware that reproduces the behavior of original hardware. This process often involves reverse engineering original hardware and even “decapping” where the protective cover on an integrated heat spreader is removed to reveal the die inside.
This allows for visual inspection of the integrated circuit to aid in the production of a working FPGA core. This delicate process involves the use of chemicals like sulfuric acid and acetone, heat, respirators, and a lot of patience. Reference images are then taken, and cores are written in a hardware description language (HDL) that can be interpreted by an FPGA.
The process of learning about, reverse engineering, and writing an FPGA core can take months and lots of dedication. Impressively, many of these cores are then made available for free in the interest of hardware preservation. Cores are usually released in a beta state so that they can be improved upon and development can last years.
Despite emulating original hardware, FPGA emulation is still prone to errors, just like software emulation. Cores are regularly updated as more fixes and changes are implemented in the pursuit of perfect hardware emulation.
What Benefits Does FPGA Have?
FPGA hardware emulation is the closest thing to playing on an original system, so it provides an authentic experience. This may include quirks that were present on the original hardware, assuming the core is providing a 1:1 replica of the original. Issues like latency that can be present with software emulators are resolved since the emulation is taking place at a much lower (hardware) level.
Original hardware can be unreliable, especially as it ages. Reproducing the way original circuits behave with an FPGA is a means of preserving original hardware and can be deployed over and over again. When these projects are made open source, anyone can benefit from them provided they own the pre-requisite FPGA hardware.
For most people, it’s more practical to own a single piece of hardware that can be reprogrammed on the fly. Original hardware can be expensive, takes up room, and can be difficult to find in the case of rare computers and arcade boards. This hardware isn’t getting any younger, and since production ceased long ago it can be difficult to repair or replace.
Since the system is being emulated at a hardware level, systems should be able to interface with just about any hardware designed for that platform. This includes original cartridges, peripherals, and accessories that were not necessarily accounted for when the core was written.
This is different from software emulators which must take into account the various devices that the operator wants to use (like a light gun, for example).
MiSTer: FPGA Hardware Emulation for the Home
MiSTer FPGA is an open-source FPGA project dedicated to the emulation and preservation of consoles, home computers, and arcade machines. It’s the most successful project of its type, with hundreds of cores available and in active development.
The only “required” component to run a MiSTer FPGA is the DE10-Nano, a small Raspberry Pi-like device that houses a Cyclone V system-on-chip. The board can be expanded with additional RAM, a USB hub, and input/output expansions that add functionality like VGA output, SCART output, or JAMMA output for arcade cabinets.
To get started you’ll need a DE10-Nano, a case, and some cooling. For more advanced emulation a RAM expansion is required. You can expand your MiSTer FPGA setup to suit your intended purpose using add-on modules from resellers like MiSTer Addons or Ultimate MiSTer. You’ll then need to set up your SD card with the latest version of MiSTer.
The process is more involved than using “traditional” emulators but still requires data files and ROMs just like a software emulator. If you’re an enthusiast who wants an experience that’s comparable to original hardware, there’s no beating MiSTer. For others, it’s a lot of expense to accomplish something that can be done for free via software emulation.
RELATED: How to Play Your Favorite NES, SNES, and Other Retro Games on Your PC with an Emulator
Analogue Pocket: FPGA Hardware Emulation on the Go
The Analogue Pocket is a multi-system portable handheld that uses FPGA emulation to interface with original Game Boy, Game Boy Color, and Game Boy Advance cartridges. There are add-on cartridge adapters for Game Gear, Neo Geo Pocket, Atari Lynx, and TurboGrafx-16 systems too.
The system supports modern advancements like the ability to suspend gameplay by sleeping the console. The Pocket has a beautiful display that recreates characteristics like pixel grid patterns and LCD backlight effects. It can also be connected to a dock (sold separately) to be played on a TV via HDMI.
At $219.99, it’s a beautiful handheld that will appeal to anyone with a healthy collection of original cartridges. There is no ability to load ROMs from software, but the Analogue Pocket is compatible with any flashcart that works with original hardware.
The Drawbacks of FPGAs for Retro Gaming
The biggest drawback to using FPGAs for playing retro games is the price. Modern software emulators run on just about any device, from old computers to smartphones. Most are free and many are fully open-source projects. Some have undergone decades of development and are highly configurable.
The MiSTer FPGA and Analogue Pocket are expensive hobbies to get into. The MiSTer project, in particular, could easily cost upwards of $500 with enough add-ons, and while this is great value compared to a single arcade board or rare home computer, it’s a tough sell for anyone who isn’t looking for pixel-perfect emulation.
Availability is also a concern. At the time of writing in February 2022, the DE-10 Nano is sold out everywhere and the Analogue has a year-long waitlist for the next batch of Pocket consoles. Things are made worse by the global semiconductor shortage and scalpers who are charging exorbitant prices on reseller websites.
Software emulation and modern hardware have advanced to a level where many casual gamers won’t notice the difference between a software emulator and original hardware. FPGA projects like MiSTer and the Pocket are aimed squarely at enthusiasts. Price and availability should improve over time, so the future of FPGA hardware-level emulation is very bright.
Other Ways of Emulating the Classics
There are cheaper and easier ways of getting into emulation right now. There’s a good chance the device you’re using to read this can run a multi-system emulator like RetroArch.
One of the best value home emulator machines right now is the Xbox Series S (or Series X), which can be found relatively easily and used to run a huge number of RetroArch cores. If you’re looking for something handheld, check out the latest Linux and Android-powered portable emulators instead.