Azahar

GamesDesktopAndroid

A Nintendo 3DS emulator continuing from Citra, built by former Citra developers.

Latest 2126.0 · · Desktop · Androidby AzaharWebsiteazahar-emu/azahar

Release activity

Release activity — 11 releases across 11 days since Apr 14, 2026. Each cell is one day; darker means more releases that day. Nothing is recorded before Apr 14, 2026. Older weeks are hidden at this screen width.
MayJunJulAug
SundayNo releases on Apr 26, 2026No releases on May 3, 2026No releases on May 10, 2026No releases on May 17, 2026No releases on May 24, 2026No releases on May 31, 2026No releases on Jun 7, 2026No releases on Jun 14, 2026No releases on Jun 21, 2026No releases on Jun 28, 2026No releases on Jul 5, 2026No releases on Jul 12, 2026No releases on Jul 19, 2026No releases on Jul 26, 2026No releases on Aug 2, 2026No releases on Aug 9, 2026
MondayNo releases on Apr 27, 2026No releases on May 4, 2026No releases on May 11, 2026No releases on May 18, 2026No releases on May 25, 2026No releases on Jun 1, 2026No releases on Jun 8, 2026No releases on Jun 15, 2026No releases on Jun 22, 20261 release on Jun 29, 2026No releases on Jul 6, 2026No releases on Jul 13, 2026No releases on Jul 20, 2026No releases on Jul 27, 2026No releases on Aug 3, 20261 release on Aug 10, 2026
TuesdayNo releases on Apr 28, 2026No releases on May 5, 2026No releases on May 12, 2026No releases on May 19, 2026No releases on May 26, 2026No releases on Jun 2, 2026No releases on Jun 9, 2026No releases on Jun 16, 2026No releases on Jun 23, 2026No releases on Jun 30, 2026No releases on Jul 7, 20261 release on Jul 14, 2026No releases on Jul 21, 20261 release on Jul 28, 2026No releases on Aug 4, 2026No releases on Aug 11, 2026
WednesdayNo releases on Apr 29, 2026No releases on May 6, 2026No releases on May 13, 2026No releases on May 20, 2026No releases on May 27, 2026No releases on Jun 3, 2026No releases on Jun 10, 20261 release on Jun 17, 2026No releases on Jun 24, 2026No releases on Jul 1, 2026No releases on Jul 8, 2026No releases on Jul 15, 2026No releases on Jul 22, 2026No releases on Jul 29, 2026No releases on Aug 5, 2026
ThursdayNo releases on Apr 30, 2026No releases on May 7, 20261 release on May 14, 2026No releases on May 21, 2026No releases on May 28, 2026No releases on Jun 4, 2026No releases on Jun 11, 2026No releases on Jun 18, 2026No releases on Jun 25, 2026No releases on Jul 2, 2026No releases on Jul 9, 2026No releases on Jul 16, 2026No releases on Jul 23, 2026No releases on Jul 30, 2026No releases on Aug 6, 2026
FridayNo releases on May 1, 2026No releases on May 8, 2026No releases on May 15, 2026No releases on May 22, 2026No releases on May 29, 2026No releases on Jun 5, 2026No releases on Jun 12, 2026No releases on Jun 19, 2026No releases on Jun 26, 2026No releases on Jul 3, 2026No releases on Jul 10, 2026No releases on Jul 17, 2026No releases on Jul 24, 2026No releases on Jul 31, 2026No releases on Aug 7, 2026
SaturdayNo releases on May 2, 2026No releases on May 9, 20261 release on May 16, 2026No releases on May 23, 2026No releases on May 30, 2026No releases on Jun 6, 2026No releases on Jun 13, 2026No releases on Jun 20, 2026No releases on Jun 27, 2026No releases on Jul 4, 20261 release on Jul 11, 2026No releases on Jul 18, 20261 release on Jul 25, 2026No releases on Aug 1, 2026No releases on Aug 8, 2026

11 releases since Apr 14, 2026

Patch notes

2126.0

Azahar 2126.0

Added 4
  • Added a setting to skip presenting duplicate frames, which is enabled by default
  • Added a new option to toggle whether the emulated 3DS system thinks headphones are plugged in
  • Implemented APT:MapProgramIdForDebug
  • Added an API to allow applications to register and unregister URL replacements
Changed 7
  • Improved GPU interrupt queue and GPU timing emulation with a new experimental feature that can be toggled in graphics settings as 'Simulate 3DS GPU timings'
  • Completely revamped the implementation of GDB functionality with numerous debugging improvements and new debugging features
  • Refactored how filesystem access is handled for special files in preparation for future changes
  • In multiplayer rooms, users' usernames are now pulled directly from the username set in the System tab instead of being a separate option
  • Adjusted rom loading error messages to be more easily understandable and user-friendly
  • LG2/EX2 subroutine functions are now only emitted for shaders when necessary, reducing memory usage
  • Migrated many non-English language translations to simplified language codes for more consistent system language detection
Fixed 9
  • Fixed compressed 3DSX files with an embedded RomFS failing to load properly
  • Fixed an issue where screenshots could have their colour channels swapped on certain platforms and system configurations
  • Fixed a crash which could occur when an application submits a vertex array with an invalid base address
  • Fixed an issue where certain older homebrew software would get stuck on a black screen at boot
  • Fixed an issue related to disabled cubemap texture units
  • Adjusted the unimplemented gas stub behaviour for the Vulkan renderer, fixing a graphical issue in Monster Hunter games
Known Issue Notice

There is a minor known issue in the new MXE build for Windows where frame pacing may be slightly inconsistent. A potential fix for this issue has already been implemented, but requires additional testing. This fix will be included in the 2126.1 update.

Most users likely won't notice this issue, so use of the MXE build is still encouraged. The MXE build will replace the MSYS2 build in 2127.0.

Thank you for your understanding.


Azahar 2126.0 Changelog

All

  • Improved GPU interrupt queue & GPU timing emulation. This feature is highly experimental and is disabled by default, the toggle for it can be found in the graphics settings: "Simulate 3DS GPU timings". | @PabloMK7 #2095, #2145
    • This change improves emulation accuracy by more closely mirroring the behaviour of real hardware.
      • This PR is known to fix GPU timing issues in Luigi's Mansion 2: Dark Moon, which is now made playable without use of the "delay render thread" option, but likely impacts many other games as well.
    • This PR also introduces a fix for an issue in Super Mario 3D Land which would prevent users from loading a save file after completing the game.
    • This is a big change behind the scenes, and may inadvertently introduce issues due to its large scope. Please report any issues which may have been introduced by the new behaviour.
    • Games that use dynamic FPS and don't reach 60 FPS on real hardware will also not reach 60 FPS on Azahar with this feature enabled.
    • The PR description contains an in-depth technical explanation of the changes.
  • Completely revamped the implementation of GDB functionality, with numerous debugging improvements and new debugging features. | @PabloMK7 #2086
    • The PR description for this change goes into extensive detail about the changes, so read there for more information if curious.
  • Refactored how filesystem access is handled for special files (such as Z3DS files), in preparation for changes coming in Azahar 2127. | @PabloMK7 #2352
    • Fixes compressed 3DSX files (.z3dsx) with an embedded RomFS failing to load properly.
    • Users should not expect any visible changes as this is only an internal restructuring of the code. If that is not the case please consider filing a bug report.
    • NOTE: Due to internal changes on how system files are stored, system files set up on Azahar 2126 or newer will become incompatible with older Azahar versions. On the other hand, system files set up on versions older than Azahar 2126 will remain backwards compatible for the foreseeable future.
    • More details on why this change is neccessary can be found in the pull request.
  • Fixed an issue where screenshots produced by Azahar could have their colour channels swapped on certain platforms and system configurations. | @mal-cap #2170
  • Added a setting to skip presenting duplicate frames, which is enabled by default. | @KojoZero #1867
    • This makes frame generation software work properly with Azahar.
  • Added a new option which allows users to toggle whether the emulated 3DS system thinks headphones are plugged in. | @PabloMK7 #2099
    • A very small number of games have altered behaviour when using wired headphones. For example, when headphones are plugged in while playing Super Mario 3D Land, the audio playback is slightly altered.
  • In multiplayer rooms, users' usernames are now pulled directly from the username set in the System tab in Azahar's settings instead of being a separate option.
  • Fixed a crash which could occur when an application submits a vertex array with an invalid base address. | @PabloMK7 #2299
    • Known to fix a crash in the credits of Mario & Luigi: Superstar Saga. May fix other problems elsewhere.
  • Adjusted rom loading error messages displayed to users to be more easily understandable and user-friendly. | @PabloMK7 #2097
  • LG2/EX2 subroutine functions are now only emitted for shaders when necessary, instead of for every shader, reducing memory usage. | @Wunkolo #2046
  • Fixed an issue where certain older homebrew software would get stuck on a black screen at boot. | @Masamune3210 #2143
  • Migrated many of our non-English language translations to simplified language codes, allowing correct system languages to be detected more consistently. | @OpenSauce04 #2152
  • Fixed an issue related to disabled cubemap texture units; known fixes in Brain Age: Concentration Training. | @Wunkolo #2159
  • Adjusted the unimplemented gas stub behaviour for the Vulkan renderer, fixing a known graphical issue in the Monster Hunter games. | @RedBlackAka #2165
  • Fixed a typo in a settings log message. | @72374 #2076
  • Fixed a possible integer overflow issue relating to custom Luma3DS mapping + optimized implementation. | @0x48kirenh #2202
  • Implemented APT:MapProgramIdForDebug. | @PabloMK7 #2224
  • Fixed handling of APT communication between applications. | @DaniElectra #2225
    • This fixes an issue in the Miiverse posting applet.
  • Fixed behaviour of HTTPC:GetRequestState when the request still has pending post data. | @PabloMK7 #2234
    • This fixes the miiverse applet not being able to upload posts due to incorrect behaviour.
  • Added an API to allow applications to register and unregister URL replacements. Pretendo Network Nimbus now uses this to submit rules for URL replacement. | @PabloMK7 #2234
  • Fixed a crash on color fill when using the Vulkan Renderer. | @capito27 #2241
  • Disabled PICA debug functionality on all platforms, with it now being a configurable option. | @PabloMK7 #2254
  • Fixed an issue related to fill surface downloading, which could cause graphical bugs in some edge cases. | @PabloMK7 #2270
  • Implemented APT::GetAppletProgramInfo. | @PabloMK7 #2272
    • Known to be used by Miiverse, but is also likely used elsewhere.
  • Improved the accuracy of emulated CPU timings, fixing potential timing-related bugs. | @ApfelTeeSaft #2262
    • Known to fix a softlock issue in Lego City Undercover: The Chase Begins, possibly fixes other issues elsewhere.
  • Fixed an issue which would corrupt the suspended application framembuffer in some cases.
    • This prevented users from posting images to Miiverse, which is now fixed. | @PabloMK7 #2272
  • Improvements to the accuracy of the GSP service, fixing issues relating to suspending applications, posting to Miiverse, and Donkey Kong Country Returns. | @PabloMK7 #2273
    • Likely addresses other unknown issues elsewhere.
  • Replaced various URLs which previously linked to archived Citra website pages to instead point to the Azahar wiki. | @RedBlackAka #1881
  • When using multiplayer rooms, it is now possible to set "No Preference" as the preferred game. | @PabloMK7 #2296
  • Fixed an issue where auto-mapping could behave incorrectly with some controllers. | @DavidRGriswold #2317
  • Assorted minor fixes relating to analog input. | @DavidRGriswold #2348

Android

  • Added multiplayer room functionality. | Kleidis, @rtiangha, @Gamer64ytb, @weihuoya, @PabloMK7 #830
    • This change includes most of the multiplayer functionality found in the desktop version of Azahar.
      • Public room browsing, private room creation, private room joining and chat are implemented.
      • Public room creation and some minor UI features, such as room descriptions or currently playing applications, are not yet implemented.
    • This feature does NOT implement communication with real consoles nor direct connect between Android devices in near proximity.
      • Android devices need to be connected to the same Wifi network to be able to play together (or use the Android built-in hotspot or wifi sharing functionality).
    • Public room browsing is possible as long as the user provides an unofficial web API URL in the new network settings. Official public rooms are still not provided by Azahar.
  • On devices where ANGLE is used for OpenGL rendering, the Vulkan renderer is forcefully enabled due to extremely apparent visual defects when using the OpenGL renderer with ANGLE. | @OpenSauce04 #2197
    • You can tell if your device is affected by checking the renderer selection option in Azahar's settings. It will be greyed out and will display a message related to ANGLE when selected if you are using an ANGLE-enabled device.
    • Most devices will not yet be affected, however on and after Android 17's release, ANGLE will become enabled by default and mandatory for all newly released devices (not necessarily devices updating to Android 17 from an earlier version).
  • Fixed an issue where attempting to access files in the Download directory (e.g. CIA files) could sometimes fail after performing certain actions. | @OpenSauce04 #2385
  • Added a new "Combo Button" to the on-screen controller overlay which presses multiple buttons at the same time when pressed. @ADAS2024 #1244 #2266
    • The buttons activated when the Combo Button is selected can be configured from the settings.
    • This button is hidden by default, and must be toggled on in the overlay options.
  • Assorted improvements and new options relating to secondary screen functionality. | @DavidRGriswold #1385
  • Fixed several issues related to the "Adjust Scale" menu. | @OpenSauce04 #2256

Android (vanilla)

  • Added an in-app toggleable update checker which runs when Azahar starts, functioning the same way as the desktop version. | @OpenSauce04 #2265

Desktop

  • Implemented a CLI (command line interface) for Azahar's compression functionality via the new -c and -x options. | @OpenSauce04 #2084
    • See azahar --help for more info.
  • Various improvements to controller integration with Azahar's desktop frontend, including controller hotkeys. | @DavidRGriswold #1717
  • Fixed some hotkeys not working correctly when using the Separate Windows screen layout. | @DavidRGriswold #1967
  • After uninstalling an app, update or DLC, the game list is now refreshed. | @andrey545454 #2237
  • Adjusted "Open Azahar Folder" menubar option to now include variants "NAND Folder" and "SDMC Folder". | @PabloMK7 #2279
  • Fixed the Outer Right Camera setting incorrectly reading its value from the Inner Camera Flip setting. | @PabloMK7 #2303
  • Fixed an issue related to clearing bindings for hotkeys bound to controllers. | @DavidRGriswold #2325
  • Slightly adjusted tooltip for "Disable Right Eye Rendering" setting for increased clarity. | @72374 #2284

Windows

  • Introduced the new "MXE" build variant previously discussed in an announcement on our Discord server. | @OpenSauce04 #2044
    • This new variant will serve as the replacement for the now-deprecated MSYS2 variant, which, as also previously discussed in the above post, will be removed in the 2127.0 update.
    • Users will be able to migrate from MSYS2 to MXE seamlessly, so existing MSYS2 users have no cause for concern.
    • For more information about this build, please read the aforementioned announcement post.
  • Fixed a long-standing issue where Azahar's detection of the system language could be incorrect, resulting in an unexpected language being used in the UI. | @exertustfm #1558
  • Many default messages in the user interface provided by upstream Qt (OK, Cancel, etc) are now translated for most languages. | @OpenSauce04 #2153
    • For the following languages, these UI strings currently remain untranslated as before due to no translation being available for use in upstream Qt:
      • Greek, Indonesian, Norwegian Bokmål, Lithuanian, Romania, Vietnamese

macOS

  • Fixed an issue where SDMC filenames which contain unicode characters could appear and behave partially corrupted within emulated applications. | @RigleGit #2079
  • Fixed several minor issues relating to MoltenVK/Metal. | @sergeymild #2149

Linux

  • Fixed an issue where analog inputs for certain controllers could be incorrectly centered. | @DavidRGriswold #2328
    • This fixes an issue on the Steam Deck where the L and R triggers were stuck pressed down. May also fix issues with other controllers.

Docker

  • Distribute an ARM64 Docker image binary. | @OpenSauce04 #2151

Technical

  • The USE_DISCORD_PRESENCE CMake option has been renamed to ENABLE_DISCORD_RPC. Downstream users/maintainers should compensate for this accordingly. | @OpenSauce04 #2216
  • The ENABLE_QT_TRANSLATION CMake option is now enabled by default, adding qt6-tools-dev or your package manager's equivalent as a new default build dependency for the Qt frontend if you weren't already manually enabling this flag. | @OpenSauce04 #2206
  • Fixed linker warning spam related to the minimum macOS version when Discord RPC was enabled. | @OpenSauce04 #2216
    • This issue has existed for a very long time, and doesn't seem to have ever caused any actual issues. This is just a technical correctness thing.
  • Fixed a compilation failure which could manifest when a system MoltenVK install was present, even if it wasn't being used. | @crueter #2183
  • Fixed a compilation error when building in debug mode. | @Wunkolo #2132
  • Fixed an issue which prevented the azahar-room Dockerfile from building with Podman. | @OpenSauce04 #2151
  • Added debug scopes to OpenGL renderer rasterizer and texture runtime. | @Wunkolo #2133
  • Extensive Kotlin codebase formatting cleanup + new formatting/style enforcement in CI via ktlint. | @OpenSauce04 #2204
  • Fixed building with OpenAL enabled on OpenBSD. | @OpenSauce04 #2058
  • Fixed an inability to generate translation source files in modern build environments due to an outdated qt_add_lupdate call. | @OpenSauce04 #2071
  • Updated NDK and AGP to more recent versions. | @OpenSauce04 #2068
  • Fixed a compilation issue when building with MSYS2 due to upstream package changes. | @PabloMK7 #2236
  • Fixed a potential build failure due to a missing include. | @asyync1024 #2232
  • Fixed a build failure when attempting to build the libretro core with MSVC due to a malformed switch case. | @XenuIsWatching #2267
  • Updated NDK used to build Android libretro core to r27d. | @cscd98 #2298
  • Changed all internal references to azahar_libretro to instead refer to citra_libretro to follow pre-existing project convention. | @OpenSauce04 #2304
    • The compiled library filename remains unchanged: azahar_libretro.*.
  • Azahar's build process now recognizes the new environment variable CITRA_USE_TAG_AS_VERSION, which, when defined, sets the Azahar version string to the output of: git describe --tags --dirty. | @OpenSauce04 #2302
View originalPermalink
How 2126.0 went
2126.0-rc5Pre-release

Azahar 2126.0 Release Candidate 5

Changed 1
  • Refactor how filesystem access is handled for special files such as Z3DS files in preparation for changes in Azahar 2127
Fixed 2
  • Fix compressed 3DSX files (.z3dsx) with an embedded RomFS failing to load properly
  • Fix an issue where the "Old 3DS setup" and "New 3DS setup" labels were erroneously swapped in the Set Up System Files menu

[!NOTE] This changelog is relative to 2126.0-rc4. You can find the previous changelog here.


Azahar 2126.0-rc5 Changelog

All

  • Refactored how filesystem access is handled for special files (such as Z3DS files), in preparation for changes coming in Azahar 2127. | @PabloMK7 #2352
    • Fixes compressed 3DSX files (.z3dsx) with an embedded RomFS failing to load properly.
    • Users should not expect any visible changes as this is only an internal restructuring of the code. If that is not the case please consider filing a bug report.
    • NOTE: Due to internal changes on how system files are stored, system files set up on Azahar 2126 or newer will become incompatible with older Azahar versions. On the other hand, system files set up on versions older than Azahar 2126 will remain backwards compatible for the foreseeable future.
    • More details on why this change is neccessary can be found in the pull request.

Desktop

  • Fixed an issue where the "Old 3DS setup" and "New 3DS setup" labels were erroneously swapped in the Set Up System Files menu. | @OpenSauce04 #2351
View originalPermalink
How 2126.0-rc5 went
2126.0-rc4Pre-release

Azahar 2126.0 Release Candidate 4

Changed 1
  • Slightly adjusted tooltip for "Disable Right Eye Rendering" setting for increased clarity
Fixed 7
  • Fixed a crash which could occur when using a controller which has a physical touchpad (e.g. PlayStation controller)
  • Fixed an issue where having a PS4/PS5 controller connected could cause Azahar to hang when launched
  • Fixed an issue where auto-mapping could behave incorrectly with some controllers
  • Fixed assorted minor issues relating to analog input
  • Fixed an issue where analog inputs for certain controllers could be incorrectly centered, fixing an issue on the Steam Deck where the L and R triggers were stuck pressed down
  • Fixed an issue relating to clearing bindings for hotkeys bound to controllers
  • Fixed a typo in the multiplayer room join message

[!NOTE] This changelog is relative to 2126.0-rc3. You can find the previous changelog here.


Azahar 2126.0-rc4 Changelog

All

  • Fixed a crash which could occur when using a controller which has a physical touchpad (e.g. PlayStation controller). | @DavidRGriswold #2314 #2346
  • Fixed an issue where having a PS4/PS5 controller connected could cause Azahar to hang when launched. | @DavidRGriswold #2345
  • Fixed an issue where auto-mapping could behave incorrectly with some controllers. | @DavidRGriswold #2317
  • Assorted minor fixes relating to analog input. | @DavidRGriswold #2348

