[Scene Switch] MissionControl v0.9.2 released

A new fix to MissionControl has been released, the sysmodule demonstrates itself as the bluetooth version of the sys-con  system module that allows you to pair a vast majority of controllers to the Switch console.

 

This new version fixes just a couple of critical issues introduced in the previous version 0.9.1 which saw the introduction of the long awaited support for the PlayStation 3 console controller .

The first problem was caused by setting a USB interface filter that used the same parameters as the one used by the module hid.

This would have caused the module to stop receiving USB connect events hid, breaking support for official and third-party USB wired dongles and controllers.

The second issue led to a Mission Control crash if the Bluetooth pairing database was full while trying to pair a Dualshock 3 controller.

Characteristics

  • It supports all versions of Switch firmware.
  • Connect up to 8 Bluetooth controllers simultaneously without switches and without additional hardware.
  • Use native HOS menus for controller binding, button remapping (firmware 10.0.0+) etc.
  • Rumble and motion control support (compatible controllers only).
  • Low input lag.
  • File-based virtual controller memory that allows you to store and retrieve data such as analog stick calibration.
  • Spoofing the name and address of the host Bluetooth adapter.
  • The module mc.mitmadds extension IPC commands that can be used to interact with the bluetooth process without affecting the system state.

Supported controllers

The following controllers are currently supported. If you have a third-party variant of one of the following or a Bluetooth controller that hasn’t been listed, please consider submitting an issue with controller details, including vid/pid, to request support.

  • Nintendo Wii Remote + extensions (Nunchuck, Classic Controller, Classic Controller Pro, SNES Mini, TaTaCon (Taiko drum), MotionPlus).
  • Nintendo Wii Balance Board (experimental).
  • Nintendo WiiU Pro Controller.
  • Sony DualShock3 Controller (PlayStation 3). New!!
  • Sony DualShock4 Controller (PlayStation 4).
  • Sony Dualsense Controller (PlayStation 5).
  • Sony Dualsense Edge Controller. New!!
  • Microsoft Xbox One S/X Controller (not to be confused with Series S/X controllers – they use Bluetooth LE, which is not currently supported)*.
  • Microsoft Xbox Elite Wireless Controller Series 2.
  • NVidia Shield Controller (2017 model).
  • Ouya controllers.
  • Gamestick Controllers.
  • Gembox Controller.
  • iCade Controllers.
  • Ipega Controllers (9017s, 9023, 9055, 9062S, 9076, 9078, 9087 9096 confirmed working. Others may work too).
  • g910 Wireless Bluetooth Controller.
  • Xiaomi Mi Controllers.
  • Steelseries Free.
  • Steelseries Nimbus.
  • Steelseries Stratus Duo.
  • GameSir G3s.
  • GameSir G4s.
  • GameSir T1s.
  • GameSir T2a.
  • Hori Onyx.
  • 8bitDo SN30 Pro Xbox Cloud Gaming Edition.
  • 8BitDo ZERO (Most other 8BitDo controllers have a Switch mode available. May require firmware update).
  • PowerA Moga Hero.
  • Power A Moga Pro.
  • Power A Moga Pro 2.
  • Mad Catz CTRLR
  • Razer Raiju Tournament.
  • Razer Serval.
  • Mocute 050.
  • Mocute 053. NEW!!
  • Gen Game S3.
  • AtGames Legends Pinball Controller.
  • Hyperkin Scout.

 

Note: Not all Xbox One wireless controllers support Bluetooth. The older variants use a proprietary 2.4Ghz protocol and cannot be used with the Switch console. See here for information on identifying the Bluetooth variant.

 

Requirements

  • A hackable Nintendo Switch console with an updated version of the Atmosphère Custom Firmware. Other custom firmwares are not supported.
  • Compatible Bluetooth controllers.

Installation

Download the archive .zipand extract it directly to the root directory of your SD card. The console must be restarted for MissionControl to become active.

It is recommended after rebooting to also unplug physically connected controllers from the console, delete the pairing database and reconnect via Bluetooth to ensure existing Switch controllers have the correct hardware ID stored and can be recognized correctly.

To delete the database, go to System Settings->Controllers and Sensors->Disconnect Controller.

 

Important: Atmosphère >= 1.1.0 is required to run this version. Using an older version of Atmosphère will cause Mission Control to crash on startup. It is also recommended that users upgrading from the previous version of MissionControl clear the pairing database and rebind the controllers. Failure to clear the old entries could cause non-switch controllers to be incorrectly detected.

 

Usage

Install MissionControl to the SD card, restart the Switch console, and pair the controllers as you normally would via the Controllers > Switch Grip/Order screen . Once paired, the controllers will automatically reconnect when woken up.

Most native features should work (except for things like firmware update). If you find something that doesn’t work, open an issue.

Controller association

Supported controllers each have their own methods of entering bind/sync mode. Below are instructions for entering this mode for each supported type.

Wii controllers (U)

