SidViscous
Member
MiSTer for DuMMies
MiSTer is a hobbyist, open-source, FPGA based retro gaming platform built around the DE10-Nano FPGA development board.
The DE10-Nano is intended for engineering/educational use, and so is usually sold at-cost in most markets. It features a dual-core Cortex-A9 processor which runs a Linux kernel to handle the various port I/O tasks, but the main point of interest is the industrial-grade Intel Cyclone-V FPGA chip it has.
The Cyclone-V is the same chip the Analogue SuperNT/MegaSG systems use, but those are commercial grade versions which cannot run as hot and cost more to purchase for commercial use.
MiSTer is a platform, not a piece of software. It comprises of a custom Linux kernel for the DE10-Nano board that allows it to be hooked up to a variety of add-on boards. There is then the "menu" core which is the first thing that pops-up when you power the system on, and this menu core lets you configure the system and load into other cores. Other cores may emulate a system (e.g. SNES) and you then load ROMs from within the cores menu, but other cores will power a single machine and will require the game ROM to already be placed on the SD card in a specified location.
There are around 80 cores currently released or in development, as it's an open-source system anybody can develop and contribute to these cores. The only real limitation is the size of the FPGA on the Cyclone-V, which could theoretically allow up PSX/N64 level emulation.
FPGA vs Software Emulation.
It's kind of a long story...
Back when electricity was first discovered by us dirty furless apes, we observed the way electrical currents behaved and invented a little thing called the transistor. Transistors are like tiny electrical bouncers, when added to a circuit they can be told to only let the current continue if it's positive or negative. From this, we developed logic gates which could do some really simple AND/XOR/OR type logic.
Neato! so how the fuck did we get to Farcry?
Well, we cheated. Electricity is so damn quick that we could just keep on stacking logic gates onto other logic gates to have them perform increasingly complicated arithmetic instructions.
We outwitted silicon to add and subtract 1 byte (4bit) numbers with a few dozen gates, then multiplication with a few thousand gates, then we started giving it larger 8-bit numbers, then 16-bit numbers, and on we went. Now we've reached the point where a modern CPU like the Intel i9 has 9 billion transistors and can perform ~300 different instructions on 128-bit numbers.
So let's get back to emulation.
FPGA chips have hundreds of thousands of programmable logic gates, and by programming these logic gates we can get the FPGA to mimic other chips on a logic gate level. Effectively becoming an identical clone a Motorolla 6800 CPU, or even being a clone of a circuit board containing multiple chips. The only real limit is the chips it's simulating must fit within the number of programmable logic gates the FPGA has on it. More expensive FPGA chips, have more programmable logic gates, and can therefore simulate more complicated and modern chips.
So an FPGA chip, if programmed correctly, will have the exact same timings and behaviour as the original system. But of course, this relies on us knowing exactly how the original chips work on a logic gate level, and so the accuracy of an FPGA chip is only as good as the knowledge we have on the chip we're emulating. So it's not complete magic, and will not give us 100% accurate emulation of chips we haven't fully reverse-engineered.
Neato! so how the fuck did we get to Farcry?
Well, we cheated. Electricity is so damn quick that we could just keep on stacking logic gates onto other logic gates to have them perform increasingly complicated arithmetic instructions.
We outwitted silicon to add and subtract 1 byte (4bit) numbers with a few dozen gates, then multiplication with a few thousand gates, then we started giving it larger 8-bit numbers, then 16-bit numbers, and on we went. Now we've reached the point where a modern CPU like the Intel i9 has 9 billion transistors and can perform ~300 different instructions on 128-bit numbers.
So let's get back to emulation.
FPGA chips have hundreds of thousands of programmable logic gates, and by programming these logic gates we can get the FPGA to mimic other chips on a logic gate level. Effectively becoming an identical clone a Motorolla 6800 CPU, or even being a clone of a circuit board containing multiple chips. The only real limit is the chips it's simulating must fit within the number of programmable logic gates the FPGA has on it. More expensive FPGA chips, have more programmable logic gates, and can therefore simulate more complicated and modern chips.
So an FPGA chip, if programmed correctly, will have the exact same timings and behaviour as the original system. But of course, this relies on us knowing exactly how the original chips work on a logic gate level, and so the accuracy of an FPGA chip is only as good as the knowledge we have on the chip we're emulating. So it's not complete magic, and will not give us 100% accurate emulation of chips we haven't fully reverse-engineered.
Neato, but what can I emulate on it today?
Neo-Geo, and let's face it - that's all you need, it's the greatest system created, mankind's magnum opus, it has Metal Slug and that awesome boot-up music. What more do you want? But if you are "weird" and like "other" systems, it can do those too, I supposed.
- CPS1 & CPS2
- Super NES
- Megadrive / CD
- Gameboy
- GBA
- Amiga
- MSX
- TurboGrafx / PC Engine
- NES
- Mastersystem
- x386 PC / DOS
- ..others
It also has quite a lot of arcade machine cores. As arcade machines often had hardware specific to just a single game; you'll find a lot of cores that play one game and it's variants, like classic Donkey Kong or Pac Man.
I'm in, what do I need?
Well first and foremost you'll want a DE10-Nano, you can buy these from somewhere like Digikey for around $120/£120. As these are sold without much $$ mark-up (for now) you may want to jump on the train and pick one up before they figure out us nerds are using them to play Ms Pac-Man.
It comes with a power supply, a couple of USB cables and a tiny 8GB memory card. But here is the neat thing, just the DE10-Nano by itself is enough to do some of the cores, Megadrive and Gameboy Advance are probably the popular ones. But If you intend to go this route, at least pick up a cheap $5 heat-sink for the thing and possibly a fan. the FPGA won't damage itself, but it can glitch if it's running too hot for too long.
MiSTer Add-ons
There are various other boards you can (and down the line, probably should) buy.
Highly Recommended
SDRAM
The DE10-Nano has 1GB of DDR RAM built into it, but the funny thing about modern RAM is that it's been designed and optimised for fetching large amounts of data at once, and when just peeking and poking tiny bits of information, it's actually slower than the old school stuff.
Some systems (GBA etc) had pretty slow RAM too, which is why you can emulate those with just the DE10-Nano. But for systems with the good 'ol fashioned RAM, you'll need to buy an SD-RAM board (up to 128mb) that can peek and poke those bytes like it's 1982.
You can get 32MB, 64MB and 128MB - whilst you can emulate 98% of the stuff on the 64MB board, just get the 128MB. You'll need it for the complete Neo-Geo library, and it's also going to future proof you.
SDRAM Requirement by cores
Recommended
I/O BOARD
This adds a VGA port so you can hook it up to a CRT, and adds three buttons so you can easily reboot and restart the system. It also has a fan which blows down onto the FPGA chip beneath to keep it cool, you can buy a bare version of this board with just the fan if you really don't want the other functionality.
USB HUB BOARD
The DE10-Nano has a micro-USB port, but this is an OTG port. So if you want to use a USB device with it, you'll need to plug an OTG hub into the DE10-Nano, then plug your USB devices into the OTG hub.
The USB board is a just a nice OTG hub that fits into the same form factor as the DE-10 itself. It provides 7 regular USB sockets, and it also has a separate power-in so you can plug in devices like wi-fi dongles without draining too much power from the DE10 itself.
Who Gives A Fuck?
RTC BOARD
It's a real-time clock!
You can just connect the DE10 to the internet via the LAN port and it'll set the time automatically. But if you really want your virtual amiga to have the correct time offline, you can get this cute little real-time clock board. Note the board is slightly sketchy, and can sometimes touch the boards above/below it and cause a short circuit. So you may want to also get some spacers, or just wait for a revision, or just not bother.
Case
If you don't want to go nude, there are various cases available. Due to all the possible combinations of add-on boards, often these cases will be 3d printed-on-demand based on your own setup. Personally I think the raw open circuitry is quite sexy. But if that makes you feel ashamed, you can get something that looks like this instead:
Last edited by a moderator: