-4

Let's say that the richest man alive decides to pour unlimited funding into making a perfect Nintendo 64 emulator.

This emulator can require 100 data centers full of ultra-expensive servers for processing. It can cost any amount of money. The only constraint is that it cannot take unlimited time to make. Let's say that they get a maximum of two years.

When I say "perfect", I really mean perfect. The pickiest, most hard-to-please retrocomputing snobs in the world will be hired to try this emulator out by having them repeatedly blind-test different Nintendo 64 + CRT "stations". 50% of these have a real Nintendo 64 (behind a cage) and the other 50% have what looks like real N64s, but they are actually hollow and just contain the "glue electronics" for the controller, power cord and the TV signal cable; inside, they are wired with a fiber cable to the next room where the hardware for the emulator resides. (Or where it begins, assuming it requires so much space.)

Other than trained human eyes, it will go through a number of tests to try every single game extensively and make sure that the exact same signals are sent back from the emulator as a real N64. If there is natural variance, an average is calculated from multiple real N64s and compared to what the emulator sends back.

Essentially, I'm asking if there is something fundamentally impossible with this, or if it's just that even our strongest home PCs are way too weak. Since any amount of computing power can be used in this scenario, the question is all about the software/logic.

Of course, they are not allowed to just replicate the hardware of a N64, or to invent a new computer platform which is extremely similar to a N64. It has to actually emulate it in software, albeit with extraordinary hardware resources. (Probably, but not necessarily, x86.)

  • 4
    Sorry to rain on your first question, but this seems to be a question about modern technical capability, not about retrocomputing. You can replace "Nintendo 64" with practically anything else, without changing the essence of the question. Thus, I'd say, not on-topic for this forum. – another-dave Sep 27 at 22:40
  • 2
    Why emulation and not a recreation in an FPGA? – snips-n-snails Sep 27 at 22:49
  • 7
    Just use a Nintendo 64. – Erik Eidt Sep 27 at 23:10
  • 1
    are you talking 2 man years or can I have an infinite number of monkeys? – BevynQ Sep 28 at 2:30
  • 3
    @another-dave I don't think this is his first question. We've had a lot of "questions" lately ranting about how awful it is that emulators aren't 100% perfect – OmarL Sep 28 at 9:24
5

There's nothing magical about the N-64 that would make it impossible to emulate. If you had an unlimited budget, you could presumably just buy all of the intellectual property involved and possibly hire some people who worked on the original hardware if they are still available, so you wouldn't have to reverse engineer it all.

I don't know why you've got the two year time limit as a part of the hypothetical, as that seems unrelated to the technical aspect of the question. Ideally, you'd be able to hire the team ahead of time so you know you have a reliable team before the time limit starts. If not it essentially devolves into an HR and project management question. Initial Nintendo meetings with SGI about using a MIPS CPU in the new console happened in 1993, and the console was released to the public in 1996. Since it took about three years to build the original hardware, so two thirds as long to build a better a software implementation of something that is already well established should be relatively straightforward in comparison.

As a question of raw performance, a modern GPU can easily do everything that the N64's graphics hardware did, and modern CPU's are far faster. You'd only run into performance limitations if you were truly trying to simulate the physics of every gate instead of emulating the behavior overall. I.E. Do you just use your CPU's 'add' instruction to emulate the process of adding two numbers, or do you try to simulate the specific hardware implementation of an adder inside a chip in the N64.

| improve this answer | |
2

MAME already emulates various hardware, so I'd say the job is already 99.9%.

https://www.reddit.com/r/emulation/comments/6lkqy7/mame_n64_emulation_results/

So - just gonna take a bit of time to squeeze the processing cycles from current hardware (CPU / GPU)

My answer would be yes, if you had some super-smart dudes who knew what they were doing with the hardware and had some creative flair for working around issues.

| improve this answer | |
1

It is of course possible; the N64 was designed well into the era when computers were used for chip design and would produce an electronic description of how to print chips — analogous to a netlist for an FPGA but not exactly that. Those can be simulated in software.

Given that you have unlimited funds, you can likely reverse-engineer those descriptions by decapping the original chips. Hobbyists have managed to do that for much lower-power hardware such as the 6502 already.

Or failing that, Nintendo currently has a market cap of $49.7bn, but you have unlimited funds so I'm sure they'd entertain an offer of $1,000bn, likely getting you access to the original design documents.

Getting at what I think is the real question, N64 emulation currently suffers from:

  • lack of complete information about the underlying hardware;
  • the historical prominence of high-level emulators that somewhat suffocates the market;
  • sexier targets being more likely to recruit fresh talent (e.g. Dolphin, a Gamecube and Wii emulator with a diverse and talented team behind it); and
  • a combination of issues that accrue with software emulation multiplied in some cases by the use of cross-platform libraries that seriously compound them.

None of those is in theory insoluble.

| improve this answer | |

Not the answer you're looking for? Browse other questions tagged or ask your own question.