What exactly is the benefit of a dedicated hardware FPGA over regular classic software emulators?
Each logic elements of an FPGA is programmable to match the data, adresses and instructions as exactly the old system was made like. It's basically to make a copy of the old CPU and other chipsets into an FPGA, there's no higher level interpretation from a different language to send then to a modern processor to create what it should be like, which is software emulation. Some cores are exact recreations, some not, but still very close to the real thing. Some peoples have even delid old chipsets to make better VHDL codes to match the circuit.
As someone who learned VHDL for FPGA during electrical engineering, I kind of respect madly FPGAs. You basically rewire a blank state processor to match to perfection another chipset.
For software emulators, processors from PC are generally just steamrolling the problem away, even though the clock cycles of all console components don't make sense for the x86 CPU, it iterates so fast that it kind of keeps up. FPGA since it can do all chipsets in a perfect circuit, each clocks given by the FPGA can run the whole system at 100% accuracy. If old system had a chipset that would maybe skip a clock or more for whatever reason, you program that too. So you need way less speed than a processor that is running software emulation. On FPGA everything is parallel, if the user wants, it can do the maximum systems the FPGA can contain and run it all in a single clock instantaneously, no queue, no thousands of stalls to wait on the old slugish ass processors instructions to be done in the sake of accuracy.
I suggest looking also at my answers at the bottom.
Not this again...
VGEsoterica
my bro, could you please put a disclaimer every time you post a thread, that FPGAs are not inherently more accurate than software emulators? You obviously love FPGAs and like to inform people about them, you could help stop this misinformation that always spreads in your threads, thanks.
I suggest this read
How can it take 3GHz to emulate a Super Nintendo? The man behind a major SNES …
arstechnica.com
PCs have brute forced their way into it but for ridiculous amounts of processing power to match puny decades old chips, and some
still have problems.
This guy's whole video is a pretty good explanation, I suggest watching it, but the part about software accuracy more importantly.
What typically happens with all software emulators, even the accurate ones, is that it depends on a huge effort from the team to hack their way around the problems with tweaks on timing values, patch out certain needs and areas of code. It's a lot of effort. They've done it for most of the games of course, over decades of effort and countless man hours and a monumental gap in power between the original hardware and the modern PC.
While when the FPGA core is up and running, that's it. That problably covers 99~100% of all game library to run as it was intended.
There's so much focus on popular consoles like NES/SNES/SMS/Genesis, etc that it looks nearly perfect and I would say indiscernible from FPGA
Then software emulation completely fails an
amiga 500 while mister FPGA will cruise on that. But not popular so not talked about.
You can have the same perfect speed timings on a software emulator. Input lag is a different issue and isn't a problem caused by the emulator itself but the OS. This is also explained in the article i linked.
Not all software emulators have the same accuracy. It's a tradeoff of performances. There's specialty emulators that aim for high accuracy such as
Higan
As of a few years ago, it was the only emulator not bugging out on Yoshi's island. ZNES is notorious for inacuracy in general. SNES9x did a better job, but still off. Again, modern CPUs steamrolled it eventually, Higan was the go-to for the best experience, but the SNES emulators on say, a 3DS, would bug out on this game.
I don't have any horses in this race, I don't own any FPGA emulator nor any software handheld emulators. But having worked on VHDL FPGAs I understand the gist of the why they do it. Is it required to play retro games? No. Is it expensive? Yes. After that it's a choice.
Software emulators are dependent on OS changes, API changes, hardware changes. They patch something, break something. It's the typical cycle that devs are left with a clinging community to
always support them even though the emulator is old as shit.
I think that's something FPGA is making it a lot more simple. If the core is good, that's pretty much it. There's no OS/Driver/API/hardware configs to debug. All mister FPGA cores could be ported to a bigger FPGA (Mars FPGA if it releases?) and remain the exact same performances, as long as the other FPGA is an upgrade in every senses. That's another thing for simplicity is how easy they are to have accurate results without tweaking. While software emulators are configured for general compatibility but then something is a bit off and you have to tweak it in the settings. Some want to pay extra money on that and I get it.
These guys who are good at VHDL probably don't even understand that if they focused their attention to aerospace industries they would be paid big sums of money compared to their emulator hobby as it's very tough to find good VHDL programmers nowadays, but aerospace industries use that heavily for how solid and reliable it is.