# MissionControl: using Wii, PlayStation and Xbox controllers on a Nintendo Switch

> MissionControl is an Atmosphère sysmodule that lets a hacked Switch accept Bluetooth controllers from other consoles through Nintendo's own pairing menus. It supports a long list of pads, but it is not a general Bluetooth bridge and it does not run on stock firmware.

**ndeadly/MissionControl** — Use controllers from other consoles natively on your Nintendo Switch via Bluetooth. No dongles or other external hardware neccessary.

- Repository: https://github.com/ndeadly/MissionControl
- Stars: 3,551 · Forks: 179
- Language: C++
- License: GPL-2.0
- Published: 2026-09-23 · Updated: 2026-09-23 · Language: en
- Canonical page: https://hysenlabs.com/projects/ndeadly-missioncontrol

## What MissionControl actually solves on a Switch

Nintendo's console accepts its own Joy-Cons and Pro Controllers over Bluetooth and little else. A DualShock 4 or a Wii U Pro Controller will not appear in the system's pairing screen, and the usual workaround is a USB dongle that presents itself as a licensed pad. MissionControl removes the dongle from that equation by running inside the console's Bluetooth stack instead of beside it.

The README describes the target audience plainly: owners of a hackable Switch running Atmosphère custom firmware who already own controllers from other consoles. It is not a tool for a stock console, and it is not a general-purpose Bluetooth bridge for keyboards, mice or headsets. The supported list is long but specific, covering Wii Remotes with their extensions, the Wii Balance Board as an experimental entry, Wii U Pro, DualShock 3, DualShock 4, DualSense and DualSense Edge, the Bluetooth variant of the Xbox One S/X pad, the Xbox Elite Wireless Controller Series 2, and a spread of third-party pads from 8BitDo, GameSir, Steelseries, Razer, PowerA and others.

That list is the product. Everything else is plumbing that makes the listed pads behave like Pro Controllers.

## How the sysmodule sits inside Atmosphère

MissionControl is not an app you open. The README states it is primarily a sysmodule loaded by Atmosphère at boot and running indefinitely alongside the rest of the operating system. There is currently no Mission Control app to launch, and pairing happens through Nintendo's own menus.

The repository layout shows the shape of it. The build produces `mc_mitm.nsp`, which the Makefile places under `atmosphere/contents/010000000000bd00/exefs.nsp`. Two entries are written into `mitm.lst` in that same folder: `btdrv` and `btm`. Those are the system processes the module intercepts. A `boot2.flag` is created so Atmosphère starts the module early, and `exefs_patches` are copied into `atmosphere/` to patch the firmware's own binaries. A template config lands at `config/MissionControl/missioncontrol.ini.template`.

The `mc.mitm` module also adds extension IPC commands, which the README says can be used to interact with the `bluetooth` process without interfering with the state of the system. That is the mechanism behind the project's other features: spoofing the host Bluetooth adapter name and address, unlocking button remapping and stick calibration for third-party licensed Pro Controllers, and enabling JoyConDroid without root. The README also notes a file-based virtual controller memory that stores data such as analog stick calibration between sessions.

Button mapping is deliberately positional rather than literal. The README says buttons are mapped as closely as possible to the physical layout of a Switch Pro Controller, so A/B and X/Y are swapped on Xbox-style pads rather than following what is printed on the button. Two combos, `MINUS + DPAD_UP` and `MINUS + DPAD_DOWN`, are provided across controllers.

## Installing MissionControl and pairing a first controller

The installation path in the README is a file copy, not a package install. Download the latest release zip and extract it to the root of the SD card, allowing folders to merge and existing files to be overwritten. Then reboot the console. The README gives no installer script and no command line tool for this step; it is a manual merge onto the card.

The README carries a version warning that matters more than the copy step. Atmosphère 1.11.2 or newer is required to run the latest release on firmware 22.5.0 and above, and using an older Atmosphère will cause MissionControl to crash or freeze the system on boot. Check that before you reboot.

If you prefer to build from source rather than use the release zip, the Makefile exposes a `dist` target that assembles the release layout. The relevant commands are short:

```bash
make dist
```

That target builds `mc_mitm`, creates the content directory named by `MC_MITM_TID`, copies the built `mc_mitm.nsp` into it as `exefs.nsp`, writes the `btdrv` and `btm` lines into `mitm.lst`, touches `flags/boot2.flag`, copies `exefs_patches` into `dist/atmosphere/`, and zips the result as `MissionControl-$(BUILD_VERSION).zip`. The build also generates `mcmitm_version.cpp` with the version derived from the latest git tag.

Once the module is loaded, pairing uses the console's normal controller menu. Put the third-party pad into its pairing mode and let the Switch find it. After the first pairing, the README says controllers reconnect automatically when woken, so re-pairing is not needed each time. One caveat from the same section: unofficial controllers cannot wake the console.

## Where MissionControl stops working

The clearest limitation is firmware support. MissionControl requires Atmosphère, and the README states other custom firmwares are not supported. A Switch that cannot run Atmosphère is out of scope entirely, and a Switch on stock firmware has no path to this module.

