I segreti del GamePad - articolo
Il Digital Foundry ne svela le caratteristiche tecniche.
Dopo l'analisi della console che avevamo eseguito qualche tempo fa grazie a foto in altissima risoluzione della sua scheda madre, siamo passati al controller del Wii U. Trattandosi di un pad con schermo integrato abbiamo cercato di capire come comunicasse con la console e quindi quali fossero le sue potenzialità e limiti tecnici. Per questo motivo ci siamo rivolti a un gruppo di esperti impegnati in un procedimento di reverse engineering portato avanti dagli sviluppatori dell'emulatore per GameCube e Wii U chiamato Dolphin.
Quando abbiamo saputo di questo progetto href="https://twitter.com/delroth_/status/332179135411654656">da Twitter abbiamo contattato sviluppatore il leader di questa iniziativa, il francese Pierre Bourbon, per saperne di più. Durante il procedimento di hacking del GamePad sono state infatti ottenute informazioni dettagliate su come il controller di Nintendo funzioni realmente e noi non abbiamo mancato di chiedere qualche informazione extra.
"Abbiamo iniziato a lavorare sul GamePad del Wii U non appena (io e altri due hacker) ci abbiamo messo le mani sopra", ha esordito Bourdon."Il GamePad non è in realtà un dispositivo molto sicuro (rispetto al Wii U), nel senso che il firmware è memorizzato su una memoria flash in chiaro e questo ci ha permesso di decodificare il codice binario piuttosto facilmente. Viene inoltre utilizzato il protocollo di trasmissione wireless 802.11n, che è praticamente lo standard e questo rende molto facile intercettare il flusso di dati programmando un PC come se fosse un GamePad di Nintendo."
Il GamePad di per sé non è nemmeno lontanamente complesso come un tablet Android: in sostanza si tratta di un controller di gioco standard, con annesso un touch-screen e una scheda WiFi, affiancati a un chip di decodifica per il flusso video in entrata. Gli impulsi del controller vengono inviati di nuovo alla console attraverso lo stesso canale WiFi (180 volte al secondo, non meno), una novità rispetto alla connessione Bluetooth impiegata dal Wiimote.
"Abbiamo iniziato il nostro lavoro di reverse-engineering del GamePad "sniffando" le chiavi di cifratura che vengono trasmesse in modalità WiFi al momento in cui questo viene accoppiato alla console. La modalità di abbinamento è il WPS, con qualche piccola variante e una blanda cifratura. Abbiamo modificato la chiave per funzionare con dispositivi non standard e in breve tempo siamo riusciti ad abbinare un PC a un Wii U: in questo modo abbiamo impiegato più o meno una settimana per effettuare il reverse engineering del protocollo di comunicazione utilizzato tra la console e il GamePad. "
"Il GamePad non è un dispositivo molto sicuro, il suo firmware è memorizzato su una memoria flash in chiaro"
Il fatto che si tratti di un protocollo di comunicazione personalizzato significa che possiamo escludere alcune teorie, secondo le quali Nintendo avrebbe usato lo streaming video di Broadcom conosciuto come Miracast per dialogare il GamePad con la console. Alcune somiglianze a livello di trasporto dei dati sono comunque presenti.
Bourdon ha poi aggiunto altri dettagli: "Il segnale video è compresso nel formato h.264 (baseline profile, quindi niente frame B-frame), mentre l'audio è di solito non compresso anche se nel firmware abbiamo trovato tracce di protocolli di compressione per i dati audio. Non abbiamo trovato traccia della tecnologia Miracast nel GamePad, per cui tutto lo streaming di audio, video e comandi verso la console avviene tramite protocolli personalizzati Nintendo."
Anche la presenza della codifica Baseline h.264 esclude la presenza di tecniche di compressione avanzata, una limitazione che Nintendo ha deciso di aggirare grazie alla larghezza di banda a disposizione. La misurazione dei tempi di trasporto tra la console e il PC ha fatto registrare una velocità di trasferimento di 33MB in 87 secondi, ottenendo una velocità media di circa 3 MBps. Si tratta di un risultato di lusso per uno schermo incapace di andare oltre alla risoluzione di 858x480 a 60 frame al secondo ma bisogna notare che il video usato per il test si riferiva a una serie di menu del front-end. Pierre Bourdon ha precisato che il trasporto di dati tra il Wii U e il PC avviene secondo un bitrate variabile; ciò significa che la banda viene scalata a seconda della complessità dell'immagine da codificare.
Questa misurazione non include anche i dati audio. Ecco un grafico dell'occupazione in banda in relazione alla qualità dell'immagine.
"Anche se la media era di soli 3 MBps, misurando l'ampiezza di banda del trasporto dei dati abbiamo visto picchi tra 25 e 40 MBps"
Nonostante la media di soli 3 MBps, abbiamo rilevato anche picchi tra i 25 e i 40 MBps, una variazione enorme in termini di larghezza di banda che può essere dovuta solo al bitrate di codifica video H.264 variabile. Più complessa è l'immagine, più informazioni sono necessarie per mantenere inalterata la qualità del filmato: qualcosa che il Wii U sembra essere in grado di fare perfettamente grazie al collegamento wireless 802.11n.
"Non abbiamo avuto la possibilità di controllare ma pensiamo che i picchi siano dovuti all'invio di grandi I-frame (vedi immagine)", spiega Bourdon. "Se si calcola la media della larghezza di banda per qualcosa come 10 fotogrammi, questi picchi di solito scompaiono. Nella modalità di funzionamento normale il Wii U invia un I-frame e poi solo fotogrammi P, a meno che l'applicazione richieda di inviare un I-frame e questo non sia stato ricevuto correttamente dal GamePad a causa di una eventuale packet loss."
La conferma della presenza di un encoder h.264 integrato nella Wii U (riteniamo faccia parte del chip grafico) è simile ad elementi hardware presenti nella Xbox One e PlayStation 4. C'è quindi la possibilità che eventuali funzioni cloud possano essere innestate sulla Wii U, in particolare quando Bourdon ci ha confermato che il firmware del Wii U permette di supportare due GamePad in simultanea.
"Il flash del GamePad può essere aggiornato: questo significa che Nintendo può aggiungere nuove funzionalità al controller con il passare del tempo."
"Non vedo alcun motivo per cui non sia possibile inviare dati video e audio dal GamePad ad internet, mentre il percorso inverso potrebbe essere molto più difficile o del tutto impossibile", ha spiegato Bourdon. "Il firmware del chip che gestisce il flusso di dati da e per il GamePad (chiamato DRH) può essere aggiornato, quindi un'operazione di questo genere potrebbe essere nei futuri piani di Nintendo. Si tratta solo di speculazioni, però, in quanto non abbiamo visto nulla nel firmware che possa indicare un progetto di questo genere."
Ma per quanto riguarda le possibilità di piena emulazione del Wii U, tenendo presente il pedigree del team di hacking? Il lavoro svolto da Pierre Bourdon è notevole ed eravamo curiosi di vedere se, grazie alla retrocompatibilità col Wii, fosse possibile eseguire l'emulazione dei titoli Nintendo su PC.
"Il processore PowerPC si può adattare all'emulazione, non ci sono particolari facilitazioni o difficoltà. Avere più core per eseguire il processo di emulazione può rendere le cose più semplici, visto che i giochi non hanno bisogno di un timing perfetto per girare. Il grosso problema è rappresentato dalla GPU: emulare un processore grafico completamente programmabile è qualcosa che nessuno ha mai tentato prima. Il vero problema sono le API DirectX e GL, che impediscono di vedere esattamente cosa stia facendo il sorgente, rendendo difficile l'emulazione anche di titoli molto semplici dal punto di vista tecnico."
Traduzione a cura di Matteo "Elvin" Lorenzetti