Hacker News new | past | comments | ask | show | jobs | submit login

It's interesting that this has ramifications for the emulated console(s) within the console. On one hand, it's an amazing technological achievement to emulate a system well-enough that it can emulate another. On the other hand, however, it's staggeringly inefficient. Emulating a system is inefficient, but it makes sense because it prevents the need to keep all kinds of hardware 0n hand. Emulating a system that emulates a system compounds the inefficiency and is unnecessary, but is a really cool achievement.



Fun fact: Dolphin emulates some N64 games better than current PC N64 emulators do. For example, Mario Tennis (N64) is considered very difficult to emulate, but the official Nintendo emulator running in Dolphin has almost no problem with it!


I'd have to imagine this is because the game executed by the virtual console has been simplified and improved by Nintendo since they have direct access to the source.


Or, possibly, that each Virtual Console ROM ships with a set of shims or plugins to the emulator, to add extra logic and workarounds specific to each game.

Which is pretty much exactly how NES and SNES cartridges worked, come to think of it—except that the console they were patching was hardware, so they had to add new physical chips to do it. (Speaking of, I've always wondered why no console just ships with some FPGAs inside that are free for each game to program on startup.)


It'd be doable to have an FPGA there, it'd have to be an SRAM backed FPGA which will make it more expensive from what I've seen. Otherwise they're usually flash based which will wear out after a while. It'd also likely suffer a similar fate to the random processors in the playstation systems where they barely got any use in games to a serious extent since they were only on one system.


An fpga that would be useful is a relatively expensive piece of hardware, even at scale. Additionally, finding skilled professionals that would be able to work with them is much, much tougher than hiring a comparable graphics programmer.

There's also the issue of developing for an fpga being more difficult, and thus time consuming, than writing tight c.


Because it makes mass production a lot harder and a lot more expensive.


It's also really lucky that the Gamecube GPU, released well over 10 years ago, matches extremely well to the modern GPU pipeline.

Compare this with the PS2, which has a bunch of crazy programmable coprocessors to build an extremely flexible but hard-to-emulate system.

It's probably no coincidence, given that it was developed by ex-SGI engineers who founded their own company, ArtX, who got bought out by ATI to develop the R300, one of the first modern programmable GPUs.


The PS2 had an unseen graphics VRAM speed (48 GB/s), and that's why it's hard to emulate it on PS3, and maybe even PS4 (early PS3 simply included PS2 in there).


As far as I know, all reverse compatibility at initial release that any console has ever had is by virtue of either the new console being "just" the old console with some more hardware bolted on and higher clock speeds, allowing the new hardware to be the old hardware just by turning the new features off and slowing the clock, or by simply physically including the entire previous console in the new one. I don't know of anything that ever did it by emulation. Maybe something back in the first couple of generations. I post this partially so someone will correct me, because I'm interested in the correction.


The Xbox 360 is a different architecture (tri-core PowerPC vs single core x86), but it emulates the majority of Xbox games. There are bugs, but Microsoft fixed most of the issues with popular games.


I never owned an Xbox, but I always thought that it was matter of recompiling (Xbox games to PPC) and re-releasing. I could be wrong....


While the Nintendo DS contained the CPU the GBA did, the Nintendo 3DS does not contain the DS's CPU. I assume that's either because, as they're both ARM chips, the instruction set is backwards-compatible, or that there's actually emulation happening.


The 3DS downclocks the ARM CPU and disables its second core when playing a NDS game. As a side effect, battery life is better when playing DS games on a 3DS than when playing native 3DS games on the same 3DS.

The 3DS processor is capable of emulating 8-bit systems, as it has virtual console NES and GB/GBC games. SEGA also ported some Genesis games to run on the 3DS, but I think they had to re-write parts in native ARM code as straight emulation wasn't fast enough (Google "Sega M2 GigaDrive" for a great series of interviews about this).


Some PS3s shipped with hybrid SW/HW emulation where, IIRC, the PS2 CPU was emulated by the Cell processor and the PS2 GPU hardware was included.


Wow, I didn't know this. I was so annoyed when the slim got rid of backwards compatibility but it makes more sense now. It's easy to underestimate the complexity of emulating older systems I guess.




Join us for AI Startup School this June 16-17 in San Francisco!

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: