Using FPGAs to replicate classic video game systems has been a growing practice for a few years now, but how do these projects differ from standard software emulation? And is the high entry price worth it for most users?
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 meet a variety of different purposes.
Essentially, an FPGA can be reprogrammed to act like any type of digital circuit. This can be done over and over again by simply loading a new configuration into RAM to emulate a different type of chip. While older FPGAs used circuit diagrams, newer ones instead use text-based programming to describe behavior.
These chips have a wide variety of different uses, especially in AI acceleration and machine learning. Microsoft has partnered with Intel to improve Bing search using Intel’s Arria family of FPGAs. They are used in signal and image processing systems and play a unique role in helping designers prove concepts in the early stages of development.
Since FPGAs can be reprogrammed to behave like different types of circuits over and over again, they are also ideal for emulating video game hardware. Instead of running an emulator in software, FPGAs effectively emulate different video game systems at the hardware level.
RELATED: What is Machine Learning?
How does FPGA system emulation work?
FPGA emulation requires someone to write a “kernel” for the hardware that replicates the behavior of the original hardware. This process often involves reverse engineering the original hardware and even “decapping” where the protective cover of an integrated heat sink is removed to reveal the die inside.
This allows visual inspection of the IC 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 lots of patience. Reference images are then taken and the cores are written in a hardware description language (HDL) that can be interpreted by an FPGA.
The process of learning, reverse engineering, and writing an FPGA core can take months and a lot of dedication. Impressively, many of these cores are then made freely available in the interest of hardware preservation. Cores are usually released in a beta state so that they can be improved and development can last for years.
Despite emulating the original hardware, FPGA emulation is still error-prone, just like software emulation. Cores are regularly updated as new fixes and changes are implemented with the aim of achieving perfect hardware emulation.
What are the advantages of the FPGA?
FPGA hardware emulation is the closest thing to playing on a stock system, so it provides an authentic experience. This can include quirks that were present on the original hardware, assuming the kernel provides a 1:1 replica of the original. Issues such as latency that can be present with software emulators are solved since the emulation takes place at a much lower (hardware) level.
Original hardware may not be reliable, especially as it ages. Replicating the behavior of the original circuits with an FPGA is a way to preserve the original hardware and can be deployed over and over again. When these projects are made open source, anyone can benefit as long as they have the prerequisite FPGA hardware.
For most people, it’s more convenient to own a single piece of hardware that can be reprogrammed on the fly. Original hardware can be expensive, take up space, and be difficult to find in the case of rare computers and arcade boards. This material is not getting any younger and, as production ceased a long time ago, it can be difficult to repair or replace.
Since the system is emulated at the 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 weren’t necessarily considered when writing the kernel.
This is different from software emulators which have to take into account the different devices the operator wants to use (like a light gun, for example).
MiSTer: FPGA hardware emulation for the home
Mr FPGA is an open source FPGA project dedicated to the emulation and preservation of consoles, personal computers and arcade machines. It is the most successful project of its kind, 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 expansions input/output that add functionality such as VGA output, SCART output or JAMMA output for arcade cabinets.
To start, you will 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 purpose using vendor add-ons such as MiSTer Complements Where Ultimate Master. You will then have to configure your SD card with the latest version of MiSTer.
The process is more complex 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 comparable to the original hardware, nothing beats 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
Pocket Analog: On-the-go FPGA hardware emulation
the Analog pocket is a multi-system handheld portable computer that uses FPGA emulation to interface with original Game Boy, Game Boy Color, and Game Boy Advance cartridges. There are also additional cartridge adapters for Game Gear, Neo Geo Pocket, Atari Lynx and TurboGrafx-16 systems.
The system supports modern advancements such as the ability to suspend gameplay by putting the console to sleep. The Pocket has a beautiful display that recreates features like pixel grid patterns and LCD backlight effects. It can also be connected to a docking station (sold separately) to play on a TV via hdmi.
At $219.99, it’s a nice handheld that will appeal to anyone with a healthy collection of original cartridges. It’s not possible to load ROMs from software, but the Analogue Pocket is compatible with any flashcart that works with stock hardware.
Disadvantages of FPGAs for Retro Gaming
The biggest downside to using FPGAs to play retro games is the price. Modern software emulators work 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. The MiSTer project, in particular, could easily cost upwards of $500 with enough add-ons, and while that’s great value compared to a single arcade board or rare home computer, it’s a sellout. difficult for anyone not looking for pixel-perfect emulation.
Availability is also a concern. As of this writing in February 2022, the DE-10 Nano is sold out everywhere and the Analogue has a year-long waiting list for the next batch of Pocket consoles. Things are made worse by the global shortage of semiconductors and resellers who charge exorbitant prices on reseller websites.
Software emulation and modern hardware have reached a level where many casual gamers will not notice the difference between a software emulator and the original hardware. FPGA projects like MiSTer and the Pocket are aimed directly at enthusiasts. Price and availability are expected to improve over time, so the future of FPGA hardware-level emulation is very bright.
Other ways to imitate the classics
There are currently cheaper and easier ways to get into emulation. Chances are the device you’re using to play this can run a multi-system emulator like RetroArch.
One of the best home emulation machines right now is the Xbox Series S (or Series X), which can be found relatively easily and used to run a large number of RetroArch cores. If you are looking for something portable, check out the latest portable emulators for Linux and Android instead.