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
- 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
- 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
- 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.
A lifelong avid gamer and computing enthusiast, Matt has decades of Retro Gaming experience. Now over 40 years old, Matt now even considers himself retro, but fortunately, nobody has developed a Matt emulator (not yet at least!).