FPGA MiSTer Guide


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.

Another issue is the scaler implementation. I am not a huge fan of current scaling algorithms, the picture is not very sharp. Cores on the original MiST look sharper. This «issue» is currently discussed by users and developers and it will be «fixed» in near future.

MiSTer was created by a russian enthusiast, known under his alias «sorgelig» (the real name is Alexey)

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

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

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

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

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

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:

Other cores show their own menus, usually the first screen allows you to load games and change core’s settings.

Let’s see the menu options of the Genesis core (other cores has similar options):

  • Load: load a ROM
  • Region: select the console’s region
  • Auto region: the region will be automatically selected.
  • Aspect ratio: 4:3 or 16:9
  • Scandoubler Fx: enable scaling or scanlines
  • Reset: reset the game
  • Swap joysticks:
  • 6 buttons mode: the original controller had 3 action buttons, but then came another revision with 6 buttons. You can switch between these versions. Many games require 6-button mode (or play better with this version)

The core menu of the NES core looks similar, but has other specific options.

Specific for the NES are:

  • Hide overscan: hides the hidden (on CRT) area with pixel garbage
  • Palette: you can choose between different NES Palettes
  • Swap joysticks:
  • Invert mirroring: some games require this memory specific option

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!

Presentation:

SDRAM Board:

There is one limitationn 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 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

Coming soon…

  • Connecting to a non HDMI monitor
  • Configuration files
162 Всего 3 Сегодня