Mods, Controls & Prompts

How NX2navi loads RomFS asset replacements, ahead-of-time ExeFS code patches, custom controller glyph packs, SDL3 bindings, 6-axis gyro, and 5.1 surround audio.

Carbon Black Xbox Wireless Controller showing ABXY face buttons, directional pad, and analog thumbsticks
Advertisement

Atmosphere mods/ folder layout

NX2navi includes a built-in mod loader rooted at mods/ next to ocarina.exe (overrideable via mods_dir in nx2navi.ini). Each subfolder inside mods/ is one mod, accepting either flat folders or standard Atmosphere contents/0400486024DEC000/ paths:

mods/
  hd-hud-example/
    romfs/                 # Overrides matching game files at runtime
  gameplay-patch/
    exefs/                 # .ips or .pchtxt targeting nsobid-E0F3CCFA...
    cheats/                # Standard Switch cheat text files
mods_order & mods_disabled
Control load priority with comma-separated folder names in mods_order = base,tweaks (later entries win file conflicts) and mute packs temporarily via mods_disabled = tweaks.
mods_rebuild = auto (Code mods)
Because NX2navi is statically recompiled ahead of time rather than interpreted by an ARM JIT, exefs .ips/.pchtxt patches targeting main build e0f3ccfa trigger an automatic local rebuild into ocarina-mod.exe (or ocarina-mod on Linux) when mod hashes change.
RomFS-only mods
Texture, audio, message, and layout replacements inside romfs/ mount instantaneously at launch with zero recompilation.

Button prompts & glyph baking

During the initial local build, tools/pad_prompts.py generates five ready-to-swap button-icon patch archives (romfs-patches-nintendo, xbox, playstation, steamdeck, and pc). Switch between them instantly in F1 or nx2navi.ini:

Advertisement
prompts = auto          # auto | nintendo | xbox | playstation | steamdeck | pc
pad_layout = auto       # auto | nintendo | xbox | playstation (swaps A/B & X/Y confirm)
sprint_button = l3      # off | l3 | b
sprint_mode = toggle    # toggle | hold

Modders designing custom UI icon themes can edit the source glyph sheets fed into tools/pad_prompts.py and regenerate a custom romfs-patches-* pack.

SDL3, 6-axis gyro & DualShock 3

Input Capabilitynx2navi.ini KeysNotes
6-Axis Motion Aimmotion = 1, motion_sens = 100Works out of the box over USB/Bluetooth on DualSense, DualShock 4, Switch Pro, 8BitDo (Switch mode), and Steam Deck internal gyro.
Switch HD Rumblerumble = 1, rumble_hd = 1Sends dual-band frequency envelopes to Switch Pro and DualSense controllers; set rumble_hd = 0 for standard ERM motors.
Direct DualShock 3 USBds3 = 1Reads Sony Sixaxis / DualShock 3 controllers directly over USB without third-party XInput wrapper drivers.
Mouse Camera Lookmouse_mode = direct, mouse_sens = 100direct maps raw mouse deltas to free camera; stick emulates right-stick deflection.
Per-Button Remappingbind_a, bind_b, bind_cam_up...Every controller action and keyboard chord can be rebound inside nx2navi.ini or the F1 Controls tab.

5.1 Surround, mic & BC3 textures

audio_channels = auto | stereo | 5.1
Outputs discrete 6-channel surround PCM over HDMI eARC or multi-channel desktop DACs when 5.1 (or auto on a 5.1/7.1 Windows endpoint) is active.
microphone = 1
Enables host audio input for any game mechanic polling microphone amplitude.
discord_rpc = 1
Publishes current Hyrule region presence to Discord Desktop; set discord_rpc = 0 for complete offline privacy.
astc_bc = 1 / astc_bc1 = 1
Transcodes Switch 2 ASTC blocks into native desktop BC3/BC1 textures, cutting VRAM consumption in half compared to uncompressed RGBA8 (astc_bc = 0).

Controllers 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:

ControllerNX2navi Input & Prompt FeaturesConnectionAmazon
8BitDo Ultimate 2 Bluetooth ControllerSwitch / XInput mode, 6-axis gyro aim & Hall-effect sticks (prompts = nintendo)Bluetooth / 2.4G / USB-CView controller
Sony DualSense Wireless Controller6-axis gyro bow & hookshot aim, adaptive triggers & prompts = playstationUSB-C / BluetoothView controller
GameSir Cyclone 2 Wireless ControllerTMR sticks, low-latency PC wireless & gyro motion in Switch mode2.4G Dongle / Bluetooth / USB-CView controller
Xbox Wireless ControllerPlug-and-play Windows & Linux SDL3 mapping with prompts = xboxBluetooth / USB-CView controller

As an Amazon Associate, this site earns from qualifying purchases.

Advertisement

Common questions

Verified answers for Windows, Linux, Steam Deck, and local .nup builds.

Can I use Ship of Harkinian .otr / .o2r mods in NX2navi?

No. Ship of Harkinian uses custom .otr/.o2r archives built around N64 assets, whereas NX2navi mounts Switch 2 1.1.1 romfs/ files and e0f3ccfa .ips/.pchtxt patches.

Why does my 8BitDo controller show Xbox icons instead of Switch icons?

In 2.4G XInput mode, Windows reports the controller as an Xbox pad so prompts = auto picks Xbox glyphs. Either switch the controller to Switch mode (which also exposes 6-axis gyro!) or set prompts = nintendo explicitly.

How do I revert to unmodded vanilla gameplay without deleting my mods folder?

Launch ocarina.exe directly instead of ocarina-mod.exe, or list the mod folder names in mods_disabled inside nx2navi.ini.