Linux

  • Fixed an issue where analog inputs for certain controllers could be incorrectly centered. | @DavidRGriswold #2328
    • This fixes an issue on the Steam Deck where the L and R triggers were stuck pressed down. May also fix issues with other controllers.

Desktop

  • Fixed an issue relating to clearing bindings for hotkeys bound to controllers. | @DavidRGriswold #2325
  • Slightly adjusted tooltip for "Disable Right Eye Rendering" setting for increased clarity. | @72374 #2284

Android

  • Fixed a typo in the multiplayer room join message. | @OpenSauce04 #2326
View originalPermalink
How 2126.0-rc4 went
2126.0-rc3Pre-release

Azahar 2126.0 Release Candidate 3

Added 2
  • When using multiplayer rooms, it is now possible to set "No Preference" as the preferred game
  • Azahar's build process now recognizes the new environment variable CITRA_USE_TAG_AS_VERSION, which when defined sets the Azahar version string to the output of git describe --tags --dirty
Changed 2
  • Updated NDK used to build Android libretro core to r27d
  • Changed all internal references to azahar_libretro to instead refer to citra_libretro to follow pre-existing project convention
Fixed 4
  • Fixed crashes when creating or joining private multiplayer rooms on Android when the preferred game option is left untouched
  • Fixed a crash which could occur when an application submits a vertex array with an invalid base address
  • Fixed a crash caused by a missing eShop applet title ID, affecting some applications
  • Fixed the Outer Right Camera setting incorrectly reading its value from the Inner Camera Flip setting

[!NOTE] This changelog is relative to 2126.0-rc2. For a more complete picture of what will be included in the 2126.0 update, see the previous changelog.


Azahar 2126.0-rc3 Changelog

All

  • When using multiplayer rooms, it is now possible to set "No Preference" as the preferred game. | @PabloMK7 #2296
    • Also fixes crashes when creating or joining private multiplayer rooms on Android when the preferred game option is left untouched.
  • Fixed a crash which could occur when an application submits a vertex array with an invalid base address. | @PabloMK7 #2299
    • Known to fix a crash in the credits of Mario & Luigi: Superstar Saga. May fix other problems elsewhere.
  • Fixed a crash caused by a missing eShop applet title ID, affecting some applications. | @PabloMK7 #2293

Desktop

  • Fixed the Outer Right Camera setting incorrectly reading its value from the Inner Camera Flip setting. | @PabloMK7 #2303

Technical

  • Updated NDK used to build Android libretro core to r27d. | @cscd98 #2298
  • Changed all internal references to azahar_libretro to instead refer to citra_libretro to follow pre-existing project convention. | @OpenSauce04 #2304
    • The compiled library filename remains unchanged: azahar_libretro.*.
  • Azahar's build process now recognizes the new environment variable CITRA_USE_TAG_AS_VERSION, which, when defined, sets the Azahar version string to the output of: git describe --tags --dirty. | @OpenSauce04 #2302
View originalPermalink
How 2126.0-rc3 went
2126.0-rc2Pre-release

Azahar 2126.0 Release Candidate 2

Added 4
  • Added a setting to skip presenting duplicate frames, which is enabled by default
  • Added a new option to toggle whether the emulated 3DS system thinks headphones are plugged in
  • Implemented APT:MapProgramIdForDebug
  • Added an API to allow applications to register and unregister URL replacements
Changed 7
  • Improved GPU interrupt queue and GPU timing emulation with a new experimental toggle in graphics settings called Simulate 3DS GPU timings
  • Completely revamped the implementation of GDB functionality with numerous debugging improvements and new debugging features
  • In multiplayer rooms, users' usernames are now pulled directly from the username set in the System tab in Azahar's settings
  • Adjusted rom loading error messages to be more easily understandable and user-friendly
  • LG2/EX2 subroutine functions are now only emitted for shaders when necessary, reducing memory usage
  • Migrated many non-English language translations to simplified language codes for more consistent system language detection
  • Disabled PICA debug functionality on all platforms with it now being a configurable option
Fixed 9
  • Fixed an issue where screenshots could have their colour channels swapped on certain platforms and system configurations
  • Fixed an issue where certain older homebrew software would get stuck on a black screen at boot
  • Fixed an issue related to disabled cubemap texture units
  • Adjusted the unimplemented gas stub behaviour for the Vulkan renderer, fixing a graphical issue in Monster Hunter games
  • Fixed a possible integer overflow issue relating to custom Luma3DS mapping
  • Fixed handling of APT communication between applications, fixing an issue in the Miiverse posting applet

[!NOTE] 2126.0-rc1 was reuploaded as 2126.0-rc2 to address a critical stability issue affecting the Android build.


Azahar 2126.0-rc2 Changelog

All

  • Improved GPU interrupt queue & GPU timing emulation. This feature is highly experimental and is disabled by default, the toggle for it can be found in the graphics settings: "Simulate 3DS GPU timings". | @PabloMK7 #2095, #2145
    • This change improves emulation accuracy by more closely mirroring the behaviour of real hardware.
      • This PR is known to fix GPU timing issues in Luigi's Mansion 2: Dark Moon, which is now made playable without use of the "delay render thread" option, but likely impacts many other games as well.
    • This PR also introduces a fix for an issue in Super Mario 3D Land which would prevent users from loading a save file after completing the game.
    • This is a big change behind the scenes, and may inadvertently introduce issues due to its large scope. Please report any issues which may have been introduced by the new behaviour.
    • Games that use dynamic FPS and don't reach 60 FPS on real hardware will also not reach 60 FPS on Azahar with this feature enabled.
    • The PR description contains an in-depth technical explanation of the changes.
  • Completely revamped the implementation of GDB functionality, with numerous debugging improvements and new debugging features. | @PabloMK7 #2086
    • The PR description for this change goes into extensive detail about the changes, so read there for more information if curious.
  • Fixed an issue where screenshots produced by Azahar could have their colour channels swapped on certain platforms and system configurations. | @mal-cap #2170
  • Added a setting to skip presenting duplicate frames, which is enabled by default. | @KojoZero #1867
    • This makes frame generation software work properly with Azahar.
  • Added a new option which allows users to toggle whether the emulated 3DS system thinks headphones are plugged in. | @PabloMK7 #2099
    • A very small number of games have altered behaviour when using wired headphones. For example, when headphones are plugged in while playing Super Mario 3D Land, the audio playback is slightly altered.
  • In multiplayer rooms, users' usernames are now pulled directly from the username set in the System tab in Azahar's settings instead of being a separate option.
  • Adjusted rom loading error messages displayed to users to be more easily understandable and user-friendly. | @PabloMK7 #2097
  • LG2/EX2 subroutine functions are now only emitted for shaders when necessary, instead of for every shader, reducing memory usage. | @Wunkolo #2046
  • Fixed an issue where certain older homebrew software would get stuck on a black screen at boot. | @Masamune3210 #2143
  • Migrated many of our non-English language translations to simplified language codes, allowing correct system languages to be detected more consistently. | @OpenSauce04 #2152
  • Fixed an issue related to disabled cubemap texture units; known fixes in Brain Age: Concentration Training. | @Wunkolo #2159
  • Adjusted the unimplemented gas stub behaviour for the Vulkan renderer, fixing a known graphical issue in the Monster Hunter games. | @RedBlackAka #2165
  • Fixed a typo in a settings log message. | @72374 #2076
  • Fixed a possible integer overflow issue relating to custom Luma3DS mapping + optimized implementation. | @0x48kirenh #2202
  • Implemented APT:MapProgramIdForDebug. | @PabloMK7 #2224
  • Fixed handling of APT communication between applications. | @DaniElectra #2225
    • This fixes an issue in the Miiverse posting applet.
  • Fixed behaviour of HTTPC:GetRequestState when the request still has pending post data. | @PabloMK7 #2234
    • This fixes the miiverse applet not being able to upload posts due to incorrect behaviour.
  • Added an API to allow applications to register and unregister URL replacements. Pretendo Network Nimbus now uses this to submit rules for URL replacement. | @PabloMK7 #2234
  • Fixed a crash on color fill when using the Vulkan Renderer. | @capito27 #2241
  • Disabled PICA debug functionality on all platforms, with it now being a configurable option. | @PabloMK7 #2254
  • Fixed an issue related to fill surface downloading, which could cause graphical bugs in come edge cases. | @PabloMK7 #2270
  • Implemented APT::GetAppletProgramInfo. | @PabloMK7 #2272
    • Known to be used by Miiverse, but is also likely used elsewhere.
  • Improved the accuracy of emulated CPU timings, fixing potential timing-related bugs. | @ApfelTeeSaft #2262
    • Known to fix a softlock issue in Lego City Undercover: The Chase Begins, possibly fixes other issues elsewhere.
  • Fixed an issue which would corrupt the suspended application framembuffer in some cases.
    • This prevented users from posting images to Miiverse, which is now fixed. | @PabloMK7 #2272
  • Improvements to the accuracy of the GSP service, fixing issues relating to suspending applications, posting to Miiverse, and Donkey Kong Country Returns. | @PabloMK7 #2273
    • Likely addresses other unknown issues elsewhere.
  • Replaced various URLs which previously linked to archived Citra website pages to instead point to the Azahar wiki. | @RedBlackAka #1881

