EmuNews

Azahar

azahar-emu/azahar

15 tracked updates · latest 27 days ago

GitHub

Azahar 2127.0 Alpha 4

2127.0-alpha4 nightly / pre-release
Release notes · 23 files

⚠️Important Alpha Information⚠️

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 2127.0 Alpha 4

Android

  • Added per-application settings. | @DavidRGriswold, @Producdevity #1856, #2698
    • Mimics the desktop behaviour of being able to configure emulated applications independently.
    • Can be accessed by long pressing the application from the application list.
  • Implemented the use of the ADPF API to hint the OS of CPU work bursts. | @PabloMK7 #2706
    • Improves performance on most Android devices, with a 15% performance boost observed on a Mali device.
  • Skip hidden dot files/folders when scanning for applications. | @wilu222 #2362

All

  • Reduced several audio, frame and input latency sources on all platforms. | @PabloMK7 #2700, #2706
    • Improves audio, frame and input latency by 1-2 frames in some cases.
    • Makes audio time stretching disabled by default.
    • Adds a setting to disable audio effects for the cubeb backend (Windows only).
    • The pull requests descriptions go into more detail on what exactly changed.
  • Added free camera support. | @PabloMK7 #2723
    • Uses the RPC server to submit free camera commands to the emulator from an external script.
    • A python script is provided in the dist folder that contains a global free camera implementation, controllable using a controller.
    • Due to the way the 3DS GPU works, per-application implementations are still the prefered way to do free camera.
  • Added configurable battery state. | @Wunkolo #2513, @PabloMK7 #2743, @DavidRGriswold #2738
    • Allows setting the emulated system battery to a fixed percentage and charging state, or use the host system battery state.
    • Makes the emulated notification LED blink red when the battery is critical.
  • Added a turbo (hold) hotkey. | @DavidRGriswold #1969
    • Not to be confused with the existing turbo hotkey, which is a toggle.
  • Fixed savestates not working with LLE modules enabled. | @PabloMK7 #2730
  • Added a visual warning that prompts users to reset the vulkan shader cache if the emulator crashes during cache loading. | @PabloMK7 #2709
  • Improved "disable right eye" setting heuristics. | @Davey-Hughes #2467
    • Fixes visual glitches in many applications with the setting enabled.
  • Fixed files opened with append mode starting on the wrong position. | @PabloMK7 #2707
    • Fixes OpenGL shader cache not working properly on Android vanilla and MacOS builds.
  • Fixed BOSS::GetNsDataHeaderInfo behaviour. | @PabloMK7 #2740
    • Fixes StreetPass Mii Plaza SpotPass puzzles being marked as invalid.
  • Fixed ADD PC instruction handling in thumb mode. | @PabloMK7 #2710
    • Fixes crashes when using the CPU interpreter with LLE modules enabled.
  • Fixed CPU core1 scheduler time limit value check. | @PabloMK7 #2711
    • Fixes 3DS Sound failing to start from the home menu.
  • Fixed APT::GetWirelessRebootInfo behaviour to match real hardware. | @PabloMK7 #2712
    • Fixes Star Fox 64 3D (Taiwan) failing to start.
  • Hardened stride aliasing validation on surface validation. | @Angelico2102 #2451
    • Fixes visual glitches in Inazuma Eleven GO Galaxy.
  • Fix DSP sleep behaviour to better match real hardware timings. | @PabloMK7 #2731
    • Fixes fatal errors on some applications (most notably New Super Mario Bros. 2) when launched from the home menu.
  • Fixed async upload of custom textures. | @nal532 #2688
    • Fixes custom texture related crashes and issues.
  • Fixed incorrect use of host timings on fs operations with deterministic mode. | @PabloMK7 #2732
    • Fixes a source of movie replay desync.

Desktop

  • Added optional on-screen software keyboard during emulation. | @rpnesseling #2185
    • Improves text input on handheld devices that are controller/touchscreen focused.
    • This option is disabled by default.
  • Fixed hat inputs not correctly detecting release and press state. | @DavidRGriswold #2457
  • Fixed some icons being missing in Azahar's application list since 2127.0 Alpha 3. | @OpenSauce04 #2686
  • Fixed path handling by converting paths to UTF-8 before using them with the raw C++ fs interface. | @PabloMK7 #2713
    • Fixes crashes with paths that contain non-ASCII characters.

Technical

  • Added savestate and input injection methods to the RPC server. | @PabloMK7 #2730, #2731
  • Added compressed ROM globs and fixed MIME icon name. | @999sian #2377
  • Updated cubeb dependency to a newer commit. | @PabloMK7 #2714
  • Added USE_SYSTEM_TEAKRA Cmake flag. | @qr243vbi #2615
  • Changed print to console behaviour when stdout is redirected. | @NimbusFox #2715
  • Provided a .png for AppImage building. | @PabloMK7 #2746
  • Fixed an issue with no-op optimization in the vulkan renderer caused by a typo. | @Lolothepro #2482

Azahar 2127.0 Alpha 3

2127.0-alpha3 nightly / pre-release
Release notes · 23 files

⚠️Important Alpha Information⚠️

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 2127.0 Alpha 3

All

  • Implemented emulation for the CSND module, allowing applets (e.g. the 3DS keyboard), 3GX plugins, and certain early homebrew applications to play audio. | @PabloMK7 #2680
  • Fixed an issue which could cause CIA content in a ROM Bundle to not be installed correctly if it was compressed into a .zcia file before being bundled. | @DevYukine #2679
  • When attempting to bind a button or hotkey to an already bound input, a dialog which asks whether you want to unbind the previously bound button or hotkey is displayed instead of just showing a failure message. | @DavidRGriswold #1838
  • Fixed several minor inaccuracies in the HLE GSP module, potentially fixing unknown edge cases in certain games. | @PabloMK7 #2678

