As retro gamers, we all know the yearning to be able to play through a grand history of games from a variety of systems, but having to deal with the struggle of not only owning and maintaining an array of vintage hardware, but also having them constantly hooked up to our displays and audio systems. Many of us can’t help but dream about the possibility of one device that could output modern video signal and reliably play our full game library just as well as the original hardware. As more systems (and the games themselves!) climb in resale value and hardware ages and eventually dies, we begin looking for alternatives to balance our desire to play though history and manage our sanity.
Many of us have been playing around with classic game emulators and ROMs for quite a while and a few years back, the Raspberry Pi scene did quite a lot to re-ignite strong interest the emulation environment. However, the most discerning retro gamers are increasingly looking at the world of FPGA for opportunities to bring the conveniences of emulation to a hardware that is closer to original console hardware.
Why FPGA over Software Emulation?
For those that are relatively content with their emulation setups and the flexibility it gives them, it may be easy to question what the big deal is with FPGA setups. The short answer is that FPGA is programmable hardware that, when utilized well, typically provides a more accurate and efficient replication of the original hardware compared to software emulation. (Also see Wikipedia for a more general and technical definition of what FPGA hardware is)
One of the leading voices in the FPGA and MiSTer community is the man known as SmokeMonster. I talked to him about his perspective on FPGAs and how he would explain their powers. He shared a more involved, but eloquent explanation:
“FPGA-based processing is extremely efficient at performing the task of hardware emulation, since it allows multiple operations to happen simultaneously in real time. Electronic PCBs [from original gaming hardware] are chock full of different chips and circuits operating in tandem at extremely precise timings. Perfectly emulating the real hardware of even simple consoles like the Nintendo NES requires an absolute monster of a traditional CPU to get similar results to low-end FPGAs. So, traditional emulators usually take shortcuts where FPGA doesn’t.
This also means that audio and video can be output exactly like a real system would, and with MiSTer that equates to zero-latency analog video output, or extremely low-latency scaling using MiSTer’s ever-evolving hardware HDMI scaler. You can even feed controller and serial inputs directly to the FPGA for lag-free controls, or you can connect via USB which has an extremely fast polling rate (and is always dropping). So, little by little, MiSTer is evolving into the ultimate emulation platform, side-stepping the unknowns of a computer setup where controller polling rates vary, and where different processors and video cards yield vastly different results.
Despite what people might expect, I always caution against declaring FPGA-based emulation superior to “traditional” emulation, in the same way that you can’t declare “cars” faster than “trucks”, since it’s too vague of statement to carry any meaning. That said, put a good FPGA implementation up against a traditional software emulator and you probably will feel a big difference between them when a core is done right.”
So for those of us that are going to greater lengths and investments to enjoy a more idealized retro gaming experience, FPGA-based setups are very appealing. There are currently still many limitations due to it being early in its development phase, but the possibilities are exciting.
It is also worth stressing the FPGA technology is also one of our best ways to possibly preserve the “embodiment” of a console or personal computer for decades to come. SmokeMonster explains this so well:
“I should preface the reason why so many of us are interested in FPGA-based hardware emulation by denoting exactly what FPGA code is. Verilog and VHDL are hardware description languages that were originally designed to document chips both for manufacture and research. So, instead of random blueprints for electronic circuits, manufacturers standardized them in Verilog & VHDL. They could describe a single chip or an entire system. For example, if you have a Neo Geo custom IC documented perfectly in Verilog, you can send that off to factory and produce the actual chip. Verilog and VHDL are the languages used to write FPGA cores, and offer a theoretical level of perfect accuracy to original hardware. Of course, that always comes down to the quality of an implementation and of other technical restrictions, and few cores ever achieve true “cycle accuracy”. But that is the ultimate goal of any core, even though it could take a decade or more of open-source contributions and research to get there. Open-source FPGA cores are permanent preservation of hardware, so the MiSTer project is long-term. Although it’s currently based on the Terasic DE10-Nano, it will be relatively simple to port its cores to future devices. When all of the original hardware and custom chips have died, FPGA recreations can be used to emulate or even produce physical replacements…
Each new FPGA hardware implementation also offers a growing arsenal of “parts” to use in other cores, known as soft cores. They can taken from one system and plugged into another because an FPGA core is essentially a blueprint for a PCB. Breakthroughs like a cycle-accurate Motorola X68000 give any system based on that CPU a huge head start, and as more and more chips and circuits become available, more complex systems will become easier to port. So when Jotego built his Ghosts ‘n Goblins arcade core (by physically logic-probing the actual arcade PCB), he didn’t have to re-invent its processor or sound chips from scratch, since they were already available. “
Current Commercial FPGA & Multi-Console Projects
The talented team at Analogue helped shine the spotlight on the concept of FPGA for many retro gamers. The company started by creating modern consoles that used the guts of classic Nintendo and SNK machines. As cool as that was, they knew that effort couldn’t scale in the long-term and needed something that could be mass produced but share much of the same accuracy.
Analogue’s Nt Mini (now discontinued / find on eBay), in particular, was a high-end NES/Famicom clone that not only played both types of cartridges reliably, but also had updated firmware via FPGA-wonder, Kevtris that added extra “cores” to the system — allowing gamers to play ROMs from a handful of older systems right off an SD card. From a technical perspective, a core is the code needed to configure the FPGA, emulating the console or computer but using physical logic gates instead of software code compiled to run on target hardware.
Since then, Analogue has produced the Super Nt (for Super Nintendo and Super Famicom) and are prepping the Mega Sg (for Sega Genesis and Megadrive + ability to add an original Sega CD unit). The Super Nt, while able to upgrade the firmware to play SNES ROMs, was a little disappointing that it wasn’t able to play older ROMs like the Nt Mini. As amazing as it would be to have a full lineup of Analogue consoles for many more systems and/or have fully working original consoles with modern video outputs, it would be very helpful to have a console-like box that could have the accuracy of Analogue’s machines while being able to host many consoles in a single device.
The Polymega is a potential “all-in-one” solution that has quite a bit of hype. However, since it was announced in the era of Analogue, Polymega let down many enthusiasts when it was revealed that the console was going to run pure software emulation instead of utilizing FPGA. Many retro fans were considering it a worthwhile investment to buy different game modules to support cartridge and controller formats for different consoles (which is still pretty cool!), but only as long as the accuracy of game playback is high (we still don’t know what level of consistency to expect as product is unreleased).
This is where the MiSTer and its future potential comes into play.
What is MiSTer FPGA?
While FPGAs are just the building blocks of a full console system, the MiSTer project is an organized project to allow people to build their own hardware emulation consoles (or other customized gaming hardware setups) while supporting many different vintage gaming and personal computer platforms.
Colin from MiSTerAddons.com is another leading spokesperson for the platform and explained the project as follows:
“The objective of the MISTer project is to create an open source, community driven, retro gaming console. In its current state, it is built on the Terasic DE10-Nano platform, which features a Cyclone V FPGA, DDR3 memory, an ARM processor to handle input and output, HDMI output, Ethernet, and a USB On-the-Go port, among other feature useful to development. The MISTer has a menu, which allows the user to select cores, all of which are stored on a microSD card. A “core” is equivalent to an individual emulator.
A console or computer code will often contain “soft cores” which are self-contained representation of individual components on the system. A given system will often contain a CPU, co-processors (GPU, APU, IO handling, etc.), system memory, power circuitry and other discrete analog components. The soft cores are sometimes common between multiple cores, so their FPGA representation can be easily ported between cores. This helps speed up development of systems with similar architecture.
The menu and main MiSTer code is overseen by Sorgelig, who has also designed most of the current add-on boards. There are a few other boards being made, not by Sorgelig, but the majority of the boards sold are Sorgelig’s design, or at least based on it.”
Using MiSTer as a Specialist for Certain Console Platforms
Even if you have original console hardware of the more common systems or have been purchasing the likes of Analogue’s Nt Mini (this NES FPGA setup is out of production and now sells on eBay for $1200 to $2000), the Super Nt or Mega Nt, there’s still some significant gaps in classic platforms we would love to experience in a high-quality FPGA setup as opposed to investing in costly original hardware (that may also need some modernization or upgrades).
The two platforms that come to my mind are the PC Engine/Turbo Grafx-16 and the Neo-Geo (others would be quick to add the likes of the 3DO or Atari Jaguar). And while software emulators have been fairly solid for these two platforms for a while, there is still a reason why many gamers still want to play their interesting game libraries on original hardware. However, with these two hardware platforms not being in abundant supply (and not even especially inexpensive in their original retail presence), they are prime candidates to have solid FPGA-based alternatives.
I’m really hoping that Analogue eventually creates a polished FGPA console that specializes in the PC-Engine/TurboGrafx-16 platform (that also supports the CD formats) and the Neo-Geo (even though the company started out by selling luxurious, but pricey Neo-Geo hardware but admittedly one of the best consoled MVS systems ever). However, not all of us can invest in a $190+ console for every platform we want to play (check out our Console Hardware Price Guide, if you want peek at price points hardware has reached) or perhaps, we are trying to reduce how many machines we have hooked up to our entertainment system (or maybe you even want excellent hardware in more than one location).
Anyway, MiSTER is already an excellent solution for those wanting to explore the TurboGrafx. Colin from MiSTerAddons.com shared his confidence in the platform’s current PC Engine support:
“If the Analogue systems are a 100 in terms of hardware replicate quality, the current TurboGrafx-16 core quality is an 85 (and still improving). It plays excellent — so well that I sold my RGB modded PC-Engine Core Grafx.“
He actually ranks the MiSTer’s PC Engine/TurboGrafx support higher than any other consoles currently — only exceeded by some of the published arcade and Amiga cores. (See more of his core quality evaluations in the “Current Status and Future” section below)
While the Neo-Geo will take a bit longer to get to the same support level, it is currently under development and is showing promising signs. While we also get into the Neo-Geo’s technical challenges later in the “Current Status and Future” section below, we could soon see MiSTer as the most accurate way to play SNK’s classics without investing in something that depends on legacy hardware.
— SmokeMonster (@SmokeMonsterTWI) January 27, 2019
SmokeMonster also reminds us that, in addition to hardware accuracy, there’s other advantages of the MiSTer/FPGA community that can make it a compelling piece of hardware to explore the more exotic consoles:
“MiSTer offers a lot of potential advantages over original hardware too. The MSX core is a great example. It is a hybrid MSX implementation that supports MSX, MSX2, MSX2+, and Turbo-R/MSX3. It supports two virtual hard drives up to 2GB each, where the original hardware was limited to a few megabytes or something. So, it’s an extremely accurate MSX with a menu that can include every single game or program ever released, you can use any controller or keyboard you like, and you can play it on a big TV via HDMI, on a monitor via VGA (zero lag), or on a CRT TV or PVM via RGB or component (zero lag again). “
Even if you aren’t typically someone who would have considered piecing together some DIY hardware like a Raspberry Pi, when you evaluate these selling points, a MiSTer all of a sudden seems like a great way to supplement your existing hardware collection.
Personal Computer FPGA Setups
Even though I typically focus on console games, I have to admit, I’ve been digging more into vintage PC games as well (I even resurrected my old 286 DOS machine in my parents basement). Even though my 286 has been a great blast from the past, I can’t help but want to dig into a lot of older personal computer goodness without too much setup and worrying about that old hardware dying. Upon hearing that MiSTer supported a handful of classic personal computer platforms, I couldn’t help but be excited.
SmokeMonster, has put together some PC core packs to help make the setup and experience more enjoyable for us mere mortals. The packs includes front ends for some of the popular PC cores, so a keyboard and mouse isn’t required to select games. Rather, an Everdrive-style menu allows the user to select and load the game. In my conversations with him, SmokeMonster shared,
“Yes, I have an open-source project that was originally started to help streamline setting up flash carts like EverDrives, and I’ve extended it to support the MiSTer cores. I’ve also worked with people to draw up simple instructions for booting programs on the computer cores, which sometimes require an obscure command line entry or two.
I am at heart an arcade and console gamer, but MiSTer has drawn me back in to the computer gaming world of my childhood. Although I am just now discovering the wonders of Amiga, and that has been astonishing. I’ve been trying to draw in other console gamers who never experienced this powerhouse of a 2D gaming platform.“
Much like the Raspberry Pi before it, the MiSTer is well-suited to be embedded in a handful of form factors — either custom-made or fit into other existing cases. Witchmaster from Atari Forum shared his stunning PC keyboard case hand made from solid teak. It features an Amiga CDTV keyboard and two digital joystick ports in addition to VGA/audio output, ethernet, and a physical power switch. (See more photos and details). It will be interesting to see what other fascinating creations enthusiasts will come up with over the next few years.
MiSTer FPGA Arcade Setups
There’s been a handful of enthusiasts that have also been working on setting up a MiSTer FPGA instead an arcade cabinet as an alternative to a MAME setup.
In regards to the recent Ghosts ‘n Goblins core added to MiSTer, @topapate on Twitter stated:
“MAME is too fast because the CPU doesn’t share the bus w/the graphics chips, while real hardware & my FPGA core do. Sprites are also handled differently. Reset both for example and see how MAME shows junk sprites.
The Palette is also handled differently. The MiST/MiSTer version is the closest thing to having the real hardware. There’s no 1-frame delay between when the image is calculated & displayed either. If you play on an [CRT], you get the same delay as with the real arcade board.”
SmokeMonster later added in our private conversation:
“I love arcade games and have a big collection of arcade PCBs, but it’s an expensive hobby that requires huge storage spaces for even small collections and the prices have skyrocketed since I got into the hobby. MiSTer replicates arcade hardware wonderfully though, and it’s starting to feel like the early days of MAME as new cores are constantly rolled out. When you compare a lot of the arcade cores to MAME, you really start to feel FPGA emulations potential. Games like Burgertime and Ghosts ‘n Goblins run noticeably fast in MAME but match real hardware perfectly in MiSTer.“
Colin from MiSTerAddons.com:
“MAME currently occupies the space between owning original arcade PCBs, and having nothing more than memories of the time spent flying through quarters in the arcade, decades ago. I look forward to the day where the machine is a dedicated appliance, not a Windows computer in need of a full desktop GUI and maintenance.”
Personally, as cool as arcade cabinets are, I would really like to see a console-like experience come to an Arcade MiSTer setup. Not all of us have the space (or the cash to invest) in a full blown cabinet. And sometimes, even if you have a cabinet, its still nice to be able to lounge on the couch and play some arcade classics on a TV — with either a gamepad (maybe even wireless) or a full-blown Joystick. Theoretically, having a console-like arcade machine will also let you easily swap in different joystick controllers for a more custom experience (I’m sure Benj Edwards at BX Foundry would be up for helping you out with that).
What Pieces Does One Need to Get Started With MiSTer?
For those that aren’t used to piecing together their own hardware, knowing where to start can be just a bit intimidating. There’s a handful of add-ons for MiSTer setups and it can be easy to second-guess what you need immediately. I asked Colin from MiSTerAddons.com what considered essential pieces and which daughterboard are needed for special functions. Here’s his run-down…
- Terasic DED10-Nano Board – this is what the FPGA board the whole MiSTer project is based around.
- USB OTG adapter or MiSTer USB hub – you allow you to plug in your input devices.
- A heatsink and fan (or IO board with fan) to cool the device.
- Heat is the enemy of electronics.
- The IO board has a 40mm fan, as well as analog video and audio, status LEDs, buttons and more.
- If cooling is the only requirement, a laser cut acrylic plate that houses a 40mm fan that plugs directly into pins on the DE10-Nano.
- A USB keyboard (for initial setup) and a USB controller of your choice to play games (more on that later)
- Units have HDMI out, but there’s more video options with more additions (see below)
- SDRAM – many of the good cores require additional memory that is closer to the format used in the original console. Here’s a list of which cores require SDRAM. Notably missing on this list are the Genesis and TurboGrafx/PC-Engine/SuperGrafx, which do not need SDRAM.
- IO Board – If the user wants to connect the MiSTer to a framemeister/OSSC/PVM/CRT, an IO board outputs a clean, analog video signal through a VGA port. A simple pass through cable (VGA to SCART / VGA to YPbPr / VGA to VGA) is required, as is editing the MiSTer.ini to enable proper video options. Lastly, there’s a Real Time Clock (RTC) board which has a battery to keep the system time when powered off. Only a few computer cores take advantage of this and an internet connection will also retrieve the current date and time.
Setup Instructions and Tips
- Colin has a great assembly video along with his rough text guide documenting many of the things he wished he knew earlier on.
- Even though the hardware might look just a bit intimidating to the non-technical at first, it’s not too terribly difficult to put together (I’ve taken apart and put back together mine about four times to take pictures). Once you have things plugged in, the add-ons are plug-and-play.
- The majority of the setup involves getting the cores and ROMs on the microSD card. There is, however, a new updater script which, when loaded to the microSD card and paired with an internet connection, downloads and updates all of the cores. It can be launched via ssh, or through the MiSTer menu. This makes getting up and running MUCH easier.
- The hardware is almost able to be used out of the box, with a simple image flashed to a microSD card, similar to Rapsberry Pi builds.
- The Github page has an executable for flashing the image to the microSD card. After flashing the image, cores and ROMs can be added to the data partition of the microSD card.
- The typical MiSTer setup is a bit simpler than your average Raspberry Pi configuration. There is a configuration file (/config/Mister.ini) which allows the user to specify video output, and other input/output settings (github.com/MiSTer-devel/Main_MiSTer/blob/master/MiSTer.ini). It’s not strictly required for the base build, but may be needed if VGA / RGB SCART / YPbPr output is desired, if the target device is a monitor without audio, or if screen tearing is an issue (enable vsync).”
Possibilities For More Console-Like Presentation & Experience for MiSTer
Currently, most MiSTer FPGA enthusiasts are either keeping their hardware components rather bare (with maybe some plexiglass material attached on the top and bottom) or using some 3D printed cases like those sold by MiSTerAddons.com . Those are all fine solutions — especially during this early, evolutionary phase of the project.
However, eventually, I think most of us would like to be able to either have some ways of having a MiSTer FPGA setup that feels more like a real game console. Perhaps it won’t have the refinement of Analogue’s console products, but having a presentable case that has a clean look, formal controller ports up front, and perhaps even cartridge slots would be an amazing step in the right direction.
With the project being a rather niche concept, we won’t be seeing custom manufactured cases anytime soon. However, one could possibly use some low-profile PC cases that are sometimes used for home theater PCs (HTPCs). This could especially be helpful if someone developed a 3.5” or 5.25” adapter plate for controller ports to plug in the front of the case.
Colin from MiSTerAddons.com also added some personal requests to improve the console-like experience,
“For me, the form factor of the DE10-Nano without a larger, heavier, case, is not great. ElectronAsh is making a low-latency controller input board with USB ports, DB9, DB15, and RJ45 connectors to allow various controllers to interface through the serial port on the IO board. [the project is named LL Cool Joy – see our coverage bellow in the Controller section]
This board will be the footprint of the DE10-Nano but will have controllers plugged in. When sitting on a sofa, with a long cord plugged in, the DE10-Nano will be sliding all over the shelf. One of my favorite features of the SuperNT, is the grippy, solid, case that stays put and feels premium. It’s the same problem that the Raspberry Pi has always had, and maybe is only a personal annoyance.”
One of the things that could really make a future MiSTer setup apart is the ability to add cartridge slots so we could play all our original games cartridge media on the machines. Analogue’s consoles, of course, pull this off wonderfully. And Polymega has plans to have an elegant (but somewhat pricey) way of having interchangeable cartridge slot (and controller port) units for its software-based emulation console. SmokeMonster shared that having cartridge port add-ons for MiSTer is definitely a possibility, “Several people have mentioned [cartridge slot add-ons] as a possibility, including ElectronAsh, Voultar, and Db Electronics. I think it’s inevitable.”
Granted, once cartridge slots come into the equation, the thought of using low-profile/HTPC cases mentioned above as an elegant all-in-one container becomes a lot less elegant. Perhaps we will see some large 3D printed cases to incorporate cartridge slot modules or we will have to see with little cartridge slot add-ons that are just plugged in via USB. This is why it’s a little frustrating that the team at Polymega have such beautiful designs for consoles with interchangeable cartridge slots, but lack many of the cool benefits of the MiSTer project.
There is some optimism that we will eventually see some commercial turnkey MiSTer systems sold, but so far Colin’s MiSTerAddons.com is one of the best places to pick up a lot of pieces you’ll need. When asked if he foresees selling completed ready-to-go systems, he replied,
“I originally didn’t have plans to sell full kits on MiSTerAddons.com but, after talking to numerous people whose only barrier to entry was the initial setup and install, I decided to offer a select number of kits on my site. The reaction has been thus far positive, as customers receive an essentially plug-and-play device. The main software, and cores are pre-installed on the micro SD card. All that’s left for the user is to map their joystick and add their games.
In its current state, the project isn’t necessarily unapproachable for a novice, but could benefit from some additional documentation. To this end, I started a guide over on MiSTerAddons.com/guide, which will slowly start filling in the gaps of information not readily available on the MiSTer Github Wiki“
Controllers Options for the Ideal MiSTer FPGA Setup
Of course, when you have a gaming machine that supports a handful of different platforms, you want a controller setup that balances universal support and flexibility.
Not surprisingly, MiSTer support USB controllers out of the box (they simply need a PC keyboard to configure them at setup). There are so many USB controller options out there, so we will share a few recommendations to help you out.
- Hori Fighting Commander – an excellent gamepad from one of the best controller manufacturers. Colin uses it regularly in his MiSTer setup and says “it’s amazing in terms of lag — I also like that the button layout accommodates pretty much all consoles.” [insert Twitter quote]
- BX Foundry Joysticks – If you’re looking for high-quality joysticks and have custom button layouts and color styles for your favorite console, Benj Edwards at BX Foundry (see our recent interview with him), can hand-build you a either a USB version or one that has native inputs for the console. He’s also willing to install Bluetooth connectivity if you are willing to pay for the added parts.
- Hori Arcade Sticks – A lot of these are fighting game styled arcade sticks and can climb up to the $200 price point. Compared to the BX Foundry sticks, you’re mostly paying for the more stylized casing and higher quantities of buttons and switches.
- 8bitdo Wireless Adapter — you’ve probably seen 8bitdo’s work around. They have great design skills (Analogue also partners with them) and Colin says they have worked well for him on his MiSTer. He also mentioned that each core requires the controller buttons to be mapped, as does the main menu core. In addition to working with 8Bitdo’s own Bluetooth controllers, the adapter also works with Xbox One Bluetooth controllers, PS4, PS3, Wii Mote, and Wii U Pro controllers.
- Xbox 360 Wireless Adapters – If you really like the 360 controllers, these confirmed to work rather well by the MiSTer community.
Using Original Console Controllers on MiSTer
While USB and Bluetooth controllers are cool and all, most retro gamers would also like the ability to play with original controllers for a given console for a more authentic/nostalgic feel. There are actually two projects can help MiSTer fans utilize the classic controllers they love.
- LL Cool Joy – (The LL stands for low-latency, in case you were wondering) This open source initiative from ElectronAsh is a Multi-Console native controller board add-on that is merged with the USB board for a more elegant implementation. The units is to include 6X USB ports, 2X DB15 Ports (Arcade & Neo Geo), 2X DB9 Ports (Genesis, Atari, etc), and 2X RJ45 Ports (MC Cthulhu pinout), for connecting virtually any controller ever made via cheap custom dongles.
- Bliss-Box – This indie commercial project has been around for a few years (we actually covered their 4-Play Kickstarter back in 2015). Its goal has been to make retro game controllers platform-agnostic. The 4-play is a universal controller adapter that allows up to four people to play simultaneously. It’s compatible with virtually every controller and peripheral in existence. It uses low cost adapter cables which allow controllers to plug into its HDMI ports. They also have a Bliss-Box Bridge in development for the MiSTer that will accomplish a single board with both USB ports and its Bliss-Box dongle ports as well — similar to the LL Cool Joy above.
So in a way, the LL Cool Joy and the Bliss-Box Bridge will be competing in a way in the future. However, the Bliss-Box 4 Play is solid solution for using original controllers.
Opportunities to Build Controller Ports Right Into a MiSTer “Console”
Revisiting the topic above of Console-Like Presentation, both the LL Cool Joy and the BlissBox Bridge will get us closer to having that streamlined presentation while also giving gamers total flexibility and increased authenticity of using original console controllers.
Conversations on Adapting Classic Controllers to MiSTer
In the section above, I wanted to share an overview of the controller landscape for MiSTer FPGA, but I also had a nice conversation with Sean from Bliss-Box and he also introduced Kitrinx (aka Rysha), a very active developer in the MiSTER scene, into the conversation as well. This interview format should be interesting for those that are intrigued by the topic and would like to learn more of the technical background of the project.
What can you tell us about your upcoming Bliss-Box Bridge?
Sean/Bliss- Box: The Bliss-Box Bridge is an upcoming product that communicates from the Bliss-Box 4-play or Gamer-Pro to a console. So essentially you get any controller on any console. Though the magic in communication is where things get interesting. Bliss-Box had to come up with a way to communicate from the 4-Play to the Bridge in a fast and reliable means without adding to the existing hardware. The solution was simple. We designed a protocol that can be invoked by holding both USB pins high. Once the 4-play sees this signature it goes in to bridge mode and disables all USB communications. The bridge can now begin listing for commands. If you plug in a normal USB to a device holding the pins high, it does not communicate and an error shows on the bus. So, it is a perfect solution that can be turn on and off or switch from USB to Bridge mode via software.
The link between a 4-play in single mode or Gamer-Pro has a latency around .5ms + gamepad read time. Shown in the image you can see the communication from the 4-play to the Bridge.
So, when this concept was mentioned, kitrinx immediately had a thought. The idea was a low latency controller poll mechanism directly between the MiSTer and the Bliss-box. We will be able to align the poll rate to the core and be sure the data are ready. This does not mean we will not still pursue the board but it does attract the Bliss-Box to the MiSTer quite nicely. Kitrinx had this to say in regards to that.
Kitrinx: Bliss Box is valuable to MiSTer users for a couple of reasons. The MiSTer is an ever-growing FPGA platform that encompasses over 50 Computer, Arcade, and Console systems. These consoles used a huge variety of input devices such as the Astrocade’s paddle-on-a-joystick-on-a-trigger and the Colecovision’s numberpad controller. These devices are nearly impossible to replace with modern alternatives, necessitating an adapter to use the original controllers with MiSTer. Purchasing individual classic controller to USB adapters for all of these controllers could become quite expensive. Bliss Box encapsulates very much the same philosophy as MiSTer, with one platform that handles multiple system’s devices. As such, it is an outstanding value even used via USB if one wants to use a lot of these unusual original controllers with the system, or even just more standard SNES and Genesis type controllers.
In addition, the recent LLAPI (Low Latency API) allows enthusiastic MiSTer users to harness one of the popular advantages of FPGAs: The very low latency. With all the power that passing the IO through the linux side of MiSTer brings to the platform, it does have one drawback: It introduces an average about 9 to 18ms of latency, according to my oscilloscope. The majority of controllers fell in the 8ms range, with a cheap Chinese one having over a frame of lag. Most people won’t notice or be bothered by this, but MiSTer users aren’t most people, are they? Should support for LLAPI be added in each core, it would allow the Bliss Box to be plugged into the serial IO port on the IO board and speak directly to that core. The core can then sync its controller polling directly, and clock in at under a millisecond of latency with most controllers, leading to a snappy, consistent input experience. In addition, the API can report what type of controller is connected, allowing special peripherals such as Paddles and Light Guns to work more reliably.
What do you think of the current MiSTer controller configurations and what would you improve if you could?
Sean/Bliss-Box: The config allows the basic mappings or buttons and keys in the way most configs do but it lacks analog input. You can only use the first axes, so it is no good for many adapters out there in the way of paddles and other special configs. Though Bliss-Box has an answer for that via the API, I’d very much like to see that added for the other adapters out there.
What’s the difference of the Bliss Box vs just pulling in USB adapters or USB controllers modeled after classic consoles?
Sean/Bliss-Box: Bliss-Box makes products work without the need for drivers and config. You just plug and play using a HID driver from the OS itself. Though the Bliss-Box adapters have an API that can be used giving it full control. Again, the idea is not to use a driver and allow this to take place with the tools already available. Though not all OS’s use what is referred to as USB control transfers and I’m not sure if the MiSTer does (most Linux kernels do), it can take advantage of a few things. A USB control transfer is proprietary in the way of it’s data but not the means of how it talks to the device. To make a control transfer you just need to code it and talk via USB. You can then use the Bliss-Box API to get access to peripherals such as; memory cars, LCDs, n64 VRU, bio packs, rumble, and much more. It also allows any code to talk directly to the controller and receive data back, essentially, tunneling via USB. Will the MiSTer take advantage of these things? Time will tell. The RetroArch community already has.
What other controller-related innovations are you most excited about in the MiSTer community (possibly happening in the next year or so)?
Sean/Bliss-Box: The low-level API (LLAPI) is where things are going to get exciting. This is going to allow for controllers like the NES zapper to work as it is, right form the Bliss-Box itself. Paddle support to read the rotation at this speed will change the way we emulate, for example Tempest on the jaguar had been plagued because of this. Not that the MiSTer is going to be emulating that anytime soon, but the limitation of that game was that you need a spinner sample rate high enough to spin around the track. With a USB latency of 8ms, it will never happen on Atari hardware or a spinner mod of the jaguar controller. With what kitrinx has accomplished, it’s going to happen. FPGA consoles and hardware are getting much attention, the MiSTer is on the right track. I expect good things.
Conversations on the Current Status and Future of MiSTer FPGA
Below is some dialogue I had with SmokeMonster, Colin from MiSTerAddons.com, and Sean from Bliss-Box about where the MiSTer project stands currently and what the future might hold.
How would you describe the experience on most of the completed major console cores right now? [Keep in mind, this is based on February 2019 experience and these cores are still being developed and improved]
- NES: Plays well to me. still adding mappers, but there are so many of them
- SNES: Plays great and includes support for many special chip games. This is how I plan to finally beat Donkey Kong Country 2 and 3.
- Genesis: Plays great. Audio is still being tweaked as the Genesis has a Yamaha audio chip that hasn’t been fully defined in FPGA terms
- TurboGrafx: Plays excellent- so well that I sold my RGB modded PC-Engine Core Grafx
- Arcade: Most seem very authentic, without having the original PCBs to compare against.
- Amiga: One of the most complete cores
- 486: Runs, but doesn’t play all games at full-speed
- Master System: Runs well from what I’ve played
Even though there’s support for Sega Genesis and TurboGrafx/PC Engine, there’s no current support for the respective CD platforms or the 32X . Do you see the ability for those in the near future? Any talk one allowing for an added CD drive anytime soon?
There are people working on CD drive emulators. From what I’ve heard, the architectures of the Sega CD and TurboGrafx CD is similar enough that development for one will lend to the other I believe that the limitation on adding a physical CD drive is the limited input/output (IO) ports. There are 2, 40 pin connectors. The SDRAM occupies one, and the IO board (optionally) occupies the other.
What type of timeline and/or technical challenges do you see for the likes of Neo-Geo and CPS arcade titles?
Both are in early development, but memory bandwidth, and IO ports (see above) are the biggest hurdles. Those systems are more memory dependent and the current SDRAM (32MB) is insufficient for them. In the case of Neo Geo, multiple EPROM chips were used for each game. The total size of those eproms is often larger than the 32 MB SDRAM. Additionally, there are SDRAM and timing issues to work through but Furrtek is hard at work solving these problems.
Do you think we’ll ever see Save State support? It seems that those involved with the Analogue projects have been hesitant that they can get save states to work with FPGA like we have been spoiled with on emulation.
That’s a good question! SD2SNES just got save state support. It runs on an FPGA. The hard part about save states is that the state of every processor has to be recorded in memory. I don’t have the technical insight to say one way or another, but the APU (audio processor) on the SNES has to be saved along with the CPU, or the music won’t load correctly, which I believe is the current limitation of the SD2SNES.
The advantage that the MiSTer project has is that the entire hardware architecture is already present in the FPGA chip, so it’s a known state. I’m guessing features like that will come one emulator at a time, and as the emulators get closer to 100% functionality of the original feature, as it’s a nice-to-have, but not essential feature.
What are you most excited about in the MiSTer community that might happen over the next year? In 5 years?
There are a lot of things that I’m excited about in MiSTer world. I love arcade games and have a big collection of arcade PCBs, but it’s an expensive hobby that requires huge storage spaces for even small collections and the prices have skyrocketed since I got into the hobby. MiSTer replicates arcade hardware wonderfully though, and it’s starting to feel like the early days of MAME as new cores are constantly rolled out. When you compare a lot of the arcade cores to MAME, you really start to feel FPGA emulations potential. Games like Burgertime and Ghosts ‘n Goblins run noticeably fast in MAME but match real hardware perfectly in MiSTer.
Some of the most exciting things that we’ll see in the very near future are disc based game systems, and I’m very, very excited at the prospect of the current Sharp X68000 core becoming fully functional one day. Work is already under way for Atari Jaguar, PC Engine CD, Playstation, Game Boy Advance, Capcom CPS1 & CPS2 Arcade, Neo Geo MVS/AES & CD, and others that I’m not at liberty to discuss. FPGA cores are going to be key to the future of classic gaming, and within 5 years you’ll almost certainly have N64, Dreamcast, Playstation 2, and who knows what else.
The beauty of FPGA code is that there are only two main “programming languages”, Verilog, and VHDL. Once a system is accurately defined in one of these languages, it’s just a matter of porting it to new FPGA cores. It’s been stated that the DE10-Nano should have enough power to emulate the PS1. I’m hoping for Neo-Geo, CPS-1, CPS-2, NES, SNES, N64, Jaguar, Genesis, Saturn (has a very complicated architecture but we can hope), TG16, and PS1. ElectronAsh is dabbling on Jaguar, and PS1, but is very early.
I imagine FPGAs 10 years from now will be powerful enough (read: high enough capacity) for at least PS2/Xbox, but beyond that, the processors start to use so many transistors that they’re basically PCs and I question the ability of an FPGA to replicate them accurately. This is speculation on my part. I’ve only done FPGA coding in college and that was one class, many years ago.
The arcade cores will also require time to develop as there are major platforms (Neo-Geo MVS, CPS-1, CPS-2, etc), but most arcade games have their own, unique, architecture. This makes developing cores a game by game endeavor. Having said that, I’m sure we’ll be surprised to see how many games have been FPGA’d over the next few years.
When thinking about a true MAME-like console or cabinet, is there any possibilities you see that might make the setup feel more native and/or intuitive as an end-user?
Being able to see a list of all games, and filter by system, from a unified GUI would be awesome. Right now, you have to pick a core, then bring up a menu, then pick the game. There are various ideas about creating a new frontend, though most of them take a back burner to developing the system cores. I’m confident that we’ll have a more visually intuitive user interface in the future, though I’m getting used to the simplicity of the menu in its current form.
From your perspective, which obstacles will be the most difficult to overcome for the MiSTer project as a whole?
The main challenge facing MiSTer would be if development died down, which is why I’ve been trying to bring in as many potential FPGA coders to the project as possible. A year ago this may have posed a danger, but the project is growing healthier with the day as more and more people contribute. Originally, Sorgelig (Alexey Melkinov) had to do almost everything himself, but now there are dozens of contributors. Although he still does most of the heavy pulling, it’s already become more than a one-person job.
The MiSTer’s add-on boards have no well-defined source, but rather are made in small batches by hobbyists, sometimes putting their own spin on the designs. I applaud the efforts but there is some uncertainty in purchasing what is needed to get started. As of now, things aren’t quite as easy as a [Raspberry] Pi which can be readily purchased and set up easily. While the diversity of the addon board ecosystem for MiSTer can have its advantages, this fragmentation can also be a stumbling blocks this keeps the prices of the addon boards higher and keeps the project somewhat niche. The FPGA technology itself is more expensive than a simple SoC, and the project currently requires some implicit technical skills to get started with. This is all about to change with the Paradice and Bliss-Box alliance, from manufactured add-ons to complete set up’s.
Bliss-Box had one mission. To bring attention to and preserver the retro gaming world. We wanted to make it easy to play the games you loved the way it was meant to be. Emulation takes a beating and is seen as the opposing force to retro hardware but it’s not. There is one thing I learned in my 40+ years of life. Things change and there is nothing you are going to do about it. Software will be emulated, hardware will be emulated, and their legacies will live on. Why not just make it the best we can?
What Questions Do You Still Have?
My goal with this article and set of interviews was to present an introduction to the the MiSTer FPGA project, its current status, and its potential. There is obviously a lot of ground to cover, and I may have missed something. Or perhaps, there was something that was unclear or confusing.
I would love to hear your response to this article in the comments section below. Feel free to share your praises, questions, or concerns below. All feedback will help us improve this guide over time. I hope to keep this updated and/or do yearly updates, when useful.
Help Spread the Word!
If you enjoyed this article, please feel free to share it on social media, with your gaming buddies, etc. I wanted something that was easy to pass around and spread the word of this amazing project.
Resources for Staying Informed or Getting Involved
- SmokeMonster’s Twitter is great for quick little updates and teases and his Youtube channel is a great place to see him showing off some of the new developments. He is also a news contributor at the excellent hardware site, RetroRGB.com
- If you’re up for providing some financial support, Sorge has the official MiSTer FPGA Patreon page.
- If you are interested in helping out on the development end, SmokeMonster recommends joining the the Atari-Forums MiSTer subforum, or to the Classic Gaming Discord (MiSTer channel)