Homebrew RELEASE MissionControl: Use controllers from other consoles natively via Bluetooth

impeeza

¡Kabito!
Member
Joined
Apr 5, 2011
Messages
6,410
Trophies
3
Age
46
Location
At my chair.
XP
18,996
Country
Colombia
I haven't read the whole thread... Is there any chance to use this on SX OS?

I will probably eventually switch to atmosphere when it gets a fully completed release.

Also is there any chance you can add a option to emulate the gamecube controller so that we can use analog triggers in the supported games like GRID??????????
SX OS no way unless THEY add support. You can open a support request with they. You pay for it. And they make the code close source so NOBODY can make anything compatible

The GameCube isn't bluetooth controller and this module. IS ONLY FOR BLUETOOTH controllers as stated on the readme


MissionControl

Use controllers from other consoles natively on your Nintendo Switch via Bluetooth. No dongles or other external hardware neccessary.​

Features
  • Supports all firmware versions
  • Pair Bluetooth controllers natively via Change Grip/Order screen
  • Native button remapping (firmware 10.0.0+)
  • btdrv-mitm sysmodule adds extension IPC commands that can be used to interact with the bluetooth process without interfering with the state of the system.
Supported Controllers

Currently, the following controllers are supported. If you have a third-party variant of one of the below, or a Bluetooth controller that isn't listed, consider submitting an issue with the controller details, including vid/pid, to request support.​
  • Nintendo Wii Remote + extensions (Nunchuck, Classic Controller, Classic Controller Pro, SNES Mini)
  • Nintendo WiiU Pro Controller
  • Sony DualShock4 Controller
  • Microsoft Xbox One S Controller*
*Not all Xbox One wireless controllers support Bluetooth. Older variants use a proprietary 2.4Ghz protocol and cannot be used with the Switch.​

Requirements
  • Hackable Nintendo Switch running the latest Atmosphère CFW
  • Compatible Bluetooth controller
Installation

Download the latest release .zip and extract to the root of your SD card. A console reboot is required in order for MissionControl to become active.​

Note: Currently a modified boot2 is required to launch btdrv-mitm early enough to intercept Bluetooth initialisation. This will get overwritten any time Atmosphère is updated on SD, and will need to be replaced.

Usage

Install MissionControl to your SD card, reboot the console and then pair controllers as you normally would via the Controllers->Change Grip/Order screen. Once paired, controllers will reconnect automatically when woken up.​

Most native features should just work (with the exception of things like firmware update). If you find something that's broken please create an issue.
Pairing controllers

The supported controllers each have their own methods to enter pairing/sync mode. Below are instructions on entering this mode for each supported type

Wii(U) Controllers
Press the red sync button on the back of the controller. The controller LEDs will blink rapidly

Dualshock4 Controllers
Press and hold the PS + share buttons simultaneously until the lightbar starts blinking. When done correctly the blink pattern will resemble a heartbeat, otherwise it will blink periodically.

Xbox One Controllers
Press and hold the guide(X) button until the LED starts blinking. Then press and hold the small sync button on the back near the charging port until the LED starts blinking more rapidly.
You should also ensure your controller firmware is up to date, as old firmwares were known to have flakey bluetooth.
Planned Features
  • Controller management application
  • Rumble support
  • Motion support
  • Keyboard and mouse support
Frequently Asked Questions

Does this support USB controllers?
No. MissionControl is Bluetooth-only for now.

Does this work with sys-con installed?
Yes, I have had several reports from users that the two can be used together without issue.

Why have my official Joycon/Switch Pro Controllers stopped working over Bluetooth after installing MissionControl?
It is possible to pair these controllers via the Joycon rails or a USB connection. In these cases a garbage hardware ID gets stored to the pairing database and the controller fails to be identified. This issue can be resolved by using the Disconnect Controllers option in System Settings with the controller disconnected from the system, and then re-pairing via bluetooth in the Change Grip/Order screen.