Windows

  • Fixed a regression first seen in 2127.0 Alpha 1 which caused Azahar to hang indefinitely when changing the UI theme. | @OpenSauce04 #2682

Desktop

  • Added new hotkeys "Configure" and "Configure Current Application". | @crueter #2218

Technical

  • Fixed a build failure when using recent versions of zstd caused by a CMake target name conflict. | @rtiangha #2616

Azahar 2127.0 Alpha 2

2127.0-alpha2 nightly / pre-release
Release notes · 23 files

⚠️Important Alpha Information⚠️

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 2127.0 Alpha 2

All

  • Added support for a new ROM format: ROM Bundles (.bcxi, .bcci, .bcia). | @PabloMK7 #2369, #2673
    • ROM Bundles can store a base game and any necessary additional files, such as the game's updates, DLC, or any necessary system files (e.g. Mii data) within a single file. This makes it easier to manage and organize your game library, while also allowing for easier of use of game updates, DLC, and system files in libretro frontends (e.g. RetroArch) via .bcxi/.bcci files.
    • .bcxi/.bcci bundles allow content which would previously have to be installed via a CIA file, such as game updates and DLC, to be used alongside the base game without installing anything to the emulated 3DS.
    • .bcia files contain the content of multiple CIA files, allowing their collective content to be stored and installed via a single file.
    • ROM Bundles can be created using Tools -> Create ROM Bundle... on desktop platforms.
    • Creating ROM Bundles on Android is currently not possible, but bundles created on a desktop device can be run on any platform as long as Azahar's version is at least 2127.0 or later.
    • For more information, please read the PR description: #2369
  • Implemented additional optimizations for Azahar's JIT shader compiler. | @Wunkolo #2597
  • Check table_dirty before skipping proctex LUT upload. | @Dandandans #2627

Android

  • Turbo speed is now disabled when a game is started, matching the behaviour on desktop platforms. | @ygordreyer #2657
  • Closing a game which was opened from an Android home screen shortcut now closes Azahar. | @ygordreyer #2658
  • Fixed an issue where, when relaunching a currently running game from an Android home screen shortcut, Azahar would display a black screen. | @ygordreyer #2656

Azahar 2127.0 Alpha 1

2127.0-alpha1 nightly / pre-release
Release notes · 23 files

⚠️Important Alpha Information⚠️

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.


[!NOTE] To allow public testing of the new interpreter, which allows fantastic performance on iPhones all the way back to the iPhone XS with no JIT, we plan to distribute all of our 2127.0 prereleases on RetroArch with 2-3 days of delay as a one-off exception to our typical release scheduling. We hope our iOS users look forward to testing out the new version and experiencing the improved performance it brings.

[!NOTE] This release invalidates any existing generated shader cache, so performance may temporarily be impared after updating. Performance will improve again after playing for a while.


Azahar 2127.0-alpha1 Changelog

License

  • Azahar's license has been changed from GPLv2+ to GPLv3+. All downstream projects exposed to Azahar's source code must ensure that they follow the license terms and correctly update any license metadata as necessary. | @OpenSauce04 #2626 #2635

All

  • Implemented a significantly faster new interpreter for JIT-less environments, named FastInterp, which replaces the old DynCom interpreter. | @warmenhoven #2376
    • This new interpreter allows greatly improved performance on iOS and tvOS devices, allowing devices as old as the iPhone XS to play games, even with playback speeds of over 200%.
  • Fixed inaccurate color blending behaviour in the Vulkan renderer, fixing an issue in Shin Megami Tensei IV where a black box would appear around enemies when killed. | @quickstraw #2427
  • Corrected misuses of linear filtering in the video core where nearest neighbour should be used. | @OpenSauce04 #2554
    • Fixes texture rendering issues in Minecraft: New Nintendo 3DS Edition, and likely other games as well.
  • Implemented a previously missing audio delay/echo effect in the HLE DSP implementation. | @PabloMK7 #2473
    • Restores previously missing echo effects to many games, such as New Super Mario Bros. 2, when using HLE audio.
    • Fixes a stuttering music issue in Shinobi 3D.
  • Implemented improvements for Azahar's texture codec, resulting in greatly improved texture handling performance and general performance improvements in many games. | @PabloMK7 #2564
  • Zero-area render passes are now skipped. | @Wunkolo #2510 #2544
    • This addresses certain graphical issues in 3D Thunder Blade.
  • Implemented null descriptors for null surfaces. | @Wunkolo #2545
  • Minecraft: New Nintendo 3DS Edition now force-disables the "Disable Right Eye Rendering" setting while running due to causing rapidly flashing rendering issues. | @OpenSauce04 #2555
  • Due to ongoing issues, the Anime4K texture filter has been limited to only be selectable when using the OpenGL renderer. | @OpenSauce04 #2654

Windows

  • In line with our previous deprecation, the MSYS2 build of Azahar has now been removed, with the MXE build replacing it. | @OpenSauce04 #2582
  • Implemented a custom scrollbar style in Azahar's Qt frontend with improved visibility. | @OpenSauce04 #2642

Desktop

  • Azahar now contains its own copy of FFmpeg, meaning that downloading and installing FFmpeg manually before using the Dump Video feature is no longer necessary. | @OpenSauce04 #2584

libretro

  • Fixed an issue with touchscreen devices where, when pressing a blank area outside of the touchscreen area, the last selected location on the touchscreen would become activated. | @OpenSauce04 #2563

Desktop

  • Fixed an issue where Azahar's .ini files could contain non-human-readable values. | @Wunkolo #2534

Technical

  • Added additional logging when an attempted pixel format reinterpretation is unimplemented. | @Wunkolo #2508
  • Added new CMake options to newly allow compiling with certain system libraries. | @kreinholz #1987
  • Added new CMake option ENABLE_CCACHE. | @crueter #2219
  • Added a missing include which allows Azahar to be compiled for Android with NDK r30. | @rtiangha #2622
  • Fixed an issue which prevented building Azahar with openal-soft version 1.25.2 and newer. | @rtiangha #2617
  • Cleaned up various instances of deprecated code in the Android codebase. | @OpenSauce04 #2637
  • Removed Doxyfile due to lack of use, maintenance and interest. | @OpenSauce04 #2636

Azahar 2126.2

2126.2 release
Release notes · 25 files

This a minor release for the 2126 branch which primarily addresses a reported security advisory. It also includes several newly backported improvements and fixes from the master branch.

Users are advised to update as soon as is convenient.


Azahar 2126.2 Changelog

All

  • Addressed an oversight which allowed specially-crafted CIA files to execute arbitrary code in the host environment when locally installed by a user. | @PabloMK7 #2648
    • Addresses the following GHSA report: https://github.com/azahar-emu/azahar/security/advisories/GHSA-h74v-5mw8-qg8r
  • Fixed an issue where the xBRZ texture filter would be applied incorrectly when using the Vulkan renderer, resulting in an incorrect appearance. | @OpenSauce04 #2647
  • Handling of large HTTP downloads within emulated 3DS applications has been improved, improving memory efficiency and stability. | @PabloMK7 #2515
    • Fixes downloading large games from the eShop.
  • Added a new 3GX loader flag allow_homebrew_load, which allows loading 3GX plugins for homebrew apps if the plugin supports it. | @PabloMK7 #2649

Desktop

  • Various improvements to GDB and RPC servers, fixing certain issues and improving functionality. | @PabloMK7 #2631, #2640, #2633
    • For additional info, see individual PR descriptions.
    • Script developers will need to update the RPC client as this is a breaking change.

Android

  • Fixed a crash which could occur if the gpu_drivers directory contained a subdirectory. | @ygordreyer #2592

Technical

  • Creating a copy of the kernel shared and config pages using svcMapProcessMemoryEx is now possible.
    • This is a technical accuracy change. Little to no end-user impact.

Azahar 2126.1.2

2126.1.2 release
Release notes · 25 files

This an unscheduled fix release which addresses a commonly experienced issue in Azahar's libretro cores. For other versions of Azahar, this update is identical to 2126.1.1.


Azahar 2126.1.2 Changelog

libretro

  • Fixed an issue which could cause RetroArch to entirely freeze or crash when exiting a game. | @Razor221 #2572

Azahar 2126.1.1

2126.1.1 release
Release notes · 25 files

This an unscheduled fix release which addresses a few notable issues discovered post-launch in the 2126.1 update. All users are encouraged to update as soon as is convenient.


Azahar 2126.1.1 Changelog

All

  • Fixed an issue where Azahar could instantly crash when opened on certain systems with poor Vulkan support. | @Wunkolo #2528
  • The "Skip Presenting Duplicate Frames" setting has now been disabled by default due to minor observed regressions compared to the old behaviour. | @PabloMK7 #2530, @OpenSauce04 #2536
  • Fixed an issue which could cause Azahar's Vulkan renderer to crash when handling certain shadow textures. | @Wunkolo #2533
    • Fixes a crash in Monster Hunter 4 Ultimate after opening the equipment menu.

Windows

  • The About menu and Azahar's log file now indicate which build variant is currently being used (MXE, MSVC or MSYS2). | @OpenSauce04 #2538

Azahar 2126.1

2126.1 release
Release notes · 25 files

This minor release contains many improvements and fixes which didn't make it into the base 2126.0 release. Of particular focus in this release are stability improvements, eliminating potential crashes in many identified scenarios. All users are encouraged to update as soon as is convenient.


Azahar 2126.1 Changelog

All

  • Save states are now locked to the version of Azahar that they were created with. | @PabloMK7 #2394
    • Attempting to load a save state from a different Azahar version will now display an error message explaining this restriction, and will also display the version of Azahar that the save state was originally created with, recommending temporarily downgrading to retrieve progress using the in-game save functionality if necessary.
    • This does not limit save state usage compared to previous behaviour. Before this change, loading a save state from a previous version of Azahar would just crash the emulator. This change now gracefully shows a message instead.
  • Fixed an issue where it was possible for texture surfaces to be deleted while in use, especially at larger internal resolution settings. | @Wunkolo #2407
    • This change fixes Vulkan related crashes in many different games and situations. Most notably, when starting missions in Monster Hunter 4 Ultimate.
  • The highest available internal resolution scaling setting has been increased from 10x (4000x2400) to 18x (7200x4320), allowing 8K displays to take full advantage of upscaling functionality. | @72374 #1906
  • Implemented a fix for a crash in Teenage Mutant Ninja Turtles: Danger of the Ooze when using the Vulkan renderer due to inaccurate handling of the rasterizer cull mode being set to an unusual value. | @PabloMK7 #2396
  • Fixed an issue which caused excessive lag in the character select screen for Super Smash Bros 4. | @PabloMK7 #2412
  • Fixed an issue which caused excessive lag in Mini Mario & Friends: Amiibo Challenge when walking on diagonal surfaces. | @PabloMK7 #2412
  • Fixed a regression which caused the 3DS friends menu to crash when opened. | @PabloMK7 #2412
  • Fixed a crash which could sometimes occur during multiplayer sessions due to thread-unsafe logic. | @PabloMK7 #2405
  • Implemented optimizations to GPU command list processing which save 0.5-1ms of processing time per frame on average. | @PabloMK7 #2318
  • Implement geometry shader output register banking, which fixes a lot of SEGA 3D Classics games without the need of per-game patches. | @PabloMK7 #2338
    • The mentioned games still present other rendering issues that need to be fixed in future versions of the emulator.
  • Fix floating point denormal accuracy, which fixes various rendering issues in several games. | @Wunkolo #2350
  • Fixed an issue where linear filtering was forcefully enabled with certain drivers, primarily on Android w/ Adreno. | @PabloMK7 #2445
  • Fixed an issue where the 3DS Internet Browser would freeze due to incorrect core rescheduling behaviour. | @PabloMK7 #2370
  • Implemented an improvement to emulated audio handling which fixes crackling sounds when an audio source's volume is changed. @Grayforz2468 #2409
    • Most notable example is the Home Menu no longer having crackling music.
  • Fixed an issue which caused HLE audio emulation to produce crackling in games that update looping PCM16 buffers while they are being played. | @Angelico2102 #2454
    • This is known to address audio issues in "Inazuma Eleven 3".
  • Fixed an issue in the Vulkan renderer related to the handling of disabled cubemap texture units. | @Wunkolo #2406
    • This brings over a fix which was previously applied to the OpenGL renderer in a previous update.
  • Fixed an invalid memory access issue related to uds beacons. May fix undiscovered issues in certain multiplayer games. | @PabloMK7 #2403
  • Implemented checks to ensure that Vulkan layers the system doesn't support are not enabled, avoiding crashes on certain setups. | @Wunkolo #2511
  • Fixed a crash which could happen during gameplay under certain circumstances while using custom textures. | @demetriospantaleao-del #2481

Windows (MXE)

  • Fixed crash which could occur when trying to launch any app with the Vulkan renderer while using the MXE build. | @OpenSauce04 #2392
  • Fixed an issue where frame pacing could be inconsistent when using the MXE build. | @OpenSauce04 #2392

Desktop

  • The minimum motion control sensitivity value has been reduced from 0.01 to 0.001. | @ParadiseOfMagic #2383

Linux

  • The Wayland and non-Wayland AppImage have now been once again merged into a single binary which includes Wayland support. This is due to the original crash issue which caused the split now being fixed. | @OpenSauce04 #2458
  • Implemented a measure to help avoid having a missing application icon with certain desktop environment setups. | @Kyuyrii #1727

Android

  • Upgraded target Android SDK from Android 15 (35) to Android 17 (37). | @OpenSauce04 #2416
  • Fixed various edge-case crashes related to surface handling which could occur at game boot, during screen rotation, during app suspension, or during save state loading. | @PabloMK7 #2425
  • Fixed an issue where debug builds of Azahar on Android would instantly crash due to a logic error relating to configuration validation. | @PabloMK7 #2398
  • Fixed an issue where, if a 3DS application closed itself or encountered a fatal error and the user selected "Abort", the emulator would crash instead of returning to the application menu. | @PabloMK7 #2399
  • Fixed an issue which would cause Azahar to crash if a save state was loaded after being launched from a 3rd-party frontend. | @PabloMK7 #2452
  • Fixed an issue where Azahar would crash if it had not yet performed initial setup and a 3rd-party launcher attempted to start it. | @PabloMK7 #2452
  • Invalid ROMs are now displayed with an "Invalid ROM" card in the game list instead of being blank. | @OpenSauce04 #2509
  • Fixed various issues/ inaccuracies related to string translation tagging. | @OpenSauce04
  • UI strings which indicate which region a game is for/from (e.g. "Europe, Australia") are now translatable in the frontend for non-English languages. | @OpenSauce04 #2497
    • As with all translations, this relies on translations being provided for each language by the community, and may not be translated immediately.
    • If you are proficient in a non-English language we support and would like to contribute, you can join our Transifex page and contribute translations here: https://app.transifex.com/azahar/azahar/dashboard/

macOS

  • Enabled Liquid Glass interface elements on macOS 26. | @OpenSauce04 #2429
  • Fixed an issue when using macOS 27 where connecting to local network devices such as a real 3DS would always fail (e.g. Artic Base, system files setup). | @OpenSauce04 #2428

libretro

  • "Stereoscopic 3D Mode" and "Stereoscopic 3D Depth" settings are now available for the libretro core. | @XenuIsWatching #2339
  • Updated NDK version used to build the Android libretro core to 29.x

Technical

  • The MXE build is now compiled using an LLVM+Clang based build environment, replacing the previous GCC-based stack. | @OpenSauce04 #2392
    • Huge thanks to @kleisauke, who for about a year and a half has been thanklessly maintaining an unofficial LLVM MXE plugin in a GitHub repository with only a single star. Without their work, making this happen would have taken much longer than it did.
  • Added copyright years to all source code license headers. | @PabloMK7 #2415
  • Implemented a workaround for a current compiler bug in MSVC. | @PabloMK7 #2410
  • Added a new CMake option CITRA_ADDRESS_SANITIZE. | @PabloMK7 #2402

FreeBSD

  • When building on FreeBSD, system libusb is now always used due to being bundled with the OS. | @sonphantrung #2281

Azahar 2126.1 Release Candidate 5

2126.1-rc5 nightly / pre-release
Release notes · 25 files

⚠️Important Release Candidate Information⚠️

This is a release candidate. Please expand this drop-down to read more about what this means before installing.
As a release candidate, this build is not yet considered a stable release, but is instead a build which could be promoted to a stable release if it is sufficiently tested with no major issues being discovered. Ideally, the release candidate period will last for 7 days, however if major issues are discovered, this will be extended to allow for additional testing with a corrected release candidate.

Despite its status as a pre-release build, users are encouraged to test this version to help us catch any newly introduced issues before the build is promoted to a full release. If you do observe such issues, please report them to us on GitHub so we can evaluate them.

If you are unwilling to tolerate potential minor issues, you may be better off waiting until a release candidate is promoted to a full release.

Users are advised to back up their Azahar user data directory before using a pre-release build.

This release candidate fixes a single critical regression first seen in the 2126.1-rc3 prerelease. It is otherwise identical to 2126.1-rc4.

For a more complete picture of what will be included in the final release, you can see the changelog for Release Candidate 1 here: https://github.com/azahar-emu/azahar/releases/tag/2126.1-rc1


Azahar 2126.1-rc5 Changelog

All

  • Fixed a regression which caused consistent memory leakage while running an application with the OpenGL renderer. | @Wunkolo #2517
    • This issue affected all platforms which support the OpenGL renderer, but the rate of memory leakage was much more drastic on Windows.

Azahar 2126.1 Release Candidate 4

2126.1-rc4 nightly / pre-release
Release notes · 25 files

⚠️Important Release Candidate Information⚠️

This is a release candidate. Please expand this drop-down to read more about what this means before installing.
As a release candidate, this build is not yet considered a stable release, but is instead a build which could be promoted to a stable release if it is sufficiently tested with no major issues being discovered. Ideally, the release candidate period will last for 7 days, however if major issues are discovered, this will be extended to allow for additional testing with a corrected release candidate.

Despite its status as a pre-release build, users are encouraged to test this version to help us catch any newly introduced issues before the build is promoted to a full release. If you do observe such issues, please report them to us on GitHub so we can evaluate them.

If you are unwilling to tolerate potential minor issues, you may be better off waiting until a release candidate is promoted to a full release.

Users are advised to back up their Azahar user data directory before using a pre-release build.

This release candidate is an amendment to 2126.1-rc3. It introduces some final tweaks and fixes in preparation for the stable release. We hope that this will be the final release candidate, assuming no major issues are discovered.

For a more complete picture of what will be included in the final release, you can see the changelog for Release Candidate 1 here: https://github.com/azahar-emu/azahar/releases/tag/2126.1-rc1


Azahar 2126.1-rc4 Changelog

All

  • Implemented checks to ensure that Vulkan layers the system doesn't support are not enabled, avoiding crashes on certain setups. | @Wunkolo #2511

Desktop

  • Fixed the setting for the newly introduced debug exception handler being erroneously enabled by default; it is now disabled by default. | @PabloMK7 #2505
    • Having this setting enabled can cause certain game mods which specifically target emulators to crash.

Android

  • Invalid ROMs are now displayed with an "Invalid ROM" card in the game list instead of being blank. | @OpenSauce04 #2509
    • These blank cards unintentionally contained an error string in 2126.1-rc3 due to an oversight. By the nature of this change, that issue has also been fixed.

Azahar 2126.1 Release Candidate 3

2126.1-rc3 nightly / pre-release
Release notes · 25 files

⚠️Important Release Candidate Information⚠️

This is a release candidate. Please expand this drop-down to read more about what this means before installing.
As a release candidate, this build is not yet considered a stable release, but is instead a build which could be promoted to a stable release if it is sufficiently tested with no major issues being discovered. Ideally, the release candidate period will last for 7 days, however if major issues are discovered, this will be extended to allow for additional testing with a corrected release candidate.

Despite its status as a pre-release build, users are encouraged to test this version to help us catch any newly introduced issues before the build is promoted to a full release. If you do observe such issues, please report them to us on GitHub so we can evaluate them.

If you are unwilling to tolerate potential minor issues, you may be better off waiting until a release candidate is promoted to a full release.

Users are advised to back up their Azahar user data directory before using a pre-release build.

This release candidate is an amendment to 2126.1-rc2. It primarily addresses issues discovered in the prior 2126.1 prereleases.

For a more complete picture of what will be included in the final release, you can see the changelog for Release Candidate 1 here: https://github.com/azahar-emu/azahar/releases/tag/2126.1-rc1


Azahar 2126.1-rc3 Changelog

All

  • Fixed a crash first seen in 2126.1 Alpha 1 where changing the internal resolution during emulation could cause graphical artifacts and major memory leakage, resulting in a crash. | @Wunkolo #2489
  • Fixed a crash which could happen during gameplay under certain circumstances while using custom textures. | @demetriospantaleao-del #2481
  • Fixed a regression introduced in 2126.1 Release Candidate 1 which could cause major audio stuttering while audio stretching was enabled. | @OpenSauce04 #2487
    • This issue was caused by a previously implemented attempt to improve audio latency while audio stretching was enabled (#2439). This has now been reverted.

Android

  • UI strings which indicate which region a game is for/from (e.g. "Europe, Australia") are now translatable in the frontend for non-English languages. | @OpenSauce04 #2497
    • As with all translations, this relies on translations being provided for each language by the community, and may not be translated immediately.
    • If you are proficient in a non-English language we support and would like to contribute, you can join our Transifex page and contribute translations here: https://app.transifex.com/azahar/azahar/dashboard/

Azahar 2126.1 Release Candidate 2

2126.1-rc2 nightly / pre-release
Release notes · 25 files

⚠️Important Release Candidate Information⚠️

This is a release candidate. Please expand this drop-down to read more about what this means before installing.
As a release candidate, this build is not yet considered a stable release, but is instead a build which could be promoted to a stable release if it is sufficiently tested with no major issues being discovered. Ideally, the release candidate period will last for 7 days, however if major issues are discovered, this will be extended to allow for additional testing with a corrected release candidate.

Despite its status as a pre-release build, users are encouraged to test this version to help us catch any newly introduced issues before the build is promoted to a full release. If you do observe such issues, please report them to us on GitHub so we can evaluate them.

If you are unwilling to tolerate potential minor issues, you may be better off waiting until a release candidate is promoted to a full release.

Users are advised to back up their Azahar user data directory before using a pre-release build.

This release candidate is an amendment to 2126.1-rc1. It addresses regressions discovered in the Android build.

For a more complete picture of what will be included in the final release, you can see the previous changelog here: https://github.com/azahar-emu/azahar/releases/tag/2126.1-rc1


Azahar 2126.1-rc2 Changelog

Android

  • Fixed a regression where using a fresh install of Azahar or resetting the on-screen controller overlay would result in the overlay layout being positioned partially off the edge of the screen for devices with a selfie camera. | @OpenSauce04 #2465
    • Users affected by the aforementioned issue should reset their on-screen controller overlay layout using the side menu after updating. The issue will then be fixed.
  • Fixed a regression where, when the "Expand to Cutout Area" setting was enabled, any touchscreen inputs to the virtual 3DS screen would be either horizontally or vertically offset for devices with a selfie camera. | @OpenSauce04 #2469
  • Slightly adjusted the positioning of the face buttons in the default portrait layout for the on-screen controller overlay for better ergonomics. | @OpenSauce04 #2468

Azahar 2126.1 Release Candidate 1

2126.1-rc1 nightly / pre-release
Release notes · 25 files

⚠️Important Release Candidate Information⚠️

This is a release candidate. Please expand this drop-down to read more about what this means before installing.
As a release candidate, this build is not yet considered a stable release, but is instead a build which could be promoted to a stable release if it is sufficiently tested with no major issues being discovered. Ideally, the release candidate period will last for 7 days, however if major issues are discovered, this will be extended to allow for additional testing with a corrected release candidate.

Despite its status as a pre-release build, users are encouraged to test this version to help us catch any newly introduced issues before the build is promoted to a full release. If you do observe such issues, please report them to us on GitHub so we can evaluate them.

If you are unwilling to tolerate potential minor issues, you may be better off waiting until a release candidate is promoted to a full release.

Users are advised to back up their Azahar user data directory before using a pre-release build.

Click here to see only the changes made since Azahar 2126.1-alpha1, for those who already read the previous changelog.

All

  • Fixed an issue where linear filtering was forcefully enabled with certain drivers, primarily on Android w/ Adreno. | @PabloMK7 #2445
  • Fixed a crash which could sometimes occur during multiplayer sessions due to thread-unsafe logic. | @PabloMK7 #2405
  • Fixed an issue which caused HLE audio emulation to produce crackling in games that update looping PCM16 buffers while they are being played. | @Angelico2102 #2454
    • This is known to address audio issues in "Inazuma Eleven 3".
  • Fixed an issue where Game Boy/ Game Boy Color virtual console titles would have part of the Virtual Console menu graphic incorrectly drawn off to the right edge of the screen. | @Davey-Hughes #2459
  • Improved the exception handler dialog to contain more useful debugging information. | @ExplosBlue #2419
  • Fixed an issue where audio time stretching was always applied regardless emulation speed, resulting in unnecessary audio delay. | @PabloMK7 #2439

Android

  • Fixed a regression in 2126.1-alpha1 where the "Expand to Cutout Area" setting didn't work correctly. | @OpenSauce04 #2447
  • Fixed an issue which would cause Azahar to crash if a save state was loaded after being launched from a 3rd-party frontend. | @PabloMK7 #2452
  • Fixed an issue where Azahar would crash if it had not yet performed initial setup and a 3rd-party launcher attempted to start it. | @PabloMK7 #2452
  • Fixed various issues/ inaccuracies related to string translation tagging. | @OpenSauce04

Linux

  • The Wayland and non-Wayland AppImage have now been once again merged into a single binary which includes Wayland support. This is due to the original crash issue which caused the split now being fixed. | @OpenSauce04 #2458

libretro

  • Updated NDK version used to build the Android libretro core to 29.x

FreeBSD

  • When building on FreeBSD, system libusb is now always used due to being bundled with the OS. | @sonphantrung #2281

Azahar 2126.1-rc1 Changelog

All

  • Save states are now locked to the version of Azahar that they were created with. | @PabloMK7 #2394
    • Attempting to load a save state from a different Azahar version will now display an error message explaining this restriction, and will also display the version of Azahar that the save state was originally created with, recommending temporarily downgrading to retrieve progress using the in-game save functionality if necessary.
    • This does not limit save state usage compared to previous behaviour. Before this change, loading a save state from a previous version of Azahar would just crash the emulator. This change now gracefully shows a message instead.
  • Fixed an issue where it was possible for texture surfaces to be deleted while in use, especially at larger internal resolution settings. | @Wunkolo #2407
    • This change fixes Vulkan related crashes in many different games and situations. Most notably, when starting missions in Monster Hunter 4 Ultimate.
  • The highest available internal resolution scaling setting has been increased from 10x (4000x2400) to 18x (7200x4320). | @72374 #1906
  • Implemented a fix for a crash in Teenage Mutant Ninja Turtles: Danger of the Ooze when using the Vulkan renderer due to inaccurate handling of the rasterizer cull mode being set to an unusual value. | @PabloMK7 #2396
  • Fixed an issue which caused excessive lag in the character select screen for Super Smash Bros 4. | @PabloMK7 #2412
  • Fixed an issue which caused excessive lag in Mini Mario & Friends: Amiibo Challenge when walking on diagonal surfaces. | @PabloMK7 #2412
  • Fixed a regression which caused the 3DS friends menu to crash when opened. | @PabloMK7 #2412
  • Fixed a crash which could sometimes occur during multiplayer sessions due to thread-unsafe logic. | @PabloMK7 #2405
  • Implemented optimizations to GPU command list processing which save 0.5-1ms of processing time per frame on average. | @PabloMK7 #2318
  • Implement geometry shader output register banking, which fixes a lot of SEGA 3D Classics games without the need of per-game patches. | @PabloMK7 #2338
    • The mentioned games still present other rendering issues that need to be fixed in future versions of the emulator.
  • Fix floating point denormal accuracy, which fixes various rendering issues in several games. | @Wunkolo #2350
  • Fixed an issue where linear filtering was forcefully enabled with certain drivers, primarily on Android w/ Adreno. | @PabloMK7 #2445
  • Fixed an issue where the 3DS Internet Browser would freeze due to incorrect core rescheduling behaviour. | @PabloMK7 #2370
  • Implemented an improvement to emulated audio handling which fixes crackling sounds which an audio source's volume is changed. @Grayforz2468 #2409
    • Most notable example is the Home Menu no longer having crackling music.
  • Fixed an issue which caused HLE audio emulation to produce crackling in games that update looping PCM16 buffers while they are being played. | @Angelico2102 #2454
    • This is known to address audio issues in "Inazuma Eleven 3".
  • Fixed an issue in the Vulkan renderer related to the handling of disabled cubemap texture units. | @Wunkolo #2406
    • This brings over a fix which was previously applied to the OpenGL renderer in a previous update.
  • Fixed an invalid memory access issue related to uds beacons. May fix undiscovered issues in certain multiplayer games. | @PabloMK7 #2403
  • Fixed an issue where audio time stretching was always applied regardless emulation speed, resulting in unnecessary audio delay. | @PabloMK7 #2439

Windows (MXE)

  • Fixed crash which could occur when trying to launch any app with the Vulkan renderer while using the MXE build. | @OpenSauce04 #2392
  • Fixed an issue where frame pacing could be inconsistent when using the MXE build. | @OpenSauce04 #2392

Desktop

  • The minimum motion control sensitivity value has been reduced from 0.01 to 0.001. | @ParadiseOfMagic #2383

Linux

  • The Wayland and non-Wayland AppImage have now been once again merged into a single binary which includes Wayland support. This is due to the original crash issue which caused the split now being fixed. | @OpenSauce04 #2458
  • Implemented a measure to help avoid having a missing application icon with certain desktop environment setups. | @Kyuyrii #1727

Android

  • Upgraded target Android SDK from Android 15 (35) to Android 17 (37). | @OpenSauce04 #2416
  • Fixed various edge-case crashes related to surface handling which could occur at game boot, during screen rotation, during app suspension, or during save state loading. | @PabloMK7 #2425
  • Fixed an issue where debug builds of Azahar on Android would instantly crash due to a logic error relating to configuration validation. | @PabloMK7 #2398
  • Fixed an issue where, if a 3DS application closed itself or encountered a fatal error and the user selected "Abort", the emulator would crash instead of returning to the application menu. | @PabloMK7 #2399
  • Fixed an issue which would cause Azahar to crash if a save state was loaded after being launched from a 3rd-party frontend. | @PabloMK7 #2452
  • Fixed an issue where Azahar would crash if it had not yet performed initial setup and a 3rd-party launcher attempted to start it. | @PabloMK7 #2452
  • Fixed various issues/ inaccuracies related to string translation tagging. | @OpenSauce04

macOS

  • Enabled Liquid Glass interface elements on macOS 26. | @OpenSauce04 #2429
  • Fixed an issue when using macOS 27 where connecting to local network devices such as a real 3DS would always fail (e.g. Artic Base, system files setup). | @OpenSauce04 #2428

libretro

  • "Stereoscopic 3D Mode" and "Stereoscopic 3D Depth" settings are now available for the libretro core. | @XenuIsWatching #2339
  • Updated NDK version used to build the Android libretro core to 29.x

Technical

  • The MXE build is now compiled using an LLVM+Clang based build environment, replacing the previous GCC-based stack. | @OpenSauce04 #2392
    • Huge thanks to @kleisauke, who for about a year and a half has been thanklessly maintaining an unofficial LLVM MXE plugin in a GitHub repository with only a single star. Without their work, making this happen would have taken much longer than it did.
  • Added copyright years to all source code license headers. | @PabloMK7 #2415
  • Implemented a workaround for a current compiler bug in MSVC. | @PabloMK7 #2410
  • Added a new CMake option CITRA_ADDRESS_SANITIZE. | @PabloMK7 #2402

FreeBSD

  • When building on FreeBSD, system libusb is now always used due to being bundled with the OS. | @sonphantrung #2281

Azahar 2126.1 Alpha 1

2126.1-alpha1 nightly / pre-release
Release notes · 26 files

⚠️Important Alpha Information⚠️

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

All

  • Save states are now locked to the version of Azahar that they were created with. | @PabloMK7 #2394
    • Attempting to load a save state from a different Azahar version will now display an error message explaining this restriction, and will also display the version of Azahar that the save state was originally created with, recommending temporarily downgrading to retrieve progress using the in-game save functionality if necessary.
    • This does not limit save state usage compared to previous behaviour. Before this change, loading a save state from a previous version of Azahar would just crash the emulator. This change now gracefully shows a message instead.
  • Fixed an issue where it was possible for texture surfaces to be deleted while in use, especially at larger internal resolution settings. | @Wunkolo #2407
    • This change fixes Vulkan related crashes in many different games and situations. Most notably, when starting missions in Monster Hunter 4 Ultimate.
  • The highest available internal resolution scaling setting has been increased from 10x (4000x2400) to 18x (7200x4320). | @72374 #1906
  • Implemented a fix for a crash in Teenage Mutant Ninja Turtles: Danger of the Ooze when using the Vulkan renderer due to inaccurate handling of the rasterizer cull mode being set to an unusual value. | @PabloMK7 #2396
  • Fixed an issue which caused excessive lag in the character select screen for Super Smash Bros 4. | @PabloMK7 #2412
  • Fixed an issue which caused excessive lag in Mini Mario & Friends: Amiibo Challenge when walking on diagonal surfaces. | @PabloMK7 #2412
  • Fixed a regression which caused the 3DS friends menu to crash when opened. | @PabloMK7 #2412
  • Implemented optimizations to GPU command list processing which save 0.5-1ms of processing time per frame on average. | @PabloMK7 #2318
  • Implement geometry shader output register banking, which fixes a lot of SEGA 3D Classics games without the need of per-game patches. | @PabloMK7 #2338
    • The mentioned games still present other rendering issues that need to be fixed in future versions of the emulator.
  • Fix floating point denormal accuracy, which fixes various rendering issues in several games. | @Wunkolo #2350
  • Fixed an issue where the 3DS Internet Browser would freeze due to incorrect core rescheduling behaviour. | @PabloMK7 #2370
  • Implemented an improvement to emulated audio handling which fixes crackling sounds which an audio source's volume is changed. @Grayforz2468 #2409
    • Most notable example is the Home Menu no longer having crackling music.
  • Fixed an issue in the Vulkan renderer related to the handling of disabled cubemap texture units. | @Wunkolo #2406
    • This brings over a fix which was previously applied to the OpenGL renderer in a previous update.
  • Fixed an invalid memory access issue related to uds beacons. May fix undiscovered issues in certain multiplayer games. | @PabloMK7 #2403

Windows (MXE)

  • Fixed crash which could occur when trying to launch any app with the Vulkan renderer while using the MXE build. | @OpenSauce04 #2392
  • Fixed an issue where frame pacing could be inconsistent when using the MXE build. | @OpenSauce04 #2392

Desktop

  • The minimum motion control sensitivity value has been reduced from 0.01 to 0.001. | @ParadiseOfMagic #2383

Linux

  • Implemented a measure to help avoid having a missing application icon with certain desktop environment setups. | @Kyuyrii #1727

Android

  • Upgraded target Android SDK from Android 15 (35) to Android 17 (37). | @OpenSauce04 #2416
  • Fixed various edge-case crashes related to surface handling which could occur at game boot, during screen rotation, during app suspension, or during save state loading. | @PabloMK7 #2425
  • Fixed an issue where debug builds of Azahar on Android would instantly crash due to a logic error relating to configuration validation. | @PabloMK7 #2398
  • Fixed an issue where, if a 3DS application closed itself or encountered a fatal error and the user selected "Abort", the emulator would crash instead of returning to the application menu. | @PabloMK7 #2399

macOS

  • Enabled Liquid Glass interface elements on macOS 26. | @OpenSauce04 #2429
  • Fixed an issue when using macOS 27 where connecting to local network devices such as a real 3DS would always fail (e.g. Artic Base, system files setup). | @OpenSauce04 #2428

libretro

  • "Stereoscopic 3D Mode" and "Stereoscopic 3D Depth" settings are now available for the libretro core. | @XenuIsWatching #2339

Technical

  • The MXE build is now compiled using an LLVM+Clang based build environment, replacing the previous GCC-based stack. | @OpenSauce04 #2392
    • Huge thanks to @kleisauke, who for about a year and a half has been thanklessly maintaining an unofficial LLVM MXE plugin in a GitHub repository with only a single star. Without their work, making this happen would have taken much longer than it did.
  • Added copyright years to all source code license headers. | @PabloMK7 #2415
  • Implemented a workaround for a current compiler bug in MSVC. | @PabloMK7 #2410
  • Added a new CMake option CITRA_ADDRESS_SANITIZE. | @PabloMK7 #2402

Azahar 2126.0

2126.0 release
Release notes · 26 files

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. | @0x48kirneh #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