How feasible would low-level accurate emulation of the NES PowerPak be? Given a boot ROM image and a CF FAT32 image, could a software based emulator emulate the actual FPGA configware files, or is software based emulation of an FPGA simply far too slow?
It is only a matter of time before games start doing strange things with the FPGA, such as a game that constantly reconfigures the FPGA according to configurations built on the fly, that there will be a demand for emulating the PowerPak
FPGA emulation isn't feasible, it's nearly impossible to reverse engineer one due to the crazy level of integration and there's also the fact that there's really no point.
FPGA do not execute but carry out functions by using hardwired macro logic in parallel. To emulate one, for every state change the entire system must be updated as is the nature of things running in parallel. This is difficult enough with two processors whose operations are already macros on the target hardware and extremely difficult computationally when you must simulate a complex system down to gates because a procedural processor isn't meant to carry out logic, logic gates are meant to do that.
When you think about the thousands to millions of gates in a FPGA, you can see why this doesn't make any sense.
If the scene were to adopt low level emulation of mappers, it would be better to allow the file to define the interconnections of standard AND OR NOT which would dynamically spawn the mapper through a linked evaluation list kind of thing. That would be much faster than FPGA emulation but still slow as hell and not necessary for accurate emulation.
That would be incredibly slow. Like kyuusaku said, it's all parallel. A CPU does one thing on every step, logic does everything on every step.
I think MAME at once point emulated Pong, which was made from all discrete logic chips. Even that took a lot of CPU work, and that'd probably fit many times over in most FPGAs.
I remember looking at a website once where some guy simulated the NES with a program so it was made with logic gates. IIRC, it had to run for several days to make it through the startup code and display title screen for Tennis.
I doubt I could even convince anyone to emulate my PIC for Squeedo, and it's much simpler than that. I was tempted to code it myself once, but I already put too much time into things for little to no gain as it is, heh.