(57)【要約】【課題】周辺装置からコンソールベースのゲームシステムへの機能拡張コードのダウンロードを可能にするソフトウェアを実行する。【解決手段】周辺装置のドングル１５０は、ゲームシステムにおけるＤＶＤ映画の再生を容易にするためにゲームコンソール１０２に装着することができる。ドングル１５０にはＤＶＤ再生コードが記憶されている。ゲームコンソール１０２は、ドングル１５０からゲームコンソール１０２へのコード転送を容易にするコードサーバ２７０のソフトウェアを実行する。このソフトウェアは高レベルのバスプロトコルを利用して、ユニバーサルシリアルバス（ＵＳＢ）のＵＳＢ線７０４を通じた転送をサポートし、このプロトコルに対する呼び出しを可能にするアプリケーションプログラムインタフェースを公開する。【選択図】　　　　図７
2004008799.tif 000002
【特許請求の範囲】
【請求項１】
メモリと、光ディスクを読み取る光ディスクドライブとを有するゲームコンソールと、
前記ゲームコンソールと分離しているが動作可能に結合することのできるドングルであって、前記ゲームコンソールの光ディスクドライブにロードされたＤＶＤ映画のＤＶＤ再生を可能にするＤＶＤ再生コードを記憶しているドングルと、
前記ゲームコンソールで実行されると、前記ドングルから前記ＤＶＤ再生コードを取り出し、前記ＤＶＤ再生コードを前記ゲームコンソールのメモリにロードするソフトウェアと
を備えたことを特徴とするコンソールベースのゲームシステム。
【請求項２】
前記メモリは揮発性メモリを含み、前記ソフトウェアは前記揮発性メモリに記憶されることを特徴とする請求項１に記載のコンソールベースのゲームシステム。
【請求項３】
前記メモリは不揮発性メモリを含み、前記ソフトウェアは前記不揮発性メモリに恒久的に記憶されることを特徴とする請求項１に記載のコンソールベースのゲームシステム。
【請求項４】
前記ドングルはユニバーサルシリアルバス（ＵＳＢ）を介して前記ゲームコンソールに結合し、前記ソフトウェアは前記ＵＳＢを通じた前記ＤＶＤ再生コードの転送を容易にすることを特徴とする請求項１に記載のコンソールベースのゲームシステム。
【請求項５】
前記ソフトウェアは、前記ＤＶＤ再生コードの個々の部分を要求するように構成されることを特徴とする請求項１に記載のコンソールベースのゲームシステム。
【請求項６】
前記ソフトウェアは、
前記ドングルからの前記ＤＶＤ再生コードを要求し、前記ドングルと前記ゲームコンソールとの間のインタフェースを通じた前記ＤＶＤ再生コードの転送を容易にするコードサーバと、
前記ＤＶＤ再生コードを解読し、前記ＤＶＤ再生コードを前記メモリに記憶するローダと
を備えたことを特徴とする請求項１に記載のコンソールベースのゲームシステム。
【請求項７】
光メモリディスクに記憶されたゲームを再生するゲームコンソールであって、
光メモリディスクを読み取る光ディスクドライブと、
不揮発性メモリと、
前記不揮発性メモリ及び前記光ディスクドライブに結合されたプロセッサと、
前記メモリに記憶され、前記プロセッサで実行可能なコードサーバプログラムであって、周辺装置が前記ゲームコンソールに動作可能に結合されると前記周辺装置からのＤＶＤ再生コードを要求し、前記周辺装置から前記ゲームコンソールへの前記ＤＶＤ再生コードの転送を容易にして、前記光ディスクドライブによってＤＶＤ映画が読み出されたときに前記ゲームコンソールでのＤＶＤの再生を可能にするように構成されたコードサーバプログラムと
を備えたことを特徴とするゲームコンソール。
【請求項８】
前記ＤＶＤ再生コードは暗号化され、前記ＤＶＤ再生コードを解読するローダプログラムをさらに備えたことを特徴とする請求項７に記載のゲームコンソール。
【請求項９】
前記ＤＶＤ再生コードは前記不揮発性メモリに記憶されることを特徴とする請求項７に記載のゲームコンソール。
【請求項１０】
揮発性メモリをさらに備え、前記ＤＶＤ再生コードは前記揮発性メモリに記憶されることを特徴とする請求項７に記載のゲームコンソール。
【請求項１１】
前記コードサーバプログラムは、
前記ＤＶＤ再生コードのサイズ及びバージョンを得る機能と、
前記ＤＶＤ再生コードを同期に前記ゲームコンソールに転送する機能と、
前記ＤＶＤ再生コードを非同期に前記ゲームコンソールに転送する機能と
を行うメソッドを有するアプリケーションプログラムインタフェースを公開することを特徴とする請求項７に記載のゲームコンソール。
【請求項１２】
前記コードサーバプログラムは、前記ＤＶＤ再生コードの個々の部分を要求し、転送するように構成されることを特徴とする請求項７に記載のゲームコンソール。
【請求項１３】
コンソールベースのゲームシステムによって実行されると、
前記ゲームシステムに装着された周辺装置からのＤＶＤ再生コードを要求し、
前記周辺装置と前記ゲームシステムと間のインタフェースを通じた前記ＤＶＤ再生コードの転送を容易にする
ように、前記コンソールベースのゲームシステムに指示するコンピュータ実行可能命令を備えたことを特徴とするコンピュータ読み取り可能な記録媒体。
【請求項１４】
コンソールベースのゲームシステムによって実行されると、前記ＤＶＤ再生コードを不揮発性メモリに記憶するように、前記コンソールベースのゲームシステムに指示するコンピュータ実行可能命令をさらに備えたことを特徴とする請求項１３に記載のコンピュータ読み取り可能な記録媒体。
【請求項１５】
コンソールベースのゲームシステムによって実行されると、前記ＤＶＤ再生コードを揮発性メモリに記憶するように、前記コンソールベースのゲームシステムに指示するコンピュータ実行可能命令をさらに備えたことを特徴とする請求項１３に記載のコンピュータ読み取り可能な記録媒体。
【請求項１６】
前記ＤＶＤ再生コードは事前に暗号化されており、コンソールベースのゲームシステムによって実行されると、前記ＤＶＤ再生コードを解読するように、前記コンソールベースのゲームシステムに指示するコンピュータ実行可能命令をさらに備えたことを特徴とする請求項１３に記載のコンピュータ読み取り可能な記録媒体。
【請求項１７】
コンソールベースのゲームシステムによって実行されると、前記周辺装置を認証するように、前記コンソールベースのゲームシステムに指示するコンピュータ実行可能命令をさらに備えたことを特徴とする請求項１３に記載のコンピュータ読み取り可能な記録媒体。
【請求項１８】
請求項１３に記載のコンピュータ読み取り可能な記録媒体と、
前記コンピュータ実行可能命令を実行するプロセッサと
を備えたことを特徴とするコンソールベースのゲームシステム。
【請求項１９】
ユニバーサルシリアルバス（ＵＳＢ）を通じて周辺装置からホスト機器にコードを転送するプロトコルであって、
事前にサイズが決められたコードブロックを有する、前記周辺装置のメモリに記憶されたコードイメージの、コードバージョン及びサイズを取り出す第１のコマンドと、
前記事前にサイズの決められたコードブロックの１つまたは複数にアクセスし、前記１つまたは複数の事前にサイズの決められたコードブロックの前記ホスト機器への転送を容易にする第２のコマンドと
を備えたことを特徴とするプロトコル。
【請求項２０】
前記第１のコマンドは、
ＣＯＭＭＡＮＤ　ＮＡＭＥ
ｂｍＲｅｑｕｅｓｔ　＝　１１００００１ｂ
ｂＲｅｑｕｅｓｔ　＝　１
ｗＶａｌｕｅ　＝　０
ｗＩｎｄｅｘ　＝　ｂＩｎｔｅｒｆａｃｅＮｕｍｂｅｒ
ｗＬｅｎｇｔｈ　＝　６
と定義されるＳＥＴＵＰパケットを有することを特徴とする請求項１９に記載のプロトコル。
【請求項２１】
前記第２のコマンドは、
ＣＯＭＭＡＮＤ　ＮＡＭＥ
ｂｍＲｅｑｕｅｓｔ　＝　１１００００１ｂ
ｂＲｅｑｕｅｓｔ　＝　２
ｗＶａｌｕｅ　＝　転送を開始するブロック番号
ｗＩｎｄｅｘ　＝　ｂＩｎｔｅｒｆａｃｅＮｕｍｂｅｒ
ｗＬｅｎｇｔｈ　＝　取り出すバイト数
と定義されるＳＥＴＵＰパケットを有することを特徴とする請求項１９に記載のプロトコル。
【請求項２２】
コンソールベースのゲームシステムで使用するアプリケーションプログラムインタフェースであって、コンピュータ読み取り可能な記録媒体上に実装され、
前記コンソールベースのゲームシステムに動作可能に結合された周辺装置に記憶されたＤＶＤ再生コードのサイズ及びバージョンを入手する機能と、
前記ＤＶＤ再生コードを同期に前記ゲームコンソールに転送する機能と、
前記ＤＶＤ再生コードを非同期に前記ゲームコンソールに転送する機能と
を行うメソッドを有し、
前記ＤＶＤ再生コードが転送され、前記コンソールベースのゲームシステムに記憶されると、前記コンソールベースのゲームシステムはＤＶＤ再生を行うことが可能になる
ことを特徴とするアプリケーションプログラムインタフェース。
【請求項２３】
ゲームコンソールと、前記ゲームコンソールに択一的に装着するかまたは取り外すことができる周辺装置とを有するコンソールベースのゲームシステムにおける、コンソールベースのゲームシステムを操作する方法であって、
前記周辺装置に記憶されたＤＶＤ再生コードを要求するステップと、
前記周辺装置に記憶されたＤＶＤ再生コードの前記ゲームコンソールへの転送を容易にするステップと、
前記コンソールベースのゲームシステムにおけるＤＶＤ映画の再生を可能にするために、前記ＤＶＤ再生コードを前記ゲームコンソールで実行するステップとを備えたことを特徴とするコンソールベースのゲームシステムを操作する方法。
【請求項２４】
前記要求するステップ及び前記容易にするステップをサポートするために、高レベルのバスプロトコルを利用するステップをさらに備えたことを特徴とする請求項２３に記載のコンソールベースのゲームシステムを操作する方法。
【請求項２５】
前記要求するステップは、
前記ＤＶＤ再生コードのサイズ及びバージョンを入手するステップと、
前記ＤＶＤ再生コードの１つまたは複数のブロックを要求するステップと
を備えたことを特徴とする請求項２３に記載のコンソールベースのゲームシステムを操作する方法。
【請求項２６】
前記ＤＶＤ再生コードを前記ゲームコンソールの揮発性メモリに記憶するステップをさらに備えたことを特徴とする請求項２３に記載のコンソールベースのゲームシステムを操作する方法。
【請求項２７】
前記周辺装置を認証するステップをさらに備えたことを特徴とする請求項２３に記載のコンソールベースのゲームシステムを操作する方法。
【請求項２８】
コンソールベースのゲームシステムを操作する方法であって、
前記コンソールベースのゲームシステムに動作可能に結合された周辺装置に記憶された、暗号化されたＤＶＤ再生コードの、サイズ及びバージョンを入手するステップと、
前記ＤＶＤ再生コードの１つまたは複数のブロックを要求するステップと、
前記ＤＶＤ再生コードの１つまたは複数のブロックを受け取るステップと、
前記ＤＶＤ再生コードの１つまたは複数のブロックを解読するステップと、
前記ＤＶＤ再生コードの１つまたは複数のブロックを記憶するステップと、
前記ＤＶＤ再生コードを実行するステップと
を備えたことを特徴とするコンソールベースのゲームシステムを操作する方法。
【請求項２９】
前記記憶するステップは、前記ＤＶＤ再生コードを揮発性メモリに記憶するステップを含むことを特徴とする請求項２８に記載のコンソールベースのゲームシステムを操作する方法。
【請求項３０】
前記周辺装置を認証するステップをさらに備えたことを特徴とする請求項２８に記載のコンソールベースのゲームシステムを操作する方法。
【請求項３１】
ゲームコンソールと、前記ゲームコンソールに択一的に装着するかまたは取り外すことができる周辺装置のドングルとを有するコンソールベースのゲームシステムにおける、コンソールベースのゲームシステムを操作する方法であって、
前記周辺装置のドングルが１回目に前記ゲームコンソールに装着されるのに応答して、
前記周辺装置のドングルから前記ゲームコンソールにＤＶＤ再生コードをダウンロードするステップと、
前記ＤＶＤ再生コードを不揮発性メモリに記憶するステップと、
前記コンソールベースのゲームシステムにおけるＤＶＤ映画の再生を可能にするために、前記ＤＶＤ再生コードを実行するステップと、
前記周辺装置のドングルが前記１回目の後に、その後前記ゲームコンソールに装着されるのに応答して、
前記周辺装置のドングルに記憶された前記ＤＶＤ再生コードの一部を取り出すステップと、
前記ＤＶＤ再生コードの一部と、前記不揮発性メモリに記憶されたＤＶＤ再生コードの対応する部分とを比較するステップと、
２つの部分が一致する場合は、前記コンソールベースのゲームシステムにおけるＤＶＤ映画の再生を可能にするために、前記ＤＶＤ再生コードを実行するステップと
を備えたことを特徴とするコンソールベースのゲームシステムを操作する方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、コンソールベースのゲームシステム及びコンソールベースのゲームシステムを操作する方法に関する。より詳細には、周辺装置からコンソールベースのゲームシステムへの機能拡張コードのダウンロードを可能にするソフトウェアを実行するコンソールベースのゲームシステム、ゲームコンソール、記録媒体、プロトコル、アプリケーションプログラムインタフェース及びコンソールベースのゲームシステムを操作する方法に関する。
【０００２】
【従来の技術】
コンソールベースのゲームシステム向けのビデオゲームは光ディスクで配布される。ゲームコンソールは、そのようなビデオゲームディスクを再生する光ディスクドライブを備える。いくらかの改良により、ゲームシステムは、オーディオＣＤ（コンパクトディスク）や映画ＤＶＤ（デジタルビデオディスク）の映画などゲーム以外の他形態のコンテンツを含む光ディスクを読み取るように構成することができる。以下の開示は、コンソールベースのゲームシステムでＤＶＤ映画の再生を実施する一方式を扱う。
【０００３】
尚、出願人が知っている先行技術として、記載すべき先行技術文献情報は特に見あたらない。
【０００４】
【発明が解決しようとする課題】
上述の従来のシステムには未だ改善の余地があり、さらなる改善が望まれている。
【０００５】
本発明は、このような状況に鑑みてなされたもので、その目的とするところは、周辺装置からコンソールベースのゲームシステムへの機能拡張コードのダウンロードを可能にするソフトウェアを実行するコンソールベースのゲームシステム及びコンソールベースのゲームシステムを操作する方法を提供することにある。
【０００６】
【課題を解決するための手段】
周辺装置のドングルは、ゲームシステムによるＤＶＤ映画の再生を容易にするためにコンソールベースのゲームシステムに装着することができる。ドングルにはＤＶＤの再生コードが記憶されている。ゲームシステムは、ドングルからゲームシステムへのコードの転送を容易にするソフトウェアを実行する。このソフトウェアは、高レベルのバスプロトコルを利用してユニバーサルシリアルバス（ＵＳＢ）を通じた転送をサポートし、プロトコルへの呼び出しを可能にするアプリケーションプログラムインタフェースを公開する。
【０００７】
【発明の実施の形態】
以下、図面を参照して本発明の実施形態を詳細に説明する。
【０００８】
以下の説明は一般に、機器への追加が可能な周辺装置を介して利用可能になるアップグレード機能により家庭用電化製品をアップグレードするためのフレキシブルな技術に関する。周辺装置はコードを記憶し、家庭用電化製品に接続されるとそのコードを家庭用電化製品にダウンロードして機能を追加する。そして追加された機能は家庭用電化製品によって利用することができる。説明のために、この技術は、コンソールベースのゲームシステムの周辺装置のドングルとの関連で説明する。
【０００９】
ゲームシステム
図１に例示的なゲームシステム１００を示す。システム１００は、ゲームコンソール１０２、及びコントローラ１０４ａ及び１０４ｂによって表す１つまたは複数のコントローラを含む。ゲームコンソール１０２は、内部ハードディスクドライブ及びポータブルメディアドライブ１０６を備える。ポータブルメディアドライブ１０６は、光記憶ディスク１０８によって代表されるような各種形態の携帯型記憶媒体をサポートする。適切な携帯型記憶媒体の例には、ＤＶＤ、ＣＤ−ＲＯＭ（ｒｅａｄ　ｏｎｌｙ　ｍｅｍｏｒｙ）、ゲームディスク、ゲームカートリッジなどがある。
【００１０】
ゲームコンソール１０２は、その前面に最高で４つのコントローラをサポートする４つのスロット１１０ａ〜１１０ｄを有するが、スロットの数と配置は変更してもよい。電源ボタン１１２と取り出しボタン１１４もゲームコンソール１０２の前面に配置される。電源ボタン１１２はゲームコンソールへの電力をＯＮ／ＯＦＦし、取り出しボタン１１４は、ポータブルメディアポータブルメディアドライブ１０６のトレーを交互に開閉して記憶ディスク１０８の挿入と抜き取りを可能にする。
【００１１】
ゲームコンソール１０２は、Ａ／Ｖ（ａｕｄｉｏ／ｖｉｓｕａｌ）インタフェースケーブル１２０を介してテレビジョンまたはその他のディスプレイ（図示せず）に接続する。電源ケーブル１２２はゲームコンソールに電力を供給する。ゲームコンソール１０２はさらに、ケーブルまたはモデムコネクタ１２４によって表すように、内部あるいは外部から追加されるネットワーク機能を備えており、構内ネットワーク（ＬＡＮ）やインターネットなどのネットワークへのアクセスを容易にすることができる。
【００１２】
各コントローラ１０４は、有線インタフェースまたは無線インタフェースを介してゲームコンソール１０２に結合される。図の実装ではコントローラはＵＳＢ（ユニバーサルシリアルバス）互換であり、シリアルケーブル１３０ａ、１３０ｂを介してコンソール１０２に接続される。コントローラ１０４ａ、１０４ｂは、各種のユーザ対話機構のうち任意の機構を備えることができる。図１に示すように、各コントローラ１０４ａ、１０４ｂは、サムスティック１３２ａ、１３２ｂ及び１３２ｃ、Ｄパッド１３４、ボタン１３６、及び２つのトリガ１３８を備える。これらの機構は代表的なものに過ぎず、図１の機構を他の周知のゲーム機構に代えるか、あるいは他のゲーム機構を追加してよい。
【００１３】
メモリユニット（ＭＵ）１４０は、携帯可能な追加的ストレージを提供するためにコントローラ１０４ａ、１０４ｂに挿入することができる。携帯型メモリユニットは、ユーザがゲームパラメータを格納し、それを他のコンソールで再生するために移送することを可能にする。ここに記載する実装では２つのメモリユニット１４０を収容するように各コントローラを構成するが、他の実装では３つ以上または１つ以下のユニットを用いてもよい。
【００１４】
ドングル１５０は、ＤＶＤ映画の再生機能を可能にするために提供される。ドングル１５０は、ドングルをスロット１１０ａ〜１１０ｄの１つに挿入することを可能にする互換コネクタを有する。したがってドングルコネクタは、形状がゲームコントローラ１０４ａ、１０４ｂのコネクタに似ている。ドングル１５０は、ＤＶＤビデオ映画のプログラムの復号と再生を可能にするＤＶＤ再生コードを記憶している。ドングル１５０をコンソールに接続すると、ドングルに常駐するＤＶＤ再生コードがコンソールにダウンロードされて映画再生機能を可能にする。ドングル１５０は、無線リンク１５４を通じてリモコン（遠隔制御装置）１５２からコマンドを受信するＩＲ（ｉｎｆｒａｒｅｄ）レシーバも備える。
【００１５】
したがってドングルは３つの別個の機能を行うことができる。ドングルは、ゲームコンソールにダウンロードされるとゲームシステムによるＤＶＤ映画の再生を容易にするＤＶＤ再生コードを記憶している。ドングルは、リモコンから一般的なＤＶＤコマンドを受信するＩＲレシーバ／復号器もサポートする。第３に、ゲームコンソールは信頼できるドングルが挿入されたことを確認してからＤＶＤの再生を許可することから、ドングルは再生イネーブラ（ｅｎａｂｌｅｒ）として機能する。
【００１６】
ＤＶＤ再生コードを記憶するものとしてドングルを説明しているが、ドングルは他のゲームコンソール機能を可能にするコードの記憶にも使用することができる。例えば、ドングルは、リモコン１５２またはその他のＩＲによって使用可能になるリモートデバイスが、ドングルがなければその他の方法では利用することができないゲームコンソールの追加機能を利用できるようにする、ＩＲレシーバとして使用することができる。
【００１７】
したがってゲームシステム１００はゲーム及び音楽の再生を行うことができ、ドングル１５０を装着するとＤＶＤビデオ映画を再生することができる。各種ストレージの提供により、ハードディスクドライブまたはドライブ１０６中のポータブルメディアポータブルメディア１０８から、オンラインソースから、あるいはメモリユニット１４０からタイトルを再生することができる。ゲームシステム１００での再生が可能なものの例には次がある。
【００１８】
１．ＣＤ及びＤＶＤディスク、ハードディスクドライブ、あるいはオンラインソースから再生されるゲームタイトル。
【００１９】
２．ポータブルメディアポータブルメディアドライブ１０６中のＣＤ、ハードディスクドライブの圧縮ファイル（例えばＷｉｎｄｏｗｓ（登録商標）Ｍｅｄｉａ　Ａｕｄｉｏ（ＷＭＡ）形式）、あるいはオンラインのストリーミングソースから再生されるデジタル音楽。
【００２０】
３．ポータブルメディアドライブ１０６のＤＶＤディスク、ハードディスクドライブのファイル（例えばＷｉｎｄｏｗｓ（登録商標）Ｍｅｄｉａ　Ｖｉｄｅｏ（ＷＭＶ）形式）、あるいはオンラインのストリーミングソースから再生される映画。
【００２１】
図２に、ゲームシステム１００の機能構成要素をより詳細に示す。ゲームコンソール１０２は、中央演算処理装置（ＣＰＵ）２００と、フラッシュＲＯＭ（読み取り専用メモリ）２０４、ＲＡＭ（ランダムアクセスメモリ）２０６、ハードディスクドライブ２０８、及びポータブルメディアドライブ１０６を含む各種のメモリへのプロセッサのアクセスを容易にするメモリコントローラ２０２とを有する。ＣＰＵ２００は、一時的にデータを記憶することによりメモリアクセスサイクルの回数を減らし、それにより処理速度とスループットを向上するレベル１キャッシュ２１０及びレベル２キャッシュ２１２を備える。
【００２２】
ＣＰＵ２００、メモリコントローラ２０２、及び各種のメモリ装置は、各種のバスアーキテクチャのうち任意のものを使用したシリアルバス及びパラレルバス、メモリバス、ペリフェラルバス、及びプロセッサバスまたはローカルバスを含む１つまたは複数のバスを介して相互に接続される。そのようなアーキテクチャの例には、ＩＳＡ（Ｉｎｄｕｓｔｒｙ　Ｓｔａｎｄａｒｄ　Ａｒｃｈｉｔｅｃｔｕｒｅ）バス、ＭＣＡ（Ｍｉｃｒｏ　Ｃｈａｎｎｅｌ　Ａｒｃｈｉｔｅｃｔｕｒｅ）バス、ＥＩＳＡ（Ｅｎｈａｎｃｅｄ　ＩＳＡ）バス、ＶＥＳＡ（ＶｉｄｅｏＥｌｅｃｔｒｏｎｉｃｓ　Ｓｔａｎｄａｒｄｓ　Ａｓｓｏｃｉａｔｉｏｎ）ローカルバス、ＰＣＩ（Ｐｅｒｉｐｈｅｒａｌ　Ｃｏｍｐｏｎｅｎｔ　Ｉｎｔｅｒｃｏｎｎｅｃｔ）バス、及びＬＤＴ（Ｌｉｇｈｔｎｉｎｇ　Ｄａｔａ　Ｔｒａｎｓｐｏｒｔ）バスが含まれる。
【００２３】
適切な一実装として、ＣＰＵ２００、メモリコントローラ２０２、ＲＯＭ２０４、及びＲＡＭ２０６を一体化して共通モジュール２１４とする。この実装では、ＲＯＭ２０４は、ＰＣＩ（Ｐｅｒｉｐｈｅｒａｌ　Ｃｏｍｐｏｎｅｎｔ　Ｉｎｔｅｒｃｏｎｎｅｃｔ）バス及びＲＯＭバス（いずれも図示せず）を介してメモリコントローラ２０２に接続されるフラッシュＲＯＭとして構成される。ＲＡＭ２０６は、個別のバス（図示せず）を介しメモリコントローラ２０２によって個別に制御される複数のＤＤＲ　ＳＤＲＡＭ（Ｄｏｕｂｌｅ　Ｄａｔａ　ＲａｔｅＳｙｎｃｈｒｏｎｏｕｓ　Ｄｙｎａｍｉｃ　ＲＡＭ）モジュールとして構成される。ハードディスクドライブ２０８及びポータブルメディアドライブ１０６は、ＰＣＩバス及びＡＴＡ（ＡＴ　Ａｔｔａｃｈｍｅｎｔ）バス２１６を介してメモリコントローラに接続される。
【００２４】
３Ｄグラフィックス処理装置２２０及びビデオエンコーダ２２２は、高速、高解像度のグラフィックス処理を行うためのビデオ処理パイプラインを形成する。データは、グラフィックス処理装置２２０からデジタルビデオバス（図示せず）を介してビデオエンコーダ２２２に搬送される。オーディオ処理装置２２４及びオーディオコーデック（コーダ／デコーダ）２２６は、それに対応する高忠実度、及びステレオの処理を行うオーディオ処理パイプラインを形成する。オーディオデータは、通信リンク（図示せず）を介してオーディオ処理装置２２４とオーディオコーデック２２６間を搬送される。ビデオ及びオーディオの処理パイプラインは、テレビジョンまたは他のディスプレイへの伝送のためにＡ／Ｖ（オーディオ／ビデオ）ポート２２８にデータを出力する。図の実装では、ビデオ及びオーディオの処理コンポーネント２２０〜２２８はモジュール２１４に取り付けられる。
【００２５】
モジュール２１４には、ＵＳＢホストコントローラ２３０及びネットワークインタフェース２３２も実装される。ＵＳＢホストコントローラ２３０はバス（例えばＰＣＩバス）を介してＣＰＵ２００及びメモリコントローラ２０２に結合され、周辺コントローラ１０４ａ〜１０４ｃ及びドングル１５０のホストとして機能する。ネットワークインタフェース２３２はネットワーク（例えばＬＡＮ、インターネットなど）へのアクセスを提供し、イーサネット（登録商標）カード、モデム、Ｂｌｕｅｔｏｏｔｈ（登録商標）モジュール、ケーブルモデムなどを含む各種の有線または無線インタフェースコンポーネントのいずれでもよい。
【００２６】
ゲームコンソール１０２は、２つのデュアルコントローラサポートサブアセンブリ２４０ａ及び２４０ｂを有し、各サブアセンブリは、最高２つのゲームコントローラ及び／またはＤＶＤを使用可能にするドングルをサポートする。この図では、２つのゲームコントローラ１０４ａ及び１０４ｂが第１のコントローラサポートサブアセンブリ２４０ａに接続され、第３のゲームコントローラ１０４ｃ及びドングル１５０が第２のサブアセンブリ２４０ｂに接続されている。フロントパネルＩ／Ｏサブアセンブリ２４２は、電源ボタン１１２及び取り出しボタン１１４の機能をサポートし、またゲームコンソールの外側表面に露出する任意のＬＥＤ（発光ダイオード）や他の表示器をサポートする。サブアセンブリ２４０ａ、２４０ｂ、及び２４２は、１つまたは複数のケーブルアセンブリ２４４を介してモジュール２１４に結合される。
【００２７】
図では、６つのメモリユニット１４０ａ〜１４０ｆを３つのコントローラ１０４ａ〜１０４ｃに接続することができ、すなわち各コントローラに２つのメモリユニットを接続することができる。各メモリユニット１４０ａ〜１４０ｆは、ゲーム、ゲームパラメータ、及びその他のデータを記憶できる追加ストレージを提供する。コントローラに挿入されると、メモリユニット１４０ａ〜１４０ｆはメモリコントローラ２０２からアクセスすることができる。
【００２８】
システム電源モジュール２５０は、ゲームシステム１００の構成要素に電力を提供する。ファン２５２はゲームコンソール１０２内の回路を冷却する。
【００２９】
ゲームコンソール１０２は、暗号化、解読、認証、デジタル署名、ハッシングなど一般的な暗号機能を行う暗号エンジンを実装する。暗号エンジンはＣＰＵ２００の一部として、あるいはメモリ（例えばＲＯＭ２０４、ハードディスクドライブ２０８）に格納された、ＣＰＵで実行されるソフトウェアに実装して、暗号機能を行うようにＣＰＵを構成することができる。
【００３０】
コンソールユーザインタフェース（ＵＩ）アプリケーション２６０はハードディスクドライブ２０８に記憶される。ゲームコンソールに電源を入れると、コンソールＵＩアプリケーション２６０の各種部分がＲＡＭ２０６及び／またはキャッシュ２１０、２１２にロードされ、ＣＰＵ２００で実行される。コンソールＵＩアプリケーション２６０は、ゲームコンソールで利用可能な別の媒体タイプに対してナビゲートする際に一貫性のあるユーザ体験を提供するグラフィカルユーザインタフェースを提示する。
【００３１】
ドングル１５０からゲームコンソール１０２へのＤＶＤ再生コードのダウンロードを容易にするために、コードサーバ２７０のソフトウェア及びローダ２７２のソフトウェアも提供される。図ではこれらのソフトウェアをハードディスクドライブ２０８に記憶しているが、ＲＯＭ２０４など他のメモリに記憶してもよい。一実装では、コードサーバ２７０は、ドングル１５０に記憶されたＤＶＤ再生コードを取り出し、ロードするために呼び出すことのできるアプリケーションプログラムインタフェース（ＡＰＩ）のセットを公開するソフトウェアドライバとして実施される。再生コードは事前に暗号化した形式で記憶することができるので、ローダ２７２は、コードサーバ２７０のドライバと通信してＤＶＤ再生コードを直接ＲＡＭ２０６やハードディスクドライブ２０８などのメモリ中に解読する。コードサーバ及びローダのソフトウェア、及び例示的なＡＰＩのセットについては以下でより詳細に説明する。
【００３２】
例示的ドングル
図３〜５に、ドングル１５０の例示的な一実装を示す。ドングル１５０は、本体３０２、及び本体３０２から延在するコネクタ部材３０４を有する。ここに記載する実装では、コネクタ部材３０４は、ゲームコンソール面の４つのスロット１１０ａ〜１１０ｄ（図１参照）のいずれか１つに挿入するように構成されたＵＳＢ互換コネクタである。１つのコネクタ形状を図示しているが、設計の選択とゲームコンソールのスロット形態に応じて他の形状が可能である。
【００３３】
視聴者は、リモコン１５２（図１）を使用してゲームシステムにおけるＤＶＤ動作を制御する。コマンドは赤外線信号としてドングル１５０に伝送される。ＩＲレンズ３０６が本体３０２の中に取り付けられているが、リモコン１５２のハンドセットから赤外線信号を受信するために本体３０２の外側に露出している。ＩＲレンズ３０６は本体のコネクタ部材３０４の反対側に取り付けられており、コネクタ部材３０４をスロット１１０ａ〜１１０ｄに挿入するとＩＲレンズ３０６が外向きになり、リモコン１５２からのＩＲ信号を捕捉する。
【００３４】
図６は、ドングル１５０内に収納される構成要素の例示的な一構成を示す。一実装では、これら構成要素は、ドングル本体３０２のプラスチック製の筐体（ｅｎｃａｓｉｎｇ）に収納され保護される内部ＰＣＢ（プリント回路基板）アセンブリに組み込まれる。ＩＲレシーバ６０２がＩＲレンズ３０６に結合されており赤外線信号を受信し、それをリモコンコードに復号する。可能な一実装として、ドングル１５０が大半の汎用的なリモコンと互換性を持つように、ＩＲレシーバ６０２（デコーダ）は標準的なＲＣＡ（Ｒａｄｉｏ　Ｃｏｒｐｏｒａｔｉｏｎ　ｏｆ　Ａｍｅｒｉｃａ）ＤＶＤリモコンコードをサポートすることができる。
【００３５】
マイクロコントローラユニット６０４はＩＲレシーバ６０２に結合されて、視聴者によって入力された制御コードを受信し、制御コードで動作する。マイクロコントローラ６０４はＵＳＢインタフェース６０６に結合され、これによりドングル１５０をゲームコンソールに差し込んだ際のコネクタ３０４を通じたデータの入出力が容易になる。また、ドングル１５０をゲームコンソールに挿入し、電源を入れると、電力がゲームコンソールからＵＳＢインタフェース６０６を介してドングルに伝搬される。
【００３６】
ドングル１５０はさらに、ＤＶＤから映画及びその他のコンテンツの再生を容易にするＤＶＤ再生コード６１０を記憶する読み取り専用メモリ（ＲＯＭ）６０８を含む。ＲＯＭ６０８は、（図示されるような）マスクＲＯＭ、フラッシュＲＯＭ、あるいはその他のタイプのＲＯＭとして実装することができる。再生コード６１０は、複数のアクセス可能なページからなる事前に暗号化されたＲＯＭイメージとして記憶される。各ページは所定のサイズ（例えば１キロバイト）である。ＲＯＭ６０８はバス６１２を介してマイクロコントローラ６０４に結合される。バス６１２は複数のデータ線（例えば８本のデータ線）と複数のアドレス線（例えば２０本のアドレス線）を有する。マイクロコントローラ６０４はバス６１２のアドレス線を使用して個々のページを指定することができ、取り出されたコードはバスのデータ線を通じて渡される。
【００３７】
マイクロコントローラ６０４は、ＵＳＢインタフェース６０６を通じて、ＲＯＭ６０８からゲームコンソール１０２へのＤＶＤ再生コード６１０のダウンロードを容易にする、ファームウェア６１４を実行する。パワーアップリセット６１６は、アクティブなゲームコンソールに最初にドングルを差し込むたび、またはゲームコンソールに電源を入れるたびに実行される。パワーアップリセット６１６は、マイクロコントローラ６０４をリセットしてファームウェア６１４の実行を開始させる。
【００３８】
コード６１０をＲＯＭ６０８に保持することにより、ドングル１５０はゲームシステムにおけるＤＶＤ再生を可能にするすべてのソフトウェア機能を効果的に記憶する。コンソールＵＩアプリケーション２６０がＤＶＤ映画媒体を検出すると、コンソールＵＩアプリケーション２６０は映画再生プロセスを開始する。ドングル１５０が存在する場合、コンソールＵＩアプリケーション２６０はＤＶＤ再生コード６１０をゲームコンソールのＲＡＭ２０６にダウンロードし、ユーザ対話なしにＲＡＭ２０６にコードをインストールする。コンソールＵＩアプリケーション２６０はＤＶＤプレーヤとして動作し、リモコンのハンドセットから標準的なユーザコマンド（例えば再生、一時停止、早送り、巻き戻し、スキップなど）を受信する。ドングル１５０がない場合はＤＶＤ再生コード６１０のダウンロードを行うことができず、コンソールＵＩアプリケーション２６０は、ＤＶＤ映画を再生するにはドングル１５０が必要であることを知らせるメッセージを表示する。
【００３９】
ドングル１５０は、再生イネーブラとして機能するように構成することもできる。視聴者が映画ＤＶＤをトレーに入れると、ゲームコンソールは認証可能なドングル１５０がポート１１０ａ〜１１０ｄに挿入されているかどうかをまず確認する。このモードでは、ゲームコンソールはＤＶＤ再生コード６１０の記憶されたコピーをすでに持っているはずである。ＤＶＤ再生コード６１０の任意の小セクションをダウンロードし、すでにゲームコンソールのハードディスクドライブ２０８にあるコピーと比較する。ドングルがインストールされていない場合、あるいはドングル１５０として認証することができない機器がインストールされた場合、ＤＶＤ映画の再生機能は阻止され、視聴者は使用することができない。ドングル１５０をコードのダウンロードに使用するか、あるいは単にＤＶＤビデオ機能を使用可能にするために使用するか否かに関係なく、ドングル１５０が除去されるとコンソールＵＩアプリケーション２６０はＤＶＤビデオ機能を使用不可にする。
【００４０】
コードサーバ及びローダ
ゲームコンソール１０２で実装されるコードサーバとローダのソフトウェアは、ドングル１５０からゲームコンソールへのＤＶＤ再生コード６１０のダウンロードを容易にする。一般に、コードサーバ２７０は、ドングルからＵＳＢ接続を通じて再生コード６１０を入手する役割を担う。コードサーバは、コードを要求し、ＵＳＢ線を通じてそのコードを移動するために高レベルのバスプロトコルを使用する。ローダは、事前に暗号化されたＤＶＤ再生コード６１０をメモリ中に解読する役割を担う。ローダは、ＤＬＬ（ダイナミックリンクライブラリ）ローダと同様に依存関係も解決する。
【００４１】
図７は、ドングル１５０をゲームコンソール１０２のスロットに差し込んだ際のコードサーバ２７０及びローダ２７２の特定の一実装を表す。コードサーバ２７０は、従来のＯＨＣＩ／ＵＳＢプロトコルの上に高レベルのバスプロトコルを実行する。このため図ではコードサーバがオープンホストコントローラインタフェース（ＯＨＣＩ）７０２に結合されており、インタフェース７０２はＵＳＢ線７０４に接続されている。
【００４２】
ドングル１５０を挿入すると、コネクタ部材３０４がＵＳＢ線７０４に接続する。コーダサーバ２７０は、同期または非同期の転送技術を使用してＲＯＭ６０８からＤＶＤ再生コード６１０を入手し、そのコードをローダ２７２に提供する。ローダ２７２はコードを受け取るとコードを解読し、コードをコンソールのメモリに記憶する。一実装では、ＤＶＤ映画の再生を容易にするためにＤＶＤ再生コードを一時的にＲＡＭ２０６に記憶する。ゲームシステムの電源が「オフ」になるとコードは失われる。代替の実装ではハードディスクドライブ２０８にコードを記憶してもよい。両方の実装について以下でより詳細に説明する。
【００４３】
コードサーバ２７０によってサポートされる高レベルのバスプロトコルは２つのコマンドに基づく。
・ＸＤＣＳ＿ＲＥＱＵＥＳＴ＿ＧＥＴ＿ＲＯＭ＿ＦＩＬＥ＿ＩＮＦＯ
・ＸＤＣＳ＿ＲＥＱＵＥＳＴ＿ＧＥＴ＿ＲＯＭ＿ＦＩＬＥ＿ＢＬＯＣＫ
どちらのリクエストもコントロールリクエストである。ＸＤＣＳ＿ＲＥＱＵＥＳＴ＿ＧＥＴ＿ＲＯＭ＿ＦＩＬＥ＿ＩＮＦＯコマンドでは、コードイメージのコードバージョンとサイズを取り出すことができる。このコマンドに応答して、ドングルファームウェア６１４はＲＯＭ６０８に格納されたＲＯＭイメージの開始部分からバージョンと長さを読み出す。
【００４４】
ＸＤＣＳ＿ＲＥＱＵＥＳＴ＿ＧＥＴ＿ＲＯＭ＿ＦＩＬＥ＿ＢＬＯＣＫコマンドは、ＲＯＭ６０８に格納されたＲＯＭイメージ内のあらかじめサイズが決まった任意のコードブロックへのアクセスを可能にする。例えば１キロバイトのページに構築されたイメージの場合は、このコマンドでコードの１キロバイトのページ個々へのアクセスが可能になる。このコマンドに応答してドングルファームウェア６１４はブロックインデックスをシフトしてデータオフセットを得、要求された長さのバイトがそのオフセットからリターンされる。
【００４５】
この２つのプロトコルコマンドに対するＳＥＴＵＰパケットの例示的レイアウトの１つは以下である。
2004008799.tif 000003
【００４６】
この２コマンドプロトコルは非常に効率的であり、きわめて高速である。ＯＨＣＩ　ＵＳＢシステムと最適化したＵＳＢスタックを用いると、このプロトコルは、毎秒約１メガバイトの速度によるデータ転送を容易にする。１キロバイトのブロックサイズでは、８バイトのＳＥＴＵＰパケットとステータスパケットは微々たるものである。
【００４７】
コードサーバ２７０は、コンテンツ全体をダウンロードするのに使用できるステートレス（ｓｔａｔｅｌｅｓｓ）の取り出し機構を提供するか、またはコンテンツの無作為抽出検査を行うために個々の部分を取り出すことができる。このプロトコルは、オープンホストコントローラ標準を使用するハードウェアプラットフォームで読み取り専用ストレージにランダムアクセスするために使用することができる。
【００４８】
コードサーバ２７０は、ドングルからコードイメージを得るためのステートレスＡＰＩも公開する。このＡＰＩはＲＯＭのサイズ及びバージョンへのアクセスを提供し、ＤＶＤ再生コード６１０のいずれかまたはすべてを同期または非同期にバッファに引き渡すことを容易にする。同期モードでは呼び出し元はコード６１０の選択されたバイトを要求し、そのバイトが到着するのを待つ。このモードでは、要求したコードがダウンロードされるまで、あるいはエラーが発生するまで動作がブロックされる。非同期モードでは、ハードウェアが稀に生じる割り込みへの対処を行う。主要なソフトウェアのスレッドの動作は、ダウンロードの完了を待つ間に他のタスクの実行を継続することができる。
【００４９】
コードサーバＡＰＩの一実装は、３つのインタフェースを定義する。「ＸＤＣＳＧｅｔＩｎｆｏｒｍａｔｉｏｎ」と命名する第１のインタフェースは、ＤＶＤ再生コード６１０のサイズ及びバージョンを得るために呼び出される。「ＸＤＣＳＤｗｏｎｌｏａｄＣｏｄｅ」と命名する第２のインタフェースは、同期モードを使用してドングル１５０からコードをダウンロードするために呼び出される。「ＸＤＣＳＤｏｗｎｌｏａｄＣｏｄｅＡｓｙｎｃ」と命名する第３のインタフェースは、非同期モードを使用してドングル１５０からコードをダウンロードするために呼び出される。
【００５０】
2004008799.tif 000004
【００５１】
ルーチンの説明：
ＸＤＣＳデバイス（例えばドングル１５０）上のコードのサイズとバージョンをポートｄｗＰｏｒｔに得る
引数：
［ＩＮ］　　ｄｗＰｏｒｔｓ　　　　　　　　　　　　　−所望デバイスのポート
［ＯＵＴ］　ｐｄｗＤｅｖｉｃｅＩｎｓｔａｎｃｅ　　　−　ＸＤＣＳＤｏｎｗｌｏａｄＣｏｄｅまたはＸＤＶＳＤｏｗｎｌｏａｄＣｏｄｅＡｓｙｎｃを通じてデバイスにアクセスするためのハンドル
［ＯＵＴ］　ｐＤｖｄＣｏｄｅＩｎｆｏｒｍａｔｉｏｎ　−デバイスのコードについての情報
戻り値：
成功した場合−ＥＲＲＯＲ＿ＳＵＣＣＥＳＳ
失敗した場合−ｗｉｎｅｒｒｏｒ．ｈにあるエラー
【００５２】
コメント：
ポートではなくハンドルを使用することにより、コードをダウンロードした際に、そのコードとこの関数が情報を戻すコードが同じコードになることを保証する。さもなければ、（可能性は低いが）ユーザがそのデバイスを取り除き、ＸＤＣＳＧｅｔＩｎｆｏｒｍａｔｉｏｎの呼び出しからＸＤＣＳＤｏｗｎｌｏａｄＣｏｄｅまたはＸＤＣＳＤｏｗｎｌｏａｄＣｏｄｅＡｓｙｎｃの呼び出しまでの間に別のデバイスを挿入する可能性がある。その場合にはｐｄｗＤｅｖｉｃｅＩｎｓｔａｎｃｅが無効になり、後者の呼び出しが機能せず、有意味のエラーが発生する。
【００５３】
2004008799.tif 000005
【００５４】
ルーチンの説明：
ＸＤＣＳデバイスからコードをダウンロードする
引数：
［ＩＮ］　　ｄｗＤｅｖｉｃｅＩｎｓｔａｎｃｅ　−ＸＤＣＳＧｅｔＩｎｆｏｒｍａｔｉｏｎから得るインスタンス
［ＯＵＴ］　ｐｖＢｕｆｆｅｒ　　　　　　　　　−コードを受け取るバッファを指すポインタ
［ＩＮ］　　ｕｌＯｆｆｓｅｔ　　　　　　　　−ダウンロードを開始するコードイメージの開始部分からのオフセット
［ＩＮ］　　ｕｌＬｅｎｇｔｈ　　　　　　　　−読み出すバイト数
［ＯＵＴ］　　ｐｕｌＢｙｔｅｓＲｅａｄ　　　−実際に読み出されたバイト数
戻り値：
成功した場合−ＥＲＲＯＲ＿ＳＵＣＣＥＳＳ
失敗した場合−ｗｉｎｅｒｒｏｒ．ｈにあるエラー
コメント：
このメソッドは、要求されたコードがダウンロードされるか、エラーが発生するまでブロックする。
2004008799.tif 000006
ルーチンの説明：
ＸＤＣＳデバイスからコードをダウンロードする
引数：
［ＩＮ／ＯＵＴ］　　ｐＸＤＣＳＤｏｗｎｌｏａｄＲｅｑｕｅｓｔ−非同期にブロックを要求
戻り値：
成功した場合−ＥＲＲＯＲ＿ＰＥＮＤＩＮＧ
失敗した場合−ｗｉｎｅｒｒｏｒ．ｈにあるエラー
コメント：
このメソッドを使用して現在のスレッドをブロックすることなくコードを入手する。
【００５５】
動作
図８は、ゲームシステム１００でＤＶＤ再生を開始する始動プロセス８００を示す。このプロセスは、図２、６、及び７に示すドングルとゲームコンソールの実装を参照して説明する。プロセス８００は、ソフトウェア、ファームウェア、及び／またはハードウェアに実装することができる。ソフトウェア及びファームウェアの場合、プロセス８００は、１つまたは複数のプロセッサによる実行が可能なコンピュータ実行可能命令として実装できる動作セットを表す。
【００５６】
ブロック８０２でユーザが光媒体ディスクをゲームコンソールのトレーに入れるか、または視聴者がドングル１５０をスロット１１０ａ〜１１０ｄに差し込むとプロセスが開始する。プロセス８００が開始すると２つの条件を確認する。ブロック８０４で、ゲームコンソールは、トレーの媒体ディスクがＤＶＤ映画であるかどうかを判定する。媒体ディスクは、オーディオＣＤやゲームディスクなど他のコンテンツを含む可能性もある。ディスクがＤＶＤ映画でない場合（すなわちブロック８０４の「ｎｏ」分岐）、プロセスは終了する。
【００５７】
ディスクがＤＶＤ映画である場合（すなわちブロック８０４の「ｙｅｓ」分岐）、ゲームコンソールはドングル１５０が装着されているかどうかを判定する（ブロック８０６）。ドングル１５０は、ＤＶＤ映画の再生を可能にするためにスロット１１０ａ〜１１０ｄに挿入する必要がある。ドングルがない場合（すなわちブロック８０６の「ｎｏ」分岐）、ゲームコンソールは、ＤＶＤ映画の再生を可能にするためにドングルが必要であることを知らせるエラーメッセージを表示し、ドングルを挿入するようにユーザを促す（ブロック８０８）。ユーザがドングルを挿入するか、ＤＶＤ媒体を除去できるように、このメッセージの後に短い遅延時間がある（ブロック８１０）。この遅延時間に続いて、プロセスはトレーのＤＶＤ媒体のテスト（ブロック８０４）とドングルの有無（ブロック８０６）のテストを繰り返す。
【００５８】
トレーのディスクがＤＶＤ映画であり（すなわちブロック８０４の「ｙｅｓ」分岐）、ドングルがある（すなわちブロック８０６の「ｙｅｓ」分岐）とすると、ゲームコンソールはダウンロードプロセスを開始する（ブロック８１２）。ドングル１５０からゲームコンソール１０２にＤＶＤを使用可能にする機能をダウンロードするプロセスを実施するには様々な方式がある。手法の１つは、ドングル１５０がゲームコンソールに差し込まれるたびにＤＶＤ再生コード６１０をダウンロードするものである。別の手法は、ドングル１５０が最初に挿入されたときにＤＶＤ再生コード６１０をダウンロードして、再生コードのすべてまたは一部をゲームコンソール１０２の不揮発性メモリに記憶しておくものである。実装の選択には、設計上の考慮事項とコストの一定のトレードオフが関連する。これらのオプションについて以下でより十分に説明する。
【００５９】
オプション１：１回ごとのダウンロード
図９は、ドングル１５０をコンソールスロット１１０ａ〜１１０ｄに挿入するたびにＤＶＤ再生コード６１０をダウンロードするプロセス９００を示す。このプロセスは、図２、６、及び７に示すドングル及びゲームコンソールの実装を参照して説明する。適当な位置で、動作を見出しの下に揃えてどちらの機器がその動作を行うかを表す。プロセス９００は、ソフトウェア、ファームウェア、及び／またはハードウェアに実装することができる。
【００６０】
ブロック９０２及び９０４で、ゲームシステムは、任意に認証プロトコルを実施してゲームコンソールとドングルを相互に対して認証する。ゲームコンソール１０２とドングル１５０は、各コンポーネントがもう一方の真正性を検証することを可能にするキーまたは他のデータを交換する。この認証プロトコルは、公開鍵の交換やデジタル署名などの暗号技術に基づけばよい。認証はドングルを接続するたびに行う。認証は任意である。代替法として、セキュリティは、ドングルに記憶されたコードをゲームコンソールにダウンロードした際にそのコードを認証するゲームコンソールの能力だけに基づくこともできる。コードはデジタル的に署名され、次いで公開鍵−秘密鍵の対の秘密の部分により暗号化される。コードがダウンロードされると、ゲームコンソールは、コードを解読し署名を検証することによりそのコードが信頼できるドングルに属するという有効性を認証する。
【００６１】
ブロック９０６で、ゲームコンソールは、ドングル１５０のＲＯＭ６０８に記憶されたＤＶＤ再生コード６１０の長さ／バージョン情報を得る。これは、コードサーバ２７０によって公開されるＸＤＣＳＧｅｔＩｎｆｏｒｍａｔｉｏｎメソッドを呼び出すことによって行うことができ、メソッドはこの呼び出しに応答してコードイメージのコードバージョンとサイズを得るＲＥＱＵＥＳＴ＿ＧＥＴ＿ＲＯＭ＿ＦＩＬＥ＿ＩＮＦＯコマンドを発行する。ブロック９０８で、ドングルのファームウェア６１４は、ＲＯＭ６０８に記憶されたＲＯＭイメージのバージョン及び長さを開始部分から読み出す。ドングルはこれらのパラメータをゲームコンソール１０２に渡す（ブロック９１０）。
【００６２】
ブロック９１２で、ゲームコンソール１０２は、ＤＶＤ再生コード６１０の１つまたは複数の指定のブロックを要求する。ゲームコンソールは、コードのすべてまたは部分を要求することができる。この要求は、同期のダウンロードが好ましいか非同期のダウンロードが好ましいかに応じて、ＸＤＣＳＤｏｗｎｌｏａｄＣｏｄｅメソッドまたはＸＤＣＳＤｏｗｎｌｏａｄＣｏｄｅＡｓｙｎｃメソッドの１つを呼び出すことによって行うことができる。この呼び出しに応答して、コードサーバ２７０は、ＸＤＣＳ＿ＲＥＱＵＥＳＴ＿ＧＥＴ＿ＲＯＭ＿ＦＩＬＥ＿ＢＬＯＣＫコマンドを発行して、ＲＯＭ６０８に記憶されたＲＯＭイメージ中の事前にサイズが決められた任意のコードブロックにアクセスする。ブロック９１４及び９１６で、ドングルのファームウェア６１４は指定のブロックを取り出し、そのブロックをゲームコンソールに戻す。
【００６３】
ブロック９１８で、ローダ２７２は、ゲームコンソールでブロックを受け取るとそのブロックを解読する。ローダ２７２はさらにコードにデジタル署名があればそれを検証して、そのコードが信頼できることを確認することができる。解読したブロックは揮発性ＲＡＭ２０６に記憶する（ブロック９２０）。ブロック９２２で、ゲームコンソールは、要求されるブロックすべてがドングルからダウンロードされたかどうかを判定する。ダウンロードされていない場合（すなわちブロック９２２の「ｎｏ」分岐）、ゲームコンソールは１つまたは複数のブロックをさらに要求する。
【００６４】
すべてのブロックがダウンロードされている場合（すなわちブロック９２２の「ｙｅｓ」分岐）、ゲームコンソールはＲＡＭ２０６に記憶されたＤＶＤ再生コードを実行する。実行時に、ゲームコンソールは、それがＤＶＤプレーヤであるかのように視聴者がゲームコンソールの動作を制御することを可能にする映画再生ユーザインタフェース（ＵＩ）を提示する。
【００６５】
オプション２：１回ダウンロードして記憶する
図１０は、最初にドングル１５０をコンソールスロット１１０ａ〜１１０ｄに挿入した際にＤＶＤ再生コード６１０をダウンロードし、そのコードをゲームコンソールの不揮発性メモリに記憶するプロセス１０００を示す。適当な位置で、見出しの下に動作を揃えてどちらの機器がその動作を行うのかを表す。プロセス１０００は、ソフトウェア、ファームウェア、及び／またはハードウェアに実装することができる。
【００６６】
ブロック１００２及び１００４で、ゲームシステムは任意に認証プロトコルを実施して、ゲームコンソールとドングルを相互に対して認証する。ブロック１００６で、ゲームコンソールは、ドングル１５０がゲームコンソールに挿入されるのが初めてであるかどうかを判定する。初めてである場合（すなわちブロック１００６の「ｙｅｓ」分岐）、ゲームコンソールは、ドングル１５０からＤＶＤ再生コード６１０をダウンロードする（ブロック１００８及び１０１０）。このダウンロードは、上記で図９のブロック９０６〜９１６として説明したように、ＡＰＩ及び２コマンドのプロトコルを使用して行うことができる。
【００６７】
コードを受け取ると、ローダ２７２はコードを解読し（ブロック１０１２）、ハードディスクドライブ２０８の区分された領域など、不揮発性メモリにそのコードを恒久的に記憶する（ブロック１０１４）。ブロック１０１６で、ゲームコンソールは、不揮発性メモリに記憶されたＤＶＤ再生コードを実行してＤＶＤ映画の再生を可能にする。ドングルが除去された場合、コードはゲームコンソールに記憶されたままになる。
【００６８】
再度ブロック１００６を参照すると、その後ドングルが再度装着され、したがってその装着がもはや初めてではない場合（すなわちブロック１００６の「ｎｏ」分岐）、ゲームコンソールは、無作為に選択されたコードブロックをドングルに要求する（ブロック１０１８）。ドングルのファームウェアはブロックを取り出し、それをゲームコンソールに戻す（ブロック１０２０）。ゲームコンソールは、取り出されたブロックと不揮発性メモリに記憶された同じブロックを比較する。２つのブロックが一致する場合（すなわちブロック１０２４の「ｙｅｓ」分岐）、コードとドングルはベリファイ（ｖｅｒｉｆｙ）する。ゲームコンソールは次いで不揮発性メモリに記憶されたＤＶＤ再生コードを実行してＤＶＤ映画の再生を可能にする（ブロック１０１６）。２つのコード部分が一致しない場合（すなわちブロック１０２４の「ｎｏ」分岐）、ゲームコンソールはエラーメッセージを提示し、ローカルに記憶されたＤＶＤ再生コードのコピーを実行しないことにより再生を阻止する。
【００６９】
結論
本発明について構造的特徴及び／または方法論的動作に固有の術語で説明したが、特許請求の範囲に定義する本発明は必ずしもここに記載する特定の特徴または動作に限定されないことを理解されたい。むしろ特定の特徴及び動作は、特許権を請求する本発明を実施する例示的形態として開示されている。
【００７０】
【発明の効果】
以上説明したように本発明によれば、周辺装置からコンソールベースのゲームシステムへの機能拡張コードのダウンロードを可能にするソフトウェアを実行することができる。
【図面の簡単な説明】
【図１】本発明の実施形態のゲームコンソール、１つまたは複数のコントローラ、及びＤＶＤの再生を可能にする装着可能なドングルを備えるゲームシステムの図である。
【図２】本発明の実施形態のゲームシステムのブロック図である。
【図３】本発明の実施形態のドングルの正面図である。
【図４】本発明の実施形態のドングルの側面図である。
【図５】本発明の実施形態のドングルの背面透視図である。
【図６】本発明の実施形態のドングルのブロック図である。
【図７】本発明の実施形態のドングルがゲームコンソールとのインタフェースをとる仕組みを表す図である。
【図８】本発明の実施形態のゲームシステムでＤＶＤの再生を開始する始動プロセスのフローチャートの図である。
【図９】本発明の実施形態のドングルを装着するたびにドングルからゲームコンソールにＤＶＤ再生コードをダウンロードするプロセスのフローチャートの図である。
【図１０】本発明の実施形態のドングルが最初に装着されたときにドングルからゲームコンソールにＤＶＤ再生コードをダウンロードし、その後の装着のたびにコードを検証するプロセスのフローチャートの図である。
【符号の説明】
１００　ゲームシステム
１０２　ゲームコンソール
１０４ａ、１０４ｂ、１０４ｃ　コントローラ
１０６　ポータブルメディアドライブ
１０８　光ディスク
１１０ａ〜１１０ｄ　スロット
１１２　電源ボタン
１１４　取り出しボタン
１２０　Ａ／Ｖインタフェースケーブル
１２２　電源ケーブル
１２４　ケーブルまたはモデムコネクタ
１３０ａ、１３０ｂ　シリアルケーブル
１３２ａ、１３２ｂ　サムスティック
１３４　Ｄパッド
１３６　ボタン
１３８　トリガ
１４０ａ〜１４０ｆ　メモリユニット
１５０　ドングル
１５２　リモコン
１５４　無線リンク
２００　ＣＰＵ
２０２　メモリコントローラ
２０４　フラッシュＲＯＭ
２０６　ＲＡＭ
２０８　ハードディスクドライブ
２１０　レベル１キャッシュ
２１２　レベル２キャッシュ
２１４　モジュール
２１６　バス
２２０　グラフィックス処理装置
２２２　ビデオエンコーダ
２２４　オーディオ処理装置
２２６　オーディオコーデック
２２８　Ａ／Ｖポート
２３０　ＵＳＢホストコントローラ
２３２　ネットワークインタフェース
２４０ａ、２４０ｂ　サブアセンブリ
２４２　フロントパネルＩ／Ｏサブアセンブリ
２４４　ケーブルアセンブリ
２５０　システム電源モジュール
２５２　ファン
２６０　コンソールＵＩアプリケーション
２７０　コードサーバソフトウェア
２７２　ローダソフトウェア
３０２　本体
３０４　コネクタ部材
３０６　ＩＲレンズ
６０２　ＩＲレシーバ
６０４　マイクロコントローラユニット
６０６　ＵＳＢインタフェース
６０８　ＲＯＭ
６１０　ＤＶＤ再生コード
６１２　バス
６１４　ファームウェア
６１６　パワーアップリセット
７０２　ＯＨＣＩ
７０４　ＵＳＢ線
８００　始動プロセス
９００　ドングルを挿入するたびにＤＶＤ再生コードをダウンロードするプロセス
１０００　最初にドングル挿入した際にＤＶＤ再生コードをダウンロードし記憶するプロセス
【図１】
2004008799.tif 000007
【図２】
2004008799.tif 000008
【図３】
2004008799.tif 000009
【図４】
2004008799.tif 000010
【図５】
2004008799.tif 000011
【図６】
2004008799.tif 000012
【図７】
2004008799.tif 000013
【図８】
2004008799.tif 000014
【図９】
2004008799.tif 000015
【図１０】
2004008799.tif 000016