Nutzen Sie Controller von anderen Konsolen nativ über Bluetooth auf Ihrem Nintendo Switch. Keine Dongles oder andere externe Hardware notwendig.
mc.mitm
fügt IPC-Erweiterungsbefehle hinzu, die zur Interaktion mit dem bluetooth
-Prozess verwendet werden können, ohne den Status des Systems zu beeinträchtigen.Derzeit werden die folgenden Controller unterstützt. Wenn Sie eine Drittanbietervariante einer der folgenden Optionen oder einen Bluetooth-Controller haben, der nicht aufgeführt ist, sollten Sie erwägen, ein Problem mit der Controller-Anfrage einzureichen.
* Nicht alle Xbox One-Wireless-Controller unterstützen Bluetooth. Ältere Varianten verwenden ein proprietäres 2,4-GHz-Protokoll und können nicht mit dem Switch verwendet werden. Informationen zur Identifizierung der Bluetooth-Variante finden Sie hier.
Laden Sie die neueste ZIP-Version herunter und extrahieren Sie sie in das Stammverzeichnis Ihrer SD-Karte, sodass die Ordner zusammengeführt und alle vorhandenen Dateien überschrieben werden können. Starten Sie Ihre Konsole neu, um das Modul zu aktivieren, und schon sind Sie fertig!
WICHTIG: Atmosphère >= 1.8.0 ist erforderlich, um die neueste Version von Mission Control auf Firmware 19.0.0 auszuführen. Die Verwendung einer älteren Atmosphère-Version führt dazu, dass Mission Control beim Booten abstürzt oder das System einfriert.
Mission Control ist in erster Linie ein Systemmodul (Hintergrundprozess), das beim Booten von Atmosphère geladen wird und auf unbestimmte Zeit zusammen mit dem Rest des Betriebssystems läuft. Es ermöglicht die Verwendung nicht unterstützter Bluetooth-Controller, als wären es native Pro-Controller. Das bedeutet, dass Sie neue Controller über Nintendos eigene Systemmenüs koppeln und konfigurieren können, ohne zusätzliche Homebrew-Anwendungen laden zu müssen. Es gibt (derzeit) keine zu öffnende Mission Control-App.
Controller müssen zunächst mit der Konsole gekoppelt werden (siehe unten), bevor sie verwendet werden können. Sobald die Controller gekoppelt sind, suchen sie die Konsole und verbinden sich beim Aufwecken automatisch wieder mit ihr. Sie müssen sie nicht jedes Mal neu koppeln. Beachten Sie, dass inoffizielle Controller nicht zum Aufwecken der Konsole verwendet werden können.
Sobald die Verbindung hergestellt ist, sind die Tasten Ihres Controllers so genau wie möglich dem physischen Layout eines Switch Pro Controllers zugeordnet. Das bedeutet, dass die A/B- und X/Y-Tasten gegen Controller ausgetauscht werden, die ein Tastenlayout im Xbox-Stil verwenden, anstatt das zu verwenden, was auf der Taste aufgedruckt ist. Die Tastenkombinationen MINUS + DPAD_UP
und MINUS + DPAD_DOWN
stehen für alle Controller zur Verfügung und dienen als Alternative für CAPTURE
und HOME
-Tasten in Fällen, in denen nicht genügend Gesichtstasten verfügbar sind. Tastenzuordnungen können im offiziellen Systemmenü unter System Settings->Controllers and Sensors->Change Button Mapping
geändert werden.
Die meisten anderen nativen Funktionen sollten einfach funktionieren (mit Ausnahme von Dingen wie Firmware-Updates). Wenn Sie etwas finden, das kaputt ist, öffnen Sie bitte ein Support-Problem auf dieser Github-Seite.
Nintendo hat bei seinen Controller-Menüpunkten einige ziemlich verwirrende Namensentscheidungen getroffen. Controller werden über das Systemmenü unter Controllers->Change Grip/Order
gekoppelt und nicht Pairing New Controllers
oder Search for Controllers
wie der gesunde Menschenverstand vermuten lässt. Versetzen Sie Ihren Controller auf diesem Bildschirm in den Kopplungsmodus (siehe unten) und warten Sie einige Sekunden. Bei Erfolg sollte oben links auf dem Bildschirm eine Paired
-Benachrichtigung angezeigt werden. Ihr Controller ist nun gekoppelt und kann jederzeit wieder verbunden werden, ohne diesen Bildschirm erneut aufrufen zu müssen. Eine erneute Kopplung ist nur erforderlich, wenn Sie den Controller mit einem anderen Gerät oder emummc verbunden haben.
Die unterstützten Controller verfügen jeweils über eigene Methoden zum Aufrufen des Pairing-/Synchronisierungsmodus. Nachfolgend finden Sie Anweisungen zum Aufrufen dieses Modus für einige der gängigen Konsolen-Controller.
Nintendo Wii/WiiU-Controller Drücken Sie die rote Synchronisierungstaste auf der Rückseite des Controllers. Die Controller-LEDs blinken schnell.
Es wird empfohlen, für diese Controller-Typen gegebenenfalls eine Analogstick-Kalibrierung durchzuführen, da jeder Controller einen anderen Analogstick-Bereich und eine andere Mittelposition hat, es aber im Gegensatz zu Switch-Controllern keine gespeicherte Werkskalibrierung gibt.
Sony Dualshock3-Controller Um diesen Controller zu koppeln, müssen Sie ihn über ein USB-Kabel mit der Konsole verbinden. Sobald die Controller-LEDs zu blinken beginnen, trennen Sie das USB-Kabel und drücken Sie die PS
-Taste.
Hinweis: Um unerwünschtes Verhalten zu vermeiden, wenn der Controller im USB-Kabelmodus verwendet wird, funktioniert dies nur über den üblichen Bildschirm Controllers->Change Grip/Order
.
Sony Dualshock4/Dualsense-Controller Halten Sie die PS
+ share
-Tasten gleichzeitig gedrückt, bis die Lichtleiste zu blinken beginnt. Bei korrekter Ausführung ähnelt das Blinkmuster einem Herzschlag, andernfalls blinkt es in einem konstanten Rhythmus.
Wenn Sie Schwierigkeiten haben, den Controller mit der Konsole zu koppeln, halten Sie die Reset-Taste auf der Rückseite des Controllers einige Sekunden lang gedrückt und versuchen Sie es erneut. Manchmal ist dies erforderlich, nachdem eine Verbindung zu einer Playstation-Konsole oder einem anderen Gerät hergestellt wurde.
Microsoft Xbox One/Elite 2-Controller Halten Sie die guide
( X
) gedrückt, bis die LED zu blinken beginnt. Halten Sie dann die kleine Synchronisierungstaste auf der Rückseite in der Nähe des Ladeanschlusses gedrückt, bis die LED schneller zu blinken beginnt.
Hinweis: Controller-Firmware-Versionen 5.xx.xxxx.x und höher verwenden Bluetooth Low Energy und werden derzeit nicht unterstützt. Anweisungen zum Downgrade auf eine kompatible Firmware finden Sie in den FAQ
Andere Controller Informationen dazu, wie Sie ihn in den Synchronisierungsmodus versetzen, finden Sie im Benutzerhandbuch Ihres Controllers. Beachten Sie, dass viele generische Bluetooth-Controller in einem von mehreren Modi gestartet werden können. Normalerweise möchten Sie einen HID-, PC- oder Android-Modus auswählen, damit es ordnungsgemäß funktioniert.
Controller, die erfolgreich gekoppelt wurden, aber noch nicht offiziell unterstützt wurden, werden im Controllers
Menü mit roten Schaltflächen angezeigt, um anzuzeigen, dass ihre Steuerelemente nicht zugeordnet sind. Bitte öffnen Sie ein Problem, um Unterstützung für solche Controller anzufordern.
Eine Vorlage für die Konfigurations-INI-Datei wird unter /config/MissionControl/missioncontrol.ini.template
installiert. Um die Standardmoduleinstellungen zu ändern, kopieren Sie die Vorlage nach /config/MissionControl/missioncontrol.ini
, kommentieren Sie sie aus (entfernen Sie das führende ;
) und ändern Sie alle Einstellungen, die Sie ändern möchten. Die Datei wird nur beim Start analysiert. Daher ist für alle von Ihnen vorgenommenen Änderungen ein Neustart erforderlich, damit sie wirksam werden. Einstellungseinträge, die nicht korrekt analysiert/validiert werden können, werden ignoriert. Derzeit gibt es nur einen kleinen Satz Konfigurationseinstellungen, dieser wird jedoch in zukünftigen Versionen erweitert.
[general]
Dies sind allgemeine Einstellungen für Missionskontrollfunktionen.
enable_rumble
Aktiviert/deaktiviert die Rumble-Unterstützung für inoffizielle Controller.enable_motion
Aktiviert/deaktiviert die Unterstützung für Bewegungssteuerungen. [bluetooth]
Diese Einstellungen können verwendet werden, um Ihren Bluetooth-Switch so zu fälschen, dass er als anderes Gerät angezeigt wird. Dies kann (in Verbindung mit einem Verbindungsschlüssel) nützlich sein, wenn Sie Ihren Controller auf mehreren Geräten verwenden möchten, ohne ihn bei jedem Wechsel neu koppeln zu müssen. Beachten Sie, dass durch das Ändern dieser Einstellungen Ihre in allen zuvor gekoppelten Controllern gespeicherten Konsoleninformationen ungültig werden und eine erneute Kopplung erforderlich ist.
host_name
Überschreibt den Namen des Bluetooth-Hostadapters.host_address
Überschreiben Sie die Adresse des Bluetooth-Hostadapters. [misc]
Dies sind verschiedene Controller-spezifische Einstellungen usw.
analog_trigger_activation_threshold
Legen Sie den Schwellenwert fest, ab dem ZL/ZR als gedrückt gilt, für Controller mit analogen Triggern. Gültiger Bereich [0-100] Prozent.dualshock3_led_mode
Legt das Verhalten der Dualshock 3-Spieler-LED fest. Gültige Modi [0-1], wobei 0 = Schaltermuster, 1 = PS3-Muster, 2 = Hybrid (Schaltermuster umgekehrt, um mit den numerischen Beschriftungen auf dem Controller übereinzustimmen)dualshock4_polling_rate
Legt die Abfragerate für Sony Dualshock 4-Controller fest. Gültiger Bereich [0-16], wobei 0=max, 16=min. Die entsprechenden Frequenzwerte finden Sie hier.dualshock4_lightbar_brightness
Stellen Sie die Helligkeit der LED-Lichtleiste für Sony Dualshock 4-Controller ein. Gültiger Bereich [0–9], wobei 0=aus, 1=min, 2–9=12,5–100 % in Schritten von 12,5 % ist.dualsense_lightbar_brightness
Legt die Helligkeit der LED-Lichtleiste für Sony Dualsense-Controller fest. Gültiger Bereich [0–9], wobei 0=aus, 1=min, 2–9=12,5–100 % in Schritten von 12,5 % ist.dualsense_enable_player_leds
Aktivieren/deaktivieren Sie die weißen Player-Anzeige-LEDs unter dem Dualsense-Touchpad.dualsense_vibration_intensity
Stellen Sie die Dualsense-Vibrationsintensität ein, 12,5 % pro Schritt. Gültiger Bereich [1-8], wobei 1=12,5 %, 8=100 %.Um Mission Control und seine Komponenten funktionsfähig zu deinstallieren, müssen Sie lediglich die folgenden Verzeichnisse von Ihrer SD-Karte löschen und Ihre Konsole neu starten.
/atmosphere/contents/010000000000bd00
/atmosphere/exefs_patches/bluetooth_patches
/atmosphere/exefs_patches/btm_patches
Wenn Sie alle Spuren der jemals installierten Software vollständig entfernen möchten (Telemetrie ausgenommen), können Sie auch die folgenden zusätzlichen Schritte ausführen
Entfernen Sie das folgende Verzeichnis von Ihrer SD-Karte
/config/MissionControl
Löschen Sie die Bluetooth-Pairing-Datenbank über System Settings->Controllers and Sensors->Disconnect Controllers
Nachfolgend finden Sie eine Liste der Funktionen, an denen ich derzeit arbeite oder die ich in Zukunft untersuchen möchte, grob in absteigender Reihenfolge ihrer Priorität. Anfragen sind willkommen, wenn Sie eine Idee haben, die Ihrer Meinung nach eine nützliche Funktion darstellen könnte.
/config/MissionControl/controllers
. Wenn ein Teil dieses Verzeichnisbaums beschädigt wird, werden die Controller möglicherweise getrennt, wenn der Versuch, Konfigurationsdaten zu lesen, fehlschlägt.Läuft dies auf <CFW hier einfügen>? Nein. Mission Control läuft nur unter Atmosphère. Dies ist kein Versuch, Benutzer anderer CFW auszusperren. Atmosphere ist einfach der einzige Anbieter, der die für die MITM-Bluetooth-Kommunikation erforderlichen Erweiterungen bereitstellt, die dieses Systemmodul ermöglichen.
Wird die Nutzung dazu führen, dass ich aus dem Internet verbannt werde? Derzeit gibt es keine bestätigten Fälle von Sperren aufgrund der Ausführung von Mission Control. Allerdings birgt die Ausführung inoffizieller Software unter CFW immer ein Risiko eines Verbots ungleich Null, und Nintendo könnte seine Verbotskriterien jederzeit ändern. Während Mission Control relativ sicher sein sollte, da es lediglich den angeschlossenen Pro-Controller emuliert, wäre es sicherlich möglich zu erkennen, dass Sie inoffizielle Controller an die Konsole angeschlossen haben, wenn Nintendo daran interessiert wäre. Verwendung nach eigenem Ermessen.
Unterstützt dies USB-Controller? Nein, Mission Control ist derzeit nur über Bluetooth verfügbar. Derzeit können Sie Catherys Sys-Con für USB-Controller verwenden.
Funktioniert das mit installiertem Sys-Con? Ja, beide können ohne Probleme gleichzeitig ausgeführt werden.
Aufgrund dieses Systemmoduls stürzt meine Konsole beim Booten ab. Was kann ich tun? Wenn beim Booten mit der Titel-ID von Mission Control ( 010000000000bd00
) Abstürze auftreten, haben Sie wahrscheinlich kürzlich auf eine neue Atmosphere-Version aktualisiert und ein Update auf Mission Control ist erforderlich, oder Sie verwenden eine alte Version von Atmosphere Nicht kompatibel mit der neuesten Version von Mission Control. Abstürze in sm
(Titel-ID 0100000000000004
) können auf Versionsinkompatibilitäten zwischen Ihrem aktuellen Atmosphere und einem oder mehreren Ihrer Homebrew-Systemmodule hinweisen. Dies kann durch Mission Control verursacht werden, oder es könnte sich um ein anderes benutzerdefiniertes Systemmodul handeln, das libstratosphere verwendet, auch wenn es so aussieht, als wäre Mission Control schuld ( ldn_mitm
und emuiibo
sind häufige Täter). Wenn Sie Atmosphere gerade aktualisiert haben, sollten Sie immer prüfen, ob für die von Ihnen verwendeten Systemmodule auch Updates veröffentlicht wurden. qlaunch-Fehler (Titel-ID 0100000000001000
) können ein Zeichen dafür sein, dass zu viele benutzerdefinierte Systemmodule ausgeführt werden und die begrenzten verfügbaren Systemressourcen aufgebraucht werden. Überprüfen Sie Ihren Ordner /atmosphere/contents
und vergewissern Sie sich, dass Sie dort tatsächlich alles benötigen. Wenn Sie nicht wissen, was Sie tun, ist es möglicherweise einfacher, diesen Ordner vollständig zu löschen, Atmosphäre neu zu installieren und dann explizit nur die benötigten Systemmodule neu zu installieren.
Ich habe Mission Control installiert, aber es macht nichts. Helfen! Mission Control ist in erster Linie ein Hintergrundprozess. Es gibt keine visuellen Änderungen an Ihrem System, die darauf hinweisen, dass es installiert ist, außer dass Ihr Controller erfolgreich eine Verbindung über die offiziellen Menüs von Nintendo herstellt. Wenn Sie die oben genannten Nutzungs- und Kopplungsanweisungen befolgt haben und es dennoch nicht funktioniert, finden Sie hier eine grundlegende Checkliste zur Fehlerbehebung.
DPAD_UP
+ MINUS
drücken. Dies fungiert als Aufnahmetaste und erstellt einen Screenshot, wenn das Modul ausgeführt wird. Wenn Sie keine Screenshot-Benachrichtigung sehen, wird Mission Control wahrscheinlich nicht geladen. Dies ist in der Regel auf eine fehlerhafte Installation zurückzuführen und kann mehrere Gründe haben: Wie kann ich dies mit mehreren sysNAND/emuMMC-Startkonfigurationen verwenden? Das Koppeln von Controllern über mehrere einzigartige HOS-Installationen hinweg erfordert mehrere Koppelungsdatenbanken und ist im Wesentlichen dasselbe wie das Koppeln mit zwei verschiedenen Konsolen. Die einzige Ausnahme besteht darin, dass Sie die Controller gekoppelt haben, bevor Sie SysNAND-Kopien erstellt haben. Vorerst müssen Sie Ihre Controller beim Hin- und Herwechseln erneut koppeln. Ich hoffe, in Zukunft eine Option zum Laden/Speichern der Datenbank auf der SD-Karte einzubauen, um dieses Problem zu vermeiden. Seit Version 1.5.1 enthält Atmosphere nun Code, den ich beigesteuert habe, um die Bluetooth-Pairing-Datenbank zwischen sysNAND und emuMMC über eine Datei auf der SD-Karte zu synchronisieren. Dies kann durch Hinzufügen von enable_external_bluetooth_db = u8!0x1
im Abschnitt [atmosphere]
in atmosphere/config/system_settings.ini
aktiviert werden. Hinweis: Damit diese Funktion funktioniert, muss die Atmosphäre ausgeführt werden. Daher kann es nicht zum Synchronisieren von sysCFW/emuMMC mit stock/OFW verwendet werden.
Kann ich Controller-Tasten mit Mission Control neu zuordnen? Ja. Da Mission Control offizielle Pro Controller emuliert, können Sie diese mit der offiziellen Methode neu zuordnen, die Nintendo in Firmware 10.0.0 eingeführt hat. Sie finden die Neuzuordnungsoptionen im Systemmenü unter System Settings->Controllers and Sensors->Change Button Mapping
.
Meine Konsole zeigt eine „Paired“-Benachrichtigung an, aber mein Controller stellt keine Verbindung her. Was ist falsch? Ihr Controller wurde erfolgreich mit der Konsole gekoppelt, wird jedoch kurz darauf getrennt, bevor er mit dem Senden von Eingaben beginnen kann. Dies kann verschiedene Gründe haben, die häufigsten sind:
/config/MissionControl/controllers/<xxxxxxxxxxxx>/
, wobei <xxxxxxxxxxxx>
die 12-stellige Hexadezimaldarstellung der Bluetooth-MAC-Adresse Ihres Controllers ist) und lassen Sie Mission Control einen neuen erstellen. In manchen Fällen kann es erforderlich sein, das gesamte controllers
Verzeichnis zu löschen. Hinweis: Beim Löschen dieser Dateien gehen alle gespeicherten Controller-spezifischen Daten verloren, z. B. Benutzer-Analogstick- oder Bewegungskalibrierungen. Da dies die zerstörerischste Maßnahme ist, sollten Sie sie zuletzt versuchen, nachdem Sie die oben genannten Vorschläge ausgeschöpft haben.Mein Xbox-Controller stellt keine Verbindung her. Ich dachte, Sie sagten, sie würden unterstützt? Auch wenn sie ähnlich aussehen, sind nicht alle Xbox-Controller gleich. Tatsächlich sind mehrere Hardware-Revisionen/-Modelle verfügbar (7 zum Zeitpunkt des Verfassens dieses Artikels) mit unterschiedlichen WLAN-Funktionen. Auf Xbox-Konsolen (oder PCs mit dem drahtlosen USB-Adapter) verwenden alle Controller ein proprietäres drahtloses Microsoft-Protokoll namens GIP. Die Bluetooth-Konnektivität ist jedoch nicht dasselbe und variiert je nach Controller-Modell. Einige unterstützen Bluetooth, andere nicht. Von denen, die dies tun, verwenden einige den neueren (derzeit nicht unterstützten) Bluetooth Low Energy (LE)-Standard oder werden nach einem Firmware-Update darauf umsteigen. Die einzigen unterstützten Modelle sind die Revisionen 1708 (Xbox One S) und 1797 (Xbox Elite V2). Wenn diese auf eine Bluetooth LE-Firmware (5.xx.xxxx.x und höher) aktualisiert wurden, müssen Sie die Firmware auf die Legacy-Version herunterstufen (siehe unten). . Die Controller-Modellnummern finden Sie auf der Innenseite des Batteriefachs oder auf der Rückseite des Controllers (bei Controllern mit interner Batterie).
Weitere Einzelheiten zu den verschiedenen Controller-Revisionen (mit Bildern) finden Sie hier.
Mein Xbox One/Elite V2-Controller hat früher eine Verbindung hergestellt, aber jetzt funktioniert die Verbindung nicht mehr. Was bringt das? Ende 2021 hat Microsoft eine neue Controller-Firmware eingeführt, die darauf abzielt, die Xbox One/Elite 2-Controller an die neueren Series X|S-Controller anzupassen. Durch die Aktualisierung auf diese Firmware wird der Controller auf die Verwendung von Bluetooth Low Energy (LE) umgestellt, einem neueren Bluetooth-Standard mit Schwerpunkt auf geringem Stromverbrauch, der derzeit von Mission Control nicht unterstützt wird. Wenn Ihre Controller-Firmware Version 5.xx.xxxx.x oder höher ist, verfügen Sie über die neue LE-Firmware und müssen ein Downgrade auf die ältere Version durchführen (siehe https://support.xbox.com/en-US/help/hardware). -Netzwerk/Zubehör/Controller-Firmware-Reversion)
Können Sie Unterstützung für Xbox 360-Controller hinzufügen? Nein, derzeit nicht. Diese nutzen kein Bluetooth. Probieren Sie sys-con mit einem drahtlosen USB-Adapter aus.
Können Sie Unterstützung für das Aufwachen aus dem Schlaf hinzufügen? Wahrscheinlich nicht. Soweit ich weiß, erfordert das Aufwachen aus dem Ruhezustand, dass ein Controller einen speziellen Steuerbefehl an die Bluetooth-Hardware des Switch sendet. Es gibt keine Möglichkeit, einen Nicht-Switch-Controller dazu zu bringen, den vom Switch erkannten Befehl zu senden, ohne seine Hardware/Firmware zu ändern.
Können Sie Bluetooth-Audiounterstützung hinzufügen? Nein. Das Bluetooth-Modul auf dem Switch implementiert nur einen kleinen Satz an Diensten, die erforderlich sind, damit versteckte Controller funktionieren. Von diesem kleinen Satz an Diensten sind nur eine Handvoll High-Level-Funktionen dem Rest des Systems zugänglich. Das Hinzufügen von Audiounterstützung würde die Implementierung der für die Audioübertragung erforderlichen Dienste erfordern, wofür jede vernünftige Person eine Open-Source-Neuimplementierung des Bluetooth-Moduls benötigen würde, um Zugriff auf die dafür erforderlichen Low-Level-Funktionen zu haben. Ab Firmware 12.0.0 hat Nintendo Funktionen hinzugefügt, die Bluetooth-Audio unterstützen. Obwohl die Funktion in der offiziellen Software nicht aktiviert wurde, hat plutooo ein experimentelles Systemmodul namens nx-btred erstellt, das Bluetooth-Audio in Spielen ermöglicht, die Aufnahme unterstützen. Es bringt mir keinen großen Nutzen, seine Funktionalität zu Mission Control hinzuzufügen. Seit Firmware 13.0.0 unterstützt Nintendo nun offiziell Bluetooth-Audio.
Mein Controller verfügt über eine Audiobuchse. Können Sie Headset-Unterstützung hinzufügen? Unwahrscheinlich. Soweit ich weiß, tun Controller, die Headset-Audio unterstützen, dies über proprietäre oder nicht standardmäßige Mittel. Das wäre eine Menge Arbeit, nicht nur um zu verstehen, wie es für einen bestimmten Controller funktioniert, sondern auch um es irgendwie in HOS zu integrieren, wenn es kein Konzept für ein Gamepad gibt, das Audio unterstützt. Im besten Fall, wenn ein Controller irgendeine Form von Standard-Bluetooth-Audio verwendet, wären Sie immer noch den üblichen Bandbreitenbeschränkungen der Konsole ausgesetzt (abgehackter Ton, verzögerte Controller-Eingänge usw.). Benutzen Sie einfach normale Kopfhörer.
Mission Control funktioniert durch Man-In-The-Middling des bluetooth
-Systemmoduls und das Abfangen seiner IPC-Initialisierungsbefehle und Systemereignisse sowie die Übersetzung eingehender/ausgehender Daten, um den Switch davon zu überzeugen, dass er mit einem offiziellen Pro Controller kommuniziert.
Um dies zu erreichen, ruft das Modul btdrv.mitm
die Handles für bluetooth
-Systemereignisse und den gemeinsam genutzten Speicher ab, wenn das System versucht, diese über IPC über die Module btm
und hid
zu initialisieren. Anschließend erstellt es eigene sekundäre Versionen davon und gibt deren Handles anstelle des Originals weiter. Dadurch können Änderungen an allen Datenpuffern vorgenommen werden, bevor das System benachrichtigt wird (oder nicht). Darüber hinaus wird der IPC-Befehl WriteHidData
abgefangen, um ausgehende Anforderungen an den Controller zu übersetzen oder zu verwerfen. Im letzteren Fall können gefälschte Antworten direkt in den Puffer im Shared Memory geschrieben werden.
Das Abfangen von IPC-Initialisierungsbefehlen ermöglicht es Homebrew auch, den bluetooth
Dienst ordnungsgemäß zu nutzen. Normalerweise würde der Aufruf eines der IPC-Befehle, die Systemereignisse initialisieren oder abschließen würden, entweder zum Absturz der Konsole führen oder die von Systemprozessen gehaltenen Ereignishandles ungültig machen. Mit btdrv.mitm
sind wir in der Lage, alternative Event-Handles zu verteilen, wenn Homebrew versucht, eine Schnittstelle zu initialisieren, und die echten Systemereignisse auf diese umzuleiten, anstatt auf die Ereignisse, die von Systemprozessen gehalten werden.
Exefs-Patches für das bluetooth
Modul werden bereitgestellt, um die Kopplung von Wii/WiiU und anderen Controllern zu ermöglichen, die die ältere PIN-Code-Kopplung nutzen, sowie von Xbox Elite 2 Wireless-Controllern, und um die bei neueren Firmwares hinzugefügten Geräteklassenprüfungen zu lockern, damit sich Geräte auch als Tastatur identifizieren können oder Joystick angeschlossen werden.
Exefs-Patches zum btm
Modul wurden hinzugefügt, um Aufrufe von nn::bluetooth::hal::CloseHidConnection
zu überspringen, wenn ein Controller nicht richtig auf den von nn::bluetooth::hal::SetTsi
gesendeten Befehl des Broadcom-Anbieters reagiert. Dadurch wird verhindert, dass alle betroffenen Controller sofort nach der Verbindung getrennt werden, und es entfällt die Notwendigkeit, bestimmte Controller manuell mit einer settsi_disable.flag
-Datei zu kennzeichnen.
Der btm
Dienst ist jetzt auch MITM-fähig, sodass Controller-Namen im Handumdrehen gefälscht werden können, während die ursprünglichen Namen in der Kopplungsdatenbank erhalten bleiben.
Klonen Sie zunächst das Repository auf Ihren lokalen Computer und wechseln Sie in das neu geklonte Verzeichnis
git clone --recurse-submodules https://github.com/ndeadly/MissionControl.git
cd MissionControl
Mission Control verwendet derzeit einen benutzerdefinierten Zweig von Der offizielle libnx-Master wird jetzt zum Erstellen von Mission Control verwendet. Zum Zeitpunkt des Verfassens dieses Artikels kann die von devkitPro vertriebene libnx verwendet werden, ohne dass Sie sie selbst erstellen müssen. Dies kann sich ändern, wenn libnx
, der Bluetooth-Service-Wrapper und Typdefinitionen hinzufügt.Atmosphere-libs
aktualisiert wird, um aktuelle libnx
Commits zu verwenden, die in der offiziellen Version nicht vorhanden sind. In jedem Fall können Sie das enthaltene libnx
Submodul mit den folgenden Befehlen aus dem Quellcode erstellen.
cd lib/libnx
make && make install
Als nächstes erstellen Sie libstratosphere
. Wenn Sie auf Build-Fehler stoßen, fehlen möglicherweise erforderliche Abhängigkeiten (siehe https://github.com/Atmosphere-NX/Atmosphere/blob/master/docs/building.md).
cd ../Atmosphere-libs/libstratosphere
make
Erstellen und verpacken Sie abschließend die .zip-Distribution. Dadurch wird das Systemmodul mc.mitm
erstellt und mit Bluetooth-Exefs-Patches gepackt.
cd ../..
make dist
Das resultierende Paket kann wie oben beschrieben installiert werden.
Wenn Ihnen dieses Projekt gefällt, denken Sie bitte darüber nach, mich bei der Weiterentwicklung zu unterstützen :)