bunnei has released a 3DS Emulator, which he calls Citra, it is an extremely early public build and will not at this time play commercial games, but I’m sure it will if the project is worked on and updated, here is a quote from the source:
I’d like to share a project that I’ve been working on with a few others for the past few months – the first public project to attempt 3DS emulation. “Citra” (https://github.com/bunnei/citra/) is an experimental Nintendo 3DS emulator/debugger written in C++ (and licensed under GPLv2).
At this time, it is in the very initial stages of development, and is only capable of running homebrew. It currently supports:
- ARM9/ARM11 interpreter for the 3DS “appcore” – the processor core dedicated to running user applications
- (Some) OS HLE to support userland interaction with the various 3DS OS services
- Loading of ELF and launcher.dat files
- Framebuffer rendering
- Debugger with ARM11 disassembler, register view, callstack and symbol loading (written in Qt)
- Supported on both Linux and Windows (MS Visual Studio 2013 Express)
I want to emphasize that for the long-term, this project will only (potentially) be useful to developers – there are many non-existent components that are absolutely essential to even loading a commercial game (and furthermore there is no gamepad or hardware 3D support, among many many other things).