MiSTer: Run Amiga, SNES, NES and Genesis on an FPGA
github.comI have the MiST, the predecessor to this and really like it. It was originally made for Atari ST emulation but quickly acquired other cores. Mine even has MIDI ports like the original ST.
It's odd the MiSTer page doesn't even list an Atari ST core as available. Odd given the heritage (and name).
On the other hand, there's an X68000 core. That's pretty amazing.
But apart from bigger FPGA one of the big advantages of MiSTer over MiST is HDMI output. Dealing with VGA is a real pain in the but, esp if you want to hook up to a living room TV.
I'll probably invest in MiSTer at some point, but it would be nice if they had an expansion which added MIDI and 9-pin joystick ports like you could get on the MiST.
Like the LL Cool Joy add on board:
https://twitter.com/smokemonstertwi/status/10523148009807298...
nice, it exists
I have a SuperNT, a MiSTer, and a raspberry pi 3 running retroarch. They all work very well and all should be considered great for retro gaming. Here are a few of my thoughts.
SuperNT - I love it, i don't have the jailbroken firmware and play strictly from games. I have made several Super Mario based carts from Rom Hacks and i find not having save states has probably made me a better player. The system is dirt simple, i plug a game in and it plays. There is a menu and you can play with settings but you dont have to. Using only purchased carts makes this legal .
Retropi - Very nice allows you to play up to the PSX. All is pretty much smooth and there are so many howto's anyone can set it up. If you have never played on the original hardware you will never probably never know if there are any issues with the emulation. Still a very nice choice and cheap. Unless you dump your own ROMs you have to use illegal content on this (and dont lie, almost no one dumps their own ROMs).
MiSTer - This is very nice. It boots quick, the emulation is great. The menu is easy to navigate, but very ugly (no scraping or any game information very folder driven). controller set up is not difficult, but is not as straight forward as retropi. Installation is simple compared to retropi. Very expensive ($130 for the board and at least $25 for the SDRAM board unless you build your own, USB Hub as well). Arcade support is limited. Still have to provide your own ROMS.
All three choices are still great depends what you want to do. There is always room for all three options (I realize the SuperNT is not a multisystem machine, but it i mean a dedicated FPGA system, they are coming out with their sega genesis FPGA as well).
Very cool. I have wanted to try some FPGA stuff out but it seems like its very encumbered by proprietary toolchains and industry secrets.
Wondering what the pros/cons are of using this vs a raspberry pi.
The IceStorm tools are open source, based on the reverse-engineered Lattice iCE40 FPGA architecture: http://www.clifford.at/icestorm/
I found it very easy to get started, although first you have to buy a compatible FPGA (iCEstick etc.) and make an adapter for your preferred output device. The advantage of the MISTer is that you have all the connectors, FPGA cores for popular platforms and a couple of ARMs for when things get complicated.
Raspberry PI is fine, but not great for latency, assuming you need that extra 1/60 second. (HDMI monitors add so much latency though!) Some folks have had success connecting PIs to old CRTs though.
The iCE40 and Cyclone V are worlds apart. Yes, there's a free toolchain for iCE40, but you haven't an ice cube's chance in Hades of emulating a console CPU with the 7680 LUTs available on the largest chip in the line. By comparison, the Cyclone V found in the MISTer has over 100,000 LUTs. Alas, it has no free toolchain.
anything 6502 based should fit on the ice40s, though you might need additional hardware for interfacing.
https://hackaday.com/2018/03/29/apple-one-on-fpga/#more-3012...
The linked page has a section on why this was done on an FPGA instead of a pi: https://github.com/MiSTer-devel/Main_MiSTer/wiki/Why-FPGA
Raspberry is emulation which will not be console accurate. The FPGA would more accurate since it is recreating the console on a hardware level(chip)
To expand on that, Higan[1] is a super accurate SNES emulator that requires a decent CPU to run at full speed due to all of the weird quirks and on-cartridge chips[2]. For the popular games, typical emulators are probably good enough, but for true accuracy of all the quirks and special chips you need quite a bit of compute power. In the case of Speedy Gonzales, at least for a time (not sure if it's still the case) the only emulator you could actually beat the game on was Higan.
By comparison, Analogue sells the Super NT which is their own FPGA SNES that uses micro USB for power and probably requires about as much power as a Pi, but is comparable to Higan in terms of accuracy. Their implementation still uses physical carts though, so they skipped on implementing the special chips that were contained in the cartridge of various games. For _that_, there is the SD2SNES flash cart which runs its own FPGA for most of the chips (SA-1 support in beta).
[1] https://byuu.org/emulation/higan/ [2] https://arstechnica.com/gaming/2011/08/accuracy-takes-power-...
Byuu, the author of Higan, has been quite critical[1] of the claim that the Super NT is as accurate as stated. It may be tempting to assume "FPGA = hardware recreation = perfect", but we don't have access to the original SNES schematics, so anything we recreate involves some level of guesswork.
Higan has been in development for more than a decade, and literally every first party SNES game has been tested to ensure 100% compatibility. By contrast, since the Super NT was released, its creators have issued multiple patches to fix game-specific issues that were discovered. As is expected in the development of any emulator, it is likely that these patches have created new problems in other games, which haven't been discovered yet.
---
[1] https://webcache.googleusercontent.com/search?q=cache:uHa892...
Sidenote, the above link is using Google's cache. Byuu appears to have not only deleted all the articles from his site, but also prevented the Wayback Machine from preserving copies of them.
Byuu, please don't do this! You've spent your life making sure old video games are preserved for future generations! The Internet Archive should be allowed to preserve your work as well.
Byuu's work in emulation and ROM preservation should be commended but his FPGA dismissal seems rooted in envy. After spending 14 years developing Higan, I can sympathize. The fact is, the SNES chips are well understood (partly through the work of Byuu). The SuperNT FPGA code from Kevtris mimics almost every perceptible quirk of these chips in gameplay and I'm sure MiSTer will get to the same point if enough talent is drawn to the project. The list of known timing/graphical issues for the SuperNT is less than 20 from some of the most fanatical users: https://github.com/SmokeMonsterPacks/Super-NT-Jailbreak/issu...
Edit: only 10 of the known issues are confirmed and graphical/timing related.
To me, Byuu didn't come across as dismissive of the SuperNT so much as the idea that FPGA's are inherently more accurate than software emulators. Both approaches have advantages and disadvantages.
20 known issues is significantly more than Higan's zero known issues (for the SNES emulator specifically; other Higan emulators are of varying degrees of quality and maturity). Unless you count issues like, there's a certain game that appears to randomly crash slightly less often in Higan than on real hardware, which was still being investigated as of when I last checked.
I'm not dismissing the incredible work of Byuu. I'm simply suggesting it is far easier to get cycle accuracy and correctness in an FPGA than through software emulation. Kevtris probably spent less than a year in his spare time to pull off nearly identical results with his FPGA. He also hasn't gone back to work through the known issues because of his work on the MegaSG.
> I'm simply suggesting it is far easier to get cycle accuracy and correctness in an FPGA than through software emulation.
This is the line I would disagree with. What about an FPGA makes cycle accuracy and correctness easier than with an emulator written in software?
Make no mistake, Kevtris is immensely talented. But he also had the advantage of additional research going in (such as byuu's), and, well, I truly don't think the accuracy is comparable as of right now. The difference in effort required to get between 99% and 100% compatibility is immense, and the Super NT is clearly at 99% right now.
Verilog/HDL has obvious advantages to C/C++ in the emulation world that seems to escape too many people in this never ending debate. Are both using some blackbox magic? Yes, but if we could compare the HDL size to byuu's code base the mystical advantages would start to become more transparent. Byuu, by his own estimation, spent "40% of his life" developing Higan...
Makes me wonder if he was threatened legally.
I was not, it was a personal choice.
It's not a direct replication of the original chip though. It's an emulation of the functional results, written to work well on an FPGA, and run in parallel.
I think it's more fair to say that a RPi probably isn't powerful enough to run the emulators that are completely accurate, because some of them do exist.
You may get good emulators but not many will be console accurate on all fronts
Neither will the FPGS emulators. Just because they are in FPGA form doesn't make them inherently more accurate.
It is important to note what sort of accuracy are we talking here. Fundamentally the only thing FPGAs have over software emulation on our general purpose computers is the real-time characteristic, which in this context is apparent in controlling input latency. And I'd argue even that boils down more to the limitations of common APIs etc rather than the general principle of software emulation.
Emulation on a Pi adds several frames of latency, between the emulator, OS, and graphics pipeline. When combined with the latency of a modern LCD screen, this can be enough to really impair playability of some games. FPGA-based recreations of old machines can theoretically eliminate most of that latency (other than the display lag).
One pro is that you could easily make an ASIC from the FPGA code, if your design is locked and you wanted to pump out a few million for cheap.
The C64 DTV was made like that, see https://en.wikipedia.org/wiki/C64_Direct-to-TV - Really impressive and cool project by Jeri Ellsworth, wizard lady of Electronics.
There's a very detailed answer to your exact question in the readme
Reminds me of https://www.analogue.co/mega-sg/ which is also FPGA-based, IIRC.
Slightly off topic but feel this might be a good place to ask... Does a FPGA exist that would allow me to resurrect a 68k Mac SE? I'd love to find something like that.