Jump to content

MissionControl 0.5.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.5.0

Released

  • Soporte agregado para los siguientes controladores
    • Torneo Razer Raiju
    • Gamesir T1s
    • Edición para juegos en la nube 8BitDo SN30 Pro Xbox
    • Mad Catz C.T.R.L.R para Samsung
    • Steelseries Stratus Duo
    • controlador iCade
    • LanShen X1Pro
    • Controlador AtGames Legends Pinball
  • Se agregó soporte completo para el firmware 12.0.0
  • Se agregaron parches ips para todos los firmwares 12.x.x para relajar las comprobaciones de clase de dispositivo agregadas en 12.0.0. Esto permite que ipega y varios otros controladores que se anuncian a sí mismos como teclados u otros dispositivos de entrada se emparejen una vez más.
  • Se agregaron parches ips para todos los firmwares 12.x.x para hacer que Wii / WiiU y otros controladores que usan el emparejamiento de código PIN antiguo funcionen nuevamente
  • Se agregó soporte de ruido inicial para los principales controladores de consola seleccionados
  •  Se agregó un archivo ini de configuración de módulo global
  • Se agregó soporte para falsificar el nombre y la dirección del adaptador de host Bluetooth
  • Se agregó soporte para los LED del reproductor Sony Dualsense / color de la barra de luces y los informes de nivel de batería (gracias @ Hydr8gon)
  • Se agregó soporte para el antiguo formato de informe del controlador Xbox One. La actualización del firmware del controlador ya no es un requisito para el mapeo correcto de los controles.
  • Se agregó soporte para un formato de informe alternativo para los controladores Mocute 050 en ciertas revisiones de firmware
  • Se agregó una opción de configuración para deshabilitar la barra de luces LED en los controladores Sony Dualshock4 y Dualsense.
  • Los combos de botones para los botones de Inicio y Captura ahora también se aplican a los controles oficiales de Nintendo. Tenga en cuenta que actualmente la consola ignorará los combos de los botones que se supone que no deben estar presentes en el controlador (por ejemplo, botón de inicio en el joycon izquierdo, botón de captura en el derecho)
  • Se corrigió un error causado por pasar datos de calibración de fábrica de stick analógico no válidos para controladores emulados. Este error afectó la escala de los datos de la palanca analógica para todos los controladores hasta cierto punto, pero fue más notorio para los controladores de Xbox One, donde los valores de la palanca alcanzarían el máximo cuando la palanca estaba inclinada solo alrededor del 60-70%.
  • Se agregaron demoras entre la lectura / escritura de la memoria del controlador al inicializar las extensiones del controlador de Wii. Esto debería hacer que la detección de controladores de extensión sea más confiable para las personas que están experimentando problemas.
  • Se redujo la tasa de informes predeterminada del controlador Dualshock4 de 1000 Hz a 125 Hz para que coincida con el controlador Switch Pro. Esto resuelve un problema en el que el uso de un controlador Dualshock4 podría degradar gravemente el rendimiento de wifi y causar problemas con la reproducción de LAN.
  • El comando SetTsi ahora solo está bloqueado para que no se envíe a los controladores donde se sabe que crea problemas (actualmente, los controladores de Xbox One y Gamesir). Esto resuelve un problema en el que un controlador Dualshock4 conectado junto con un controlador oficial de Nintendo experimentaría un jitter significativo, haciéndolo inadecuado para juegos de ritmo. El bloqueo de este comando también puede haber influido en los problemas de wifi mencionados anteriormente.
  • Se corrigió un error por el cual algunos botones de wiimote no se podían presionar con un controlador de extensión conectado.
  • Se corrigió un error por el cual los controladores Xiaomi siempre mostraban niveles de batería bajos o vacíos.
  • Precisión mejorada de los informes de nivel de batería en general.
  • Se eliminó la bifurcación personalizada de libnx ahora que todos los cambios relevantes se han transmitido. El submódulo libnx ahora apunta a la rama maestra oficial y, en el momento de escribir este artículo, Mission Control se puede construir con la versión oficial de devkitPro sin la necesidad de compilarlo usted mismo.
  • Se eliminó la llamada a la función CheckApiVersion. Esto estaba destinado al uso interno de Atmosphere y era una de las principales razones por las que Mission Control a menudo requería una actualización después de una nueva versión de Atmosphere.
  • Se actualizó para usar la nueva semántica sf introducida en Atmosphere 0.18.0
  • Actualizado para utilizar la última libstratosphere. Esto reduce el tamaño del módulo en casi un 50%.
  • Se agregó una rama de git, se confirmó el hash y se etiquetó la versión al generar un archivo .zip para su distribución

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



×
×
  • Crear nuevo...