AppImage setup (SteamOS & Linux)
Every release since v0.7.0 ships a self-contained Linux AppImage (Stable: NX2navi-Linux-0.10.1-x86_64.AppImage, 101.56 MB; Preview: NX2navi-Linux-0.10.2-x86_64.AppImage, 101.71 MB). On Steam Deck, perform the one-time build in Desktop Mode with external power connected:
# 1. Verify checksum against SHA256SUMS-linux.txt
sha256sum -c SHA256SUMS-linux.txt
# 2. Mark executable and launch the guided GUI
chmod +x NX2navi-Linux-0.10.1-x86_64.AppImage
./NX2navi-Linux-0.10.1-x86_64.AppImagePoint the Launcher to your legally obtained Switch 2 1.1.1 .nup file on an internal NVMe or high-speed ext4 microSD with at least 36 GB free. When compilation finishes, right-click the generated ocarina binary (or the AppImage) and choose Add to Steam to launch directly from Gaming Mode.
Kernel, Vulkan 1.3 & udmabuf
NX2navi maps guest memory regions and translates Switch 2 GPU workloads straight to Vulkan 1.3. Verify these host capabilities on Arch, Fedora, Ubuntu 24.04+, Nobara, Bazzite, or SteamOS:
- Linux kernel 6.7+
- Uses fast
PAGEMAP_SCANwrite-tracking ioctls for low-overhead guest memory protection. - Vulkan 1.3 extensions
- Requires
VK_EXT_external_memory_hostandVK_EXT_mesh_shader(Mesa 24.2+ RADV on AMD/Steam Deck, or proprietary NVIDIA 555+ driver). GPUs without mesh shaders automatically usemesh_fallback = auto. - /dev/udmabuf host heap
- Allocating pinned host-visible guest memory works fastest when
/dev/udmabufis accessible to your user andudmabuf.size_limit_mb=1024is set. Without it, NX2navi falls back cleanly to standard host memory import. - 16 GB RAM build flag
- If building from CLI on a 16 GB RAM Linux laptop or Steam Deck via
tools/make_game.py, pass--jobs 4so parallel Clang processes never trigger the Linux OOM killer.
# Optional: raise udmabuf limit on desktop Linux distros
sudo modprobe udmabuf
echo 1024 | sudo tee /sys/module/udmabuf/parameters/size_limit_mbNative Linux vs Proton upscaling
Upstream docs/README-BuildKit.md (lines 131-135) documents an essential architectural fact that trips up many Linux configs:
| Feature | Native Linux AppImage / ./ocarina | Windows ocarina.exe under Proton |
|---|---|---|
| Spatial / temporal upscaling | upscaler = fsr (Vulkan FSR 1 EASU/RCAS) + standin_filter = easu | taa = fsr3 or fsr4 = 1 via amd_fidelityfx_vk.dll |
| AMD FSR 3.1 Frame Generation | Inactive natively (amd_fidelityfx_vk.dll is a Windows DLL) | Active via framegen = fsr3 (e.g. 45 fps → 90 fps on OLED) |
| NVIDIA DLSS & Frame Gen | Active via Linux NGX (libnvidia-ngx-dlssg.so, fg_mult = 2..6) | Active via Windows NGX (framegen_multiplier = 2..4) |
| Steam Deck auto profile | device_profile = auto selects deck (1280x800, 40/45 fps, cores = 4) | Manual nx2navi.ini tuning required |
Steam Deck OLED 90Hz nx2navi.ini
For crisp frame pacing on Steam Deck OLED in Gaming Mode, lock the SteamOS Quick Access refresh slider to 90Hz and set fps_limit = 45 (exact 2:1 cadence) with native Steam Deck glyphs:
device_profile = auto
operation_mode = handheld
window_size = 1280x800
game_aspect = window
game_res = window
aspect = fit
fps_limit = 45
realtime = 1
highfps_fix = 1
vk_present = fifo
upscaler = fsr
standin_filter = easu
sharpness = 80
astc_bc = 1
prompts = steamdeck
motion = 1Controllers for SDL3 & Gyro
NX2navi reads SDL3 gamepads directly with 6-axis motion aiming (motion = 1), HD rumble (rumble_hd = 1), and prebuilt Nintendo, Xbox, PlayStation, and Steam Deck button prompt packs:
| Controller | NX2navi Input & Prompt Features | Connection | Amazon |
|---|---|---|---|
| 8BitDo Ultimate 2 Bluetooth Controller | Switch / XInput mode, 6-axis gyro aim & Hall-effect sticks (prompts = nintendo) | Bluetooth / 2.4G / USB-C | View controller |
| Sony DualSense Wireless Controller | 6-axis gyro bow & hookshot aim, adaptive triggers & prompts = playstation | USB-C / Bluetooth | View controller |
| GameSir Cyclone 2 Wireless Controller | TMR sticks, low-latency PC wireless & gyro motion in Switch mode | 2.4G Dongle / Bluetooth / USB-C | View controller |
| Xbox Wireless Controller | Plug-and-play Windows & Linux SDL3 mapping with prompts = xbox | Bluetooth / USB-C | View controller |
As an Amazon Associate, this site earns from qualifying purchases.
