FPGA MiSTer Guide






MiSTer
can be seen as an updated and enhanced version of another popular FPGA system, called MiST. Sadly, MiST is not produced anymore and isn’t actively supported either (though some cores are now migrated from MiSTer back to MiST and new cores appear from time to time, but seldom!). MiSTer gained much more popularity in recent time and cores are created or updated almost on daily basis.

What is MiSTer for?

With MiSter we can can simulate older hardware (like retro computers or consoles). The hardware simulation is considered to be the next step in the “emulation” chain, alsmost indistinguishable from the real hardware because it simulates the original hardware on the lowest levels possible (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: with the usual emulation you try to create an application on completely another hardware (another processor, another memory, etc.), and it tries to emulate the behaviour (mimic) of another hardware, but doesn’t use the same low level logics and can achieve the best compatibility only with really enorm resources.

In other words FPGA allows you to reacreate the logic of the original processor, memory: up to cycle based, cycle exact behaviour. Only the interfaces of old times will not be recreated (you don’t want to mess with magnetic tapes or floppy disks anymore and can run games from SD card).

The MiSTer has several advantages over the original MiST: it has more power, more logical elements to be used, more ram (on the board and also external ram is possible), the board for it is produced by a bigger company 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 makes it possible to simulate older (slower) memory architectures. It also uses the more common HDMI video connection type, instead of VGA (though you can install an add-on with a VGA output, if you wish). 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 multiple USB connectors of normal size (you will need to inverst into a separate add-on for this or use a hub). There are some external cases out there, but none of them can be compared with other commercial products (also the original MiST had a really good metal case), it looks cool for geeks, but let’s face it – you have a pcb on your desktop. No other controller input types (MiST had midi (!), din 9 pin connectors, e.g. for Atari or Mega Drive controllers and even 4 normal size USB ports!). Some cores need ram add-ons, but these can easily be found in the internet (look here https://misterfpga.co.uk/). No turn-on/turn-off buttons on the board. Original MiST had four normal USB-Connectors, buttons, turn-on and off switch. To improve mister and amend some disadvantages you’ll need to pay a bit more, about 100$ more, actually (sd-ram, io board, usb board…).

Back to great things about MiSTer: 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. There’s a ton of different upscalings options and even the possibility to adjust the gamma.

The main core or the framework is updated very frequently. Such functions as adding low lag controllers, support for mouse (e.g. as a light gun replacement), upscaling algorithms, cheats, scripts make this system great and comfortable.

MiSTer was created by a russian enthusiast, known under his alias “sorgelig” (the real name is Alexey). Please support him, to make MiSTer even better!

What can you expect in picture quality? Well, it provides the best possible picture quality, on HDMI or VGA. The board itself supports a range of resolutions, even above 1080p!

Here are some examples:

Genesis

NESSNES

Useful links:

  • 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 (about 130$)
  • (USB) Keyboard, (USB) Controller, OTG Adapter and power adapter (in case you can’t use the packaged US-type adapter) (all for about 30$)
  • HDMI cable (5$)
  • Bigger SD card (10$)
  • 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) (free!)

Package contents:

  • 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 computer cores; but not obligatory for console cores)
  • a gaming controller with USB connector (or any other controller, which can be used with a USB cable or via bluetooth)
  • 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.

  1. Download the official SD-card installer, unpack it and start the MiSTer SD Card Utility. Choose the SD-Card drive and press Full install.
  2. Update the firmware (find the newest on this page, don’t forget to rename the file to “MiSTer” (no exstension!))
  3. Update the main menu core (it’s just a core where you can choose other cores). Find the latest file on this page, put the newest version in the root folder of the SD and don’t forget to rename the file to menu.rbf
  4. Insert the card into MiSTer and connect the power adapter to the mains.

That’s all!

Updating and installing all cores automatically

You can save time for updating by using an update script, but you will need to connect your MiSTER with the Internet via an Ethernet cable or Wifi.

In my case, I am connecting my MiSTer with Internet via an Ethernet cable.

Download the update.sh from this page and put it into folder “_Scripts” on the SD card. You can either use the SD card on your PC for this, or you can enable SSH in Mister and connect to it using the SSH protocol. See this page, if you want to access Mister using SSH.

To start the Script and update your Mister with all available cores, turn on Mister and let it run the menu core (download the latest from here and put it on SD in the root folder, rename as menu.rbf). In this menu press F12 (or menu button) and go to “Scripts”. Find the script “update” and run it. It will update all cores.

Adding games

Please read the readme for each core, it explains where to put your games or whether the bios files or other files are needed.

For the most part you put your games in the folder “games”, where each platform has its separate folder.

Here are some examples:

Atari 2600 roms go to “Atari2600”

GameBoy roms go to “GameBoy”

GameBoy Advance games go to “GBA”

