Nintendo SwitchのDisplayPort Alternate Modeは純正ドックでしか動作しないように制限されている

Nintendo SwitchのTVモードは非純正ドックでは有効にならず、純正ドックを使用する必要がありますが、その原因はSwitch本体のDisplayPort Alternate Modeが制限されているからです。今回はその辺について調べてみました。

※ Nintendo Switch 2019年モデル HAC-001(-01) (本体システムバージョン: 9.2.0)

広告

純正ドックを使用した場合

写真の通り、Switch + 純正ドック + 純正ACアダプターの組み合わせではTVモードが有効になり、外部モニターに映像が出力されます。

そして、その際のドック – Switch間のUSB PDのパケットが以下です。

大まかな流れとしては以下の通りです。

  • 電力のネゴシエーションが行われる
  • SVID 057EのAlternate Modeに入る (赤枠部分)
  • SVID FF01のAlternate Modeに入る (青枠部分)

※電力の話は別の記事にまとめたので飛ばします。詳しくはこちらの記事を参照して下さい。

057Eは16進数のNintendoのUSB Vendor IDです。そのため、これは言わばNintendo Alternate Modeです。

そしてそのNintendo Alternate Modeに入った後に、Standard ID FF01のAlternate Modeに入っています。DisplayPortにはStandard ID FF01が割り振られているため、これはDisplayPort Alternate Modeです。

まとめると、SwitchはTVモード動作時に、電力のネゴシエーション後にNintendo Alternate Modeに入り、その後DisplayPort Alternate Modeに入っているということになります。


余談ですが、このNintendo Alternate Modeの入り方はあまり良くないです。通常、Alt Modeは

  1. Discover Identifyコマンドで、相手のVendor IDとProduct IDを確認
  2. Discover SVIDsコマンドで、相手がどのSVIDのAlt Modeに対応しているかを確認
  3. Discover Modesコマンドで、相手がそのSVIDのどういったAlt Modeに対応しているかを確認

という手順を踏んでからEnter Modeが実行されますが、SwitchはDiscover IdentifyコマンドでVIDとPIDを確認した後、色々すっ飛ばしてすぐにEnter Modeを実行しています。

VIDやPIDで決め打ちすると、将来的に新しいドックを出した際などに古いドックと同じPIDを割り当てるか、もしくはSwitchのソフトウェアアップデートが必要になるので、止めといたほうが良いと思います。

USB Type-C to DisplayPortケーブルを使用した場合

SwitchがDP Alt Modeに対応していることが分かったので、まずはもっとも単純な方法としてUSB Type-C to DisplayPortケーブルを使用してモニターに接続してみました。

使用したのはClub 3D CAC-1557です。

写真の通り、モニターに接続しても映像が出力されませんでした。

USB PDのパケットを確認したところ、電力のネゴシエーション自体は正常に行われているものの、Discover Identifyコマンドがやり取りされておらず、Alternate Modeに入ろうとした痕跡がありませんでした。

このことから、Nintendoがソフトウェアアップデートで仕様を変更しない限り、SwitchがSourceとして動作している状態 (電源に接続されていない状態) でTVモードを有効にするのはどう頑張っても不可能と考えられます。

USB Type-Cハブを使用した場合

次はUSB Type-Cハブを使用した場合です。写真の通り、モニターに映像は出力されませんでした。

一応使用している機器を書いておくと、

  • USB Type-Cハブ : USB PD入力とD-Sub出力があるタイプ (ノーブランド品)
  • USB PD電源 : USB PD 60W出力できるもの (Anker A2015113)

を接続しています。 (純正ドックとは異なり、HDMIではなくD-Subでモニターに接続していますが、Alt ModeでDisplayPortを取り出した後にHDMIに変換するかD-Subに変換するかという違いなので、Alt Modeには直接影響しません)

なぜ純正ACアダプターを使用していないかと言うと、通常のUSB Type-Cハブは自分が使用する数ワットを差し引いて接続先デバイス (今回はSwitch) に電力を通知するからです。純正ACアダプターを使用してしまうとTVモード動作に必要となる15.0V/2.6Aに達しないため、純正ドックでTVモードが有効になることを確認おり、なおかつハブを経由しても15.0V/2.6Aを供給できる60WのサードパーティACアダプターを使用しています。 (ちなみに、なぜか純正ドックはACアダプターから39Wを受け取って、そのまま39WをSwitchに通知します)

そして、その時のUSB PDのパケットが以下です。

電力のネゴシエーション後、Sink/DFPであるSwitchがDiscover Identifyコマンドで「お前は何者だ?」ということをSource/UFPであるハブに対して確認しています。純正ドックの場合、ここでVendor ID 057Eを通知して「Nintendo純正品ですよ〜」ということをSwitch本体に伝えますが、今回使用したサードパーティ製ハブはNintendo純正品ではないため、当然別のVIDを通知します。そのため、そこでUSB PDのパケットのやり取りは終了していました。

考察

非純正のUSB Type-Cハブを使用した際も15.0V/2.67Aで電力のネゴシエーションを行っていることから電力不足という線は考えにくく、また、USB PDのパケットのやり取り自体は正常に行われていることから、相性問題の可能性も低いです。となると、やはりSwitch側が意図的にDisplayPort Alternate Modeに入っていないと考えるべきでしょう。

純正ドック・非純正USB Type-Cハブの違いはDisplayPort Alt Mode前のNintendo Alt Modeであるため、これがDisplayPort Alt Modeの可否を決めていると考えるのが妥当です。Nintendo Alt Modeでやり取りされているデータが何を表しているのかというのはNintendo以外には分からないので、これを利用してNintendo Switchは純正ドック以外を弾く……というか純正ドック使用時のみDisplayPort Alt Modeに入るようになっていると考えられます。

巷では「TVモード対応が謳われている非純正ドック」が販売されていますが、それらは純正ドックを模して同じようなパケットをしゃべるように細工がされているものと思われます。非純正ドックの多くは実売3000円程度で品質には期待できませんし、全ての機能が期待通りに動作するという保証はどこにもないため、極力純正ドックを使用することをオススメします。

関連記事

Nintendo SwitchのTVモードに使えるACアダプター・使えないACアダプター
Nintendo SwitchのTVモードに使えるACアダプターと使えないACアダプターを、USB PDのパケットから探ってみました。
Nintendo Switch本体の充電の仕様を調べてみた
Nintendo Switchに色々なACアダプターを接続して、充電の仕様を調べてみました。
タイトルとURLをコピーしました