Android

  • Added multiplayer room functionality. | Kleidis, @rtiangha, @Gamer64ytb, @weihuoya, @PabloMK7 #830
    • This change includes most of the multiplayer functionality found in the desktop version of Azahar.
      • Public room browsing, private room creation, private room joining and chat are implemented.
      • Public room creation and some minor UI features, such as room descriptions or currently playing applications, are not yet implemented.
    • This feature does NOT implement communication with real consoles nor direct connect between Android devices in near proximity.
      • Android devices need to be connected to the same Wifi network to be able to play together (or use the Android built-in hotspot or wifi sharing functionality).
    • Public room browsing is possible as long as the user provides an unofficial web API URL in the new network settings. Official public rooms are still not provided by Azahar.
  • On devices where ANGLE is used for OpenGL rendering, the Vulkan renderer is forcefully enabled due to extremely apparent visual defects when using the OpenGL renderer with ANGLE. | @OpenSauce04 #2197
    • You can tell if your device is affected by checking the renderer selection option in Azahar's settings. It will be greyed out and will display a message related to ANGLE when selected if you are using an ANGLE-enabled device.
    • Most devices will not yet be affected, however on and after Android 17's release, ANGLE will become enabled by default and mandatory for all newly released devices (not necessarily devices updating to Android 17 from an earlier version).
  • Added a new "Combo Button" to the on-screen controller overlay which presses multiple buttons at the same time when pressed. @ADAS2024 #1244 #2266
    • The buttons activated when the Combo Button is selected can be configured from the settings.
    • This button is hidden by default, and must be toggled on in the overlay options.
  • Assorted improvements and new options relating to secondary screen functionality. | @DavidRGriswold #1385
  • Fixed several issues related to the "Adjust Scale" menu. | @OpenSauce04 #2256

Android (vanilla)

  • Added an in-app toggleable update checker which runs when Azahar starts, functioning the same way as the desktop version. | @OpenSauce04 #2265

Desktop

  • Implemented a CLI (command line interface) for Azahar's compression functionality via the new -c and -x options. | @OpenSauce04 #2084
    • See azahar --help for more info.
  • Various improvements to controller integration with Azahar's desktop frontend, including controller hotkeys. | @DavidRGriswold #1717
  • Fixed some hotkeys not working correctly when using the Separate Windows screen layout. | @DavidRGriswold #1967
  • After uninstalling an app, update or DLC, the game list is now refreshed. | @andrey545454 #2237
  • Adjusted "Open Azahar Folder" menubar option to now include variants "NAND Folder" and "SDMC Folder". | @PabloMK7 #2279

Windows

  • Introduced the new "MXE" build variant previously discussed in an announcement on our Discord server. | @OpenSauce04 #2044
    • This new variant will serve as the replacement for the now-deprecated MSYS2 variant, which, as also previously discussed in the above post, will be removed in the 2127.0 update.
    • Users will be able to migrate from MSYS2 to MXE seamlessly, so existing MSYS2 users have no cause for concern.
    • For more information about this build, please read the aforementioned announcement post.
  • Fixed a long-standing issue where Azahar's detection of the system language could be incorrect, resulting in an unexpected language being used in the UI. | @exertustfm #1558
  • Many default messages in the user interface provided by upstream Qt (OK, Cancel, etc) are now translated for most languages. | @OpenSauce04 #2153
    • For the following languages, these UI strings currently remain untranslated as before due to no translation being available for use in upstream Qt:
      • Greek, Indonesian, Norwegian Bokmål, Lithuanian, Romania, Vietnamese

macOS

  • Fixed an issue where SDMC filenames which contain unicode characters could appear and behave partially corrupted within emulated applications. | @RigleGit #2079
  • Fixed several minor issues relating to MoltenVK/Metal. | @sergeymild #2149

Docker

  • Distribute an ARM64 Docker image binary. | @OpenSauce04 #2151

Technical

  • The USE_DISCORD_PRESENCE CMake option has been renamed to ENABLE_DISCORD_RPC. Downstream users/maintainers should compensate for this accordingly. | @OpenSauce04 #2216
  • The ENABLE_QT_TRANSLATION CMake option is now enabled by default, adding qt6-tools-dev or your package manager's equivalent as a new default build dependency for the Qt frontend if you weren't already manually enabling this flag. | @OpenSauce04 #2206
  • Fixed linker warning spam related to the minimum macOS version when Discord RPC was enabled. | @OpenSauce04 #2216
    • This issue has existed for a very long time, and doesn't seem to have ever caused any actual issues. This is just a technical correctness thing.
  • Fixed a compilation failure which could manifest when a system MoltenVK install was present, even if it wasn't being used. | @crueter #2183
  • Fixed a compilation error when building in debug mode. | @Wunkolo #2132
  • Fixed an issue which prevented the azahar-room Dockerfile from building with Podman. | @OpenSauce04 #2151
  • Added debug scopes to OpenGL renderer rasterizer and texture runtime. | @Wunkolo #2133
  • Extensive Kotlin codebase formatting cleanup + new formatting/style enforcement in CI via ktlint. | @OpenSauce04 #2204
  • Fixed building with OpenAL enabled on OpenBSD. | @OpenSauce04 #2058
  • Fixed an inability to generate translation source files in modern build environments due to an outdated qt_add_lupdate call. | @OpenSauce04 #2071
  • Updated NDK and AGP to more recent versions. | @OpenSauce04 #2068
  • Fixed a compilation issue when building with MSYS2 due to upstream package changes. | @PabloMK7 #2236
  • Fixed a potential build failure due to a missing include. | @asyync1024 #2232
  • Fixed a build failure when attempting to build the libretro core with MSVC due to a malformed switch case. | @XenuIsWatching #2267
