@TenEighty You're very wrong for someone talking so big and talking down others.
Software emulations aren't less accurate than FPGA hardware emulations by any theoretical limit and they are based on the same reverse engineering methods as FPGA hardware emulators are. In fact, as far as I can tell, more often than not, at least with gaming consoles, hardware emulator developers heavily rely on hardware research that was done by the developers of software emulators.
At the end of the day FPGA hardware emulators model the behaviour of original hardware using digital, sequential logic, executed/accelerated by an FPGA. How close that logic is to the circuits of original hardware heavily
depends on what information was available to the developer and how carefully the developer implemented it. There is no guarantee that the model produces correct outputs for all inputs. For most systems you can't even measure a lot
of meaningful information using logic analysers or decapped chips. And even if you can, this doesn't guarantee a perfect and hack-free implementation. For instance the logic in some devices, like the original Game Boy, not all logic uses sequential circuits and certain behaviour depends on gate propagation delays, which not even a FPGA implementation can model without hacks.
By the way, FPGA emulators can be simulated with software, by using something like Verilator to compile the HDL model into software. Now, that simulation might be very slow, but it shows that your argument,
that software emulators somehow are intrinsically less accurate / "has to focus on [X]" is unsound.
Software emulators therefore can implement the same hardware models,
that FPGA emulators do and compared to something like Verilator, they can use higher-level abstractions and optimizations, where the use of them provably does not affect the output.
Cycle-accurate software emulators will do this and those that have been developed for a long time by dedicated developers will routinely outdo FPGA emulators in accuracy tests that have been developed in a comparatively short amount of time, especially if it's for some quick cashgrab handheld device.
Finally I often read the argument that FPGAs are more efficient than CPUs at simulating hardware, due to the parallel nature of FPGAs. This is technically true, but what people always forget is that there is a hard limit
to what you can fit on a reasonably affordable FPGA board and run in realtime too. For example the developer Robert Peip, who worked on FPGA GBA and other cores, stopped working on his Nintendo DS FPGA implementation, because he couldn't fit it on his target FPGA.
I really wonder where your self-proclaimed experience comes from,
because your knowledge of the topic appears extremely outdated, if put charitably, and otherwise completely wrong.
Signed, an annoyed emulator developer with experience in cycle-accurate emulation
Comments 1
Re: Creator Of New Open-Source Game Boy Disagrees That FPGA Is Superior To Software Emulation
@TenEighty You're very wrong for someone talking so big and talking down others.
Software emulations aren't less accurate than FPGA hardware emulations by any theoretical limit and they are based on the same reverse engineering methods as FPGA hardware emulators are. In fact, as far as I can tell, more often than not, at least with gaming consoles, hardware emulator developers heavily rely on hardware research that was done by the developers of software emulators.
At the end of the day FPGA hardware emulators model the behaviour of original hardware using digital, sequential logic, executed/accelerated by an FPGA. How close that logic is to the circuits of original hardware heavily
depends on what information was available to the developer and how carefully the developer implemented it. There is no guarantee that the model produces correct outputs for all inputs. For most systems you can't even measure a lot
of meaningful information using logic analysers or decapped chips. And even if you can, this doesn't guarantee a perfect and hack-free implementation. For instance the logic in some devices, like the original Game Boy, not all logic uses sequential circuits and certain behaviour depends on gate propagation delays, which not even a FPGA implementation can model without hacks.
By the way, FPGA emulators can be simulated with software, by using something like Verilator to compile the HDL model into software. Now, that simulation might be very slow, but it shows that your argument,
that software emulators somehow are intrinsically less accurate / "has to focus on [X]" is unsound.
Software emulators therefore can implement the same hardware models,
that FPGA emulators do and compared to something like Verilator, they can use higher-level abstractions and optimizations, where the use of them provably does not affect the output.
Cycle-accurate software emulators will do this and those that have been developed for a long time by dedicated developers will routinely outdo FPGA emulators in accuracy tests that have been developed in a comparatively short amount of time, especially if it's for some quick cashgrab handheld device.
Finally I often read the argument that FPGAs are more efficient than CPUs at simulating hardware, due to the parallel nature of FPGAs. This is technically true, but what people always forget is that there is a hard limit
to what you can fit on a reasonably affordable FPGA board and run in realtime too. For example the developer Robert Peip, who worked on FPGA GBA and other cores, stopped working on his Nintendo DS FPGA implementation, because he couldn't fit it on his target FPGA.
I really wonder where your self-proclaimed experience comes from,
because your knowledge of the topic appears extremely outdated, if put charitably, and otherwise completely wrong.
Signed, an annoyed emulator developer with experience in cycle-accurate emulation