Citra 3DS Emulator: Long Awaited Update

CitraEmulatorsNintendo 3DS

Citra 3DS Emulator Updates

The finest 3DS emulator out there, Citra, have made contact with the outside world to let everybody know, no, they are not dead, having not published any progress reports since early 2020.

This status update comes with a huge list of improvements that have been made to Citra along with a special announcement that one of Citra’s most requested features is now in development – The implementation of the Vulkan graphics API into Citra!

The update states that Developer GPUCode is adding a new Vulkan backend to Citra, which promises to significantly improve graphics performance. Vulkan provides lower-level access to the GPU, allowing for optimizations not currently possible with OpenGL.

Initial tests show that with some configurations, game performance can more than double, with Android devices receiving a significant speed boost.

This is particularly beneficial for devices with Mali GPUs, which commonly have poor OpenGL ES drivers. The new Vulkan backend will make Citra more accessible to many more people, not just those who have a Snapdragon SoC. Additionally, using Vulkan will allow support for Citra to be brought back to thousands of Mac users who were unable to use the previous version due to changes in Apple’s OpenGL support.

Below is a full list of the features included in the update published on the Citra website on 28th March 2023.

New features include:

  • Implement basic rerecording features
  • Implement Reverse Interlaced 3D
  • Custom folders for SDMC and NAND Directories
  • Start abstracting the rasterizer cache from OpenGL
  • Add 3GX Plugin Loader
  • Add Nearest Neighbour Texture Filter
  • Better Support for Picture-in-Picture Custom Layouts
  • Automatic Controller Binding
  • Disable HIDAPI drivers due to compatibility problems with certain controllers
  • Implement official GameCube adapter support
  • Add support for SDL controller accelerometer/gyro events

Android App Updates:

  • Add Disk Shader Cache
  • Add cheat GUI
  • Add support for custom textures and texture dumping
  • Add internet permission to Android manifest
  • Allow opening in-emulation menu by pressing Back

Emulation Accuracy:

  • Implement APT command 0x0103
  • Initial implementation of partial_embedded_buffer_dirty handling
  • service/apt: Implement Deliver Args
  • gl_rasterizer_cache: Remove all fully invalid surfaces from the cache
  • Add svcGetSystemInfo 0x20000 to get Citra information
  • Allow MemoryRef to hold a past-the-end offset
  • arm/dynarmic: More accurate cycle counting

Multiplayer FIxes:

  • APT: implement Set and GetWirelessRebootInfo
  • NWM_UDS: Implement disconnect_reason and EjectClient
  • service/nwm_uds: Various improvements/corrections
  • Remove citra-room dependence on core
  • UDS: implement GetApplicationData
  • service/frd: return cfg username on GetMyScreenName

Frontend Improvements:

  • Quick screenshot
  • Added Midnight Theme
  • Citra SDL: graceful shutdown on application close
  • Separate Windows
  • Ask for confirmation when changing games from the game list
  • Per-game configurations
  • Change Monoscopic Render mode to a dropdown

If you want to stay up to date with the latest Citra developments, then join their Discord Server. and view the #development channel.

Article Published:

Last Updated: