Jump to content

MissionControl 0.6.0

Conéctate para seguir esto  

¿Quieres enterarte al momento de las nuevas descargas? Síguenos en Twitter!

1 Screenshot

MissionControl es una aplicación que nos permite utilizar mandos de otras consolas en nuestra Nintendo Switch vía Bluetooth. No es necesario el uso de dongles USB o cualquier otro tipo de hardware externo.

Características de MissionControl

  • Soporte para todas las versiones del firmware
  • Emparejamiento de controladores bluetooth de forma nativa vía pantalla de cambio de agarre/orden
  • Remapeo nativo de los botones (a partir del firmware 10.0.0)
  • El módulo btdrv-mitm agrega comandos IPC de extensión que se pueden usar para interactuar con el proceso bluetooth sin interferir con el estado del sistema.

Mandos soportados

Actualmente MissionControl ofrece soporte para estos mandos:

  • Nintendo Wii Remote + extensiones (Nunchuck, Classic Controller, Classic Controller Pro, SNES Mini, TaTaCon (Taiko drum))
  • Nintendo WiiU Pro Controller
  • Sony DualShock4 Controller
  • Sony Dualsense Controller
  • Microsoft Xbox One S/X Controller (no confundir con los de Series S/X. Estos usan Bluetooth LE, que por ahora no están soportados.
  • NVidia Shield Controller
  • Ouya Controller
  • Gamestick Controller
  • Gembox Controller
  • iCade Controller
  • Ipega Controllers (9017s, 9023, 9055, 9062S, 9076, 9078, 9087 9096 funcionan seguro. Otros modelos pueden funcionar o no)
  • Xiaomi Mi Controller
  • Steelseries Free
  • Steelseries Nimbus
  • Steelseries Stratus Duo
  • GameSir G3s
  • GameSir G4s
  • GameSir T1s
  • Hori Onyx
  • 8bitDo SN30 Pro Xbox Cloud Gaming Edition
  • 8BitDo ZERO (La mayoría del resto de mandos de 8BitDo tienen modo Switch disponible. Puede que requiera actualizar el firmware)
  • PowerA Moga Hero
  • PowerA Moga Pro
  • PowerA Moga Pro 2
  • Mad-Catz C.T.R.L.R
  • Razer Raiju Tournament
  • Razer Serval
  • Mocute 050
  • Gen Game S3
  • AtGames Legends Pinball Controller

Nota: No todos los mandos inalámbricos de Xbox One soportan Bluetooth. Antiguas variantes usa un protocolo de 2.4Ghz propietario y no pueden ser usados con Switch.

Requisitos para usar MissionControl

  • Nintendo Switch hackeable funcionando, por lo menos, con la versión 0.14.2 de Atmosphere. Otros CFW no están soportados.
  • Mando Bluetooth compatible.

Instalación de MissionControl

Descarga la última versión desde esta misma página de forma completamente gratuita, descompríme el archivo y copia el contenido a la carpeta raíz de tu tarjeta SD, permitiendo que las carpetas se fusionen entre ellas y reescribiendo los archivos existentes. Tras esto hay que reiniciar la consola para que MissionControl pase a estar activo.

Es recomendable después de reiniciar la consola desconectar cualquier mando conectado físicamente con la consola, borrar la base de datos de emparejamientos y volver a emparejarlos vía Bluetooth para asegurarnos de que los mandos de Switch tienen el hardware ID correcto almacenado y pueden ser reconocidos debidamente. Para borrar la base de datos dirígete a Ajustes - Controladores y sensores - Desconectar controladores.

Uso

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.

Other Controllers Please refer to your controller's user manual for information on how to put it in sync mode.

How it works

MissionControl works by Man-In-The-Middling the bluetooth system module and intercepting its initialisation IPC commands and system events, and translating incoming/outgoing data to convince the Switch that it's communicating with an official Pro Controller.

To achieve this, the btdrv-mitm module obtains the handles to bluetooth system events and shared memory when the system attempts to initialise them over IPC via the btm and hid modules. It then creates its own secondary versions of these and passes their handles on instead of the original. This allows modifications to be made to any data buffers before notifying (or not) the system. Additionally, the WriteHidData IPC command is intercepted to translate or drop outgoing requests to the controller. In the case of the latter, fake responses can be written directly to the buffer in shared memory.

Intercepting initialisation IPC commands also allows homebrew to properly make use of the bluetooth service. Normally, calling any of the IPC commands that would initialise or finalise system events would either crash the console, or invalidate the event handles held by system processes. With btdrv-mitm we are able to hand out alternative event handles when homebrew attempts to initialise an interface, and redirect the real system events to those instead of the events held by system processes.

IPS patches to the bluetooth module are provided to (re)enable the passing of abitrary pincodes when Bluetooth legacy pairing is used (Nintendo hardcodes a value of '0000', ignoring IPC arguments). This enables Wii(U) devices to be paired with the console.

The btm service is now also MITM'd, allowing for faking controller names on the fly while retaining the original names in the pairing database.

Planned Features

  • Controller management application
  • Rumble support
  • Motion support
  • Keyboard and mouse support

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. They will however still store their details to the database if they are able to successfully sync. 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.
  • Some Dualshock4 v1 controllers may appear to not be working with the console. Users have reported that repeatedly attempting to pair may eventually cause them to sync up. Once synced they should work as usual.
  • 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.

Frequently Asked Questions

Does this run on <insert CFW here>? 

No. MissionControl will only run under Atmosphère. This is not some petty act of malice toward other CFWs and their users. Others simply don't (currently) provide the framework neccessary for this sysmodule to work.

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.

Installing this bricked my console!!!!!11!!1!11 

No. If you are seeing errors about title 0100000000000008 upon rebooting your console you are almost certainly using an outdated Atmosphere version. Install the latest version from the official github release and follow the MissionControl installation instructions again.

How can I use this with multiple sysNAND/emuMMC launch configs? 

Pairing controllers across multiple unique HOS installations requires multiple pairing databases and is essentially the same as pairing with two different consoles. The only exception being the case where you paired the controller(s) prior to making sysNAND copies. For now you will have to re-pair your controllers when switching back and forth. In the future I hope to include an option to load/store the database on the SD card to avoid this 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. 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 physicall disconnecting the controller from the console, deleting the pairing database with the System Settings->Controllers and Sensors->Disconnect Controllers option, and then re-pairing via bluetooth in the Change Grip/Order screen. This should no longer be an issue with the latest version of MissionControl.

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. Same as above.

My Xbox One Controller buttons are mapped incorrectly. Can you fix it? 

You didn't read the Known Issues and Limitations section, did you? You need to update your 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.

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.

Credits

  • switchbrew for the extensive documention of the Switch OS.
  • devkitPro for the homebrew compiler toolchain.
  • SciresM for his dedicated work on the Atmosphère project, libstratosphere and general helpfulness with all things Switch related.
  • misson20000 for his handy debug monitor Twili and IPC logger Ilia
  • dekuNukem, CTCaer, shinyquagsire23 and others for their work in reversing and documenting the switch controller communication protocol.
  • friedkeenan for helping to test Wii extension controller support.
  • Everyone else over at the ReSwitched discord server who helped answering technical questions.

by ndeadly.


Que novedades incluye la versión 0.6.0

Released

  • Se agregó soporte completo para el firmware 13.0.0.
  • Se agregaron parches ips de bluetooth para 13.0.0.
  • El directorio / config / MissionControl / controllers ahora se crea según sea necesario si no está presente. Esto evita posibles choques, por ejemplo. si el usuario ha eliminado este directorio o no ha podido instalar el módulo correctamente.
  • Se corrigió el potencial nivel incorrecto de la batería y se informó el estado de carga del controlador Wii U Pro. (Gracias @GaryOderNichts)
  • El estado de alimentación externa / USB ahora está configurado para los controladores que se sabe que lo notifican.
  • Los controladores de Xbox One ahora informan que la batería está llena cuando se alimentan a través de USB, en lugar del valor cero informado por el controlador.

¿Tienes alguna duda, petición o aporte? Utiliza el foro!



×
×
  • Crear nuevo...