- Step 1: Download fix files here2: Open Citra's User sysdata folderC: Users USERNAME AppData Ro.
- Dump Citra Files.gm9 creates Citra ready dumps of your 3DS's config, System Archives, and Shared Fonts in 0:/gm9/out/Citra. (This WILL overwrite any existing Citra files you may have made in a previous dump!) (This WILL fail if your 3DS has a custom font cia installed!).
The below wiki article is based on user submitted content.
Please verify all hyperlinks and terminal commands below!
Jun 15, 2017 THIS IS A STAGING REPO FOR OUR NIGHTLY RELEAES ONLY. For development see our main repo at - citra-emu/citra-nightly.
See a mistake? Want to contribute? Edit this article on GithubThe 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.
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.
Citra Shared Font File Missing
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.
Truetype Font File
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.
sysdata
This directory can contain two files.
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
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. However, some games do require files dumped from a 3DS in order to function properly. This tutorial will teach you how to dump the system archives (alongside the config savegame), which are critical for some games, such as Pokemon, to work. These files are copyrighted and are not allowed to be shared, so don’t ask for them on the forum. If you do not own a 3DS to dump the files from, you are out of luck.
threeSD
threeSD is a tool written to help import data from your 3DS for Citra more conveniently.
Refer to threeSD Quickstart Guide for importing your installed titles, updates, DLCs, save data, extra data, system files, etc. Note that you’ll still need a hacked 3DS with GodMode9 to obtain your keys so that threeSD can decrypt the data on your SD card.
3dsutils
Required tools
- A 3DS with Homebrew Launcher access
- The 3dsutils homebrew app (Click here for a non-official version)*
- An SD card reader or a way to wirelessly transfer files between the 3DS console and a computer
*There is no official precompiled version of this app, but a non-official build is provided for convenience. Alternatively, you can install devkitPro and compile it yourself from the 3dsutils source code.
Instructions
- Run 3dsutils via the homebrew launcher.
- Press A when prompted to begin. The system archives will be dumped. Wait for the process to finish, then press A when prompted to be taken back to the homebrew launcher.
- There will now be a
3dsutils
folder at the root of the 3DS’s SD card. Inside that folder is a foldernand
. Transfer the foldernand
to the User Directory. The folder will merge with the existingnand
folder contained therein. If prompted to overwrite any files, say yes.