Authoritative Tutorial: MiSTer FPGA
What is MiSTer FPGA?
MiSTer FPGA is an open source project that emulates consoles, computers and arcade boards via FPGA. Its appearance makes design and use very simple.
Advantages of MiSTer FPGA?
1. low latency output
FPGA simulates circuits in real time. The result is zero-latency audio and analog video. On most modern monitors, digital video has a latency of only a few scanlines. The result is an extremely responsive gaming experience that’s almost exactly how you remember it on the original hardware. If you’re a streamer, you’ll love the dual analog + digital video outputs provided by the IO board plug-in
2. Flexible and fast input
Whether you choose SNAC for zero-latency native controller ports, or use a fast USB adapter, MiSTer has you covered. MiSTer also handles USB and Bluetooth controllers with ease (requires a Bluetooth dongle). Enable 1000 Hz USB polling for a while.
3. Has free open source software
The two main goals of MiSTer are accuracy and hardware protection through open source. The digital logic documented in the MiSTer project will live on long after the DE10-nano FPGA development kit has disappeared. With thousands of users, development and testing happen in rapid succession. Take advantage of tools like MDFourier to ensure accurate audio for your console.
How MiSTer works ?
The MiSTer platform runs a separate “hardware emulation core” for each console, computer or arcade board you run. To create these cores accurately, you basically need to recreate the original hardware in HDL (hardware description language), which is more like a schematic than traditional coding.
To do this, you need to map every component on the board, trace all the wires and analyze in real-time how they “talk” to each other. Some components on the board may be common off-the-shelf parts that provide datasheets on how they work. If not, someone else may have reverse engineered the “generic” component and already have the FPGA data. These modular parts are often referred to as “soft cores” and can be “plugged” (via software) into a core, almost like an IC with a socket.
Custom, proprietary chips complicate things further, as MiSTer developers also need to reverse engineer each of these chips. A good way to visualize what’s inside a complex processing chip is to imagine the main motherboard on which the chip resides. All components, trajectories and configurations are depicted. The pictures are now 1/100th their size, all tucked into a 1-inch square device and coated with a hard black opaque material.
So, after the huge work of reverse engineering the motherboard, developers need to follow a similar process on the decapped chip using a microscope. Depending on the complexity of the board and platform, the entire process can take hundreds or even thousands of hours to complete, but when done correctly, it can yield a cycle-accurate FPGA core. These hardware “kernels” are then flashed to an FPGA (such as the one included in the DE-10 Nano), whose logical elements are then physically rearranged to match.
For things like computers and consoles, all that work translates into hundreds of games per platform. For arcade boards, this will probably only lead to a handful of games, making the mark more impressive and grueling.
The end result of all this is a core that plays completely indistinguishable from the original hardware, which makes for both an amazing gaming experience and an incredible way to save and archive the hardware they’re based on.
Another benefit of HDL is that it is the actual blueprint that is sent to make the actual chip for manufacturing. This means that once all the original hardware is dead, it can be recreated on a chip…as long as it’s perfectly documented in HDL. In theory, you can model any digital circuit in HDL as a 1:1 exact replica that a human or machine can’t tell the difference, but few cores are so perfect. Nonetheless, this perfect accuracy is the ultimate goal of any FPGA endeavor, even if it is very long-term.