Utiliza mandos de otras consolas de forma nativa en tu Nintendo Switch a través de Bluetooth. No se necesitan dongles ni ningún otro hardware externo.
mc.mitm
agrega comandos IPC de extensión que se pueden usar para interactuar con el proceso bluetooth
sin interferir con el estado del sistema.Actualmente, se admiten los siguientes controladores. Si tiene una variante de terceros de uno de los siguientes, o un controlador Bluetooth que no aparece en la lista, considere enviar una solicitud de problema de controlador.
* No todos los controladores inalámbricos de Xbox One son compatibles con Bluetooth. Las variantes más antiguas utilizan un protocolo propietario de 2,4 Ghz y no se pueden utilizar con el Switch. Consulte aquí para obtener información sobre cómo identificar la variante de Bluetooth.
Descargue la última versión .zip y extráigala a la raíz de su tarjeta SD, permitiendo que las carpetas se fusionen y sobrescriban cualquier archivo existente. Reinicia tu consola para activar el módulo y ¡listo!
IMPORTANTE: Se requiere Atmosphère >= 1.8.0 para ejecutar la última versión de Mission Control en el firmware 19.0.0. El uso de una versión anterior de Atmosphère hará que Mission Control falle o congele el sistema al arrancar.
Mission Control es principalmente un sysmodule (proceso en segundo plano) que Atmosphère carga en el momento del arranque y se ejecuta indefinidamente junto con el resto del sistema operativo. Permite el uso de controladores Bluetooth no compatibles como si fueran controladores Pro nativos. Esto significa que puedes emparejar y configurar nuevos controladores a través de los menús del propio sistema de Nintendo, sin la necesidad de cargar aplicaciones caseras adicionales. (Actualmente) no hay ninguna "aplicación" de Mission Control para abrir.
Los controladores primero deben emparejarse con la consola (ver a continuación) antes de poder usarlos. Una vez emparejados, los controladores buscarán y se volverán a conectar a la consola automáticamente cuando se despierten. No es necesario volver a emparejarlos cada vez. Tenga en cuenta que no se pueden utilizar controladores no oficiales para reactivar la consola.
Una vez conectados, los botones de su controlador se asignan lo más fielmente posible al diseño físico de un controlador Switch Pro. Esto significa que los botones A/B y X/Y se cambiarán por controladores que usen un diseño de botones estilo Xbox en lugar de usar lo que está impreso en el botón. Las combinaciones de botones MINUS + DPAD_UP
y MINUS + DPAD_DOWN
se proporcionan para que todos los controladores funcionen como una alternativa a los botones CAPTURE
y HOME
en los casos en que no haya suficientes botones frontales disponibles. Las asignaciones de botones se pueden cambiar desde el menú oficial del sistema en System Settings->Controllers and Sensors->Change Button Mapping
.
La mayoría de las demás funciones nativas deberían funcionar (con la excepción de cosas como la actualización del firmware). Si encuentra algo que no funciona, abra un problema de soporte en esta página de github.
Nintendo tomó algunas decisiones de nombres bastante confusas con los elementos del menú de su controlador. Los controladores se emparejan desde el menú del sistema en Controllers->Change Grip/Order
, y no Pairing New Controllers
o Search for Controllers
como el sentido común puede hacerle esperar. En esta pantalla, coloque su controlador en modo de emparejamiento (ver más abajo) y espere unos segundos. Si tiene éxito, debería ver una notificación Paired
en la parte superior izquierda de la pantalla. Su controlador ahora está emparejado y puede volver a conectarse en cualquier momento sin tener que volver a ingresar a esta pantalla. Solo es necesario volver a emparejarlo si ha conectado el controlador a otro dispositivo o emummc.
Cada uno de los controladores compatibles tiene sus propios métodos para ingresar al modo de emparejamiento/sincronización. A continuación se muestran instrucciones sobre cómo ingresar a este modo para algunos de los controladores de consola comunes.
Controladores de Nintendo Wii/WiiU Presione el botón rojo de sincronización en la parte posterior del controlador. Los LED del controlador parpadearán rápidamente.
Se recomienda realizar una calibración de la palanca analógica para estos tipos de controladores cuando corresponda, ya que cada controlador tiene un rango de palanca analógica y una posición central diferentes, pero a diferencia de los controladores Switch, no hay una calibración de fábrica almacenada.
Controlador Sony Dualshock3 Para emparejar este controlador, deberá conectarlo a la consola mediante un cable USB. Una vez que los LED del controlador comiencen a parpadear, desconecte el cable USB y presione el botón PS
.
Nota: para evitar comportamientos no deseados si usa el controlador en modo con cable USB, esto solo funciona desde la pantalla habitual Controllers->Change Grip/Order
.
Controladores Sony Dualshock4/Dualsense Mantenga presionados los botones PS
+ share
simultáneamente hasta que la barra de luces comience a parpadear. Cuando se hace correctamente, el patrón de parpadeo se parecerá al latido del corazón; de lo contrario, parpadeará a un ritmo constante.
Si tiene dificultades para emparejar el controlador con la consola, mantenga presionado el botón de reinicio en la parte posterior del controlador durante unos segundos y vuelva a intentarlo. A veces esto es necesario después de haberse conectado a una consola Playstation u otro dispositivo.
Controladores Microsoft Xbox One/Elite 2 Mantenga presionado el botón guide
( X
) hasta que el LED comience a parpadear. Luego presione y mantenga presionado el pequeño botón de sincronización en la parte posterior cerca del puerto de carga hasta que el LED comience a parpadear más rápidamente.
Nota: las versiones de firmware del controlador 5.xx.xxxx.x y superiores utilizan Bluetooth Low Energy y actualmente no son compatibles. Consulte las preguntas frecuentes para obtener instrucciones sobre cómo degradar a un firmware compatible.
Otros controladores Consulte el manual del usuario de su controlador para obtener información sobre cómo ponerlo en modo de sincronización. Tenga en cuenta que muchos controladores Bluetooth genéricos se pueden iniciar en uno de varios modos. Por lo general, desea elegir algo como el modo HID, PC o Android para que funcione correctamente.
Los controladores que se emparejan correctamente pero que aún no han sido compatibles oficialmente se mostrarán con botones rojos en el menú Controllers
para indicar que sus controles no están asignados. Abra un problema para solicitar soporte para dichos controladores.
Se instalará una plantilla para el archivo .ini de configuración en /config/MissionControl/missioncontrol.ini.template
. Para modificar la configuración predeterminada del módulo, copie la plantilla en /config/MissionControl/missioncontrol.ini
y descomente (elimine el encabezado ;
) y modifique cualquier configuración que desee cambiar. El archivo solo se analiza al inicio, por lo que cualquier cambio que realice deberá reiniciar para que surta efecto. Las entradas de configuración que no se pueden analizar/validar correctamente se ignoran. Actualmente sólo hay un pequeño conjunto de ajustes de configuración, pero se ampliará en futuras versiones.
[general]
Estas son configuraciones generales para las funciones de control de misión.
enable_rumble
Habilita/deshabilita el soporte de vibración para controladores no oficiales.enable_motion
Activa/desactiva la compatibilidad con controles de movimiento. [bluetooth]
Estas configuraciones se pueden usar para falsificar el bluetooth de su conmutador para que aparezca como otro dispositivo. Esto puede resultar útil (junto con una clave de enlace) si desea utilizar su controlador en varios dispositivos sin tener que volver a emparejarlo cada vez que cambia. Tenga en cuenta que cambiar esta configuración invalidará la información de su consola almacenada en cualquier controlador previamente emparejado y será necesario volver a emparejarlo.
host_name
Anula el nombre del adaptador de host bluetooth.host_address
Anula la dirección del adaptador de host bluetooth. [misc]
Estas son configuraciones diversas específicas del controlador, etc.
analog_trigger_activation_threshold
Establece el umbral para el cual ZL/ZR se consideran presionados para controladores con disparadores analógicos. Rango válido [0-100] por ciento.dualshock3_led_mode
Establece el comportamiento de los LED del reproductor Dualshock 3. Modos válidos [0-1] donde 0=Patrón de cambio, 1=Patrón PS3, 2=Híbrido (Patrón de cambio invertido para alinearse con las etiquetas numéricas en el controlador)dualshock4_polling_rate
Establece la tasa de sondeo para los controladores Sony Dualshock 4. Rango válido [0-16] donde 0=máx, 16=mín. Consulte aquí para conocer los valores de frecuencia correspondientes.dualshock4_lightbar_brightness
Establece el brillo de la barra de luces LED para los controladores Sony Dualshock 4. Rango válido [0-9] donde 0=apagado, 1=mín, 2-9=12,5-100% en incrementos de 12,5%.dualsense_lightbar_brightness
Configure el brillo de la barra de luces LED para los controladores Sony Dualsense. Rango válido [0-9] donde 0=apagado, 1=mín, 2-9=12,5-100% en incrementos de 12,5%.dualsense_enable_player_leds
Activa/desactiva los LED indicadores blancos del reproductor debajo del panel táctil Dualsense.dualsense_vibration_intensity
Establece la intensidad de vibración de Dualsense, 12,5% por incremento. Rango válido [1-8] donde 1=12,5%, 8=100%.Para desinstalar funcionalmente Mission Control y sus componentes, todo lo que necesita hacer es eliminar los siguientes directorios de su tarjeta SD y reiniciar su consola.
/atmosphere/contents/010000000000bd00
/atmosphere/exefs_patches/bluetooth_patches
/atmosphere/exefs_patches/btm_patches
Si desea eliminar por completo todos los rastros del software que alguna vez se haya instalado (excepto la telemetría), es posible que también desee seguir estos pasos adicionales.
Elimina el siguiente directorio de tu tarjeta SD
/config/MissionControl
Limpie la base de datos de emparejamiento de Bluetooth a través de System Settings->Controllers and Sensors->Disconnect Controllers
A continuación se muestra una lista de funciones en las que estoy trabajando actualmente o que me gustaría analizar en el futuro, aproximadamente en orden de prioridad descendente. Las solicitudes son bienvenidas si tiene una idea que cree que sería una característica útil.
/config/MissionControl/controllers
. Si alguna parte de este árbol de directorios se daña, los controladores pueden desconectarse cuando falla el intento de leer los datos de configuración.¿Esto se ejecuta en <insertar CFW aquí>? No. Mission Control solo funcionará bajo Atmosphère. Este no es un intento de bloquear a los usuarios de otros CFW, Atmosphere es simplemente el único que proporciona las extensiones necesarias para las comunicaciones MITM Bluetooth que hacen posible este módulo de sistema.
¿Usar esto me prohibirá el acceso a Internet? Actualmente no ha habido ningún caso confirmado de prohibiciones como resultado del funcionamiento de Mission Control. Dicho esto, ejecutar cualquier software no oficial bajo CFW siempre conllevará un riesgo de prohibición distinto de cero, y Nintendo podría cambiar sus criterios de prohibición en cualquier momento. Si bien Mission Control debería ser relativamente seguro, ya que simplemente emula la conexión de un controlador Pro, ciertamente sería posible detectar que has conectado controladores no oficiales a la consola si Nintendo estuviera interesado en hacerlo. Úselo a su propia discreción.
¿Esto es compatible con controladores USB? No, actualmente Mission Control solo funciona con Bluetooth. Por ahora puedes usar el sys-con de cathery para controladores USB.
¿Funciona esto con sys-con instalado? Sí, los dos se pueden ejecutar simultáneamente sin problemas.
Mi consola falla al arrancar debido a este módulo del sistema. ¿Qué puedo hacer? Si ves fallas al arrancar con el ID del título de Mission Control ( 010000000000bd00
), es probable que hayas actualizado recientemente a una nueva versión de Atmosphere y se requiera una actualización de Mission Control, o que estés ejecutando una versión anterior de Atmosphere que es no es compatible con la última versión de Mission Control. Los fallos en sm
(ID de título 0100000000000004
) pueden indicar incompatibilidades de versión entre su Atmosphere actual y uno o más de sus módulos de sistema homebrew. Esto puede ser causado por Mission Control, o podría ser otro módulo de sistema personalizado que usa libstratosphere, incluso si parece que Mission Control es el culpable ( ldn_mitm
y emuiibo
son infractores comunes). Si acaba de actualizar Atmosphere, siempre debe verificar si también se han publicado actualizaciones para los módulos del sistema que utiliza. Los errores de qlaunch (ID de título 0100000000001000
) pueden ser una señal de que tiene demasiados módulos de sistema personalizados en ejecución y está agotando los recursos limitados del sistema disponibles para ellos. Verifique su carpeta /atmosphere/contents
y verifique que realmente necesita todo lo que hay allí. Si no sabe lo que está haciendo, puede ser más fácil simplemente eliminar esta carpeta por completo, reinstalar atmósfera y luego reinstalar explícitamente solo los módulos del sistema que necesita.
Instalé Mission Control pero no hace nada. ¡Ayuda! Mission Control es principalmente un proceso en segundo plano. No hay cambios visuales en su sistema que indiquen que está instalado, aparte de que su controlador se conecta exitosamente a través de los menús oficiales de Nintendo. Si ha seguido las instrucciones de uso y emparejamiento anteriores y no puede hacer que funcione, aquí tiene una lista de verificación básica para la solución de problemas.
DPAD_UP
+ MINUS
juntos. Esto actuará como botón de captura y tomará una captura de pantalla si el módulo se está ejecutando. Si no ve una notificación de captura de pantalla, es probable que Mission Control no se esté cargando. Esto suele deberse a una mala instalación y puede ocurrir por varios motivos: ¿Cómo puedo usar esto con múltiples configuraciones de inicio sysNAND/emuMMC? El emparejamiento de controladores en múltiples instalaciones HOS únicas requiere múltiples bases de datos de emparejamiento y es esencialmente lo mismo que emparejar con dos consolas diferentes. La única excepción es el caso en el que emparejó los controladores antes de realizar copias sysNAND. Por ahora tendrás que volver a emparejar tus controladores cuando cambies de un lado a otro. En el futuro espero incluir una opción para cargar/almacenar la base de datos en la tarjeta SD para evitar este problema. Desde la versión 1.5.1, Atmosphere ahora contiene el código que contribuí para sincronizar la base de datos de emparejamiento de bluetooth entre sysNAND y emuMMC a través de un archivo en la tarjeta SD. Esto se puede activar agregando enable_external_bluetooth_db = u8!0x1
en la sección [atmosphere]
en atmosphere/config/system_settings.ini
. Nota: esta característica requiere que la atmósfera esté funcionando para poder funcionar. Como tal, no se puede utilizar para sincronizar sysCFW/emuMMC con stock/OFW.
¿Puedo reasignar los botones del controlador usando Mission Control? Sí. Dado que Mission Control emula los controladores Pro oficiales, puedes reasignarlos utilizando el método oficial introducido por Nintendo en el firmware 10.0.0. Puede encontrar las opciones de reasignación en el menú del sistema en System Settings->Controllers and Sensors->Change Button Mapping
.
Mi consola muestra una notificación de "Emparejado" pero mi controlador no se conecta, ¿qué pasa? Su controlador se ha emparejado exitosamente con la consola, pero se desconectará poco después, antes de que pueda comenzar a enviar entradas. Esto puede ocurrir por diversas razones, siendo las más comunes:
/config/MissionControl/controllers/<xxxxxxxxxxxx>/
, donde <xxxxxxxxxxxx>
es la representación hexadecimal de 12 caracteres de la dirección MAC Bluetooth de su controlador) y permita que Mission Control cree una nueva. En algunos casos, puede ser necesario eliminar todo el directorio controllers
. Nota: perderá todos los datos específicos del controlador almacenados, como el joystick analógico del usuario o las calibraciones de movimiento, al eliminar estos archivos. Como esta es la medida más destructiva, debes intentarla al final, después de agotar las sugerencias anteriores.Mi controlador Xbox no se conecta. Pensé que habías dicho que eran compatibles. Aunque puedan parecer similares, no todos los controladores de Xbox son iguales. En realidad, hay varias revisiones/modelos de hardware disponibles (7 en el momento de escribir este artículo) con diferentes capacidades inalámbricas. En las consolas Xbox (o PC con el adaptador USB inalámbrico), todos los controladores utilizan un protocolo inalámbrico propietario de Microsoft conocido como GIP. Sin embargo, la conectividad Bluetooth no es lo mismo y varía según el modelo de controlador. Algunos admiten bluetooth y otros no. De los que lo hacen, algunos utilizan el estándar Bluetooth Low Energy (LE) más nuevo (actualmente no compatible) o cambiarán a él después de una actualización de firmware. Los únicos modelos compatibles son las revisiones 1708 (Xbox One S) y 1797 (Xbox Elite V2). Si se han actualizado a un firmware Bluetooth LE (5.xx.xxxx.x y superior), deberá degradar el firmware a la versión anterior (consulte a continuación). . Los números de modelo del controlador se pueden encontrar en el interior del compartimiento de la batería o en la parte posterior del controlador en controladores con batería interna.
Para obtener más detalles sobre las distintas revisiones del controlador (con imágenes), consulte aquí.
Mi controlador Xbox One/Elite V2 solía conectarse y ahora no, ¿qué pasa? A finales de 2021, Microsoft introdujo un nuevo firmware de controlador que tiene como objetivo alinear los controladores Xbox One/Elite 2 con los controladores más nuevos de la Serie X|S. La actualización a este firmware cambia el controlador para que utilice Bluetooth Low Energy (LE), un estándar de Bluetooth más nuevo centrado en el bajo consumo de energía, que actualmente no es compatible con Mission Control. Si el firmware de su controlador es la versión 5.xx.xxxx.x o superior, tiene el nuevo firmware LE y deberá cambiar al heredado (consulte https://support.xbox.com/en-US/help/hardware -red/accesorios/controlador-firmware-reversión)
¿Puedes agregar soporte para controladores Xbox 360? No, actualmente no. Estos no usan Bluetooth. Pruebe sys-con con un adaptador USB inalámbrico.
¿Puedes agregar soporte para despertarte del sueño? Probablemente no. Hasta donde yo sé, despertarse del modo de suspensión implica que un controlador envíe un comando de control especial al hardware Switch Bluetooth. No hay forma de hacer que un controlador que no sea un conmutador envíe el comando reconocido por el conmutador sin modificar su hardware/firmware.
¿Puedes agregar soporte de audio bluetooth? No. El módulo bluetooth del conmutador solo implementa un pequeño conjunto de servicios necesarios para que los controladores ocultos funcionen. De este pequeño conjunto de servicios, sólo un puñado de funciones de alto nivel están expuestas al resto del sistema. Agregar soporte de audio requeriría implementar los servicios necesarios para el transporte de audio, para lo cual cualquier persona en su sano juicio requeriría una reimplementación de código abierto del módulo bluetooth para tener acceso a las funciones de bajo nivel necesarias para lograrlo. A partir del firmware 12.0.0, Nintendo ha agregado funciones que admiten audio Bluetooth. Si bien la función no se ha habilitado en el software oficial, plutooo ha creado un módulo de sistema experimental llamado nx-btred que habilita audio Bluetooth en juegos que admiten grabación. No me resulta muy beneficioso agregar su funcionalidad a Mission Control. Desde el firmware 13.0.0, Nintendo ahora admite oficialmente audio Bluetooth.
Mi controlador tiene un conector de audio, ¿pueden agregar compatibilidad con auriculares? Improbable. Hasta donde yo sé, los controladores que admiten audio de auriculares lo hacen a través de medios propietarios o no estándar. Sería mucho trabajo, no solo entender cómo funciona para un controlador en particular, sino también integrarlo en HOS de alguna manera cuando no tiene el concepto de un gamepad que admita audio. En el mejor de los casos, un controlador estuviera usando algún tipo de audio Bluetooth estándar, aún estaría sujeto a las limitaciones habituales de ancho de banda de la consola (audio entrecortado, entradas de controlador retrasadas, etc.). Utilice únicamente unos auriculares normales.
Mission Control funciona mediante Man-In-The-Middling el módulo del sistema bluetooth
e interceptando sus comandos IPC de inicialización y eventos del sistema, y traduciendo datos entrantes/salientes para convencer al Switch de que se está comunicando con un Pro Controller oficial.
Para lograr esto, el módulo btdrv.mitm
obtiene los identificadores de los eventos del sistema bluetooth
y la memoria compartida cuando el sistema intenta inicializarlos a través de IPC a través de los módulos btm
e hid
. Luego crea sus propias versiones secundarias de estos y les pasa sus identificadores en lugar del original. Esto permite realizar modificaciones en cualquier buffer de datos antes de notificar (o no) al sistema. Además, el comando WriteHidData
IPC se intercepta para traducir o descartar solicitudes salientes al controlador. En el caso de este último, las respuestas falsas se pueden escribir directamente en el búfer de la memoria compartida.
La interceptación de los comandos IPC de inicialización también permite que homebrew haga uso adecuado del servicio bluetooth
. Normalmente, llamar a cualquiera de los comandos IPC que inicializarían o finalizarían eventos del sistema bloquearía la consola o invalidaría los identificadores de eventos mantenidos por los procesos del sistema. Con btdrv.mitm
podemos distribuir identificadores de eventos alternativos cuando homebrew intenta inicializar una interfaz y redirigir los eventos reales del sistema a aquellos en lugar de los eventos mantenidos por los procesos del sistema.
Se proporcionan parches exefs para el módulo bluetooth
para permitir el emparejamiento de Wii/WiiU y otros controladores que utilizan el emparejamiento de código PIN heredado, controladores inalámbricos Xbox Elite 2 y para relajar las comprobaciones de clase de dispositivo agregadas en firmwares más nuevos para permitir también que los dispositivos se identifiquen como teclado. o joystick a conectar.
Se han agregado parches exefs al módulo btm
para omitir llamadas a nn::bluetooth::hal::CloseHidConnection
cuando un controlador no responde correctamente al comando del proveedor de Broadcom enviado por nn::bluetooth::hal::SetTsi
. Esto evita que todos los controladores afectados se desconecten inmediatamente después de la conexión y elimina la necesidad de marcar manualmente ciertos controladores con un archivo settsi_disable.flag
.
El servicio btm
ahora también tiene MITM, lo que permite falsificar nombres de controladores sobre la marcha mientras se conservan los nombres originales en la base de datos de emparejamiento.
Primero, clone el repositorio en su máquina local y cambie al directorio recién clonado.
git clone --recurse-submodules https://github.com/ndeadly/MissionControl.git
cd MissionControl
Mission Control actualmente utiliza una bifurcación personalizada de El maestro libnx oficial ahora se utiliza para construir Mission Control. En el momento de escribir este artículo, el libnx distribuido por devkitPro se puede utilizar sin necesidad de crearlo usted mismo. Esto puede cambiar si las actualizaciones libnx
que agrega envoltorios de servicios Bluetooth y definiciones de tipos.Atmosphere-libs
para usar confirmaciones libnx
de última generación no están presentes en la versión oficial. En cualquier caso, puede crear el submódulo libnx
incluido desde el código fuente con los siguientes comandos.
cd lib/libnx
make && make install
Próxima compilación libstratosphere
. Si encuentra algún error de compilación, es posible que le falten las dependencias requeridas (consulte https://github.com/Atmosphere-NX/Atmosphere/blob/master/docs/building.md)
cd ../Atmosphere-libs/libstratosphere
make
Finalmente, compila y empaqueta la distribución .zip. Esto construirá el módulo del sistema mc.mitm
y lo empaquetará con parches exefs de bluetooth.
cd ../..
make dist
El paquete resultante se puede instalar como se describe arriba.
Si te gusta este proyecto, considera apoyarme para continuar su desarrollo :)