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!  Please scroll through this entire page for software setup, hardware choices and some good tips and tricks:

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):

There’s tons of great hardware options that allow you to adapt the MiSTer’s DE-10 to almost any gaming environment.  My personal favorites are the Retro Castle cases – There’s great HDMI-only options, as well as versions that output Composite, S-Video, RGB, Component Video and VGA!  Check out the video I made about them that also shows some alternative’s you might be interested in.  And below the video is everything you’d need for a complete DIY options!:

Retro Castle (USA Seller):  https://retrorgb.link/retrocastle
Retro Castle (Main Page):  https://www.retrocastlestore.com/
MiSTer MultiSystem:  https://heber.co.uk/multisystem/
JAMMIX:  https://www.jammix.io/
Atlantis Mini-ITX:  https://battyetech.com/

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’d need.

DE-10 Nano:  This is the heart of the MiSTer project and there are no alternatives.  Unfortunately, these are often out of stock.  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:

TP-Link WiFi-Only:  https://amzn.to/3lAoeyC
D-Link WiFi-Only:  https://amzn.to/2RP2tRS
Bluetooth 5.0:  https://amzn.to/3GeW5d5
Long-Range WiFi:  https://amzn.to/46E94QE
Long-Range Bluetooth 5.0:  https://amzn.to/47M5Lro

WARNING:  These combo adapters have been sold by many MiSTer vendors:  https://amzn.to/3eH1097.  I own a few and sometimes WiFi just doesn’t work.  The price is great and having both in the same package is really convenient, so you might still want to give it a try;  You could always return it for one of the above solutions if it doesn’t.

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 at the top of this page, 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 independent dual-output for things like 240p or 480p over analog and 1080p (or others) over HDMI.  Direct Video allows for a slightly higher 24-bit color video output and the option for a second RAM stick.  The second video at the top of this page goes into detail about single vs dual RAM, as well as I/O vs Direct Video analog output.

I’ll have a video detailing the “Direct Video” option soon, but for now, here’s a quick writeup:  https://www.retrorgb.com/mister-240p-over-hdmi.html

Both methods of outputting RGB SCART (I/O board and direct video) output sync voltage at a level 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

Arcade / Dedicated MiSTer Setups:

The MiSTer project can also work inside arcade machines via JAMMA adapters!  I’ll link to my favorite JAMMA solutions and below is a video that shows some tips on building a dedicated MiSTer setup.

Retro Castle (USA Seller):  https://retrorgb.link/retrocastle
Retro Castle (Main Page):  https://www.retrocastlestore.com/
JAMMIX:  https://www.jammix.io/

For me personally, regardless if its installed in a real arcade machine or just a monitor with controller hooked up, I want MiSTer to feel like a video game / arcade console.  Eliminating the need for a keyboard (after setup is done) is a big step towards that goal.  Another big time-saver is using Wizzo’s Remote app.  I’ll have a video on that soon, but maybe start with this:

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 party controllers.  Here’s 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.