Platform (Core) Folder Bios
Amiga Amiga
Arduboy Arduboy
Astrocade Astrocade
Atari VCS, Atari 2600 Atari2600
Atari 5200 Atari5200
Commodore 64 C64
Coleco Coleco
GameBoy Advance GBA need a bios file (named “boot.rom”)
Mega Drive / Genesis Genesis
Mega CD / Sega CD MegaCD need a bios file (named “boot.rom”)
Famicom / NES NES
Sega Master System & Game Gear SMS
Super Nintendo / Super Famicom SNES
ZX Spectrum Spectrum
TurboGrafx 16 / PC Engine TGFX16
TurboGrafx 16 / PC Engine CD TGFX16-CD need a bios file (named “cd_bios.rom”)
Vectrex Vectrex

Roms for GameBoy and GameBoy Color should be placed in GameBoy folder in the root folder.

NeoGeo games should be placed in NeoGeo in the root folder. It also need a bios file.

AMIGA core need a kickstarter ROM, on the root folder (and named “KICK.ROM”). You can purchase one from Amiga Forever.

Starting MiST:

  • 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).

Turning Off:

  • 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 menu.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:

Core Menu:

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.

Choosing cores:

  • 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!

Most interesting cores:

Atari 2600

Using this core you can play games for the Atari 2600 or Atari VCS. You can’t use the original controller, but I wouldn’t recommend it anyway. Use a USB controller, it’s much better!

Sometimes games will appear buggy. Here is what you can do, to fix it:

  • try disabling SuperChip (or set it initially to Auto)
  • try changing the region of the games
  • after each setting change, reset the game

GameBoy

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

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. Lightgun (Zapper) can be simulated using a mouse, by the way.

Genesis

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!

If you’re interested in Mega CD / Sega CD, there is a separate core, which supports this platform. Just make sure your SD card has enough space, because those game images will need a lot of space.

Settings:

Screenshots:

Super Nintendo

Super Nintendo is now also in a very good state. This core has been also migrated back to MiST! Not every special chip is supported at this moment, but most are and the behaviour of the core is very good. Also the Super Scope (=Light Gun) and SNES mouse is supported. For Super FX chips you can also adjust the speed and make games run better.

SMS

This core actually supports 3 systems: Sega Master System, SG-100 and the portable Game Gear. The emulation quality is superb.

PC-Engine / TurboGrafx-16

Another greate game console, known in the West as “TurboGrafx-16” and home for multiple shoot’em’ups and shooters. If you want to play CD games, the newest core also supports CD games (they need to be places into another folder, though).

GameBoy Advance

One of recent cores, can run GameBoy Advance games. You can also set an upscaler to match the visual stile (pixel like image filter). This core needs an SD RAM Add-On. This core also supports fast forward, so you can always skeep boring sections and title screens.

NeoGeo

Also on of recent cores and supports the glorious NEOGEO games like Metal Slug, Fatal Fury and so on. You will need a Bios file and in order to run all available games you will also need the biggest SD RAM add on available with 128 MB! If you don’t have this add-on, you just won’t be able to run all games, only those which will fit into the amount of ram you have.

Arcade Cores

You can also play a ton of different arcade games on mister! What about original Donkey Kong, Gun Smoke, Contra, Double Dragon, Sega System 1 or CPS or MAME-compatible games (Final Fight, Ghouls’n Ghosts, 1941, and many more)? Many cores are already available (from Jotego, from MiSTer-X, from Sorgelig and other users).

You only need to find the corresponding games and compile the roms for Mister… which is a bit confusing, therefore I recommend using a script file, which not only updates all available cores (even those which are not available on the official repository), but also finds and downloads all needed games from the internet!

Just install this script (download and copy to the Scripts folder), then run it. It will automatically find and download all updates and all arcade roms needed.

Add-Ons

SDRAM Board:

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

IO Board:

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
  • 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

USB Hub:

  • Adds 7 full size USB connectors, so that you can connect any other accesories, like mouse, keyboard, controllers, etc.

Case

There is a perfect case for a fully assembled MiSter, which can be bought from MiSTer Addons shop. It looks like this:

The assembling may take about 1-2 hours, but it sits perfectly, gives access to all interfaces, buttons, and provides passive cooling. I absolutely recommend this case.

Updates

In order to update cores, you can check for new updates in this post and then in this project.

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 the script by RetroDriven after the initial installation. It can updte the Mister Cores, but also download other unofficial cores (from Jotego and other developers). Just put the file into the scripts folder, then connect mister to the internet, go to scripts, choose the RetroDriven Update suite and it will ask you, what should be updated.

I always choose RUN ALL Essential Scripts (Auto Pilot Mode) and RetroDriven MiSTerWallpapers Updater.

Customisation

You can customise a lot of things. Go to the Script settings and choose a script you want to start. Some scripts will switch resolutions, other can do updates.

E.g. you can change the wallpaper for the main menu (new wallpapers can also be downloaded using the update scripts explained above). See this page to find out, how to change wallpapers.

Coming soon…

  • Connecting to a non HDMI monitor
  • Configuration files