GBATempで、Lost Nintendo HistoryチームがDS LiteのSoCにコンポジットビデオ出力機能が存在していることを発見し、簡単に利用できるようにする開発を進めていることを伝えていました。
Lost Nintendo Historyチームは昨年12月、Nintendo DS LiteのSoC(System-on-a-chip: 1個のチップ上にプロセッサコアをはじめ一般的なマイクロコントローラが持つような機能や応用目的の機能などを集積し、連携してシステムとして機能するよう設計されている集積回路)の隠し機能としてテレビのコンポジットビデオ信号(簡単に言うと黄色いコネクターを使うやつです)出力が行えるという機能が存在していることを突き止めました。
それを簡単に利用できるよう実用化するためのプロジェクトをLost Nintendo HistoryはLost-NDS-TVと名付けました。
プロジェクトにはハードウェアの設計および隠し機能を有効化するためのソフトウェア開発の2つがあります。
既に写真にあるようにビデオ信号を実際出力してテレビに映し出すことには成功しています。あとはこれを如何に簡単にできるようにするかというところがプロジェクトの今後のポイントになっています。
この隠し機能はDS Liteにのみ存在し、その前のモデルの通称DS Fatや、DSiには存在しません。どうしてDS Liteにだけあるのかについては任天堂自身が明らかにしない限り永遠に分かりませんが、もしかすると今のNintendo Switchのように携帯ゲーム機でありながらテレビにも接続できるようなことを10年以上前にチャレンジしようとしていたのかもしれません。最終的な製品では採用せず次世代機へ持ち越したものの、SoC設計段階ではビデオ出力機能搭載を想定して機能を組み込んでいた可能性もあります。
コンポジットビデオ出力を追加するために必要なハードウェアは思ったほど多くはないようです。回路図を今後公開するようですが、現時点で下記のような追加基板の写真だけが公開されています。写真の基板はv1.1らしいですが、現在は不具合を修正した改修版(v1.2)を開発中のようです。
基板にはJ1、J2、J3と3つのコネクター取り付け位置が用意されています。ここに黄、赤、白(コンポジットビデオ出力端子、ステレオオーディオ出力端子)が並びます。オーディオはもともとイヤホン出力や内蔵スピーカー出力があるので、それを流用しているのではないでしょうか。
また基板にはD/Aコンバーターが実装されるようです。SoCにはおそらくデジタル信号を直接簡単に取り出せるところが存在したのだろうと思います。それをコンポジットビデオ(アナログ信号です)に変換するために使われています。
開発段階のプロトタイプの写真も公開されてます。プロトタイプの配線の場合、少なくとも追加基板をDS Liteに接続するためにDS Liteの下側画面側のマザーボードに10数ヶ所ハンダ付けによる配線が存在しています。
ただ、最初に紹介した写真だと、下画面側のマザーボードにあるDSの上画面側と下画面側を接続するためのコネクターと追加基板がフレキシブルケーブルで繫がっているように見えます。DS Lite側はその上画面との接続コネクターに追加基板と繫がるフレキシブルケーブルを差すだけで済むのかもしれません。上画面への映像出力を流用しているのであればDS FatやDSiでも対応できるはずなので別途ハンダ付けがいるのかもしれません。上画面向けのスピーカー出力はそこから流用している可能性はあります。
最終的に情報が出てくるまではどの程度のハンダ付けが必要なのか現時点では分かりません。
追加基板は回路図を見て自作することもできるはずですが、Lost Nintendo History側で生産を行うかのような表現がされているので、何らかのルートで販売もされる可能性もあります。
ソフトウェアについては、コンポジットビデオ出力がSoCの隠し機能と言いつつも実際のところチップにはその機能があるもののファームウェア側で使えるようにしていない状態であるため、それを有効にするためのファームウェアへ書き換える必要があります。DSは基板上の回路をショート(小技として穴にネジ等を差し込むと基板上の該当部分がショートできるようになっていたと思います)してファームウェアを書き換えることができるようになっており、かつてはFlashMeというカスタムファームウェアを書き込むハックがありました。
余談ですが、DS現役時はFlashMeをカスタムファームウェアとは呼んでいませんでした。現代風に解釈するとFlashMeはカスタムファームウェアです。
その昔、DSにはSlot1に差して使うFlashcart(いわゆる「マジコン」)は存在せず、GBAのFlashcart(これも「マジコン」ではありますが、GBA時代からあったGBAマジコンです)をDSのSlot2に差し込んで、PassMEやPasscardと呼ぶSlot1カードを使うことでDSのバックアップROMをGBAのFlashcartから起動するというハックが主流でした。FlashMeはPassMEやPasscardを不要にするためのカスタムファームウェアです。
少し話がそれましたが、コンポジットビデオ出力を有効にするためにFlashMeと同じような流れでDSのファームウェアをカスタムファームウェアに書き換える必要があります。そのうちリリースされるようですが、現時点ではそのカスタムファームウェアは公開されていません。書き換え方法も提供されるようですが、それも未公開です。
DS Liteをテレビに繋いでプレイというのは考えたこともなかったので非常に楽しみなプロジェクトではありますし、興味深いハックであることは間違いありませんが、問題はコントローラーです。Nintendo SwitchはJoy-Conが脱着式なので実用的に使えますが、外付けコントローラーがない上にコントローラーとメイン基板が同じDS Liteの場合果たして外部映像出力は実用的なのでしょうか。
Nintendo DS-TV-OUT Restoration Projectの公式サイトは
https://lostnintendohistory.github.io/DS-TV-OUT
です。
[追記]
開発中だとしていたLost-NDS-TV v1.2がリリースされました。リポジトリではプリント基板設計に必要なGerberフォーマット(描画データフォーマット)や回路図なども公開されました。
FlashMeをDS Liteにインスト-ルしてDS Liteの上画面に接続しているフレキシブルケーブルを作成した基板に取り付けるだけでハードウェア部分の準備は完了します。
ソフトウェアはDSの場合Homebrewを起動するための手段はFlashcartを使う方法しかないためFlashcartが必須になります。
DS TV OUT ENABLE.ndsとTWiLightMenu++をFlashcratのmicroSDカードにコピーしてからDS Liteに挿入し、A+B+Start+Selectを押しながらDS Liteを起動したらTwilightmenu++を実行し、Twilightmenu++からNDS TV OUT ENABLE.ndsを実行するようです。
https://twitter.com/Nitehack/status/1362510332183388162
上画面のみというのとFlashcard環境必須な点が配信や録画等の実用にはネックですね
GBAゲームにだけ使うなら再現性100%でよさそうですが
今はGBプレーヤー + GameboyInterfaceという環境もあるので…
過程や試み自体は非常に面白いと思います