Why doesn't my 3rd-party knockoff controller work?
Many 3rd-party controllers also use garbage hardware IDs, making them difficult to identify reliably. If a controller can't be identified, I ignore it, since I have no idea how to process the incoming data. I am currently trying to find an alternate way to identifying them without creating problems elsewhere.

Can you add support for PS3 controllers?
It's on my list of things to look into. The pairing process is non-standard and may require modifications to the bluetooth driver. If it can be done non-destructively I will add support eventually.

Can you add support for Xbox 360 controllers?
No. These don't use Bluetooth. Try sys-con with a wireless USB adapter.

Can you add bluetooth audio support?
No. The bluetooth module on the switch only implements a small set of services required to make hid controllers work. Of this small set of services, only a handful of high-level functions are exposed to the rest of the system. Adding audio support would require implementing the services neccessary for audio transport, for which any sane person would require an open-source re-implementation of the bluetooth module in order to have access the low-level functions required to pull it off.
Known Issues and limitations
  • Non-Switch controllers cannot be used to wake the system from sleep.
  • Controllers that haven't had their hardware ID whitelisted for identification will not be recognised as connected. This can include some official Switch controllers. They will however still pair with the console and store their details to the database. If you encounter such a controller, please create an issue requesting support.
  • Wii(U) controllers can take a while to pair with the console. For some reason they are only detected at the end of a device discovery cycle. Be patient and re-press the sync button on the controller if neccessary.
  • Xbox One button layout was changed at some point in a firmware update. Please ensure your controller firmware is up to date if you have issues with incorrect button mappings.
  • Games with motion controls experience a drift on non-switch controllers when motion controls are enabled. I will fix this in a future release. For now most games should allow you to disable motion controls as a workaround.

Link: https://github.com/ndeadly/MissionControl


Man, this is HUGE thanks a lot for all your work
 
Last edited by impeeza,
  • Like
Reactions: mathew77

ndeadly

Well-Known Member
OP
Member
Joined
Nov 5, 2018
Messages
468
Trophies
0
Age
36
XP
2,623
Country
Australia
It’s possible to, in future releases, that wiiu pro controller wake the switch?
I don't think so. I'm pretty sure it's a hardware feature specific to Switch controllers. I'd love to be proven wrong.

The GameCube isn't bluetooth controller and this module. IS ONLY FOR BLUETOOTH controllers as stated on the readme
I think the user is asking if it's possible to map controllers like Xbox One and Dualshock4 with analog triggers as a Gamecube controller. It might be possible, but I have no idea how they handle the analog triggers when connecting wired Gamecube controllers with the adapter.
 

cucholix

00000780 00000438
Member
Joined
Jan 17, 2017
Messages
3,246
Trophies
1
Age
44
XP
6,293
Country
Chile
It might be possible, but I have no idea how they handle the analog triggers when connecting wired Gamecube controllers with the adapter.
AFAIK it’s controlled by software, and so far only GRID Autosport make use of the GCN analog trigger.
If the software isn’t designed for analog triggers, the GCN analog will only work as if they were digital.
 
Last edited by cucholix,

ndeadly

Well-Known Member
OP
Member
Joined
Nov 5, 2018
Messages
468
Trophies
0
Age
36
XP
2,623
Country
Australia
AFAIK it’s controlled by software, and so far only GRID Autosport make use of the GCN analog trigger.
If the software isn’t designed for analog triggers, the GCN analog will only work as if they were digital.
Yeah, what I mean to say is, I have no idea where this data is being read from. The standard switch reporting format doesn't have the concept of analog triggers. I would imagine that games supporting this feature are still reading their inputs through the system hid module somehow.
 

bbert

Well-Known Member
Member
Joined
Oct 20, 2018
Messages
104
Trophies
0
Age
38
XP
867
Country
Philippines
first of all. I wanna thank you sir for making this amazing homebrew feature. I loved it.
and just wanna ask if configuring the analog deadzone is possible? maybe it can be implemented in future release.
 

ndeadly

