第 3 回:影の主役「Starlet」と IOS システムの正体
第 1 回の哲学編でも触れた通り、Wii は「ゲーム機の中に、もう一台別のコンピュータが丸ごと入っている」ような、極めて特異なハードウェア構造をしています。その「もう一台」の正体が、LSI Hollywood 内部に潜む ARM プロセッサ「Starlet (スターレット)」です。
メイン CPU である Broadway がゲームロジックや敵の AI を計算し、Hollywood の描画回路へ命令を送り込むその横で、Starlet は保護された I/O とセキュリティの「管理者」として暗躍します。ゲームからは直接触れさせない領域に対して、Broadway より強い権限を持っているのです。
Wii の電源を入れたとき、最初に動き出すのは Broadway (PowerPC) ではなく Starlet (ARM) です。ここで行われるのが、起動するソフトウェアを暗号学的に検証し、正当なコードだけへ制御を渡す「セキュアブート (Secure Boot)」 のプロセスです。
Starlet は Hollywood 内蔵の読み出し専用メモリ boot0 から起動し、NAND フラッシュ内の boot1 を読み込みます。boot0 は boot1 の SHA-1 ハッシュを、本体ごとに OTP へ焼かれた値と照合します。続いて boot1 が RSA 署名を検証した boot2 を、boot2 が同様に検証した IOS を起動します。更新不能な小さな起点から、更新可能な大きなソフトウェアへ信頼を一段ずつ渡すことで、柔軟性と改ざん検知を両立しているのです。
Wii のシステムソフトウェアで最も大胆な仕組みが、Starlet 上で動作する「IOS (Input/Output System)」です。これは PC の OS のような一つの巨大なソフトウェアではなく、複数の独立したバージョンを NAND フラッシュ内の別々のスロットへ共存させられる構造を採用しています。
各タイトルは、起動時に自分が前提とする IOS のスロットを指定します。あるゲームは IOS9、別のゲームは IOS56 というように、必要な機能と世代に応じて使い分けるのです。個々のスロット自体が更新されることはありますが、新機能を別スロットへ追加し、複数世代を共存させられるため、一つの OS を全面的に置き換える方式よりも既存タイトルへの影響を小さく抑えられます。
古い前提をできるだけ残しながら、新しい周辺機器やサービスへ対応していく。この柔軟な設計が、世代の異なる多数のタイトルを一台へ共存させ、Wii の長いソフトウェア寿命を支えたのです。
Starlet の直接の祖先として公式に位置づけられているわけではありませんが、組織的な前史として見逃せないのが、2003 年に任天堂がウェイ・イェン氏と共に中国で展開したコントローラ型ゲーム機「神遊機 (iQue Player)」です。
神遊機は NINTENDO64 相当のシステムを一体化し、暗号化されたソフトウェアの配信と保存を前提に設計されていました。海賊版が深刻な市場で、ゲーム機と配信基盤を一つのセキュアな仕組みとして組み上げた経験は、BroadOn が Wii の IOS とネットワーク基盤へ取り組む以前に存在していたのです。同じ回路をそのまま移植したと見るべきではありません。しかし、「配信、保存、実行を信頼の連鎖で守る」という発想には、確かな連続性を読み取れます。