- A simple guide to fix: System Archive error Shared fonts missing error Mii data missing error Region Manifest missing errorin CITRA emulator.
- This pertains all files within the downloadable font zip-file. Conversion Citra may be converted to other formats such as WOFF, SVG or EOT webfonts, as long as the font is not modified in any other way, such as changing names or altering individual glyphs.
- EDIT Additional information regarding the files and how to dump them: Citra Dumping System Archives and the Shared Fonts from a 3DS Console Citra. Note: although separate in the title, the shared fonts are part of the system archives now. The title was made when they were separate, and is kept unchanged to avoid breaking wiki links.
The below wiki article is based on user submitted content.
Please verify all hyperlinks and terminal commands below!
Note: although separate in the title, the shared fonts are part of the system archives now. The title was made when they were separate, and is kept unchanged to avoid breaking wiki links. By following the guide below you do get the shared fonts as well. How to dump System Archives At this time, Citra can run many games without needing to do any special work on a physical 3DS. Enjoy!you own a 3DS, please do this method instead of doing some illegal shit by downloading.
See a mistake? Want to contribute? Edit this article on GithubAbout Citra
What is Citra?
Citra is a work-in-progress Nintendo 3DS emulator started in early 2013. Citra can currently emulate, with varying degrees of success, a wide variety of different homebrew applications and commercial software.
What is Citra’s License?
Citra is an open-source project, licensed under the GPLv2 (or any later version). Refer to the license document for more information.
Who made Citra?
Citra has an active team of open-source developers. Over 150 people have worked hard on the project since its founding in 2014! The list of contributors can be found on GitHub.
Note: Citra is not affiliated with Nintendo in any way.
Where does the name come from?
The name is derived from CTR, which is part of the model number of the original 3DS.
Running games in Citra
When launching a game, I get a “Could not Determine System Mode” or “Failed to Decrypt” error. I want to run backups of retail titles that I own, how can I do that?
Citra does not natively run dumps of games that have not been decrypted properly (unless you have dumped your own system keys). This requires a physical 3DS and the game you own.Refer to:
Can Citra run Pokémon games?
All Pokémon games now work properly. Pokémon X/Y now runs properly with HLE audio as well as LLE audio. Linux users building from source need to take a look at Building for Linux for building with the AAC audio decoder.Some Pokémon games might require System Archives dump in order to be able to prevent some issues.
Can Citra run [Insert retail game name here]?
Citra can, ostensibly, “play” many different games now and more will become playable as development progress further. Some games/apps, however, will not load at all – only showing a black screen. Others, might only show the title screen and then freeze or crash.
See our Game Compatibility List for more info. You can also helps us improve the Game Compatibility List by doing testing and reviewing the game.
Note that many games also require certain files to be dumped from a 3DS console. See below for information about files that can be dumped from a 3DS console and used by Citra:
You can expect many games to run slowly, though and to exhibit some gameplay and graphical glitches.
If you’re interested in 3DS emulation as an experiment, you may gain something out of trying Citra, but if you’re simply looking to play games then stick to your 3DS handheld.
Does Citra support WiFi, network connectivity or online play?
Yes, Citra supports networked local WiFi, but does not support connecting to Nintendo’s servers.
Are you planning to make an Android version?
Yes. It has been official released and can be downloaded via https://play.google.com/store/apps/details?id=org.citra.citra_emu
Does Citra have controller support?
Yes, you can configure your controller directly through the GUI.
Can I expect Citra to play [GAME] at full-speed?
Citra can run most games at variable speed, depending on your hardware configuration.However, not all games are created equally and therefore some games will run at full speed while others might suffer from slow emulation. You may also experience some slowdowns.
Note: The speed of [GAME] will depend on the single-core performance of your processor. Refer to your CPU benchmark in this graph. If it’s below score of 1,800 the [GAME] might not be playable at decent speeds.
Free Fonts
Also, it has been reported that using the integrated Intel GPU on laptops has shown major performance increased in emulation speed. Only some games will benefit from it. This also applies for other emulators as well. Feel free to test both integrated and dedicated GPU to see which one gives you the best performance.
[GAME] runs way too fast, how can I slow down the emulation?
Recent versions have a framerate limiter built-in. It can be toggled in the configuration, reachable through the Menu (citra-qt): “Emulation” > “Configure…” > “General” > “Limit Framerate”.
I saw a YouTube video about [GAME], why doesn’t it work on the nightly build?
Alternative custom branches may have not been merged into master. We only support nightly builds based on the master branch.Unofficial builds are not supported. There may be other branches that are planned to be merged, but must go through vetting first to ensure they are good contributions to the project long term.
Where can I download games to use with Citra?
Short answer: You don’t. Buy games and dump them with a Nintendo 3DS.
Long answer: Downloading commercial games is illegal and thus strongly frowned upon by the Citra developers. To prevent legal issues, this includes gray areas like downloading games which you purchased earlier. You don’t necessarily need to own a 3DS yourself, as you can buy game cartridges and dump them with a friend’s console. On the other hand, copying a friend’s game dump is considered illegal. Please note that any mention or discussion of piracy on our forums or Discord channels will result in being banned from our community.
For guidance on how to dump games for use with Citra, please refer to:
System requirements and common issues
Which platforms does Citra support?
We’re pleased to say that Citra works on all three major desktop OSes!
Citra is actively tested and supported on various 64-bit version of Windows (7 and up), Linux and macOS 10.13 High Sierra or higher. Other platforms may work, but aren’t tested by developers. In far future, mobile platforms may be targeted as well.We have no plans to support 32-bit operating system officially.
What kind of specification do I need to run Citra?
The only hard requirements for the official version of Citra is a graphics chip that supports at least OpenGL 3.3 and a 64-bit OS running on a standard PC, but you definitely want a processor with the highest possible performance per core.
When I try to start any game, Citra immediately crashes!
It is very likely that this issue is caused by your GPU or drivers not supporting OpenGL 3.3. Try updating to the latest drivers if possible, and verify that either your driver’s control panel or a tool like GPU Caps Viewer reports that you can use at least OpenGL 3.3. If updating drivers doesn’t help, you’ll need to upgrade your GPU or wait until we remove this limitation from the software renderer. (The hardware renderer will never support lower OpenGL versions.)
Also read the previous question / answer for a software implementation of OpenGL
Citra complains about missing DLLs.
First, if you’ve downloaded any DLL files from the Internet and placed them in the Citra or a system folder, remove them first, they will not solve your problem and may cause system instability. Then download and install the x64 variant (vc_redist.x64.exe) of Visual C++ Redistributable for Visual Studio 2017 from Microsoft. If that doesn’t help, ensure you have also extracted the DLL files that come included with the Citra builds and that they are in the same directory as the executable.
A message box pops up saying the application was was unable to start correctly 0xc000007b
.
See above about missing DLLs.
Citra complains about “Entry Point Not Found”
If you have Windows 10 N or KN (released in Europe and Korea respectively) it released missing the media foundation tools. To resolve this, you will need to install the Windows Media Feature Pack for your specific version of Windows N (you will be required to select your specific version. Hit the Windows key and R to open the ‘run’ box, and type winver into it to reach a box showing you your precise version of windows.) and install it before running Citra.
Citra’s log file doesn’t have enough information.
You may have a log filter configured. To reset it, go to Emulation in the menu bar, and then Configure. Then, in the Debug tab, in the Logging group, reset the Global Log Filter to *:Info
.
My game is crashing, but my Citra log file is empty.
You may be clearing your log file on accident. This sequence of steps will result in your log file being overwritten:
- Open Citra.
- Play your game until it crashes, closing Citra.
- Open Citra again.
- Open the log directory from Citra’s configuration window.
Since Citra was launched again in step 3, a new log was created. The correct sequence to follow is:
- Open Citra.
- Open the log directory from Citra’s configuration window.
- Play your game until it crashes, closing Citra.
Now, without opening Citra again, you should have the correct log file.
Font File Extension
I’ve dumped my game but when I load it, Citra crashes/prints a bunch of gibberish to the console!
Games need to be decrypted on a 3DS before being usable in Citra. This is a technical limitation and it is unlikely that it can be removed in the foreseeable future. To decrypt your games, you will need to have a 3DS system with boot9strap installed and follow one of the following guides:
What should I do if I get an error saying something like GetConfigInfoBlock: Config block 0xXXXXX with flags X and size X was not found
?
Sometimes a game will freeze and you’ll get an error which looks like this in the log, usually followed by a “Fatal Error”:
In this case, try deleting the file at user/nand/data/00000000000000000000000000000000/sysdata/00010017/00000000/config
and running the latest version of Citra. If this does not work, then note the config block number (0xA0001
in the example) and file a bug report.
How can I fix the API ERROR 1282 OPENGL
error? I can’t figure out what is causing this to happen!
This is the result of third-party application that uses overlays which might conflict with Citra.The console will print this error log:
So far only MSI Afterburner is being reported to have conflicts with Citra, therefore it is advisable to close it before launching Citra.
Where is the folder for the emulated SD card?
The folder for the emulated SD card is named sdmc
and can be found in Citra’s User Directory.
Particle effects or text display as a jumble of triangles.
You are using an older build. Download the latest nightly build as the issue has been resolved.
Old answer: In certain games, animated particle effects (such as smoke, fire, trails, etc.) or text may not render properly, showing up instead as a jumbled mess of triangles, sometimes covering large parts of the screen. This is caused by a missing feature in our GPU support (Geometry Shaders) which is used by games to render these kind of effects.
Example of games that suffer from this:
- Pokemon OR/AS - Missing attack animations.
- Fire Emblem: Awakening
- Ace Combat: Assault Horizon Legacy
Networking Support
What is this?
Citra’s networking support emulates the 3DS’ local wifi. On a real 3DS, this allows you to play games with people next to you. With Citra’s implementation of this feature, you can play with other people on Citra anywhere. This is not an implementation of connecting to Nintendo’s servers over wifi, nor is it an implementation of download play.
Why don’t I have this feature?
You are using an old version of Citra.
What’s the difference between public and unlisted rooms?
When you make a public room, Citra connects to the Citra Web Service, authenticates yourself using your token and username, and sends the room details. Then, the Citra Web Service will add your room to the public room listing, so when people go in the Public Game Lobby, they will see the room. Something important to note about a public room is that the Citra Web Service only hosts room listings, and not the room itself. The room will still be hosted on your computer.
When you make an unlisted room, Citra opens a room for any incoming connections, without connecting to the Citra Web Services. For other people to join the room, they will need to enter your IP manually, since they’re not going through the Public Game Browser listing.
How do I join a public room?
To join a public room, follow these steps:1. Go to Multiplayer
in the menu bar, and click Browse Public Game Lobby
.2. Set your nickname in the top left.3. Double click on a room in the Public Room Browser dialog to join it.4. Double click on a game in the Citra main window to start it.
How do I join a unlisted room?
To join a unlisted room, follow these steps:1. Go to Multiplayer
in the menu bar, and click Direct Connect to Room
.2. Enter the IP and port of the host you’re connecting to, your nickname, and password of the room if applicable.3. Click connect to join the room.
How do I make a public room?
To make a public room, follow these steps:1. If you and the people you are playing with are on different wifi networks, setup port forwarding in your router settings.2. Go to Multiplayer
in the menu bar, and click Create Room
.3. Enter the name of your room to be shown in the public listing and chat window, your preferred nickname, the game that will be played, an optional password if you need it, and the max number of players that can join the room. Unless you know you need it, you shouldn’t have to touch the port number.4. Click Host Room
to create the room.
How do I make an unlisted room?
To make an unlisted room, follow these steps:1. If you and the people you are playing with are on different wifi networks, setup port forwarding in your router settings.2. Go to Multiplayer
in the menu bar, and click Create Room
.3. Enter the name of your room to be shown in the chat window, your preferred nickname, the game that will be played, an optional password if you need it, and the max number of players that can join the room. Unless you know you need it, you shouldn’t have to touch the port number.4. At the bottom, set the room type combo box to Unlisted
.5. Click Host Room
to create the room.
Development and contributions
How can I develop or contribute to the project?
If you’re interested in contributing, fork the project here in GitHub, and then create a Pull Request when you’re ready to submit your contribution. Unless your change is trivial, however, it is strongly recommended that you join our development channel (#citra-dev @ Freenode) to coordinate with the developers beforehand. Make sure to review our coding guidelines and ensure your changes follow them. If you’re looking for ideas on things to work on, try looking around our issue tracker. Some issues are tagged with the E-easy label, which means they’re smaller tasks that should be easier to get into.
I’d like to be a beta tester, how can I help?
If you try some games and run into issues like graphical glitches, freezes and especially regressions from previous versions, you can try reporting them in our issue tracker, accompanied by logs from the emulator if possible. Do not report an issue if a game simply fails to boot entirely.
Non-official builds are faster, have more features and run more games. Why don’t you work with the people who create those?
Most non-official builds are just a collection of different features currently being worked on by Citra contributors from the community.These features are not part of the official version (yet) because they are either broken-by-design and would possibly hinder development soon or because they are still work in progress.Also, each change will go through a review process. Features found in non-official versions are often in the review phase already and will be included in official versions about a month or two later.
If you are the author of a non-official build make sure you still follow the license of Citra.
I think what you guys are doing is awesome! I am not a developer, but still want to support the project. What can I do?
That’s awesome! Such support is what motivates us to keep working! Stick around and keep motivating our work!
If you’re interested in donating, we would gladly accept used hardware, games for testing, or money for development/infrastructure costs. Please see our donations page for more information, or join our IRC channel (#citra @ Freenode) or Discord server and contact a developer.
The below wiki article is based on user submitted content.
Please verify all hyperlinks and terminal commands below!
The User Directory
Citra’s user directory is where the emulator persists the emulated 3DS NAND, save data, extra data, and a host of other files necessary for Citra to run properly. The path of the user directory varies on different systems:
- on Windows, the path is
C:/Users/[your-user-name]/AppData/Roaming/Citra/
. Note that the folderAppData
is hidden by default, so you need to change the configuration to view it.- in old version of Citra, the user directory used to be the
user
folder in the same directory as the Citra executable.
- in old version of Citra, the user directory used to be the
- on macOS and Linux, the path is
~/.local/share/citra-emu/
. Note that the folder.local
is hidden on most machines, so you need to change the configuration to view it. Additionally, theconfig
folder is located in~/.config/citra-emu/
.
There are at least three directories within the user directory: config
, nand
, and sdmc
. See below for details about each directory and what data is stored within.
Diagram of Citra’s User Directory
Dumping files from a 3DS
Included in this guide are instructions on how to dump various files from a 3DS console to put into the Citra user directory. These files are optional in terms of Citra’s ability to run, but depending on certain circumstances some may be required in order to run a particular game or get past a certain point in the game. In general, dumping files from a 3DS will require an SD card reader or some way to use wireless file transfer from a 3DS to a computer and that the 3DS being dumped from has Homebrew Launcher access. More advanced users will also have custom firmware and Decrypt9WIP installed to their 3DS.
If the below articles are too wordy, consult the below tutorials for obtaining optional files to improve the Citra experience:
config
This directory contains files containing information that tell Citra how to run. These files are in plain text and thus are fully editable and contain configurations for mapping controls, which [CPU]] and audio engine to use, rendering and other visual options, the [Log Filters, which region the emulated 3DS belongs to, whether to treat the emulated 3DS as a new 3DS, and whether to insert a virtual SD card into the emulated system.
Changing these files is only to be done by advanced users because making changes at random can cause Citra not to work as expected or at all. The Citra executable has options menus that allow users to change most of the aforementioned configurations safely. If Citra has trouble running after changing a file and the user cannot remember what they changed, delete the configuration files and run the executable again so that they are regenerated automatically (albeit as though Citra is being run for the first time so any existing configurations are lost).
log
This directory contains citra_log.txt
. This file is automatically generated by Citra and stores the logging. It is overwritten every time Citra is launched.
nand
This directory is the emulated 3DS system NAND. It does not match an actual console’s NAND exactly due to differences between Citra and a physical 3DS. This directory will contain the data
directory and potentially also the system archives.
data
This directory is automatically generated by Citra and contains the system and extra data for the emulated NAND. Inside this directory is another directory, 00000000000000000000000000000000
. On a physical 3DS, the directory inside data
would be named differently. Its name would be 32 characters long and made of hexadecimal characters (0-9 and A-F) instead of it being all 0’s like Citra. This knowledge is only important if you plan on dumping any NAND system data or extra data from a physical 3DS and associating it with Citra. The 00000000000000000000000000000000
contains two folders, extdata
, containing NAND extra data, and sysdata
, containing NAND system save data.
sysdata
System save data is identified by a title ID, separated into TID High, the first 8 characters of the title ID, and TID Low, the last 8 characters of the title ID. Most system save data has a TID high of 00000000. An individual piece of system save data is stored in sysdata/[TID Low]/[TID High]
. For details about the different kinds of system save data, see 3dbrew. For first-time Citra users, there may be nothing inside the sysdata
directory. In fact this will be the case for most Citra users, and is nothing to be alarmed about. This data will be created automatically in some cases, such as when a Mii is saved in Mii Maker. Almost none of this data is essential for Citra to run homebrew games or backups of licensed titles.
There is one notable exception to the last statement. Citra requires a dump of a physical 3DS’s config savegame in order to run a small number of games. Follow the instructions located at Dumping Config Savegame from a 3DS Console to obtain the config savegame from a 3DS console.
Other system save data aside from the config savegame can be dumped from a 3DS console by an expert user and placed in the sysdata
folder. At this time, though, many features that read from or write to system save data have not been implemented so there is currently little value in doing so. See this discussion topic for more details about dumping system save data.
extdata
NAND extra data always has a TID High of 00048000, so the extdata
directory should contain a 00048000
folder, though it has been observed in Citra that there may be a 00000000
folder instead, and users have reported issues if there is both a 00000000
and 00048000
folder contained therein, so it is advised to delete the 00000000
folder if that is the case. Inside the folder may be nothing, or it may contain one or more directories named F000000#
, where # can be the characters A-F or the numbers 0-9. Each of these folders corresponds to a TID low, which can be used to identify the type of extra data stored therein. See 3dbrew for details about the different kinds of extra data stored in NAND.
At this point in time, it is possible to dump extra data from a physical 3DS’s NAND using a save manager like JKSM and to place it in the extdata
directory, but doing so is entirely optional and Citra does not currently emulate NAND features that utilize most of this extra data.
system archives
This folder, named 00000000000000000000000000000000
, will only exist if the system archives have been dumped from a physical 3DS. The system archives are required for some games to work with Citra. To obtain the system archives, follow the instructions located at Dumping System Archives and the Shared Fonts from a 3DS Console.
Font
sdmc
This directory is the equivalent of the SD card inserted into a physical 3DS, which stores game save, extra data and any titles installed to the SD card in encrypted format. Inside the sdmc
folder, just like on a real 3DS console, is a Nintendo 3DS
directory, which contains two more directories, Private
and 00000000000000000000000000000000
.
Private
The Private
directory on a real 3DS contains camera data (in 00020400/phtcache.bin
) and sound data (in 00020500/voice/...
). Citra will create camera data while it is running. If a user wants to copy their camera and sound data to Citra, they can do so easily by copying the Private
folder from their SD card and overwriting Citra’s, but at this time there is no value in doing so.
00000000000000000000000000000000
This directory contains another directory of the same name, and inside of that is where game saves (in the title
directory) and extra data (in the extdata
directory) can be found. On a real SD card, there would not be two 00000000000000000000000000000000
folders, but instead the folders would be named as hexadecimal characters corresponding to a 3DS console ID. If a user wishes to extract save or extra data from their physical console, they do not need to worry about the console ID not matching Citra’s 00000000000000000000000000000000
folders.
title
If any games have been saved while playing them with Citra, there should be a folder inside sysdata
named 00040000
. This folder contains all of the save data for 3DS titles. It is entirely possible to retrieve save data from an SD card using a physical 3DS console and import it into Citra to continue a game where it was last left off on the console. See [Dumping Save Data from a 3DS Console]] for instructions. On a real SD card, the sysdata
folder will also contain the files required to run any 3DS titles installed to the SD card. This can be mimicked somewhat by [Dumping Installed Titles and importing them into Citra’s sysdata
directory but this is unnecessary since Citra can run them from anywhere on a computer filesystem and doesn’t require the accompanying .tmd and .cmd files.
On a real SD card, there may be two other directories inside sysdata
. These directories are named 0004000e
and 0004008c
and correspond to downloaded game updates and DLC respectively. The data contained within these directories can be backed up on a computer as decrypted CIA files and installed with Citra (Dumping Updates and DLCs). The latest version of GodMode9 is required to redump your DLCs if you do not own all them as it was dumped incorrectly before.
extdata
This directory contains all of the extra data created when playing 3DS game backups. Citra emulates a console’s behavior of reading from and writing to extra data, so this data can be dumped from an SD card using a physical 3DS console and imported into Citra. See Dumping Extra Data from a 3DS Console for instructions.
other folders
If a real SD card is compared to Citra’s emulated SD card, Citra may appear to be missing one or more folders present on the real SD card: dbs
, backups
, and Nintendo DSiWare
. The dbs
folder contains a 3DS console’s title database. The backups
folder contains saved data backed up via the Home Menu. The Nintendo DSiWare
folder contains exported DSi exports. Citra does not need any of these folders so there is currently no value in dumping them.
Truetype Font File
sysdata
Citra Shared Font File Missing
This directory can contain two files.
Citra Shared Font File
shared_font.bin
: this was a legacy system font data dumped from old versions of 3dsutils and is no longer supported. If the user does not have shared font installed, Citra will use the open source font replacement instead. Users should redump their shared font since the open source font replacement may not always look accurate. See Dumping System Archives and the Shared Fonts from a 3DS Console for more information.aes_keys.txt
: this file holds decryption keys. See AES Keys for more informationseeddb.bin
: SeedDB used for seed crypto & FS SeedDB functions