Nintendo 3DS emulators

From Emulation General Wiki
Revision as of 07:13, 7 April 2018 by 107.10.201.86 (talk) (Comparisons)
Jump to navigation Jump to search
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
3dmoo Windows, Linux Git
TronDS Windows, Linux 1.0.0.5

lkl

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. Read the Encryption section below for a guide.

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 cannot play encrypted games, only decrypted games will work. 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.

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 can be downloaded from the Emulator Files page. You can then use a program like fuse-3ds to decrypt games using this file. Simply place boot9.bin in the same folder, run the program, mount the encrypted .cia or .3ds, and find the decrypted.cxi file inside (usually in the first folder). Citra should be able to load this file without issues.