Emulating Console Hardware Is Tough For Nintendo DS

Le dans «misc» par Lloyd

Have you heard of DICE? DICE stands for Digital Integrated Circuit Emulator, and it’s a software project that is created for perfect, pixel by pixel, frame by frame instruction by instruction emulation. It accomplishes this by emulating on a low level, but taking this approach to the extreme – DICE even simulates original hardware down to the level of individual transistors. DICE makes those oldest games like Pong to run perfectly on modern systems, but at what cost? Running Pong, arguably the first video game ever created through DICE on a 3000Mhz system will result in a frame rate of somewhere between five and ten frames per second. A processor that could run Pong this way at full speed is still not available on the market.

That’s not a typo: if you want absolutely mathematically perfect emulation, you need hardware that’s not even invented yet. And it’s not the fault of DICE – it’s in fact a highly optimized program, and it’s using all instruction sets of modern CPU’s very well. The problem is rather in the fact that simulating every transistor instruction from the hardware Pong was created to run on is an incredibly daunting task that requires massive processing power. But since the knowledge needed to emulate games at this level is already there, all that’s left is for the hardware to catch up, so we can be optimistic – it’s only a matter of time before common, every day processors of the future will be able to produce 100% accurate emulation. This will make those hard core classic game enthusiasts happy.

Obviously, using the same approach that DICE emulator uses when attempting to emulate a bit more modern computer systems poses some issues. Let’s take Visual6502 as an example. This CPU was used by such popular systems like Nintendo and C64, some early Amiga home computers and others. Using an approach like previously described DSP extraction makes high-level of simulation for this processor possible, and the emulation code that was produced this way has been known to run in C and JavaScript. The fact remains that computers are just not fast enough to run emulated hardware by using this approach "drastic ds emulator games", no matter how accurate it might be.

Although in the perfect world, every emulator would support every last bug and quirk and emulate them all down to the smallest function of the least significant transistor chip, in the real world this just isn’t going to happen. That’s why most emulators aim for the sweet spot of over 90% accurate emulation. This makes most games run good enough most of the time, but has an added and practical benefit of being possible to run on almost all hardware. The perfect low level emulation is still a pipe dream. It’s safe to assume that the processing power of computers will not increase enough to make emulating fairly old consoles, like Nintendo 64 on low level possible for the foreseeable future. Even emulating older hardware than Nintendo 64, for example SNES at this level is not likely.