What is the MiSTer?
What is the MiSTer?
Let's say that the MiSTer is, in theory, the "summary" of the best emulation can offer today; I say theoretically because it all depends on the knowledge of the real hardware that it is going to emulate. But let's go into a little more detail.
FPGA stands for field-programmable gate array, a type of integrated circuit that can be reconfigured after manufacturing.
Unlike a traditional computer chip, FPGAs use programmable logic blocks and interconnects that can be reconfigured to suit a variety of different purposes. Basically, an FPGA can be reprogrammed over and over to act like any type of digital circuit. While older FPGAs used circuit diagrams, new ones instead use text-based programming to describe the behavior.
This of course is only possible if you know in depth how the chip works at the hardware level, which lately is becoming very detailed especially for proprietary chips thanks to the great work of decapping and subsequent analysis and circuit reconstructions starting from the microscope photographs that some devs (such as the French Furrtek) are carrying out. Once the scheme is understood, this is translated into HDL (Hardware Description Language), which in the MiSTer becomes a “core”, thus allowing the FPGA to emulate as if it were the real hardware.
In this way, if the reproduction of the chip is correct at 100%, you will have a very close proximity to the real machine since the emulation this time is carried out at a "lower" level, the hardware one, thus allowing the various components of the original motherboard emulated in parallel (so we will also have the same bugs present in the original machines!) without any slowdowns, lags or other intrinsic problems of the software emulators which by definition must somehow obviate the impossibility of making the software work in parallel. .
WE PROGRAM THE DE10-nano
This little gem represents the (expensive!) Heart of the device! Unfortunately, it is only possible to use this tab to have all the available functions created by the developer community.
By purchasing the development kit (which is discounted for about 25-30% if you prove to be university students or professors!) You will be ready to install data on microSD and configure the device even in the absence of accessories!
- Win32 Disk Imager or any other tool capable of "spreading" the image of an SD (whale Etcher, dd, etc).
- microSD (also the original one of the de10-nano)
- The latest version of Mr. Fusion's SD image downloadable from here: https://github.com/MiSTer-devel/mr-fusion/releases
- A USB HUB
- A USB keyboard
Back up the microSD supplied with the de10-nano using Win32 Disk Imager (not necessary but it contains the original software / firmware and it is always good to have a copy even if it is useless for the MiSTer)
2) Extract and flash the latest version of Mr. Fusion's SD image into the microSD
3) insert the microSD into the de10-nano and start it
4) after a few seconds the orange LED will turn on and, if you have also connected the HDMI cable, a blue screen will appear on the screen followed by a splash screen:
COMPONENTS TO BUILD IT
(necessary and not)
- MiSTer SDRAM Extra Slim Board (from 32 to 128MB as needed):
Here to see which cores consoles require it, here for computer cores.
- Dedicated 7-port USB Hub card (if you already have a self-powered one you can use the one on the microUSB port)
- MicroUSB adapter to also power the 7-port USB card (if you don't use it, you won't need it)
- I / O card with VGA video output, audio, 3 keys, 3 status LEDs, additional microSD slot (in addition to the one already present in the de10-nano), power port similar to USB 3.0 (but not usable as USB) and fan connector.
- Fan (if not included in the I / O board)
- RTC card (not needed if using a network connection)
- Power splitter cable (to power the I / O board and the DE-10 at the same time)
- HDMI cable
- USB keyboard
- WIFI key (optional, you can safely use a network cable as an alternative - it also works as an RTC if connected to the internet)
- Bluetooth adapter (required if you want a wireless controller, here a list with the various latencies found - the USB controllers also work very well but the device is small and rather light so you risk doing damage by connecting a controller with the wire)
As you can see the parts needed to build it yourself are different and this is the only way to avoid paying too much! Before the shortage of microchips due to covid19, it was possible to buy pre-built and already programmed for about € 300-350, now with this amount we are now able to do it on our own.
We have to spend from 180 € to 210 € for the de10-nano (on the official Terasic website) and another 85-90 € for accessories (taking them very carefully on AliExpress).
Some of you will say that it is an absurd figure and in part I agree it is also true that for a "one-off" expense you have almost all the machines available (even old computers and numerous arcades!) At your fingertips!
How many gigs do you need? Take a look at this article.
F1 - change the background cyclically with the predefined modes (static, wallpaper, color bars, black).
F9 - Start the Linux shell (login: pwd = root: 1 - F12 to return to the menu).
F11 - Bluetooth pairing menu.
F12 - Press it to go from the main menu to the cores menu
Left Ctrl + Left Alt + Right Alt - it corresponds to pressing the "USER" key on the I / O board which usually resets the core where you are.
Left Shift + Left Ctrl + Left Alt + Right Alt - perform a quick reboot of the MiSTer.
Windows + Left Shift + Print Screen - Save a screenshot (the screenshot files created are saved in a folder \ screenshot on the FAT partition of the SD card; this folder will therefore contain subfolders named after the corresponding core in which a screenshot was taken; the saving format is the PNG.
If you have WiFi this icon will appear.
This control panel indicates the presence of a Bluetooth device
The presence (or not) of the SDRAM module is indicated as follows:
No modules installed
32MB of memory installed
64MB of memory installed
128MB of memory installed
The MiSTer, from what I could see, looks for the ROMs by itself based on the file extensions, in any case it is good to have an organized structure and the basic one (of the internal microSD) is to have the folder:
root: \ games \
inside which we have the specific folders for each core and that is root: \ games \ SystemName \
as in the picture below:
inside which to insert the respective ROMs (the arcade ROMs go in the root folder: \ games \ mame or root: \ games \ hbmame).
So you can recreate this structure either on a USB device, copy the files, insert the key, turn on the MiSTer, load the core and load the ROMs from its menu!
CONFIGURE A BLUETOOTH JOYPAD
USB pads work as soon as they are connected; for the bluetooth ones it is necessary to have a USB dongle that allows it to work. I used the ASUS model USB-BT21 (the same one used to perform the softmod on the Wii Mini !) and it worked great. You can read the very extensive list of tested products with relative latency times and rankings here.
The procedure is basically the same for almost all devices, namely:
1 - Go to "Scripts" Yes bluetooth_pair within 60 seconds press the key on the pad (or the combination of keys) to make it go into pairing mode (eg for the PS4 pad the keys to press are PS + SHARE until it is recognized by the MiSTer).
For some joypads the procedure is specific as for example for the PS3:
Connect the pad via USB to the MiSTer (if you don't have it, the de10-nano package already contains a microUSB cable).
Press the PS button and wait for the red LEDs to stop flashing (a few seconds) and only one remains lit.
Unplug the pad - the lights will start flashing again until it connects and only 1 LED remains lit.
Once the pad is connected, go to the menu with F12 Define joystick buttons and map all the buttons (you will also be asked to map the "buttons" relating to the movement and click of the mouse and the key to evoke the system menu).
START A CORE AND ITS GAME
To start the games you must first start a specific core from the special selection menu that appears as soon as you start the MiSTer (divided into Arcade, Computers, Consoles, Others, etc.).
Once the core has been started from the menu, use the first item “Load…” to choose the ROM (if the menu does not appear automatically, press F12 or the relative key of the pad you have configured). Before loading it you can fiddle with the various settings available (audio, video, cheats, etc.). Remember that ONLY the games of the loaded system can be started (eg if you start the Genesis core, forget about being able to start NES titles from here).
To exit the core and select another one, go to the screen that is all the way to the right in the menu and use the "Core" item.
To reboot the system: still from the menu screen located all the way to the right, select the last option “Reboot (hold cold reboot)”; alternatively you can press on the keyboard, if it is still connected, the Left Shift + Left Ctrl + Left Alt + Right Alt combo; this “warm” reboot will take approximately 2 seconds. By keeping pressed for a few seconds on the item “Reboot (hold cold reboot)” the system will restart completely and it will take about 7 seconds.
IT IS NOT POSSIBLE TO TURN OFF THE DEVICE, to do this you must turn off the power in the way you prefer!
HOW TO ASSEMBLE THE MiSTer FPGA!
Let's start with these components by saying that there will be NO welding to be done:
As you can see the USB expansion card, compared to the one shown above, has 9 ports instead of 7;
1 of these [PWR1], is used for the power supply;
in the kit shown in the photo the splitter cable is also different as it has a barrel jack and a USB (instead of 2 barrel jacks like the one in the photo above);
this is due to the fact that there are different versions of these USB expansion cards, choose the one you like best and, if you take it apart, make sure you also buy the splitter cable and the corresponding USB connector to pass the data (see beyond).
YOUR MiSTer IS FINALLY READY !!!!
NOTE: when the vga_scaler parameter is set to 0, the VGA port of the I / O board outputs the original 240p signal for most cores, the old standard for 15khz televisions. Many LCD monitors may not recognize it because it is below the minimum standard of VGA on CRT (480p / 31khz); for this reason, if the signal is not shown with VGA connection, the vga_scaler parameter must be set to 1, so as to have an output like that of the HDMI port (720p if used in conjunction with the video_mode = 0 parameter).
Miscellaneous / Backup
If you want to go back to the original MiSTer SD as provided by Terasic, here is a dump of the original microSD