Well-Known Member
OP
Member
Joined
Nov 5, 2018
Messages
468
Trophies
0
Age
36
XP
2,623
Country
Australia
first of all. I wanna thank you sir for making this amazing homebrew feature. I loved it.
and just wanna ask if configuring the analog deadzone is possible? maybe it can be implemented in future release.
Cheers, glad you're enjoying it.

I'll add deadzone config in a future release once I have a setup in place for parsing config files and editing settings via the homebrew companion app. I think the switch already sets an outer deadzone on the controllers itself . No idea what percentage it uses by default though.
 

hippy dave

BBMB
Member
Joined
Apr 30, 2012
Messages
9,910
Trophies
2
XP
29,697
Country
United Kingdom
Cheers, glad you're enjoying it.

I'll add deadzone config in a future release once I have a setup in place for parsing config files and editing settings via the homebrew companion app. I think the switch already sets an outer deadzone on the controllers itself . No idea what percentage it uses by default though.
I seem to remember from the PC tool for modifying Joy-Con colours and other settings, that the standard controllers store their own deadzone settings in their own on-board memory, and it can be modified with said tool.
 

ndeadly

Well-Known Member
OP
Member
Joined
Nov 5, 2018
Messages
468
Trophies
0
Age
36
XP
2,623
Country
Australia
I seem to remember from the PC tool for modifying Joy-Con colours and other settings, that the standard controllers store their own deadzone settings in their own on-board memory, and it can be modified with said tool.
Yeah it's stored in the SPI flash on real switch controllers and read each time you connect them. I fake this data at the moment and the switch seems to accept all 0xff for most reads, which corresponds to uninitialised data. I was surprised it didn't blow up in my face because I send this as calibration data too. Pretty much the only thing I need to set with real values is the controller body colour, or else the whole thing shows up white in the controller applet.

Thinking about setting up "emuSPI" in the future and redirecting the reads to a file on the SD. That way we could take advantage of the builtin HOS features for reading/writing this stuff. Eventually I would like to add a bunch of joycon toolkit like functions to my companion app. Gotta tackle all these user error reports first before I can get to work on that...
 

evertonstz

Well-Known Member
Member
Joined
Jan 5, 2019
Messages
209
Trophies
0
Age
29
XP
557
Country
Brazil
I just didn't want to deal with config files, and people inevitably misconfiguring them them for now. I'm also not certain that other controllers won't have quirks that need to be worked around in code anyway.

Smort. Providing config files to people in initial releases would make your debuging life hell on earth. I made this mistake with one project I used to work and the amount of "bugs reports" that were actually people misconfiguring stuff were like 95% of the complains.
 
  • Like
Reactions: ndeadly

impeeza

¡Kabito!
Member
Joined
Apr 5, 2011
Messages
6,410
Trophies
3
Age
46
Location
At my chair.
XP
18,996
Country
Colombia
  • Like
Reactions: hippy dave

awdrifter

Well-Known Member
Newcomer
Joined
Oct 30, 2018
Messages
61
Trophies
0
Age
113
XP
309
Country
Antarctica
It did not work for me (FW 10.0.4, SX OS 3.0.4 Beta). When I put the PS4 controller in pairing mode and pres L1 and R1, the Switch still can't recognize it.

It did not work for me (FW 10.0.4, SX OS 3.0.4 Beta). When I put the PS4 controller in pairing mode and pres L1 and R1, the Switch still can't recognize it.

It didn't work for me. I guess wait for someone else to patch it for SX OS.
 
Last edited by awdrifter,

techx3

Member
Newcomer
Joined
Jul 16, 2009
Messages
11
Trophies
1
XP
291
Country
United States
In sx the contents are called titles the same as in reinx and Atmosphere until SciresM was given because the name titles had a confusion and a content changed it. That is, sx / title and sx / exefs_patches and reboot to load the patches.
 

Site & Scene News

Popular threads in this forum

General chit-chat
Help Users
    K3Nv2 @ K3Nv2: https://www.techradar.com/gaming/consoles-pc/ayns-new-gaming-handheld-looks-like-a-psp-and-it-mig...