What is Mikage?
Mikage is a Nintendo 3DS emulator optimized for Android phones and tablets. Despite its early state of development Mikage can play some commercial games already, albeit at low framerates.
The project is led by neobrain, known in the emulation community for his work on emulators like Dolphin, PPSSPP, or Citra. Due to a distinct lack of a good solution for 3DS emulation on Android, he decided it's time to fill that gap.
You can watch and support our Progress on Patreon, where we provide regular news and preview builds. Emulator development requires hundreds of hours of work - your support enables us to dedicate our time towards this project!
What games are supported?
Mikage's emulator core is currently in early development stage, but it's already able to play a small number of commercial titles in addition to many homebrew applications, albeit at slow performance. Check the screenshots archive for some examples.
We announced Mikage in this early state to give the community a chance to follow its development and progress. Over the next couple of months, we'll rapidly improve compatibility and performance, and regularly share improvements. A year from now, we hope any game you throw at Mikage will work more likely than not.
Why is Mikage so slow?
We strongly believe emulation at full speed is an elementary part of preserving the 3DS faithfully. Current performance reflects Mikage's early state and will dramatically improve in future builds.
This is a very common phenomenon among early-state emulators, and it's actually a luxury problem: Mikage has been able to run commercial games since the day it was announced and if it weren't for this impressive initial level of emulation accuracy, no one would even ask about performance.
Now that we've established a base level of compatibility, we focus heavily on optimization. Our research in writing an ARM64 JIT compiler has already shown a lot of promise too for instance, and our Vulkan renderer has already set the ground for fast GPU emulation. It's just a matter of few more months until Mikage will run at reasonable frame rates.
Where can I get Mikage?
Alpha builds are distributed to Patreon supporters until the project reaches a mature level of compatibility and performance. Eventually, Mikage will be available for purchase on Google Play.
What makes Mikage special?
Mikage is built upon a clear vision: To create an emulator optimized for Android that captures the entire 3DS experience with an "it just works" approach.
There already exist a number of other 3DS emulators. Here's what distinguishes Mikage from them:
- Optimize for Android: We use the Vulkan graphics API for rendering since it's better suited for the pecularities of mobile graphics hardware than the legacy system OpenGL, and furthermore an ARM64 JIT is in the works for fullspeed CPU emulation
- Capture the entire 3DS experience: We go beyond game emulation - just think about all the other things that happen when you turn on your 3DS! Mikage aims to support applets like the Mii Maker as well as the Home Menu itself, and it will provide replacements for them where it aids integration with the Android platform
- Do it well, and do it right: Instead of throwing together a large number of novel but unfinished features, we take our time to deliver well-thought-out and polished functionality that "feels right" as a whole. Details will be announced once we ship these features to our users. Stay tuned!
The bottom line is: Better performance, fewer emulation bugs, and a system closer to a proper 3DS. Turn on and enjoy!
Why not improve existing emulators instead?
Mikage's author is one of the original creators of Citra. You can trust there are good reasons for him to start over from scratch!
In fact, due to the focus on Android, a lot of components had to be written from scratch anyway, since no other 3DS emulator had built a Vulkan renderer or a ARM64 JIT. We also found a lot of unused potential though: Early Citra development took a lot of shortcuts that we felt are unnecessary and leave a lot of unused potential. For instance, supporting system module emulation required several months of dedicated work in Citra, whereas Mikage supports this since its earliest days!
Citra's open development approach is a double-edged sword: On the one hand it embraces new ideas and features; but due to the lack of general direction, many of these features lack the usability and quality you'd expect from a polished emulator. It doesn't help that external factors like unofficial third party builds have disrupted the development process and draw away developer attention from the things that matter.
The bottom line is that existing emulators just weren't the right fit. Mikage has a clear vision towards performant and polished 3DS preservation, and a fresh start is the most effective option to get there.
Will Mikage be open-source?
Yes! Currently Mikage's source code is kept private, but we will release the source code bit-by-bit after the official app release. We strongly believe in the benefits of open-source software and want the knowledge that went into Mikage to be available to everyone.
This delayed source release is the middle ground we feel is best to achieve Mikage's goals. Our past work on open-source emulators like Dolphin has shown that development in the open just doesn't yield the desired benefits in the early stages but often comes with some rather unnecessary distractions. For similar reasons we may opt not to release 100% of the source code required to build binaries - but “only” the 99% which document the 3DS platform and our approach to emulation.
We already started doing this: Selected components of Mikage are already public, such as the shader assembler nihstro or the serialization library blobify. We also regularly share our contributions to external projects that Mikage is built on, many of which are beneficial to other emulators too. Examples of projects we contributed to are the graphics library Vulkan-Hpp, the Android NDK, the package manager Conan, and the library SDL2.
What devices support Mikage?
You will need an ARM64 device with Vulkan support, running Android 7.0 or later. Support for OpenGL and ARM32 may be added in the future if there is sufficient demand for them.
Is this a fake?
No. I'm well-known developer in the open-source emulation community, having contributed to emulators such as Dolphin and PPSSPP. Given this track record you bet I wouldn't throw my reputation out of the window by announcing fake projects.
You can verify this project wasn't created by an imposter of mine by checking my Twitter account or reaching out to me on IRC, where the "real" neobrain will be able to confirm I'm him. There are also a number of emulator developers in the community who have seen the project in action and hence will confirm it's real.
That said, it's good to be wary of new emulator projects that claim excellent compatibility and performance from day 1. There are a lot of fake projects like that out there - take care!