I’m back with another of the talks from Hackerspace Gent’s NewLine conference, fresh from my weekend of indulgence quaffing fine Belgian food and beers while mixing with that country’s hacker community. This time it’s an overview from [Michael Smith] of the MiSTer project, a multi-emulator using an FPGA to swap out implementations of everything from an early PDP minicomputer to an 80486SX PC.
At its heart is a dev board containing an Intel Cyclone SoC/FPGA, to which a USB hub must be added, and then a memory upgrade to run all but the simplest of cores. Once the hardware has been taken care of it almost seems as though there are no classic platforms for which there isn’t a core, as a quick browse of the MiSTer forum attests. We are treated to seamless switching between SNES and NED platforms, and even switching different SID chip versions during a running Commodore 64 demo.
There are many different routes to a decent emulator set-up be they using hardware, software, or a combination of both. It’s unlikely that there are any as versatile as this one though, and we’re guessing that as it further evolves it will become a fixture below the monitor or TV of any gamer. It’s a step up from single-platform FPGA emulators, that’s for certain!
One small amendment, the usb hub isn’t necessary. You can run a mister system perfectly fine with just a usb otg cable. The sdram is however absolutely necessary.
You’re right on the usb hub but he sdram addon is, too, optional as some cores don’t need the extra RAM.
The SDRAM isn’t absolutely necessary, just some systems won’t run without it, like SNES, NES, most notably. This is because the rom is loaded into the SDRAM since there are strict latency requirements to keep everything cycle accurate.
brb, bringing popcorn and reloading the comments section. Just in case
The existence of reconfigurable FPGA based systems like this one always makes me wonder why there are several projects to use actual retro hardware components still available for purchase new (for now) to create “my dream computer from 197X-198X” when already existing CPU cores combined with additional software could create almost anything they’d want with a much larger initial user base.
Heck, I’ve recently read that a guy who is developing new games for the Atari Lynx handheld (which, BTW, was way ahead of its time hardware specs wise; read about it) is using the WinUAE Amiga emulator for development since it’s so accurate and since the original Lynx development was done on Amigas.
I can see the attraction to and reason for restoring actual old hardware like Commodore and Atari 8 and 16-bit machines, etc., but creating new machines using actual hardware is going to have a user base issue unless they are extremely cheap and well advertised or known.
I could see someone sharpening their skills for that time when accessible FPGAs become more common on the PC (remember both AMD and Intel own a FPGA company).
Happy to see MiSTer FPGA on hackaday! My boss reads this site regularly so hopefully more people will get exposed to this fun project. I’ve been playing with my MiSTer for almost a couple years now and it’s helped me maintain some sanity through this pandemic. The Genesis and SNES core are my go to. The arcade cores are excellent as well.
Many of us help people with questions and help get people up and running so check us out on the forums (http://misterfpga.org) and the MiSTer Discord (https://discord.gg/Vetc3RgwXW).
Please excuse my ignorance, but what is the attraction of fpga over software emulation? I know that this is hackaday and in lots of cases the answer is because I can, but it seems to me that especially with older, more common hardware like NES, software emulation can be almost as good as original hardware, is there something that I am missing?
Generally speaking software emulation often will have slightly more input lag, the video output will sometimes have jitter, and the audio output is a struggle to emulate correctly (especially for analog FM synth chips). Now all of these things I said can be accounted for, but it depends on the software emulator developers and the hardware you are using.
For input lag, you could use run ahead for 2 frames ahead, but this sometimes has bugs and it requires a decent PC. A raspberry pi can handle run ahead by 1 frame only on certain emulators, and definitely not with any 16 bit cycle accurate software emulators. However, in FPGA-based hardware emulators like the MiSTer, the lag just isn’t there since the overhead of an operating system, drivers, etc… Just isn’t there anymore. People can code baremetal software emulators I suppose, but that’s very difficult, would require it to be coded in assembly most likely, which isn’t super simple, and wouldn’t scale to multiple platforms so devs probably wouldn’t want to do it.
For video output, the MiSTer specifically (and most FPGA hardware emulators) can output the video to the screen independent of any operating system and/or GPU’s framebuffer’s limitations and timing. There are ways to get around this with software emulation, but it requires more expensive hardware. A combination of a VRR-compatible graphics card and display, and the CPU power to do run ahead of 2 frames can often offset this difference. But a fully loaded MiSTer is cheaper and more compact than a PC that would do this, typically.
For audio output, most software emulators try to reduce video jitter by syncing the emulator to video output (often 60Hz). But then the audio would be jittering around right? Correct, there are many emulators that when synced to video, their audio output has slightly off timing. It will not impact things too noticeably in most games, but some people are more sensitive to it than others.
Personally, FPGA-based hardware emulation is the closest I can get to playing on original hardware in many ways, that’s the difference to me. Most people might be satisfied with a Pi, but after over two decades of using software emulation I never could play all the way through most of my favorite retro games until I got into hardware based emulation. Something just feels better about it. The input lag is consistently low, video output is smooth and crisp, and the audio output (what I’m most sensitive to) is always on-point.
The FPGA is the better tool for the job. It just makes more sense to use an FPGA for this purpose than a general purpose CPU. There’s nothing wrong with software emulation, and every MiSTer developer heavily relies on emulation documentation. They’re using data from emu docs, decapping, and a variety of other processes. It just depends on what the platform is. No one is building an NES/SNES core from scratch and disregarding 20+ years of documentation. Some platforms like arcade cores are more poorly documented and are getting a fresher look, getting their chips decapped, etc, and its actually improving software emulation in the process.
I mistakenly asked this before and almost always its “its running on real hardware”
It does have it’s advantages in regards to timing and can produce better results in analog domain such as audio.
But now you are spending several hundred dollars to perfectly match a toy from when you were six.
Current emulators and even the weakest of modern systems generally do just fine.. Toss them on a machine with some real balls and you are good to go.
On to a personal observation from atari age is that most fpga fanatics on that site will turn around in another thread arguing their core 2 duo running xp on 1 gig of ram and integrated graph is is more computer than they ever need and emulators suck
I’ve read these can realistically only emulate up to Sega Saturn with the current architecture – is this true? That definitely wouldn’t be a deal-killer, as perfect ’emulation’ up to SS covers a vast amount of cores, but just to set expectations accordingly…
The Sega Saturn core at this time is still in development but is making exciting progress! Similar news for the Playstation 1 core. Those are looking to be pretty realistic expectations of the MiSTer’s ceiling with it more a *when* rather than *if*. One system of that era that is uncertain is the Nintendo 64. There’s a lot of talk that the N64 is not possible but I don’t know myself if that’s from an estimation of the DE10-Nano’s capabilities or if anyone has given it a proper try yet.
Whether a system is able to be brought to MiSTer depends mainly on if the system can fit within the amount of Logic Elements (the units of reusable building blocks so to speak) the DE10-Nano has. It’s less of it not being possible to recreate something in FPGA but whether the DE10-Nano can physically accommodate it. It’s also not how recent a system is but how complex. The SNES as a system is less powerful than a Saturn or Playstation, but the custom chips in some cartridges (like the Super FX chips) need their own Logic Elements to recreate. It still takes up a lot of the “building blocks” to fully recreate the SNES and its library in FPGA despite it being a less capable system than others. I believe that’s what doomed the 32X from coming to the MiSTer: can’t fit the Genesis, 32X add-on, and the cartridges into the DE10-Nano. I think the media of choice for the Saturn and PS1 is the thing that makes them possible. No special hardware to recreate in a CD like you may find in a cartridge. It leaves more Logic Elements for the consoles themselves.
We’ve been surprised before by the talented coders of the MiSTer project but it’s also good to never expect anything that isn’t being worked on. FPGA based recreation is newer territory. It’s working off the progress and documentation of software emulation but it’s still a different path being paved. That’s not to say the future can’t hold something different. MiSTer is an evolution of the MiST project after moving to the DE10-Nano. Down the line there could be a new affordable board to succeed the DE10-Nano and it could evolve again. But that is going to be a matter of years and some luck that another board becomes cheap enough to use, not something to expect anytime soon.
Yes, the Sega Saturn and Playstation cores are being developed now and that will probably be near the limits of the system. This is because you have certain hardware limits. There are other higher end FPGA development boards but no one has really developed any cores for them yet and they wouldn’t have the MiSTer framework which is key to the success of this platform. I think the highest end system you would expect to see in future powerful FPGAs would be something like the Dreamcast, PS2, PSP, etc… The N64 isn’t likely possible on the MiSTer either. Personally thats fine, there’s plenty of systems to develop left. And all of these cores could be ported later to another platform if the need arose and someone wanted to do it.
Hmm, the MiSTer has been around for quite some time by now…is it only now getting a mention on Hackaday? If so, that’s rather hard to believe (i.e., how could such a project endeavor go unnoticed for so long when there are a zillion YouTube videos on topic of MiSTer)
It’s been brought up twice before, but I think they brought it up this time because of the video that’s linked. Here’s the other two articles referencing the MiSTer:
https://hackaday.com/2020/05/15/edsac-lives-in-mister/
https://hackaday.com/2018/12/21/fpga-emulates-a-pdp-1-breathes-new-life-into-classic-video-game/
That’s all fine, you try and find a DE10 Nano that’s at the centre of the kit. There’s a few in Australia I’ve heard.. they are like rocking horse ****..
I’ll admit this is coming from me being in the United States and other countries may have a more difficult time (or suffer from outrageous shipping costs), but I can find the DE10-Nano currently in stock directly from Digikey which is supplied from Terasic, Amazon, and MiSTerAddOns. That’s just buying the FPGA board separately. There’s other sites that sell kits or fully assembled units that are frequently in stock. The DE10-Nano or a full MiSTer build is not generally hard to find.
both mouser and digikey have plenty in stock. both may ship from different parts of the world, however whenever I order from mouser i usually see my order in about a week shipped to Australia. both of these sellers offer good prices. i know mouser will ship free for an order of this amount. ozmistermods has SDRAM in stock. caminventions.com in perth have SDRAM and full packages. i ordered my first MiSTer FPGA from Andrew at caminventions with the analog I/O board, SDRAM and his 3D printed case. i also ordered an OTG hub from mouser and an inline power switch. i’ve since upgraded the case to the aluminium one from misteraddons.com. caminventions also sells the mt32pi, although i originally got mine from Nat at misterfpga.co.uk. if you went minimum chips with a DE10NANO from mouser and memory from caminventions you could be all up and running in under two weeks. hope that helps. cheers :-)
One thing i find a bit sad is that it’s not possible to use real cartridge, since apparently the i/o are not that many. Hardware emulation is only half the fun if you can’t use real hardware cartridge.