Press the red sync button on the back of the controller. Controller LEDs flash rapidly.

Dualshock 3 controllers

  • Pairing Dualshock 3 controllers works a little differently than regular Bluetooth controllers in that it requires the use of a USB cable.
  • To pair the controller, navigate the screen as usual Change Grip/Order.
  • Connect the controller to the console via the USB cable (you will need a USB-C OTG adapter if in portable mode to do this).
  • When the red LEDs on the player start flashing, remove the USB cable and press the button . Wait a few seconds and you should see the usual notification Pairedthat the controller is now paired with the console.
  • You can reconnect to the console from now on by simply pressing the button .

Dualshock controllers4

Press and hold the  +  buttons simultaneously  until the light bar starts flashing. When done correctly, the flashing pattern will resemble a heartbeat, otherwise it will flash periodically.

Xbox One controllers

Press and hold the guide button (X) until the LED starts flashing. Then press and hold the small sync button on the back near the charging port until the LED starts flashing more rapidly.

You should also make sure the controller firmware is up to date, as older firmwares were known to have flakey bluetooth.

For other controllers refer to the controller user manual for how to put it into sync mode.

Other controllers

Refer to your controller user manual for information on how to put it into sync mode. Note that many generic Bluetooth controllers can boot in one of several modes.

Usually you could choose something like HID, PC or Android mode to make it work properly.

Module configuration

A template for the configuration file will be installed in /config/MissionControl/missioncontrol.ini.template.

To change the default settings of the form, copy the template to /config/MissionControl/missioncontrol.iniand uncomment/edit the settings you want to change.

The file is only scanned on startup, so any changes you make will require a restart to take effect. There is currently only a small set of configuration settings, but this will be expanded in future releases.

  • [general]These are the general settings for the Mission Control functions.
    • enable_rumbleEnable/disable rumble support for unofficial controllers.
    • enable_motionEnable/disable support for motion controls.
  • [bluetooth]These settings can be used to spoof the Switch console’s bluetooth to appear as another device. This can be useful (in combination with a link key) if you want to use the controller on multiple devices without having to re-pair each time you switch. Please note that changing these settings will invalidate the console information stored in any previously paired controller and will require re-pairing.
    • host_nameSubstitute the name of the Bluetooth host adapter.
    • host_addressReplace the bluetooth host adapter address.
  • [misc]These are various controller-specific settings, etc.
    • enable_dualshock4_lightbarEnable/disable the colored LED light bar on Sony Dualshock4 controllers.
    • enable_dualsense_lightbarEnable/disable the colored LED light bar on Sony Dualsense controllers.
    • enable_dualsense_player_ledsEnables/disables the white LEDs of the player indicator under the Dualsense touchpad.
    • dualsense_vibration_intensitySets the intensity of the Dualsense vibration, 12.5% ​​per increment. Valid range [1-8] where 1=12.5%, 8=100%.

Removal

To functionally uninstall Mission Control and its components, simply delete the following directories from the SD card and restart the console.

  • /atmosphere/contents/010000000000bd00
  • /atmosphere/exefs_patches/bluetooth_patches

If you want to completely remove all traces of installed software (except telemetry), you may also want to follow these additional steps:

  • Remove the following directory from the SD card.
    • /config/MissionControl
  • Clear the Bluetooth pairing database via Impostazioni di sistema->Controller e sensori->Disconnetti controller.

Features planned/in progress

Below is a list of features I’m currently working on or would like to look into in the future, roughly in descending order of priority. Requests are welcome if you have an idea that you think might be useful.
  • Rhombus support.
  • Support for motion controls.
  • Bluetooth LE support.
  • USB wired controllers.
  • MITM UART to allow for the application of button bindings and other future functionality to joycons in handheld mode.
  • Configurations for controllers:
    • Turn rumble on/off.
    • Turn on/off motion controls.
    • Identify as Pro Controller or Joycon
    • Set the controller body/button colors.
    • Invert the axes of the analog stick.
    • Analog stick dead zones.
  • Companion apps:
    • Association database management:
      • View information about the associated controller.
      • Clear database.
      • Export database to file.
      • Import existing database from file.
    • Controller management/diagnostics.
      • Manage controller configurations.
      • View raw HID report data.
      • Test buttons/analog sticks.
      • Download SPI flash (official controllers only).
    • New implementation of controller detection/matching.
  • Tesla overlays.
  • Keyboard and mouse support.
  • Gamecube mode (analog trigger support).
  • USB wired controllers.

