Используйте контроллеры других консолей прямо на своем Nintendo Switch через Bluetooth. Никаких ключей или другого внешнего оборудования не требуется.
mc.mitm
добавляет команды расширения IPC, которые можно использовать для взаимодействия с процессом bluetooth
, не вмешиваясь в состояние системы.В настоящее время поддерживаются следующие контроллеры. Если у вас есть сторонний вариант одного из перечисленных ниже устройств или контроллер Bluetooth, которого нет в списке, рассмотрите возможность отправки запроса на контроллер.
* Не все беспроводные геймпады Xbox One поддерживают Bluetooth. Более старые варианты используют собственный протокол 2,4 ГГц и не могут использоваться с коммутатором. Информацию об определении варианта Bluetooth см. здесь.
Загрузите последнюю версию .zip и распакуйте ее в корень SD-карты, что позволит папкам объединиться и перезаписать любые существующие файлы. Перезагрузите консоль, чтобы активировать модуль, и все готово!
ВАЖНО: Для запуска последней версии Mission Control на прошивке 19.0.0 требуется Atmosphère >= 1.8.0. Использование более старой версии Atmosphère приведет к сбою Mission Control или зависанию системы при загрузке.
Mission Control — это, прежде всего, системный модуль (фоновый процесс), который загружается Atmosphère во время загрузки и работает неопределенное время вместе с остальной частью операционной системы. Это позволяет использовать неподдерживаемые контроллеры Bluetooth, как если бы они были собственными контроллерами Pro. Это означает, что вы можете подключать и настраивать новые контроллеры через собственные системные меню Nintendo без необходимости загружать дополнительные доморощенные приложения. (В настоящее время) не существует «приложения» Mission Control, которое можно было бы открыть.
Прежде чем их можно будет использовать, контроллеры необходимо сначала подключить к консоли (см. ниже). После сопряжения контроллеры будут автоматически искать консоль и повторно подключаться к ней при пробуждении. Нет необходимости каждый раз заново их соединять. Обратите внимание, что неофициальные контроллеры нельзя использовать для пробуждения консоли.
После подключения кнопки вашего контроллера максимально точно соответствуют физическому расположению контроллера Switch Pro. Это означает, что кнопки A/B и X/Y будут заменены на контроллеры, которые используют расположение кнопок в стиле Xbox, а не то, что напечатано на кнопке. Комбинации кнопок MINUS + DPAD_UP
и MINUS + DPAD_DOWN
предусмотрены для всех контроллеров и служат альтернативой кнопкам CAPTURE
и HOME
в тех случаях, когда лицевых кнопок недостаточно. Сопоставления кнопок можно изменить в официальном системном меню: System Settings->Controllers and Sensors->Change Button Mapping
.
Большинство других встроенных функций должны работать (за исключением таких вещей, как обновление прошивки). Если вы обнаружите что-то сломанное, откройте проблему поддержки на этой странице github.
Nintendo сделала несколько довольно запутанных вариантов именования пунктов меню контроллера. Контроллеры соединяются в системном меню в разделе Controllers->Change Grip/Order
, а не Pairing New Controllers
или Search for Controllers
, как может подсказать здравый смысл. На этом экране переведите контроллер в режим сопряжения (см. ниже) и подождите несколько секунд. В случае успеха вы должны увидеть уведомление Paired
в левом верхнем углу экрана. Теперь ваш контроллер сопряжен, и его можно повторно подключить в любое время без необходимости повторного входа в этот экран. Повторное сопряжение требуется только в том случае, если вы подключили контроллер к другому устройству или emummc.
Каждый из поддерживаемых контроллеров имеет свои собственные методы входа в режим сопряжения/синхронизации. Ниже приведены инструкции по входу в этот режим для некоторых распространенных контроллеров консоли.
Контроллеры Nintendo Wii/WiiU Нажмите красную кнопку синхронизации на задней панели контроллера. Светодиоды контроллера начнут быстро мигать.
Рекомендуется выполнить калибровку аналогового джойстика для этих типов контроллеров, где это применимо, поскольку каждый контроллер имеет разный диапазон аналоговых джойстиков и центральное положение, но в отличие от контроллеров Switch, заводская калибровка не сохраняется.
Контроллер Sony Dualshock3 Для сопряжения этого контроллера вам необходимо подключить его к консоли с помощью USB-кабеля. Как только светодиоды контроллера начнут мигать, отсоедините USB-кабель и нажмите кнопку PS
.
Примечание. Чтобы избежать нежелательного поведения при использовании контроллера в проводном режиме USB, это работает только на обычном экране Controllers->Change Grip/Order
.
Контроллеры Sony Dualshock4/Dualsense Одновременно нажмите и удерживайте кнопки share
PS
+, пока световая панель не начнет мигать. Если все сделано правильно, характер мигания будет напоминать сердцебиение, в противном случае он будет мигать с постоянной частотой.
Если у вас возникли трудности с подключением контроллера к консоли, нажмите и удерживайте кнопку сброса на задней панели контроллера в течение нескольких секунд и повторите попытку. Иногда это требуется после подключения к консоли Playstation или другому устройству.
Контроллеры Microsoft Xbox One/Elite 2 Нажмите и удерживайте кнопку guide
( X
), пока светодиод не начнет мигать. Затем нажмите и удерживайте небольшую кнопку синхронизации на задней панели рядом с портом зарядки, пока светодиод не начнет мигать быстрее.
Примечание: версии прошивки контроллера 5.xx.xxxx.x и выше используют Bluetooth Low Energy и в настоящее время не поддерживаются. Пожалуйста, обратитесь к FAQ для получения инструкций по переходу на совместимую прошивку.
Другие контроллеры Обратитесь к руководству пользователя вашего контроллера для получения информации о том, как перевести его в режим синхронизации. Обратите внимание, что многие стандартные контроллеры Bluetooth можно запустить в одном из нескольких режимов. Обычно вам нужно выбрать что-то вроде режима HID, ПК или Android, чтобы оно работало правильно.
Контроллеры, которые успешно сопряжены, но еще не получили официальной поддержки, будут отображаться красными кнопками в меню Controllers
указывая на то, что их элементы управления не сопоставлены. Пожалуйста, откройте вопрос, чтобы запросить поддержку для таких контроллеров.
Шаблон для файла конфигурации .ini будет установлен в /config/MissionControl/missioncontrol.ini.template
. Чтобы изменить настройки модуля по умолчанию, скопируйте шаблон в /config/MissionControl/missioncontrol.ini
, раскомментируйте (удалите начальный ;
) и измените все настройки, которые хотите изменить. Файл анализируется только при запуске, поэтому для вступления в силу любых внесенных вами изменений потребуется перезагрузка. Записи настроек, которые невозможно правильно проанализировать/проверить, игнорируются. В настоящее время существует лишь небольшой набор настроек конфигурации, но он будет расширен в будущих выпусках.
[general]
Это общие настройки функций управления полетами.
enable_rumble
Включить/отключить поддержку вибрации для неофициальных контроллеров.enable_motion
Включить/отключить поддержку управления движением. [bluetooth]
Эти настройки можно использовать для имитации вашего переключателя Bluetooth, чтобы он отображался как другое устройство. Это может быть полезно (в сочетании с ключом связи), если вы хотите использовать контроллер на нескольких устройствах без необходимости повторного сопряжения при каждом переключении. Обратите внимание, что изменение этих настроек приведет к аннулированию информации вашей консоли, хранящейся на всех ранее сопряженных контроллерах, и потребует повторного сопряжения.
host_name
Переопределить имя хост-адаптера Bluetooth.host_address
Переопределить адрес хост-адаптера Bluetooth. [misc]
Это различные настройки контроллера и т. д.
analog_trigger_activation_threshold
Установите порог, при котором ZL/ZR считаются нажатыми для контроллеров с аналоговыми триггерами. Допустимый диапазон [0–100] процентов.dualshock3_led_mode
Установить поведение светодиода Dualshock 3 для игрока. Допустимые режимы [0-1], где 0 = шаблон переключения, 1 = шаблон PS3, 2 = гибридный (шаблон переключения реверсирован, чтобы соответствовать цифровым меткам на контроллере)dualshock4_polling_rate
Установите частоту опроса для контроллеров Sony Dualshock 4. Допустимый диапазон [0–16], где 0 = макс, 16 = мин. См. здесь соответствующие значения частоты.dualshock4_lightbar_brightness
Установите яркость светодиодной световой панели для контроллеров Sony Dualshock 4. Допустимый диапазон [0–9], где 0 = выкл., 1 = мин., 2–9 = 12,5–100 % с шагом 12,5 %.dualsense_lightbar_brightness
Установите яркость светодиодной световой панели для контроллеров Sony Dualsense. Допустимый диапазон [0–9], где 0 = выкл., 1 = мин., 2–9 = 12,5–100 % с шагом 12,5 %.dualsense_enable_player_leds
Включает/выключает белые светодиодные индикаторы игрока под сенсорной панелью Dualsense.dualsense_vibration_intensity
Установите интенсивность вибрации Dualsense, 12,5% на шаг. Допустимый диапазон [1–8], где 1=12,5%, 8=100%.Чтобы функционально удалить Mission Control и его компоненты, все, что нужно сделать, — это удалить следующие каталоги с SD-карты и перезагрузить консоль.
/atmosphere/contents/010000000000bd00
/atmosphere/exefs_patches/bluetooth_patches
/atmosphere/exefs_patches/btm_patches
Если вы хотите полностью удалить все следы когда-либо установленного программного обеспечения (за исключением телеметрии), вы также можете выполнить следующие дополнительные шаги.
Удалите следующий каталог с вашей SD-карты
/config/MissionControl
Очистите базу данных сопряжения Bluetooth через System Settings->Controllers and Sensors->Disconnect Controllers
Ниже приведен список функций, над которыми я сейчас работаю или которые хотел бы изучить в будущем, примерно в порядке убывания приоритета. Запросы приветствуются, если у вас есть идея, которая, по вашему мнению, могла бы стать полезной функцией.
/config/MissionControl/controllers
. Если какая-либо часть этого дерева каталогов будет повреждена, контроллеры могут быть отключены при неудачной попытке чтения данных конфигурации.Это работает на <вставьте сюда CFW>? Нет. Центр управления полетами будет работать только в атмосфере. Это не какая-то попытка заблокировать пользователей других CFW, Atmосфера просто единственная, предоставляющая расширения, необходимые для связи MITM Bluetooth, которые делают этот системный модуль возможным.
Приведет ли это к тому, что меня забанят в сети? На данный момент не зафиксировано ни одного подтвержденного случая бана из-за запуска Mission Control. Тем не менее, запуск любого неофициального программного обеспечения под CFW всегда будет нести ненулевой риск запрета, и Nintendo может изменить свои критерии запрета в любой момент. Хотя Mission Control должен быть относительно безопасным, поскольку он просто имитирует подключение Pro Controller, безусловно, можно было бы обнаружить, что вы подключили неофициальные контроллеры к консоли, если бы Nintendo была заинтересована в этом. Используйте по своему усмотрению.
Поддерживает ли это USB-контроллеры? Нет, Mission Control в настоящее время поддерживает только Bluetooth. На данный момент вы можете использовать sys-con Catery для USB-контроллеров.
Это работает с установленным sys-con? Да, их можно запускать одновременно без проблем.
Моя консоль вылетает при загрузке из-за этого системного модуля. Что я могу сделать? Если вы видите сбои при загрузке с идентификатором заголовка Mission Control ( 010000000000bd00
), вероятно, либо вы недавно обновились до новой версии Atmосферы, и требуется обновление Mission Control, либо вы используете старую версию Atmосферы, которая несовместим с последней версией Mission Control. Сбои в sm
(идентификатор заголовка 0100000000000004
) могут указывать на несовместимость версий между вашей текущей атмосферой и одним или несколькими вашими доморощенными системными модулями. Это может быть вызвано Mission Control или другим пользовательским системным модулем, использующим libstratосферу, даже если кажется, что виноват Mission Control ( ldn_mitm
и emuiibo
— распространенные нарушители). Если вы только что обновили Atmосферу, вам всегда следует проверять, выпущены ли обновления для используемых вами системных модулей. Ошибки qlaunch (идентификатор заголовка 0100000000001000
) могут быть признаком того, что у вас запущено слишком много пользовательских системных модулей, и они истощают доступные им ограниченные системные ресурсы. Проверьте папку /atmosphere/contents
и убедитесь, что вам действительно все там нужно. Если вы не знаете, что делаете, возможно, будет проще просто полностью удалить эту папку, переустановить атмосферу, а затем явно переустановить только те системные модули, которые вам нужны.
Я установил Mission Control, но он ничего не делает. Помощь! Управление полетом — это прежде всего фоновый процесс. В вашей системе нет никаких визуальных изменений, указывающих на то, что она установлена, кроме успешного подключения вашего контроллера через официальные меню Nintendo. Если вы следовали инструкциям по использованию и сопряжению, приведенным выше, и не можете заставить их работать, вот базовый контрольный список для устранения неполадок.
DPAD_UP
+ MINUS
. Она будет действовать как кнопка захвата и делать снимок экрана, если модуль запущен. Если вы не видите уведомление о снимке экрана, вероятно, Mission Control не загружается. Обычно это происходит из-за неправильной установки и может произойти по нескольким причинам: Как я могу использовать это с несколькими конфигурациями запуска sysNAND/emuMMC? Сопряжение контроллеров с несколькими уникальными установками HOS требует нескольких баз данных сопряжения и, по сути, аналогично сопряжению с двумя разными консолями. Единственным исключением является случай, когда вы выполнили сопряжение контроллеров перед созданием копий sysNAND. На данный момент вам придется повторно выполнить сопряжение контроллеров при переключении вперед и назад. В будущем я надеюсь включить возможность загрузки/сохранения базы данных на SD-карте, чтобы избежать этой проблемы. Начиная с версии 1.5.1, AtmSphere теперь содержит код, который я внес для синхронизации базы данных сопряжения Bluetooth между sysNAND и emuMMC через файл на SD-карте. Это можно активировать, добавив enable_external_bluetooth_db = u8!0x1
в раздел [atmosphere]
в atmosphere/config/system_settings.ini
. Примечание. Для работы этой функции требуется наличие атмосферы. Таким образом, его нельзя использовать для синхронизации sysCFW/emuMMC со стандартным/OFW.
Могу ли я переназначить кнопки контроллера с помощью Mission Control? Да. Поскольку Mission Control эмулирует официальные контроллеры Pro, вы можете переназначить их, используя официальный метод, представленный Nintendo в прошивке 10.0.0. Параметры переназначения можно найти в системном меню в разделе System Settings->Controllers and Sensors->Change Button Mapping
.
На моей консоли отображается уведомление «Подключено», но мой контроллер не подключается, что случилось? Ваш контроллер успешно соединился с консолью, но вскоре после этого отключается, прежде чем он сможет начать отправлять входные данные. Это может произойти по разным причинам, наиболее распространенными из которых являются:
/config/MissionControl/controllers/<xxxxxxxxxxxx>/
, где <xxxxxxxxxxxx>
— это 12-значное шестнадцатеричное представление MAC-адреса Bluetooth вашего контроллера) и позвольте Mission Control создать новую. В некоторых случаях может потребоваться удалить весь каталог controllers
. Примечание. При удалении этих файлов вы потеряете все сохраненные данные, относящиеся к контроллеру, такие как пользовательские аналоговые джойстики или калибровки движения. Поскольку это наиболее разрушительная мера, вам следует попытаться применить ее в последнюю очередь, после того как исчерпаны приведенные выше рекомендации.Мой контроллер Xbox не подключается. Я думал, вы сказали, что они поддерживаются? Хотя они могут выглядеть одинаково, не все контроллеры Xbox одинаковы. На самом деле доступно несколько версий/моделей оборудования (7 на момент написания статьи) с различными возможностями беспроводной связи. На консолях Xbox (или ПК с беспроводным USB-адаптером) все контроллеры используют собственный протокол беспроводной связи Microsoft, известный как GIP. Однако подключение Bluetooth — это не одно и то же, и оно различается в зависимости от модели контроллера. Некоторые поддерживают Bluetooth, некоторые нет. Из тех, кто это делает, некоторые используют новый (в настоящее время не поддерживаемый) стандарт Bluetooth Low Energy (LE) или перейдут на него после обновления прошивки. Поддерживаются только модели 1708 (Xbox One S) и 1797 (Xbox Elite V2). Если они были обновлены до прошивки Bluetooth LE (5.xx.xxxx.x и выше), вам потребуется понизить версию прошивки до устаревшей версии (см. ниже). . Номера моделей контроллера можно найти на внутренней стороне батарейного отсека или на задней стороне контроллера в контроллерах с внутренней батареей.
Более подробную информацию о различных версиях контроллера (с изображениями) можно найти здесь.
Раньше мой контроллер Xbox One/Elite V2 подключался, а теперь нет. Что это дает? В конце 2021 года Microsoft представила новую прошивку контроллера, цель которой — привести контроллеры Xbox One/Elite 2 в соответствие с более новыми контроллерами Series X|S. Обновление этой прошивки переключает контроллер на использование Bluetooth Low Energy (LE), нового стандарта Bluetooth, ориентированного на низкое энергопотребление, который в настоящее время не поддерживается Mission Control. Если прошивка вашего контроллера имеет версию 5.xx.xxxx.x или выше, у вас установлена новая прошивка LE, и вам потребуется перейти на более раннюю версию (см. https://support.xbox.com/en-US/help/hardware). -сеть/аксессуары/реверсия прошивки-контроллера)
Можете ли вы добавить поддержку контроллеров Xbox 360? Нет, не сейчас. Они не используют Bluetooth. Попробуйте sys-con с беспроводным USB-адаптером.
Можете ли вы добавить поддержку пробуждения из сна? Вероятно, нет. Насколько я знаю, выход из спящего режима включает в себя отправку контроллером специальной команды управления на оборудование Switch Bluetooth. Невозможно заставить контроллер без коммутатора отправлять команду, распознаваемую коммутатором, без изменения его аппаратного обеспечения/прошивки.
Можете ли вы добавить поддержку звука Bluetooth? Нет. Модуль Bluetooth на коммутаторе реализует лишь небольшой набор служб, необходимых для работы скрытых контроллеров. Из этого небольшого набора служб лишь несколько функций высокого уровня доступны остальной части системы. Добавление поддержки звука потребует реализации служб, необходимых для передачи звука, для чего любому здравомыслящему человеку потребуется повторная реализация модуля Bluetooth с открытым исходным кодом, чтобы иметь доступ к низкоуровневым функциям, необходимым для его реализации. Начиная с прошивки 12.0.0 Nintendo добавила функции поддержки звука Bluetooth. Хотя эта функция не включена в официальном программном обеспечении, plutooo создал экспериментальный системный модуль под названием nx-btred, который включает звук Bluetooth в играх, поддерживающих запись. Я не вижу особой пользы в добавлении его функциональности в Mission Control. Начиная с версии прошивки 13.0.0 Nintendo официально поддерживает звук Bluetooth.
У моего контроллера есть аудиоразъем, можете ли вы добавить поддержку гарнитуры? Маловероятно. Насколько мне известно, контроллеры, поддерживающие звук гарнитуры, делают это с помощью собственных или нестандартных средств. Это была бы большая работа, не только понять, как это работает на конкретном контроллере, но и как-то интегрировать его в HOS, когда понятия о геймпаде, поддерживающем звук, нет. В лучшем случае, если контроллер использовал какую-либо форму стандартного звука Bluetooth, вы все равно будете подвергаться обычным ограничениям пропускной способности консоли (прерывистый звук, запаздывающие входы контроллера и т. д.). Просто используйте обычные наушники.
Mission Control работает по принципу «Человек посередине», перехватывая системный модуль bluetooth
и перехватывая его команды инициализации IPC и системные события, а также переводя входящие/исходящие данные, чтобы убедить коммутатор в том, что он общается с официальным контроллером Pro.
Для этого модуль btdrv.mitm
получает дескрипторы системных событий bluetooth
и общей памяти, когда система пытается инициализировать их через IPC через модули btm
и hid
. Затем он создает свои собственные вторичные версии и передает их дескрипторы вместо оригинала. Это позволяет вносить изменения в любые буферы данных перед уведомлением (или нет) системы. Кроме того, команда WriteHidData
IPC перехватывается для преобразования или удаления исходящих запросов к контроллеру. В последнем случае поддельные ответы могут быть записаны непосредственно в буфер разделяемой памяти.
Перехват команд инициализации IPC также позволяет доморощенному правильно использовать службу bluetooth
. Обычно вызов любой команды IPC, которая инициализирует или завершает системные события, приводит либо к сбою консоли, либо к аннулированию дескрипторов событий, хранящихся в системных процессах. С помощью btdrv.mitm
мы можем выдавать альтернативные дескрипторы событий, когда homebrew пытается инициализировать интерфейс, и перенаправлять на них реальные системные события вместо событий, удерживаемых системными процессами.
Исправления exefs для модуля bluetooth
предназначены для обеспечения сопряжения Wii/WiiU и других контроллеров, в которых используется устаревшее сопряжение с пин-кодом, беспроводных контроллеров Xbox Elite 2, а также для облегчения проверок класса устройства, добавленных в новые прошивки, чтобы также разрешить устройствам идентифицироваться как клавиатура. или джойстик для подключения.
Исправления exefs в модуль btm
были добавлены для пропуска вызовов nn::bluetooth::hal::CloseHidConnection
, когда контроллер не может правильно ответить на команду поставщика Broadcom, отправленную nn::bluetooth::hal::SetTsi
. Это предотвращает отключение всех затронутых контроллеров сразу после подключения и устраняет необходимость вручную помечать определенные контроллеры с помощью файла settsi_disable.flag
.
Служба btm
теперь также поддерживает MITM, что позволяет подделывать имена контроллеров на лету, сохраняя при этом исходные имена в базе данных сопряжения.
Сначала клонируйте репозиторий на свой локальный компьютер и переключитесь на новый клонированный каталог.
git clone --recurse-submodules https://github.com/ndeadly/MissionControl.git
cd MissionControl
В настоящее время Mission Control использует специальную версию Официальный мастер libnx теперь используется для сборки Mission Control. На момент написания libnx, распространяемый devkitPro, можно использовать без необходимости собирать его самостоятельно. Это может измениться, если обновления libnx
, которая добавляет оболочки служб Bluetooth и определения типов.Atmosphere-libs
для использования новейших коммитов libnx
не будут представлены в официальном выпуске. В любом случае вы можете собрать включенный подмодуль libnx
из исходного кода с помощью следующих команд.
cd lib/libnx
make && make install
Следующая сборка libstratosphere
. Если вы столкнулись с какими-либо ошибками сборки, возможно, вам не хватает необходимых зависимостей (см. https://github.com/AtmSphere-NX/AtmSphere/blob/master/docs/building.md).
cd ../Atmosphere-libs/libstratosphere
make
Наконец, соберите и упакуйте дистрибутив .zip. Это создаст системный модуль mc.mitm
и упакует его с патчами exefs bluetooth.
cd ../..
make dist
Полученный пакет можно установить, как описано выше.
Если вам нравится этот проект, пожалуйста, поддержите меня, чтобы я мог продолжить его развитие :)