Let’s Build a Basic MiSTer FPGA Console (Part 1)

Part 1: Introduction and what you’ll need
Part 2: Hardware assembly
Part 3: Setting up the micro SD card
Part 4: Setting up a USB game controller
Part 5: Adding games to the SD card, and using some common cores
Part 6: Extra Settings, Features, and Hardware

What is a “MiSTer”?

The MiSTer is an open-source multi-system hardware emulation platform based around an FPGA (Field-Programmable Gate Array).  Popular consumer gaming products based on FPGA technology include the Super NT and Mega SG from Analogue Interactive, as well as the AVS from RetroUSB.  These differ from devices like the Raspberry Pi as well as traditional software-based emulators like RetroArch and OpenEmu in that rather than creating software that can run code designed for old video game hardware, the FPGA allows for the re-creation of the hardware itself.  This is done by using hardware description languages (HDLs) to create the “cores” (read: emulators) which configure the FPGA to mimic the various chips that make up the original game consoles, with the accuracy of the emulation being limited only by the accuracy of the hardware description contained in the HDL code.  These cores are often described in terms of “cycle-accuracy”, in that the goal is to replicate the timing of the original hardware as precisely as possible .  For this reason, while not necessarily “better”, an FPGA core might be described as “more accurate” than a software emulator.  Unlike system-specific, closed-source products like the Super NT, the MiSTer is community-driven, and currently offers an ever-growing number of cores for almost all of the home game consoles released through the 16-bit era, a number of arcade cores for games like Ghosts ‘N Goblins and Rampage, as well as a variety of home computer cores, giving users the ability to experience platforms like the Commodore 64 and Amiga, as well as the MSX.

It has to be stressed that, while simple enough to build, configure, and use, the MiSTer is not as user-friendly a device as a Raspberry Pi or Super NT.  It does not feature slick front ends and is not ready-to-go out of the box. While the lack of easy-to-digest technical information about the MiSTer can seem intimidating, the fact is that with about the same level of technical acumen required to learn how to use a smart phone, you can successfully build and use your own MiSTer.

Part of the beauty of the MiSTer is that it’s configurable in a variety of ways.  That being said, the primary use of the system for the vast majority of users is going to be hardware emulation of a variety of video game consoles, with the video being output to an HDTV or other HDMI-enabled display.  For that reason, in this build I’m going to focus on assembling a basic, no-frills MiSTer setup, albeit one that is capable of playing anything currently available for the platform.

I strongly recommend reading this entire walkthrough before proceeding with the build.  This guide is very long only because it’s quite detailed, but should only take between 30-60 minutes to complete.

The items required for this build aside from the MiSTer parts listed below are a Windows PC with an SD card reader (for setting up the SD card), a USB keyboard, a Phillips head screwdriver, an HDMI cable, and a USB game controller.  You will also need either an ethernet cable or a USB wifi dongle to (at least temporarily) hook the MiSTer into your home network in order to complete the software installation with the latest updates.

To obtain the parts needed for this build, I only needed to place two orders; one with Amazon, and one with MiSTerAddOns, a US-based site that sells MiSTer peripherals (as well as complete setups.)  In Europe parts can be obtained from MiSTerFPGA.co.uk.

From Amazon:
Terasic DE-10 Nano – $140
Sandisk 128GB MicroSD Card – $22
MakerSpot MicroUSB Hub – $7

From MiSTerAddOns:
128MB SDRAM Expansion Module – $60
PCB Fan Plate and Heatsink – $15
In-Line Power Switch – $7.50

Total Price: $251.50

Clockwise from the top left, the DE-10 Nano is the “motherboard and CPU” of the MiSTer.  While it is possible to run certain cores with only the DE-10 Nano, what we’re building is a complete MiSTer console that will allow you to play anything currently available.

A 128GB micro SD card provides enough space for you to store anything you’ll want to play, but if you’re a ROM completionist, with the recent addition of SegaCD support and the announcement of pending Turbo CD support, you may want to consider a 256GB card instead.  It’s also possible to load games from a USB hard drive, but we’re going to keep this build simple and stick to SD cards.

The DE-10 Nano does not come bundled with any solution for cooling of the FPGA chip, which for this application is going to be critical.  A heat sink along with a simple fan is all that’s needed.

It’s possible to run many cores without a memory expansion module, but most cores require at least 32MB of SDRAM.  However, a 128MB SDRAM module allows the loading of Game Boy Advance and Neo-Geo ROMs larger than 32MB, and therefore provides you with maximum compatibility.

While the DE-10 Nano does come bundled with a power supply, there is no power switch on either the supply or on the board itself, so that as long as it’s plugged in, it’s on.  The easiest solution to this is an in-line power switch.  Most of these switches have been shown to cause worrisome voltage drops, however the switches sold by MiSTerAddOns perform flawlessly.

Lastly, the DE-10 Nano does not feature a full-sized USB port, so that a USB hub with a mini or micro USB connector is required.  While a powered USB hub is preferable when hooking multiple devices to the MiSTer, this simple unpowered device is all that’s needed to get the unit set up, and is all that’s really needed for normal daily use.

The next step is to assemble the hardware.

<Next: Hardware assembly>