MetalNES: Transistor Level NES Simulation
github.com
github.com
Thanks Shitman!
GateBoy runs surprisingly fast for a gate-level simulation.
I used to work with circuit simulators to design circuits (discrete and integrated) and there are many transistor models (mathematical models) depending on the use case. In spirit, not too unlike DFT for Schrodinger equations in quantum mechanics.
In this context it means emulating "perfectly" by actually simulating the hardware in full instead of taking the aforementioned approach.
bool c = !(a && b)
From what I can tell, this 3-minute video shows the process of generating 2 and a bit frames.
9000 cycles/s / 1.79 MHz = 0.5% of realtime. The only time you ever see rendering a line at a time is single stepping through an emulator.
I wonder if this is how FPGA developers working in VHDL/Verilog see the world? https://www.patreon.com/posts/37038491 here's a short clip of the VRAM of a PSX rendering about half of a completed frame of Final Fantasy 7's battle screen.
-Austin, GateBoy guy.
Helpful? Extremely not.
I just ran this on my high-end M1 Max, and it rendered 2 frames in roughly 3 minutes.
Hardware-accurate emulation is, generally speaking, not fast emulation.
https://www.pagetable.com/?p=39
It more or less falls under true classic highz buses with multiple drivers.
You have three options I can see
1) treat it as a spice simulation that aggressively optmizes to synthesizable logic most places other than the problem parts.
2) hand replace the problem parts with synthesizable logic sorta like how Nvidia replaces graphics shaders with had written replacements in their drivers
3) just throw the whole thing into a spice simulation
Like, for an extreme example there's no world in which the in-development PSX mister core, running on a de10 nano, is particularly more accurate than a software emulator. The chips involved have too many transistors to completely simulate. But this will be true to some degree for everything above some complexity threshold. Maybe the Atari 2600 core is perfectly accurate.
I wouldn't be surprised if the most accurate software emulators are more accurate than the most accurate fpga cores, especially for anything newer than the NES, just because that's where most of the original work involved happens.
This idea that FPGAs are inherently more accurate seems to be rooted in marketing FUD from a company called Analogue.
That’s the accuracy that’s above what an emulator on our Babel’s tower of a stack on Windows.
(I say sort of because there usually is a system that could be described as an OS running somewhere on the fpga board, to load the fpga bitstreams, if nothing else, but also sometimes to supplement the fpga's abilities)