Raspberry Pi 4 and the State of Video Game Emulation
hackaday.com
hackaday.com
The Nvidia Jetson Nano seems like a no brainer in the emulation space. It's 90$ with 4GB RAM (vs 70$ for a 4GB Pi4). For that extra Jackson, one gets actual GPU cores with compute support baked in(not to mention mature graphics drivers).
And its not like there is much of a trade-off for those CUDA cores. The Nano is also roughly the same size as a Pi, has that 40 pin header (it even throws in actual PCIe lanes)
I realize emulation is often CPU bound, but having a decent GPU on tap can't hurt.
I don't do small boards, so maybe I am missing something?
It's sad that all the effort spent on "optimizing" emulators for RPI is essentially wasted, putting lipstick on a pig.
Spend a little more money and get a single board x86 computer (e.g. Odroid H2) or a NUC and these issues go away.
Sure, a NUC will blow it away and if you're building a dedicated gaming appliance that's a good way to go. But compared to the Pi3 and it's predecessors there's respectable horse-power on the Pi4.
Or ditch emulation and buy an open source based MiSTer FPGA-board. No Playstation generation consoles though, but 8-bit and 16-bit era consoles, arcade systems and home computers are pretty accurate and are getting better each day.
MiSTer also supports "486" core, although it's closer to ~16 MHz 386. Amiga core is also pretty nice.
An FPGA based system can achieve higher accuracy than even the fastest x86 CPUs. Not sure if MiSTer is the ultimate solution yet, but the potential is certainly there.
(Not affiliated with any MiSTer authors, just a fan of the project.)
Still a lot cheaper than top of the line AMD/Intel CPU. MiSTer's FPGA could probably beat hypothetical 10-50 GHz x86 CPU when absolute accuracy is desired.
Emulating something as simple as Famicom (NES) accurately can bring 4 GHz CPU on its knees, see for example https://www.reddit.com/r/EmulationOnPC/comments/a5u7yn/what_....
That said, emulators on x86 hardware (or even RPi) can be very good and even have very low latency. They're also more convenient, because they can save whole system state and even support smooth rewind.
You have clearly "drank the Kool-Aid" on this, and you are misinformed.
Accuracy is not inherent to FPGAs. Yes, full transistor level simulation of a CPU is very slow on a different CPU, that's true. If your goal is to have cycle accurate gate level emulation of video game hardware, which produces perfectly accurate gameplay, then yes, an FPGA is where you go.
If your goal is to play a perfectly accurate emulation of your game without worrying about emulated transistor state at every clock edge, then a CPU can do just fine, and it doesn't need to be some obscene clock speed to achieve that goal.
CPU limitations are reached long before emulating a system at gate level! I think emulating a lowly 1 MHz 6502 at gate level could not run anywhere near realtime — even without any support chips.
As someone who has written CPU based emulators, accurately synchronizing between multiple video, audio etc. support chips and even other CPUs can be very very difficult to do in real time. Trying to leverage modern multi-core CPUs has no advantage over single core ones, because inter-CPU synchronization latency far exceeds theoretical gains.
You can get pretty close by cheating a bit as long as no software depends on exact timing. That's what most CPU based emulators do.
I believe we should try to accurately preserve these early systems for the future generations. They'll be part of our cultural heritage and history.
The accuracy you see with the Analogue products and with MiSTer are the result of hard work towards the goal of accuracy, and not an inherent feature of using an FPGA.
When connected to a CRT, an FPGA solution can provide much better end-to-end latency than a software solution running on an operating system, that's certainly true, but again that's not inherent to running on an FPGA; it's inherent to running without an operating system that does display composition.
Very much true, and sorry if I didn't make it clear enough. However, there's inherent potential for the ultimate accuracy without performance penalty. That's what I meant by saying it's getting better every day. You couldn't say that about a perfectly accurate system.
> FPGA solution can provide much better end-to-end latency than a software solution running on an operating system
CPU based emulators can actually reach very low latency with modern beam racing techniques. See https://www.blurbusters.com/blur-busters-lagless-raster-foll....