
2121.1 / 08-05-2025
Azahar
Accuracy
Performance
Features
Azahar is an open-source 3DS emulator project based on Citra. It was created from the merging of PabloMK7's Citra fork and the Lime3DS project, both of which emerged shortly after Citra was taken down. The goal of this project is to be the de-facto platform for future development.
Forks
Support of 3DS files. If a file works with earlier Citra forks, it works with AzaharPlus.
Ability to download system files from official servers. No need for an actual 3DS.
--
Below are the minimum requirements:
Desktop
Operating System: Windows 10 (64-bit), MacOS 13 (Ventura), or modern 64-bit Linux
CPU: x86-64 (64-bit) CPU. Single core performance higher than 1,800 on Passmark
GPU: OpenGL 4.3 or Vulkan 1.1 support
Memory: 2GB of RAM. 4GB is recommended
Android
Operating System: Android 9.0+
CPU: Snapdragon 835 SoC or better
GPU: OpenGL ES 3.2 or Vulkan 1.1 support
Memory: 2GB of RAM. 4GB is recommended
Most Recent Changes
--2121.1--
Save states made on versions before this update are no longer compatible. Please read below for further information.
This is a hotfix for the 2121 update which primarily addresses an issue relating to save states which wasn't caught during the release candidate period. Apologies if you were affected by the issue.
All
Fixed an issue where the emulator would crash when loading a save state while using the OpenGL renderer | @PabloMK7 #1016This change breaks backwards compatibility with save states made in Azahar version 2121 or earlier.
Before updating to this version, please ensure that you have saved using the in-game save dialog.To avoid the above issue, this should be done while using the Vulkan renderer.
For more information on how to appropriately use save states and avoid unexpected loss of progress, please read our blog post on the topic: https://azahar-emu.org/blog/understanding-save-states
Desktop
Added a scroll bar to the Layout tab in the settings menu. | @SeppNel #1004This fixes an issue where, at certain screen resolutions, the height of the settings menu would be so tall that the Ok and Cancel buttons would be off of the bottom edge of the screen, and couldn't be clicked.
--2121--
Added a new Turbo feature which allows increasing the emulation speed to a pre-specified percentage using a hotkey or on-screen button for desktop and Android respectively. | kleidis #605, @icy-briar #910 #911, @OpenSauce04 #963
Added a new Screen Gap feature which allows the gap between the top and bottom screen to be configured by the user. | @DavidRGriswold #622
Fixed an issue where Streetpass Mii Plaza wouldn't detect its own update data. | @PabloMK7 #930
Fixed an issue where certain decrypted DLCs would fail to install and would instead be incorrectly detected as encrypted. | @PabloMK7 #979
The maximum value for the 3D slider has been increased from 100% to 255%. | @oneup03 #602The maximum value possible on real hardware is 100%, so going beyond this value may cause graphical oddities.
In cases where the current application may change mid-emulation, such as launching an application from the HOME menu, the shader cache is now associated with the currently running application. | @PabloMK7 #978Previously, after starting an application, all subsequent shader cache would be associated with the originally started application, meaning that shader cache for application started via the HOME menu would still be associated with the HOME menu.
Fixed cheats and the RPC server affecting the wrong processes. | @PabloMK7 #956
Fixed an issue which could cause emulation to break when no audio input samples had been captured. | @Midou36O #955This addresses an issue with the game "Brain Age: Concentration Training"
Desktop
The
azahar-room
executable has had its functionality added to the mainazahar
executable, accessable by passing the new--room
command line option. | @OpenSauce04 #873The
azahar-room
executable is now no longer distributed with our pre-built MacOS and Linux builds.
| @OpenSauce04Instead, the new--room
option should be used.Added quicksave/quickload functionality, with associated hotkeys, mirroring the existing Android functionality. | kleidis #811
Fixed an issue where the changes the hotkey configuration wouldn't save correctly. | @SeppNel #945
Fixed an issue where the "Multiplayer Browse Public Game Lobby" hotkey was non-functional. | @SeppNel #945
Fixed an issue where using
Save State > Save to Oldest Slot
could cause the emulator to crash under certain circumstances. | @PabloMK7 #977Fixed screenshots produced using the Capture Screenshot hotkey while using the Hybrid Screen layout using the wrong layout. | kleidis #807
Various minor adjustments have been made to the settings menu which improve consistency. | @OpenSauce04 #877
When using the Seperate Windows layout alongside 3D functionality, the bottom screen is no longer rendered twice. | @oneup03 #602
Linux
Our AppImage build is now distributed as a single uncompressed file rather than being compressed within a zip file amongst other unnecessary files. | @OpenSauce04
bac344d
Removed a value from the Azahar desktop file which could cause an incorrect GPU to be used. | @Jan200101 #993See also: ValveSoftware/steam-for-linux#9940
Improved Wayland window icon compatibility. | @HurricanePootis #935
MacOS
Native MacOS menubar integration has been temporarily disabled in favour of the non-native Qt menu bar. | @OpenSauce04 #995This is to address an issue where some menubar entires would inexplicably disappear when using certain non-English languages, making their functionality unaccessible.
The issue doesn't occur when using the non-native Qt menubar, hence the change.
A follow-up release will re-enable native menubar integration once the issue has been resolved.The minimum MacOS version has been bumped from 13.0 to 13.4. | @mal-cap #984
The number of files distributed in our pre-built MacOS archives has been reduced by stripping unnecessary files. | @OpenSauce04
1e8cc02
This change also applies to Windows, however due to the high number of other files distributed with those builds, the effect is less noticeable.
Android
The icon of the currently running application/game is now displayed in the top left corner of the drawer menu. | kleidis #809
Added a new button to the long-press about menu which allows users to open various folders related to a game, such as the location of the application's save data, DLC, textures, mods, etc. | kleidis #823
Added a new button to the long-press about menu which allows users to uninstall a game, its updates, or its DLC. | kleidis #823
The quicksave save state can now be saved to using the UI rather than being exclusively usable via a hotkey. | kleidis #812
Added a new portrait layout, Original, which maintains accurate proportions for the top and bottom screen. | @DavidRGriswold #625
Added a new Expand to Display Cutout option which allows the emulation display to expand to the area taken up by the camera notch. | kleidis #597
Added the
Auto
internal resolution option, which already existed in the desktop version. | kleidis #606Fixed an issue on Android 9 where a large titlebar with the text "Azahar" would appear during emulation, covering a large portion of the screen. | @OpenSauce04 #929
Fixed an issue where the Pause Emulation button in the drawer could have a "paused" icon while emulation is unpaused under certain conditions. | kleidis #810
Technical
For tagged releases, our unified sources archive now simply uses the name of the tag in its filename rather than the commit hash and date. | @OpenSauce04
b4699d9
Fixed a issue with the desktop update checker which could cause pre-release builds to erroneously attempt to downgrade to the prior stable release. | @OpenSauce04 #994This issue never actually affected any real users, as the last time we did a pre-release there were no stable releases for the update checker to attempt to downgrade to.
Fixed an issue where MacOS build would fail when using Xcode 16.3 or newer. | @mal-cap #984
New tool scripts have been added which handle previously manual pre-release tasks. | @OpenSauce04
1d562cd
This has no bearing on users or even most developers, and is purely for maintainer convenience.Fixed CMP0175 CMake warnings. | @OpenSauce04 #981
Fixed File::Write() not conforming to debug header validation. | @lannoene #952
Added a new property
isEnabled
for settings entries on Android which allows a setting to be greyed out. | kleidis #814Fixed a compilation failure when attempting to build for LoongArch. | @PabloMK7 @ouni666 #732
--2120.3--
This is a minor update which irons out some final issues from our initial release. If all goes to plan, this should be the last 2120.x release. Thank you for your patience during our initial launch period.
We hope you look forward to the next major release, 2121.
Android
Added a new prompt for users who may have inadvertently selected a different user directory after upgrading from Lime3DS, making it seem that data such as saves may have been lost. | @DavidRGriswold #917
This new prompt allows users to choose between continuing to use their new user directory or restoring their old one.
Needing to reselect the user directory after the upgrade was not intentional and was the result of a bug.
We apologize if you were affected by this issue and thought you had lost data.
All
Fixed an issue where Korean, Chinese and Taiwanese 3DS systems would be unable to start any application that used the system font due to the missing open source font replacement (this included the system setup tool). | @PabloMK7 #920
For now, the EUR/USA/JPN font will be used, but most glyphs will be replaced with question marks.
This allows the setup process to be completed, albeit without being able to read the text.
A font with the missing glyphs may be added at a later date.
Fixed an issue where consoles which have had their regions modified via custom firmware would be unable to start the system setup process via the Azahar Artic Setup Tool. | @PabloMK7 @luigoalma #921
Desktop
Updated bundled SDL2 version to fix an issue where Xbox controllers would need to be re-paired every time they were turned off. | @OpenSauce04 9500859
The Azahar application now explicitly sets its own window icon. | @OpenSauce04 #892
For most platforms this shouldn't change anything, but on Linux it is known to fix some app icon issues.
Technical
Fixed compilation failing when attempting to build using Qt 6.9.0 or later. | @OpenSauce04 #898
Fixed compilation failing when attempting to build for desktop with Discord support enabled while using CMake 4.0 or later. | @OpenSauce04 4b5b4a2
Disabled MSVC warnings C4711 and C5045 to make compilation logs less obnoxious to look at. | @OpenSauce04 #893
Neither of these warnings are important.
The version of NSIS we use to build our Windows installers has been bumped from 3.10 to 3.11.
--2120.2--
This another minor update similar to 2120.1 which aims to address some additional issues from the 2120 release. It also implements a couple of minor improvements which were appropriate to include in this release.
All
After performing system file setup with the Azahar Artic Setup Tool, the virtual 3DS is now linked to the real 3DS which was used, and must be unlinked via the settings before setup is performed with a different console | @PabloMK7 #833
Added several checks which verify that the country selected in the emulator settings matches up with the emulated region and the region of the console used to set up system files | @PabloMK7 #847
Fixed a fatal error which could occur when playing games which do not have the same region as the emulated region while having LLE modules enabled | @PabloMK7 #806
Fixed a memory leak which would be triggered when the virtual 3DS reads files | @SeppNel #750
Android
Fixed an issue where audio output was unintentionally linked to the Audio Input setting, and the Audio Input setting did not work | @toksn #844
Added Texture Sampling configuration option from the Qt frontend | @rtiangha #603
Technical
Updated installed Linux filenames to use reverse TLD format | @OpenSauce04 #840
To 99.9% of users this change will mean absolutely nothing, and is primarily a change in preparation for the Flatpak release
--2120.1--
This update aims to address some issues which were discovered in the prior 2120 release.
Android
Fixed an issue which could cause CIA installation to freeze indefinitely on Android | @PabloMK7 #773
If an app is encrypted, the region string will now display "Unsupported encrypted application" instead of "Invalid region" | @PabloMK7 #774
Fixed notifications from the Azahar app erroneously showing the Citra logo | @OpenSauce04 860aace
All
Fixed temporary frame limit functionality, which was broken in the previous release | @PabloMK7 #758
This isn't as major as it sounds, and only really resulted in CTGP-7 having slower boot times
Technical
Fixed a compilation failure when attempting to build with the _FORTIFY_SOURCE_DEFINED value pre-defined via CXXFLAGS | @OpenSauce04 75918be f083a6e
Fixed the 512x512 app icon not being installed to the CMake install prefix on Linux | @OpenSauce04 #775
This changes nothing from a user-facing perspective, it's just prep for the Flatpak release
--2120 rc3--
Fixed a graphical regression introduced in the 2120-rc2 release candidate
--2120-rc2--
This follow-up release candidate addresses some issues that were discovered in the first release candidate, 2120-rc1, alongside introducing a fix for a long-standing graphical issue which has been present since Citra.
⚠️ This update should be considered mandatory for all MacOS users. This is due to a fix being included for a particularly significant bug relating to booting the HOME menu which specifically affected MacOS users.
--2120-rc1--
See here for exhaustive details.
The method of acquiring the 3DS system files has been completely overhauled, now requiring the use of a real 3DS and the new Artic Setup Tool. | @PabloMK7The old method of acquiring system files has been removed
Read more about the reasons behind this change in our related blog post: https://azahar-emu.org/blog/game-loading-changesIf 3DS system files have been installed, games owned by your eShop account can now be downloaded directly from the 3DS eShop application | @PabloMK7
Fixed various issues relating to save states | @PabloMK7 #656
Added a new performance hack option named "Disable Right Eye Rendering" | @PabloMK7
758ded7
The 3DS renders for both the left and right eye, even when 3D is not being used. This hack disables rendering one of the eyes, which can result in performance improvements of up to 50% for some games
Certain games may experience graphical issues when using this hack. Try it everywhere and see what works!
You can use the stereoscopic side by side mode to check if the image for the right eye is being disabled, to verify the compatibility of the gameAdded a new option which enables all LLE modules required for online functionality | @PabloMK7
d5745ca
Support for encrypted applications has been dropped. Applications must now be dumped in a decrypted format to be used. | @PabloMK7Read more about the reasons behind this change in our related blog post: https://azahar-emu.org/blog/game-loading-changes
For historical reasons related to the origin of the extension, support for the
.3ds
file extension has been droppedAzahar now makes use of the.cci
extension, which is the true name of the format used by.3ds
files
You can still make use of ROMs with the.3ds
file extension by simply renaming the file to use the.cci
extension.
Read more about the reasons behind this change in our related blog post: https://azahar-emu.org/blog/game-loading-changesThe virtual 3DS now has a randomly generated MAC address | @PabloMK7This can be set based on the MAC address of your real 3DS or regenerated at any time via the settings menu
microprofile
is now disabled by default at compile time, saving a small amount of RAM | @PabloMK7 #651
Desktop
If the system is set to dark mode and the default Azahar theme is being used, white icons will now be used instead of the previous hard-to-see black-on-grey icons | @kleidis #623, @rtiangha #668
Windows
Fixed an issue where the Windows build would occasionally be unable to generate file paths | @PabloMK7 #588
Android
Fixed a bug which could sometimes cause renaming files to fail | @PabloMK7
d5745ca
Fixed issues relating to configuration data not being saved correctly | @PabloMK7
d5745ca
Made AM title scanning asynchronous, resulting in significantly faster game boot times under most circumstances | @PabloMK7
d5745ca
Made certain AM functions asynchronous, which helps to prevent some unnecessary stuttering while games are running | @PabloMK7
d5745ca
Fixed an issue relating to the SOC service which could cause crashes | @PabloMK7
d5745ca
Technical
The CMake option previously known as
ENABLE_DEDICATED_ROOM
has been renamed toENABLE_ROOM
| @OpenSauce0456e96de
A new CMake option,
ENABLE_NATIVE_OPTIMIZATION
, has been added which enables-march=native
for the C and C++ compilers if supported | @OpenSauce04c024933
See here for more information on what that means: https://wiki.gentoo.org/wiki/GCC_optimization#cpu-typeA new CMake option,
ENABLE_MICROPROFILE
, has been added which enables the now-disabled-by-defaultmicroprofile
Various external dependencies have been updated | @OpenSauce04 #615 #616
None more to add...