View originalPermalink
How 2126.0-rc2 went
2125.1.3

Azahar 2125.1.3

Fixed 3
  • Fixed an issue where Azahar could instantly freeze on boot depending on certain factors such as OS version and Azahar user data content on macOS
  • Backported a fix for linker warnings when building with Discord rich presence on macOS
  • Introduced changes to dynarmic which fix a build issue introduced by MSYS2 package updates

This is an unscheduled release which almost exclusively addresses issues in the macOS version of Azahar. Primarily, it fixes an issue experienced by many users where Azahar could potentially freeze when opened.

This issue didn't affect all users, and whether or not it appeared was dependent on multiple factors such as the macOS version being run and the macOS version Azahar was built with, and the current state of the user's Azahar directory. Because of this, it took some time to determine the root cause of the issue. Apologies for any inconvenience this may have caused for any affected users.


Azahar 2125.1.3 Changelog

macOS

  • Fixed an issue where Azahar could instantly freeze on boot depending on certain factors such as OS version and Azahar user data content. | @OpenSauce04 #2244

Technical

  • Backported a fix for linker warnings when building with Discord rich presence on macOS, first introduced in 2126.0 Alpha 2. | @OpenSauce04 #2216
    • The CMake option name change introduced in that PR has not been backported.
  • Introduced changes to dynarmic which fix a build issue introduced by MSYS2 package updates. | @PabloMK7 #2236
View originalPermalink
How 2125.1.3 went
2126.0-alpha2Pre-release

Azahar 2126.0 Alpha 2

Added 2
  • Distribute an ARM64 Docker image binary
  • Added debug scopes to OpenGL renderer rasterizer and texture runtime
Changed 7
  • Translated many default Qt messages (OK, Cancel, etc) for most languages
  • Forcefully enable Vulkan renderer on Android devices using ANGLE for OpenGL rendering due to visual defects
  • Added improvements and new options relating to secondary screen functionality on Android
  • Migrated non-English language translations to simplified language codes for more consistent system language detection
  • Additional refinements relating to the new GDB implementation
  • Renamed CMake option USE_DISCORD_PRESENCE to ENABLE_DISCORD_RPC
  • Enabled ENABLE_QT_TRANSLATION CMake option by default, adding qt6-tools-dev as a new default build dependency
Fixed 11
  • Fixed incorrect system language detection in Azahar resulting in unexpected UI language
  • Fixed an issue where certain older homebrew software would get stuck on a black screen at boot
  • Fixed an issue related to disabled cubemap texture units in Brain Age: Concentration Training
  • Adjusted unimplemented gas stub behaviour for Vulkan renderer, fixing graphical issues in Monster Hunter games
  • Fixed a typo in a settings log message
  • Fixed a possible integer overflow issue relating to custom Luma3DS mapping and optimized implementation

As an alpha release, this build is not yet considered stable.

This prerelease is intended for users to test upcoming features, allowing the community to provide feedback before they are distributed in a stable release. Users interested in testing bleeding-edge software are encouraged to test out this build to help us catch any issues we may have missed during development.

If you are unwilling to tolerate potential issues, it may be better to wait for the next stable release.


This changelog is relative to the changelog for 2126.0 Alpha 1. You can read that changelog here: https://github.com/azahar-emu/azahar/releases/tag/2126.0-alpha1


Azahar 2126.0-alpha2 Changelog

Desktop

  • Fixed a long-standing issue where Azahar's detection of the system language could be incorrect, resulting in an unexpected language being used in the UI. | @exertustfm #1558
  • Many default messages in the user interface provided by upstream Qt (OK, Cancel, etc) are now translated for most languages. | @OpenSauce04 #2153
    • For the following languages, these UI strings currently remain untranslated as before due to no translation being available for use in upstream Qt:
      • Greek, Indonesian, Norwegian Bokmål, Lithuanian, Romania, Vietnamese

Android

  • On devices where ANGLE is used for OpenGL rendering, the Vulkan renderer is forcefully enabled due to extremely apparent visual defects when using the OpenGL renderer with ANGLE. | @OpenSauce04 #2197
    • You can tell if your device is affected by checking the renderer selection option in Azahar's settings. It will be greyed out and will display a message related to ANGLE when selected if you are using an ANGLE-enabled device.
    • Most devices will not yet be affected, however on and after Android 17's release, ANGLE will become enabled by default and mandatory for all newly released devices (not necessarily devices updating to Android 17 from an earlier version).
  • Assorted improvements and new options relating to secondary screen functionality. | @DavidRGriswold #1385

All

  • Fixed an issue where certain older homebrew software would get stuck on a black screen at boot. | @Masamune3210 #2143
  • Migrated many of our non-English language translations to simplified language codes, allowing correct system languages to be detected more consistently. | @OpenSauce04 #2152
  • Fixed an issue related to disabled cubemap texture units; known fixes in Brain Age: Concentration Training. | @Wunkolo #2159
  • Adjusted the unimplemented gas stub behaviour for the Vulkan renderer, fixing a known graphical issue in the Monster Hunter games. | @RedBlackAka #2165
  • Fixed a typo in a settings log message. | @72374 #2076
  • Additional refinements relating to the new GDB implementation. | @PabloMK7 #2145
  • Fixed a possible integer overflow issue relating to custom Luma3DS mapping + optimized implementation. | @0x48kirenh #2202

Docker

  • Distribute an ARM64 Docker image binary. | @OpenSauce04 #2151

macOS

  • Fixed several minor issues relating to MoltenVK/Metal. | @sergeymild #2149

Technical

  • The USE_DISCORD_PRESENCE CMake option has been renamed to ENABLE_DISCORD_RPC. Downstream users/maintainers should compensate for this accordingly. | @OpenSauce04 #2216
  • The ENABLE_QT_TRANSLATION CMake option is now enabled by default, adding qt6-tools-dev or your package manager's equivalent as a new default build dependency for the Qt frontend if you weren't already manually enabling this flag. | @OpenSauce04 #2206
  • Fixed linker warning spam related to the minimum macOS version when Discord RPC was enabled. | @OpenSauce04 #2216
    • This issue has existed for a very long time, and doesn't seem to have ever caused any actual issues. This is likely just a technical correctness thing.
  • Fixed a compilation failure which could manifest when a system MoltenVK install was present, even if it wasn't being used. | @crueter #2183
  • Fixed a compilation error when building in debug mode. | @Wunkolo #2132
  • Fixed an issue which prevented the azahar-room Dockerfile from building with Podman. | @OpenSauce04 #2151
  • Added debug scopes to OpenGL renderer rasterizer and texture runtime. | @Wunkolo #2133
  • Extensive Kotlin codebase formatting cleanup + new formatting/style enforcement in CI via ktlint. | @OpenSauce04 #2204
View originalPermalink
How 2126.0-alpha2 went
2126.0-alpha1Pre-release

Azahar 2126.0 Alpha 1

Added 4
  • Introduce new MXE build variant for Windows as replacement for the MSYS2 variant
  • Implement CLI for compression functionality via new -c and -x options
  • Add option to toggle whether the emulated 3DS system thinks headphones are plugged in
  • Implement GPU interrupt queue and GPU timing emulation to improve emulation accuracy
Changed 4
  • Completely revamp the implementation of GDB functionality with numerous debugging improvements and new features
  • Adjust how emulator error messages are displayed to be more easily understandable and user-friendly
  • Emit LG2/EX2 subroutine functions for shaders only when necessary instead of for every shader to reduce memory usage
  • Update NDK and AGP to more recent versions
Fixed 5
  • Fix an issue in Super Mario 3D Land which would prevent users from loading a save file after completing the game
  • Fix GPU timing issues in Luigi's Mansion 2/Dark Moon
  • Fix an issue where SDMC filenames containing unicode characters could appear and behave partially corrupted within emulated 3DS applications on macOS
  • Fix building with OpenAL enabled on OpenBSD
  • Fix an inability to generate translation source files in modern build environments due to an outdated qt_add_lupdate call
Deprecated 1
  • Deprecate MSYS2 build variant, to be removed in 2127.0 update

As an alpha release, this build is not yet considered stable.

This prerelease is intended for users to test upcoming features, allowing the community to provide feedback before they are distributed in a stable release. Users interested in testing bleeding-edge software are encouraged to test out this build to help us catch any issues we may have missed during development.

If you are unwilling to tolerate potential issues, it may be better to wait for the next stable release.


Azahar 2126.0-alpha1 Changelog

Windows

  • Introduced the new "MXE" build variant previously discussed in an announcement on our Discord server. | @OpenSauce04 #2044
    • This new variant will serve as the replacement for the now-deprecated MSYS2 variant, which, as also previously discussed in the above post, will be removed in the 2127.0 update.
    • Users will be able to migrate from MSYS2 to MXE seamlessly, so existing MSYS2 users have no cause for concern.
    • For more information about this build, please read the aforementioned announcement post.

Desktop

  • Implemented a CLI (command line interface) for Azahar's compression functionality via the new -c and -x options. | @OpenSauce04 #2084
    • See azahar --help for more info.

All

  • Completely revamped the implementation of GDB functionality, with numerous debugging improvements and new debugging features. | @PabloMK7 #2086
    • The PR description for this change goes into extensive detail about the changes, so read there for more information if curious.
  • Implemented GPU interrupt queue & GPU timing emulation. | @PabloMK7 #2095
    • This change improves emulation accuracy by more closely mirroring the behaviour of real hardware.
      • This PR is known to fix GPU timing issues in Luigi's Mansion 2/Dark Moon, which is now made playable without use of the "delay render thread" option with this change, but likely impacts many other games as well.
    • This PR also introduces a fix for an issue in Super Mario 3D Land which would prevent users from loading a save file after completing the game.
    • This is big change behind the scenes, and may inadvertently introduce issues due to its large scope. If an issue appears in a game where it didn't exist before, the new behaviour can be toggled off by disabling the newly added "Simulate 3DS GPU timings" setting to see if this is the cause. Please report any issues which may have been introduced by the new behaviour accordingly.
    • The PR description contains an in-depth technical explanation of the changes.
  • Added a new option which allows users to toggle whether the emulated 3DS system thinks headphones are plugged in. | @PabloMK7 #2099
    • A very small number of games have altered behaviour when using wired headphones. For example, when headphones are plugged in while playing Super Mario 3D Land, the audio playback is slightly altered.
  • Adjusted how emulator error messages are displayed to users to be more easily understandable and user-friendly. | @PabloMK7 #2097
  • LG2/EX2 subroutine functions are now only emitted for shaders when necessary, instead of for every shader, reducing memory usage. | @Wunkolo #2046

macOS

  • Fixed an issue where SDMC filenames which contain unicode characters could appear and behave partially corrupted within emulated 3DS applications. | @RigleGit #2079

Technical

  • Fixed building with OpenAL enabled on OpenBSD. | @OpenSauce04 #2058
  • Fixed an inability to generate translation source files in modern build environments due to an outdated qt_add_lupdate call. | @OpenSauce04 #2071
  • Updated NDK and AGP to more recent versions. | @OpenSauce04 #2068
View originalPermalink
How 2126.0-alpha1 went
2125.1.2

Azahar 2125.1.2

Added 3
  • Release assets are now immutable, preventing modification after publication
  • Azahar release binaries are now attested with signed claims specifying production CI jobs, exact commit, timestamp, and other metadata
  • Provide a verify-release bash script to help users verify the validity of Azahar releases and obtain the software bill of materials
Changed 2
  • Added EXCLUDE_FROM_ALL to CMake targets where applicable, speeding up build times for certain non-standard build configurations
  • All libretro core binaries are now stripped, greatly reducing filesize without affecting functionality
Security 1
  • Enabled Attestation and Software Bill Of Materials for release assets to increase release security

This is an unscheduled release to put into action new security policies we have enabled for Azahar after the recent TeamPCP supply chain attacks, which affected big open source projects like CEMU Emulator.

This release contains no user-facing changes when compared with 2125.1.1 outside of the security policy changes. We decided to publish this release now so that the new policies are applied as soon as possible. Users may choose to skip this release if they wish.

Please keep in mind that Azahar was NOT compromised by the attacks and our users are safe. We are just being proactive and adding security measures to our release distribution process as a preventative measure.


Azahar 2125.1.2 Changelog

All

  • Enabled Attestation and Software Bill Of Materials for release assets to increase release security. | @PabloMK7 #2117
    • From now on, Azahar releases are immutable. This means that once we publish a release, the assets linked to it cannot be changed in any way. This prevents token stealers from modifying release assets after they are published. You are able to know if a release is immutable if it shows a padlock icon with the word Immutable at the top left of the page.
    • Starting from this release, Azahar release binaries are attested. This means that all of the official Azahar assets have now signed claims that specify where they were produced (CI jobs), the exact commit and timestamp, and other metadata.
      • Users should be able to verify the validity of azahar binaries using the GitHub Cli. For example: gh attestation verify --owner azahar-emu --predicate-type "https://spdx.dev/Document/v2.3" <file-path>. This command will only succeed if the file was not tampered with, which is useful when downloading assets from secondary sources, such as our Internet Archive page.
      • While plain sha256 hashes serve to verify integrity, attestations also allow to include the aforementioned metadata.
      • You can view the attestations for all of our binaries in the Attestations page.
    • Also starting from this release, Azahar binaries have a Sofware Bill Of Materials, which consists in a JSON that (in theory) contains all dependencies Azahar relies upon, which should help tracking vulnerabilities. In practice, this technology is rather new, so not all dependencies are fully detected. You can read more about this in #2117.
    • A verify-release bash script is now provided in our source code that helps verifying the validity of Azahar releases. This allows users to better audit our releases as well as easily obtain the software bill of materials. Example usage is as follows: ./tools/verify-release.sh azahar-emu/azahar 2125.1.2. You can learn more about this tool in #2117.

Technical

  • Added EXCLUDE_FROM_ALL to CMake targets where applicable, speeding up build times for certain non-standard build configurations. | @OpenSauce04 #2088
  • All libretro core binaries are now stripped, greatly reducing filesize (primarily for the Android core) without affecting functionality in any way. | @OpenSauce04 #2111
    • This is only relevant for the core binaries distributed by us; The cores used by the RetroArch core downloader were already doing this.
View originalPermalink
How 2125.1.2 went
2125.1.1

Azahar 2125.1.1

Changed 1
  • Changed use of std::powf function to std::pow to restore wider build environment compatibility
Fixed 3
  • Fixed a regression where Azahar could appear to have rounded window corners while fullscreened on Windows
  • Fixed a regression where a small number of games could crash due to a shadow texture handling oversight
  • Fixed OpenBSD build compatibility issues

This is an unscheduled bugfix update which addresses previously undetected regressions in the 2125.0 and 2125.1 releases.

Users are advised to update when it is convenient to do so.


Azahar 2125.1.1 Changelog

Windows

  • Fixed a regression introduced in 2125.1 where Azahar could appear to have rounded window corners while fullscreened. | @PabloMK7 #2049

All

  • Fixed a regression introduced in 2125.0 where a small number of games could crash due to a shadow texture handling oversight. | @PabloMK7 #2047

Technical

  • Changed a newly introduced use of the std::powf function in 2125.1 to use std::pow instead, restoring wider build environment compatibility. | @cobalt2727 #2045
  • Miscellaneous OpenBSD build fixes. | @OpenSauce04 #2052
View originalPermalink
How 2125.1.1 went
2125.1

Azahar 2125.1

Added 5
  • Emulate the 3DS's notification LED
  • Add a UI element to the desktop frontend which displays the emulated 3DS's notification LED
  • Add a button to the Android about game dialog which allows deletion of disk shader cache on a per-game basis
  • Add new ENABLE_BUILTIN_KEYBLOB CMake option, enabled by default
  • Add new USE_SYSTEM_OAKNUT CMake option
Changed 6
  • Implement syscore CPU time limiting to match real hardware behaviour
  • Enable the BOSS LLE module by the 'Enable required LLE modules for online features' setting
  • Optimize GeometryEmitter SETEMIT state for minor performance improvement in games using geometry shaders
  • All Android builds of Azahar, including the libretro core, now use the Vulkan renderer by default
  • Improve logging for SVC failures
  • Cross-compile x86_64/Intel macOS binaries from an ARM64 macOS runner
Fixed 10
  • Fix color blend modes behaving incorrectly on the OpenGL graphics backend
  • Fix emulated applications receiving incorrect error values from getaddrinfo/getnameinfo functions
  • Fix Discord rich presence not being set correctly due to a race condition on the desktop frontend
  • Fix orientation changes while a 3DS application is booting causing the Android emulator to crash
  • Fix hidden 3DS system titles appearing in the Android application list
  • Fix Android issue where launching a game via intent while another game was open would cause the new game to load infinitely
Removed 2
  • Remove Vulkan warnings which could appear at application launch on setups with missing Vulkan features
  • Remove Mesa OpenGL version override due to improved upstream support

This is a minor release for the 2125 series which introduces bug fixes and some low-risk improvements + new features.


Azahar 2125.1 Changelog

All

  • Added emulation of the 3DS's notification LED. | @PabloMK7 #2019
    • Only the desktop frontend exposes this functionality as of now (see "Desktop" section).
  • Fixed color blend modes behaving incorrectly on the OpenGL graphics backend. | @PabloMK7 #2038
    • This notably fixes an issue where a black square could appear in the bottom-right corner of the screen in some games (e.g. Shin Megami Tensei IV)
  • Implemented syscore CPU time limiting to match real hardware behaviour. | @PabloMK7 #1934
    • Makes emulated applications properly use the syscore without starving LLE system applets, which fixes several subtle timing issues.
    • Most notably, fixes stability issues caused by having the BOSS LLE module enabled.
  • The BOSS LLE module is now enabled by the "Enable required LLE modules for online features" setting. | @PabloMK7 #1952
  • Fixed emulated applications receiving incorrect error values from getaddrinfo/getnameinfo functions. | @GasInfinity #1956
  • Optimize GeometryEmitter SETEMIT state, providing a minor performance improvement for games which use geometry shaders. | @Wunkolo #1996

Desktop

  • Added a new UI element which displays the emulated 3DS's notification LED. | @PabloMK7 #2019
  • Fixed Discord rich presence often not being set correctly due to a race condition. | @PabloMK7 #2035
  • Removed Vulkan warnings which could appear at application launch on setups with missing Vulkan features. | @RedBlackAka #1938
  • Removed Mesa OpenGL version override due to improved upstream support. | @RedBlackAka #1938

Android

  • All builds of Azahar on Android, including the libretro core, now use the Vulkan renderer by default. | @OpenSauce04 #2003
    • Note: On builds of Azahar other than the libretro core, this change doesn't apply retroactively to existing user configurations.
  • Added a button to the about game dialog which allows deletion of disk shader cache on a per-game basis. | @PabloMK7 #2032
  • Addressed an issue where orientation changes while a 3DS application is booting could cause the emulator to crash. | @PabloMK7 #2030
  • Fixed an issue where hidden 3DS system titles could appear in the application list erroneously. | @PabloMK7 #1935
  • Fixed an issue where, if a game was launched via an intent while another game was already open, the new game would be stuck infinitely loading. | @inssekt #2000
  • Fixed an issue where resetting the values of the background color setting to the default would cause the app to crash. | @ptyfyre #1959
  • Fixed application exits (e.g. with homebrew apps that close themselves) resulting in an "Invalid ROM Format" error dialog. | @SiniKraft #1991

libretro

  • Fixed an issue where the libretro core could crash under certain circumstances when using the Vulkan renderer. | @warmenhoven #2004

Technical

  • Added new ENABLE_BUILTIN_KEYBLOB CMake option, enabled by default. | @PabloMK7 #2024
    • This is enabled by default for all of our builds, mimicking prior behaviour.
    • Disabling it omits the built-in keys usually distributed with Azahar, which disables certain functionality.
  • Added new USE_SYSTEM_OAKNUT CMake option. | @marcin-serwin #1947
  • Improved logging for SVC failures. | @PabloMK7 #1948
  • Our x86_64/Intel macOS binaries are now cross-compiled from an ARM64 macOS runner. | @OpenSauce04 #1953
  • Fixed an issue where attempting to build Azahar's test suite alongside our libretro core while using GCC would result in a linker error. | @warmenhoven #2012
  • Fixed several issues related to building and using Azahar on NetBSD. | @OpenSauce04 #1998
  • Unit tests are now able to be discovered by IDEs via catch_discover_tests. | @Wunkolo #1997
  • Correct the response of SendToOther in soc:U. | @GasInfinity #1929
    • This is a correctness fix, and has no effect on the end-user.
View originalPermalink
How 2125.1 went
View all

Discussion