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.
There are preliminary 3DS ports of the following cores:
- CATSFC Plus (has more accurate audio, slower)
- 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
- gpSP (dynarec only works by installing the CIA)
- 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 (dynarec only works by installing the CIA, many games are too slow even on New 3DS)
- PicoDrive (32X emulation does not work in the .3dsx format, at least.)
- PocketSNES (less compatible than CATSFC, but can actually run many special chip games at full speed)
- 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.
- 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 with certain chips (i.e. the SuperFX chip).
- GameYob: GB/GBC emulation.
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. So far, the only way to access this firmware is by injecting a GBA ROM as a VC application. This can be achieved through various programs such as this one. Compatibility is high with the exception of cartridges with special hardware. The only downside is it can't provide features that are normally available on other emulators such as savestates or screen filtering and must inject and install each ROM individually, meaning that you're limited to at most 300 VC injections at a time as the 3DS can only hold 300 apps at once. On the other hand, there are also some homebrew GBA emulators available for 3DS:
Neo Geo Pocket
There was a WIP port of DeSmuME being develop, but it wasn't very compatible and has since been abandoned due to it not being necessary as the 3DS already provides firmware to play DS/DSi natively.
Instead of trying to emulate, you can instead use the firmware directly by using TWiLightMenu which allows you to play games off of your SD card, flashcarts, or the cartridge itself. It function off the same idea as Nintendon't did for the Wii; rather than emulate the hardware, it hypothetically "bridges" to the already existing backwards-compatibility the system offers. Compatibility is high with only a few games having small loading lags, (i.e. GTA: Chinatown wars), or triggering anti-piracy protections.
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. VC emulators for Sega systems, in particular, have high compatibility.
There's an easy tool that will convert and inject any supported ROM file as it's 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.