Skip to content

Nintendo - 3DS (Citra)

Background

Citra is an experimental open-source Nintendo 3DS emulator/debugger written in C++. It is written with portability in mind.

The Citra core has been authored by

  • Citra Emulation Project

The Citra core is licensed under

A summary of the licenses behind RetroArch and its cores can be found here.

Requirements

OpenGL 3.3 or higher

Warning

There is currently no ‘working’ macOS version available. This is because this core requires OpenGL core 3.3 context, and RetroArch on macOS currently does not support this. We will have to add support for this to a future version of RetroArch on macOS before this core will start to work on it.

Decryption keys

Citra requires AES keys in order to load encrypted games. aes_keys.txt needs to be placed in ../saves/Citra/sysdata.

Extensions

Content that can be loaded by the Citra core have the following file extensions:

  • .3ds
  • .3dsx
  • .elf
  • .axf
  • .cci
  • .cxi
  • .app

RetroArch database(s) that are associated with the Citra core:

Features

Frontend-level settings or features that the Citra core respects.

Feature Supported
Restart
Screenshots
Saves
States
Rewind
Netplay
Core Options
RetroAchievements
RetroArch Cheats
Native Cheats
Controls
Remapping
Multi-Mouse
Rumble
Sensors
Camera
Location
Subsystem
Softpatching
Disk Control
Username
Language
Crop Overscan
LEDs

Directories

The Citra core's library name is 'Citra'

The Citra core saves/loads to/from these directories.

The Citra Shaders should be in ../saves/Citra/shaders/opengl/transferable

Frontend's Save directory

Geometry and timing

  • The Citra core's core provided FPS is 60.0
  • The Citra core's core provided sample rate is 32728 Hz
  • The Citra core's base width is (Base width)
  • The Citra core's base height is (Base height)
  • The Citra core's max width is (Max width)
  • The Citra core's max height is (Max height)
  • The Citra core's core provided aspect ratio is (Ratio)

Cheats

The Citra core supports internal cheats, but you have to enable them manually:

  1. Grab a Citra cheats file for your game, you can find a lot of them here for example: https://github.com/iSharingan/CTRPF-AR-CHEAT-CODES/tree/master/Cheats
  2. Put the file ([game_id].txt) in your frontend's saves/Citra/cheats/ folder.
  3. Open the .txt file with a text editor, add *citra_enabled below the cheat title and save changes.

As an example, if you want to enable the "All Characters" cheat for Mario Kart 7 you have to edit [frontend_dir]/saves/Citra/cheats/0004000000030800.txt and change that part:

[All Characters, Game v1.0]
D3000000 14000000
0013C99C 01FF003F
to:
[All Characters, Game v1.0]
*citra_enabled
D3000000 14000000
0013C99C 01FF003F

Core options

The Citra core has the following option(s) that can be tweaked from the core options menu. The default setting is bolded.

Settings with (Restart) means that core has to be closed for the new setting to be applied on next launch.

  • Enable CPU JIT [citra_use_cpu_jit] (enabled|disabled)

    Enable Citra's 'dynarmic' dynamic recomplier. Can improve performance. Instructions that are not implemented by the recompiler fall back into the interpreter CPU core.

    If disabled, Citra will solely use the Interpreter CPU core.

  • Enable hardware renderer [citra_use_hw_renderer] (enabled|disabled)

    Awaiting description.

  • Enable shader JIT [citra_use_shader_jit] (enabled|disabled)

    Awaiting description.

  • Enable hardware shaders [citra_use_hw_shaders] (enabled|disabled)

    Awaiting description.

  • Save hardware shader cache to disk [citra_use_hw_shader_cache] (enabled|disabled)

    Awaiting description.

  • Enable accurate geometry shaders (only for H/W shaders) [citra_use_acc_geo_shaders] (enabled|disabled)

    Awaiting description.

  • Enable accurate shaders multiplication (only for H/W shaders) [citra_use_acc_mul] (enabled|disabled)

    Awaiting description.

  • Texture filter type [citra_texture_filter] (none|Anime4K Ultrafast|Bicubic|ScaleForce|xBRZ freescale)

    Awaiting description.

  • Enable custom textures [citra_custom_textures] (disabled|enabled)

    Awaiting description.

  • Dump textures [citra_dump_textures] (disabled|enabled)

    Awaiting description.

  • Resolution scale factor [citra_resolution_factor] (1x (Native)|2x|3x|4x|5x|6x|7x|8x|9x|10x)

    Self-explanatory.

Screen layout positioning - Default Top-Bottom Screen

Screen layout positioning - Single Screen Only

Screen layout positioning - Large Screen, Small Screen)

  • Screen layout positioning [citra_layout_option] (Default Top-Bottom Screen|Single Screen Only|Large Screen, Small Screen|Side by Side)

    Awaiting description.

  • Prominent 3DS screen [citra_swap_screen] (Top|Bottom)

    Awaiting description.

  • Right analog function [citra_analog_function] (C-Stick and Touchscreen Pointer|Touchscreen Pointer|C-Stick)

    Awaiting description.

  • Emulated pointer deadzone (%) [citra_deadzone] (15|20|25|30|35|0|5|10)

    Awaiting description.

  • Simulate touchscreen interactions with mouse [citra_mouse_touchscreen] (enabled|disabled)

    Awaiting description.

  • Simulate touchscreen interactions with touchscreen [citra_touch_touchscreen] (disabled|enabled)

    Awaiting description.

  • Render simulated touchscreen interactions [citra_render_touchscreen] (disabled|enabled)

    Awaiting description.

  • Enable virtual SD card [citra_use_virtual_sd] (enabled|disabled)

    Awaiting description.

  • Savegame location [citra_use_libretro_save_path] (LibRetro Default|Citra Default)

    Awaiting description.

  • 3DS system model [citra_is_new_3ds] (Old 3DS|New 3DS)

    Awaiting description.

  • 3DS system region [citra_region_value] (Auto|Japan|USA|Europe|Australia|China|Korea|Taiwan)

    Awaiting description.

  • 3DS system language [citra_language] (English|Japanese|French|Spanish|German|Italian|Dutch|Portuguese|Russian|Korean|Traditional Chinese|Simplified Chinese)

    Awaiting description.

  • "Enable GDB stub [citra_use_gdbstub] (disabled|enabled)

    Awaiting description.

Joypad

User 1 input descriptors RetroPad Inputs Citra inputs
B B
Y Y
Select Select
Start Start
Up Up
Down Down
Left Left
Right Right
A A
X X
L L
R R
ZL ZL
ZR ZR
Home Home
Touch Screen Touch Touch Screen Touch
X Circle Pad X
Y Circle Pad Y
X Right analog function
Y Right analog function

Mouse

RetroMouse Inputs Citra inputs
Mouse Cursor Touchscreen Pointer
Mouse 1 Touch Screen Touch

Pointer

RetroPointer Inputs Citra inputs
or Pointer Position Touchscreen Pointer
or Pointer Pressed Touch Screen Touch

Compatibility

Nintendo - Nintendo 3DS