MiSTer FPGA Hardware

The MiSTer is an open-source project that emulates consoles, computers and arcade boards via FPGA – This is different from software emulation, as there’s potential for performance exactly like the original.  While software emulation has the potential to be really accurate as well, you’re much more likely to get zero lag via FPGA emulation, making this an amazing option for people using both HDMI displays and CRT’s!  Setup and use has gotten really simple and I created a quick video to get you started, with links and more instructions below:

Getting Started:

The MiSTer team has provided great documentation, but this page should be helpful as a quick reference guide.  Check out their documentation here:  https://mister-devel.github.io/MkDocs_MiSTer/

Cases / Kits / Parts):

While there’s some cheap and easy ways to get started using a MiSTer, some people might just be looking for a turnkey solution.  Here’s my current favorite MiSTer solutions, which even offer JAMMA, composite and S-Video output alongside the usual RGB!  More on analog video options below:

Retro Castle:  https://retrorgb.link/retrocastle
MiSTer MultiSystem:  https://shop.retrocollective.co.uk/multisystem-board-only/

Hardware Suggestions:

If you’re looking to piece together your own kit, or see other cases and solutions you may prefer, here’s all the individual components you’s need.

DE-10 Nano:  This is the heart of the MiSTer project and there are no alternatives.  Unfortunately, these are often out of stock due to the part shortage.  Here’s the main page of the device, but you can often find it through other resellers:  https://www.terasic.com.tw/cgi-bin/page/archive.pl?Language=English&CategoryNo=167&No=1046

RAM Module:  Just the DE-10 alone can use a few cores, but a 128MB RAM module will allow for every core including Neo Geo!:  https://amzn.to/3FGqHEb

USB Hub:  The only USB port accessible for use with controllers and keyboards is the MicroUSB port in the front, all the way to the right.  You can get a cheap, passive hub if you just need a controller adapter.  A powered USB hub is required for most (but not all) WiFi modules.

Passive USB Hub: https://amzn.to/2CM5YjP
USB to MicroUSB Adapter, to connect your existing, powered hub:  https://amzn.to/3r0AgXxb

USB Keyboard:  This can be any USB keyboard and isn’t something specific to the MiSTer project.  This one has been my favorite lately and is an easy, compact way to have full keyboard & mouse access:  https://amzn.to/37A52NM

WiFi / Bluetooth Modules:

Combo Adapter:  https://amzn.to/3eH1097
Long-Range WiFi:  https://amzn.to/46E94QE
Bluetooth 5.0:  https://amzn.to/3GeW5d5
Long-Range Bluetooth 5.0:  https://amzn.to/47M5Lro

Here’s some wifi-only ones I’ve personally tested if you’re interested, but the above solution is probably better:  TP-Link:  https://amzn.to/3lAoeyC  /  D-Link:  https://amzn.to/2RP2tRS

Controllers:  MiSTer supports low-latency USB controllers and can essentially be a “zero lag” solution.  I strongly recommend referencing the MiSTerAddons latency database to see which controllers work best, but here’s some cheap USB-based ones that are great:

Retroflag SNES USB controller:  https://amzn.to/3LBPw4W
Retro-Bit Genesis USB controller:  https://amzn.to/3NGe2ny
Retro-Bit Saturn Clear USB controller:  https://amzn.to/3J1g4v0
Retro-Bit Saturn Black USB controller:  https://amzn.to/3DusrOZ
Logitech F310:  https://amzn.to/3DtYr5S
SN30 Pro Wired:  https://amzn.to/3qYFwuP


Software Setup:

As shown in the video, you really only need two pieces of software:  The “Mr. Fusion” installer and an updater.  You can use the updater that comes with Mr. Fusion, but I like to use update_all:

Mr. Fusion:  https://github.com/MiSTer-devel/mr-fusion/releases
Update_all:  https://github.com/theypsilon/Update_All_MiSTer

Here’s some official documentation from the MiSTer team, if you need any help:  https://mister-devel.github.io/MkDocs_MiSTer/  /  https://github.com/MiSTer-devel/Main_MiSTer/wiki

You’ll want to download cifs mount & unmount files if you’re using RetroNAS, or loading games over your network.

If you’re using compatible controllers (many are), enable Fast USB Polling for even lower latency.  This can be done by loading a script, that’s either manually added, or obtained via update_all.

Analog Video Options:

