What's Changed
Azahar core upgrade
CitraVR now incorporates the Azahar emulator core up to 2126 RC2. This brings in a lot of upstream improvements, including:
- Improved CPU, GPU, networking, renderer accuracy.
- Reduced shader stutter, including Vulkan disk shader caching and improved parallel shader and pipeline compilation.
- Improved GPU timing emulation and fixes for timing-sensitive games.
- Better OpenGL and Vulkan rendering compatibility.
- Improved Download Play, online-module, and system-applet support.
- Arctic Base support for running games and accessing data from a real 3DS over the local network.
- System-file setup through the Artic Setup Tool.
- Support for compressed .zcia, .zcci, .z3dsx, and .zcxi files.
- Android multiplayer rooms, including private rooms, chat, and public-room browsing when an unofficial web API is configured.
- Controller auto-mapping, turbo controls, combo-button support, and improved gamepad configuration.
- Improved application management, including uninstalling updates or DLC, opening application-related folders, and deleting per-game shader caches.
UI & Input
- Input mapping fix for Dualsense controllers
- Added an in-VR emulator settings menu to the Settings tab of the ribbon.
- A subset of settings can now be adjusted without leaving VR.
- Added a “Swap B and Y buttons” option for gamepads and Touch controllers.
Performance
- Vulkan is now the default renderer, with asynchronous shader compilation enabled by default to reduce shader-related stalls.
- Improved shader and pipeline-cache handling so cached work is preserved more reliably between sessions.
- Improved performance and frame pacing
- Expanded the VR statistics panel
Bug Fixes
- Fixed VR immersive modes.
- Fixed a Vulkan crash caused by attempting to create a secondary render window without a valid surface.
- Fixed returning to the menu sometimes launching the same game multiple times.
Misc.
- Added CitraVR update checking with stable and prerelease update channels.
- Playtest builds can now be installed alongside the regular release and are clearly labeled “CitraVR (Playtest).”
Notes
- Previously, CitraVR selected OpenGLES by default. This version selects Vulkan + async shader compilation by default. This setting should result in better first-time performance for many popular games, but may introduce graphics artifacts in others.
- If you encounter an incompatibility with the defaults, let us know on the [issues page].(https://github.com/amwatson/CitraVR/issues) or on the CitraVR Discord.
- If Vulkan causes a game-specific regression, try switching the Graphics API to OpenGL ES.
- Encrypted games are no longer supported by the Azahar core. CitraVR still recognizes the .3ds extension but the game itself must be decrypted.
- Asynchronous shader compilation can briefly display incomplete or incorrect graphics while a new shader finishes compiling. It can be disabled in Graphics settings if necessary.
- Public multiplayer-room browsing requires an unofficial web API URL. Azahar does not provide an official public-room service.
Thanks to the Azahar project and its contributors for their dedicated work to improve upon Citra.
Thanks to @qwtel for the original AzaharXR repo (which I took some merge direction from) and for their help supporting the CitraVR Discord.