Azahar 2126.0 ships new Windows build with a frame pacing caveat
The 3DS emulator's latest release adds a Windows MXE build, an experimental GPU timing feature, and a raft of game-specific fixes, with one known bug awaiting its patch in 2126.1.
AI-drafted from 1 source. This story was written with AI from the outside reporting listed under Sources, and checked by automated tools before it went up. The originals have the full detail.
Azahar, the community-maintained 3DS emulator, has put out version 2126.0, and the most eye-catching change is the least flashy one. Windows users now get builds compiled with MXE, a cross-compilation toolchain that lets developers build Windows binaries on Linux, and it comes with a small, already-diagnosed bug.
According to the release notes, the new MXE build has a “minor known issue” where frame pacing may be slightly inconsistent. The developers say a fix has already been written but needs more testing, and will land in the follow-up 2126.1 release. Until then, the team reckons “most users likely won't notice this issue” and is still encouraging people to use the new build. The notes also confirm the older MSYS2-based Windows build is on its way out, due to be replaced entirely by MXE in version 2127.0.
Why the build swap matters
Switching build systems is the kind of change that barely touches gameplay but matters a great deal to anyone who has to maintain the thing. MXE builds are meant to eventually take over Windows releases outright, so 2126.0 functions as a soft rollout: get the new pipeline in front of users, flag the wrinkle honestly, and patch it once testing catches up. It is not glamorous, but it is the sort of housekeeping that keeps an emulator project shipping reliably across platforms.
An experimental switch for GPU timing
The more consequential change under the hood is what the notes call improved “GPU interrupt queue & GPU timing emulation”, exposed as a new toggle called “Simulate 3DS GPU timings” in the graphics settings. It is disabled by default and described as “highly experimental”, which is developer-speak for promising but risky. The notes say it fixes GPU timing issues in Luigi's Mansion 2: Dark Moon, making the game playable without resorting to the “delay render thread” workaround, and separately fixes a bug in Super Mario 3D Land that stopped players loading a save file after finishing the game. The trade-off is honestly flagged too: games that already run under 60 frames per second on real 3DS hardware because of dynamic frame rate limits will still run under 60 on Azahar with the feature switched on. The developers describe it as “a big change behind the scenes” that “may inadvertently introduce issues due to its large scope”, and are actively asking users to report anything that breaks.
Smaller fixes with outsized effects
The rest of the changelog is the usual long tail of an active emulator project. A crash fix for invalid vertex array data is credited with stopping a crash in the credits of Mario & Luigi: Superstar Saga. Fixes to APT and HTTPC communication handling repair the Miiverse posting applet, which had been failing to upload posts. There is a new default setting to skip duplicate frames, aimed at making frame generation software behave properly, and a toggle letting users tell the emulated 3DS that headphones are plugged in, since a handful of games, Super Mario 3D Land among them, quietly change their audio output when they detect wired headphones. Filesystem handling for special files has also been refactored ahead of the next release, fixing compressed 3DSX homebrew files that were failing to load, though the notes warn that system files configured on 2126.0 or later will not work on older Azahar versions.
None of this is transformative on its own. What is unconfirmed is how the experimental GPU timing feature behaves across the wider game library beyond the two titles named in the notes, and whether the frame pacing fix due in 2126.1 fully resolves the Windows build issue. For now, Azahar users get an incremental update with one visible caveat and a promise that the fix is already written.
Sources
- Azahar 2126.0 (GitHub)
Image: GitHub