(57)【要約】【課題】パケット通信によってデータの送受信を行う端末装置に拡張機器を接続するだけで、その拡張機器を使用可能とする。【解決手段】第２コントローラ４０が接続されたコントローラ２０は、パケット入力データのデータ領域のうちコントローラ２０のために割り当てる第１入力領域と第２コントローラ４０のために割り当てる第２入力領域とを規定する所定の合成シナリオ情報に基づいて、ユーザからの操作入力に対応する操作入力データを第１入力領域に、拡張機器から取得した拡張入力データに基づくデータを第２入力領域にそれぞれ配置して、パケット入力データを生成して装置本体１０へ送信する。【選択図】図１
2011107935.tif 000002
【特許請求の範囲】
【請求項１】
情報処理装置と、
形式及び容量が規定された所定方式のパケット通信によって前記情報処理装置へパケット入力データを送信する端末装置と、
前記端末装置に着脱自在に接続される拡張機器と、を備え、
前記端末装置は、ユーザからの操作入力を受ける操作入力手段と、前記操作入力手段から取得した操作入力データをパケット化して前記パケット入力データを生成するパケット生成手段と、前記パケット入力データのデータ領域のうち前記拡張機器のために割り当てる領域を規定する合成シナリオ情報を記憶する記憶手段と、前記接続された拡張機器から拡張データを受信する拡張データ受信手段と、を有し、
前記パケット生成手段は、前記拡張機器が前記端末装置に接続されているとき、前記合成シナリオ情報に基づいて前記パケット入力データを生成する
ことを特徴とする通信システム。
【請求項２】
請求項１に記載の通信システムであって、
前記合成シナリオ情報は、前記パケット入力データのデータ領域のうち前記端末装置のために割り当てる第１入力領域と前記拡張機器のために割り当てる第２入力領域とを規定し、
前記パケット生成手段は、前記拡張機器が前記端末装置に接続されているとき、前記合成シナリオ情報が規定する前記第１入力領域に前記操作入力データを配置し、前記合成シナリオ情報が規定する前記第２入力領域に前記拡張入力データに基づくデータを配置して、前記パケット入力データを生成する
ことを特徴とする通信システム。
【請求項３】
請求項２に記載の通信システムであって、
前記パケット生成手段は、前記拡張機器が前記端末装置に接続されているとき、前記第１入力領域に前記操作入力データを配置することにより前記所定方式に対応した基本入力データを生成し、前記第２入力領域に前記拡張入力データを配置することにより前記所定方式に対応した拡張入力データを生成し、生成した基本入力データと拡張入力データとを合成して前記パケット入力データを生成する
ことを特徴とする通信システム。
【請求項４】
請求項１〜請求項３の何れか一項に記載の通信システムであって、
前記合成シナリオ情報は、前記拡張機器に予め記憶され、
前記端末装置は、前記拡張機器が接続されたとき、該拡張機器から合成シナリオ情報を取得する
ことを特徴とする通信システム。
【請求項５】
形式及び容量が規定された所定方式のパケット通信によってパケット出力データを送信する情報処理装置と、
前記情報処理装置から送信されたパケット出力データを受信する端末装置と、
前記端末装置に着脱自在に接続される拡張機器と、を備え、
前記端末装置は、前記受信したパケット出力データを解析処理するパケットデータ処理手段と、前記パケット出力データのデータ領域のうち前記拡張機器のために割り当てる領域を規定する抽出シナリオ情報を記憶する記憶手段と、を有し、
前記拡張機器が接続されているとき、前記パケットデータ処理手段は、前記拡張機器のための拡張出力データを、前記抽出シナリオ情報に基づいて前記パケット出力データから抽出し、抽出した拡張出力データを拡張機器へ送信する
ことを特徴とする通信システム。
【請求項６】
請求項５に記載の通信システムであって、
前記拡張機器には、少なくとも自己の種別を特定可能な拡張機器識別情報が予め記憶され、
前記端末装置は、前記接続された拡張機器から拡張機器識別情報を取得して前記情報処理装置へ送信し、
前記情報処理装置は、前記受信した拡張機器識別情報に応じたパケット出力データを生成する。
ことを特徴とする通信システム。
【請求項７】
請求項５または請求項６に記載の通信システムであって、
前記抽出シナリオ情報は、前記拡張機器に予め記憶され、
前記端末装置は、前記拡張機器が接続されたとき、該拡張機器から抽出シナリオ情報を取得する
ことを特徴とする通信システム。
【請求項８】
形式及び容量が規定された所定方式のパケット通信によって情報処理装置へパケット入力データを送信するとともに、拡張機器が着脱自在に接続される端末装置であって、
ユーザからの操作入力を受ける操作入力手段と、
前記操作入力手段から取得した操作入力データをパケット化して前記パケット入力データを生成するパケット生成手段と、
前記パケット入力データのデータ領域のうち前記拡張機器のために割り当てる領域を規定する合成シナリオ情報を記憶する記憶手段と、
前記接続された拡張機器から拡張データを受信する拡張データ受信手段と、を備え、
前記パケット生成手段は、前記拡張機器が前記端末装置に接続されているとき、前記合成シナリオ情報に基づいて前記パケット入力データを生成する
ことを特徴とする端末装置。
【請求項９】
請求項８に記載の端末装置であって、
前記合成シナリオ情報は、前記パケット入力データのデータ領域のうち前記端末装置のために割り当てる第１入力領域と前記拡張機器のために割り当てる第２入力領域とを規定し、
前記パケット生成手段は、前記拡張機器が前記端末装置に接続されているとき、前記合成シナリオ情報が規定する前記第１入力領域に前記操作入力データを配置し、前記合成シナリオ情報が規定する前記第２入力領域に前記拡張入力データに基づくデータを配置して、前記パケット入力データを生成する
ことを特徴とする端末装置。
【請求項１０】
請求項９に記載の端末装置であって、
前記パケット生成手段は、前記拡張機器が前記端末装置に接続されているとき、前記第１入力領域に前記操作入力データを配置することにより前記所定方式に対応した基本入力データを生成し、前記第２入力領域に前記拡張入力データを配置することにより前記所定方式に対応した拡張入力データを生成し、生成した基本入力データと拡張入力データとを合成して前記パケット入力データを生成する
ことを特徴とする端末装置。
【請求項１１】
請求項８〜請求項１１の何れか一項に記載の端末装置であって、
前記合成シナリオ情報は、前記拡張機器に予め記憶され、
前記端末装置は、前記拡張機器が接続されたとき、該拡張機器から合成シナリオ情報を取得する
ことを特徴とする端末装置。
【請求項１２】
形式及び容量が規定された所定方式のパケット通信によって情報処理装置からパケット出力データを受信するとともに、拡張機器が着脱自在に接続される端末装置であって、
前記受信したパケット出力データを解析処理するパケットデータ処理手段と、
前記パケット入力データのデータ領域のうち前記拡張機器のために割り当てる領域を規定する抽出シナリオ情報を記憶する記憶手段と、を備え、
前記拡張機器が接続されているとき、前記パケットデータ処理手段は、前記拡張機器のための拡張出力データを、前記抽出シナリオ情報に基づいて前記パケット出力データから抽出し、抽出した拡張出力データを拡張機器へ送信する
ことを特徴とする端末装置。
【請求項１３】
請求項１２に記載の端末装置であって、
前記抽出シナリオ情報は、前記拡張機器に予め記憶され、
前記端末装置は、前記拡張機器が接続されたとき、該拡張機器から抽出シナリオ情報を取得する
ことを特徴とする端末装置。
【請求項１４】
形式及び容量が規定された所定方式のパケット通信によって情報処理装置へパケット入力データを送信するとともに、拡張機器が着脱自在に接続される端末装置が実行する通信処理方法であって、
ユーザからの操作入力を受けるステップと、
前記拡張機器が前記端末装置に接続されているとき、該拡張機器から拡張データを受信するステップと、
前記拡張データを受信したとき、前記パケット入力データのデータ領域のうち前記拡張機器のために割り当てる領域を規定する合成シナリオに基づいて前記パケット入力データを生成するステップと、を備えた
ことを特徴とする通信処理方法。
【請求項１５】
形式及び容量が規定された所定方式のパケット通信によって情報処理装置からパケット出力データを受信するとともに、拡張機器が着脱自在に接続される端末装置が実行する通信処理方法であって、
前記拡張機器が接続されているとき、前記パケット出力データのデータ領域のうち前記拡張機器のために割り当てる領域を規定する抽出シナリオに基づいて、前記拡張機器のための拡張出力データを前記パケット出力データから抽出するステップと、
前記抽出した拡張出力データを前記拡張機器へ送信するステップと、を備えた
ことを特徴とする通信処理方法。
【請求項１６】
形式及び容量が規定された所定方式のパケット通信によって情報処理装置へパケット入力データを送信するとともに、拡張機器が着脱自在に接続される端末装置のコンピュータを、
前記拡張機器が前記端末装置に接続されているとき、前記パケット入力データのデータ領域のうち前記拡張機器のために割り当てる領域を規定する合成シナリオに基づいて前記パケット入力データを生成するパケット生成手段として機能させる
ことを特徴とする通信処理プログラム。
【請求項１７】
形式及び容量が規定された所定方式のパケット通信によって情報処理装置からパケット出力データを受信するとともに、拡張機器が着脱自在に接続される端末装置のコンピュータを、
前記拡張機器が接続されているとき、前記パケット出力データのデータ領域のうち前記拡張機器のために割り当てる領域を規定する抽出シナリオに基づいて、前記拡張機器のための拡張出力データを前記パケット出力データから抽出するパケットデータ処理手段として機能させる
ことを特徴とする通信処理プログラム。
【請求項１８】
請求項１６又は請求項１７に記載の通信処理プログラムを記憶したコンピュータ読み取り可能な記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、通信システム、端末装置、通信処理方法、通信処理プログラム、通信処理プログラムが記憶された記憶媒体に関する。
【背景技術】
【０００２】
ゲーム機とコントローラとの間で、予め設定された所定の通信方式によって情報の送受信を行う通信システムは公知である。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００８−１０２７８８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
コントローラの機能を拡張したいユーザは、コントローラに所望の拡張機器を接続して使用することを希望する。
【０００５】
しかし、ゲーム機とコントローラとの間で所定の形式及び所定容量のパケット通信を行う場合、コントローラに単に拡張機器を接続しただけでは、拡張機器とゲーム機との間で情報の送受信が行われず、拡張機器を使用することができない。
【０００６】
本発明は、情報処理装置と端末装置とが所定形式及び所定容量のパケット通信によってデータの送受信を行う場合において、端末装置に所望の拡張機器を接続するだけで、その拡張機器を使用することが可能な通信システムの提供を目的とする。
【課題を解決するための手段】
【０００７】
本発明の第１の態様の通信システムは、情報処理装置と端末装置と拡張機器とを備える。端末装置は、形式及び容量が規定された所定方式のパケット通信によって情報処理装置へパケット入力データを送信する。拡張機器は、端末装置に着脱自在に接続される。
【０００８】
端末装置は、操作入力手段とパケット生成手段と記憶手段と拡張データ受信手段とを有する。操作入力手段は、ユーザからの操作入力を受ける。パケット生成手段は、操作入力手段から取得した操作入力データをパケット化してパケット入力データを生成する。記憶手段は、合成シナリオ情報を記憶する。合成シナリオ情報は、パケット入力データのデータ領域のうち拡張機器のために割り当てる領域を規定する。拡張データ受信手段は、接続された拡張機器から拡張データを受信する。
【０００９】
パケット生成手段は、拡張機器が端末装置に接続されているとき、合成シナリオ情報に基づいてパケット入力データを生成する。
【００１０】
本発明の第２の態様の通信システムは、情報処理装置と端末装置と拡張機器とを備える。情報処理装置は、形式及び容量が規定された所定方式のパケット通信によってパケット出力データを送信する。端末装置は、情報処理装置から送信されたパケット出力データを受信する。拡張機器は、端末装置に着脱自在に接続される。
【００１１】
端末装置は、パケットデータ処理手段と記憶手段とを有する。パケットデータ処理手段は、受信したパケット出力データを解析処理する。記憶手段は、抽出シナリオ情報を記憶する。抽出シナリオ情報は、パケット出力データのデータ領域のうち拡張機器のために割り当てる領域を規定する。
【００１２】
拡張機器が接続されているとき、パケットデータ処理手段は、拡張機器のための拡張出力データを、抽出シナリオ情報に基づいてパケット出力データから抽出し、抽出した拡張出力データを拡張機器へ送信する。
【発明の効果】
【００１３】
本発明によれば、情報処理装置と端末装置とが所定形式及び所定容量のパケット通信によってデータの送受信を行う場合において、端末装置に所望の拡張機器を接続するだけで、その拡張機器を使用することができる。
【図面の簡単な説明】
【００１４】
【図１】本発明の一実施形態としての通信システムの概要を示す模式図である。
【図２】装置本体の主要な内部構成を示すブロック図である。
【図３】コントローラの主要な電気的構成を示すブロック図である。
【図４】合成シナリオ情報の一例を示す図である。
【図５】合成シナリオ情報の他の例を示す図である。
【図６】抽出シナリオ情報の一例を示す図である。
【図７】拡張モード移行時の処理を示すフローチャートである。
【図８】拡張モード移行時の処理を示すフローチャートである。
【図９】拡張モード時の処理を示すフローチャートである。
【図１０】拡張モード時の処理を示すフローチャートである。
【図１１】コントローラと第２コントローラの一例を示す図である。
【図１２】コントローラと第２コントローラの他の例を示す図である。
【図１３】コントローラと第２コントローラの他の例を示す図である。
【図１４】コントローラと第２コントローラの他の例を示す図である。
【図１５】基本入力データ、拡張入力データ、合成シナリオ情報及び合成結果の一例を示す図である。
【図１６】基本入力データ、拡張入力データ、合成シナリオ情報及び合成結果の他の例を示す図である。
【図１７】基本入力データ、拡張入力データ、合成シナリオ情報及び合成結果の他の例を示す図である。
【図１８】基本入力データ、拡張入力データ、合成シナリオ情報及び合成結果の他の例を示す図である。
【図１９】基本入力データ、拡張入力データ、合成シナリオ情報及び合成結果の他の例を示す図である。
【図２０】合成シナリオ情報のフォーマット構成のメモリ展開イメージを示す図である。
【図２１】属性値の一覧を示す図である。
【図２２】合成シナリオ情報のフォーマット構成の一例を示す図である。
【図２３】合成先パケットの一例を示す図である。
【図２４】合成元Ｉ／Ｏデバイスを例示する図である。
【図２５】演算結果後の合成先パケットを例示する図である。
【図２６】合成シナリオ情報のフォーマット構成を例示する図である。
【図２７】演算結果後の合成先パケットの一例を例示する図である。
【図２８】合成シナリオ情報のフォーマット構成を例示する図である。
【図２９】演算結果後の合成先パケットを例示する図である。
【図３０】合成シナリオ情報のフォーマット構成を例示する図である。
【図３１】演算結果後の合成先パケットを例示する図である。
【図３２】合成シナリオ情報のフォーマット構成を例示する図である。
【図３３】演算結果後の合成先パケットを例示する図である。
【図３４】合成シナリオ情報のフォーマット構成を例示する図である。
【図３５】演算結果後の合成先パケットを例示する図である。
【図３６】合成先パケットを例示する図である。
【図３７】合成元Ｉ／Ｏデバイスを例示する図である。
【図３８】合成シナリオ情報のフォーマット構成を例示する図である。
【図３９】演算結果後の合成先パケットを例示する図である。
【発明を実施するための形態】
【００１５】
〔本実施形態の通信システムの概略構成〕
本発明の一実施形態としての通信システムを図１に模式的に示す。
【００１６】
この通信システムは、情報処理装置（ビデオゲーム機）の一例であるエンタテインメント装置（以下、装置本体と称する）１０と、ユーザ（プレイヤ）によって操作される端末装置としてのコントローラ２０と、コントローラ２０に拡張ケーブル４１を介して着脱自在に有線接続されて拡張機器として機能する第２コントローラ４０と、装置本体１０から映像及び音声信号が供給されるモニタ装置（例えばテレビジョン受像機など）１００とを備える。モニタ装置１００は、装置本体１０から供給された映像信号に基づいて画像を表示する画像表示部（表示画面）１０１を有する。なお、コントローラ２０と第２コントローラ４０との着脱自在な有線接続には、上記拡張ケーブル４１による接続のほか、両者の端子同士を直接接続する形態も含まれる。
【００１７】
装置本体１０とコントローラ２０との間では、通信により情報が送受信される。両者間の通信方法は、ケーブル１３を介した有線接続による通信と無線による通信の何れでもよい。本実施形態のコントローラ２０では、有線と無線の双方による通信が可能であり、装置本体１０にコントローラ２０が有線接続された状態では有線による通信が行われ、有線接続が解除された状態では、無線による通信が行われる。
【００１８】
図１の例において、装置本体１０は、複数のコントローラポート１１（本実施形態では４箇所）を有する。コントローラ２０と装置本体１０とをケーブル１３によって有線接続する場合、ケーブル１３の一端部に設けられた差込コネクタ１２が装置本体１０のコントローラポート１１のうち任意の一つに差し込まれて電気的に接続され、他端部に設けられた差込コネクタ１４がコントローラ２０の接続ポート１５に差し込まれて電気的に接続される。なお、他のコントローラポート１１を使用することにより、装置本体１０は複数のコントローラ２０との間で有線による同時接続が可能となる。装置本体１０とコントローラ２０との有線接続方式は、双方向にて通信可能であればよく、本実施形態では、ＵＳＢ（Universal Serial Bus）形式による接続（以下、ＵＳＢ接続と称する）を採用している。
【００１９】
コントローラ２０には、装置本体１０の無線通信部（アンテナ）１６との間で無線による情報の送受信を行う無線通信部（アンテナ）１７がそれぞれ設けられている。両無線通信部１６，１７同士の通信方式としては、双方向にて無線通信可能であれば、ブルーツゥース（Bluetooth（登録商標））通信のような汎用の近距離高速無線通信方式や専用の近距離無線通信方式などのあらゆる通信方式の適用が可能である。本実施形態では、ブルーツゥース無線通信方式（以下、ＢＴ通信と称する）を採用している。
【００２０】
装置本体１０とコントローラ１０との間のＢＴ通信では、形式（例えばＩ２Ｃフォーマット）及び容量（例えば４８バイト）が規定された所定方式のパケット通信によって、相互にデータが送受信される。なお、ＵＳＢ接続においても、上記所定形式及び所定容量のパケット通信によってデータを送受信してもよく、本実施形態では、ＵＳＢ接続とＢＴ通信の双方において、Ｉ２Ｃフォーマットで４８バイトのパケット通信によってデータを送受信する場合を説明する。
【００２１】
第２コントローラ４０は、コントローラ２０と同じタイプであってもよく、異なったタイプであってもよい。また、第２コントローラ４０は、単独では使用できず、コントローラ２０の拡張機器としてのみ使用可能なものであってもよい。また、端末装置は、コントローラ２０以外の装置（例えば、携帯型のゲーム機）であってもよく、拡張機器は、コントローラ４０以外の入力装置（例えば、マウス、キーボード、ジョイスティックなど）や出力装置（スピーカなど）であってもよい。また、拡張機器は、ＣＰＵを有さないものであってもよい。
【００２２】
本実施形態では、コントローラ２０と同じタイプの第２コントローラ４０を、コントローラ２０の拡張機器として用いる場合の例について説明する。なお、以下の説明において、コントローラ２０の構成要素と第２コントローラ４０の構成要素とを区別して説明する場合には、コントローラ２０の構成要素には「Ｍ」の符号を付し、第２コントローラ４０の構成要素には「Ｅ」の符号を付して両者を区別する。また、コントローラ２０に第２コントローラ４０が有線接続されていない状態を基本モードと称し、コントローラ２０に第２コントローラ４０が有線接続されている状態を拡張モードと称する。
【００２３】
第２コントローラ４０は、拡張モードにおいてコントローラ２０の拡張機器として機能する。コントローラ２０と第２コントローラ４０とを拡張ケーブル４１によって有線接続する場合、拡張ケーブル４０の一端部に設けられた差込コネクタ４２がコントローラ２０の接続ポート１８に差し込まれて電気的に接続され、他端部に設けられた差込コネクタ４３がコントローラ４０の接続ポート１８に差し込まれて電気的に接続される。なお、第２コントローラ４０に差込コネクタを設け、この差込コネクタをコントローラ２０の接続ポート１８に接続することによって両コントローラ２０，４０を接続可能としてもよい。また、第２コントローラ４０と装置本体１０とが有線や無線による直接通信が可能な場合、拡張モードでは、第２コントローラ４０と装置本体１０との直接通信が禁止される。
【００２４】
〔装置本体の外観〕
上記装置本体１０には、上記コントローラポート１１（１１Ａ〜１１Ｄ）及び無線通信部１６の他、図示は省略するが、半導体記憶素子などを内蔵するメモリカードが着脱自在とされるメモリカードスロット、ディスクトレイ、ディスクトレイをオープン又はクローズさせるオープン／クローズボタン、電源のオンやスタンバイ，リセットを行うためのオン／スタンバイ／リセットボタン、音声映像出力端子（ＡＶマルチ出力端子）、ＰＣカードスロット、光ディジタル出力端子、ＩＥＥＥ（Institute of Electrical and Electronics Engineers）１３９４接続端子、電源スイッチ、ＡＣ電源入力端子などが設けられている。
【００２５】
また、装置本体１０は、例えばいわゆるＤＶＤ−ＲＯＭやＣＤ−ＲＯＭ等のディスク媒体に記録されているビデオゲーム用のアプリケーションプログラムに基づいてビデオゲームを実行したり、例えばＤＶＤビデオやＣＤに記録されたビデオデータ、オーディオデータを再生（デコード）可能なものである。
【００２６】
なお、上記アプリケーションプログラムやビデオ、オーディオデータは、ディスク媒体に限らず、半導体メモリやテープ媒体から読み取られたもの、有線若しくは無線の広域或いは域内通信回線等により供給されたものであってもよい。
【００２７】
〔装置本体の内部回路構成〕
図２には、上記装置本体１０の主要な内部構成を示す。
【００２８】
図２に示すように、装置本体１０は、メインバス６１とサブバス６２とを有し、これらのバス６１，６２は、バスインターフェース６３を介して互いに接続され又は切り離される。
【００２９】
メインバス６１には、メインＣＰＵ６４と、ＲＡＭで構成されるメインメモリ６５と、メインＤＭＡＣ（Direct Memory Access Controller）６６と、フレームメモリ６７を内蔵する画像処理デバイス（ＧＰＵ（Graphic Processing Unit））６８が接続される。ＧＰＵ６８には、ビデオ出力信号を生成するための制御手段であるＣＲＴＣ（CRT controller）６９が接続される。ビデオ出力信号により、ケーブル等によって装置本体１０と接続されている所定の表示装置（本実施形態では、モニタ装置１００の画像表示部１０１）に画像が表示される。
【００３０】
メインＣＰＵ６４は、装置本体１０の起動時にサブバス６２上のＲＯＭ７０から、バスインターフェース６３を介して起動プログラムを読み込み、その起動プログラムを実行してオペレーティングシステムを動作させる。また、メディアドライブ７１を制御するとともに、このメディアドライブ７１に装着されたメディア７２からアプリケーションプログラムやデータを読み出し、これをメインメモリ６５に記憶させる。さらに、メディア７２から読み出した各種データ、例えば複数の基本図形（ポリゴン）で構成された３次元オブジェクトデータ（ポリゴンの頂点（代表点）の座標値など）に対して、ジオメトリ処理を行う。ジオメトリ処理によりポリゴン定義情報をその内容とするディスプレイリストを生成する。また、ＭＰＥＧ（Moving Picture Experts Group）方式あるいはＪＰＥＧ（Joint Photographic Experts Group）方式等で圧縮されたデータを伸張する。つまりメインＣＰＵ６４は、ソフトウェアにより情報を解読する情報解読機能を持つ。
【００３１】
ポリゴン定義情報は、描画領域設定情報とポリゴン情報とからなる。描画領域設定情報は、描画領域のフレームバッファアドレスにおけるオフセット座標と、描画領域の外部にポリゴンの座標があった場合に、描画をキャンセルするための描画クリッピング領域の座標からなる。ポリゴン情報は、ポリゴン属性情報と頂点情報とからなり、ポリゴン属性情報は、シェーディングモード、αブレンディングモード、及びテクスチャマッピングモード等を指定する情報であり、頂点情報は、頂点描画領域内座標、頂点テクスチャ領域内座標、及び頂点色等の情報である。
【００３２】
ＧＰＵ６８は、描画コンテクストを保持しており、メインＣＰＵ６４から通知されるディスプレイリストに含まれる画像コンテクストの識別情報に基づいて該当する描画コンテクストを読み出し、これを用いてレンダリング処理を行い、フレームメモリ６７にポリゴンを描画する。フレームメモリ６７は、テクスチャメモリとしても使用できるため、フレームメモリ６７上のピクセルイメージをテクスチャとして描画するポリゴンに貼り付けることができる。
【００３３】
メインＤＭＡＣ６６は、メインバス６１に接続されている各回路を対象としてＤＭＡ転送制御を行うとともに、バスインターフェース６３の状態に応じて、サブバス６２に接続されている各回路を対象としてＤＭＡ転送制御を行う。
【００３４】
サブバス６２には、マイクロプロセッサなどで構成されるサブＣＰＵ７３、ＲＡＭで構成されるサブメモリ７４、サブＤＭＡＣ７５、オペレーティングシステムなどのプログラムが記憶されているＲＯＭ７０、サウンドメモリ７６に蓄積された音データを読み出してオーディオ出力として出力する音声処理装置（ＳＰＵ（Sound Processing Unit））７７、ＵＳＢ接続ケーブルを介してコントローラ２０との間で有線による情報の送受信を行うＵＳＢ通信モジュール７８、ＢＴ通信を介してコントローラ２０との間で無線による情報の送受信を行うＢＴ通信モジュール７９、所定のメディア７２を装着するためのメディアドライブ７１、及びキーボード８０が接続されている。メディア７２は、画像処理用のプログラムが記録されたＣＤ−ＲＯＭやＤＶＤ−ＲＯＭ等の記録媒体である。装置本体１０は、この画像処理用のプログラムを読み取って実行することにより、所要のエンタテインメント処理を実行する。ＵＳＢ通信モジュール７８は、コントローラポート１１（図１に示す）を含み、ＢＴ通信モジュール７９は、無線通信部１６（図１に示す）を含む。
【００３５】
また、ＵＳＢ通信モジュール７８又はＢＴ通信モジュール７９がコントローラ２０から信号を受信すると、メインＣＰＵ６４は、その受信信号に基づいてディスプレイリストを生成してＧＰＵ６８へ出力する。
【００３６】
サブＣＰＵ７３は、ＲＯＭ７０に記憶されているプログラムに従って各種動作を行う。サブＤＭＡＣ７５は、バスインターフェース６３がメインバス６１とサブバス６２を切り離している状態においてのみ、サブバス６２に接続されている各回路を対象としてＤＭＡ転送などの制御を行う。
【００３７】
ＢＴ通信モジュール７８からコントローラ２０に対してデータを送信する場合、メインＣＰＵ６４は、後述する出力データ生成処理を実行してパケット出力データを生成する。また、ＢＴ通信モジュール７８がコントローラ２０からデータを受信した場合、メインＣＰＵ６４は、後述する入力データ解析処理を実行する。なお、出力データ生成処理及び入力データ解析処理は、サブＣＰＵ７３が実行してもよい。
【００３８】
〔コントローラの構成〕
図３に、コントローラ２０の主要な電気的構成を示す。
【００３９】
図３に示すように、コントローラ２０は、ＣＰＵ８１と、ＲＯＭ８２と、ＲＡＭ８４と、バッテリ８３と、操作入力部８５と、加速度センサ８７と、加振器９７と、ＵＳＢ通信モジュール８８と、ＢＴ通信モジュール８９とを有し、これらはバス９０を介して接続されている。操作入力部８５とは、コントローラ２０の筐体の外面上に設けられた各種の操作ボタン（指示入力ボタンや電源ボタンやＨＯＭＥボタンやモード切替スイッチなど）の総称である。加振器９７とは、コントローラ２０を振動させる振動発生装置である。
【００４０】
ＵＳＢ通信モジュール８８は、ＵＳＢ接続ケーブルを介して装置本体１０との間で有線による情報の送受信を行い、ＢＴ通信モジュール８９は、ＢＴ通信を介して装置本体１０との間で無線による情報の送受信を行う。ＵＳＢ通信モジュール８８は、接続ポート１５，１８（図１に示す）を含み、ＢＴ通信モジュール８９は、無線通信部１７（図１に示す）を含む。
【００４１】
なお、コントローラ２０と装置本体１０との間を接続するＵＳＢケーブル１３（図１に示す）は電源供給線を含み、ＵＳＢ接続状態において、装置本体１０は、電源供給線を介してコントローラ２０の電源を供給すると共に、バッテリ８３の充電を行う。
【００４２】
ＣＰＵ８１は、起動処理、入力パケット生成処理、信号送信処理、信号受信処理及び振動制御処理などの所定の処理を実行する。
【００４３】
起動処理では、コントローラ２０の起動時にＲＯＭ８２から起動プログラムを読み込み、その起動プログラムを実行する。入力パケット生成処理では、操作入力部８５に対するユーザからの操作入力に対応したパケット入力データ（後述する基本パケット入力データ又は拡張パケット入力データ）を生成する。パケット入力データは、所定形式のパケット通信に使用可能なデータであり、所定容量（４８バイト）で所定形式（Ｉ２Ｃフォーマット）に対応している。信号送信処理では、入力パケット生成処理で生成したパケット入力データを、ＵＳＢ通信モジュール８８又はＢＴ通信モジュール８９から装置本体１０へ所定の周期毎に送信させる。信号受信処理では、装置本体１０から送信されたパケット出力データを、ＵＳＢ通信モジュール８８又はＢＴ通信モジュール８９により、所定の周期毎に受信させる。振動制御処理では、ＵＳＢ通信モジュール８８又はＢＴ通信モジュール８９が装置本体１０から受信したパケット出力データが含む加振情報に応じて加振器９７を振動させる。なお、入力パケット生成処理及び信号受信処理の詳細については、後述する。
【００４４】
ＲＯＭ８２には、拡張機器識別情報としてのプロダクトＩＤとシナリオ情報とが予め記憶されている。プロダクトＩＤとは、装置の種別を判定・識別可能とする属性情報である。シナリオ情報は、後述する合成シナリオ情報と抽出シナリオ情報とを含む。
【００４５】
第２コントローラ４０も、その基本的な構成は上記コントローラ２０と同様である。但し、コントローラ２０に第２コントローラ４０が有線接続された拡張モードでは、第２コントローラ４０はコントローラ２０の拡張機器として機能する。この場合、第２コントローラ４０のＣＰＵ８１Ｅは、装置本体１０との直接通信を禁止し、操作入力部８５Ｅに対するユーザからの操作入力に対応した操作信号を、拡張入力データとしてＵＳＢ通信モジュール８８Ｅからコントローラ２０へ送信させる。また、ＵＳＢ通信モジュール８８Ｅは、コントローラ２０から拡張出力データを受信する。
【００４６】
また、コントローラ２０に第２コントローラ４０が有線接続されると、コントローラ２０のＣＰＵ８１Ｍは、第２コントローラ４０との有線接続を検知して、後述するように、拡張モード移行処理を実行した後、上記入力パケット生成処理及び信号受信処理における処理を、基本モード用の処理から拡張モード用の処理に変更する。
【００４７】
〔拡張モード移行処理の説明〕
コントローラ２０に第２コントローラ４０が有線接続されると、コントローラ２０及び第２コントローラ４０は、拡張モード移行処理を実行し、基本モードから拡張モードへ移行する。
【００４８】
拡張モード移行処理において、第２コントローラ４０のＣＰＵ８１Ｅは、ＲＯＭ８２ＥからプロダクトＩＤとシナリオ情報を読み出してコントローラ２０へ送信する。コントローラ２０は、第２コントローラ４０から受信したプロダクトＩＤ及びシナリオ情報をＲＡＭ８４Ｍに記憶する。なお、コントローラ２０は、拡張モードから基本モードへの移行時（コントローラ２０と第２コントローラ４０との有線接続が解除されたとき）に、ＲＡＭ８４Ｍに記憶されているシナリオ情報を削除してもよく、また、基本モードへの移行時にシナリオ情報を削除せず、拡張モードへの移行時に合成シナリオ情報を上書きして更新してもよい。また、コントローラ２０は、第２コントローラ４０から取得したシナリオ情報を装置本体１０へ送信してもよい。
【００４９】
また、コントローラ２０は、第２コントローラ４０が接続されたことを示す拡張機器接続情報と第２コントローラ４０のプロダクトＩＤとを、ＢＴ通信によって装置本体１０へ送信する。
【００５０】
また、拡張モード移行処理において、第２コントローラ４０のＣＰＵ８１Ｅは、装置本体１０との直接通信を禁止し、操作入力部８５Ｅに対するユーザからの操作入力に対応した操作信号を、ＵＳＢ通信モジュール８８Ｅからコントローラ２０へ送信させる。
〔入力パケット生成処理の説明〕
コントローラ２０のＣＰＵ８１Ｍが実行する入力パケット生成処理は、基本モード時の基本パケット入力データ生成処理と、拡張モード時の拡張パケット入力データ生成処理とを含む。
【００５１】
基本パケット入力データ生成処理では、コントローラ２０の操作入力部８５Ｍに対するユーザからの操作入力に応じて取得した操作入力データをパケット化し、所定形式（Ｉ２Ｃフォーマット）及び所定容量（４８バイト）の基本パケット入力データを生成する。生成された基本パケット入力データは、信号送信処理によって装置本体１０へ送信される。
【００５２】
拡張パケット入力データ生成処理では、第２コントローラ４０から取得した合成シナリオ情報に従って、コントローラ４０から受信した拡張入力データに基づくデータを含む拡張パケット入力データを生成する。生成された拡張パケット入力データは、信号送信処理によって装置本体１０へ送信される。なお、この拡張パケット入力データは、上記拡張機器接続情報を常に含む。
【００５３】
合成シナリオ情報は、パケット入力データのデータ領域のうち拡張入力データに割り当てる領域（以下、拡張入力領域と称する）と拡張入力データに割り当てない領域（以下、オリジナル入力領域と称する）とを規定し、個々の拡張入力データについて対応させる拡張入力領域を規定し、さらに基本パケット入力データと拡張パケット入力データとの合成規則を規定する。この合成規則は、基本パケット入力データのデータ（以下、オリジナル入力データと称する）を残して拡張入力データを破棄する処理（オリジナル入力データを維持する処理）と、オリジナル入力データを拡張入力データに書き換える処理（オリジナル入力データを拡張入力データにリプレイスする処理）と、オリジナル入力データと拡張入力データとを合成する処理（オリジナル入力データと拡張入力データとをマージする処理）とを含み、各データ領域に対して設定される。オリジナル入力領域については、オリジナル入力データを維持する処理が設定され、拡張入力領域については、オリジナル入力データを拡張入力データにリプレイスする処理又はオリジナル入力データと拡張入力データとをマージする処理の何れかが設定される。マージする処理とは、例えば、当該拡張入力領域にオリジナル入力データが書き込まれている場合はそのオリジナル入力データを残し、オリジナル入力データが書き込まれていない場合に拡張入力データを書き込む処理である。
【００５４】
図４に、合成シナリオ情報の一例を示す。図４は、４８バイトのデータ領域のうち、着色された１バイト目から３８バイト目までの連続した３８バイト分がオリジナル入力領域であり、着色されていない３９バイト目から４８バイト目までの連続した８バイト分が拡張入力領域であることを示している。また、３９バイト目、４０バイト目、４３バイト目、及び４６バイト目から４８バイト目までの領域（Ｒｐ０１〜Ｒｐ０６）では、オリジナル入力データを拡張入力データにリプレイスする処理を実行し、４１バイト目、４２バイト目、４４バイト目、及び４５バイト目の領域（Ｍｇ０１〜Ｍｇ０４）では、オリジナル入力データと拡張入力データとをマージする処理を実行することを示している。
【００５５】
また、図５に、合成シナリオ情報の他の例を示す。この例は、拡張入力領域を不連続に設定したものであり、図４と同様に、着色された領域がオリジナル入力領域であり、着色されていない領域が拡張入力領域であることを示している。また、１８バイト目、２２バイト目、２７バイト目、３７バイト目、４３バイト目、及び４８バイト目の領域（Ｒｐ０１〜Ｒｐ０６）では、オリジナル入力データを拡張入力データにリプレイスする（置換する）処理を実行し、２４バイト目、２５バイト目、２８バイト目、及び３１バイト目の領域（Ｍｇ０１〜Ｍｇ０４）では、オリジナル入力データと拡張入力データとをマージする処理を実行することを示している。
【００５６】
拡張入力領域の容量（バイト数）は、拡張機器の種別に応じて設定される。拡張入力領域は、基本パケット入力データのデータ領域のうち、コントローラ２０のために使用していない未使用領域から優先して設定し、未使用領域が存在しない場合や未使用領域だけでは不足する場合には、コントローラ２０のために使用される頻度が少ない領域や情報としての重要度が低いデータを配置する領域から適宜選択して設定する。
【００５７】
また、同じ拡張機器を使用する場合であっても、装置本体１０が実行するアプリケーションプログラムに応じて、異なる合成シナリオ情報を用いてもよい。例えば、コントローラ４０からの入力操作が多い方が趣向性が高まるゲームアプリケーションプログラムを実行する場合には、拡張入力領域が広く設定された合成シナリオ情報を使用し、コントローラ４０からの入力操作が少なくても高い趣向性が得られるゲームアプリケーションプログラムを実行する場合には、拡張入力領域が狭く設定された合成シナリオ情報を使用すればよい。この場合、複数の合成シナリオ情報を第２コントローラ４０に予め記憶させておき、コントローラ２０は、装置本体１０が実行するアプリケーションプログラムに応じて、第２コントローラ４０から取得して使用する合成シナリオ情報を選択して決定すればよい。
【００５８】
本実施形態では、オリジナル入力領域に操作入力データを配置することによりパケット通信方式に対応した基本入力データを生成し、拡張データ入力領域に拡張入力データを配置することによりパケット通信方式に対応した拡張入力データを生成し、生成した基本入力データと拡張入力データとを合成して拡張パケット入力データを生成する。
【００５９】
例えば、図４に示す合成シナリオ情報を用いる場合、上記基本パケット入力データ生成処理と同様の配列で操作入力データを配置することにより基本入力データを生成し、３９バイト目〜４８バイト目までの領域に拡張入力データを配置することにより拡張入力データを生成し、基本入力データと拡張入力データとを合成する。この合成において、１バイト目〜３８バイト目までの領域（オリジナル入力領域）については、基本入力データをそのまま維持する。１８バイト目、２２バイト目、２７バイト目、３７バイト目、４３バイト目、及び４８バイト目の領域（Ｒｐ０１〜Ｒｐ０６）については、基本入力データを拡張入力データにリプレイスする。２４バイト目、２５バイト目、２８バイト目、及び３１バイト目の領域（Ｍｇ０１〜Ｍｇ０４）については、基本入力データと拡張入力データとをマージする。
【００６０】
なお、基本パケット入力データと拡張パケット入力データとの合成規則は、上記のように基本パケット入力データ（基本入力データ）の全データ領域を対象として規定されるもののほか、拡張入力領域のみについて規定するものであってもよい。
【００６１】
〔信号受信処理の説明〕
コントローラ２０のＣＰＵ８１Ｍが実行する信号受信処理は、基本モード時の基本受信処理と、拡張モード時の拡張受信処理とを含む。
【００６２】
基本受信処理では、装置本体１０から受信したパケット出力データをコントローラ２０への出力情報として取り扱う。例えば、受信したパケット出力データが加振情報を含む場合、その加振情報に従って加振処理が実行され、加振器９７Ｍが振動する。
【００６３】
拡張受信処理では、第２コントローラ４０から取得した抽出シナリオ情報に従って、装置本体１０から受信したパケット出力データから拡張出力データを抽出し、抽出した拡張出力データをＵＳＢ通信モジュール８８Ｍから第２コントローラ４０のＵＳＢ通信モジュールＥへ送信する。第２コントローラ４０のＣＰＵ８１Ｅは、例えば、受信した拡張出力データが加振情報を含む場合、その加振情報に従って加振処理を実行し、加振器９７Ｅを振動させる。
【００６４】
抽出シナリオ情報は、パケット出力データのデータ領域のうち拡張出力データが割り当てられる領域（以下、拡張出力領域と称する）と拡張出力データが割り当てられない領域（以下、オリジナル出力領域と称する）を特定する情報である。
【００６５】
図６に、抽出シナリオ情報の一例を示す。図６は、４８バイトのデータ領域のうち、着色された１バイト目から８バイト目までの連続した８バイト分がオリジナル出力領域であり、着色されていない９バイト目から４８バイト目までの連続した４０バイト分（Ｅｘ０１〜Ｅｘ４０）が拡張出力領域であることを示している。
【００６６】
拡張出力領域の容量（バイト数）は、拡張機器の種別に応じて設定される。拡張出力領域は、パケット出力データのデータ領域のうち、コントローラ２０のために使用していない未使用領域から優先して設定し、未使用領域が存在しない場合や未使用領域だけでは不足する場合には、コントローラ２０のために使用される頻度が少ない領域や情報としての重要度が低いデータを配置する領域から適宜選択して設定する。例えば、スピーカのように出力情報のデータ量が比較的多い拡張機器の場合には、拡張入力領域を広く設定すればよい。
【００６７】
また、同じ拡張機器を使用する場合であっても、装置本体１０が実行するアプリケーションプログラムに応じて、異なる抽出シナリオ情報を用いてもよい。
【００６８】
〔出力データ生成処理及び入力データ解析処理の説明〕
装置本体１０のメインＣＰＵ６４は、コントローラ２０から受信したデータが拡張パケット入力データである場合（受信したデータが拡張機器接続情報を含む場合）、コントローラ２０が拡張モードであると判定する。拡張モードであると判定すると、コントローラ２０から受信したプロダクトＩＤに基づいて、コントローラ２０に有線接続された拡張機器の種別に応じたパケット出力データを生成する。生成されるパケット出力データの拡張データ記憶領域は、コントローラ２０が使用する抽出シナリオ情報の拡張データ記憶領域と一致する。例えば、図６に示す抽出シナリオ情報が記憶された拡張機器が接続されている場合、９バイト目から４８バイト目まで（Ｅｘ０１〜Ｅｘ４０）を拡張出力領域とし、この拡張出力領域に拡張機器のための拡張出力データを配置する。
【００６９】
また、装置本体１０のメインＣＰＵ６４は、コントローラ２０から受信したパケット入力データを解析処理する。なお、メインＣＰＵ６４が実行するプログラム（例えば、ゲームアプリケーションプログラム）が通常モードと拡張モードとを区別して実行するように予め設定されている場合、メインＣＰＵ６４は、コントローラ２０が拡張モードであるか否かの判定結果に応じた処理を上記プログラムに従って実行する。
【００７０】
〔拡張モード移行時の説明〕
次に、拡張モード移行時のシステム全体の処理について、時系列に説明する。
【００７１】
図７に示すように、起動中のコントローラ２０に第２コントローラ４０が有線接続されると、コントローラ２０は、この接続を検知し（ステップＳ１）、第２コントローラ４０に対してシナリオ情報の送信を要求する（ステップＳ２）。第２コントローラ４０は、この要求を受信し（ステップＳ３）、シナリオ情報をコントローラ２０へ送信し（ステップＳ４）、コントローラ２０は、受信したシナリオ情報をＲＡＭ８４Ｍに記憶する（ステップＳ５）。
【００７２】
また、装置本体１０とコントローラ２０とは、パケット通信による送受信を所定の定期周期で行う。コントローラ２０は、第２コントローラ４０の接続を検知すると、拡張機器接続情報をパケット入力データに含ませて装置本体１０へ送信する。拡張機器接続情報を含むパケット入力データを受信した装置本体１０は、図８に示すように、コントローラ２０に対して、接続された拡張機器のプロダクトＩＤを含む属性情報の取得を要求する（ステップＳ１０）。コントローラ２０は、この要求を受信して（ステップＳ１１）、第２コントローラ４０に対し、属性情報の送信を要求する（ステップＳ１２）。第２コントローラ４０は、この要求を受信して（ステップＳ１３）、自己の属性情報をコントローラ２０へ送信する（ステップＳ１４）。第２コントローラ２０からの属性情報を受信したコントローラ２０は、この情報をバッファ値としてＲＡＭ８４Ｍに記憶する（ステップＳ１５）。また、属性情報の取得を要求した装置本体１０は、コントローラ２０に対して、属性情報の送信を要求する（ステップＳ２０）。コントローラ４０の属性情報を記憶したコントローラ２０は、装置本体１０からの要求に応答して（ステップＳ２１）、記憶している属性情報を装置本体１０へ送信する（ステップＳ２２）。属性情報を受信した装置本体１０は、これをメインメモリ６５やサブメモリ７４などの記憶部に記憶する（ステップＳ２３）。なお、属性情報を記憶した装置本体１０は、必要に応じて、第２コントローラ４０の初期化をコントローラ２０に要求し、この要求に応じてコントローラ２０は第２コントローラ４０に初期化を指示し、第２コントローラ４０は、コントローラ２０からの指示に応じて初期化処理を実行する。
【００７３】
〔拡張モード時の説明〕
コントローラ２０が拡張モードの場合、装置本体１０は、コントローラ２０から受信して記憶したプロダクトＩＤに基づいて、コントローラ２０に有線接続された拡張機器（第２コントローラ４０）に応じたパケット出力データを生成し、コントローラ２０へ出力する。パケット出力データを受信したコントローラ２０は、拡張受信処理を実行する。すなわち、図９に示すように、第２コントローラ４０から取得した抽出シナリオ情報に従って、受信したパケット出力データから拡張出力データを抽出し（ステップＳ３０）、抽出した拡張出力データを第２コントローラ４０へ送信する（ステップＳ３１）。第２コントローラ４０は、受信した拡張出力データに応じた処理を実行する。
【００７４】
また、コントローラ２０は、拡張パケット入力データ生成処理を実行する。すなわち、図１０に示すように、第２コントローラ４０から取得した合成シナリオ情報に従って、オリジナル入力領域に操作入力データを配置することによりパケット通信方式に対応した基本入力データを生成し（ステップＳ４０）、拡張データ入力領域に拡張入力データを配置することによりパケット通信方式に対応した拡張入力データを生成し（ステップＳ４１）、生成した基本入力データと拡張入力データとを合成して拡張パケット入力データを生成（ステップＳ４２）し、生成した拡張パケット入力データを装置本体１０へ送信する（ステップＳ４３）。装置本体１０は、拡張パケット入力データを受信して解析処理する。
【００７５】
例えば、コントローラ２０に第２コントローラ４０を有線接続し、コントローラ２０を左手で把持して左指で操作入力し、第２コンロトーら４０を右手で把持して右指で操作入力することが可能である。すなわち、２つのコントローラ２０，４０を、右手用及び左手用として同時に使用することができる。
【００７６】
また、例えば対戦型のゲームアプリケーションプログラムを実行中に、左手による入力操作が不適切なときには、コントローラ２０に対して振動情報を送信し（振動情報をオリジナル出力領域に配置し）、右手による入力操作が不適切なときには、第２コントローラ４０に対して振動情報を送信する（振動情報を拡張出力領域に配置する）などの処理が可能であり、２つのコントローラ２０，４０を１つのユニット化されたコントローラとして使用することができる。
【００７７】
また、実行するゲームアプリケーションプログラムに特化した専用コントローラが提供されており、且つその専用コントローラがＢＴ通信機能を有していない場合において、専用コントローラをコントローラ２０の拡張機器として接続することにより、コントローラ２０を専用コントローラのＢＴ通信器として使用することができる。
【００７８】
次に、コントローラ２０、第２コントローラ及びシナリオ情報の各種態様を例示して説明する。なお、各例のコントローラ２０は、その基本的な構成が共通し、図１１に示すように、左操作部２１、右操作部２２、左スティック２３Ｌ、右スティック２３Ｒ、Ｌ１ボタン２４ａ、Ｌ２ボタン２４ｂ、Ｒ１ボタン２５ａ、Ｒ２ボタン２５ｂ、ホームボタン２６等を備えている。左操作部２１には、上方向、右方向、下方向及び左方向を表す刻印がそれぞれ施された方向指示ボタン（右ボタン２１ａ、左ボタン２１ｂ、上ボタン２１ｃ、下ボタン２１ｄ）が設けられている。右操作部２２には、４つの指示ボタン（三角表示ボタン２２ａ、丸表示ボタン２２ｂ、Ｘ表示ボタン２２ｃ、四角表示ボタン２２ｄ）。左スティック２３Ｌと右スティック２３Ｒとは、それぞれ傾倒操作と周回操作とが可能であり、非操作時は中立位置に復帰して保持される。
【００７９】
〔適用例１〕
本例の第２コントローラ４０Ａは、図１１に示すように、コントローラ２０の丸表示ボタン２２ｂ及びＸ表示ボタン２２ｃよりもそれぞれ大型の丸表示拡張ボタン４５及びＸ表示拡張ボタン４６を有し、コントローラ２０に直接接続される。この第２コントローラ４０Ａは、例えば、提示された問題に対する回答を２つのボタンの択一的な押下によって入力させるクイズゲームなどに好適に用いられる。
【００８０】
コントローラ２０に第２コントローラ４０Ａを装着した場合のコントローラ２０の基本入力データ、第２コントローラ４０Ａの拡張入力データ、合成シナリオ情報及び合成結果の一例を、図１５に示す。図１５の合成シナリオ情報は、基本入力データのアドレス（０ｘ０１０，＋００）のデータに拡張入力データのアドレス（０ｘ００８，＋００）のデータをマージすること、及び基本入力データのアドレス（０ｘ０１０，＋０１）のデータに拡張入力データのアドレス（０ｘ００８，＋０１）のデータをマージすることを表している。基本入力データのアドレス（０ｘ０１０，＋００）は、コントローラ２０のＸ表示ボタン２２ｃの押下操作に関する情報が書き込まれるデータ領域であり、拡張入力データのアドレス（０ｘ００８，＋００）は、第２コントローラ４０ＡのＸ表示拡張ボタン４６の押下操作に関する情報が書き込まれるデータ領域である。また、基本入力データのアドレス（０ｘ０１０，＋０１）は、コントローラ２０の丸表示ボタン２２ｂの押下操作に関する情報が書き込まれるデータ領域であり、拡張入力データのアドレス（０ｘ００８，＋０１）は、第２コントローラ４０Ａの丸表示拡張ボタン４５の押下操作に関する情報が書き込まれるデータ領域である。
【００８１】
このような第２コントローラ４０Ａと合成シナリオ情報とを用いた拡張モードでは、丸表示ボタン２２ｂまたは丸表示拡張ボタン４５の何れか一方の押下操作が通常モードにおける丸表示ボタン２２ｂの押下操作と同等に取り扱われ、Ｘ表示ボタン２２ｃまたはＸ表示拡張ボタン４６の何れか一方の押下操作が通常モードにおけるＸ表示ボタン２２ｃの押下操作と同等に取り扱われる。従って、ユーザは、丸表示ボタン２２ｂ及び丸表示拡張ボタン４５のうち操作し易い一方のボタンを任意に押下操作することができ、また、Ｘ表示ボタン２２ｃ及びＸ表示拡張ボタン４６のうち操作し易い一方のボタンを任意に押下操作することができる。また、装置本体１０は、丸表示ボタン２２ｂ及び丸表示拡張ボタン４５のうち何れが操作されたか、及びＸ表示ボタン２２ｃ及びＸ表示拡張ボタン４６の何れが操作されたかについて、判別する必要がない。
【００８２】
〔適用例２〕
本例の第２コントローラ４０Ｂは、図１２に示すように、拡張スティック４７を有し、コントローラ２０に直接接続される。
【００８３】
コントローラ２０に第２コントローラ４０Ｂを装着した場合のコントローラ２０の基本入力データ、第２コントローラ４０Ｂの拡張入力データ、合成シナリオ情報及び合成結果の一例を、図１６に示す。図１６の合成シナリオ情報は、基本入力データのアドレス（０ｘ０１８，＋００）のデータに拡張入力データのアドレス（０ｘ００８，＋００）のデータをリプレイスすること、及び基本入力データのアドレス（０ｘ０１８，＋０１）のデータに拡張入力データのアドレス（０ｘ００８，＋０１）のデータをリプレイスすることを表している。基本入力データのアドレス（０ｘ０１８，＋００）と（０ｘ０１８，＋０１）とは、ともにデータの空き領域であり、拡張入力データのアドレス（０ｘ００８，＋００）と（０ｘ００８，＋０１）とは、第２コントローラ４０Ｂの拡張スティック４７の操作に関する情報が書き込まれるデータ領域である。すなわち、基本入力データに拡張スティック４７の操作情報が追加された拡張パケット入力データが生成される。
【００８４】
このような第２コントローラ４０Ｂと合成シナリオ情報とを用いた拡張モードでは、通常モードに対して拡張スティック４７の操作入力が追加されるので、操作入力の多様化を図ることができる。
【００８５】
〔適用例３〕
本例の第２コントローラ４０Ｂは、上記適用例３と同様であり、図１２に示すように、拡張スティック４７を有し、コントローラ２０に直接接続される。
【００８６】
コントローラ２０に第２コントローラ４０Ｂを装着した場合のコントローラ２０の基本入力データ、第２コントローラ４０Ｂの拡張入力データ、合成シナリオ情報及び合成結果の一例を、図１７に示す。図１７の合成シナリオ情報は、基本入力データのアドレス（０ｘ００８，＋０４）のデータに拡張入力データのアドレス（０ｘ００８，＋００）のデータをリプレイスすること、及び基本入力データのアドレス（０ｘ００８，＋０５）のデータに拡張入力データのアドレス（０ｘ００８，＋０１）のデータをリプレイスすることを表している。基本入力データのアドレス（０ｘ００８，＋０４）と（０ｘ００８，＋０５）とは、ともにコントローラ２０の左スティック２３Ｌの操作に関する情報が書き込まれるデータ領域であり、拡張入力データのアドレス（０ｘ００８，＋００）と（０ｘ００８，＋０１）とは、第２コントローラ４０Ｂの拡張スティック４７の操作に関する情報が書き込まれるデータ領域である。
【００８７】
このような第２コントローラ４０Ｂと合成シナリオ情報とを用いた拡張モードでは、通常モードにおける左スティック２３Ｌの操作が拡張スティック４７の操作に置換される。なお、この場合、左スティック２３Ｌの操作に関する情報は、装置本体１０には送信されない。
【００８８】
〔適用例４〕
本例の第２コントローラ４０Ｃは、図１３に示すように、丸表示拡張ボタン４５、Ｘ表示拡張ボタン４６、拡張スティック４７、Ｌ１ボタン４８、Ｌ２ボタン４９、Ｒ１ボタン５０及びＲ２ボタン５１を有し、コントローラ２０に直接接続される。なお、このコントローラ２０は、Ｌ１ボタン、Ｌ２ボタン、Ｒ１ボタン及びＲ２ボタンを有していない。
【００８９】
コントローラ２０に第２コントローラ４０Ｃを装着した場合のコントローラ２０の基本入力データ、第２コントローラ４０Ｃの拡張入力データ、合成シナリオ情報及び合成結果の一例を、図１８に示す。図１８の合成シナリオ情報は、基本入力データのアドレス（０ｘ０１０，＋００）のデータに拡張入力データのアドレス（０ｘ００８，＋００）のデータをマージすること、基本入力データのアドレス（０ｘ０１０，＋０１）のデータに拡張入力データのアドレス（０ｘ００８，＋０１）のデータをマージすること、基本入力データのアドレス（０ｘ０１０，＋０４）のデータに拡張入力データのアドレス（０ｘ００８，＋０４）のデータをリプレイスすること、基本入力データのアドレス（０ｘ０１０，＋０５）のデータに拡張入力データのアドレス（０ｘ００８，＋０５）のデータをリプレイスすること、基本入力データのアドレス（０ｘ０１０，＋０６）のデータに拡張入力データのアドレス（０ｘ００８，＋０６）のデータをリプレイスすること、基本入力データのアドレス（０ｘ０１０，＋０７）のデータに拡張入力データのアドレス（０ｘ００８，＋０７）のデータをリプレイスすること、基本入力データのアドレス（０ｘ０１８，＋００）のデータに拡張入力データのアドレス（０ｘ００８，＋０２）のデータをリプレイスすること、及び基本入力データのアドレス（０ｘ０１８，＋０１）のデータに拡張入力データのアドレス（０ｘ００８，＋０３）のデータをリプレイスすることを表している。
【００９０】
基本入力データのアドレス（０ｘ０１０，＋００）は、コントローラ２０のＸ表示ボタン２２ｃの押下操作に関する情報が書き込まれるデータ領域であり、拡張入力データのアドレス（０ｘ００８，＋００）は、第２コントローラ４０ＡのＸ表示拡張ボタン４６の押下操作に関する情報が書き込まれるデータ領域である。基本入力データのアドレス（０ｘ０１０，＋０１）は、コントローラ２０の丸表示ボタン２２ｂの押下操作に関する情報が書き込まれるデータ領域であり、拡張入力データのアドレス（０ｘ００８，＋０１）は、第２コントローラ４０Ａの丸表示拡張ボタン４５の押下操作に関する情報が書き込まれるデータ領域である。基本入力データのアドレス（０ｘ０１０，＋０４）、（０ｘ０１０，＋０５）、（０ｘ０１０，＋０６）及び（０ｘ０１０，＋０７）は、ともにデータの空き領域である。拡張入力データのアドレス（０ｘ００８，＋０４）、（０ｘ００８，＋０５）、（０ｘ００８，＋０６）、及び（０ｘ００８，＋０７）は、第２コントローラ４０Ｃの拡張スティック４７、Ｌ１ボタン４８、Ｒ１ボタン５０、Ｌ２ボタン４９及びＲ２ボタン５１の押下操作に関する情報がそれぞれ書き込まれるデータ領域である。基本入力データのアドレス（０ｘ０１８，＋００）と（０ｘ０１８，＋０１）とは、ともにデータの空き領域であり、拡張入力データのアドレス（０ｘ００８，＋０２）と（０ｘ００８，＋０３）とは、第２コントローラ４０Ｃの拡張スティック４７の操作に関する情報が書き込まれるデータ領域である。
【００９１】
このような第２コントローラ４０Ｃと合成シナリオ情報とを用いた拡張モードでは、丸表示ボタン２２ｂまたは丸表示拡張ボタン４５の何れか一方の押下操作が通常モードにおける丸表示ボタン２２ｂの押下操作と同等に取り扱われ、Ｘ表示ボタン２２ｃまたはＸ表示拡張ボタン４６の何れか一方の押下操作が通常モードにおけるＸ表示ボタン２２ｃの押下操作と同等に取り扱われる。また、通常モードに対して拡張スティック４７、Ｌ１ボタン４８、Ｌ２ボタン４９、Ｒ１ボタン５０及びＲ２ボタン５１の操作入力が追加される。
【００９２】
〔適用例５〕
本例の第２コントローラ４０Ｄは、図１４に示すように、ドラム型コントローラであり、ユーザによりスティック５３等を用いて叩かれる打面５２を有し、コントローラ２０に拡張ケーブル４１を介して接続される。第２コントローラ４０は、打面５２への殴打を検知して出力する。この第２コントローラ４０Ｄは、例えば、楽曲に合わせてリズムを入力するゲームなどに好適に用いられる。
【００９３】
コントローラ２０に第２コントローラ４０Ｄを装着した場合のコントローラ２０の基本入力データ、第２コントローラ４０Ｄの拡張入力データ、合成シナリオ情報及び合成結果の一例を、図１９に示す。図１９の合成シナリオ情報は、基本入力データのアドレス（０ｘ０００，＋００）、（０ｘ０００，＋０１）、（０ｘ０００，＋０２）、（０ｘ０００，＋０３）、（０ｘ０００，＋０４）、（０ｘ０００，＋０５）、（０ｘ０００，＋０６）、（０ｘ０００，＋０７）、（０ｘ００８，＋００）、（０ｘ００８，＋０１）、及び（０ｘ００８，＋０２）のデータに、拡張入力データのアドレス（０ｘ０００，＋００）、（０ｘ０００，＋０１）、（０ｘ０００，＋０２）、（０ｘ０００，＋０３）、（０ｘ０００，＋０４）、（０ｘ０００，＋０５）、（０ｘ０００，＋０６）、（０ｘ０００，＋０７）、（０ｘ００８，＋００）、（０ｘ００８，＋０１）、及び（０ｘ００８，＋０２）のデータをそれぞれリプレイスすることを表している。基本入力データのアドレス（０ｘ０００，＋００）、（０ｘ０００，＋０１）、（０ｘ０００，＋０２）、（０ｘ０００，＋０３）、（０ｘ０００，＋０４）、（０ｘ０００，＋０５）、（０ｘ０００，＋０６）、及び（０ｘ０００，＋０７）は、コントローラ２０に関する設定情報（例えば、プロダクトＩＤなど）が書き込まれるデータ領域であり、拡張入力データのアドレス（０ｘ０００，＋００）、（０ｘ０００，＋０１）、（０ｘ０００，＋０２）、（０ｘ０００，＋０３）、（０ｘ０００，＋０４）、（０ｘ０００，＋０５）、（０ｘ０００，＋０６）、及び（０ｘ０００，＋０７）は、（０ｘ００８，＋００）と（０ｘ００８，＋０１）とは、コントローラ４０Ｄに関する設定情報（例えば、プロダクトＩＤなど）が書き込まれるデータ領域である。また、基本入力データのアドレス（０ｘ００８，＋００）、（０ｘ００８，＋０１）、及び（０ｘ００８，＋０２）は、コントローラ２０のＸ表示ボタン２２ｃ、丸表示ボタン２２ｃ、及び四角表示ボタン２２ｄの押下操作に関する情報がそれぞれ書き込まれるデータ領域であり、拡張入力データのアドレス（０ｘ００８，＋００）、（０ｘ００８，＋０１）、及び（０ｘ００８，＋０２）は、コントローラ４０Ｄへの入力情報（例えば、殴打入力に関する情報）が書き込まれるデータ領域である。
【００９４】
このような第２コントローラ４０Ｄと合成シナリオ情報とを用いた拡張モードでは、通常モードにおけるＸ表示ボタン２２ｃ、丸表示ボタン２２ｃ、及び四角表示ボタン２２ｄの押下操作がコントローラ４０Ｄへの入力操作に置換される。
【００９５】
また、コントローラ２０に関する設定情報が全て第２コントローラ４０Ｄに関する設定情報に置換される。このため、装置本体１０は、第２コントローラ４０Ｄを通信相手として認識した状態で、コントローラ２０との間で実際の通信を行う状態となる。すなわち、コントローラ２０は、第２コントローラ４０Ｄの無線通信手段（ＢＴ通信器）としてのみ機能する。
【００９６】
〔合成シナリオ情報の基本フォーマットの説明〕
次に、合成シナリオ情報の基本フォーマットについて説明する。図２０は、合成シナリオ情報のフォーマット構成のメモリ展開イメージである。
【００９７】
図２０に示すように、合成シナリオ情報は、１ユニットの基本フォーマットを単位として、１又は複数ユニットの基本フォーマットによって設定される。１ユニットの基本フォーマットは、[属性値]、[合成先パケット内部先頭アドレス]、[合成元Ｉ／Ｏデバイス先頭アドレス]、[試行カウント]及び[パラメータ]の纏まりによって構成される。上記実施形態において、コントローラ（端末装置）２０が合成先のデバイスであり、第２コントローラ（拡張機器）４０が合成元のデバイスである。基本フォーマットの構成に従って任意のシナリオ定義領域に設定を行うことにより、合成シナリオ情報が規定される。このように１ユニットを基本単位として合成シナリオ情報を設定することによって、別の属性値とのコンビネーション合成や任意のパラメータとの合成・マスク処理など、様々な合成が可能となる。
【００９８】
なお、以下の説明では、転送先や転送元をパケット内部アドレスやＩ／ＯデバイスアドレスなどのようにパケットやＩ／Ｏデバイスに限定しているが、これらを任意メモリ空間や任意のＩ／Ｏ空間としてもよい。
【００９９】
〔属性値の説明〕
合成シナリオ情報の基本フォーマットに含まれる属性値とは、合成先パケット内部アドレス内の情報に対し、どの種別の合成処理を施すかを定義するパラメータであり、その例を図２１に示す。属性値（パラメータ）が定義する処理は、マージ（Ｍｅｒｇｅ）、リプレイス（Ｒｅｐｌａｃｅ）及びマスク（Ｍａｓｋ）などのタイプを含む。以下に、Ｍｅｒｇｅ（Ｍｇ）、Ｒｅｐｌａｃｅ（Ｒｐ）、Ａｎｄ（Ｍａｓｋ処理）、Ｏｒ（Ｍａｓｋ処理）、Ｎｏｔ（Ｍａｓｋ処理）及びＦｉｌｌ（Ｆｉｌ）の例をそれぞれ説明する。
【０１００】
〔Ｍｅｒｇｅ（Ｍｇ）の例〕
本例の合成シナリオ情報（１ユニット）は、属性値:０ｘ０１（Ｍｇ）、合成先パケット内部アドレス:０ｘ０５、合成元Ｉ／０デバイスアドレス:０ｘ１０、試行カウント:０ｘ０１、パラメータ:０ｘ００（未使用）である。合成シナリオ情報のフォーマット構成（メモリ展開イメージ）は、図２２のように設定され、合成先パケット及び合成元Ｉ／Ｏデバイスは、図２３及び図２４に示すとおりである。なお、図２４では、今回のボタン情報が０ｘ４４であった場合を示している。
【０１０１】
合成処理において、合成先パケット（０ｘ０５番地の情報（０ｘ２３））と合成元Ｉ／Ｏデバイス（０ｘ１０番地の情報（０ｘ４４））のＯＲ値が演算され、０ｘ６７が得られる。この値が、合成先のパケットアドレスであり、０ｘ０５番地へ格納される。本例では試行カウントに０ｘ０１が設定されているため、合成処理はここで終了となり、図２５に示すような演算結果後の合成先パケットが得られる。なお、試行カウントに０ｘ０２以上の値が設定されている場合は、合成元および合成先のアドレスが１つインクリメントされ、同様の処理が繰り返して実行される。また、試行カウントに０ｘ０２以上の値が設定されている場合の処理は、以下のＲｅｐｌａｃｅ（Ｒｐ）、Ａｎｄ（Ｍａｓｋ処理）、Ｏｒ（Ｍａｓｋ処理）、Ｎｏｔ（Ｍａｓｋ処理）及びＦｉｌｌ（Ｆｉｌ）の各例においても同様であるため、各例における説明を省略する。
【０１０２】
〔Ｒｅｐｌａｃｅ（Ｒｐ）の例〕
本例の合成シナリオ情報（１ユニット）は、属性値:０ｘ０２（Ｒｐ）、合成先パケット内部アドレス:０ｘ０５、合成元Ｉ／Ｏデバイスアドレス:０ｘ１０、試行カウント:０ｘ０１、パラメータ:０ｘ００（未使用）である。合成シナリオ情報のフォーマット構成（メモリ展開イメージ）は、図２６のように設定され、合成先パケット及び合成元Ｉ／Ｏデバイスは、上記Ｍｅｒｇｅの例と同様に、図２３及び図２４に示すとおりである。
【０１０３】
合成処理において、合成先パケット（０ｘ０５5番地の情報（０ｘ２３））が合成元Ｉ／Ｏデバイス（０ｘ１０番地の情報（０ｘ４４）で置き換えられ、合成先のパケットアドレス（０ｘ０５番地）の情報は０ｘ４４となる。本例では試行カウントに０ｘ０１が設定されているため、合成処理はここで終了となり、図２７に示すような演算結果後の合成先パケットが得られる。
【０１０４】
〔Ａｎｄ（Ｍａｓｋ処理）の例〕
本例の合成シナリオ情報（１ユニット）は、属性値:０ｘ０３（Ａｎｄ）、合成先パケット内部アドレス:０ｘ０５、合成元Ｉ／Ｏデバイスアドレス:０ｘ００（未使用）、試行カウント:０ｘ０１、パラメータ:０ｘ５５である。合成シナリオ情報のフォーマット構成（メモリ展開イメージ）は、図２８のように設定され、合成先パケットは、上記Ｍｅｒｇｅの例と同様に、図２３に示すとおりである。
【０１０５】
合成処理において、合成先パケット（０ｘ０５番地の情報（０ｘ２３））とシナリオ中のパラメータ値（０ｘ５５）のＡＮＤ演算（０ｘ２３ ａｎｄ ０ｘ５５）が行われ、その結果（０ｘ０１）が合成先パケット（０ｘ０５番地）に格納される。本例では試行カウントに０ｘ０１が設定されているため、合成処理はここで終了となり、図２９に示すような演算結果後の合成先パケットが得られる。
【０１０６】
〔Ｏｒ（Ｍａｓｋ処理）の例〕
本例の合成シナリオ情報（１ユニット）は、属性値:０ｘ０４（Ｏｒ）、合成先パケット内部アドレス:０ｘ０５、合成元Ｉ／Ｏデバイスアドレス:０ｘ００（未使用）、試行カウント:０ｘ０１、及びパラメータ:０ｘ５５である。合成シナリオ情報のフォーマット構成（メモリ展開イメージ）は、図３０のように設定され、合成先パケットは、上記Ｍｅｒｇｅの例と同様に、図２３に示すとおりである。
【０１０７】
合成処理において、合成先パケット（０ｘ０５番地の情報（０ｘ２３））とシナリオ中のパラメータ値（０ｘ５５）のＯＲ演算（０ｘ２３ ｏｒ ０ｘ５５）が行われ、その結果（０ｘ７７）が合成先パケット（０ｘ０５番地）に格納される。本例では試行カウントに０ｘ０１が設定されているため、合成処理はここで終了となり、図３１に示すような演算結果後の合成先パケットが得られる。
【０１０８】
〔Ｎｏｔ（Ｍａｓｋ処理）の例〕
本例の合成シナリオ情報（１ユニット）は、属性値:０ｘ０５（Ｎｏｔ）、合成先パケット内部アドレス:０ｘ０５、合成元Ｉ／Ｏデバイスアドレス:０ｘ００（未使用）、試行カウント:０ｘ０１、パラメータ:０ｘ５５である。合成シナリオ情報のフォーマット構成（メモリ展開イメージ）は、図３２のように設定され、合成先パケットは、上記Ｍｅｒｇｅの例と同様に、図２３に示すとおりである。
【０１０９】
合成処理において、合成先パケット（０ｘ０５番地の情報（０ｘ２３））とシナリオ中のパラメータ値（０ｘ５５）のＮＯＴ演算（０ｘ２３ ｎｏｔ ０ｘ５５）が行われ、結果（０ｘ８８）が合成先パケット（０ｘ０５番地）に格納される。本例では試行カウントに０ｘ０１が設定されているため、合成処理はここで終了となり、図３３に示すような演算結果後の合成先パケットが得られる。
【０１１０】
〔Ｆｉｌｌ（Ｆｉｌ）の例〕
本例の合成シナリオ情報（１ユニット）は、属性値:０ｘ０６（Ｆｉｌｌ）、合成先パケット内部アドレス:０ｘ０５、合成元Ｉ／Ｏデバイスアドレス:０ｘ００（未使用）、試行カウント:０ｘ０１、パラメータ:０ｘ５５である。合成シナリオ情報のフォーマット構成（メモリ展開イメージ）は、図３４のように設定され、合成先パケットは、上記Ｍｅｒｇｅの例と同様に、図２３に示すとおりである。
【０１１１】
合成処理において、合成先パケット（０ｘ０５番地の情報（０ｘ２３））がシナリオ中のパラメータ値（０ｘ５５）に置き換えられ、その結果（０ｘ５５）が合成先パケット（０ｘ０５番地）に格納される。本例では試行カウントに０ｘ０１が設定されているため、合成処理はここで終了となり、図３５に示すような演算結果後の合成先パケットが得られる。
【０１１２】
〔応用例〕
次に、第２コントローラ（拡張機器）４０は丸表示ボタン２２ｂ及びＸ表示ボタン２２ｃを有しているが、コントローラ（端末装置）２０は丸表示ボタン２２ｂ及びＸ表示ボタン２２ｃを有していない場合において、合成先パケットに存在しない丸表示ボタン２２ｂの入力情報（０ｘ００番地）とＸ表示ボタン２２ｃの入力情報（０ｘ０１番地）とを、拡張機器（合成元Ｉ／Ｏデバイス）から取得し、マージ(合成)処理を行う例について説明する。この例では、拡張機器が接続された場合、合成先パケットのＬ１，Ｌ２，Ｌ３，Ｒ１，Ｒ２，Ｒ３の各情報は、ＯＦＦ状態（０ｘ００）になるように処理される。合成先パケット及び合成元Ｉ／Ｏデバイスは、図３６及び図３７に示すとおりであり、合成シナリオ情報のフォーマット構成（メモリ展開イメージ）は、図３８のように設定される。なお、図３７では、丸表示ボタン２２ｂ及びＸ表示ボタン２２ｃの双方が押下された（双方のボタン情報がＯＮであった）場合を示している。
【０１１３】
合成処理において、図３８の最初の１ユニットに規定されたシナリオに従った処理では、合成先パケット（０ｘ００番地と０ｘ０１番地）には、合成元Ｉ／Ｏデバイスの情報（０ｘ１０番地の情報（○（ＯＮ））と０ｘ１１番地の情報（×（ＯＮ））がそれぞれマージ処理された結果が格納される。格納／演算の内容は以下のとおりである。
（１）合成先パケットアドレス（０ｘ００番地）＝［旧合成先パケットアドレス（０ｘ００番地）の情報］ ＯＲ ［合成元Ｉ／Ｏデバイス（０ｘ１０番地の情報（○（ＯＮ）））］
（２）合成先パケットアドレス（０ｘ０１番地）＝［旧合成先パケットアドレス（０ｘ０１番地）の情報］ ＯＲ ［合成元Ｉ／Ｏデバイス（０ｘ１１番地の情報（×（ＯＮ）））］
また、２つ目のシナリオ（次の１ユニットに規定されたシナリオ）では、属性値としてＦｉｌｌ、処理対象となる合成先パケット先頭アドレスは（０ｘ０８番地）、試行カウントは０ｘ０６、パラメータは０ｘ００となっているので、
（３）合成先パケットアドレス（０ｘ０８番地）＝０ｘ００
（４）合成先パケットアドレス（０ｘ０９番地）＝０ｘ００
（５）合成先パケットアドレス（０ｘ０Ａ番地）＝０ｘ００
（６）合成先パケットアドレス（０ｘ０Ｂ番地）＝０ｘ００
（７）合成先パケットアドレス（０ｘ０Ｃ番地）＝０ｘ００
（８）合成先パケットアドレス（０ｘ０Ｄ番地）＝０ｘ００
で置き換えられる。上記処理により、図３９に示すような合成先パケットの最新情報が生成される。
【０１１４】
以上説明したように、本実施形態によれば、装置本体１０との間で所定形式及び所定容量のパケット通信によって相互にデータの送受信を行うコントローラ２０の機能を拡張したいユーザは、コントローラ２０に所望の拡張機器を有線接続するだけで、その拡張機器を使用することができる。
【０１１５】
＜変形例＞
上記実施形態では、コントローラ２０は、第２コントローラ４０からシナリオ情報を取得しているが、第２コントローラ４０以外からシナリオ情報を取得してもよい。
【０１１６】
例えば、装置本体１０や装置本体１０が実行するアプリケーションプログラムや装置本体１０が接続されたネットワーク上のサーバ装置などに、シナリオ情報が予め記憶されていてもよい。また、シナリオ情報は、拡張機器の種別毎に記憶されていてもよい。装置本体１０やアプリケーションプログラムに拡張機器の種別毎にシナリオ情報が記憶されている場合、装置本体１０は、拡張モードへの移行時に、コントローラ２０から第２コントローラ４０のプロダクトＩＤを取得し、用意された複数のシナリオ情報の中から第２コントローラ４０のプロダクトＩＤに対応するシナリオ情報を特定して第２コントローラ４０へ送信する。また、ネットワーク上のサーバ装置などに拡張機器の種別毎のシナリオ情報が記憶されている場合、装置本体１０は、第２コントローラ４０のプロダクトＩＤに対応するシナリオ情報を、ネットワークを介して取得して第２コントローラ４０へ送信する。
【０１１７】
なお、上述の各実施の形態の説明は本発明の一例である。このため、本発明は上述の各実施の形態に限定されることはなく、本発明に係る技術的思想を逸脱しない範囲であれば、上述の実施の形態以外であっても種々の変更が可能であることは勿論である。
【産業上の利用可能性】
【０１１８】
本発明は、パケット通信によってデータの送受信を行う通信システムに好適に用いることができる。
【符号の説明】
【０１１９】
１０：装置本体、２０：コントローラ、４０：第２コントローラ
【図１】
2011107935.tif 000003
【図２】
2011107935.tif 000004
【図３】
2011107935.tif 000005
【図４】
2011107935.tif 000006
【図５】
2011107935.tif 000007
【図６】
2011107935.tif 000008
【図７】
2011107935.tif 000009
【図８】
2011107935.tif 000010
【図９】
2011107935.tif 000011
【図１０】
2011107935.tif 000012
【図１１】
2011107935.tif 000013
【図１２】
2011107935.tif 000014
【図１３】
2011107935.tif 000015
【図１４】
2011107935.tif 000016
【図１５】
2011107935.tif 000017
【図１６】
2011107935.tif 000018
【図１７】
2011107935.tif 000019
【図１８】
2011107935.tif 000020
【図１９】
2011107935.tif 000021
【図２０】
2011107935.tif 000022
【図２１】
2011107935.tif 000023
【図２２】
2011107935.tif 000024
【図２３】
2011107935.tif 000025
【図２４】
2011107935.tif 000026
【図２５】
2011107935.tif 000027
【図２６】
2011107935.tif 000028
【図２７】
2011107935.tif 000029
【図２８】
2011107935.tif 000030
【図２９】
2011107935.tif 000031
【図３０】
2011107935.tif 000032
【図３１】
2011107935.tif 000033
【図３２】
2011107935.tif 000034
【図３３】
2011107935.tif 000035
【図３４】
2011107935.tif 000036
【図３５】
2011107935.tif 000037
【図３６】
2011107935.tif 000038
【図３７】
2011107935.tif 000039
【図３８】
2011107935.tif 000040
【図３９】
2011107935.tif 000041