Citra - dragoonDorise/EmuDeck GitHub Wiki
THIS WIKI IS NO LONGER MAINTAINED. VISIT https://emudeck.github.io/ FOR THE NEW EMUDECK WIKI.
Citra is a Nintendo 3DS Emulator.
Website: https://citra-emu.org/
Github: https://github.com/citra-emu/citra
Compatibility List: https://citra-emu.org/game/
Citra Table of Contents
Getting Started with Citra
Citra is a fairly straight-forward emulator to set up. Place your ROMs in Emulation/roms/n3ds
or Emulation/roms/3ds
. No additional setup is required if you are using decrypted ROMs. Read the Configuration section to learn more about Citra and its folder locations. The Configuration section covers where to place your aes_keys.txt
if you are using encrypted ROMs.
To launch your ROMs in game mode, use Steam ROM Manager and use one of the following parsers to play your Citra ROMs:
EmulationStation-DE
Nintendo 3DS - Citra
Emulators
Citra Configuration
- Type of Emulator: Flatpak
- Config Location:
/home/deck/.var/app/org.citra_emu.citra
- ROM location:
Emulation/roms/3ds
orEmulation/roms/n3ds
aes_keys.txt
location:/home/deck/.var/app/org.citra_emu.citra/data/citra-emu/sysdata/
- Only necessary if the 3DS ROM is encrypted
- If the
sysdata
folder does not exist, create it.
- Saves Location:
- Symlink:
Emulation/saves/citra/saves
- Target:
/home/deck/.var/app/org.citra_emu.citra/data/citra-emu/sdmc
- Symlink:
- Savestates Location:
- Symlink:
Emulation/saves/citra/states/
- Target:
/home/deck/.var/app/org.citra_emu.citra/data/citra-emu/states
- Symlink:
Note: ~/.var
is an invisible folder by default. In Dolphin (file manager), click the hamburger menu in the top right, click Show Hidden Files
to see these folders.
Works With
- Steam ROM Manager
- EmulationStation-DE
How to Update Citra
How to Update Citra
- Update through
Discover
(Shopping bag icon) - Through the
Update your Emulators & Tools
section on theManage Emulators
page in theEmuDeck
application
How to Launch Citra in Desktop Mode
How to Launch Citra in Desktop Mode
- Launch
Citra
from the Applications Launcher (Steam Deck icon in the bottom left of the taskbar) - Launch the script from
Emulation/tools/launchers
,citra.sh
- Launch the emulator from
Steam
after adding it via theEmulators
parser inSteam ROM Manager
Citra File Formats
- .3ds
- .3dsx
- .app
- .axf
- .cci
- .cxi
- .elf
IMPORTANT:
.cia
can only be used if you install it through Citra. Do not place your.cia
ROMs in either theEmulation/roms/3ds
or theEmulation/roms/n3ds
folders. The .cia file format is not compatible with Steam ROM Manager and EmulationStation-DE.
How to Manage DLC and Updates
Read: https://citra-emu.org/wiki/dumping-updates-and-dlcs/ to learn how to properly dump your DLC and update files from your 3DS.
DLC and update files typically are .CIAs, an installable file format through Citra. After installing your DLC or updates, you may discard these files.
How to Install DLC and Updates
- In Desktop Mode, open Citra
- Click
File
in the top left - Click
Install CIA...
- Navigate to your DLC or update files
Citra Hotkeys
Citra comes with a Steam Input profile for Hotkeys. Activate the Steam Input profile by clicking the Game Controller
icon in Game Mode
, change the template to Emudeck - Citra 3DS
. The hotkeys below can only be used if you have the Steam Input profile active.
Hotkey | Citra |
---|---|
Full Screen Toggle | L4 |
Layout Toggle | L5 |
Swap Screens | R4 |
Quit | Long Press R5 |
Save State | Left Trackpad Touch Menu |
Load State | Left Trackpad Touch Menu |
Fast Forward | Left Trackpad Touch Menu |
Pause | Left Trackpad Touch Menu |
Exit | Double Tap Left Trackpad Touch Menu |
Full Screen | Left Trackpad Touch Menu |
Swap Screens | Left Trackpad Touch Menu |
Change Screen Layout | Left Trackpad Touch Menu |
For a tutorial on how to select Steam Input Profiles, refer to: https://github.com/dragoonDorise/EmuDeck/wiki/hotkeys#how-to-select-a-steam-input-profile.
Steam Deck Button Layout: https://github.com/dragoonDorise/EmuDeck/wiki/Hotkeys#steam-deck-button-layout
Citra Common Issues
Why did my game suddenly stop working?
A recent update to some back-end changes may cause some crashing with games that were working previously. To fix this issue, you will need to delete the shaders
folder.
Here's How
- In Desktop Mode, open
/home/deck/.var/app/org.citra_emu.citra/data/citra-emu
~/.var
is an invisible folder by default. In Dolphin (file manager), click the hamburger menu in the top right, clickShow Hidden Files
to see these folders
- Delete the
shaders
folder - Try your game again
This should be a one-time fix and your games should work again moving forward.
Citra Tips and Tricks
How to Configure Gyro
Gyro for Citra requires SteamDeckGyroDSU. SteamDeckGyroDSU can be installed via EmuDeck, or it can be installed manually.
Visit https://github.com/dragoonDorise/EmuDeck/wiki/EmuDeck-Application-101#steamdeckgyrodsu to learn how to install and utilize SteamDeckGyroDSU.
How to Optimize Performance (Power Tools)
Visit https://github.com/dragoonDorise/EmuDeck/wiki/EmuDeck-Application-101#power-tools to learn how to optimize performance using Power Tools.
How to Install Custom Textures
Here's how to install custom textures for Citra:
- Open the Citra emulator. Click
Emulation
in the top left. ClickConfiguration
,Graphics
, and check bothUse Custom Textures
andAsync Custom Texture Loading
Preload Custom Textures
is no longer recommended. LeavePreload Custom Textures
off
- Open https://3ds.jdbye.com/?details=USA&split=0&display=0 in a browser, and note down the
Title ID
for the game you would like to install custom textures for - Open
/home/deck/.var/app/org.citra_emu.citra/data/citra-emu/load/textures
~/.var
is an invisible folder by default. In Dolphin (file manager), click the☰
(hamburger menu) in the top right, click "view hidden files" to see these folders.- If the
load
andtextures
folder do not exist, create them
- In the
textures
folder from Step 3, create a folder matching theTitleID
from Step 2 - Put your texture files directly into this folder
- Your texture pack should now be installed
IMPORTANT: Outdated guides will recommend enabling Preload Custom Textures
. Turning on Preload Textures
is no longer recommended and will cause a severe performance hit.
For a visual on how to install custom textures, watch the following GIF:
How to Use Cheats
Cheat Sources
This list is not exhaustive
How to Use Cheats
- In Desktop Mode, open Citra
- Right click a game of your choice, click
Properties
- Click the
Cheats
tab - Click
Add Cheat
- Name the cheat and add the code to the box under
Code:
- Click Save in the top right
- Check the box to the left of the cheat to enable it
How to Configure Bottom Screen as PiP
Credit: NexLevel
Citra allows you to configure the bottom screen as a sort of PiP (Picture in Picture) overlay on the top screen, by editing the qt-config file.
Here's How
- Open the folder:
/home/deck/.var/app/org.citra_emu.citra/config/citra-emu/
~/.var
is an invisible folder by default. In Dolphin (file manager), click the hamburger menu in the top right, clickShow Hidden Files
to see these folders
- Right click
qt-config.ini
, and clickOpen with Kate
or a text editor of your choice - Locate the
[Layout]
section - Replace the content of the
[Layout]
section with the below text:
[Layout]
anaglyph_shader_name=dubois (builtin)
anaglyph_shader_name\default=true
custom_bottom_bottom=800
custom_bottom_bottom\default=true
custom_bottom_left=520
custom_bottom_left\default=true
custom_bottom_right=760
custom_bottom_right\default=true
custom_bottom_top=620
custom_bottom_top\default=true
custom_layout=true
custom_layout\default=true
custom_second_layer_opacity=33
custom_second_layer_opacity\default=true
custom_top_bottom=784
custom_top_bottom\default=true
custom_top_left=0
custom_top_left\default=true
custom_top_right=1280
custom_top_right\default=true
custom_top_top=16
custom_top_top\default=true
factor_3d=0
factor_3d\default=true
filter_mode=true
filter_mode\default=true
large_screen_proportion=@Variant(\0\0\0\x87@\x80\0\0)
large_screen_proportion\default=true
layout_option=1
layout_option\default=false
mono_render_option=0
mono_render_option\default=true
pp_shader_name=none (builtin)
pp_shader_name\default=true
render_3d=0
render_3d\default=true
swap_screen=false
swap_screen\default=true
upright_screen=false
upright_screen\default=true
- (Optional) To move the PiP screen up, try setting
custom_top_top=0
andcustom_top_bottom=768
- Save and exit out of the text file, Citra will now be using the bottom screen as PiP
Note: To revert back to defaults, the default [Layout]
section is:
[Layout]
anaglyph_shader_name=dubois (builtin)
anaglyph_shader_name\default=true
custom_bottom_bottom=480
custom_bottom_bottom\default=true
custom_bottom_left=40
custom_bottom_left\default=true
custom_bottom_right=360
custom_bottom_right\default=true
custom_bottom_top=240
custom_bottom_top\default=true
custom_layout=false
custom_layout\default=true
custom_second_layer_opacity=100
custom_second_layer_opacity\default=true
custom_top_bottom=240
custom_top_bottom\default=true
custom_top_left=0
custom_top_left\default=true
custom_top_right=400
custom_top_right\default=true
custom_top_top=0
custom_top_top\default=true
factor_3d=0
factor_3d\default=true
filter_mode=true
filter_mode\default=true
large_screen_proportion=@Variant(\0\0\0\x87@\x80\0\0)
large_screen_proportion\default=true
layout_option=2
layout_option\default=false
mono_render_option=0
mono_render_option\default=true
pp_shader_name=none (builtin)
pp_shader_name\default=true
render_3d=0
render_3d\default=true
swap_screen=false
swap_screen\default=true
upright_screen=false
upright_screen\default=true
How to Configure Bottom Screen With Opacity
Credit: NexLevel
A recent update of Citra allows the ability to set the opacity on the bottom screen. In combination with setting the bottom screen as a PiP overlay, you can create a Citra layout that looks like the following:
Example 1:
Example 2:
Here's How
- Open the folder:
/home/deck/.var/app/org.citra_emu.citra/config/citra-emu/
~/.var
is an invisible folder by default. In Dolphin (file manager), click the hamburger menu in the top right, clickShow Hidden Files
to see these folders
- Right click
qt-config.ini
, and clickOpen with Kate
or a text editor of your choice - Locate the
[Layout]
section - Replace the content of the
[Layout]
section with the below text:
[Layout]
anaglyph_shader_name=dubois (builtin)
anaglyph_shader_name\default=true
custom_bottom_bottom=800
custom_bottom_bottom\default=true
custom_bottom_left=520
custom_bottom_left\default=true
custom_bottom_right=760
custom_bottom_right\default=true
custom_bottom_top=620
custom_bottom_top\default=true
custom_layout=true
custom_layout\default=true
custom_second_layer_opacity=33
custom_second_layer_opacity\default=true
custom_top_bottom=784
custom_top_bottom\default=true
custom_top_left=0
custom_top_left\default=true
custom_top_right=1280
custom_top_right\default=true
custom_top_top=16
custom_top_top\default=true
factor_3d=0
factor_3d\default=true
filter_mode=true
filter_mode\default=true
large_screen_proportion=@Variant(\0\0\0\x87@\x80\0\0)
large_screen_proportion\default=true
layout_option=1
layout_option\default=false
mono_render_option=0
mono_render_option\default=true
pp_shader_name=none (builtin)
pp_shader_name\default=true
render_3d=0
render_3d\default=true
swap_screen=false
swap_screen\default=true
upright_screen=false
upright_screen\default=true
- To adjust the PiP opacity, the opacity can be any integer between 1-100
- Save and exit out of the text file, Citra will now be using the bottom screen as PiP with custom opacity
Note: To revert back to defaults, the default [Layout]
section is:
[Layout]
anaglyph_shader_name=dubois (builtin)
anaglyph_shader_name\default=true
custom_bottom_bottom=480
custom_bottom_bottom\default=true
custom_bottom_left=40
custom_bottom_left\default=true
custom_bottom_right=360
custom_bottom_right\default=true
custom_bottom_top=240
custom_bottom_top\default=true
custom_layout=false
custom_layout\default=true
custom_second_layer_opacity=100
custom_second_layer_opacity\default=true
custom_top_bottom=240
custom_top_bottom\default=true
custom_top_left=0
custom_top_left\default=true
custom_top_right=400
custom_top_right\default=true
custom_top_top=0
custom_top_top\default=true
factor_3d=0
factor_3d\default=true
filter_mode=true
filter_mode\default=true
large_screen_proportion=@Variant(\0\0\0\x87@\x80\0\0)
large_screen_proportion\default=true
layout_option=2
layout_option\default=false
mono_render_option=0
mono_render_option\default=true
pp_shader_name=none (builtin)
pp_shader_name\default=true
render_3d=0
render_3d\default=true
swap_screen=false
swap_screen\default=true
upright_screen=false
upright_screen\default=true