Emulators on 3DS
Because of the homebrewing scene the 3DS has had, you can install a variety of emulators. Currently, the New 3DS is capable of running much faster than the older models, making it a much more ideal platform for emulation, but despite this there are still some emulators that have issues regardless. For more information on how to homebrew your 3DS, visit 3ds.hacks.guide.
- 1 Multi-System
- 2 Consoles
- 3 Handhelds
- 4 Computers
- 5 Others
- FinalBurn Alpha CPS1
- FinalBurn Alpha CPS2
- FinalBurn Alpha CPS3 (most games are too slow to run even on New 3DS, though JoJo runs almost full speed)
- FinalBurn Alpha Neo Geo (A few games are unable to be loaded due to memory constraints)
- Genesis Plus GX
- Mednafen NGP
- Mednafen PCE Fast
- Mednafen VB
- Mednafen WonderSwan
- mGBA (acceptable with Pokemon Ruby/Sapphire, but some games are slow to use, even on New 3DS, at present)
- PCSX-ReARMed (see below)
- Snes9x 2002 (formerly PocketSNES) (less compatible than CATSFC, but can actually run many special chip games at full speed)
- Snes9x 2005 (formerly CATSFC)
- Snes9x 2005 Plus (formerly CATSFC Plus) (has more accurate audio, slower)
- Snes9x 2010 (formerly Snes9x-Next) (too slow to use even on New 3DS at present)
Using current exploits, the New 3DS is capable of running most of these cores at or nearly at full speed on most games. The only cores the older 3DS can reliably run at full speed are 2048, Gambatte, QuickNES, NXEngine, and some older Sega games using PicoDrive. Opposed to normal use of RetroArch, these are all self-contained emulators, albeit sharing the same automatic configuration. Screenshot-taking is broken. Upon exiting RetroArch 3DS, press the Start button.
There are unofficial ports which add new cores with emulators that do not have a retroarch by default
- Snes9x for 3DS - runs a good majority of games well, even on old 3DS/2DS's. It's recommended to use a New 3DS if you want to run games that uses the SuperFX or SA-1 chip properly.
- blargSNES - It works well, but lacks compatibility for games that require enhancement chips (SA1, SuperFX, etc.).
- DaedalusX64 - N64 has always been known to be a hard system to emulate, which is why many were skeptical about how feasible it would be to have an emulator for the system on the 3DS. While still in its beta stage, it has shown a lot of improvements thanks to using a dynamic recompiler, with some games running at a playable state. It also supports using stereoscopic 3D (at the cost of slower performance), which isn't a feature a lot of emulators have.
- PCSX-ReARMed (RetroArch) - Thanks to the work of many developers, it is now possible to have full speed 60 FPS emulation for a majority of games and support for .CHD compression formats. Generally, 2D games will perform better than 3D, however you can get some better performance by tweaking the settings if necessary. The nightly builds have seen major improvements since the initial release and can even play some of the more demanding games at full speed (See here for some tips), so it's better to use that until the next stable release. NOTE: This emulator is mainly targeted for the New 3DS so don't expect the o3DS to run well if at all.
- PicoDrive for 3DS - 32X and Sega CD are playable on the original 3DS, but works better on New 3DS. Sega CD requires BIOS in order to play, they must be named:
"bios_CD_U.bin", "bios_CD_J.bin", and "bios_CD_E.bin" based on the respective regions. BIOS need to be in the
- Vex3DS - Based on vecx
- GameYob: forked from a popular emulator used on the DS. Emulates the Game Boy and Game Boy Color. The original DS version is actually more polished than the 3DS port, so some of the more hardware pushing games won't work as well as the DS port.
- r3Ddragon - It's kind of surprising that Nintendo never released a Virtual Console for the Virtual Boy on the 3DS, especially given how small the library of games were for the system and how both utilize 3D effects
and cause eyestrain. What makes this emulator stand out is the fact that it's able to display the graphics in 3D the way it was intended, something that is almost impossible to do on other platforms, unfortunately compatibility is still low and requires a New 3DS to run. Development has since halted.
Game Boy Advance
The 3DS does include native firmware for a GBA mode which was mainly used to run ambassador releases instead of having to develop an emulator for them. Because it's technically running a "virtual" GBA, it can't provide features that are normally available on other emulators, such as savestates, screen filtering, or sleep mode, however it does have high compatibility with the exception of cartridges with special hardware. If you're using an old 3DS/2DS, this is the best option to play GBA games. There are two ways to take advantage of this firmware:
- New Super Ultimate Injector - There are other programs that can do injections, but this one is nice as it can do other Virtual Console injections and some forwarders for emulators. The only problem is each ROM must be injected and installed individually, including the save files, which makes the number of titles that can be installed restricted to the max the 3DS title limit (300 titles, not including pre-installed system titles).
- open_agb_firm (Name not finalized) - A custom FIRM payload that takes advantage of the built-in GBA firmware, it's still in early development but has an alpha build available. The major advantages of this compared to VC injection is that it performs faster and there aren't any issues with the sound, it utilizes the native hardware (even with VC injection there are issues with the sound, ex.: "Fire Emblem"). It can load the ROM through the SD card instead of having to convert and install them, but needs to be launched on boot instead of being able to use the 3DS HOME Menu (there's ways to make a forwarder for in on the HOME menu, but requires additional setup to get it to work). One major issue is there's a chance that it may not detect the correct save format or will corrupt the existing save file so make sure to backup your saves beforehand (they are currently trying fix it by having a better database for save detection, if you're interested you can help).
- To install, simply put the .firm file in the
/luma/payloads/folder and hold START to load up the chainloader to launch it. There's no way of exiting out once the program starts, so you will need to turn it off and redo the step to load it if you wanted to change games.
- To install, simply put the .firm file in the
On the other hand, there are also some homebrew GBA emulators available for 3DS:
- mGBA (Latest Nightly) - A port of the popular GBA emulator by the same developer, only a handful of GBA games suffer from slowdowns but are still playable. Also works great for GB(C) games and even supports the Gameboy Camera.
- GBARunner2 - a GBA hypervisor made for the DS(i), can only be ran through TWiLight Menu++ and is included by default with the program (see below). Compatiblity can be a hit-or-miss, but it's still in active development with plans to include interesting features such as gyro control emulation and local wireless multiplayer in the future.
- CitrAGB - (based on gpSP)
- TWiLight Menu++ - Not technically an "emulator", rather it's a frontend for a separate program, nds-bootstrap, which allows for an NDS ROM to be loaded from an SD card. The program is originally designed for the DSi, however it's able to work on the 3DS by utilizing the virtual DSi (aka the TWL_FIRM or "DS Mode") that the 3DS has for backwards-compatibility. Compatibility isn't the same as using a flashcart, however it's still pretty high with only a few games having issues or triggering anti-piracy protections (newer versions now come with AP patches for most games and will patch them if needed at launch). It also comes pre-bundled with a variety of emulators used on the DS and a work-in-progress GBA hypervisor, GBARunner2, that works to some degree.
- DeSmuME - an experimental port of DeSmuME that has since been abandoned, it wasn't very compatible.
Because the firmware that the 3DS uses for backwards-compatibility is actually the same as the DSi, it's possible to inject DSiWare as an installable
.cia file. There's two ways to do this:
- GodMode9 - Version 1.8.0 and above has a script that can convert
.cia, 3ds.hacks.guide has more information on how to update to the latest version if needed.
- DSiWare Conversion Script - This script can be used to convert
.binfiles from your DSi's SD card to
.ndswhich can then be used to convert into
These scripts will ONLY work for DSiWare, NOT NDS GAMES.
- Handy 3DS - port of the Handy emulator to 3DS
Neo Geo Pocket
- 3DOS - Based on 8086tiny. Can only emulate 8086 CPUs.
- Wumiibo - Emulates Amiibo functionality on the 3DS without needing an NFC reader or using tags. You can even use your own Amiibo data, after it's been decrypted, or a generic AmiiboID which are freely available and explains how to get them on the project page.
Super Mario 64
- SM64 3DS Port - Thanks to the decompilation project, you can now enjoy SM64 on the 3DS with *analog* support and native rendering (compared to the official DS port). Works pretty much at full speed on the New 3DS, the original model apparently has some slow downs but still playable. You can either build it yourself, or try finding pre-compiled build online (there are multiple versions, you can find some here but it's no longer up-to-date).
Virtual Console Injection
Some have tried injecting alternate ROMs in the available Virtual Console releases (MD, GG, NES, GBA Ambassador, GBC, Japanese emulated SFC compilations) with varying degrees of success. The emulators used for Virtual Console are not as accurate as other emulators so compatibility isn't perfect (the only exception is GBA since it runs it natively, not emulation), Sega systems in particular have high compatibility however.
There's an easy tool that will convert and inject any supported ROM file as its associated VC application called New Super Ultimate Injector. It's an all in one tool and can even remotely install the injection provided your 3DS is connected to the same network. It's currently in beta, but it's still really useful.