Wondering who else has one around here? It's a very neat "consolized" FPGA box with some great things and a few quirks.
Basically it's an open hardware platform (i.e. you can go and build your own, or expand on it if you want) that many open-source VHDL projects support (each machine "core" being its own project). It houses the latest versions of Minimig or OpenMSX, and its own Atari ST core, but also does a few consoles (8-bit so far).
Yes happy to share impressions, just not sure where to start. Feel free to ask me questions.
There's a developer aspect to it which is very interesting, but let's summarize that the hardware itself is final, and people are basically now pushing the boundaries of of it. It hosts both original implementations and ports from other FPGA boards, and it's all done in cordial collaboration as all code is open source. That's an important point for me because basically any work done on this thing benefits future projects, the same way the MiST itself benefited from previous ones. There are similar boards, but the MiST has the advantage of being cheaper, having USB ports, and having a lot of cores already (14 computers and 9 consoles right now).
But enough of that and let's talk games. Basically the big advantage of an FPGA vs. an emulator is that it runs things in parallel, and if done right it feels identical to the original because there is slowdown from a CPU or host OS.
Here's for example Devil's Crush running on my Supergrafx:
And on my MiST (note the video is 30fps as it was made long ago, but the core runs 60fps)
For 60fps heres Super Star Soldier:
As I said earlier cores have various level of maturity and compatibility. Focus is on gaming but there have been forays in other areas. At least one musician used a couple of MiST in concert to replace an old Atari ST as MIDI machine.
I'd have to cover each core separately to give details, but lets cover a few cases. The NES for example doesn't support as many mappers as an Everdrive, and doesn't support saves (save RAM is implemented but not written to SD card) but the games run fine otherwise. But at the same time the atari 800/5200 is implemented fine without any major issues.
Setup for consoles is extremely simple, you just need an SD with core files (many cores support switching to another) . Computers sometimes more tricky with setup a harddrive, but the wiki on github has details on how to do it.
In terms of donnsides, one caveat of the MiST is that it *is* a clone of old machines meaning e.g. video timings follow the original closely. As a result the timings of the VGA it generates is sometimes a bit off spec (not 60hz exactly), causing some imperfections in modern screens (some vertical lines appear thinner or scrolling isnt as smooth). It can be fixed with an upscaler; I have made a video with a comparison:
In terms of controls, there are two options, the DB9 joystick ports and USB. DB9 supports two-button sticks but not paddles (for that you need a 2600-adaptor to ise USB). Most cores available only use on or two buttons (for early conputers) or up to four for newer consoles (e.g. NES). You can use a DB9 controller with the NES but you'll have to open the in-game menu (OSD) to press select or start. Personally I just use USB.
USB controllers can be mapped via a MIST.INI file on the SD card. While core only use up to four buttons (A, B, start, select) you can map any USB button. The mapping allows you to "wire" a physical button to one or several internal buttons, including directions. This is useful to map some buttoms to "up" to use in old games that didn't have a jump button.
You can also assign keyboard hits to a given combination of buttons. This allows using button combos e g. start + select to open the OSD (note - without this you can open the OSD with a USB keyboard or a tiny button on the front panel of the MiST).
USB mice are supported, and there there is an optional feature to have a USB pad act as a mouse by keeping select pushed (then move with directions and use L/R for button click). OSD navigation can also be done from the gamepad so you don't have to use a keyboard just to launch Atari or Amiga games.
In terms of setup consoles are much simpler (vs. setting up a computer core) because they have fixed hardware and they only read ROM files. You can put roms anywhere on an SD card (like an Everdrive) and long filenames are supported. You can use subfolder and I keep things in alphabetical folders to find games without too much scrolling ("page up/down" works btw).
I separate many systems to their own SD card, so I can switch from NES to PC Engine as easily as changing carts on a console. Often I can use the exact same cart into an Everdrive (or their computer equivalents) because the systen files won't interfere with each other. I do this for the PC Engine and ZX Spectrum for example.
If I'm not mistaken it supports all 5200 games already, at least it ran everything I've tried on it. I found the 800 version of AlleyCat was much more colorful than the IBM (CGA) one I used to play ad a kid...
I've just bought some Atari paddles (and adapter) to try with the MiST and get a more realistic experience (before I used USB analog joysticks but it's not the same!).
In reply to a few comments in other threads, the board has an ARM microcontroller in charge of basic housekeeping operations such as loading a core from the SD card on startup, loading a rom/game/floppy from the HDD, or set configuration options for the core.
One nice feature is the firmware parses USB HID, making it compatible with a lot of existing controllers. Yesterday I played Body Blows with my new Hori VLX stick (I tried and it worked out of the box).
There's been quite a few updates recently, courtesy of HDL developer Sorgelig:
- C64 core improved with better code for SID and JiffyDOS support
- ZX Spectrum is now timing accurate and supports ULA+
- New SAM Coupé core
- New Apogee BK-01 core
- New Vector 06C core
- New Electronika BK0011M core
As I mentioned earlier Commodore 16 (with extra memory) is now supported is early days for that core but works very well. I have to say I get more "fun" out of the MiST than emulation and it feels closer to real hardware. I think its got to the point where it would be nice to see third party addons targetted at different cores. For example rather than the midi add on possibly an SIO adapter board. It would also be good to see alternative case designs and the use of the MiST as the base for Out of the Box retro setups
A big bonus its its open source nature, I would find it difficult to support any closed source alternatives too the MiST to many downsides
Cores are being ported to it and there are additional cores being worked on.
The new features are:
Built out of an industrial PCB board (Terasic DE10 Nano Kit)
Cyclone V FPGA with 110K LE (vs. Cyclone III 25K LE)
HDMI out for all cores
VGA available with optional add-on board (and through it, 15khz video as well)
Optional RTC (hardware clock) via add-on board
Broader support in USB controllers
Improved Genesis and PC Engine cores (some stability issues fixed with the better FPGA)
PC 386 core
X68000 core (early days)
Ethernet support, you can FTP into it to add/remove files
Cyclone V chip has an embedded ARM CPU which runs a minimal Linux alongside the FPGA cores
Serial support via USB, you can connect into it from your PC and telnet/putty into Linux (e.g. for debugging)
The MiST still has a niche as some cores aren't yet ported (e.g. Atari ST) and it has native MIDI connections.
Price-wise the MiSTer is cheaper for bare hardware ($130 for DE10 Nano + about $20-$30 for an SDRAM board), but costs more if you get more add-ons and 3d print a case.