The second limitation is the controller list. Bluetooth LE devices are excluded: the README explicitly warns that Xbox Series S/X controllers use Bluetooth LE, which is not currently supported, and that the supported Xbox pad is the older Xbox One S/X Bluetooth variant. Not every Xbox One wireless controller has Bluetooth either, and the README points to Microsoft's own support page for identifying the Bluetooth variant. Older Xbox pads using the proprietary 2.4GHz protocol cannot be used with the Switch at all.

Third, the Wii Balance Board is marked experimental. That is the project's own label, and it signals that the entry is not held to the same standard as the rest of the list.

Fourth, there is no rollback documentation. The README does not describe how to uninstall MissionControl or how to recover a console that fails to boot after an Atmosphère version mismatch. Because installation merges folders onto the SD card and overwrites files, undoing it means knowing which files were replaced, and the README does not say. Back up the card before you start.

Finally, this is the wrong tool if you want a controller that is not on the list. The README invites issue reports for unlisted pads and third-party variants, but that is a request queue, not a guarantee.

## MissionControl compared with a Bluetooth dongle

The obvious alternative is a USB dongle such as the 8BitDo wireless adapter or a Mayflash Magic-NS, which plugs into the dock and presents a third-party controller to the console as a licensed pad. The difference in approach is where the translation happens. A dongle is external hardware that speaks Bluetooth on one side and the Switch's wired controller protocol on the other, so it works on any console, hacked or not, and it needs no custom firmware. MissionControl does the translation inside the console's own Bluetooth stack, which is why the README can say no dongles or other external hardware are necessary, and why it works in handheld mode where there is no USB port to spare.

That trade is not free. The dongle path works on a stock Switch and survives firmware updates without a rebuild; MissionControl depends on Atmosphère, on the firmware version, and on the module being loaded at boot. The dongle also typically supports one controller per unit unless you buy more, while the README claims support for up to 8 non-switch Bluetooth controllers simultaneously without additional hardware. If you already run Atmosphère and want several pads at once, the sysmodule approach is the one that scales without buying hardware per controller.

The other alternative is to use the controllers Nintendo sells. Joy-Cons and Pro Controllers work on any Switch, need no custom firmware, and can wake the console. MissionControl only makes sense once you have decided you want a specific pad that Nintendo's firmware will not accept.

## Licence, maintenance and the cost of keeping up

MissionControl is GPL-2.0. If you redistribute a modified build, or ship a product that links the `mc_mitm` module, the GPL's source and copyleft terms apply. This is a summary of the licence identifier in the repository, not legal advice; read the LICENSE file if you plan to redistribute.

The maintenance picture is concrete. The repository is not archived, and the last push was on 2026-06-18, the same day as the v0.15.2 release. Before that, v0.15.1 landed on 2026-04-07 and v0.15.0 on 2026-04-04, so releases have been arriving in small increments rather than one large drop.

The upgrade cost is the part that catches people. MissionControl tracks Atmosphère and firmware changes, and the README's own warning about Atmosphère 1.11.2 on firmware 22.5.0+ shows what a mismatch looks like: a crash or a freeze at boot, not a graceful failure. Every console firmware update and every Atmosphère update is a chance to re-check compatibility before rebooting. Building from source adds a git dependency, since the Makefile derives the version from `git describe --tags` and the current branch and hash, so a source tarball without git history will not produce the same version string.

## Conclusion

Adopt MissionControl if you already run Atmosphère on a hackable Switch and want to use a Wii U Pro Controller, DualShock 4, DualSense or one of the listed third-party pads without buying a dongle. Skip it if your console is not hackable, if you rely on a controller that is not on the supported list, or if you want Bluetooth LE devices such as Xbox Series S/X pads, which the README says are not currently supported. Before installing, verify your Atmosphère version is at least 1.11.2 if you are on firmware 22.5.0 or newer, confirm your exact controller model appears in the supported list, and keep a copy of the SD card contents so you can revert the merged folders.

## FAQ

### What does MissionControl do on a Nintendo Switch?

It is an Atmosphère sysmodule that lets the console use Bluetooth controllers from other consoles as if they were native Pro Controllers, with no dongle or external hardware. Pairing and configuration happen through Nintendo's own system menus, and there is currently no Mission Control app to open.

### How do I use MissionControl on a Switch?

Install it by extracting the latest release zip to the root of the SD card, merging folders and overwriting existing files, then rebooting so Atmosphère loads the module. After that, put your controller into pairing mode and pair it through the console's normal controller menu; it reconnects automatically when woken, though unofficial controllers cannot wake the console.

### How do I install MissionControl on a Switch?

Download the latest release zip and extract it to the root of your SD card, allowing folders to merge and overwriting any existing files, then reboot the console. The README warns that Atmosphère 1.11.2 or newer is required for the latest release on firmware 22.5.0 and above, and that an older Atmosphère will crash or freeze the system on boot.

## Sources

- [Issues](https://github.com/ndeadly/MissionControl/issues)
- [License: GPL-2.0](https://github.com/ndeadly/MissionControl/blob/master/LICENSE)
- [ndeadly/MissionControl on GitHub](https://github.com/ndeadly/MissionControl)
- [README](https://github.com/ndeadly/MissionControl/blob/master/README.md)
- [Releases](https://github.com/ndeadly/MissionControl/releases)

---

Hysen Labs editorial analysis, written from the project's own repository and release notes. Cite the canonical page: https://hysenlabs.com/projects/ndeadly-missioncontrol
