MiSTer is an attempt to create an updated and enhanced version of another popular FPGA system, called MiST. Sadly, MiST is not produced anymore and isn’t supported either. MiSTer gained much more popularity in recent months and cores are updated almost on daily basis.
What is it for?
In our case we can can simulate older hardware (like retro computers or consoles). The hardware simulation is considered the next step in the «emulation» chain, alsmost indistinguishable from the real hardware because it’s emulated on the lowest level (FPGA recreates logically the hardware, e.g. all CPU commands, frequency, memory speed, etc.). This is not the case with the normal simulation we’re used to: here you try to create an application on another hardware, which tries to emulate the hardware, but doesn’t use the same low level logics.
The MiSTer has several advantages over the original MiST: it has more speed, more ram, it’s produced and is available for purchase, etc. There’s a lot of core improvements. And it can use some useful add-ons, e.g. SDRAM Add-on which make it possible to simulate older (slower) memory systems. It also uses the more common HDMI video connection type. The controller configuration is much easier (and can be done from the menu).
But, there are some disadvantages: no normal USB connectors on the board itself (you cannot connect controller or keyboard directly). No good cases (MiST has a really good metal case). No other controller input types (MiST had Midi and Din 9 pin connectors, e.g. for Atari or Mega Drive controllers). Some cores need unusual add-ons which can only be created manually or bought from forum users. No turn-on/turn-off buttons. Original MiST had four normal USB-Connectors, buttons, turn-on and off switch.
You can also have an option to choose from different upscaling algorithms: e.g. you can switch to an upscaler with very sharp pixels, or if you like more retro look, you can choose another upscaler with scanlines etc.
MiSTer was created by a russian enthusiast, known under his alias «sorgelig» (the real name is Alexey)
- Cores (all available cores)
- Wiki (the official documentation)
- Forum (news, updates, questions, etc.)
Building the System:
In order to built a MiSTer system, you’ll need:
- FPGA board DE10-Nano from Terasec: based on Cyclone V from Altera and has 1GB of fast DDR3 RAM
- (USB) Keyboard, (USB) Controller, OTG Adapter and power adapter (in case you can’t use the packaged US-type adapter)
- MiSTer software, cores (core = the configuration, which makes FPGA act as another hardware) and of course games (you can create roms from cartridges with Retrode, e.g., or find such files in Internet)
- DE10-Nano board
- Quick Start Guide
- Type A to mini-B USB cable
- Type A to Micro-B USB cable
- Power DC Adapter (5V) american plug!
- micro SD (8Gb) already installed, has some software
- four silicon footstands
The board itself has following elements:
Of all these components you will only need following:
- USB OTG — you will connect a USB (Female) to micro-USB adapter to this input, in order to connect a keyboard or a USB hub to the board
- HDMI-TX — to connect HDMI cable to the board
- 5V DC Power Jack — to connect any compatible (5V, 2A, (-)-(-(+) power adapter
- The lower GPIO slot — for SDRAM add-on (which is obligatory for many cores)
- And the SD card slot. Since we only want to create the MiST system, you can ignore everything else.
Apart from these, you will also need following devices:
- keyboard (obligatory before you’ve configured your controller and also obligatory for many cores; but not obligatory for console cores)
- gaming controller
- HDMI cable
- power adapter (or you can use an adapter with the original power adapter, since it’s universal (100-240 V, 50/60 Hz)
- USB hub (to connect keyboard and controller at the same time) and a microUSB to OTG adapter (like this:)
These are the specs of the power adapter:
Installation process step-by-step.
See this page for official instructions.
- Download the official SD-card installer, unpack it and start the MiSTer SD Card Utility. Choose the SD-Card drive and press Full install.
- Update the firmware (find the newest on this page, don’t forget to rename the file to «MiSTer» (no exstension!))
- Update the main menu core (it’s just a core where you can choose other cores). Find the latest file on this page and don’t forget to rename the file to menu.rbf
- Insert the card into MiSTer and connect the power adapter to the mains.
From this moment, you can also add needed cores and don’t forget to reconfigure your controller in the MiSTer settings (you can load them with F12 from any core).
With cores everything’s simple: find a core, download it directly to the root folder of the SD card. Put your roms in the directory with the name specified in readme of the core (optionaly).
- attach the power adapter to the board and MiSTer will start automatically.
Starting MiSTer with a specific core:
You can start MiSTer with a specific core (e.g. always with the NES core) by renaming the chosen core file to «core.rbf». The core named «core.rbf» is always loaded when MiSTer is turned on. (You can load other cores from the options menu).
- there is no turn off button etc., so the only way to turn off is by unplugging the power adapter from socket
Generic core (MiSTer Menu):
In theory you can start MiSTer with any other core (just rename it to core.rbf), but there is a generic core from which you can start other core. Download this core and rename it to core.rbf and put in the root folder of the SD card.
When this core is loaded, all other available cores are shown and you can start any of them:
Each core has its own menu and you can open it by pressing F12 (or the button you manually defined, e.g. for gaming controller)
E.g. in the main menu you have the following options and information:
And usually there is also a second screen, where you can load another core or redefine controls.
- Core: from this option you can choose another core
- Define joystick buttons: you can define buttons or ignore any button by pressing space on the keyboard
- Button/Key remap for game: this mapping is only applied for the current game
- Reset settings: reset settings to the default value
- Save settings: save current settings and they are automatically loaded upon next start
- Reboot: reboot the device
- About: see information about MiSTer (ARM s/w Version, and the version of the Core)
You see the storage type and available space. You can also remap your keboard and define controller buttons. Ignore the rest.
- if you start MiSTer with the generic menu, you will be presented with a list of «installed» cores. Choose a core (with keyboard, or with controller, if you already configured it) and press Enter or the A-Button on the controller. If you want to start a core from another core, press F12 to open MiSTer menu, navigage to the second screen and choose «Other core».
You can find other core on this page. Some of them require the SDRAM addon, some not (luckily, the fpgagen (Mega Drive/Genesis core) doesn’t require the addon.
There is also a configuration file mister.ini but you don’t need to change it for the moment.
From now on you can play games on one of the coolest FPGA systems in the retro gaming world!
Using this core you can play games for the Atari 2600 or Atari VCS.
This core supports multiple GameBoy variations, from the original GameBoy to the Color version. You can also change the color scheme during the execution. Color schemes need to be downloaded separately and files have extension «GBP».
You can also change the system, if you want to force a specific game boy version to be used.
Nes core supports NES, Famicom and Famicom Disk System roms. There are also options to hide the overscan area, choose a different color palette and even emulate zapper or mouse. You can also set the region or change the handling of FDS disks.
Genesis is one of the best maintained cores and it’s very versatile. The core supports any region versions, you can also set another aspect for 320×224 resolution, add border, emulate mouse or set different audio filters. It’s alsmost as good as the core used in the Mega SG. It even supports Virtua Racing!
Super Nintendo core is sometimes problematic. If you start this core after using another core, graphical glitches may appear. It’s always good to restart the device before using this core. Not every special chip is supported at this moment. I sometimes experience grafical glitches.
This core actually supports 3 systems: Sega Master System, SG-100 and the portable Game Gear.
PC-Engine / TurboGrafx-16
Another greate game console, known in the West as «TurboGrafx-16» and home for multiple shoot’em’ups and shooters.
There is one limitation with the MiSTer. Its memory is too fast for older systems. That’s why there are other SDRAM add-ons, which are required to run some cores. This add-on can be bought only from the forum members or from ebay (costing about 20$). It’s inserted into the device and the add-on can have several forms (vertical, very short, or horizontal).
E.g. NES core requires this add-on, so consider it as obligatory.
The board has additional pins, and you need to insert it very gently.
This is how it looks after it’s inserted (make sure the additional pins (on the left on the picture) are inserted correctly):
This board is useful, if you want to connect MiSTer via VGA our output sound via 3.5 mm jack. It also can integrate a fan for cooling (some cores are really demanding).
- VGA Connector for connecting to monitors without HDMI
- 3.5mm audio jack with TOSLink interface
- 3 user buttons
- 3 additional status LEDs
- Secondary SD card slot (for some cores)
- FAN for cooling the FPGA
- Expansion connector
- Additional connectors for cases
There is also a better solution: using the update script. All you need to do, after you put the script into the root folder, is to connect you MiSTer to Internet via an ethernet cable, then going to menu (F12) and choosing option to run scripts («Scripts») and then choosing this update script. It’ll automatically update all cores, all upscaler files, etc. Note, that the files will be places into multiple folders.
I recommend using this script after the initial installation.
- Connecting to a non HDMI monitor
- Configuration files