Difference between revisions of "Nintendo 3DS emulators"

From Emulation General Wiki
Jump to navigation Jump to search
(Game Images: outdated)
Line 38: Line 38:
 
'''The Nintendo 3DS currently has no emulators that play all games with all features intact.''' This is mainly because for a long time the hardware was documented only sparingly, and homebrew code execution was hard to achieve. Nowadays, the hardware is better known and homebrew is being developed. Many games boot now, with a few even having no noticeable graphical issues. However, sound has not fully been implemented. This, along with other various issues, exist that make 3DS emulation not ready for prime time just yet.
 
'''The Nintendo 3DS currently has no emulators that play all games with all features intact.''' This is mainly because for a long time the hardware was documented only sparingly, and homebrew code execution was hard to achieve. Nowadays, the hardware is better known and homebrew is being developed. Many games boot now, with a few even having no noticeable graphical issues. However, sound has not fully been implemented. This, along with other various issues, exist that make 3DS emulation not ready for prime time just yet.
  
===Game Images===
+
==Game Images==
 +
===3DS vs. CIA===
 
There's two big types of 3DS game images currently:
 
There's two big types of 3DS game images currently:
* NCSD-type: Includes .CCI (Citra Cart Image), aka .3DS
+
* '''NCSD-type:''' Includes '''.CCI''' (Citra Cart Image), aka '''.3DS''' - data on physical carts, can be executed right off the bat, not used much since no one bothered to develop a CFW solution to load them yet (besides converting them to CIA) and only overpriced flashcarts (Gateway/Sky3DS) can load them.
* NCCH-type: Includes .CIA (Citra Importable Archive) and .CXI
+
* '''NCCH-type:''' Includes '''.CIA''' (Citra Importable Archive) and '''.CXI''' - installers that unpack game data to the SD card or the 3DS NAND memory (if you have a ticket proving ownership of that game, but tickets can be shared and even fool Nintendo's servers into letting you download the game, using tools like FreeShop or Wii U USB Helper if on a PC). Some homebrew apps (FBI, DevMenu) can install CIA files on 3DS systems with CFW installed. Digital only games will use this format internally.
  
(Citrus, Citra or CTR being the internal code name for the 3DS)
+
Note that Citrus, Citra or CTR is the internal code name for the 3DS.
  
The first type ('''.3ds''') is used for data on the physical carts, and can be executed right off the bat. These ROMs are playable on official developer flashcards, and 3DS flashcards like Gateway/Sky3DS, but are not playable on CFW aka custom firmwares (because no one bothered to code homebrew doing so... for now).
+
Due to one format being so far restricted to overpriced flashcarts and the very slow Citra development (meaning playing on a real 3DS is still the preferred way to go), the CIA format is preferred in many sharing websites, downloader tools and even tools to dump your own games.  
  
The second type (.cia) are essentially '''installers''', unpacking and installing the game's contents to your SD card or the 3DS's NAND memory, provided you have a '''ticket''' proving you own that game. They're found on digital installs and Nintendo's servers (and some homebrew apps like Freeshop and CIAngel can fool them into thinking you have the tickets and can download the .cia for free even without the eShop). Some unofficial homebrew apps like FBI and DevMenu can install cia files on 3DS systems with CFW, even if the cia files don't have the proper signature or region code.
+
However, converting a CIA image to 3DS format (and vice-versa) is still possible with no loss of content. Either 3DS homebrew (GodMode9) or PC tools ([http://github.com/ihaveamac/3dsconv 3dsconv]) can do that.
  
Citra can only load .3ds files and not .cia files for now. However...
+
Some outdated dumping utilities intended for use with Citra (like braindump) produce damaged decrypted 3DS images that can't be easily converted back. No known solution exists so far to fix those dumps.
  
The 3DS custom firmware can only load .cia files and not .3ds files. In addition, the more recent dumping tools output .cia files, even from physical cartridges. And more and more games are digital only nowadays.
+
===Encryption===
 +
Most dumps online are also encrypted. This encryption poses no problem for playing game images on a real 3DS since it can deal with that encryption with internal keys included in the bootrom, but becomes a problem when trying to emulate them on PC. Citra will refuse to play encrypted games.
  
This means most dumps online are in the preferred .cia format, considering games are more playable on the real deal than on the Citra emulator.  
+
Formerly, decrypting those ROMs used to require real 3DS hardware (bafflingly enough, Citra devs still ask users to do this even nowadays). It required files generated by a real 3DS called '''xorpads''' unique to that game version, using the encryption engine within the 3DS. After this part, these xorpads (which are big) can be used with PC tools (or other 3DS-based homebrew) to produce the decrypted game image. After that, some 3DS homebrew (Decrypt9, GodMode9) included tools to directly convert encrypted images to decrypted images with a single button press, but those still require a real 3DS.
  
Even the ones in .3ds format will be most of the time '''encrypted''' (same for the .cia ones, for that matter). The 3DS can decrypt and play those dumps, even unofficial ones, but Citra can't. Currently, converting an encrypted (normal) game dump to a decrypted dump requires files generated by a real 3DS called '''xorpads''' unique to that game version.
+
The game changer was the sighax exploit, allowing to dump the 3DS bootrom which includes these encryption keys. This file is specific to each 3DS so many people are reluctant to share it, but assuming you have one, you no longer need a real 3DS to do the decryption part. You can then just use it with PC tools (like [http://github.com/ihaveamac/3dsconv 3dsconv]) to produce decrypted game images.
  
Fortunately, converting from .cia to .3ds and vice-versa is still possible. It still needs those xorpads, except if the game is already decrypted (and [https://github.com/ihaveamac/3dsconv 3dsconv] can convert 3ds dumps back to cia in case you needed them for the 3DS CFW).
+
===Citra===
 +
'''Citra''' can only load game images in '''decrypted 3DS format''' so far. A solution to load encrypted images is for the moment on the back burner and there's not much developer interest for it. If you want to play games on Citra, you'll have to convert your game images to that format.
  
 
[[Category:Consoles]]
 
[[Category:Consoles]]

Revision as of 11:15, 13 June 2017

The Nintendo 3DS handheld console

The Nintendo 3DS is the latest handheld console by Nintendo, released in 2011. The most notable feature of this console is the use of autostereoscopic (i.e. without glasses) 3D, which can be configured using a slider.

Emulators

Name Operating System(s) Latest Version Active Recommended
Citra Windows, OS X, Linux (nightly builds)
3dmoo Windows, Linux (nightly builds)
TronDS Windows, Linux 1.0.0.5 ?

Comparisons

  • Citra is an early in development open-source 3DS emulator made by experienced emulator developers. It is considered experimental, and it runs homebrew applications with a decent degree of compatibility. Though it can play many commercial games to some extent, the emulator has various graphical and sound issues with most games, and requires a very powerful CPU for most games to be playable. Citra is being regularly worked on, and progress in it is faster than expected for most emulators. However, there's still no telling how long it will be before it is suitable for playing games to completion.
  • 3dmoo is another open-source 3DS emulator, made by experienced developers in the DS hacking scene. It was released shortly after Citra and received similar progress for a few months, but was eventually aborted by its authors after a while.
  • TronDS is a closed-source 3DS emulator, presumably made by the iDeaS author. Little is known about it other than that it can run simple homebrew. It cannot be used for playing games.

Emulation issues

The Nintendo 3DS currently has no emulators that play all games with all features intact. This is mainly because for a long time the hardware was documented only sparingly, and homebrew code execution was hard to achieve. Nowadays, the hardware is better known and homebrew is being developed. Many games boot now, with a few even having no noticeable graphical issues. However, sound has not fully been implemented. This, along with other various issues, exist that make 3DS emulation not ready for prime time just yet.

Game Images

3DS vs. CIA

There's two big types of 3DS game images currently:

  • NCSD-type: Includes .CCI (Citra Cart Image), aka .3DS - data on physical carts, can be executed right off the bat, not used much since no one bothered to develop a CFW solution to load them yet (besides converting them to CIA) and only overpriced flashcarts (Gateway/Sky3DS) can load them.
  • NCCH-type: Includes .CIA (Citra Importable Archive) and .CXI - installers that unpack game data to the SD card or the 3DS NAND memory (if you have a ticket proving ownership of that game, but tickets can be shared and even fool Nintendo's servers into letting you download the game, using tools like FreeShop or Wii U USB Helper if on a PC). Some homebrew apps (FBI, DevMenu) can install CIA files on 3DS systems with CFW installed. Digital only games will use this format internally.

Note that Citrus, Citra or CTR is the internal code name for the 3DS.

Due to one format being so far restricted to overpriced flashcarts and the very slow Citra development (meaning playing on a real 3DS is still the preferred way to go), the CIA format is preferred in many sharing websites, downloader tools and even tools to dump your own games.

However, converting a CIA image to 3DS format (and vice-versa) is still possible with no loss of content. Either 3DS homebrew (GodMode9) or PC tools (3dsconv) can do that.

Some outdated dumping utilities intended for use with Citra (like braindump) produce damaged decrypted 3DS images that can't be easily converted back. No known solution exists so far to fix those dumps.

Encryption

Most dumps online are also encrypted. This encryption poses no problem for playing game images on a real 3DS since it can deal with that encryption with internal keys included in the bootrom, but becomes a problem when trying to emulate them on PC. Citra will refuse to play encrypted games.

Formerly, decrypting those ROMs used to require real 3DS hardware (bafflingly enough, Citra devs still ask users to do this even nowadays). It required files generated by a real 3DS called xorpads unique to that game version, using the encryption engine within the 3DS. After this part, these xorpads (which are big) can be used with PC tools (or other 3DS-based homebrew) to produce the decrypted game image. After that, some 3DS homebrew (Decrypt9, GodMode9) included tools to directly convert encrypted images to decrypted images with a single button press, but those still require a real 3DS.

The game changer was the sighax exploit, allowing to dump the 3DS bootrom which includes these encryption keys. This file is specific to each 3DS so many people are reluctant to share it, but assuming you have one, you no longer need a real 3DS to do the decryption part. You can then just use it with PC tools (like 3dsconv) to produce decrypted game images.

Citra

Citra can only load game images in decrypted 3DS format so far. A solution to load encrypted images is for the moment on the back burner and there's not much developer interest for it. If you want to play games on Citra, you'll have to convert your game images to that format.