
EDIDを知ると相性問題の原因が分かるよ!
はじめに
XREAL Oneシリーズなどの電気メガネをPCで活用する際、ネックになりがちなのが接続方法です。特に、USB Type-C DP Alt出力を持たないデスクトップPC環境などでは、HDMIからType-Cへ変換するアダプターが必須になります。
しかし、特定の組み合わせ——例えば「XREAL Oneシリーズ(One / One Pro / 1S)」とHDMI-Type C変換アダプター「Lemorele LD48L」を組み合わせた場合、Windowsにディスプレイとして認識はされるのに、映像が出力されないという厄介な現象に遭遇することがあります。
今回は、この現象がなぜ起きるのか、EDIDのバイナリデータを紐解きながら、その原因と解決策についてまとめてみたいと思います。
XREAL Oneシリーズのウルトラワイドスクリーンモードについて
最新のXREAL One / One Pro / 1Sには、空間を広く使える「ウルトラワイドスクリーンモード(32:9など)」が搭載されています。
湾曲したウルトラワイドスクリーンが空中に固定され、顔を動かせば見渡すことが出来るというまさにX1チップの本領を発揮する機能です。
32:9モードを使用する際、ディスプレイ側は 3840x1080 @ 60Hz という特殊な解像度を要求します。これを伝送するために必要なピクセルクロックは 297MHz となり、フルHD(1080p@60Hzの約148.5MHz)と比べると倍の帯域を必要とします。
個人的には「16:18モードもあるのに何がウルトラワイドスクリーンモードやねん」という気持ちもあるので、名称の見直ししてもらいたいなあ…
Lemorele LD48Lについて

Lemorele LD48Lは、PCのHDMI出力とUSBからの給電をまとめ、ARグラス等のためにUSB Type-C(DisplayPort Alt Mode)映像信号として出力してくれる便利な変換アダプターです。
スペック上は4K@60Hz(600MHz)などにも対応しており、本来であれば297MHz程度の帯域は全く問題なく通すことができるハードウェア能力を持っています。
組み合わせで発生する不具合について(EDIDの罠)
ハードウェアの能力は十分なのに、なぜWindowsの解像度設定画面から 3840x1080 が消えてしまうのか。その原因は、XREAL Oneシリーズが出力している「素のEDIDデータ」と、HDMI規格の厳格な仕様の相性の悪さにありました。
XREAL Oneシリーズの32:9モードのEDIDをダンプして解析したところ、以下の事実が判明しました。
- 拡張ブロック(CTA-861)が存在しない
XREAL OneシリーズのEDIDは基本の128バイトのみで構成されており、HDMI機器であることを証明するための「HDMI VSDB」を含む拡張ブロックがありません。 - Windowsが「古いDVI機器」だと誤認する
HDMIの規格上、拡張ブロック(HDMI VSDB)を持たない機器は「後方互換のためのDVI機器」として扱われます。 - DVIの帯域制限(165MHz)に引っかかる
DVI(シングルリンク)の最大ピクセルクロックは165MHzに制限されています。そのため、3840×1080に必要な297MHzの信号は「帯域オーバー(Out of Range)」と判定され、OSのリストから強制的に除外されてしまいます。
要するに、XREALのEDIDがシンプルすぎるゆえに、WindowsのHDMIドライバが気を利かせて安全装置(DVIフォールバック)を発動させてしまっているのが根本的な原因です。
XREAL Oneシリーズの32:9モードではEDIDで1個しか解像度が設定されていないのでWindows側からは「対応解像度が1個もない」状態になります。
なぜUSB Type-C DP Altでは発生しないのか
ここで疑問に思うのが、「PCのType-C端子から直接DP Altモードで繋いだ時は、問題なく3840×1080が出力される」という点です。
これは、DisplayPortとHDMIにおける「通信帯域の決定プロセス」の違いによるものです。
DisplayPortは、EDIDの拡張ブロックに依存せず、DPCD(DisplayPort Configuration Data)という仕組みを使って、PCとグラス間で直接「このレーン数とリンク速度なら297MHz通せるね」と通信(リンクトレーニング)を行います。
そのため、HDMI VSDBが欠落していようが「DVI互換モード」の罠にハマることなく、素直に高解像度を出力してくれるのです。
解決方法
原因が「HDMIドライバによるEDIDの解釈」にある以上、PC側に「これは165MHz以上のクロックを許容できるHDMI機器である」という偽装されたEDID(拡張ブロック付き)を認識させる必要があります。
具体的なアプローチは以下の通りです。
1. ソフトウェアによるオーバーライド(CRUの利用)
Windows環境であれば、フリーソフトの「CRU (Custom Resolution Utility)」を使用するのが手軽です。
デフォルトのEDID情報に対して「Extension blocks(Type: CTA-861)」を追加し、その中のData blocksに「HDMI support」を追加。そして、Maximum TMDS clock の項目に 300 MHz(バイナリ値で 3C)と明記してOSを再起動します。
これにより、165MHzの制限が解除され、3840×1080が選択可能になります。
ただし、XREAL Oneシリーズは解像度が違う複数のEDIDを使い分けて通知してくるので不具合が出る可能性もあります。
2. ハードウェアによるEDIDの差し替え
PCの設定をいじりたくない、あるいは複数台のPCで繋ぎ変えて使いたい場合は、PCとLemorele LD48Lの間に「任意のEDIDを出力できる機器」を挟む物理的な解決策もあります。
以前、当ブログの以下の記事で、EZCOOのHDMIスプリッター(EZ-SP12H2)のファームウェアをバイナリレベルで改造し、任意のEDIDを埋め込む手法を紹介しました。
この手法を応用し、「HDMI VSDBとMax TMDS Clock 3C を付与し、チェックサムを正しく再計算した256バイトの完全なカスタムEDID」を作成してスプリッターのファームウェアに焼き込めば、アダプター経由でも完全にプラグアンドプレイでウルトラワイド出力が可能になります。バイナリ解析が好きな方にはこちらのハードウェア的なアプローチもおすすめです。
3.XREAL OneシリーズをDP音声モードにする

