🛰
MissionControl
Bluetooth controller HID adapter
GitHub ↗

MissionControl

~6 min read · Third-party project overview

MissionControl (by ndeadly) is a sysmodule that hooks the Switch's Bluetooth stack to natively support non-Nintendo controllers — PS5 DualSense, PS4 DualShock 4, Xbox Series/One, Wii Remote, and a long list of third-party pads. Fully wireless, no USB adapter needed.

Supported controllers

ControllerStatusNotes
DualSense (PS5)FullRumble + motion ◎ / no adaptive triggers
DualShock 4 (PS4)FullRumble + motion ◎ / touchpad mapped to button
Xbox Series X|SFullBT-capable models only. Rumble ◎
Xbox One (BT version)FullOriginal micro-USB models can't pair; later USB-C models work
Wii Remote / Wii U ProYesRumble ◎ / Nunchuck mappable
Steam Controller (BT)PartialTouchpad behavior is rough
Stadia ControllerNeeds BT modeMust enable BT mode beforehand
Joy-Con / 1st-party ProNative1st-party doesn't go through MissionControl

Setup

  1. Have Atmosphère set up first.
  2. Download the latest zip from GitHub releases.
  3. Extract to your SD root → /atmosphere/contents/010000000000bd00/ appears.
  4. Reboot. In Settings → Controllers → "Change Grip/Order", open the pairing screen.
  5. Put your controller in pairing mode (DualSense: Create+PS / DS4: Share+PS / Xbox: hold Pair button).
  6. Pairs in seconds — Switch sees it as a "Pro Controller".
Persistent pairing: check /config/MissionControl/missioncontrol.ini for enable_rumble = true, enable_motion_controls = true, etc. Once paired, controllers auto-reconnect in both dock and handheld.

Rumble & motion

DualSense and DS4 gyros map to the Switch's motion API, so motion-aim titles like Splatoon work fine with third-party pads. Rumble translates from HD Rumble down to standard rumble motors — smoothness drops a notch but it's barely noticeable in practice.

Caveat: MissionControl hooks the official Bluetooth stack, so on rare occasions it can destabilize official Pro Controllers. If you're debugging weird controller issues, temporarily disable MissionControl to isolate.

Relation to the secretchat.tel loader

MissionControl and our loader both run under Atmosphère, so they coexist on the same SD. Run Apex through the loader while using a DualSense or Xbox pad over Bluetooth — the combination works. MissionControl itself runs on SysMMC or EmuMMC.

Related