The below wiki article is based on user submitted content.
Please verify all hyperlinks and terminal commands below!
Citra – 3DS Emulator and Debugger
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, and controller support.
The Citra repositories are hosted on GitHub. Citra is licensed under GPLv2 (or any later version). Refer to the license.txt file included.
You may download a precompiled binary from our website, or you can build it yourself from the source code.
- Windows, macOS, and Linux Binary Downloads
- Build Instructions for Windows
- Build Instructions for macOS
- Build Instructions for Linux
- To Ubuntu users: only 18.04 and up provides sufficient dependencies to build Citra. Please upgrade your system if you are on a lower version (or grab dependencies somewhere else if you know how to)
If you are having trouble building Citra from the source code, see this wiki page:
Now, you’ll need to dump the games you want to play with your 3DS.
If you have any save files or extra data on your 3DS that you want to import into Citra, you’ll have to dump them as well.
If you have updates or DLCs on your 3DS that you want to use with Citra, you’ll have to dump them as well.
In order to make some games work, you’ll have to dump some system files from your 3DS.
- Dumping System Archives and the Shared Fonts from a 3DS Console
- Dumping Config Savegame from a 3DS Console
You can find a reference for Citra’s default keyboard bindings here:
If you have any questions about Citra, first check these pages:
- User Directory - Explanation of Citra’s file structure
- Citra Web Service - What are and how to use web services tokens
- Compatibility List - List(s) of titles known to be compatible or incompatible with Citra
- Frequently Asked Questions - Help with common questions about using Citra
- Common Issues - Help with issues encountered while building Citra from source
If you don’t see your question answered there, feel free to ask at these places:
- Citra’s Forums
- Citra’s Discord at #citra-support
- The #citra IRC Channel on freenode (chat.freenode.net:6667 / SSL: 6697)
- The #citra-dev IRC Channel on freenode (chat.freenode.net:6667 / SSL: 6697)
If you are interested in contributing to Citra’s code, the first thing you should read is this guide, which will show you what style to code in:
You can find info about the 3DS on these pages:
When you are ready, this page will show you how to use Git to setup your own repository:
Using log filters, you can configure Citra to make development easier.
You can find various Homebrew that test the accuracy of Citra here:
Now that everything is setup, you can take a look at these places to see what needs to be done: