Nintendo 3DS emulators
Nintendo 3DS XL | |
Developer | Nintendo |
---|---|
Type | Handheld game console |
Generation | Eighth generation |
Release date | 2011 (3DS) 2014 (new 3DS) |
Discontinued | 2017 (new 3DS) 2020 (3DS) |
Predecessor | DS(i) |
Successor | Switch |
Emulated | ✓ |
- For emulators that run on the 3DS, see Emulators on 3DS.
The Nintendo 3DS is an eighth-generation handheld game console by Nintendo, released on March 27, 2011, for $249. The original model and the 2DS had a dual-core ARM11 MPCore at 268 MHz and a single-core ARM9, 128 MBs of RAM and 6 MBs of VRAM, and a DMP PICA200 GPU. The New 3DS and New 2DS XL models upgrade this to an 804 MHz quad-core ARM11 and 256 MBs of RAM, along with an extra pair of shoulder buttons and a right analog stick.
The most notable feature of this console is the use of autostereoscopic (glasses-free) 3D, which can be configured using a slider. This was omitted on the cost-reduced 2DS and New 2DS XL models, which were released due to eye health concerns with children ages 6 and under whom Nintendo advised not to use the 3DS' stereoscopic mode (though it is speculated that said advisories were more for liability reasons in case of a health-related lawsuit).
- Remember, certain titles are exclusive to the New 3DS, New 3DS XL and New 2DS XL. Make sure your chosen emulator supports these variations if you want to play them.
Contents
Emulators[edit]
Comparisons[edit]
- Citra
- An open-source Nintendo 3DS emulator made by experienced emulator developers. It supports many hardware features and enhancements. An official Android version was released in May 2020. A VR fork exists by the name of "CitraVR". On March 4th 2024, the lawsuit filed by Nintendo against the management of the Yuzu emulator led to the decision to cease official distribution of Yuzu and Citra.
- Citra (PabloMK7 fork)
- A fork of Citra that was initially created to add online play,[2] but continues to receive new updates and other new features following the end of support for upstream Citra. PabloMK7 was a contributor of Citra, and the repository has also seen work from other active Citra contributors such as GPUCode, who was among the most active contributors before the repository was deleted.
- Citra MMJ
- An unofficial Nintendo 3DS emulator for Android written by weihuoya and forked from Citra. Offers less stuttering and greater performance than mainline Citra on Android.
- Folium
- Port of Citra to iOS/iPadOS devices, developed by Jarrod Norwell. Previously known as emuThreeDS and Limón. Now continued as a multi emulator, Folium.
- Mandarine
- Fork of Citra. Originally it was named as "Citra-Enhanced". Development ceased temporarily in March 2024 due to the stoppage of Citra development. Afterwards, the project changed its name to Lemonade[4] and shifted its focus to the Android platform while planning to add new features and enhancements. However, due to critique stemming from Lemonade's developers alleged stealing of code from other forks, violation of Citra's GPL license, and berating of developers of other forks,[5] much of the team has since abandoned the project.[6] The fork was thereafter renamed back to Citra-Enhanced, before then renaming again to Mandarine after an alleged repository hijack attempt.[7]
- BizHawk
- It has a core named "Encore", which is essentially another fork of Citra. "works out of the box."
- Panda3DS
- An HLE approach 3DS emulator founded by Alber and wheremyfoodat (Peach), and currently developed by an array of developers. It can run many games, even including some Nintendo 3DS applets.
- Mikage
- An emulator developed by Tony Wasserka, a.k.a. neobrain, which focuses on optimization and stability on Android and PC, willing to fill the gap left by Citra. It is closed-source, but the developers have stated that they will release the source code bit-by-bit after the app's official release.[1] Mikage is in an early stage of development, but according to its developers it already supports some hardware features and several commercial games.
- Corgi3DS
- A unique 3DS emulator designed for macOS systems. Its GitHub activity started on May 5, 2019. The main programmer is a self-proclaimed dog-lover and has previously created CorgiDS and DobieStation, though the former appears to have been abandoned. Corgi3DS is mainly indigenous, but the preliminary Wi-Fi code was ported from melonDS' code. The main programmer said that they "haven't worked on it in several months, it's basically a hobby project of mine that I touch when I feel the urge". Thus, the project is on an indefinite hiatus.
- 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.
- 3dmoo
- An 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.
Hardware features[edit]
Name | Citra (PabloMK7 fork) | Lime3DS | Mandarine | Folium | BizHawk (Encore) | Citra MMJ | Mikage | Panda3DS | |
---|---|---|---|---|---|---|---|---|---|
3DS system software | HOME Menu | ✓* | ✗ | ✓* | ✓* | ||||
DS Mode | ✗ | TBD | ✗ | ||||||
Virtual Console | ✓ | ? | TBD | ? | |||||
3D Screen | ✓[N 1] | ? | ? | ? | TBD | ? | |||
Amiibo | ✓ | ? | ? | ✓ | TBD | ~* | |||
Skylanders Portal of Power | ~* | ? | ? | ✗ | TBD | ? | |||
Inputs | Circle Pad Pro/C-Stick | ✓ | TBD | ? | |||||
Motion Control (Gyroscope/Accelerometer) | ✓[N 2] | ? | ? | TBD | TBD | ? | |||
Camera | ✓[N 3] | ? | ? | ✗ | TBD | ? | |||
Microphone | ✓[N 4] | ? | ? | ✗ | TBD | ? | |||
Head-tracking | ? | ✗ | TBD | ? | |||||
Touch-screen | ✓[N 5] | ✓ | ? | ||||||
IR sensor | ? | ? | ? | ||||||
Connectivity | SpotPass/StreetPass | ✓* | ? | ? | ~* | TBD | ? | ||
NFC Reader/Writer | ✗* | ? | ? | ✗ | TBD | ? | |||
Nintendo Network | ✓ | ? | ? | ✗ | TBD | ? | |||
Download Play | ✓ | ? | ? | TBD | TBD | ? | |||
DS(i) Connectivity | ✗ | TBD | ? | ||||||
Wii U Connectivity | ✗ | TBD | ? |
- ↑ Supports Stereoscopic 3D mode (Side by Side, Anaglyph, Interlaced, Reverse Interlaced).
- ↑ Citra supports motion control in Mouse (Right click), CemuhookUDP and SDL modes.
- ↑ Supports Front and Rear cameras in single (2D) and double (3D) modes. The camera can be a still image or system camera.
- ↑ Supports microphone as Static noise and Real device.
- ↑ Supports touch-screen in Emulator Window and CemuhookUDP modes. It's possible to use button mapping.
DS Mode[edit]
In addition to its own software, the Nintendo 3DS is backward compatible with all Nintendo DS and Nintendo DSi software. Like the DSi and DSi XL, the Nintendo 3DS is incompatible with DS software that requires use of the Game Boy Advance port. Nintendo DS and DSi software cannot be played with 3D visuals on the 3DS.
- None of the 3DS emulators support this feature. There was a feature request for implementing this feature to Citra emulator.
Enhancements[edit]
Name | Citra (PabloMK7 fork) | Lime3DS | Mandarine | Folium | BizHawk (Encore) | Panda3DS | Mikage | ||||
---|---|---|---|---|---|---|---|---|---|---|---|
Graphics | Resizable Internal Resolution | ✓ | ? | ? | ? | ? | |||||
Ultrawide hack Widescreen already supported on 3DS system. However for DS backwards compatibility titles you need to use patches to play in widescreen mode. There is no support by system for render games in other ratios such as ultrawide 21:9 and 32:9. |
✗ | ✗ | ? | ||||||||
Texture Replacement | ~* | ? | ? | ✗ | ? | ||||||
Ray-tracing (DXR, VRT and MRT) |
Implementing ray-tracing in an emulator is unfortunately quite challenging and unlikely to be feasible in the near future. However you can try "Screen-Space Ray Traced Global Illumination" shader using ReShade.[1][2] | ||||||||||
Pre-rendering AA (MSAA, SSAA) |
? | ? | ? | ||||||||
Super-resolution techniques (DLSS, XeSS and FSR 2+) |
Requires access to the depth buffer and temporal data like motion-vectors so it's quite challenging and unlikely to be feasible in the near future. Besides any GPU that can use DLSS can run these emulators at 4k native with ease anyway. | ||||||||||
Performance | Overclock | ✓* | ? | ? | ✗ | ? | |||||
Internal Framerate Hack | ? | ? | ? | ||||||||
Frame generation technologies (LSFG, DLSS-G, ExtraSS and AFMF) |
Implementing frame generation technology in an emulator is unfortunately quite challenging and unlikely to be feasible in the near future, however post-processing techniques such as motion interpolation is quite possible. Input latency will be a crucial factor, but its impact likely varies depending on the specific technique employed, it's recommended to use after applying the "Internal Framerate Hack". While AFMF or LSFG could be used with Citra?, please be aware that some visual glitches and artifacts may occur at this time. | ||||||||||
Preload ROM image to RAM For users with sluggish multi-platter HDDs or plagued by horrible seek times, this enhancement might offer smoother experience, potentially reduced power consumption; it also shines when images reside on a network drive. Although keep in mind that preloading image would take some time, and it will require additional amount of RAM capacity. |
✗ | ? | ? | ||||||||
Post-Processing | Post-rendering AA (FXAA, TXAA and MLAA/SMAA) |
✗* | ? | ? | |||||||
Post-rendering scaling (Sharp bilinear, Lanczos and FSR 1) |
✓ | ? | ? | ||||||||
Filters | ✗ | ? | ? | ||||||||
AI-powered filter compatible (Freestyle) |
? | ? | ? | ||||||||
Shader Chain | Exclusive to Citra libretro core. | ? | ? | ||||||||
Inverse tone mapping compatible | ? | ? | ? | ||||||||
TAS features | Macros/Scripts/Lua | ? | ✓ | ? | |||||||
Rewind | ✗* | ? | ? | ||||||||
Fast-Forward/Turbo Speed | ✓* | ? | ? | ||||||||
Savestates | ✓ | ? | ? | ||||||||
Movie recording/playback | ✓* | ? | ? | ✗ | ? | ||||||
Controls | Mouse Injector Compatible | ✗ | ✗ | ? | |||||||
Input lag-mitigating technique | ✗ | ✗ | ? | ||||||||
Quality of life | Built-in mod editor and manager | ✗ | ✗ | ? | |||||||
Built-in Cheat Manager | ✓ | ✗ | ? | ✓* | ? | ||||||
Built-in Patch Manager | ? | ? | ? | ||||||||
Streamable compression format | ✗ | ✗ | ? | ||||||||
Per-Game Profiles | ? | ? | ? | ||||||||
Command Line Options | ? | ? | ? | ||||||||
Big Picture Mode | ✗ | ? | ? | ||||||||
Misc | RetroAchievements | ✗ | ✗ | ? | |||||||
Broadcast games from original hardware to emulator | ✓* | ✓* | ? | ? | ? | ✗ | ? | ||||
EmuVR support | Exclusive to libretro cores at the moment. | ||||||||||
AI Service With the help of OCR and other techniques, the AI service can provide a live translation of a game, or text-to-speech capabilities for the visually impaired among other things, either on demand or automatically. |
Exclusive to libretro cores at the moment. | ||||||||||
Debug Features | ? | ? | ? |
Game images[edit]
3DS vs. CIA[edit]
There are two 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 name for the 3DS.
Due to one format being so far restricted to overpriced flashcarts and the very slow Citra development (meaning playing on an actual 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 an actual 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 requires additional encryption keys to play encrypted games. If you want to play encrypted games on Citra without these keys, you'll have to convert your game images to the decrypted format.
Formerly, decrypting those ROMs used to require real 3DS hardware. 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, which allowed for the dumping of 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.
Due to these keys being available, Citra can now play encrypted games (3DS or CIA) without decrypting them. Read this page. Then, go to this Reddit page and copy the code from the second comment (credit floppydoppy2). Copy it and make a new TXT file named aes_keys.txt. Place this TXT file in the sysdata folder of Citra's user directory. This key file is already included in the 3DS Shared Data download in the Emulator Files page.
Emulation issues[edit]
For more information about Nintendo 3DS hardware and reverse engineering;
- MVG: The most important Nintendo 3DS Game Ever Made, Homebrew on a $100 New Nintendo 3DS LL, The Nintendo 3DS eShop Is Going Offline Forever. How to Play All Games After 2023,
- Citra: Blog, Discord
- Panda3DS: Discord
- 3dbrew
- GBATemp - 3DS Homebrew Development
- 3DS Hacks Guide
- FOSDEM '24: Panda3DS - Climbing the tree of 3DS emulation
References[edit]
- ↑ 1.0 1.1 1.2 FAQ: Will Mikage be open-source?
- ↑ https://twitter.com/Pablomf6/status/1719705943028449372
- ↑ https://github.com/Lime3DS#lime3ds-is-a-project-which-aims-to-revive-citra-the-most-popular-open-source-nintendo-3ds-emulator
- ↑ https://old.reddit.com/r/EmulationOnAndroid/comments/1bbos29/citraenhanced_is_going_to_be_continued_and/
- ↑ https://web.archive.org/web/20240411140255/https://twitter.com/Pablomf6/status/1778376166098825515
- ↑ https://github.com/Lemonade-emu/Lemonade/pull/2/files#diff-b335630551682c19a781afebcf4d07bf978fb1f8ac04c6bf87428ed5106870f5R16
- ↑ https://github.com/mandarine3ds/mandarine/commit/ad06b079df3641e1f4086278ef93a65c204d245c#contribution
Consoles: Color TV-Game • Nintendo Entertainment System (Family Computer) • Super Nintendo Entertainment System (Super Family Computer) • Nintendo 64 • GameCube • Wii • Wii U • Nintendo Switch Handhelds: Game & Watch • Game Boy/Color • Virtual Boy • Game Boy Advance • Nintendo DS • Nintendo DSi • Nintendo 3DS Related: Family Computer Disk System • Satellaview • 64DD • Super Game Boy • e-Reader • Amiibo • Triforce (Arcade) • Namco ES3 (Arcade) |