(57)【要約】【課題】  １台の親機と１台以上の子機から成る無線ネットワークを自動的に構築可能とすること。【解決手段】  ＣＰＵコアは、ネットワーク接続要求を受けると、親機検索期間をランダムに設定し、この親機検索期間が終了するまで親機または仮親機を検索する。親機検索期間が終了すると、続いてＣＰＵコアは、仮親処理期間をランダムに設定し、この仮親処理期間が終了するまで自ゲーム装置を仮親として動作させる。ＣＰＵコアはこのような親機検索と仮親処理を交互に繰り返し、親機検索期間中に親機または仮親機として動作中の他ゲーム装置が見つかれば自ゲーム装置を子機として動作させ、仮親処理期間中に他ゲーム装置からの接続要求を受けた場合には自ゲーム機を親機として動作させる。【選択図】  図６
2006148448.tif 000002
【特許請求の範囲】
【請求項１】
無線通信機能を備えた複数の端末で構成され、当該複数の端末のうちの１台がネットワーク内のデータ転送タイミングを制御する親機として動作し、残りの端末が当該親機の制御下で当該親機との間でデータ転送を実行する子機として動作する無線ネットワークシステムであって、
各前記端末は、
親機または仮親機として動作中の他端末を検索する親機検索手段、
自端末を仮親機として動作させる仮親処理手段、
自端末と他端末との間でネットワークが構築されていないときに、前記親機検索手段と前記仮親処理手段を交互に切り替えて能動化する切替手段、
前記親機検索手段によって親機または仮親機の存在が検知されたことに応じて、当該検知された親機または仮親機に対する子機として自端末を動作させる子処理手段、および
自端末が前記仮親処理手段によって仮親機として動作している期間中に親機または仮親機を検索している他端末の存在が検知されたことに応じて、自端末を親機として動作させる親処理手段を備える、無線ネットワークシステム。
【請求項２】
前記切替手段は、前記親機検索手段と前記仮親処理手段を交互に切り替えて能動化するときに、前記親機検索手段を能動化する期間と前記仮親処理手段を能動化する期間の一方もしくは両方をランダムに設定する、請求項１に記載の無線ネットワークシステム。
【請求項３】
各前記端末は、親機または仮親機として動作中に、自身が親機または仮親機として動作中であることを示す情報を少なくとも含むビーコン信号を一定周期で送出し、
前記親機検索手段は、他端末から送出されたビーコン信号を受信することによって親機または仮親機の存在を検知する、請求項１に記載の無線ネットワークシステム。
【請求項４】
各前記端末は、自身が子機として動作しているときに自身が所属するネットワークから親機が離脱したかどうかを判定する親機離脱判定手段をさらに備え、
前記切替手段は、前記親機離脱判定手段によって親機がネットワークから離脱したと判定されたときに前記切替動作を自動的に開始する、請求項１に記載の無線ネットワークシステム。
【請求項５】
各前記端末は、他端末との間でネットワークが構築されているときに、当該ネットワークに所属する他端末を識別するための識別情報を受信して保持する識別情報保持手段をさらに備え、
前記親機検索手段は、前記識別情報保持手段が保持している識別情報に基づいて、前記ネットワークに所属していた他端末であって、かつ親機または仮親機として動作中の他端末を検索する、請求項４に記載の無線ネットワークシステム。
【請求項６】
前記親機検索手段は、前記親機離脱判定手段によって親機が前記ネットワークから離脱したと判定されてから予め定められた一定時間が経過後は、前記ネットワークに所属していた他端末に限らず、親機または仮親機として動作中の他端末を検索する、請求項５に記載の無線ネットワークシステム。
【請求項７】
前記識別情報は、前記ネットワークに所属する他端末のＭＡＣアドレスのリストである、請求項５に記載の無線ネットワークシステム。
【請求項８】
各前記端末は、親機または仮親機として動作中に、自身のＭＡＣアドレスを少なくとも含むビーコン信号を一定周期で送出し、
前記親機検索手段は、親機または仮親機として動作中の他端末の存在を検知したときに、当該他端末から送出されたビーコン信号に含まれる当該他端末のＭＡＣアドレスと前記識別情報保持手段が保持しているＭＡＣアドレスリストとを照合することによって、当該他端末が、自端末が直前に所属していたネットワークに所属していた他端末かどうかを判別する、請求項７に記載の無線ネットワークシステム。
【請求項９】
各前記端末は、他端末との間でネットワークが構築されているときに、当該ネットワークに所属する他端末の個体番号のリストを受信して保持する個体番号保持手段をさらに備え、
前記切替手段は、前記親機離脱判定手段によって親機が前記ネットワークから離脱したと判定されたときに、前記個体番号保持手段が保持している個体番号リストと自端末の個体番号とを比較し、当該比較結果に基づいて前記親機検索手段を最初に能動化する期間を設定する、請求項４に記載の無線ネットワークシステム。
【請求項１０】
前記個体番号は端末のＭＡＣアドレスである、請求項９に記載の無線ネットワークシステム。
【請求項１１】
無線通信機能を備えた複数の端末で構成された、当該複数の端末のうちの１台がネットワーク内のデータ転送タイミングを制御する親機として動作し、残りの端末が当該親機の制御下で当該親機との間でデータ転送を実行する子機として動作する無線ネットワークシステムを構築するための無線通信プログラムであって、前記端末のコンピュータを、
親機または仮親機として動作中の他端末を検索する親機検索手段、
自端末を仮親機として動作させる仮親処理手段、
自端末と他端末との間でネットワークが構築されていないときに、前記親機検索手段と前記仮親処理手段を交互に切り替えて能動化する切替手段、
前記親機検索手段によって親機または仮親機の存在が検知されたことに応じて、当該検知された親機または仮親機に対する子機として自端末を動作させる子処理手段、および
自端末が前記仮親処理手段によって仮親機として動作している期間中に親機または仮親機を検索している他端末の存在が検知されたことに応じて、自端末を親機として動作させる親処理手段として機能させる、無線通信プログラム。
【請求項１２】
前記切替手段は、前記親機検索手段と前記仮親処理手段を交互に切り替えて能動化するときに、前記親機検索手段を能動化する期間と前記仮親処理手段を能動化する期間の一方もしくは両方をランダムに設定する、請求項１１に記載の無線通信プログラム。
【請求項１３】
各前記端末は、親機または仮親機として動作中に、自身が親機または仮親機として動作中であることを示す情報を少なくとも含むビーコン信号を一定周期で送出し、
前記親機検索手段は、他端末から送出されたビーコン信号を受信することによって親機または仮親機の存在を検知する、請求項１１に記載の無線通信プログラム。
【請求項１４】
前記コンピュータを、自身が子機として動作しているときに自身が所属するネットワークから親機が離脱したかどうかを判定する親機離脱判定手段としてさらに機能させ、
前記切替手段は、前記親機離脱判定手段によって親機がネットワークから離脱したと判定されたときに前記切替動作を自動的に開始する、請求項１１に記載の無線通信プログラム。
【請求項１５】
前記コンピュータを、他端末との間でネットワークが構築されているときに、当該ネットワークに所属する他端末を識別するための識別情報を受信して保持する識別情報保持手段としてさらに機能させ、
前記親機検索手段は、前記識別情報保持手段が保持している識別情報に基づいて、前記ネットワークに所属していた他端末であって、かつ親機または仮親機として動作中の他端末を検索する、請求項１４に記載の無線通信プログラム。
【請求項１６】
前記親機検索手段は、前記親機離脱判定手段によって親機が前記ネットワークから離脱したと判定されてから予め定められた一定時間が経過後は、前記ネットワークに所属していた他端末に限らず、親機または仮親機として動作中の他端末を検索する、請求項１５に記載の無線通信プログラム。
【請求項１７】
前記識別情報は、前記ネットワークに所属する他端末のＭＡＣアドレスのリストである、請求項１５に記載の無線通信プログラム。
【請求項１８】
各前記端末は、親機または仮親機として動作中に、自身のＭＡＣアドレスを少なくとも含むビーコン信号を一定周期で送出し、
前記親機検索手段は、親機または仮親機として動作中の他端末の存在を検知したときに、当該他端末から送出されたビーコン信号に含まれる当該他端末のＭＡＣアドレスと前記識別情報保持手段が保持しているＭＡＣアドレスリストとを照合することによって、当該他端末が、自端末が直前に所属していたネットワークに所属していた他端末かどうかを判別する、請求項１７に記載の無線通信プログラム。
【請求項１９】
前記コンピュータを、他端末との間でネットワークが構築されているときに、当該ネットワークに所属する他端末の個体番号のリストを受信して保持する個体番号保持手段としてさらに機能させ、
前記切替手段は、前記親機離脱判定手段によって親機が前記ネットワークから離脱したと判定されたときに、前記個体番号保持手段が保持している個体番号リストと自端末の個体番号とを比較し、当該比較結果に基づいて前記親機検索手段を最初に能動化する期間を設定する、請求項１４に記載の無線通信プログラム。
【請求項２０】
前記個体番号は端末のＭＡＣアドレスである、請求項１９に記載の無線通信プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、無線ネットワークシステムおよび無線通信プログラムに関し、特に例えば親機と子機からなるネットワークを構築するとき、あらかじめ親機を定めておくことなく、ネットを構築しようとする端末の中から親機を決めてネットワークを構築することができる、無線ネットワークシステムおよび無線通信プログラムに関する。
【背景技術】
【０００２】
従来、ネットワークシステムにおいては、特にゲームなどをプレイする場合、通信を制御する親機となるサーバが予め決められていることが多い。このような構成のネットワークでは、ひとたび親機が消滅するとネットワークが成立しなくなり、プレイヤはプレイ中のゲームを中断せざるを得なくなる。一方、ネットワークシステムを構築するとき、接続と切断の自由度から無線通信によるネットワークシステムを構築することもよく知られている。
【０００３】
特許文献１に記載の技術では、ネットワークを組もうとする無線通信端末の中で、まず１台の端末が仮親として動作し、そのときの受信電界強度データを他の無線通信端末から収集する。続いて仮親を切り替えて、そのときの受信電界強度データを他の無線通信端末から収集する。その後、それらの収集結果に基づいて、ネットワークを組もうとする無線通信端末の中から、全ての端末において良好な受信電界強度が得られるような親機の候補を選択する。
【０００４】
特許文献２に記載の技術では、ネットワークを組もうとする無線通信端末の中で、まず１台の端末が仮親として動作し、この仮親は他の無線通信端末から電源残容量とデータ転送レートの情報を収集する。仮親は、この収集結果に基づいて、転送レートが最大かつ電源残容量が所定値以上ある無線通信端末を親機として決定する。
【０００５】
特許文献３に記載の技術では、１つの親機（ネットワークマスター）と複数の子機から成るネットワークが構成されたときに、子機間でバックアップマスター優先順位を予め決定してその情報を全ての子機間で共有しておく。そして、親機（ネットワークマスター）がネットワークから離脱したときには、子機であった各端末は、自分よりもバックアップマスター優先順位が上位の端末に対してバックアップマスター優先順位の順番で順次接続を試み、いずれかの端末に対して接続が成功すれば、その端末をネットワークマスターとしたネットワークに参加する。また、通信可能領域に自分よりもバックアップマスター優先順位が上位の端末が存在しないことが確認された場合には、それ以降はネットワークマスターとして振る舞い、自分よりもバックアップマスター優先順位が下位の端末からの接続要求を待機する。
【特許文献１】特許第２８６７９８０号公報
【特許文献２】特許第２９２４８２８号公報
【特許文献３】特許第３４２１０１７号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
しかしながら、特許文献１の技術では、親機を決定するために、複数の無線通信端末が順番に仮親として動作し、仮親が他の全ての端末からデータを収集する必要があるため、ネットワークを構築するまでに端末の台数に応じた時間を要するという問題がある。
【０００７】
また、例えば各ゲームプレイヤが無線通信機能を備えた携帯ゲーム機を持ち寄ってお互いの顔が認識される程度の範囲に集まって一緒にゲームをプレイすることを前提としたネットワークゲームシステムでは、いずれの携帯ゲーム機が親機として動作したとしても各携帯ゲーム機の受信電界強度は良好であると考えられるので、特許文献１の技術のように受信電界強度の情報を収集することは過剰な処理負担となる。
【０００８】
また、例えば複数の同型の携帯ゲーム機で構築されることを前提としたネットワークゲームシステムでは、各携帯ゲーム機のデータ転送レートは実質的に同一であると考えられるので、特許文献２の技術のようにデータ転送レートの情報を収集することは過剰な処理負担となる。
【０００９】
更に、特許文献１にも特許文献２にも、親機が途中でネットワークから離脱したときにどのように対処すべきかは開示されていない。
【００１０】
特許文献３に記載の技術では、親機が消滅したとき、予め定められた優先順位に基づいてのみ新たな子機が親機として設定されるので、親機となり得る子機の自由度が低い。また、親機と子機の２台だけで構築されるようなネットワークにおいて親機が消滅したときの処理については開示されていない。
【００１１】
それゆえに、この発明の主たる目的は、複数の無線通信機能を備えた端末を起動させるだけで、利用者が親機／子機の設定をすることなく、端末同士が自動で親機と子機とを決めることが可能な無線ネットワークシステムを提供することである。
【００１２】
この発明の更なる目的は、親機と子機とを設定するとき、比較的簡単かつ、軽い処理で設定することができるネットワークシステムを提供することである。
【００１３】
この発明のその他の目的は、親機の離脱に伴って新しくネットワークを構築するために親機を決める自由度を持たせたネットワークシステムを提供することである。
【００１４】
この発明の他の目的は、ネットワークを再構築するとき、より確実に親機が決まるようにしたネットワークシステムを提供することである。
【００１５】
この発明の他の目的は、ネットワークを再構築するときに、消滅した親機の下でもともとネットワークを構築していた子機の中でネットワークが再構築できるようにしたネットワークシステムを提供することである。
【００１６】
この発明のその他の目的は、もともとネットワークを構築していた子機の中でネットワークが再構築できなくても、別のネットワークの親機に接続することが可能なネットワークシステムを提供することである。
【課題を解決するための手段】
【００１７】
上記課題を解決するために、本発明は以下の構成を採用した。なお、括弧内の参照符号および図番号は、発明の理解を助けるために図面との対応関係を示したものであって、本発明の範囲を何ら限定するものではない。
【００１８】
請求項１に記載の発明は、無線通信機能を備えた複数の端末（１０）で構成され、当該複数の端末のうちの１台がネットワーク内のデータ転送タイミングを制御する親機として動作し、残りの端末が当該親機の制御下で当該親機との間でデータ転送を実行する子機として動作する無線ネットワークシステムである。
各前記端末は、親機検索手段（２１、４３）、仮親処理手段（２１、４４）、切替手段（２１、４５）、子処理手段（２１、４２）および親処理手段（２１、４１）を備える。親機検索手段は、親機または仮親機として動作中の他端末を検索する手段である。仮親処理手段は、自端末を仮親機として動作させる手段である。切替手段は、自端末と他端末との間でネットワークが構築されていないときに、前記親機検索手段と前記仮親処理手段を交互に切り替えて能動化する手段である（図４）。子処理手段は、前記親機検索手段によって親機または仮親機の存在が検知されたことに応じて、当該検知された親機または仮親機に対する子機として自端末を動作させる手段である。親処理手段は、自端末が前記仮親処理手段によって仮親機として動作している期間中に親機または仮親機を検索している他端末の存在が検知されたことに応じて、自端末を親機として動作させる手段である。
ここで、「自端末と他端末との間でネットワークが構築されていないとき」とは、端末の電源を投入した直後の状態や、端末が所属していたネットワークから親機が離脱してしまってネットワークが消滅した直後の状態を含む。
【００１９】
請求項２に記載の発明は、請求項１に記載の発明において、前記切替手段は、前記親機検索手段と前記仮親処理手段を交互に切り替えて能動化するときに、前記親機検索手段を能動化する期間と前記仮親処理手段を能動化する期間の一方もしくは両方をランダムに設定することを特徴とする。
【００２０】
請求項３に記載の発明、請求項１に記載の発明において、各前記端末は、親機または仮親機として動作中に、自身が親機または仮親機として動作中であることを示す情報を少なくとも含むビーコン信号を一定周期で送出し、前記親機検索手段は、他端末から送出されたビーコン信号を受信することによって親機または仮親機の存在を検知することを特徴とする。
【００２１】
請求項４に記載の発明は、請求項１に記載の発明において、各前記端末は、自身が子機として動作しているときに自身が所属するネットワークから親機が離脱したかどうかを判定する親機離脱判定手段（２１、４７）をさらに備え、前記切替手段は、前記親機離脱判定手段によって親機がネットワークから離脱したと判定されたときに前記切替動作を自動的に開始することを特徴とする。
なお、ネットワークから親機が離脱したかどうかを判定する方法としては公知の任意の方法を採用することができる。例えば、親機から発信されるビーコン信号が受信されなくなったときにネットワークから親機が離脱したと判定してもよいし、親機がネットワークから離脱するときに親機から子機に向けてその旨を通知する信号を送信し、子機側ではその信号を受信することによってネットワークから親機が離脱したと判定してもよい。
【００２２】
請求項５に記載の発明は、請求項４に記載の発明において、各前記端末は、他端末との間でネットワークが構築されているときに、当該ネットワークに所属する他端末を識別するための識別情報を受信して保持する識別情報保持手段（２１、４８）をさらに備え、前記親機検索手段は、前記識別情報保持手段が保持している識別情報に基づいて、前記ネットワークに所属していた他端末であってかつ親機または仮親機として動作中の他端末だけを検索することを特徴とする。
【００２３】
請求項６に記載の発明は、請求項５に記載の発明において、前記親機検索手段は、前記親機離脱判定手段によって親機が前記ネットワークから離脱したと判定されてから予め定められた一定時間が経過後は、前記ネットワークに所属していた他端末に限らず、親機または仮親機として動作中の他端末を検索することを特徴とする。
【００２４】
請求項７に記載の発明は、請求項５に記載の発明において、前記識別情報は、前記ネットワークに所属する他端末のＭＡＣアドレスのリストであることを特徴とする。
【００２５】
請求項８に記載の発明は、請求項７に記載の発明において、各前記端末は、親機または仮親機として動作中に、自身のＭＡＣアドレスを少なくとも含むビーコン信号を一定周期で送出し、前記親機検索手段は、親機または仮親機として動作中の他端末の存在を検知したときに、当該他端末から送出されたビーコン信号に含まれる当該他端末のＭＡＣアドレスと前記識別情報保持手段が保持しているＭＡＣアドレスリストとを照合することによって、当該他端末が、自端末が直前に所属していたネットワークに所属していた他端末かどうかを判別することを特徴とする。
【００２６】
請求項９に記載の発明は、請求項４に記載の発明において、各前記端末は、他端末との間でネットワークが構築されているときに、当該ネットワークに所属する他端末の個体番号のリストを受信して保持する個体番号保持手段（２１、４８）をさらに備え、前記切替手段は、前記親機離脱判定手段によって親機が前記ネットワークから離脱したと判定されたときに、前記個体番号保持手段が保持している個体番号リストと自端末の個体番号とを比較し、当該比較結果に基づいて前記親機検索手段を最初に能動化する期間を設定することを特徴とする。
【００２７】
請求項１０に記載の発明は、請求項９に記載の発明において、前記個体番号は端末のＭＡＣアドレスであることを特徴とする。
【発明の効果】
【００２８】
請求項１に記載の発明によれば、新たに一からネットワークを構築したり、親機の離脱によって消滅したネットワークを再構築したりするときに、どの端末が親機として動作し、どの端末が子機として動作するかは不定であるので、常に特定の端末を親機として機能させる場合と比較して、１台の親機と１台以上の子機から成る無線ネットワークをより柔軟に構築することができる。
【００２９】
請求項２に記載の発明によれば、どの端末が親機として動作し、どの端末が子機として動作するかがランダムに決まるので、親機としての動作のための処理負担が特定の端末に集中することを避けられる。
【００３０】
請求項３に記載の発明によれば、無線ネットワークシステムで一般的に利用されているビーコン信号を用いて親機または仮親機の存在を検知することが可能となる。
【００３１】
請求項４に記載の発明によれば、ネットワークから親機が離脱することによってネットワークが消滅したとしても、自動的にネットワークを再構築することができる。
【００３２】
請求項５に記載の発明によれば、ネットワークから親機が離脱することによってネットワークが消滅したときに、そのネットワークに所属していた子機間でネットワークを再構築することができる。
【００３３】
請求項６に記載の発明によれば、ネットワークから親機が離脱することによってネットワークが消滅したときに、たとえそのネットワークに所属していた子機間でネットワークを再構築することができなかった場合でも、通信可能範囲に存在する他の端末との間でネットワークを構築することができる。よって、例えば１台の親機と１台の子機から成るネットワークから親機が離脱したときでも、残された子機は、通信可能範囲に存在する他の端末との間でネットワークを自動的に構築することができる。
【００３４】
請求項７に記載の発明によれば、ＭＡＣアドレスによって各端末を確実に識別することができる。
【００３５】
請求項８に記載の発明によれば、無線ネットワークシステムで一般的に利用されているビーコン信号を用いることで、そのビーコン信号を発信している端末が、自端末が直前に所属していたネットワークに所属していた端末かどうかを容易に判別することができる。
【００３６】
請求項９に記載の発明によれば、ネットワークから親機が離脱したときに、残された子機が仮親としての動作を開始する期間が個体番号に応じてばらけるので、同時に複数の子機が仮親としての動作を開始してしまうことを回避することができる。
【００３７】
請求項１０に記載の発明によれば、ネットワークから親機が離脱したときに、残された子機が仮親としての動作を開始する期間がＭＡＣアドレスに応じて決まるので、残された子機間で、仮親としての動作を開始する期間を必ず異ならせることができる。
【発明を実施するための最良の形態】
【００３８】
以下、本発明の一実施形態に係る無線ネットワークシステムの構成および動作を説明する。
【００３９】
図１は、本発明の一実施形態に係る無線ネットワークシステムの全体構成を示している。図１の無線ネットワークシステムは、無線通信機能を備えた３台の携帯型のゲーム装置で構成され、これらの３台のゲーム装置のうちの１台がネットワーク内のデータ転送タイミングを制御する親機として動作し、残りの２台のゲーム装置が親機の制御下で親機との間でデータ転送を実行する子機（子機１、子機２）として動作する。なお、ここでは無線ネットワークシステムが３台のゲーム装置で構成される例を説明するが、本発明はこれに限らず、無線ネットワークシステムが２台または４台以上のゲーム装置で構成されてもよい。また、携帯型のゲーム装置に限らず、無線通信機能を備えた任意の情報処理端末で無線ネットワークシステムを構成してもよい。
【００４０】
図２は、図１の無線ネットワークシステムを構成するゲーム装置の外観図である。図２において、ゲーム装置１０は、第１のＬＣＤ（Ｌｉｑｕｉｄ  Ｃｒｙｓｔａｌ  Ｄｉｓｐｌａｙ：液晶表示装置）１１および第２のＬＣＤ１２を含む。ハウジング１３は上側ハウジング１３ａと下側ハウジング１３ｂとによって構成されており、第１のＬＣＤ１１は上側ハウジング１３ａに収納され、第２のＬＣＤ１２は下側ハウジング１３ｂに収納される。第１のＬＣＤ１１および第２のＬＣＤ１２の解像度はいずれも２５６ｄｏｔ×１９２ｄｏｔである。なお、本実施形態では表示装置としてＬＣＤを用いているが、例えばＥＬ（Ｅｌｅｃｔｒｏ  Ｌｕｍｉｎｅｓｃｅｎｃｅ：電界発光）を利用した表示装置など、他の任意の表示装置を利用することができる。また任意の解像度のものを利用することができる。
【００４１】
上側ハウジング１３ａには、後述する１対のスピーカ（図３の３０ａ、３０ｂ）からの音を外部に放出するための音抜き孔１８ａ、１８ｂが形成されている。
【００４２】
下側ハウジング１３ｂには、入力装置として、十字スイッチ１４ａ、スタートスイッチ１４ｂ、セレクトスイッチ１４ｃ、Ａボタン１４ｄ、Ｂボタン１４ｅ、Ｘボタン１４ｆ、Ｙボタン１４ｇ、Ｌボタン１４ＬおよびＲボタン１４Ｒが設けられている。また、さらなる入力装置として、第２のＬＣＤ１２の画面上にタッチパネル１５が装着されている。また、下側ハウジング１３ｂには、電源スイッチ１９や、メモリカード１７やスティック１６を収納するための挿入口も設けられている。スティック１６は、タッチパネル１５に対する入力操作に用いられる。
【００４３】
メモリカード１７はゲームプログラムおよび無線通信プログラムを記録した記録媒体であり、下部ハウジング１３ｂに設けられた挿入口に着脱自在に装着される。
【００４４】
次に、図３を参照してゲーム装置１０の内部構成を説明する。
【００４５】
図３において、ハウジング１３に収納される電子回路基板２０には、ＣＰＵコア２１が実装される。ＣＰＵコア２１には、バス２２を介して、コネクタ２３が接続されるとともに、入出力インターフェース回路（図面ではＩ／Ｆ回路と記す）２５、第１ＧＰＵ（Ｇｒａｐｈｉｃｓ  Ｐｒｏｃｅｓｓｉｇ  Ｕｎｉｔ）２６、第２ＧＰＵ２７、ＲＡＭ２４、ＬＣＤコントローラ３１およびワイヤレス通信部３３が接続される。コネクタ２３には、メモリカード１７が着脱自在に接続される。メモリカード１７は、ゲームプログラムおよび無線通信プログラムを記憶するＲＯＭ１７ａと、バックアップデータを書き換え可能に記憶するＲＡＭ１７ｂを搭載する。メモリカード１７のＲＯＭ１７ａに記憶されたゲームプログラムおよび無線通信プログラムはＲＡＭ２４にロードされ、ＲＡＭ２４にロードされたゲームプログラムおよび無線通信プログラムがＣＰＵコア２１によって実行される。ＲＡＭ２４には、ゲームプログラムおよび無線通信プログラムの他にも、ＣＰＵコア２１がゲームプログラムを実行して得られる一時的なデータや、ゲーム画像を生成するためのデータが記憶される。Ｉ／Ｆ回路２５には、タッチパネル１５、右スピーカ３０ａ、左スピーカ３０ｂおよび図２の十字スイッチ１４ａやＡボタン１４ｄ等から成る操作スイッチ部１４が接続される。右スピーカ３０ａと左スピーカ３０ｂは、音抜き孔１８ａ、１８ｂの内側にそれぞれ配置される。
【００４６】
なお、本実施形態ではゲーム装置１０はＣＰＵコアを１つだけ備えているが、これに限らず、ゲーム装置に複数のＣＰＵコアを設けて、本実施形態におけるＣＰＵコア２１の処理をそれらの複数のＣＰＵコアで分担するようにしても構わない。
【００４７】
第１ＧＰＵ２６には、第１ＶＲＡＭ（Ｖｉｄｅｏ  ＲＡＭ）２８が接続され、第２ＧＰＵ２７には、第２ＶＲＡＭ２９が接続される。第１ＧＰＵ２６は、ＣＰＵコア２１からの指示に応じて、ＲＡＭ２４に記憶されているゲーム画像を生成するためのデータに基づいて第１のゲーム画像を生成し、第１ＶＲＡＭ２８に描画する。第２ＧＰＵ２７は、同様にＣＰＵコア２１からの指示に応じて第２のゲーム画像を生成し、第２ＶＲＡＭ２９に描画する。第１ＶＲＡＭ２８および第２ＶＲＡＭ２９はＬＣＤコントローラ３１に接続されている。
【００４８】
ＬＣＤコントローラ３１はレジスタ３２を含む。レジスタ３２はＣＰＵコア２１からの指示に応じて０または１の値を記憶する。ＬＣＤコントローラ３１は、レジスタ３２の値が０の場合は、第１ＶＲＡＭ２８に描画された第１のゲーム画像を第１のＬＣＤ１１に出力し、第２ＶＲＡＭ２９に描画された第２のゲーム画像を第２のＬＣＤ１２に出力する。また、レジスタ３２の値が１の場合は、第１ＶＲＡＭ２８に描画された第１のゲーム画像を第２のＬＣＤ１２に出力し、第２ＶＲＡＭ２９に描画された第２のゲーム画像を第１のＬＣＤ１１に出力する。
【００４９】
ワイヤレス通信部３３は、他のゲーム装置のワイヤレス通信部３３との間で、ゲーム処理に利用されるデータやその他のデータをやりとりする機能を有しており、本実施形態では、一例としてＩＥＥＥ８０２．１１の無線ＬＡＮ規格に則った無線通信機能を提供するワイヤレス通信部を利用するものとする。
【００５０】
なお、上記のようなゲーム装置１０の構成は単なる一例に過ぎない。また、本発明のゲームプログラムおよび無線通信プログラムは、メモリカード１７などの外部記憶媒体を通じてゲーム装置１０に供給されるだけでなく、有線または無線の通信回線を通じてゲーム装置１０に供給されてもよいし、さらにはゲーム装置１０の内部の不揮発性記憶装置に予め記録されていてもよい。
【００５１】
以下、ゲーム装置１０の動作について説明する。
【００５２】
ゲーム装置１０は、ネットワーク内のデータ転送タイミングを制御する親機として動作することができ、なおかつ親機の制御下で親機との間でデータ転送を実行する子機としても動作することができる。すなわち、ゲーム装置１０は親機としての機能と子機としての機能の両方を備えている。
【００５３】
図４は、無線ネットワークに接続しようとするときのゲーム装置１０の動作を示している。ゲーム装置１０は、プレイヤやアプリケーションソフトからの無線ネットワークへの接続要求に応答して、親機検索と仮親処理を交互に実行する。このとき、親機検索の期間と仮親処理の期間はいずれも１〜４秒の間でランダムに設定される。ただし、１〜４秒の範囲は単なる一例であって、後述するビーコン信号の発信周期やその他の条件を考慮して適当な範囲に設定すればよい。図４の例では、初回の親機検索期間は２秒に設定され、それに続く仮親処理期間は２秒に設定され、２回目の親機検索期間は４秒に設定され、２回目の仮親処理期間は２秒に設定されている。
【００５４】
親機検索期間とは、親機もしくは仮親機として動作している他のゲーム装置を検索する期間である。仮親処理期間とは、仮親機として動作する期間である。
【００５５】
図５を参照して、あるゲーム装置が既存の無線ネットワークに接続する際の動作を説明する。図５において、ゲーム装置１０ａとゲーム装置１０ｂは無線ネットワークを構成しており、ゲーム装置１０ａが親機として、ゲーム装置１０ｂが子機として動作しているものとする。親機として動作しているゲーム装置（ここではゲーム装置１０ａ）からは、２００ミリ秒の周期でビーコン信号が発信されている。このビーコン信号には、ビーコン信号を発信しているゲーム装置が通信に利用しているＭＡＣアドレスと、自身が親機であることを示す情報が少なくとも含まれている。このような状態で、ゲーム装置１０ａのビーコン信号が届く範囲内でゲーム装置１０ｃにおいて無線ネットワークへの接続要求が発生すると、ゲーム装置１０ｃは図４に示すようにまず親機検索を開始する。この親機検索は少なくとも１秒以上行われるので、ゲーム装置１０ｃは、ゲーム装置１０ａから２００ミリ秒周期で発信されるビーコン信号を、初回の親機検索期間において確実に受信することができる。ビーコン信号を受信すると、ゲーム装置１０ｃは、このビーコン信号に含まれているＭＡＣアドレスに基づいてゲーム装置１０ａに接続要求信号を送信することによって、ゲーム装置１０ａとゲーム装置１０ｂとで構成されていた無線ネットワークに新たに加わることができる。接続要求信号には、その発信元のゲーム装置のＭＡＣアドレスが含まれている。
【００５６】
次に、３つのゲーム装置１０ａ〜１０ｃがいずれも無線ネットワークに未参加の状態で、各ゲーム装置１０ａ〜１０ｃにおいて同時に無線ネットワークへの接続要求が発生した場合の各ゲーム装置１０ａ〜１０ｃ例を説明する。
【００５７】
各ゲーム装置１０ａ〜１０ｃにおいて同時に無線ネットワークへの接続要求が発生した場合も、各ゲーム装置１０ａ〜１０ｃの動作は基本的に図４と同じである。すなわち、図６に示すように、各ゲーム装置１０ａ〜１０ｃは、親機検索と仮親処理を交互に実行し、親機検索の期間と仮親処理の期間はいずれも１〜４秒の間でランダムに設定される。図６の例では、ゲーム装置１０ａの初回の親機検索期間は１秒に設定されており、ゲーム装置１０ｂの初回の親機検索期間は４秒に設定されており、ゲーム装置１０ｃの初回の親機検索期間は２秒に設定されている。
【００５８】
図７Ａは、各ゲーム装置１０ａ〜１０ｃにおいて無線ネットワークへの接続要求が発生した直後の様子を示している。このとき、各ゲーム装置１０ａ〜１０ｃは、親機もしくは仮親機から発信されるビーコン信号を受信することができないので、しばらく親機検索を続けることになる。
【００５９】
図７Ａの状態から１秒経過すると、ゲーム装置１０ａの初回の親機検索期間（１秒間）が終了し、図７Ｂのようにゲーム装置１０ａは親機検索を止めて仮親処理を開始する。仮親処理期間ではゲーム装置１０ａは仮親機として動作し、親機と同様にビーコン信号を発信する。このビーコン信号には、ビーコン信号を発信しているゲーム装置が通信に利用しているＭＡＣアドレスと、自身が仮親機であることを示す情報が少なくとも含まれている。
【００６０】
ゲーム装置１０ａがビーコン信号の発信を開始した時点では、ゲーム装置１０ｂ、１０ｃはまだ親機検索中である。よってゲーム装置１０ｂ、１０ｃは、ゲーム装置１０ａが発信したビーコン信号を受信し、ビーコン信号に含まれているゲーム装置１０ａのＭＡＣアドレスに基づいて、仮親機であるゲーム装置１０ａに対して接続要求信号を送信する。
【００６１】
ゲーム装置１０ａは、ゲーム装置１０ｂ、１０ｃからの接続要求信号を受信すると、図６のような親機検索と仮親処理を交互に繰り返す動作を中止し、ゲーム装置１０ａ〜１０ｃで構成される無線ネットワークの親機としての動作を開始する。また、ゲーム装置１０ｂ、１０ｃは、図６のような親機検索と仮親処理を交互に繰り返す動作を中止し、ゲーム装置１０ａ〜１０ｃで構成される無線ネットワークの子機としての動作を開始する。こうして図７Ｃのような無線ネットワークが構築される。なお、この例では、３台のゲーム装置１０ａ〜１０ｃの中でゲーム装置１０ａが最初に仮親処理を開始したのでゲーム装置１０ａが親機となったが、前述したように親機検索期間はゲーム装置毎にランダムに設定されるため、一般的には、どのゲーム装置が親機となるかはランダムに決まることになる。
【００６２】
なお、図７Ｃのような無線ネットワークが構築された後、いずれかのゲーム装置がネットワークから離脱することがある。例えば、ゲーム装置１０ｂは、プレイヤやアプリケーションソフトによってネットワークからの離脱を要求されたり、ゲーム装置１０ｂの電源が切られたり、ゲーム装置１０ａとの距離が通信可能範囲を超えたりした場合に、無線ネットワークから離脱することになる。同様に、ゲーム装置１０ａは、プレイヤやアプリケーションソフトによってネットワークからの離脱を要求されたり、ゲーム装置１０ａの電源が切られたり、ゲーム装置１０ｂ、１０ｃとの距離がいずれも通信可能範囲を超えたりした場合に、無線ネットワークから離脱することになる。子機がネットワークから離脱する場合には、親機がネットワークに残っているので、無線ネットワーク自体が消滅してしまうことはなく、残った親機と子機の間でネットワークが維持される。しかしながら、親機がネットワークから離脱する場合には、無線ネットワーク自体が消滅してしまうことになる。以下、図７Ｃの状態から親機であるゲーム装置１０ａがネットワークから離脱した場合のゲーム装置１０ｂ、１０ｃの動作について説明する。
【００６３】
図８Ａは、図７Ｃの状態から親機であるゲーム装置１０ａがネットワークから離脱した直後の様子を示している。ゲーム装置１０ｂ、１０ｃは、ゲーム装置１０ａがネットワークから離脱したことを検知すると、再びネットワークを構築すべく、図４と同様に親機検索と仮親処理を交互に実行する。このとき、親機検索の期間と仮親処理の期間はいずれも１〜４秒の間でランダムに設定される。
【００６４】
ゲーム装置１０ａがネットワークから離脱したときに、ゲーム装置１０ｂ（またはゲーム装置１０ｃ）と通信可能な範囲に親機もしくは仮親機として動作中の他のゲーム装置（以下ではゲーム装置Ｘと記す）が存在していた場合には、ゲーム装置１０ｂ（またはゲーム装置１０ｃ）は初回の親機検索期間においてゲーム装置Ｘが発信しているビーコン信号を受信し、ゲーム装置Ｘに対して接続要求信号を送信する。こうして、ゲーム装置１０ｂ（またはゲーム装置１０ｃ）は、ゲーム装置Ｘを親機とした他の無線ネットワークに接続することになる。
【００６５】
一方、ゲーム装置１０ａがネットワークから離脱したときに、ゲーム装置１０ｂ、１０ｃと通信可能な範囲に親機もしくは仮親機として動作中の他のゲーム装置が１台も存在していなかった場合には、ゲーム装置１０ｂ、１０ｃは、親機もしくは仮親機から発信されるビーコン信号を受信することができないので、しばらく親機検索を続けることになる。そして図８Ａの状態から１秒経過すると、ゲーム装置１０ｂの初回の親機検索期間（１秒間）が終了し、図８Ｂのようにゲーム装置１０ｂは親機検索を止めて仮親処理を開始する。仮親処理期間ではゲーム装置１０ｂは仮親機として動作し、ビーコン信号を発信する。ゲーム装置１０ｂがビーコン信号の発信を開始した時点では、ゲーム装置１０ｃはまだ親機検索中である。よってゲーム装置１０ｃは、ゲーム装置１０ｂが発信したビーコン信号を受信し、ビーコン信号に含まれているゲーム装置１０ｂのＭＡＣアドレスに基づいて、仮親機であるゲーム装置１０ｂに対して接続要求信号を送信する。ゲーム装置１０ｂは、ゲーム装置１０ｃからの接続要求信号を受信すると、親機検索と仮親処理を交互に繰り返す動作を中止し、ゲーム装置１０ｂ、１０ｃで構成される無線ネットワークの親機としての動作を開始する。また、ゲーム装置１０ｃは、親機検索と仮親処理を交互に繰り返す動作を中止し、ゲーム装置１０ｂ、１０ｃで構成される無線ネットワークの子機としての動作を開始する。こうして、ゲーム装置１０ｂを親機として、ゲーム装置１０ｂ、１０ｃから成る無線ネットワークが構築される。なお、この例では、２台のゲーム装置１０ｂ、１０ｃの中でゲーム装置１０ｂが最初に仮親処理を開始したのでゲーム装置１０ｂが親機となったが、前述したように親機検索期間はゲーム装置毎にランダムに設定されるため、一般的には、どちらのゲーム装置が親機となるかはランダムに決まることになる。
【００６６】
なお、上記の例では、図８Ａにおいてゲーム装置１０ａがネットワークから離脱したときに、ゲーム装置１０ｂ（またはゲーム装置１０ｃ）と通信可能な範囲に親機もしくは仮親機として動作中の他のゲーム装置Ｘが存在していた場合に、ゲーム装置１０ｂ（またはゲーム装置１０ｃ）は、ゲーム装置Ｘを親機とした他の無線ネットワークに接続するとした。しかしながら、ゲームの内容によっては、親機がネットワークから離脱したときに、他の無線ネットワークに接続するよりも、むしろ同じネットワークに所属していた子機同士（図８Ａの例ではゲーム装置１０ｂ、１０ｃ）でネットワークを再構築する方が好ましいケースもある。例えば、無線ネットワークを通じてプレイヤ同士がメッセージをやりとりすることのできるチャット機能を備えたゲームの場合には、親機がネットワークから離脱した場合でも引き続き同じメンバーでメッセージのやりとりを続けたいという要望がある。以下、図９Ａ〜図９Ｃを参照して、親機がネットワークから離脱したときに、同じネットワークに所属していた子機同士でネットワークを再構築する例を説明する。
【００６７】
図９Ａは、図７Ｃの状態から親機であるゲーム装置１０ａがネットワークから離脱した直後の様子を示している。図９Ａが図８Ａと異なる点は、ゲーム装置１０ｂ、１０ｃが、ゲーム装置１０ｂ、１０ｃのＭＡＣアドレスを含むＭＡＣアドレスリストを保有している点と、ゲーム装置１０ｂ、１０ｃの近くに親機または仮親機として動作中のゲーム装置１０ｄが存在している点である。
【００６８】
図９ＡのＭＡＣアドレスリストは、消滅前のネットワークに所属していた全子機のＭＡＣアドレスをリスト化したものであって、親機であるゲーム装置１０ａがネットワークからまだ離脱していないときに、親機であるゲーム装置１０ａから子機であるゲーム装置１０ｂ、１０ｃへ送信されたものである。親機から子機へのＭＡＣアドレスリストの送信は、例えば一定の周期で定期的に行われてもよいし、新たなゲーム装置がネットワークに参加したときなどのように、ネットワーク構成が変化する都度行われてもよい。
【００６９】
図７Ｃの状態から親機であるゲーム装置１０ａがネットワークから離脱すると、ゲーム装置１０ｂ、１０ｃは図９Ａのように親機検索を開始する。このとき、ゲーム装置１０ｄはビーコン信号を発信しているので、ゲーム装置１０ｂ、１０ｃはそのビーコン信号を受信することになる。ビーコン信号を受信すると、ゲーム装置１０ｂ、１０ｃは、ビーコン信号に含まれているＭＡＣアドレス（すなわちゲーム装置１０ｄのＭＡＣアドレス）が、自身が保有しているＭＡＣアドレスリストに含まれているかどうかを判定する。ここでは、ビーコン信号に含まれているＭＡＣアドレスはＭＡＣアドレスリストに含まれていないため、ゲーム装置１０ｂ、１０ｃはゲーム装置１０ｄを無視し、引き続き親機検索を続ける。
【００７０】
図９Ａの状態から１秒が経過すると、ゲーム装置１０ｂの初回の親機検索期間（１秒間）が終了し、図９Ｂのようにゲーム装置１０ｂは親機検索を止めて仮親処理を開始する。この時点ではゲーム装置１０ｃはまだ親機検索中である。よってゲーム装置１０ｃは、ゲーム装置１０ｂが発信したビーコン信号を受信し、ビーコン信号に含まれているＭＡＣアドレス（すなわちゲーム装置１０ｂのＭＡＣアドレス）が、自身が保有しているＭＡＣアドレスリストに含まれているかどうかを判定する。ここでは、ビーコン信号に含まれているＭＡＣアドレスがＭＡＣアドレスリストに含まれているため、仮親機であるゲーム装置１０ｂに対して接続要求信号を送信する。ゲーム装置１０ｂは、ゲーム装置１０ｃからの接続要求信号を受信すると、親機検索と仮親処理を交互に繰り返す動作を中止し、ゲーム装置１０ｂ、１０ｃで構成される無線ネットワークの親機としての動作を開始する。また、ゲーム装置１０ｃは、親機検索と仮親処理を交互に繰り返す動作を中止し、ゲーム装置１０ｂ、１０ｃで構成される無線ネットワークの子機としての動作を開始する。こうして、ゲーム装置１０ｂを親機として、ゲーム装置１０ｂ、１０ｃから成る無線ネットワークが構築される。
【００７１】
なお、本実施形態では、ビーコン信号を発信しているゲーム装置が、親機が離脱する直前に同じネットワークに所属していた子機かどうかを識別するためにＭＡＣアドレスを利用しているが、ゲーム装置を相互に識別することができるような任意の識別情報をＭＡＣアドレスの代わりに利用してもよい。
【００７２】
以上のように、ネットワークに所属している子機のＭＡＣアドレスリストを保有しておくことによって、親機がネットワークから離脱したときでも、同じネットワークに所属していた子機同士でネットワークを再構築することができる。ただし、この方法では、図１０Ａのようにゲーム装置１０ａ、１０ｃが同時に離脱した場合（例えば、ゲーム装置１０ａ、１０ｃの電源が同時に切れた場合や、ゲーム装置１０ａ、１０ｃとの通信可能範囲外にゲーム装置１０ｂが移動してしまった場合など）に、ゲーム装置１０ｂは、親機検索と仮親処理を何度繰り返してもネットワークに接続できないという問題がある。２台のゲーム装置で構成されたネットワークから親機が離脱した場合にも同様の問題が発生する。そこで、このような問題が発生しないように、ネットワークが消滅してから一定時間（例えば４秒）だけは、ＭＡＣアドレスリストを利用して、消滅したネットワークに所属していた子機同士でネットワークを再構築することを試み、ネットワークが消滅してから一定時間が経過後は、消滅したネットワークに所属していた子機に限らず、通信可能範囲に存在する親機または仮親機に接続するようにしてもよい。図１０Ａの例では、ゲーム装置１０ｂは初回の親機検索期間（３秒間）ではゲーム装置１０ｄを無視するが、ネットワークが消滅してから４秒経過後の親機検索期間では、ゲーム装置１０ｄからのビーコン信号を受信するとゲーム装置１０ｄに対して接続要求信号を送信する。その結果、図１０Ｂのように、ゲーム装置１０ｂはゲーム装置１０ｄを親機とした無線ネットワークに参加することになる。
【００７３】
なお、本実施形態では、前述のように親機検索期間と仮親処理期間がランダムに設定されるが、ランダムであるからには、複数のゲーム装置において初回の親機検索期間が同じ時間に設定されてしまう可能性がわずかに存在する。仮に複数のゲーム装置において初回の親機検索期間が同じ時間に設定されてしまうと、同時に複数のゲーム装置が仮親処理を開始することになり、何の対策も講じなければ、それら複数のゲーム装置をそれぞれ親機とした複数のネットワークが生じてしまう可能性がある。対策の例としては、親機検索中のゲーム装置が複数の親機もしくは仮親機を検知したときには、それらの複数の親機もしくは仮親機のうち、ＭＡＣアドレスの値が最も大きいゲーム装置に対してのみ接続要求信号を送信することが挙げられる。また、別の例としては、親機検索中のゲーム装置が複数の親機もしくは仮親機を検知したときには、いずれの親機もしくは仮親機にも接続要求を送信せず、１台の親機もしくは仮親機だけが検知されるタイミングまで待ってから、その親機もしくは仮親機に接続要求を送信することが挙げられる。しかしながら、このような対策を講じても、この対策のためにゲーム装置の処理負担が増えたり、場合によってはネットワークの構築に時間がかかったりする問題がある。したがって、複数のゲーム装置において初回の親機検索期間がなるべく同じ時間に設定されないようにするのが好ましい。以下、図１１および図１２を参照して、そのような好ましい実施形態について説明する。
【００７４】
この実施形態では、図１０Ａに示したＭＡＣアドレスリストを利用することによって、複数のゲーム装置において初回の親機検索期間が同じ時間に設定されないようにする。具体的には、親機がネットワークから離脱したときに、各子機は、ＭＡＣアドレスリストに含まれているＭＡＣアドレスをその値に基づいて（例えば値の大きい順に）ソートし、ソート結果における自機のＭＡＣアドレスの順位を計算する。そして、計算されたＭＡＣアドレス順位から、図１１のようなテーブルもしくは計算式を利用して、初回の親機検索期間を決定する。ここで、異なるＭＡＣアドレス順位に対しては異なる親機検索期間が割り当てられているので、複数のゲーム装置において初回の親機検索期間が同じ時間に設定されることはない。親機がネットワークから離脱したときの各子機の動作を図１２に示す。図１２において、各ゲーム装置の初回の親機検索期間はＭＡＣアドレス順位に応じて決定されるが、その後の仮親処理期間および親機検索期間（２回目以降の親機検索期間）は、図４の場合と同様に１〜４秒の範囲でランダムに設定される。
【００７５】
なお、本実施形態では、ＭＡＣアドレスに基づいてゲーム装置をソートしているが、ゲーム装置に割り当てられた任意の個体番号（ＭＡＣアドレス、シリアル番号、ＩＰアドレスなど）に基づいてゲーム装置をソートして自ゲーム装置の順位を求めてもよい。
【００７６】
次に、図１３のメモリマップおよび図１４〜図１８のフローチャートを参照して、上記のようなゲーム装置の動作をソフトウェア（無線通信プログラム）によって実現する場合のＣＰＵコア２１の処理手順を説明する。なお、これらのフローチャートは、ＣＰＵコア２１が実行すべき処理のうち、無線通信に係る部分のみを示している。実際には、ＣＰＵコア２１は、ゲームプログラムに基づく処理と無線通信プログラムに基づく処理を並行して実行することができ、ゲーム処理に必要なデータを無線通信によって他のゲーム装置と適宜にやりとりしてゲーム処理を進めることができる。
【００７７】
図１３は、ＲＡＭ２４のメモリマップである。ＲＡＭ２４の記憶領域は、大きく分けるとプログラム記憶領域とデータ記憶領域に区分される。
【００７８】
プログラム記憶領域には、メモリカード１７のＲＯＭ１７ａから読み出されたゲームプログラムおよび無線通信プログラムが格納される。無線通信プログラムは、一例として、親処理プログラム４１、子処理プログラム４２、親機検索プログラム４３、仮親処理プログラム４４、切替プログラム４５、親機離脱判定プログラム４７および識別情報保持プログラム４８を含んでいる。また、切替プログラム４５は、親機検索期間決定プログラム４６を含んでいる。なお、ここでは無線通信プログラムが単機能をそれぞれ実現する複数のプログラムで構成されるとしたが、本発明はこれに限らない。
【００７９】
親処理プログラム４１は、ゲーム装置１０を親機として動作させるためのプログラムである。子処理プログラム４２は、ゲーム装置１０を子機として動作させるためのプログラムである。親機検索プログラム４３は、ゲーム装置１０に親機検索を行わせるためのプログラムである。仮親処理プログラム４４は、ゲーム装置１０に仮親処理を行わせるためのプログラムである。切替プログラム４５は、ゲーム装置１０の親機検索動作と仮親処理動作の切り替えタイミングを制御するためのプログラムであって、例えば親機検索期間と仮親処理期間をランダムに設定する処理を含んでいる。親機検索期間決定プログラム４６は、図１１および図１２を参照して説明したような、ＭＡＣアドレスリストに基づいて初回の親機検索期間を設定するためのプログラムである。親機離脱判定プログラム４７は、ネットワークから親機が離脱したかどうかを判定するためのプログラムである。識別情報保持プログラム４８は、ＭＡＣアドレスリストを親機から受信してＲＡＭ２４内に保持しておくためのプログラムである。
【００８０】
データ記憶領域は、ゲームプログラムで利用されるゲームデータが記憶される。また、データ記憶領域は、他のゲーム装置に送信すべきデータを一時的に記憶するための送信データバッファや、他のゲーム装置から受信したデータを一時的に記憶するための受信データバッファとしても利用される。また、データ記憶領域には、前述の識別情報保持プログラム４８によって親機から取得されたＭＡＣアドレスリストを記憶するためのＭＡＣアドレスリスト記憶領域４９が設けられている。
【００８１】
図１４において、無線通信プログラムが開始されると、ＣＰＵコア２１はステップＳ１０で、ゲームプログラムまたはプレイヤからネットワーク接続要求があったかどうかを判断する。ネットワーク接続要求がなければ、ネットワーク接続要求があるまで待機し、ネットワーク接続要求があればステップＳ１２に進む。
【００８２】
ステップＳ１２では、親機検索期間を１〜４秒の範囲でランダムに設定する。ここで決定した親機検索期間は、ＲＡＭ２４内の適当な領域に記憶しておく。
【００８３】
ステップＳ１４では、親機検索を行う。この親機検索の詳細については後ほど図１５を参照して説明する。
【００８４】
ステップＳ１６では、仮親処理期間を１〜４秒の範囲でランダムに設定する。ここで決定した仮親処理期間も、ＲＡＭ２４内の適当な領域に記憶しておく。
【００８５】
ステップＳ１８では、仮親処理を行う。この仮親処理の詳細については後ほど図１６を参照して説明する。
【００８６】
以上のように、ステップＳ１２〜Ｓ１８を繰り返すことにより、図４に示したようなゲーム装置の動作が実現される。
【００８７】
次に、図１４のステップＳ１４の親機検索の詳細について図１５を参照して説明する。
【００８８】
図１５のステップＳ２０では、ＣＰＵコア２１は、他のゲーム装置（親機または仮親機として動作中のゲーム装置）からビーコン信号を受信したかどうか判断する。そして、ビーコン信号を受信していない場合にはステップＳ２２に進み、ビーコン信号を受信した場合にはステップＳ２４に進む。
【００８９】
ステップＳ２２では、図１４のステップＳ１２でランダムに設定された親機検索期間（もしくは後述する図１７のステップＳ５２でＭＡＣアドレス順位に応じて設定された親機検索期間）が終了したかどうかを判断する。そして、親機検索期間がまだ終了していない場合にはステップＳ２０に戻り、親機検索期間が終了した場合には図１４のステップＳ１６に進む。
【００９０】
ステップＳ２４では、後述する図１７のステップＳ５４でカウントを開始したタイマーの値が４秒以上かどうかを判断し、タイマー値が４秒未満の場合にはステップＳ２６に進み、タイマー値が４秒以上の場合にはステップＳ３０に進む。このステップＳ２４は、図１０Ａおよび図１０Ｂを用いて説明したように、ネットワークが消滅してから一定時間だけは、消滅したネットワークに所属していた子機同士でネットワークを再構築することを試み、ネットワークが消滅してから一定時間が経過後は、消滅したネットワークに所属していた子機に限らず、通信可能範囲に存在する親機または仮親機に接続要求信号を送信するようにゲーム装置１０の動作を切り替えるためのステップである。
【００９１】
ステップＳ２６では、ＭＡＣアドレスリスト記憶領域４９にＭＡＣアドレスリストが記憶されているかどうか、さらにこのＭＡＣアドレスリストの中に他ゲーム装置のＭＡＣアドレスが含まれているかどうかを判断する。ＭＡＣアドレスリストに他ゲーム装置のＭＡＣアドレスが含まれている場合にはステップＳ２８に進み、ＭＡＣアドレスリストに他ゲーム装置のＭＡＣアドレスが含まれていない場合にはステップＳ３０に進む。
【００９２】
ステップＳ２８では、ＭＡＣアドレスリスト記憶領域４９に記憶されているＭＡＣアドレスリストの中に、受信したビーコン信号に含まれているＭＡＣアドレス（すなわちこのビーコン信号を発信したゲーム装置のＭＡＣアドレス）が含まれているかどうかを判断する。ビーコン信号内のＭＡＣアドレスがＭＡＣアドレスリストに含まれている場合にはステップＳ３０に進み、ＭＡＣアドレスリストに含まれていない場合にはステップＳ２２に進む。
【００９３】
ステップＳ３０では、受信したビーコン信号に含まれているＭＡＣアドレスに基づいて、ビーコン信号の発信元のゲーム装置に対して接続要求信号を送信する。
【００９４】
ステップＳ３２では、ビーコン信号の発信元のゲーム装置からの応答信号に基づいて、接続が成功したかどうかを判断する。接続が成功した場合には図１７の「子処理」へと進み、接続が失敗した場合にはステップＳ２２に進む。
【００９５】
次に、図１４のステップＳ１８の仮親処理の詳細について図１６を参照して説明する。
【００９６】
図１６のステップＳ３４では、ＣＰＵコア２１は、ビーコン信号の送信を開始する。
【００９７】
ステップＳ３６では、他ゲーム装置からの接続要求信号を受信したかどうかを判断する。他ゲーム装置からの接続要求信号を受信した場合にはステップＳ４２に進み、受信していない場合にはステップＳ３８に進む。
【００９８】
ステップＳ３８では、図１４のステップＳ１６で設定された仮親処理期間が終了したかどうかを判断する。仮親処理期間が終了していない場合にはステップＳ３６に戻り、仮親処理期間が終了した場合にはステップＳ４０に進む。
【００９９】
ステップＳ４０では、ビーコン信号の送信を終了する。
【０１００】
ステップＳ４２では、受信した接続要求信号の発信元である他ゲーム装置に対して応答信号を送信することによって、そのゲーム装置からの接続要求に対して応答する。応答後、図１８の「親処理」へ進む。
【０１０１】
次に、図１７を参照して、子処理の詳細を説明する。子処理は、ネットワークに所属している子機において実行される処理である。
【０１０２】
図１７のステップＳ４４では、親機がネットワークから離脱したかどうかを判断する。親機がネットワークから離脱した場合にはステップＳ５０に進み、親機がネットワークから離脱していない場合にはステップＳ４６に進む。
【０１０３】
ステップＳ４６では、親機と通信を行う。このステップには、ゲームデータの転送や、ＭＡＣアドレスリストの受信などの処理が含まれている。ＭＡＣアドレスリストを受信した場合には、このＭＡＣアドレスリストをＭＡＣアドレスリスト記憶領域４９に格納する。
【０１０４】
ステップＳ４８では、ゲームプログラムまたはプレイヤから通信終了命令を受けたかどうかを判断する。通信終了命令があった場合には無線通信プログラムによる無線通信処理を終了し、通信終了命令がない場合にはステップＳ４４に戻る。
【０１０５】
ステップＳ５０では、ＭＡＣアドレスリスト記憶領域４９に記憶されているＭＡＣアドレスリストに基づいて、自ゲーム装置のＭＡＣアドレス順位を計算する。
【０１０６】
ステップＳ５２では、ステップＳ５０で求めた自ゲーム装置のＭＡＣアドレス順位に応じて（例えば、図１１のテーブルに従って）親機検索期間を決定し、ＲＡＭ２４内の適当な領域に記憶しておく。
【０１０７】
ステップＳ５４では、タイマーのカウントを開始する。このタイマーは、親機がネットワークから離脱したことが判明してからの経過時間をカウントするものである。
【０１０８】
ステップＳ５４の後は図１５のステップＳ２０に進み、図１７のステップＳ５２で決定した親機検索期間だけ、初回の親機検索が実行されることとなる。さらに初回の親機検索が終了すると図１４のステップＳ１６に進み、それ以降、仮親処理と親機検索をそれぞれランダムに決定された期間で交互に実行することとなる。
【０１０９】
次に、図１８を参照して、親処理の詳細を説明する。親処理は、ネットワークに所属している親機において実行される処理である。
【０１１０】
図１８のステップＳ５６では、まだネットワークに参加していない他ゲーム装置からの接続要求信号を受信したかどうかを判断する。接続要求信号を受信した場合にはステップＳ５８に進み、接続要求信号を受信していない場合はステップＳ６０に進む。
【０１１１】
ステップＳ５８では、受信した接続要求信号の発信元である他ゲーム装置に対して応答信号を送信することによって、そのゲーム装置からの接続要求に対して応答する。応答後、ステップＳ６０に進む。
【０１１２】
ステップＳ６０では、子機と通信を行う。このステップには、ゲームデータの転送や、ＭＡＣアドレスリストの送信などの処理が含まれている。
【０１１３】
ステップＳ６２では、ゲームプログラムまたはプレイヤから通信終了命令を受けたかどうかを判断する。通信終了命令があった場合には無線通信プログラムによる無線通信処理を終了し、通信終了命令がない場合にはステップＳ５６に戻る。
【０１１４】
ステップＳ６４では、ビーコン信号の送信を終了し、その後、無線通信プログラムによる無線通信処理を終了する。
【０１１５】
なお、図１４〜図１８のフローチャートによる処理手順は、本発明を実施するための単なる一例の処理手順に過ぎない。
【０１１６】
なお、本実施形態では、親機検索期間と仮親処理期間をいずれもランダムに設定するとしたが、本発明はこれに限らず、親機検索期間と仮親処理期間のいずれか一方だけがランダムに設定され、残りの一方が固定であってもよい。
【０１１７】
また、本実施形態では、ゲーム装置を利用した無線ネットワークを構成する例を説明したが、これに限らず、任意の情報処理端末を利用して無線ネットワークを構成する場合に本発明を適用することができる。
【図面の簡単な説明】
【０１１８】
【図１】本発明の一実施形態に係る無線ネットワークシステムの全体構成図
【図２】無線ネットワークシステムを構成するゲーム装置の外観図
【図３】無線ネットワークシステムを構成するゲーム装置の内部構成図
【図４】ゲーム装置の動作を示す図
【図５】親機検索動作について説明するための図
【図６】ゲーム装置の動作を示す図
【図７Ａ】ネットワークを構築するときの各ゲーム装置の動作を説明するための図
【図７Ｂ】ネットワークを構築するときの各ゲーム装置の動作を説明するための図
【図７Ｃ】ネットワークを構築するときの各ゲーム装置の動作を説明するための図
【図８Ａ】親機がネットワークから離脱したときの各ゲーム装置の動作を説明するための図
【図８Ｂ】親機がネットワークから離脱したときの各ゲーム装置の動作を説明するための図
【図９Ａ】親機がネットワークから離脱したときの各ゲーム装置の動作の変形例を説明するための図
【図９Ｂ】親機がネットワークから離脱したときの各ゲーム装置の動作の変形例を説明するための図
【図９Ｃ】親機がネットワークから離脱したときの各ゲーム装置の動作の変形例を説明するための図
【図１０Ａ】親機がネットワークから離脱したときの各ゲーム装置の動作の変形例を説明するための図
【図１０Ｂ】親機がネットワークから離脱したときの各ゲーム装置の動作の変形例を説明するための図
【図１１】ＭＡＣアドレス順位と初回の親機検索期間との関連を示す図
【図１２】ＭＡＣアドレス順位に応じて初回の親機検索期間を決定したときのゲーム装置の動作を示す図
【図１３】ＲＡＭ２４のメモリマップ
【図１４】無線通信プログラムに基づく無線通信処理のフローチャート
【図１５】親機検索の詳細を示すフローチャート
【図１６】仮親処理の詳細を示すフローチャート
【図１７】子処理の詳細を示すフローチャート
【図１８】親処理の詳細を示すフローチャート
【符号の説明】
【０１１９】
１０、１０ａ〜１０ｄ  ゲーム装置
１１  第１のＬＣＤ
１２  第２のＬＣＤ
１３  ハウジング
１３ａ  上側ハウジング
１３ｂ  下側ハウジング
１４  操作スイッチ部
１４ａ  十字スイッチ
１４ｂ  スタートスイッチ
１４ｃ  セレクトスイッチ
１４ｄ  Ａボタン
１４ｅ  Ｂボタン
１４ｆ  Ｘボタン
１４ｇ  Ｙボタン
１４Ｌ  Ｌボタン
１４Ｒ  Ｒボタン
１５  タッチパネル
１６  スティック
１７  メモリカード
１７ａ  ＲＯＭ
１７ｂ  ＲＡＭ
１８ａ，１８ｂ  音抜き孔
１９  電源スイッチ
２０  電子回路基板
２１  ＣＰＵコア
２２  バス
２３  コネクタ
２４  ＲＡＭ
２５  Ｉ／Ｆ回路
２６  第１ＧＰＵ
２７  第２ＧＰＵ
２８  第１ＶＲＡＭ
２９  第２ＶＲＡＭ
３０ａ  右スピーカ
３０ｂ  左スピーカ
３１  ＬＣＤコントローラ
３２  レジスタ
３３  ワイヤレス通信部
４１  親処理プログラム
４２  子処理プログラム
４３  親機検索プログラム
４４  仮親処理プログラム
４５  切替プログラム
４６  親機検索期間決定プログラム
４７  親機離脱判定プログラム
４８  識別情報保持プログラム
４９  ＭＡＣアドレスリスト記憶領域
【図１】
2006148448.tif 000003
【図２】
2006148448.tif 000004
【図３】
2006148448.tif 000005
【図４】
2006148448.tif 000006
【図５】
2006148448.tif 000007
【図６】
2006148448.tif 000008
【図７Ａ】
2006148448.tif 000009
【図７Ｂ】
2006148448.tif 000010
【図７Ｃ】
2006148448.tif 000011
【図８Ａ】
2006148448.tif 000012
【図８Ｂ】
2006148448.tif 000013
【図９Ａ】
2006148448.tif 000014
【図９Ｂ】
2006148448.tif 000015
【図９Ｃ】
2006148448.tif 000016
【図１０Ａ】
2006148448.tif 000017
【図１０Ｂ】
2006148448.tif 000018
【図１１】
2006148448.tif 000019
【図１２】
2006148448.tif 000020
【図１３】
2006148448.tif 000021
【図１４】
2006148448.tif 000022
【図１５】
2006148448.tif 000023
【図１６】
2006148448.tif 000024
【図１７】
2006148448.tif 000025
【図１８】
2006148448.tif 000026