top of page
loading_reduced.jpg

2121.1 / 08-05-2025

Azahar

Accuracy

Performance

Features

No ratings yet
No ratings yet
No ratings yet
competition

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

AzaharPlus 

  • 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--

  • Redownloading owned DLCs is now supported. | @PabloMK7 #950

  • 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 main azahar executable, accessable by passing the new --room command line option. | @OpenSauce04 #873

  • The 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 #977

  • Fixed 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


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 1e8cc02This 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 #606

  • Fixed 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 1d562cdThis 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 #814

  • Fixed 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-changes

  • If 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 758ded7The 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 game

  • Added 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-changes

  • The 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


Show Previous Changes

None more to add...


bottom of page