Jump to content
IGNORED

the MiST FPGA


Newsdee

Recommended Posts

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

 

Link to comment
Share on other sites

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:

Edited by Newsdee
  • Like 3
Link to comment
Share on other sites

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.

Link to comment
Share on other sites

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.

Edited by Newsdee
Link to comment
Share on other sites

The Atari 5200 and 800/XL cores were written by foft from these forums, here's the thread:

http://atariage.com/forums/topic/216991-5200-in-fpga/page-5

 

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

Link to comment
Share on other sites

  • 4 weeks later...

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.

 

The ARM runs a custom firnware which is open source © so you can tinker with it if you want. The board is unbrickable, if a firmware update fails there's a couple of ways to clear it and reupload a fresh firmware. I'm not sure if it qualifies as OS but in any case it boots immediately so it doesn't feel like one.

 

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

  • Like 1
Link to comment
Share on other sites

Till Harbaum (designer of the board and main contributor to the ST core) has recently put up a series of HDL tutorials:

https://github.com/mist-devel/mist-board/tree/master/tutorials

 

The examples use the MiST but if you have another FPGA board it should be possible for you to port them by remapping the pin assignment in the compiler (Quartus II for Altera).

Link to comment
Share on other sites

  • 3 months later...

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

 

https://github.com/mist-devel/mist-board/wiki

Edited by Newsdee
Link to comment
Share on other sites

  • 1 month later...

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

 

Barnie

Edited by barnieg
Link to comment
Share on other sites

  • 4 weeks later...
  • 3 weeks later...

This looks pretty cool. Is there a central place to get all of the cores? I noticed that they say it also does arcade games. I saw Moon Patrol, does it do any other arcade games?

Yes, it's all on github with a wiki:

https://github.com/mist-devel/mist-board/wiki/CoreStatus

 

You'll find the other available arcade games at the bottom of the page.

Link to comment
Share on other sites

  • 7 months later...

I just purchased one from Dragonbox.de (Germany) great price, cheap shipping and excellent service.

 

I have been trying out lots of the Console cores and computers.

 

Works great , my Flat screen has VGA input and audio input via 3.5mm jack so works great with the MIST.

 

Still learning all about it.

Link to comment
Share on other sites

  • 7 months later...

There is now a successor project, MiSTer: https://github.com/MiSTer-devel/Main_MiSTer/wiki

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.

Link to comment
Share on other sites

  • 7 months later...

Just a quick update that MiSter received a large number of ports from the MiST cores.

 

Putting arcade cores aside and if I'm not mistaken, only these are still exclusive to MiST:

 

- Astrocade

- Atari ST

- Sinclair ZX81

- Videopac

 

No timeline (or even plans that I know of) for closing that gap, but it's still great progress for the MiSTer project!

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...