Pubblicata la versione stabile di MissionControl, dopo ben 5 pre-release, il sysmodule si dimostra come la versione bluetooth del modulo di sistema sys-con che permette di accoppiare una stragrande maggioranza di controller alla console Switch.
Secondo le note di rilascio, si tratterebbe dell’ottava versione ufficiale di Mission Control contenente per lo più la correzione di alcuni bug e l’introduzione del supporto per i controller Xbox Elite Wireless Series 2 e GameSir T2a.
Introdotta inoltre una memoria flash SPI virtuale basata su file per tutti i controller non ufficiali che permetterà alla console di leggere e scrivere i dati del controller che normalmente verrebbero archiviati nella memoria a bordo di un controller ufficiale.
Ciò significa che le calibrazioni dell’utente ora possono essere completate e memorizzate/richiamate. I controller WiiU Pro e altri controller Nintendo meno recenti con stick analogici hanno valori che possono variare nell’intervallo tra le singole unità e spesso presentano valori centrali spostati.
Questo è sempre stato un problema, ma è diventato più evidente dalla versione 0.5.0 che ha migliorato la precisione della gestione dello stick analogico. Si consiglia di eseguire la calibrazione per questi controller per ottenere prestazioni ottimali.
Anche se non dovrebbe esserci alcun motivo per toccare questi file, possono essere trovati all’interno della directory sdmc:/config/MissionControl/controllers/<address>/spi_flash.bin
dove <address>
è l’indirizzo bluetooth del controller rappresentato come una stringa di caratteri esadecimali.
[stextbox id=’info’]Nota: Per eseguire questa versione è necessario Atmosphère >= 0.19.5.[/stextbox]
Caratteristiche
- Supporta tutte le versioni del firmware.
- Associa i controller Bluetooth in modo nativo tramite la schermata
Cambia impugnatura/ordine
. - Rimappatura nativa dei pulsanti (firmware 10.0.0+).
- Il sismodule
btdrv-mitm
aggiunge i comandi IPC di estensione che possono essere utilizzati per interagire con il processo bluetooth senza interferire con lo stato del sistema.
Controller supportati
Attualmente sono supportati i seguenti controller. Se disponi di una variante di terze parti di uno dei seguenti o di un controller Bluetooth che non è stato elencato, valuta la possibilità di inviare un problema con i dettagli del controller, inclusi vid/pid, per richiedere supporto.
- Nintendo Wii Remote + estensioni (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 (da non confondere con i controller Series S/X: utilizzano Bluetooth LE, che attualmente non è supportato)*.
- Microsoft Xbox Elite Wireless Controller Series 2. NEW!!
- NVidia Shield Controller.
- Ouya Controller.
- Gamestick Controller.
- Gembox Controller.
- iCade Controller.
- Ipega Controllers (9017s, 9023, 9055, 9062S, 9076, 9078, 9087 9096 confermato funzionante. Anche altri potrebbero funzionare).
- Xiaomi Mi Controller.
- Steelseries Free.
- Steelseries Nimbus.
- Steelseries Stratus Duo.
- GameSir G3s.
- GameSir G4s.
- GameSir T1s.
- GameSir T2a. NEW!!
- Hori Onyx.
- 8bitDo SN30 Pro Xbox Cloud Gaming Edition.
- 8BitDo ZERO (la maggior parte degli altri controller 8BitDo ha una modalità Switch disponibile. Potrebbe richiedere l’aggiornamento del 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.
[stextbox id=’info’]Nota: Non tutti i controller wireless per Xbox One supportano il Bluetooth. Le varianti precedenti utilizzano un protocollo proprietario a 2,4 Ghz e non possono essere utilizzate con la console Switch. Vedere qui per informazioni sull’identificazione della variante Bluetooth.[/stextbox]
Requisiti
- Una console Nintendo Switch hackerabile con una versione aggiornata del Custom Firmware Atmosphère. Altri firmware personalizzati non sono supportati.
- Controller Bluetooth compatibile.
Installazione
Scaricare l’archivio .zip
ed estrarlo direttamente nella directory principale della tua scheda SD. Affinché MissionControl diventi attivo, è necessario riavviare la console.
Si consiglia dopo il riavvio di scollegare anche i controller fisicamente collegati dalla console, eliminare il database di accoppiamento e ricollegare tramite Bluetooth per assicurarsi che i controller Switch esistenti abbiano l’ID hardware corretto memorizzato e possano essere riconosciuti correttamente.
Per eliminare il database, accedere a Impostazioni di sistema-> Controller e sensori-> Disconnetti controller.
[stextbox id=’alert’]Importante: Atmosphère >= 0.19.5 è necessario per eseguire questa versione. L’utilizzo di una versione precedente di Atmosphère causerà l’arresto anomalo di Mission Control all’avvio. Si consiglia inoltre agli utenti che eseguono l’aggiornamento dalla versione precedente di MissionControl di cancellare il database di accoppiamento e di ricollegare i controller. La mancata cancellazione delle vecchie voci potrebbe causare il rilevamento errato dei controller non switch.[/stextbox]
Utilizzo
Installare MissionControl sulla scheda SD, riavviare la console Switch e accoppiare i controller come faresti normalmente tramite la schermata Controller > Cambia impugnatura/ordine. Una volta accoppiati, i controller si riconnetteranno automaticamente quando vengono svegliati.
La maggior parte delle funzionalità native dovrebbe funzionare (ad eccezione di cose come l’aggiornamento del firmware). Se trovi qualcosa che non funziona, apri un problema.
Associazione controller
I controller supportati hanno ciascuno i propri metodi per accedere alla modalità di associazione/sincronizzazione. Di seguito sono riportate le istruzioni per accedere a questa modalità per ogni tipo supportato.
Controller Wii (U)
Premere il pulsante rosso di sincronizzazione sul retro del controller. I LED del controller lampeggiano rapidamente.
Controller Dualshock4
Tieni premuti contemporaneamente i pulsanti + finché la barra luminosa non inizia a lampeggiare. Se eseguito correttamente, lo schema di lampeggiamento assomiglierà a un battito cardiaco, altrimenti lampeggerà periodicamente.
Controller Xbox One
Premere e tenere premuto il pulsante guida (X) finché il LED non inizia a lampeggiare. Quindi premere e tenere premuto il piccolo pulsante di sincronizzazione sul retro vicino alla porta di ricarica finché il LED non inizia a lampeggiare più rapidamente.
Dovresti anche assicurarti che il firmware del controller sia aggiornato, poiché i vecchi firmware erano noti per avere un bluetooth flakey.
Per altri controller fare riferimento al manuale utente del controller per informazioni su come metterlo in modalità di sincronizzazione.
Come funziona
MissionControl funziona da Man-In-The-Middling al modulo del sistema Bluetooth
e intercettando i suoi comandi IPC di inizializzazione e gli eventi di sistema e traducendo i dati in entrata/uscita per convincere lo Switch che sta comunicando con un Controller Pro ufficiale.
Per ottenere ciò, il modulo btdrv-mitm
ottiene gli handle per gli eventi di sistema bluetooth
e la memoria condivisa quando il sistema tenta di inizializzarli su IPC tramite i moduli btm
e hid
. Quindi crea le proprie versioni secondarie di questi e passa i loro handle invece dell’originale.
Ciò consente di apportare modifiche a qualsiasi buffer di dati prima di notificare (o meno) il sistema. Inoltre, il comando IPC WriteHidData
viene intercettato per tradurre o eliminare le richieste in uscita al controller. In quest’ultimo caso, risposte false possono essere scritte direttamente nel buffer della memoria condivisa.
L’intercettazione dei comandi IPC di inizializzazione consente inoltre agli homebrew di utilizzare correttamente il servizio bluetooth. Normalmente, la chiamata di uno qualsiasi dei comandi IPC che inizializzerebbero o finalizzerebbero gli eventi di sistema causerebbe un arresto anomalo della console o invaliderebbe gli handle di eventi tenuti dai processi di sistema.
Con btdrv-mitm
siamo in grado di distribuire gestori di eventi alternativi quando l’homebrew tenta di inizializzare un’interfaccia e reindirizzare gli eventi di sistema reali a quelli invece degli eventi contenuti nei processi di sistema.
Le patch IPS al modulo Bluetooth
sono fornite per (ri)abilitare il passaggio di codici PIN abitrari quando viene utilizzato l’accoppiamento legacy Bluetooth (Nintendo codifica un valore di '0000'
, ignorando gli argomenti IPC). Ciò consente ai dispositivi Wii (U) di essere associati alla console.
Funzionalità pianificate/in corso
Supporto rombo.- Supporto per i controlli di movimento.
- Supporto Bluetooth LE.
- Configurazioni per controller:
- Accendi/spegni rombo.
- Accendi/spegni controlli di movimento.
- Identifica come Pro Controller o Joycon
- Imposta i colori del corpo/pulsante del controller.
- Inverti gli assi dello stick analogico.
- Zone morte dello stick analogico.
- Companion app:
- Gestione del database di associazione:
- Visualizza le informazioni sul controller associato.
- Cancella database.
- Esporta database su file.
- Importa database esistente da file.
- Gestione/diagnostica del controller.
- Gestire le configurazioni del controller.
- Visualizza i dati dei rapporti HID grezzi.
- Prova pulsanti/stick analogici.
- Scarica flash SPI (solo controller ufficiali).
- Nuova implementazione del rilevamento/abbinamento del controller.
- Gestione del database di associazione:
- Overlay Tesla.
- Supporto per tastiera e mouse.
- Modalità Gamecube (supporto trigger analogico).
- Controller cablati USB.
Changelog
- Aggiunto supporto per i seguenti controller:
- Microsoft Xbox Elite Series 2 Controller.
- Gamesir T2a.
- Aggiornato set di patch ips per consentire l’abbinamento corretto del controller Xbox Elite Wireless Series 2 .
- Aggiunto sistema flash SPI virtuale basato su file. I dati come le calibrazioni ora possono essere archiviati e recuperati per ciascun controller.
- I valori analogici per L/R sul controller Wii Classic ora vengono presi in considerazione durante la mappatura dei controlli. Ciò consente un comportamento di trigger identico dei controller Gamecube utilizzati tramite un adattatore Wiimote rispetto all’adattatore USB ufficiale.
- Corretto un problema di regressione in cui i controller Mocute 050 e 8bitdo Zero si disconnettevano a causa della ricezione del comando SetTsi dalla console.
- I dati Rumble inviati insieme al rapporto del sottocomando (0x01) ora vengono gestiti correttamente.
- Risolto un problema con un indice dell’array parzialmente al di fuori dei limiti dell’array durante la compilazione del modulo.
Problemi noti e limitazioni
- Controlli di movimento attualmente non supportati.
- I controller non Switch non possono essere utilizzati per riattivare il sistema dalla sospensione.
- I controller che utilizzano lo standard Bluetooth LE (BLE) non sono attualmente supportati e non si collegheranno al sistema.
- I controller Xbox One Elite V2 non possono completare il processo di associazione con la console e in alcuni casi ne causano l’arresto anomalo. Senza l’accesso a un controller fisico non c’è molto che posso fare per eseguire il debug del processo.
- Xbox One, Wii/WiiU e (soprattutto) alcuni controller Dualshock v1 possono richiedere del tempo per essere rilevati e successivamente accoppiati con la console. Siate pazienti e rientrate nella modalità di sincronizzazione del controller più volte, se necessario. Una volta sincronizzati, i controller dovrebbero funzionare normalmente.
Il layout dei pulsanti di Xbox One è stato modificato a un certo punto in un aggiornamento del firmware. Assicurati che il firmware del controller sia aggiornato se hai problemi con le mappature dei pulsanti errate. Entrambi i layout sono ora supportati.- I livelli della batteria del controller riportati potrebbero non essere corretti. Mi baso interamente sulle note di reverse engineering trovate su Internet per questi. In molti casi non possiedo il controller e semplicemente non ci sono informazioni disponibili, quindi questi controller mostreranno sempre la batteria piena. Qualsiasi aiuto per migliorare questo è il benvenuto.
- Diversi utenti hanno segnalato controller WiiU knockoff che non possono essere rilevati dalla console durante il rilevamento Bluetooth. Sfortunatamente penso che stiano usando un chipset Bluetooth incompatibile.
FAQ
Domanda: Funziona su <insert CFW here>?
Risposta: No. MissionControl funzionerà solo con Atmosphère. Questo non è un meschino atto di malizia verso altri Custom Firmware e i loro utenti. Altri semplicemente non forniscono (attualmente) il framework necessario per il funzionamento di questo sysmodule.
Domanda: Questo supporta i controller USB?
Risposta: No. MissionControl per ora è solo Bluetooth.
Domanda: Funziona con sys-con installato?
Risposta: Sì, ho ricevuto diversi rapporti dagli utenti che i due possono essere utilizzati insieme senza problemi.
Domanda: L’installazione di questo ha bloccato la mia console !!!!!11!!1!11
Risposta: No. Se al riavvio della console vengono visualizzati errori relativi al titolo 0100000000000008
, quasi certamente stai utilizzando una versione di Atmosphere obsoleta. Installare sempre e comunque la versione più recente e seguire nuovamente le istruzioni di installazione di MissionControl.
Domanda: Come posso usarlo con più configurazioni di avvio di sysNAND/emuMMC?
Risposta: L’accoppiamento dei controller su più installazioni HOS univoche richiede più database di accoppiamento ed è essenzialmente lo stesso dell’accoppiamento con due diverse console. L’unica eccezione è il caso in cui hai accoppiato i controller prima di creare copie di sysNAND. Per ora dovrai riassociare i tuoi controller quando passi avanti e indietro. In futuro spero di includere un’opzione per caricare/memorizzare il database sulla scheda SD per evitare questo problema.
Domanda: Perché i miei controller Joycon/Switch Pro ufficiali hanno smesso di funzionare tramite Bluetooth dopo l’installazione di MissionControl?
Risposta: È possibile accoppiare questi controller tramite le guide Joycon o una connessione USB. In questi casi un ID hardware spazzatura viene archiviato nel database di accoppiamento e il controller non viene identificato. La mancata identificazione di un controller significa che non so come devono essere gestiti i suoi dati di input, quindi lo ignoro. Questo problema può essere risolto disconnettendo fisicamente il controller dalla console, eliminando il database di accoppiamento con l’opzione Impostazioni di sistema-> Controller e sensori-> Disconnetti controller, quindi ricollegando tramite Bluetooth nella schermata Cambia presa / ordine. Questo non dovrebbe più essere un problema con l’ultima versione di MissionControl.
Domanda: Perché il mio controller knockoff di terze parti non funziona?
Risposta: Molti controller di terze parti utilizzano anche ID hardware inutili, rendendoli difficili da identificare in modo affidabile. Se un controller non può essere identificato, lo ignoro, poiché non ho idea di come elaborare i dati in arrivo. Attualmente sto cercando di trovare un modo alternativo per identificarli senza creare problemi altrove. Come sopra.
Domanda: I pulsanti del controller Xbox One non sono mappati correttamente. Puoi aggiustarlo?
Risposta: Non hai letto la sezione Problemi noti e limitazioni, vero? è necessario aggiornare il firmware del controller alla versione più recente. Questa operazione può essere eseguita su Windows utilizzando l’app Accessori Xbox. Puoi anche farlo sulla Xbox stessa.
Domanda: Potete aggiungere il supporto per i controller PS3?
Risposta: È sulla mia lista di cose da esaminare. Il processo di accoppiamento non è standard e potrebbe richiedere modifiche al driver Bluetooth. Se può essere fatto in modo non distruttivo, aggiungerò eventualmente il supporto.
Domanda: Puoi aggiungere il supporto per i controller Xbox 360?
Risposta: No. Questi non usano il Bluetooth. Prova il sys-con con un adattatore USB wireless.
Domanda: Puoi aggiungere il supporto audio Bluetooth?
Risposta: No. Il modulo bluetooth sullo switch implementa solo una piccola serie di servizi necessari per far funzionare i controller nascosti. Di questo piccolo insieme di servizi, solo una manciata di funzioni di alto livello sono esposte al resto del sistema. L’aggiunta del supporto audio richiederebbe l’implementazione dei servizi necessari per il trasporto audio, per i quali qualsiasi persona sana di mente richiederebbe una reimplementazione open source del modulo bluetooth per avere accesso alle funzioni di basso livello richieste per eseguirlo.
Download: MissionControl v0.5.1
Download: Source code MissionControl v0.5.1
Fonte: gbatemp.net