実は一番お手軽な解決策。
いくつかの組み合わせで確認したところ、Lemorele LD48LはEDIDが128バイトの場合拡張ブロックを追加しません。XREAL Oneシリーズ側でDP音声モードにすると基本のEDIDにAudio data blockを含んだ拡張ブロックが追加され256バイトになります。


拡張ブロックが存在する場合Lemorele LD48LはHDMI VSDBのMaximum TMDS clockの項目に340MHzを追加します。これによりWindows側から認識されるようになります。
豆知識:XREAL 1SのEDIDはバージョン1.4。DisplayPortを明示してるのが特徴的なんですが、Lemorele LD48Lを通すと1.3になります。こっちはDigitalかどうかの分け方しかないのでHDMIもDisplayPortも同じ。変換するアダプターらしい挙動で面白いですね。
4.XREALに改修してもらう
Lemorele LD48Lは給電タイミングがシビアでXREAL Oneが起動できない不具合があったのですが、XREAL側がファームウェアの改修で安定稼働するように調整してくれた過去があります。
なので、今回もDP音声モードじゃなくても常に拡張ブロックを含んだ256バイトのEDIDを送出してくれるようにしてもらえれば165MHzの罠が解消されます!XREAL 1Sの通常モードではUACでも256バイトのEDIDを送ってくるので対応できるはず!
おしまいに
ただアダプターを繋ぐだけなのに解像度が出ない……というトラブルの裏には、EDIDの構造とHDMIの厳格なフォールバック仕様が隠れていました。
「128バイト目以降のデータがないからDVIとして扱う」というプロトコルレベルの仕様が、そのままOSのUI(解像度リスト)に直結しているのは、非常に厄介でありつつも、仕組みを知れば回避できる面白い部分でもあります。
Lemorele LD48Lなどの変換アダプター経由でXREALのウルトラワイド画面がうまく出ないとお悩みの方は、ぜひEDIDのオーバーライド(Max TMDS Clockの追加)を試してみてください。
現場からは以上です。





























