[HN Gopher] MiSTer FPGA: Recreate classic computers using modern... ___________________________________________________________________ MiSTer FPGA: Recreate classic computers using modern hardware Author : lnyan Score : 119 points Date : 2022-09-18 13:30 UTC (9 hours ago) (HTM) web link (mister-devel.github.io) (TXT) w3m dump (mister-devel.github.io) | ilaksh wrote: | It seems like there really needs to be an alternative that uses | more available hardware. | vintermann wrote: | There's one thing you don't get, which I see many people find | they miss: savestates. It's technically possible and I know a few | cores try to support them, but it's just a million times easier | (and more reliable) if you do everything in software anyway. | | Hardware emulation has a pretty small niche between software | emulation and real hardware. If you care about accuracy at all | costs, real hardware is usually still available and not too | expensive, and if you care about convenience, software emulation | is better. | fermentation wrote: | I personally have found it more enjoyable to play a lot of | games without savestates. | | Playing earthbound a few years ago I was constantly | savescumming. My recently replay on mister without savetsates | was way more enjoyable because the stakes were higher. | | Wouldn't want to play a Mario World rom hack without them | though | reidrac wrote: | > real hardware is usually still available and not too | expensive | | I all depends. There's a "retro" bubble currently and people | ask silly money for the original hardware. Then capacitors | burst, original hardware needs maintenance, and is not | something everybody can do. | | The MISTer provides an experience that gets very close to the | original hardware, without all those _nuances_. | flatiron wrote: | I'm unsure what you mean about hardware emulation not being | reliable. Save states is a good point. SNES for example does | not have them. Adding that stuff as an after thought is | extremely tricky. Most newer cores are creating with save | states in mind for two reasons. Makes debugging much easier as | you can share states with testers on top of the QOL you get | with that feature for end users. PSX for example has really | good save state support with rotating save states. | dtx1 wrote: | I applaud the MiSTer Project for their brilliant work. I'd even | be interested in buying something like it. But the most complex | console it can emulate is a ps1 and that can be emulated | perfectly fine in software. I wish most 5th gen/6th gen consoles | were in reach to emulated with it. But alas that's out of the | question and even software emulation is still far from great for | most of these consoles and require beefy hardware... | koala_man wrote: | For anyone else wondering about the name: it's actually "MiSTer", | from "MiST on Terasic [FPGA board]", with "MiST" being a previous | "aMIga/ST" FPGA reimplementation effort. | lnyan wrote: | Seems that HN automatically replaces "MiSTer" with "Mister" | when I submitted this post | layer8 wrote: | As the submitter you can edit the title after submitting to | undo any of HN's auto-normalization. | dang wrote: | Twont happen again. Not if followed by "FPGA" that is. | fortran77 wrote: | Can you actually buy a DE-10 Nano FPGA board today? The links say | "pre-order" | badlucklottery wrote: | For a semi-normal price? Probably not. | | Terasic has been getting stock pretty regularly though and | their pre-order dates don't seem to be too far off reality. | kaoD wrote: | I'm curious, is there any advantage to this over software | emulation, besides "I did it because I could"? (which is of | course cool in itself). | cmrdporcupine wrote: | Latency. | | It doesn't matter how fast your emulator is, throughput-wise. | Your operating system (and other stuff) sits between it and | output and input devices. And usually adds multiple frames | worth of latency. There's ways to improve this, certainly, but | you won't get that experience "out of the box." | | Now, it's also possible to accomplish this by running emulators | "bare metal" or "close to the metal" like my friend Randy did | with his BMC64 project: https://github.com/randyrossi/bmc64 | musicale wrote: | > Latency | | As long as the correct output signals are generated before | the clock edge, there is little meaningful difference between | software or hardware implementations. | | A cycle-accurate software emulator can actually replace a | hardware CPU. Consider this example of a cycle-accurate | software emulator running on a 600 MHz Teensy/ARM | microcontroller board plugged into the CPU socket of an Apple | II: | | https://microcorelabs.wordpress.com/2021/01/08/mcl65-worlds-. | .. | | The 8088 version (an impressive achievement, though he had to | overclock the microcontroller to 800MHz) apparently also | worked as a drop-in replacement for MiSTer's FPGA | implementation - he suggests that graphical bugs in the area | 5150 demo were not due to the CPU but due to timing issues | with MiSTer's PC XT peripheral implementations. | | https://microcorelabs.wordpress.com/2022/08/12/area5150-runn. | .. | cmrdporcupine wrote: | No, that's not at all the case for what the poster I was | replying is referring to. I think you misread them/me. They | seemed to be talking about software emulation on commodity | PCs. | | Total time, from input to physical display on the screen is | not under the user space programmer's control if you're | running an emulator on a Linux or Mac or Windows system. | | You can be cycle accurate all you want. That doesn't get | you past the windowing system, GPU, display controller, | HDMI interface, etc. any faster. All of that sits between | you and pixels. | | It is possible, on an FPGA (or under any hardware you | control directly, really) to go straight from framebuffer | to HDMI (or etc) signals without pauses inbetween. In some | ways it's easiest on FPGA. | | Your example is running on custom hardware. That is | entirely feasible, yes. But isn't what was being asked | about. That's similar to the BMC64 example I gave. | musicale wrote: | I think we're making compatible points. You noted that | you can bypass the OS by running on bare metal. (True! | You can also use real-time OS features, devote one or | more cores entirely to running the emulator flat out, | write directly to a frame buffer - or maybe even generate | the actual video signal[1], etc..) Another nice thing | about a microcontroller board like a Pi or Teensy is that | you can easily get signals in (e.g. controllers, | keyboards) and out (e.g. sound, video) of it. | | Note that Linux (which I'm familiar with) makes it fairly | easy to bypass much of the OS for real-time applications, | but you can get most of the benefit by simply running a | single process (i.e. just run the kernel and a single | emulator process.) | | My point is similar to yours actually: that as long as | you calculate the output signals on time (e.g. before the | clock edge) there is not a meaningful difference between | hardware and software implementations. | | [1] http://www.radanpro.com/Radan2400/mikrokontroleri/rtv | ideo5.h... | blcknight wrote: | It's a good way to learn about FPGA's. Other thna that, the FAQ | has a good example about where the Amiga software emulation | falls short: | | > Let's take a well-known emulator, UAE, emulating an Amiga. On | a Raspberry Pi 3, you can run some Amiga CPU benchmarks and get | crazy numbers like 100 times the original 68000 processor. So | you may assume you have an emulated Amiga that is 100 times | faster than real one. No, you don't. If you run different kinds | of demos or games, you will see the video stutters sometimes. | For example, if you play the well-known "State of The Art" demo | by Spaceballs, you will notice video stuttering at some points, | while a real Amiga 600 with 1x CPU speed plays the whole demo | very smoothly. | | https://mister-devel.github.io/MkDocs_MiSTer/basics/faq/#why... | 0xcde4c3db wrote: | The main disadvantage of software emulation is that really | making the timing consistent with the original hardware is | computationally expensive because it needs to account for | things like bus arbitration and DMA interactions between the | CPU and graphics hardware. This means that you can't get away | with JIT translation, or even having your CPU emulation iterate | over a bunch of instructions at once. For most games this | doesn't make a big difference, but it matters in some edge | cases, and also for accurate slowdown behavior (most old-school | game engines let physics slow down when the CPU falls behind), | which is important for speedruns and other high-level play on | some games. | | While it's not intrinsic to software emulation, modern PC and | mobile operating systems tend to be somewhat bad about input | lag by default. This can be overcome, but it's work, and | vendors seem to invent an exciting new way to fuck it up every | few years. | | Similarly, a lot of old-school hardware ran at oddball frame | rates that modern systems won't do without a bit of coercion | (e.g. NTSC SNES runs at around 60.09 Hz in most modes), so | you're usually forced to choose between running the system at a | slightly inaccurate speed or allowing periodic stuttering. That | being said, modern displays don't necessarily support the | original refresh rates either, so FPGA-based systems have | needed to make the same compromises, just less often than | software emulators. | layer8 wrote: | It removes the need for a high-end CPU for accurate emulation, | and potentially reduces video/audio lag. | foft wrote: | If you want to eg add original ports and hardware interfaces | that tends to be easier with an fpga: cartridges, midi etc. Of | course you can do that in software/ bit bang. Though it's | complicated by emulator timing, they tend to run frame by frame | and sync at the end of a frame. | giantdude wrote: | It's a shame it's not on a Xilinx FPGA. I am out. | Koshkin wrote: | FPGAs are fun, for sure, but I still have never felt the flair of | "authenticity" from the use of FPGA as opposed to software | emulation on a microcontroller or the PC. In fact, software | emulation is so much more practical, and you can simulate pretty | much any aspect of it that you wish, not just the CPU and some | peripherals. A modern flight simulator is another example of | using software to bring the user's experience close to what it | would be in reality (especially with the VR gear). | randombits0 wrote: | Um, I don't understand how you might feel software emulation | has more "flair of authenticity" than a MISTer rig. FPGAs don't | emulate hardware, they are hardware. They are almost exactly | like the original. | greenbit wrote: | I wonder how much the misapprehension that FPGAs somehow | emulate is due to the fact that the way we configure them | looks so much like code. VHDL is ghastly, but I prefer it | over verilog bc verilog seems to actually try to look like C. | I think especially for beginners it's too easy to lose sight | of the fact that while you may "read through" your | VHDL/verilog, that when it hits the FPGA fabric it's all | going to happen in parallel. Maybe if the source matter were | made to resemble data more than code, we could simultaneously | ditch the verbosity of VHDL and the imperative algorithm | appearances of verilog. I'm thinking maybe JSON at the | moment. =P | BearOso wrote: | They're hardware, but not the same set of logic as the | original systems. They still rely on reverse engineering | efforts that occur when developing software-based emulators. | They produce the end results that were measured from the | original system, but not the exact behavior. As a result, | they're not naturally more exact than a software emulator. | | Where the FPGA comes in handy is in concurrent logic and a | fixed clock. This makes synchronization easy, and that is | what makes software emulators much more demanding. | prezjordan wrote: | Often times it's not flair but latency! I have yet to find a | handheld that plays my GBA titles with the same feel as my | actual SP, save my Analogue Pocket which has an FPGA. | Aromasin wrote: | I've wanted to give Mister FPGA a go for the longest time, but | the boards are never in stock any time I look. How are people | getting their hands on them? | etiam wrote: | Tough, given the difficulties the last few years I guess. | | But Terasic have the FPGA board listed for pre-order with | estimated shipping at the end of this month. I haven't had | opportunity to get one before either, so I'm not sure how the | availability for expansion cards has been. | fermentation wrote: | It's rough. I followed the misteraddons owner on twitter and | waited a few months for them to notify that kits were back in | stock | sigstoat wrote: | placed a backorder on mouser and then just waited. easier than | constantly checking and hoping. they don't charge your card | until it ships. | gchadwick wrote: | Apparently if you buy direct from Terasic you can get hold of | them. The downside is a large shipping cost and import | duties/taxes on top. I have heard of people successfully | getting them shipped from Terasic offices within the same | country as them to avoid the import duties issue. | krupan wrote: | Speaking from ignorance of the details of this project, but | couldn't other FPGA's/boards be used? Is it using some | Terasic specific features | flatiron wrote: | There's a required RAM module for most cores that slides | into the de10 nano. The software and the Linux kernel are | also tightly coupled. Individual cores can be ported to | different FPGAs though. The SNES one for example was | recently ported to the analogue pocket. | MegaDeKay wrote: | The Terasic boards are essentially an evaluation board and | despite the recent price increases, still give you a lot of | hardware for the money. Other boards that come close in | capability and have what you'd want for something like an | emulator platform (like HDMI out) are a lot more expensive. | Pretty sure Sorgelig (project lead) has said he has no | interest in ever porting it to a new platform. Doesn't mean | someone else couldn't, but it would be a major effort to do | so and keep up. | dang wrote: | Related: | | _Mister FPGA: The Future of Game and Computer Emulation_ - | https://news.ycombinator.com/item?id=29439279 - Dec 2021 (64 | comments) | | _MiSTer FPGA GBA Splitscreen Multiplayer_ - | https://news.ycombinator.com/item?id=27547848 - June 2021 (9 | comments) | flatiron wrote: | I was lucky enough to get in on this when the boards were ~$130. | It's one of my favorite pieces of tech. It "just works" and the | UI is very good. Updating is super easy and it even goes and | grabs the MAME Roms for you. CPS2 games feel much different than | my MAME box running Arch. I can 100% pick up the controller and | I'm a few seconds know which one I'm playing. The video | processing presets have some that make the games look amazing. | Psx I mainly play rpgs so latency isn't a huge deal there. If | anyone has any specific questions let me know. I think they are | twice the price now but even at that I would probably rebuy. I | use it probably 8-10 hours a week so worth a good investment. | radicalbyte wrote: | Same here, it's a fantastic piece of kit. Better than my retro | consoles. Only real downside is that I just don't have the time | to use it much :( ___________________________________________________________________ (page generated 2022-09-18 23:00 UTC)