THE FIRST 3DS EMULATOR: CITRA

OK guys, so today I’ll be covering Citra Emulator, the first-almost-perfectly-working emulator for the Nintendo 3DS.
Citra’s official website describes itself as:
Citra is an experimental open-source Nintendo 3DS emulator/debugger written in C++.
Although it is slow at this time, it is constantly being improved.
Citra’s features include better visual output, debugging homebrew, with planned controller support.
The Citra Repositories are hosted on GitHub. Citra is licensed under GPLv2 (or any later version).
I checked out Citra’s history and found out that development started around 2015.
It is developed in C++ programming language. Citra can run almost all home brew games and some commercial games. Citra requires OpenGPL version 3.3 or later to run. The first commercial Nintendo 3DS game to be run by Citra was ‘The Legend of Zelda: Ocarina of Time 3D’. Citra started emulating sound since May 16′ and has a JIT (Just In Time) compiler since September 16′.
Now this sounded promising and exciting, so I decided to check it out myself.
Upon further digging, I found at that you needed a special kind of ROM, a decrypted 3DS ROM to emulate the game on Citra. If you have a 3DS and a 3DS cartridge, the instructions to create a decrypted ROM is given in their website here
So I grabbed a nightly build of September 17′ from Citra and 2 very popular 3DS games – Pokémon Alpha Sapphire and Pokémon Sun.
If you have a dedicated graphics processor, I’d recommend you to run the emulator with that.
This is what Citra looks like when it opens:

I loaded the Alpha Sapphire ROM into it and voila! It booted (with a bit of errors, but still works)


As you can see at the bottom of the screen, I had a couple of errors such as ‘System Archive Missing’. Citra also shows you the rendering stats of the emulation on the bottom left. The game works but there is some lag, I am able to play it at 50-70% game. It also depends on the content being emulated. For eg, when there is very little to render, the game runs at full speed.
As you can see at the bottom of the screen, I had a couple of errors such as ‘System Archive Missing’. Citra also shows you the rendering stats of the emulation on the bottom left. The game works but there is some lag, I am able to play it at 50-70% game. It also depends on the content being emulated. For eg, when there is very little to render, the game runs at full speed.


Overall, the game was very much playable and I could say it ran at an average 65% speed. This quite a feat since this the first ever 3DS emulator which had gone so far. There were some graphical glitches here and there but just slightly that one couldn’t easily notice it. Previously, many attempts had been made, but they couldn’t find daylight. Even though the lagging bought in some irritation, I was able to relish some childhood memories xD
Secondly, I tried out Pokemon Sun, the latest 3DS release.


To my surprise, this game was rendered almost perfectly, there were no graphical glitches at all! However this game was even more slower than Alpha Sapphire, and I could run it only at an average of 45% speed.

Here is a sneak peak into Citra’s configuration window

Our Take
Overall, I think Citra is a massive leap in the development of 3DS emulation. The Citra Team is doing a really great job here. The lag can easily be fixed in the future with the help of optimizations. The developers themselves have acknowledged the issue and they had stated that right now they are more concerned with stability rather than speed. Once they iron out the stability issues, crashes and glitches, they will begin working on optimizations which will make Citra a perfect 3DS emulator.
If you are interested in Citra, you can head over to their official website here or their official GitHub Repo. The best part is it is Open Source, so if you know stuff, then you can contribute too!
So here’s us at Software Pen wishing all the best to the great guys at Citra Team. You guys are doing a great job!