Known issues and limitations

  • Motion controls not currently supported.
  • Non-Switch controllers cannot be used to wake the system from sleep.
  • Controllers using the Bluetooth LE (BLE) standard are not currently supported and will not connect to the system.
  • Xbox One Elite V2 controllers cannot complete the pairing process with the console and in some cases cause them to crash. Without access to a physical controller there isn’t much I can do to debug the process.
  • Xbox One, Wii/WiiU and (especially) some Dualshock v1 controllers may take some time to be detected and subsequently paired with the console. Be patient and re-enter the controller’s sync mode several times if necessary. Once synced, the controllers should work normally.
  • The Xbox One button layout was changed at some point in a firmware update. Make sure your controller firmware is up to date if you are having issues with incorrect button mappings. Both layouts are now supported.
  • The reported controller battery levels may be incorrect. I rely entirely on reverse engineering notes found on the internet for these. In many cases I do not own the controller and there is simply no information available so these controllers will always show full battery. Any help to improve this is welcome.
  • Several users have reported knockoff WiiU controllers that cannot be detected by the console during Bluetooth detection. Unfortunately I think they are using an incompatible bluetooth chipset.

FAQs

Question: Does it work on <insert CFW here>?
Answer: No. MissionControl will only work with Atmosphère. This is not some petty act of malice towards other Custom Firmware and their users. Others simply don’t (currently) provide the necessary framework for this sysmodule to work.

Question: Does this support USB controllers?
Answer: No. MissionControl is Bluetooth only for now.

Question: Does it work with sys-con installed?
Answer: Yes, I have received several reports from users that the two can be used together without any problems.

Question: Installing this crashed my console !!!!!11!!1!11
Answer: No. If you get title related errors when you restart your console 0100000000000008, you are almost certainly using an outdated version of Atmosphere. Always install the latest version and follow the MissionControl installation instructions again.

Question: How can I use it with multiple sysNAND/emuMMC boot configurations?
Answer: Pairing controllers on multiple unique HOS installations requires multiple pairing databases and is essentially the same as pairing with two different consoles. The only exception is if you paired the controllers before making copies of sysNAND. For now you will need to rebind your controllers when switching back and forth. In the future I hope to include an option to load/store the database to the SD card to avoid this problem.

Question: Why did my official Joycon/Switch Pro controllers stop working via Bluetooth after installing MissionControl?
Answer: You can pair these controllers via Joycon rails or a USB connection. In these cases a junk hardware ID is stored in the pairing database and the controller is not identified. Failure to identify a controller means I don’t know how its input data should be handled, so I ignore it. This issue can be resolved by physically disconnecting the controller from the console, deleting the pairing database with the System Settings->Controllers and Sensors->Disconnect Controller option, then reconnecting via Bluetooth at the Change Socket/Order screen. This should no longer be a problem with the latest version of MissionControl.

Question: Why is my 3rd party knockoff controller not working?
Answer: Many third-party controllers also use useless hardware IDs, making them difficult to reliably identify. If a controller can’t be identified, I ignore it, as I have no idea how to process the incoming data. I’m currently trying to find an alternative way to identify them without causing problems elsewhere. Like above.

Question: Xbox One controller buttons are not mapped correctly. You can fix it?
Answer: You haven’t read the Known Issues and Limitations section , have you? you need to update the controller firmware to the latest version. This can be done on Windows using the Xbox Accessories app. You can also do this on the Xbox itself.

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

Question: Can you add support for Xbox 360 controllers?
Answer: No. These do not use Bluetooth. Test the sys-con with a wireless USB adapter.

Question: Can you add Bluetooth audio support?
Answer: No. The bluetooth module on the switch implements only a small set of services needed to operate the hidden controllers. 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 services necessary for audio transport, for which any sane person would require an open source reimplementation of the bluetooth module to have access to the low-level functions required to run it.

Changelog v0.9.1

  • Added support for Sony Dualshock 3 controller.
  • Added support for Mocute 053 controller.
  • Added configuration option .inito select preferred Dualshock 3 player LED pattern.
  • Added configuration option .inito control the polling rate used by Dualshock 4 controllers.
  • Replaced the configuration option .inito enable/disable the LED lightbar on Sony controllers with a brightness control setting.
  • Rename some of the other configuration options .ini.
  • Wiimote dpad is now mapped to the left analog stick when in landscape orientation to improve compatibility with games that don’t allow dpad input for movement.

New options inside the configuration file

  • Added setting dualshock3_led_modeto select between Switch and PS3 style player LED models.
  • Added dualshock4_polling_rateto change the polling rate used by Dualshock 4 controllers.
    • enable_dualshock4_lightbar-> dualshock4_lightbar_brightness.
    • enable_dualsense_lightbar-> dualsense_lightbar_brightness.
    • These two settings have been changed from a boolean value to enable/disable the LED lightbar to an integer value that controls brightness.
  • Renamed enable_dualsense_player_leds-> dualsense_enable_player_ledsto be consistent with other setting names.

Changelog v0.9.2

  • Changed the usb interface filter used in the Dualshock 3 pairing so as not to clash with the default filter used by the module hid.
  • Fixed an issue where the system crashed when trying to pair a Dualshock 3 controller when the Bluetooth pairing database contains the maximum number of paired hid devices.

Download: MissionControl v0.9.1

Download: Source code MissionControl v0.9.1

Source: gbatemp.net