Jump to content

Download a working 3DS emulator? (Hint: it hasn't been made yet)


Recommended Posts

I've been quite active lately on reddit's /r/emulation subsection and I wanted to share this answer to a question that was asked regarding the existence of a 3DS emulator. The writer is "ThatSandersKid" ( http://www.reddit.com/user/ThatSandersKid ) and is by far the best explanation I have found online in 2013. To be clear: No working 3DS emulator exists.


Here is the reason why...

Here's an actual technical explanation to why this hasn't happened yet, and won't for the foreseeable future:


The Nintendo 3DS uses a relatively standard ARM11 dual-core processor, here called "Nintendo 1048 0H". This is a big step up from the ARM9 processor used in the DS/DSi, and has a great deal more in the way of processor instructions than the ARM9. The good thing about this is that this is used in a very wide variety of products, including a wide variety of mobile phones, the Raspberry Pi, and the Zune HD. Consequently, and due to the nature of the ARM architecture, it's very well documented.


The problem is that the 3DS uses a custom GPU called the PICA200 made by a small Japanese design firm called Digital Media Professionals (DMP). This is partially why the amount of games coming out for the system in the first year was so small, because programmers simply weren't used to the design. Because the PICA200 isn't a standardized design like ARM processors, the documentation for it that is available to emulator writers is low to practically nonexistent.


It's theoretically possible to translate most of the commands to the GPU into standard OpenGL ES 2 commands (because we know that it does that much), in a manner otherwise called "High-Level Emulation", in much the same way the N64 was/is emulated. It would be fast, but it wouldn't be terribly accurate, and some things might break because of it. It's also unknown (to me, someone else might be able to correct this) if the DMP200 GPU handles the instructions for DS games, or if that circuitry is on the CPU die (which seems more likely). The lack of documentation or understanding of the DMP PICA200 is the main impediment to a usable 3DS emulator.


For comparison, and this is just a comparison, the two systems have little to nothing in common: The design differences from an architectural/emulation standpoint between the DS and 3DS are much more different than they are in the GameCube, Wii and Wii U. That is, the 3DS is more different from its predecessor than the Wii U is, and that creates a learning curve for programmers and a bigger challenge for emulator developers.


Taking this comparison one step backward, the differences in the GBA and Nintendo DS, from an architectural standpoint, were much more well-understood, the GBA used an ARM7, and the DS was cracked relatively early so programmers could run arbitrary code on the system to explore how it works, which aided in understanding the (comparatively simple) GPU on the DS.

Link to comment
Share on other sites

  • 2 weeks later...
  • 2 years later...

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Create New...