There are two ways to get analog video from a MiSTer:  Using an I/O board, or an HDMI to VGA adapter.  At the moment, the I/O board is great for people who need component video, or independent dual-output for things like 240p or 480p over analog and 1080p (or others) over HDMI.  You can still get dual-output for streaming with Direct Video by using an HDMI Splitter to route the signal to a capture card as well – You’ll just need to compensate for the lower resolution in OBS.

I/O Boards are available from many sellers.  I recommend getting one bundled with your favorite style case.

Direct Video:  https://www.retrorgb.com/mister-240p-over-hdmi.html

Both methods of outputting RGB SCART (I/O board and direct video) output voltage levels designed for RGB monitors.  If you’re going directly into a PVM or BVM, a cheap “VGA to BNC” cable will be fine.  If you’re going into any SCART equipment like a switch, you’ll want a cable or solution that provides a 470 ohm resistor on the sync line.  Some setups might benefit from just buying a “MiSTer SCART cable”, while others might be better using a VGA cable into a SCART adapter – Performance is identical, it’s just a matter of what connector and equipment is easier for you:

MiSTer RGB SCART Cables:  http://bit.ly/rgcmister

HD15-2-SCART:  https://www.retrorgb.com/hd15-2-scart-adapter.html

Shielded VGA Cable / BNC cable   retrorgb.link/amazon

More info on MiSTer SCART Cables:  https://www.retrorgb.com/beware-of-mister-scart-cables.html

MiSTer As a Test Tool:

The MiSTer hardware can also be used as a tool for many different uses.  My favorite so far, is using it to test the latency of 3rd part controllers.  Porkchop Express has been maintaining a database of latency results – And once again, MiSTer is the tool, not the test subject.  These latency numbers would apply regardless of where it’s used (although some 3rd part / clone consoles / properly emulated systems/compilations can add their own lag on top of this):  https://rpubs.com/misteraddons/inputlatency


How Does MiSTer Work?

The MiSTer platform runs a separate “hardware emulation core” for each console, computer or arcade board you run.  In order to accurately create those cores, you essentially need to recreate the original hardware in HDL (Hardware Description Language), which is more similar to a schematic than traditional coding. 

To do this, you map out each component on the motherboard, trace all the lines and analyze how they “talk” to each other in real time.  Some of the components on the board may be common off-the-shelf parts that offer datasheets about how they work.  If not, someone else may have already reverse-engineered the ‘generic’ component and have FPGA data on it already. These modular parts are usually referred to as “soft cores” and can be ‘plugged’ (via software) into a core, almost like a socketed IC.

The custom, proprietary chips are where things get even more complicated, as MiSTer developers need to reverse engineer each of those chips as well.  A good way to visualize what’s inside a complicated processing chip is this:  Imagine that main motherboard the chip is on.  Picture all the components, traces and configurations.  Now picture that shrunk down to 1/100th of the size, all jammed into a 1-inch-squared device and coated in a hard black opaque material.  Crazy right?

So after doing the tremendous work of reverse-engineering the motherboard, developers then need to follow a similar process on the decapped chip, using a microscope.  Depending on the complexity of the board and platform, this total process can take hundreds, if not thousands of hours to complete, but if done correctly, it can result in a cycle-accurate FPGA core.  These hardware “cores” are then flashed to an FPGA (such as the one included in the DE-10 Nano), whose logic elements are then physically rearranged to match.

For things like computers and consoles, all that work translates into hundreds or thousands of games per platform.  For arcade boards, that might only result in a handful of games, making the mark that much more impressive and painstaking.

The end results of all of this, is a core that when being played is completely indistinguishable from original hardware, which results in both an amazing gaming experience and an incredible way to preserve and archive the hardware they were built on.  Another bonus of HDL, is it’s the actual blueprint that’s sent to fabricate real chips for manufacturing.  That means once all the original hardware is dead and gone, it can be recreated on a chip…provided it was recorded perfectly in HDL.  Theoretically, you can model any digital circuit in HDL as a 1:1 exact copy, indistinguishable by human or machine, but few cores will ever reach that level of perfection. Still, this perfect accuracy is the end-goal of any FPGA endeavor, even if it is very long-term.

If you’d like an awesome, in-depth look at MiSTer, please check out My Life In Gaming‘s awesome video:

…and if you’re looking for some tips on how to build a dedicated MiSTer setup, here’s what I did for one of my arcade machines: