⚠️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.
Azahar 2126.0-rc1 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.
- This change improves emulation accuracy by more closely mirroring the behaviour of real hardware.
- 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.
- 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.
- This change includes most of the multiplayer functionality found in the desktop version of 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
-cand-xoptions. | @OpenSauce04 #2084- See
azahar --helpfor more info.
- See
- 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
- For the following languages, these UI strings currently remain untranslated as before due to no translation being available for use in upstream Qt:
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_PRESENCECMake option has been renamed toENABLE_DISCORD_RPC. Downstream users/maintainers should compensate for this accordingly. | @OpenSauce04 #2216 - The
ENABLE_QT_TRANSLATIONCMake option is now enabled by default, addingqt6-tools-devor 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_lupdatecall. | @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