Guides telling you how to “use BetterJoy with Citra” are describing a world that ended in March 2024, when Citra was shut down as part of the Yuzu settlement with Nintendo. The maintained successor is Azahar, and this page is about that program: what carried over from the Citra era, what we could verify about its current releases, and — just as important — what we could not verify about Switch-controller motion in it, stated as plainly as we can state it.
From Citra to Azahar
Azahar was formed from PabloMK7’s Citra fork merged with the Lime3DS project, and shipped its first release on 22 March 2025. It runs on Windows, macOS, Linux and Android, plus a Libretro core. Its stable line, per the project’s own release page as of our October 2026 check, stands at 2126.2 (a security-fix release), with a 2127.0 alpha series in prerelease above it. If a site is still handing you a “latest Citra build” in 2026, it is handing you a dead program from an unofficial mirror — Azahar is where 3DS emulation is actually maintained, and it is the only program this page discusses.
How motion worked in the Citra era
In Citra’s architecture, 3DS games that used the console’s gyroscope needed a motion feed the emulator could not get from a plain XInput pad. The standard solution was the one BetterJoy was built around: BetterJoy read the Switch controller, supplied buttons as a virtual XInput device, and streamed gyro data from its Cemuhook/DSU server (127.0.0.1:26760), which Citra consumed as a motion source. Thousands of working setups were built exactly this way, and the muscle memory of the community — “3DS motion means BetterJoy plus a UDP server” — comes from that era. Our gyro troubleshooting page documents that server model in detail, because Cemu users rely on the same one.
What is verified about Azahar + motion — and what is not
Here is the honest ledger, because Azahar pages elsewhere tend to assert more than anyone has documented:
- Verified: Azahar descends from Citra’s codebase and inherits its general input and motion architecture. The project is actively released on the 2126.x stable line.
- Not verified: We found no statement in Azahar’s official documentation or release notes confirming native SDL gyro support for Switch controllers, and no official specification of a DSU client for it. Claims in either direction — “Azahar reads Joy-Con gyro natively now, BetterJoy is obsolete” or “Azahar requires BetterJoy for motion” — go beyond what the project’s own publications support. We will not print either as fact.
The practical consequence: treat the DSU route as the known-working path to try, not a guarantee. Set up BetterJoy from the download page, pair your controller, leave BetterJoy running so its server is live at 127.0.0.1:26760, and then check your Azahar build’s Controls settings for a motion/UDP source option pointing at that address, exactly as Citra exposed it. If your build offers it, buttons via XInput plus motion via DSU is the Citra-era arrangement and the one with a track record. If a future Azahar release documents native SDL motion, prefer it — fewer moving parts always wins, the same verdict we give for Cemu and Dolphin — and we will update this page when the project publishes it.
The cross-platform catch
Azahar runs on macOS, Linux and Android. BetterJoy does not — it is a Windows program built on Windows drivers, full stop (see BetterJoy for Mac, Linux and Android). So on those platforms there is no DSU-from-BetterJoy option at all: you are relying on whatever the emulator and the operating system can read from the controller directly. That asymmetry is worth knowing before you design a setup around one machine or another: the BetterJoy motion route exists only where Windows does.
Reading old Citra guides in the Azahar era
Most surviving setup guides were written for Citra, including the widely copied BetterJoy ones. Their architecture still maps onto Azahar — virtual XInput pad for buttons, DSU server for motion, the 127.0.0.1:26760 address — because Azahar inherited that design. What does not map reliably is the screenshots: menu names, settings layout, and where the motion source lives have all been reorganised since 2024, and the 2127 alpha line is reorganising them further. So use old guides for the model and this page for the status, but navigate by your own build’s Controls section rather than any guide’s pictures — ours included. If a setting in your build contradicts a Citra-era screenshot, your build is right.
FAQ
Is Citra still safe or legal to download from the sites offering it?
Citra was discontinued in March 2024 and its official distribution is gone. Third-party “Citra download” sites are unofficial mirrors of a dead program; the maintained, supported path is Azahar from its own project site.
Does Azahar need BetterJoy for a Switch Pro Controller?
For buttons, no — a standard controller input path handles those. For gyro in motion-controlled 3DS games, the Citra-era DSU arrangement via BetterJoy is the path with a documented track record; native Switch-controller gyro in Azahar is, as of our check, unconfirmed by the project’s own documentation.
My DSU motion option isn’t where Citra had it. What now?
Azahar’s settings evolve between releases, and the 2127 alpha line is actively changing things. Check the Controls section of your exact build and the project’s current documentation rather than a screenshot from a Citra-era guide — including ours: if the option has moved or been renamed, the principle (client pointing at 127.0.0.1:26760, BetterJoy running) still tells you what you are looking for. The full index of related guides is on the emulators hub.
