Wii Uゲームパッドの秘密。ファームウェアはダブルパッドに対応 | みらいマニアックス !

Wii Uゲームパッドの秘密。ファームウェアはダブルパッドに対応

Wii Uゲームパッドは、GameCube/ Wiiのエミュレータ・Dolphinの開発者によって解析され、PC上で完全にシミュレートされている。

Twitterでこのニュースを目にしたとき、私たちはもっと多くのことを知るため、開発者のPierre Bourdon氏に連絡を取った。ゲームパッドのハッキングにおいて、任天堂の革新的なコントローラが実際にどのように動作するかについての幅広い情報を、開発者が持っているだろうと考えたためだ。


「Wii Uゲームパッドを入手してすぐ、私たち(私と他2名)は作業にとりかかりました。実際のところ、ゲームパッドは(Wii Uに比べると)それほどセキュアなハードではありません。デバイスのファームウェアは暗号化されずにフラッシュに格納されており、バイナリコードはかなり簡単に解析できました。またほとんど標準の802.11nを使用しているので、PCで実験する事も容易でした。」

ゲームパッド自体は、本質的には何も変哲もないコントローラーであり、最もベーシックなAndroidタブレットほどにも複雑ではない。タッチスクリーンとWiFiカードを搭載し、インプットとなるビデオストリームのデコーダチップと組み合わされている。Wiiリモコンで採用されたBluetoothとは異なり、コントローラへの入力自体は同じWiFiチャネル(180回/秒以上)を通じてWii Uへと送信される。

「私たちは、Wii Uゲームパッドのペアリング信号を傍受するところからスタートしました。WiFiの暗号化キーがペアリング時に転送されると仮定したからです。ペアリングは(ほぼ)標準のWPS(標準のWiFi暗号化プロトコル)であることがわかりました。暗号にはほんの少しばかりの難読化が追加されています。私たちはwpa_supplicantとhostapdを修正し、非標準のもので動作するようにして、Wii UとPCをペアリングさせることができました。これには一週間もかかりませんでしたね。それからは、Wii Uとゲームパッドの間で使われているカスタムの通信プロトコルを解析するのに時間を使いました。」




カスタムの通信プロトコルということで、Wii Uゲームパッドを動かす上で、任天堂はBroadcomのストリーミングビデオのMiracast技術を採用しているだろうという、それまでのセオリーを無視できるということになる。類似点はあるにしてもだ。

「動画情報はH.264(ベースラインプロファイルであり、Bフレームではない)を用いて圧縮されています。通常であればオーディオは圧縮されていませんが、ファームウェアには圧縮オーディオフォーマットについて言及がありました...私たちが解析を始めたころ、Miracastについての言及を見つけたのですが、それは誤りであるとわかりました。ゲームパッドにはどこにもMiracastは使われておらず、オーディオ、ビデオ、および入力ストリーミングはカスタムのプロトコルを通じて行われています。」

H.264ベースラインプロファイルということで、コーデックに採用されうるより高度な圧縮技術の多くが除外されるが、任天堂は帯域幅自体の純粋な広さで(低い圧縮率を)補っている。

Wii UからのWiFiのストリームのサンプルでのキャプチャは、87秒間で33MBに達した。これは平均では3Mbps程度となる。これは、60FPSの858x480のストリームとしてはかなり豪華なものだが、ここでキャプチャされた映像はWii Uのフロントエンド・メニューを表示しているだけだ。

Pierre Bourdon氏は、Wii Uは可変ビットレートを持ちいていると述べ、つまりエンコードすべき画像の複雑さに応じて、帯域幅がスケールがアップするのだと語った。

「測定にはオーディオは含まれていません。下はこの33MBの時間/フレームサイズのグラフです。」

$みらいマニアックス !


平均は3Mbpsであるが、25~40Mbps程度の大きな上振れが生じている。この帯域幅の大規模な変化は、可変ビットレートのH.264ビデオエンコーディングに特有のものだ。画像が複雑になるほど、画像の品質を維持するためにより多くの情報が必要とされる。正常に802.11nワイヤレスリンクを通じて送信することよりも、Wii Uは余裕をもたせてあるようだ。

「チェックしていませんが、この大きな上振れは、Wii Uが大きなIフレーム(全体画像/キーフレーム)を送信している際に生じたものだと思います。10フレームぐらいの帯域幅を平均すると、これらの大きな上振れはほとんど見えなくなります。Wii Uは通常のモードでは、Iフレームを1つ送信し、その後で複数のPフレームを送信します。アプリケーションがIフレームの送信を要求したり、(パケットロスによって)ゲームパッドがIフレームを適切に受信できなかったりしない限りは。」

H.264エンコーダがWii Uに内蔵されている(GPUの一部だと考えられている)ことが確定したが、これは次世代XboxやPS4の両方のハードウェア要素に似たものであり、クラウド機能がWii Uに追加される可能性もわずかに存在していることになる。Bourdon氏が2つのWii Uゲームパッドの同時利用へのサポートがファームウェアに組み込まれていることを発見してからは、特にそうだ。

「ゲームパッドからのビデオ/オーディオ送信をインターネットに送信できないという理由は何もありません(インターネットとゲームパッドの両方への送信は困難か、あるいは不可能かもしれませんが)。ゲームパッド(DRH)との通信を取り扱うファームウェアはアップグレードが可能です。ですので、これは任天堂の今後の計画なのかもしれません。ですが、これはただの憶測です。ファームウェアには、任天堂がそういった計画をもっているという痕跡は何も見つかっていませんから。」


NS: Eurogamer  Secrets of the Wii U GamePad


みらい的コメント:


ハード的には意外にシンプルだったWii Uゲームパッド。
パッド側とはいえファームウェアが平文だったというのは、ちょっとびっくりかも。

「社長が訊く」でも、話の多くは動画のエンコード・デコードの方法について割かれていたし、ゲームパッドの重点は、どちらかというとソフトウェア側にあったのだろう。クラウド・ゲーミングでも似たようなものだし、この手のデバイスとは、そういったものなのかもしれない。

それにしても、通信は802.11nベースでPCでのエミュレーションも既に完成しているということは、例えばVitaをWii Uにつなぐ、といったことも(もしかしたら)可能なのかもしれない。
なんというカオス。ついにマリオをVitaでプレイできるようになるとは!(PS MobileはWifi機能へのアクセスは可能なんだっけ?)

ファームウェアがダブルパッドに対応しているというのは、大方の予想通りだろう。

実際にダブルパッドの封印が解かれるには、GPUに負荷をかけないシンプルなゲームでかつ2台を使うことが前提の大ヒット作が出る、というあたりが条件になるだろうから、そう簡単にはいかないだろうが。


なお、文末のWii Uエミュレーションについての記述は省略した。
一言でまとめると、GPUのエミュレーションが難しいため、Wii Uのエミュレーションはそう簡単ではない、とBourdon氏は語っている。