scarletnx / ScarletNX
git clone https://github.com/scarletnx/ScarletNX.git
ARM64 Recompiler
+11
stars, 24h · #3,104
+~49
stars, 7 days · #4,064
+215
stars, 30 days · #3,681
215
★ total · +30% this week
30
forks · 87 open issues
Star history (as recorded here)
LanguageC
LicenseGPL-3.0
Created2026-10-11 (13d ago)
Last pushtoday
Watchers2
OwnerOrganization
GitHub topics
Links
- GitHub: github.com/scarletnx/ScarletNX
- Homepage: https://scarletnx.github.io/
- Releases · Issues · Hacker News mentions
README excerpt
# ScarletNX Wimsy, the ScarletNX mascot Discord: https://discord.gg/tRTRXXbyjp (my god why don't we just use IRC like good people?) A GPLv3 static ARM64 to x86 recompiler with a Switch translation layer for Linux, Windows, FreeBSD and Android. ## Quick start Each push to `main` that builds everywhere becomes a nightly in scarletnx/nightly, the newest 30 kept, with each open pull request's builds. The latest: ScarletNX-linux-x86_64.AppImage and ScarletNX-linux-aarch64.AppImage for Linux (`chmod +x` it first; ScarletNX-linux-ppc64le.AppImage, ScarletNX-linux-riscv64.AppImage and ScarletNX-linux-loongarch64.AppImage are cross-built for PowerPC64 LE, RISC-V and LoongArch, when their jobs built. ScarletNX-linux-ppc64.AppImage, for PowerPC64 BE, runs Linux AArch64 programs only), ScarletNX-windows-x86_64.zip for Windows (run `bin\scarletnx.exe`) and ScarletNX-android-universal.apk (Android). Games need a Vulkan 1.3 driver. Keys and games must be dumped from your own console. Started with no arguments, the program opens the launcher. **Setup device keys** installs your `prod.keys`. For NSPs, also put `title.keys` in `~/.switch` (`%USERPROFILE%\.switch` on Windows). **Load Switch NSP/XCI/NRO** then picks a dump, extracts and recompiles it and starts the game, which the **Games** tab lists from then on. See Usage for the command line and Folders for where games, saves and settings go. The shared ARM64 recompiler lives under `src/common/`. Switch Horizon HLE and Maxwell graphics live under `src/nx/`. The CPU-only Linux AArch64 runtime lives under `src/gnuabi/` and builds without the Switch graphics or media dependencies: [code] It runs static and dynamically linked programs, which start other processes, talk through pipes and read and write files through a sysroot, as QEMU's `-L` gives one (`linux/` of the data folder by default). See Linux ABI execution and QEMU validation for the sysroot, the JIT and AOT modes, supported syscalls, and current limits. The NX executable is also installed as `scarletnx-switch`. The recompiler is also a library on its own, `libscarletnx-recompiler`: a program hands it ARM64 or AArch32 code in memory and runs the result in its own process with its own SVC handler, with no Switch runtime behind it. See The recompiler as a library. Install the build tools first. On Debian/Ubuntu: [code] If your distribution provides `libsdl3-dev`, install it too. Otherwise CMake builds a pinned SDL3 using the X11 and audio development packages above. SDL2 is not a substitute for SDL3. You also need a Vulkan 1.3 driver to run games. See Build prerequisites for Wayland, other systems, and the SDL3 troubleshooting steps. Then build: [code] For encrypted dumps, put `prod.keys` (and `title.keys`, for NSPs) in `~/.switch`, or pass them with `--keys` and `--title-keys`. Decrypted DNSP/DXCI content needs no keys. [code] Run the same command again after an interruption. Completed extraction and recompilation are skipped, but the game always st