Difference between revisions of "Nintendo 3DS emulators"

From Emulation General Wiki
Jump to navigation Jump to search
 
(91 intermediate revisions by 56 users not shown)
Line 1: Line 1:
[[File:Article_img.jpg|thumb|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 [https://en.wikipedia.org/wiki/Autostereoscopy autostereoscopic] (i.e. without glasses) 3D, which can be configured using a slider.
+
{{Infobox console
 +
|title = Nintendo 3DS
 +
|logo = 3ds.png
 +
|developer = [[:Nintendo]]
 +
|type = [[:Category:Consoles|Handheld game console]]
 +
|generation = [[:Category:Eighth-generation video game consoles|Eighth generation]]
 +
|release = 2011
 +
|predecessor = [[Nintendo DS emulators|Nintendo DS]]
 +
|emulated = {{~}}
 +
}}
 +
The Nintendo 3DS is an eighth-generation handheld game console by Nintendo, released on March 27, 2011 for {{inflation|USD|249|2011}}. It had a Dual-Core ARM11 MPCore at 268 MHz and a single-core ARM9. It had 128MB of RAM and 6MB of VRAM. It has a DMP PICA200 GPU. The most notable feature of this console is the use of [https://en.wikipedia.org/wiki/Autostereoscopy autostereoscopic] (i.e. without glasses) 3D, which can be configured using a slider.
  
 
__TOC__
 
__TOC__
  
 
==Emulators==
 
==Emulators==
{| class="wikitable"
+
{| class="wikitable" style="text-align:center;"
 
! scope="col"|Name
 
! scope="col"|Name
! scope="col"|Operating System(s)
+
! scope="col"|Platform(s)
 
! scope="col"|Latest Version
 
! scope="col"|Latest Version
 +
! scope="col"|Open-Source
 
! scope="col"|Active
 
! scope="col"|Active
! scope="col"|[[Recommended emulators|Recommended]]
+
! scope="col"|[[libretro|Libretro Core]]
 +
! scope="col"|[[Recommended Emulators|Recommended]]
 
|-
 
|-
|style="text-align: center;"|[[Citra]]
+
!colspan="7"|PC / x86
|style="text-align: center;"|Windows, Linux
 
|style="text-align: center;"|(nightly builds)
 
|style="text-align: center;"|✓
 
|style="text-align: center;"|
 
 
|-
 
|-
|style="text-align: center;"|[[3dmoo]]
+
|[[Citra]]
|style="text-align: center;"|Windows, Linux
+
|align=left|{{Icon|Windows|Linux|macOS}}
|style="text-align: center;"|(nightly builds)
+
|[https://citra-emu.org/download/ Nightly]
|style="text-align: center;"|✗
+
|{{✓}}
|style="text-align: center;"|✗
+
|{{✓}}
 +
|{{✓}}
 +
|{{✓}}
 +
|-
 +
|Corgi3DS
 +
|align=left|{{Icon|Windows|Linux|macOS}}
 +
|[https://github.com/PSI-Rockin/Corgi3DS/ Git]
 +
|{{✓}}
 +
|{{✓}}
 +
|{{✗}}
 +
|{{✗}}
 +
|-
 +
|[[3dmoo]]
 +
|align=left|{{Icon|Windows|Linux}}
 +
|[https://github.com/plutooo/3dmoo/ Git]
 +
|{{✓}}
 +
|{{✗}}
 +
|{{✗}}
 +
|{{✗}}
 +
|-
 +
|[[TronDS]]
 +
|align=left|{{Icon|Windows|Linux}}
 +
|[http://trondsemu.byethost15.com/downloads.html 1.0.0.5]
 +
|{{✗}}
 +
|{{✗}}
 +
|{{✗}}
 +
|{{✗}}
 +
|-
 +
|LemonLime
 +
|align=left|{{Icon|Windows|Linux|macOS}}
 +
|[https://github.com/Cyuubi/LemonLime/ Git]
 +
|{{✓}}
 +
|{{✗}}
 +
|{{✗}}
 +
|{{✗}}
 +
|-
 +
!colspan="9"|Mobile / ARM
 +
|-
 +
|Citra-MMJ <small>(Unofficial)</small>
 +
|align=left|{{Icon|Android}}
 +
|[https://github.com/weihuoya/citra/releases Git] <small>(WIP)</small>
 +
|{{✓}}
 +
|{{✓}}
 +
|{{✗}}
 +
|{{~}}
 +
|-
 +
|[[Citra]] <small>(Unofficial)</small>
 +
|align=left|{{Icon|Android}}
 +
|[https://github.com/SachinVin/citra_android/releases v0.5.1-alpha] <small>(WIP)</small>
 +
|{{✓}}
 +
|{{✗}}
 +
|{{✗}}
 +
|{{}}
 +
|-
 +
|[[Mikage]]
 +
|align=left|{{Icon|Android}}
 +
|v0.3
 +
|{{✗}}
 +
|{{✓}}
 +
|{{✗}}
 +
|{{}}
 
|-
 
|-
|style="text-align: center;"|[[TronDS]]
 
|style="text-align: center;"|Windows, Linux
 
|style="text-align: center;"|1.0.4
 
|style="text-align: center;"|?
 
|style="text-align: center;"|✗
 
 
|}
 
|}
  
 
===Comparisons===
 
===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 issues with most games, no sound, and slow speeds. 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.
+
;[[Citra]]:An open-source Nintendo 3DS emulator made by experienced emulator developers. The devs insist that it's still experimental, but as of mid-2019 around half of all games are fully playable with minor or no issues.
 +
;[[3dmoo]]:Another open-source Nintendo 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]]:A closed-source Nintendo 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.
 +
;Corgi3DS:An unique 3DS emulator designed for macOS systems. Its GitHub activity started on [https://github.com/PSI-Rockin/Corgi3DS/commit/1b81c7e00c9a7a73f2da12d07ec3a9e4bc69c6ac May 5, 2019]. Main programmer is a self-proclaimed dog lover and has previously created CorgiDS and DobieStation, though the former seemed to be abandoned. Corgi3DS is mainly indigenous but the preliminary [https://github.com/PSI-Rockin/Corgi3DS/commit/a60b06683495e4e8fd0c170ec4ca8c453ce31609 Wi-Fi code] was ported from [[melonDS]]' code.
 +
;[[Mikage]]:A commercial, Android-exclusive 3DS emulator optimized for smartphones and other mobile devices. Made by a former author of Citra and other emulators. Currently in development funded via Patreon.
 +
 
 +
==Emulation issues==
 +
Citra currently can't emulate any of the 3DS's online features aside from LAN multiplayer. It also doesn't have working New 3DS or stereoscopic 3D support, although both features are being worked on.
 +
 
 +
==Game Images==
 +
===3DS vs. CIA===
 +
<!--this section is pretty inaccurate-->
 +
There are two big types of 3DS game images currently:
 +
;NCSD-type: Includes '''.CCI''' (CTR 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''' (CTR Importable Archive) and '''.CXI''' - installers that unpack game data to the SD card or the 3DS NAND memory. Some homebrew apps (FBI, DevMenu) can install CIA files on 3DS systems with CFW installed. Digital games are often distributed as CIAs.
 +
 
 +
*Note that CTR (Citrus) is the internal code names 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.
  
* [[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.
+
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#Nintendo 3DS|Emulator Files]] page. You can then use a program like '''[https://gbatemp.net/threads/tutorial-extract-decrypt-games-nand-backups-and-sd-contents-with-fuse-3ds.499994/ 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.
* [[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===
+
{{Nintendo}}
'''The Nintendo 3DS currently has no emulators that play 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 been implemented. This, along with other various issues, exist that make 3DS emulation not ready for prime time just yet.
 
  
 
[[Category:Consoles]]
 
[[Category:Consoles]]
[[Category:Very Early Emulation]]
 
 
[[Category:Nintendo consoles]]
 
[[Category:Nintendo consoles]]
[[Category:Nintendo 3DS emulators|*]]
+
[[Category:Eighth-generation video game consoles]]
 +
[[Category:Very early emulation]]
 +
[[Category:Nintendo 3DS emulators]]

Latest revision as of 03:00, 8 January 2020

Nintendo 3DS
3ds.png
Developer Nintendo
Type Handheld game console
Generation Eighth generation
Release date 2011
Predecessor Nintendo DS
Emulated ~

The Nintendo 3DS is an eighth-generation handheld game console by Nintendo, released on March 27, 2011 for $249. It had a Dual-Core ARM11 MPCore at 268 MHz and a single-core ARM9. It had 128MB of RAM and 6MB of VRAM. It has a DMP PICA200 GPU. 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[edit]

Name Platform(s) Latest Version Open-Source Active Libretro Core Recommended
PC / x86
Citra Windows Linux macOS Nightly
Corgi3DS Windows Linux macOS Git
3dmoo Windows Linux Git
TronDS Windows Linux 1.0.0.5
LemonLime Windows Linux macOS Git
Mobile / ARM
Citra-MMJ (Unofficial) Android Git (WIP) ~
Citra (Unofficial) Android v0.5.1-alpha (WIP)
Mikage Android v0.3

Comparisons[edit]

Citra
An open-source Nintendo 3DS emulator made by experienced emulator developers. The devs insist that it's still experimental, but as of mid-2019 around half of all games are fully playable with minor or no issues.
3dmoo
Another open-source Nintendo 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
A closed-source Nintendo 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.
Corgi3DS
An unique 3DS emulator designed for macOS systems. Its GitHub activity started on May 5, 2019. Main programmer is a self-proclaimed dog lover and has previously created CorgiDS and DobieStation, though the former seemed to be abandoned. Corgi3DS is mainly indigenous but the preliminary Wi-Fi code was ported from melonDS' code.
Mikage
A commercial, Android-exclusive 3DS emulator optimized for smartphones and other mobile devices. Made by a former author of Citra and other emulators. Currently in development funded via Patreon.

Emulation issues[edit]

Citra currently can't emulate any of the 3DS's online features aside from LAN multiplayer. It also doesn't have working New 3DS or stereoscopic 3D support, although both features are being worked on.

Game Images[edit]

3DS vs. CIA[edit]

There are two big types of 3DS game images currently:

NCSD-type
Includes .CCI (CTR 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 (CTR Importable Archive) and .CXI - installers that unpack game data to the SD card or the 3DS NAND memory. Some homebrew apps (FBI, DevMenu) can install CIA files on 3DS systems with CFW installed. Digital games are often distributed as CIAs.
  • Note that CTR (Citrus) is the internal code names 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[edit]

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.

N64 logo.png
Consoles: Color TV-GameNintendo Entertainment System (Family Computer) • Super Nintendo Entertainment System (Super Family Computer) • Nintendo 64GameCubeWiiWii UNintendo Switch
Handhelds: Game & WatchGame Boy/ColorVirtual BoyGame Boy AdvanceNintendo DSNintendo 3DS
Related: Family Computer Disk SystemSatellaview64DDSuper Game Boye-ReaderDSiAmiiboTriforce (Arcade) • Namco ES3 (Arcade)