Notice: Undefined variable: fterm_desc_sub in /mnt/www/biblio_conv.php on line 353
通信システム、情報処理装置、通信プログラムおよび通信方法
説明

通信システム、情報処理装置、通信プログラムおよび通信方法

【課題】何度も同じアプリケーションプログラムを受信する手間を省き、効率的に通信処理を開始可能にすること。
【解決手段】ダウンロードプレイの実行に先立って、子機10bの内部メモリ35bに子機用プログラムが既に保存されているかどうかが判断される。そして、まだ保存されていない場合には、親機10aから子機10bへと子機用プログラムが送信されて、当該子機用プログラムが子機10bの内部メモリ35bに保存される。既に保存されている場合には、親機10aから子機10bへと子機用プログラムは送信されない。そして、親機用ゲームプログラムに従って動作する親機10aと、子機用ゲームプログラムに従って動作する子機10bとが互いに通信することによって、マルチプレイが実行される。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、通信システム、情報処理装置、通信プログラムおよび通信方法に関し、特に、互いに通信可能な複数の情報処理装置の間で所定の通信処理を実行するための通信システム、情報処理装置、通信プログラムおよび通信方法に関する。
【背景技術】
【0002】
従来、複数の携帯ゲーム装置やビデオゲーム装置等を通信可能にしたゲームシステムが知られている。この種のゲームシステムに用いられるゲーム装置は、他のゲーム装置や通信装置との間で通信するための通信手段を備えていて、ゲームプログラムをCPUによって実行している過程でその通信手段を利用して他のゲーム装置からゲームデータ等を取得して通信ゲームを行うことができる。
【0003】
しかしながら、複数のゲーム装置の間で通信ゲームを行うためには、ゲーム装置毎に通信ゲームのためのゲームプログラムを用意しなければならないという問題がある。
【0004】
そこで、特許文献1から特許文献9に開示された技術は、ゲームプログラムを用意しなくても、他のゲーム装置からゲームプログラムを受信して通信ゲームを行うことができるようにしたものがある。具体的には、ゲームプログラムを有さないゲーム装置は、ゲームプログラムを有する他のゲーム装置からゲームプログラムをダウンロードして実行することにより、他のゲーム装置との間でそのダウンロードしたゲームプログラムに基づく通信ゲームを実行する。
【先行技術文献】
【特許文献】
【0005】
【特許文献1】特許第3679111号公報
【特許文献2】特許第3699471号公報
【特許文献3】特許第3790257号公報
【特許文献4】特許第3790261号公報
【特許文献5】特許第3790263号公報
【特許文献6】特許第3790264号公報
【特許文献7】特許第4456611号公報
【特許文献8】特許第3874785号公報
【特許文献9】特許第4324487号公報
【発明の概要】
【発明が解決しようとする課題】
【0006】
しかし、特許文献1から特許文献9では、他のゲーム装置から受信したゲームプログラムを揮発性のワーキングRAMに展開して実行するので、ゲーム装置の電源をオフにすると、RAMの特性上、受信したゲームプログラムが消えてしまうという欠点があった。そのため、ユーザは通信ゲームを開始する度にゲームプログラムの送受信作業を毎回行う必要があり、ユーザに負担を強いるとともに、すぐに通信ゲームを開始できないという不便さがあった。
【0007】
それゆえに、この発明の目的は、同じアプリケーションプログラムを何度も受信する必要がなく、効率的に通信処理を開始することを可能にするための通信システム、情報処理装置、通信プログラムおよび通信方法を提供することである。
【課題を解決するための手段】
【0008】
上記目的を達成するために、本発明は例えば以下のような構成を採用し得る。
【0009】
本発明の通信システムの一例は、互いに通信可能な第1情報処理装置と第2情報処理装置を含む通信システムである。
前記第1情報処理装置は、アプリケーションプログラム記憶手段、アプリケーションプログラム送信手段、および第1通信処理手段を備える。上記アプリケーションプログラム記憶手段は、前記第1情報処理装置と前記第2情報処理装置との間で所定の通信処理を実行するためのアプリケーションプログラムを記憶する。上記アプリケーションプログラム送信手段は、前記第2情報処理装置からの要求に応じて前記アプリケーションプログラムを前記第2情報処理装置に送信する。上記第1通信処理手段は、前記第2情報処理装置との間で前記通信処理を実行する。
前記第2情報処理装置は、不揮発性メモリ、第1判断手段、アプリケーションプログラム受信手段、アプリケーションプログラム保存手段、および第2通信処理手段を備える。上記第1判断手段は、前記アプリケーションプログラムが前記不揮発性メモリに既に保存されているか否かを判断する。上記アプリケーションプログラム受信手段は、前記第1判断手段によって保存されていないことが判断されたとき、前記第1情報処理装置から前記アプリケーションプログラムを受信する。上記アプリケーションプログラム保存手段は、前記アプリケーションプログラム受信手段によって受信されたアプリケーションプログラムを前記不揮発性メモリに保存する。上記第2通信処理手段は、前記不揮発性メモリに保存された前記アプリケーションプログラムを用いて前記第1情報処理装置との間で前記通信処理を実行する。
【0010】
他の例として、前記第2通信処理手段は、前記第1判断手段によって前記アプリケーションプログラムが前記不揮発性メモリに既に保存されていると判断されたとき、当該既に保存されているアプリケーションプログラムを用いて前記第1情報処理装置との間で前記通信処理を実行してもよい。
【0011】
さらに他の例として、前記第1情報処理装置および前記第2情報処理装置は、近距離無線通信によって互いに通信可能な携帯型の情報処理装置であってもよい。
【0012】
さらに他の例として、前記第1情報処理装置は、前記通信処理への参加を他の情報処理装置に対して募集する側の情報処理装置であり、前記第2情報処理装置は、前記募集に対して参加する側の情報処理装置であってもよい。そして、前記第1判断手段によって前記アプリケーションプログラムが前記不揮発性メモリに既に保存されていると判断されたとき、または、前記アプリケーションプログラム受信手段によって受信されたアプリケーションプログラムが前記アプリケーションプログラム保存手段によって前記不揮発性メモリに保存されたときに、前記第1通信処理手段および前記第2通信処理手段は前記通信処理を実行してもよい。
【0013】
さらに他の例として、前記第1情報処理装置は、前記アプリケーションプログラムの識別情報を送信する識別情報送信手段をさらに備え、前記第1判断手段は、前記識別情報送信手段によって送信される識別情報と前記不揮発性メモリに保存されているアプリケーションプログラムの識別情報とを対比することによって、前記アプリケーションプログラムが前記不揮発性メモリに既に保存されているか否かを判断してもよい。
【0014】
上記の例によれば、アプリケーションプログラムが保存済みか否かを、ユーザの手間をかけることなく容易に判断することができる。
【0015】
さらに他の例として、前記第2情報処理装置は、前記第1判断手段によって前記アプリケーションプログラムが前記不揮発性メモリに保存されていないと判断されたとき、前記第1情報処理装置に対して前記アプリケーションプログラムを要求する要求信号を送信する要求信号送信手段をさらに備えてもよい。そして、前記アプリケーションプログラム送信手段は、前記要求情報送信手段によって送信される要求信号を受信したとき、前記アプリケーションプログラムを前記第2情報処理装置に送信してもよい。
【0016】
上記の例によれば、第2情報処理装置は、必要なときのみ第1情報処理装置にアプリケーションプログラムを要求して第1情報処理装置から受信するため、効率的な通信処理が可能である。
【0017】
さらに他の例として、前記第2情報処理装置は、前記アプリケーションプログラム受信手段によって過去に受信された、前記アプリケーションプログラムとは別のアプリケーションプログラムが前記不揮発性メモリに保存されているか否かを判断する第2判断手段、および前記第2判断手段によって前記不揮発性メモリに別のアプリケーションが保存されていると判断されたとき、当該別のアプリケーションプログラムを消去する第1消去手段をさらに備えてもよい。そして、前記アプリケーションプログラム保存手段は、前記第1消去手段によって消去された後、前記アプリケーションプログラム受信手段によって受信される前記アプリケーションプログラムを保存してもよい。
【0018】
上記の例によれば、新たなアプリケーションプログラムを受信する度に不揮発性メモリの空き領域が減っていくのを防止することができる。
【0019】
さらに他の例として、前記第2情報処理装置は、前記アプリケーションプログラム受信手段によって受信されるアプリケーションプログラムを保存するための空き領域が前記不揮発性メモリにあるか否かを判別する空き領域判別手段、および前記空き領域判別手段によって空き領域がないことが判別されたとき、当該空き領域が確保されるまで前記不揮発性メモリに保存されているアプリケーションプログラムを所定の判断基準にしたがって消去する第2消去手段をさらに備えてもよい。そして、前記アプリケーションプログラム保存手段は、前記第2消去手段によって消去された後、前記アプリケーションプログラムを保存してもよい。
【0020】
上記の例によれば、不揮発性メモリの空き領域が足りなくても新たなアプリケーションプログラムを保存して通信処理を実行することが可能である。
【0021】
さらに他の例として、前記第2情報処理装置は、前記第1情報処理装置から前記アプリケーションプログラムの識別情報を受信する識別情報受信手段、および前記識別情報受信手段によって受信された識別情報と前記不揮発性メモリに保存されているアプリケーションプログラムの識別情報とが一致するか否かを判断する第2判断手段をさらに備えてもよい。そして、前記第2通信処理手段は、前記第2判断手段によって一致することが判断されたとき、前記不揮発性メモリに保存されているアプリケーションプログラムを用いて前記第1情報処理装置との間で前記通信処理を実行してもよい。
【0022】
上記の例によれば、第1情報処理装置と通信可能な状況でなければアプリケーションプログラムを正常に実行できないため、第1情報処理装置と第2情報処理装置の通信(すなわち、ユーザ間の交流)を促進させることができる。また、本来のアプリケーションプログラムを有さない情報処理装置が他の情報処理装置から受信したアプリケーションプログラムを他の情報処理装置と通信を行うことなく単独で実行できてしまうといった事態を防止することができる。
【0023】
さらに他の例として、前記不揮発性メモリに保存されているアプリケーションプログラムは、任意に実行することのできないアプリケーションプログラムであってもよい。
【0024】
さらに他の例として、前記アプリケーションプログラム保存手段は、前記アプリケーションプログラム受信手段によって受信されたアプリケーションプログラムを他のアプリケーションプログラムと識別可能に保存してもよい。そして、前記第2情報処理装置は、前記アプリケーションプログラム受信手段によって受信されたアプリケーションプログラムを除くアプリケーションプログラムを一覧表示する一覧表示手段、前記一覧表示手段によって表示されたアプリケーションプログラムからいずれか1つをユーザの指示に基づいて選択する選択手段、および前記選択手段によって選択されたアプリケーションプログラムを実行するアプリケーション実行手段をさらに備えてもよい。
【0025】
上記の例によれば、第2情報処理装置が第1情報処理装置から受信したアプリケーションプログラムは、ユーザが選択して実行することができず、当該アプリケーションプログラムを実行するためには第1情報処理装置と通信する必要があるので、第1情報処理装置と第2情報処理装置の通信(すなわち、ユーザ間の交流)を促進させることができる。また、本来のアプリケーションプログラムを有さない情報処理装置が他の情報処理装置から受信したアプリケーションプログラムを他の情報処理装置と通信を行うことなく単独で実行できてしまうといった事態を防止することができる。
【0026】
本発明の情報処理装置の一例は、他の情報処理装置と通信可能な情報処理装置であって、不揮発性メモリ、前記他の情報処理装置との間で所定の通信処理を実行するためのアプリケーションプログラムが前記不揮発性メモリに既に保存されているか否かを判断する第1判断手段、前記第1判断手段によって保存されていないことが判断されたとき、前記他の情報処理装置から前記アプリケーションプログラムを受信するアプリケーションプログラム受信手段、前記アプリケーションプログラム受信手段によって受信されたアプリケーションプログラムを前記不揮発性メモリに保存するアプリケーションプログラム保存手段、および前記不揮発性メモリに保存された前記アプリケーションプログラムを用いて前記他の情報処理装置との間で前記通信処理を実行する通信処理手段を備える。
【0027】
本発明の通信プログラムの一例は、不揮発性メモリを有する情報処理装置のコンピュータを、他の情報処理装置との間で所定の通信処理を実行するためのアプリケーションプログラムが前記不揮発性メモリに既に保存されているか否かを判断する第1判断手段、前記第1判断手段によって保存されていないことが判断されたとき、前記他の情報処理装置から前記アプリケーションプログラムを受信するアプリケーションプログラム受信手段、前記アプリケーションプログラム受信手段によって受信されたアプリケーションプログラムを前記不揮発性メモリに保存するアプリケーションプログラム保存手段、および前記不揮発性メモリに保存された前記アプリケーションプログラムを用いて前記他の情報処理装置との間で前記通信処理を実行する通信処理手段として機能させるための通信プログラムである。
【0028】
本発明の通信方法の一例は、互いに通信可能な第1情報処理装置と第2情報処理装置との間で所定の通信処理を実行するための通信方法であって、前記第2情報処理装置の判断手段が、前記第1情報処理装置との間で前記通信処理を実行するためのアプリケーションプログラムが当該第2情報処理装置の不揮発性メモリに既に保存されているか否かを判断するステップ、前記判断手段によって保存されていないことが判断されたとき、前記第1情報処理装置のアプリケーションプログラム送信手段が、前記第2情報処理装置からの要求に応じて、前記アプリケーションプログラムを前記第2情報処理装置に送信するステップ、前記第2情報処理装置のアプリケーションプログラム受信手段が、前記第1情報処理装置から前記アプリケーションプログラムを受信するステップ、前記第2情報処理装置のアプリケーションプログラム保存手段が、前記アプリケーションプログラム受信手段によって受信されたアプリケーションプログラムを前記不揮発性メモリに保存するステップ、および前記第2情報処理装置の通信処理手段が、前記不揮発性メモリに保存された前記アプリケーションプログラムを用いて前記第1情報処理装置との間で前記通信処理を実行するステップを備える。
【発明の効果】
【0029】
本発明によれば、一度アプリケーションプログラムをダウンロードすると、次回からは受信処理を省くことができるため、同じアプリケーションプログラムを何度も受信する時間または手間が省け、効率的に通信処理を開始することが可能である。
【図面の簡単な説明】
【0030】
【図1】開状態におけるゲーム装置10の正面図
【図2A】閉状態におけるゲーム装置10の左側面図
【図2B】閉状態におけるゲーム装置10の正面図
【図2C】閉状態におけるゲーム装置10の右側面図
【図2D】閉状態におけるゲーム装置10の背面図
【図3】ゲーム装置10の内部構成を示すブロック図
【図4】子機用プログラムが親機から子機へ送信される様子を示す図
【図5】ファームウェア更新プログラムが親機から子機へ送信される様子を示す図
【図6】親機の画面に表示される画像の一例
【図7】親機の画面に表示される画像の一例
【図8】親機の画面に表示される画像の一例
【図9】親機の画面に表示される画像の一例
【図10】子機の画面に表示される画像の一例
【図11】子機の画面に表示される画像の一例
【図12】子機の画面に表示される画像の一例
【図13】子機の画面に表示される画像の一例
【図14】子機の画面に表示される画像の一例
【図15】子機の画面に表示される画像の一例
【図16】外部メモリ44内のプログラムおよびデータの一例
【図17】データ保存用内部メモリ35内のプログラムおよびデータの一例
【図18】ゲーム装置の処理の流れを示すフローチャート
【図19】子機処理の詳細を示すフローチャート
【図20】ファームウェア更新処理(子機)の詳細を示すフローチャート
【図21】親機処理の詳細を示すフローチャート
【図22】ファームウェア更新処理(親機)の詳細を示すフローチャート
【発明を実施するための形態】
【0031】
(ゲーム装置の構成)
以下、本発明の一実施形態に係るゲーム装置について説明する。図1および図2は、ゲーム装置10の外観を示す平面図である。ゲーム装置10は携帯型のゲーム装置であり、図1および図2に示すように折り畳み可能に構成されている。図1は、開いた状態(開状態)におけるゲーム装置10を示し、図2は、閉じた状態(閉状態)におけるゲーム装置10を示している。図1は、開状態におけるゲーム装置10の正面図である。ゲーム装置10は、撮像部によって画像を撮像し、撮像した画像を画面に表示したり、撮像した画像のデータを保存したりすることが可能である。また、ゲーム装置10は、交換可能なメモリカード内に記憶され、または、サーバーや他のゲーム装置から受信したゲームプログラムを実行可能であり、仮想空間に設定された仮想カメラで撮像した画像などのコンピュータグラフィックス処理により生成された画像を画面に表示したりすることができる。
【0032】
まず、図1および図2を参照して、ゲーム装置10の外観構成について説明する。図1および図2に示されるように、ゲーム装置10は、下側ハウジング11および上側ハウジング21を有する。下側ハウジング11と上側ハウジング21とは、開閉可能(折り畳み可能)に接続されている。
【0033】
(下側ハウジングの説明)
まず、下側ハウジング11の構成について説明する。図1および図2に示すように、下側ハウジング11には、下側LCD(Liquid Crystal Display:液晶表示装置)12、タッチパネル13、各操作ボタン14A〜14L、アナログスティック15、LED16A〜16B、挿入口17、および、マイクロフォン用孔18が設けられる。以下、これらの詳細について説明する。
【0034】
図1に示すように、下側LCD12は下側ハウジング11に収納される。下側LCD12の画素数は、例えば、256dot×192dot(横×縦)であってもよい。下側LCD12は、後述する上側LCD22とは異なり、画像を(立体視可能ではなく)平面的に表示する表示装置である。なお、本実施形態では表示装置としてLCDを用いているが、例えばEL(Electro Luminescence:電界発光)を利用した表示装置など、他の任意の表示装置を利用してもよい。また、下側LCD12として、任意の解像度の表示装置を利用することができる。
【0035】
図1に示されるように、ゲーム装置10は、入力装置として、タッチパネル13を備えている。タッチパネル13は、下側LCD12の画面上に装着されている。なお、本実施形態では、タッチパネル13は抵抗膜方式のタッチパネルである。ただし、タッチパネルは抵抗膜方式に限らず、例えば静電容量方式等、任意の方式のタッチパネルを用いることができる。本実施形態では、タッチパネル13として、下側LCD12の解像度と同解像度(検出精度)のものを利用する。ただし、必ずしもタッチパネル13の解像度と下側LCD12の解像度が一致している必要はない。また、下側ハウジング11の上側面には挿入口17(図1および図2Dに示す点線)が設けられている。挿入口17は、タッチパネル13に対する操作を行うために用いられるタッチペン28を収納することができる。なお、タッチパネル13に対する入力は通常タッチペン28を用いて行われるが、タッチペン28に限らずユーザの指でタッチパネル13に対する入力をすることも可能である。
【0036】
各操作ボタン14A〜14Lは、所定の入力を行うための入力装置である。図1に示されるように、下側ハウジング11の内側面(主面)には、各操作ボタン14A〜14Lのうち、十字ボタン14A(方向入力ボタン14A)、ボタン14B、ボタン14C、ボタン14D、ボタン14E、電源ボタン14F、セレクトボタン14J、HOMEボタン14K、およびスタートボタン14Lが、設けられる。十字ボタン14Aは、十字の形状を有しており、上下左右の方向を指示するボタンを有している。ボタン14A〜14E、セレクトボタン14J、HOMEボタン14K、およびスタートボタン14Lには、ゲーム装置10が実行するプログラムに応じた機能が適宜割り当てられる。例えば、十字ボタン14Aは選択操作等に用いられ、各操作ボタン14B〜14Eは例えば決定操作やキャンセル操作等に用いられる。また、電源ボタン14Fは、ゲーム装置10の電源をオン/オフするために用いられる。
【0037】
アナログスティック15は、方向を指示するデバイスである。アナログスティック15は、そのキートップが、下側ハウジング11の内側面に平行にスライドするように構成されている。アナログスティック15は、ゲーム装置10が実行するプログラムに応じて機能する。例えば、3次元仮想空間に所定のオブジェクトが登場するゲームがゲーム装置10によって実行される場合、アナログスティック15は、当該所定のオブジェクトを3次元仮想空間内で移動させるための入力装置として機能する。この場合において、所定のオブジェクトはアナログスティック15のキートップがスライドした方向に移動される。なお、アナログスティック15として、上下左右および斜め方向の任意の方向に所定量だけ傾倒することでアナログ入力を可能としたものを用いても良い。
【0038】
また、下側ハウジング11の内側面には、マイクロフォン用孔18が設けられる。マイクロフォン用孔18の下部には後述する音声入力装置としてのマイク42(図3参照)が設けられ、当該マイク42がゲーム装置10の外部の音を検出する。
【0039】
図2Aは閉状態におけるゲーム装置10の左側面図であり、図2Bは閉状態におけるゲーム装置10の正面図であり、図2Cは閉状態におけるゲーム装置10の右側面図であり、図2Dは閉状態におけるゲーム装置10の背面図である。図2Bおよび図2Dに示されるように、下側ハウジング11の上側面には、Lボタン14GおよびRボタン14Hが設けられている。Lボタン14GおよびRボタン14Hは、例えば、撮像部のシャッターボタン(撮影指示ボタン)として機能することができる。また、図2Aに示されるように、下側ハウジング11の左側面には、音量ボタン14Iが設けられる。音量ボタン14Iは、ゲーム装置10が備えるスピーカの音量を調整するために用いられる。
【0040】
図2Aに示されるように、下側ハウジング11の左側面には開閉可能なカバー部11Cが設けられる。このカバー部11Cの内側には、ゲーム装置10とデータ保存用外部メモリ45とを電気的に接続するためのコネクタ(図示せず)が設けられる。データ保存用外部メモリ45は、コネクタに着脱自在に装着される。データ保存用外部メモリ45は、例えば、ゲーム装置10によって撮像された画像のデータを記憶(保存)するために用いられる。
【0041】
また、図2Dに示されるように、下側ハウジング11の上側面には、ゲーム装置10とゲームプログラムを記録した外部メモリ44を挿入するための挿入口11Dが設けられ、その挿入口11Dの内部には、外部メモリ44と電気的に着脱自在に接続するためのコネクタ(図示せず)が設けられる。当該外部メモリ44がゲーム装置10に接続されることにより、所定のゲームプログラムが実行される。
【0042】
また、図1および図2Cに示されるように、下側ハウジング11の下側面にはゲーム装置10の電源のON/OFF状況をユーザに通知する第1LED16A、下側ハウジング11の右側面にはゲーム装置10の無線通信の確立状況をユーザに通知する第2LED16Bが設けられる。ゲーム装置10は他の機器との間で無線通信を行うことが可能であり、第2LED16Bは、無線通信が確立している場合に点灯する。ゲーム装置10は、例えば、IEEE802.11b/gの規格に準拠した方式により、無線LANに接続する機能を有する。下側ハウジング11の右側面には、この無線通信の機能を有効/無効にする無線スイッチ19が設けられる(図2C参照)。
【0043】
なお、図示は省略するが、下側ハウジング11には、ゲーム装置10の電源となる充電式電池が収納され、下側ハウジング11の側面(例えば、上側面)に設けられた端子を介して当該電池を充電することができる。
【0044】
(上側ハウジングの説明)
次に、上側ハウジング21の構成について説明する。図1および図2に示すように、上側ハウジング21には、上側LCD(Liquid Crystal Display:液晶表示装置)22、外側撮像部23(外側撮像部(左)23aおよび外側撮像部(右)23b)、内側撮像部24、3D調整スイッチ25、および、3Dインジケータ26が設けられる。以下、これらの詳細について説明する。
【0045】
図1に示すように、上側LCD22は上側ハウジング21に収納される。上側LCD22の画素数は、例えば、640dot×200dot(横×縦)であってもよい。なお、本実施形態では上側LCD22は液晶表示装置であるとしたが、例えばEL(Electro Luminescence:電界発光)を利用した表示装置などが利用されてもよい。また、上側LCD22として、任意の解像度の表示装置を利用することができる。
【0046】
上側LCD22は、立体視可能な画像を表示することが可能な表示装置である。また、本実施例では、実質的に同一の表示領域を用いて左目用画像と右目用画像が表示される。具体的には、左目用画像と右目用画像が所定単位で(例えば、1列ずつ)横方向に交互に表示される方式の表示装置である。または、左目用画像と右目用画像とが交互に表示される方式の表示装置であってもよい。また、本実施例では、裸眼立体視可能な表示装置である。そして、横方向に交互に表示される左目用画像と右目用画像とを左目および右目のそれぞれに分解して見えるようにレンチキュラー方式やパララックスバリア方式(視差バリア方式)のものが用いられる。本実施形態では、上側LCD22はパララックスバリア方式のものとする。上側LCD22は、右目用画像と左目用画像とを用いて、裸眼で立体視可能な画像(立体画像)を表示する。すなわち、上側LCD22は、視差バリアを用いてユーザの左目に左目用画像をユーザの右目に右目用画像を視認させることにより、ユーザにとって立体感のある立体画像(立体視可能な画像)を表示することができる。また、上側LCD22は、上記視差バリアを無効にすることが可能であり、視差バリアを無効にした場合は、画像を平面的に表示することができる(上述した立体視とは反対の意味で平面視の画像を表示することができる。すなわち、表示された同一の画像が右目にも左目にも見えるような表示モードである)。このように、上側LCD22は、立体視可能な画像を表示する立体表示モードと、画像を平面的に表示する(平面視画像を表示する)平面表示モードとを切り替えることが可能な表示装置である。この表示モードの切り替えは、後述する3D調整スイッチ25によって行われる。
【0047】
外側撮像部23は、上側ハウジング21の外側面(上側LCD22が設けられた主面と反対側の背面)21Dに設けられた2つの撮像部(23aおよび23b)の総称である。外側撮像部(左)23aと外側撮像部(右)23bの撮像方向は、いずれも当該外側面21Dの外向きの法線方向である。外側撮像部(左)23aと外側撮像部(右)23bとは、ゲーム装置10が実行するプログラムによって、ステレオカメラとして使用することが可能である。外側撮像部(左)23aおよび外側撮像部(右)23bは、それぞれ所定の共通の解像度を有する撮像素子(例えば、CCDイメージセンサやCMOSイメージセンサ等)と、レンズとを含む。レンズは、ズーム機構を有するものでもよい。
【0048】
内側撮像部24は、上側ハウジング21の内側面(主面)21Bに設けられ、当該内側面の内向きの法線方向を撮像方向とする撮像部である。内側撮像部24は、所定の解像度を有する撮像素子(例えば、CCDイメージセンサやCMOSイメージセンサ等)と、レンズとを含む。レンズは、ズーム機構を有するものでもよい。
【0049】
3D調整スイッチ25は、スライドスイッチであり、上述のように上側LCD22の表示モードを切り替えるために用いられるスイッチである。また、3D調整スイッチ25は、上側LCD22に表示された立体視可能な画像(立体画像)の立体感を調整するために用いられる。3D調整スイッチ25のスライダ25aは、所定方向(上下方向)の任意の位置にスライド可能であり、当該スライダ25aの位置に応じて上側LCD22の表示モードが設定される。また、スライダ25aの位置に応じて、立体画像の見え方が調整される。具体的には、スライダ25aの位置に応じて、右目用画像および左目用画像の横方向の位置のずれ量が調整される。
【0050】
3Dインジケータ26は、上側LCD22が立体表示モードか否かを示す。3Dインジケータ26は、LEDであり、上側LCD22の立体表示モードが有効の場合に点灯する。なお、3Dインジケータ26は、上側LCD22が立体表示モードになっており、かつ、立体視画像を表示するプログラム処理が実行されているときに限り、点灯するようにしてもよい。
【0051】
また、上側ハウジング21の内側面には、スピーカ孔21Eが設けられる。後述するスピーカ43からの音声がこのスピーカ孔21Eから出力される。
【0052】
(ゲーム装置10の内部構成)
次に、図3を参照して、ゲーム装置10の内部の電気的構成について説明する。図3は、ゲーム装置10の内部構成を示すブロック図である。図3に示すように、ゲーム装置10は、上述した各部に加えて、情報処理部31、メインメモリ32、外部メモリインターフェイス(外部メモリI/F)33、データ保存用外部メモリI/F34、データ保存用内部メモリ35、無線通信モジュール36、ローカル通信モジュール37、リアルタイムクロック(RTC)38、加速度センサ39、電源回路40、およびインターフェイス回路(I/F回路)41等の電子部品を備えている。これらの電子部品は、電子回路基板上に実装されて下側ハウジング11(または上側ハウジング21でもよい)内に収納される。
【0053】
情報処理部31は、所定のプログラムを実行するためのCPU(Central Processing Unit)311、画像処理を行うGPU(Graphics Processing Unit)312等を含む情報処理手段である。情報処理部31のCPU311は、ゲーム装置10内のメモリ(例えば外部メモリI/F33に接続された外部メモリ44やデータ保存用内部メモリ35)に記憶されているプログラムを実行することによって、当該プログラムに応じた処理を実行する。なお、情報処理部31のCPU311によって実行されるプログラムは、他の機器との通信によって他の機器から取得されてもよい。また、情報処理部31は、VRAM(Video RAM)313を含む。情報処理部31のGPU312は、情報処理部31のCPU311からの命令に応じて画像を生成し、VRAM313に描画する。そして、情報処理部31のGPU312は、VRAM313に描画された画像を上側LCD22及び/又は下側LCD12に出力し、上側LCD22及び/又は下側LCD12に当該画像が表示される。
【0054】
情報処理部31には、メインメモリ32、外部メモリI/F33、データ保存用外部メモリI/F34、および、データ保存用内部メモリ35が接続される。外部メモリI/F33は、外部メモリ44を着脱自在に接続するためのインターフェイスである。また、データ保存用外部メモリI/F34は、データ保存用外部メモリ45を着脱自在に接続するためのインターフェイスである。
【0055】
メインメモリ32は、情報処理部31(のCPU311)のワーク領域やバッファ領域として用いられる揮発性の記憶手段である。すなわち、メインメモリ32は、上記プログラムに基づく処理に用いられる各種データを一時的に記憶したり、外部(外部メモリ44や他の機器等)から取得されるプログラムを一時的に記憶したりする。本実施形態では、メインメモリ32として例えばPSRAM(Pseudo−SRAM)を用いる。
【0056】
外部メモリ44は、情報処理部31によって実行されるプログラムを記憶するための不揮発性の記憶手段である。外部メモリ44は、例えば読み取り専用の半導体メモリで構成される。外部メモリ44が外部メモリI/F33に接続されると、情報処理部31は外部メモリ44に記憶されたプログラムを読み込むことができる。情報処理部31が読み込んだプログラムを実行することにより、所定の処理が行われる。データ保存用外部メモリ45は、不揮発性の読み書き可能なメモリ(例えばNAND型フラッシュメモリ)で構成され、所定のデータを格納するために用いられる。例えば、データ保存用外部メモリ45には、外側撮像部23で撮像された画像や他の機器で撮像された画像が記憶される。データ保存用外部メモリ45がデータ保存用外部メモリI/F34に接続されると、情報処理部31はデータ保存用外部メモリ45に記憶された画像を読み込み、上側LCD22及び/又は下側LCD12に当該画像を表示することができる。
【0057】
データ保存用内部メモリ35は、読み書き可能な不揮発性メモリ(例えばNAND型フラッシュメモリ)で構成され、所定のデータを格納するために用いられる。例えば、データ保存用内部メモリ35には、無線通信モジュール36を介した無線通信によってダウンロードされたデータやプログラムが格納される。
【0058】
無線通信モジュール36は、例えばIEEE802.11b/gの規格に準拠した方式により、無線LANに接続する機能を有する。また、ローカル通信モジュール37は、所定の通信方式(例えば独自プロトコルによる通信や、赤外線通信)により同種のゲーム装置との間で無線通信を行う機能を有する。無線通信モジュール36およびローカル通信モジュール37は情報処理部31に接続される。情報処理部31は、無線通信モジュール36を用いてインターネットを介して他の機器との間でデータを送受信したり、ローカル通信モジュール37を用いて同種の他のゲーム装置との間でデータを送受信したりすることができる。
【0059】
また、情報処理部31には、加速度センサ39が接続される。加速度センサ39は、3軸(xyz軸)方向に沿った直線方向の加速度(直線加速度)の大きさを検出する。加速度センサ39は、下側ハウジング11の内部に設けられる。加速度センサ39は、図1に示すように、下側ハウジング11の長辺方向をx軸、下側ハウジング11の短辺方向をy軸、下側ハウジング11の内側面(主面)に対して垂直な方向をz軸として、各軸の直線加速度の大きさを検出する。なお、加速度センサ39は、例えば静電容量式の加速度センサであるとするが、他の方式の加速度センサを用いるようにしてもよい。また、加速度センサ39は1軸又は2軸方向を検出する加速度センサであってもよい。情報処理部31は、加速度センサ39が検出した加速度を示すデータ(加速度データ)を受信して、ゲーム装置10の姿勢や動きを検出することができる。
【0060】
また、情報処理部31には、RTC38および電源回路40が接続される。RTC38は、時間をカウントして情報処理部31に出力する。情報処理部31は、RTC38によって計時された時間に基づき現在時刻(日付)を計算する。電源回路40は、ゲーム装置10が有する電源(下側ハウジング11に収納される上記充電式電池)からの電力を制御し、ゲーム装置10の各部品に電力を供給する。
【0061】
また、情報処理部31には、I/F回路41が接続される。I/F回路41には、マイク42およびスピーカ43が接続される。具体的には、I/F回路41には、図示しないアンプを介してスピーカ43が接続される。マイク42は、ユーザの音声を検知して音声信号をI/F回路41に出力する。アンプは、I/F回路41からの音声信号を増幅し、音声をスピーカ43から出力させる。また、タッチパネル13はI/F回路41に接続される。I/F回路41は、マイク42およびスピーカ43(アンプ)の制御を行う音声制御回路と、タッチパネルの制御を行うタッチパネル制御回路とを含む。音声制御回路は、音声信号に対するA/D変換およびD/A変換を行ったり、音声信号を所定の形式の音声データに変換したりする。タッチパネル制御回路は、タッチパネル13からの信号に基づいて所定の形式のタッチ位置データを生成して情報処理部31に出力する。タッチ位置データは、タッチパネル13の入力面において入力が行われた位置の座標を示す。なお、タッチパネル制御回路は、タッチパネル13からの信号の読み込み、および、タッチ位置データの生成を所定時間に1回の割合で行う。情報処理部31は、タッチ位置データを取得することにより、タッチパネル13に対して入力が行われた位置を知ることができる。
【0062】
操作ボタン14は、上記各操作ボタン14A〜14Lからなり、情報処理部31に接続される。操作ボタン14から情報処理部31へは、各操作ボタン14A〜14Iに対する入力状況(押下されたか否か)を示す操作データが出力される。情報処理部31は、操作ボタン14から操作データを取得することによって、操作ボタン14に対する入力に従った処理を実行する。
【0063】
下側LCD12および上側LCD22は情報処理部31に接続される。下側LCD12および上側LCD22は、情報処理部31(のGPU312)の指示に従って画像を表示する。本実施形態では、情報処理部31は、上側LCD22に立体画像(立体視可能な画像)を表示させる。
【0064】
具体的には、情報処理部31は、上側LCD22のLCDコントローラ(図示せず)と接続され、当該LCDコントローラに対して視差バリアのON/OFFを制御する。上側LCD22の視差バリアがONになっている場合、情報処理部31のVRAM313に格納された右目用画像と左目用画像とが、上側LCD22に出力される。より具体的には、LCDコントローラは、右目用画像について縦方向に1ライン分の画素データを読み出す処理と、左目用画像について縦方向に1ライン分の画素データを読み出す処理とを交互に繰り返すことによって、VRAM313から右目用画像と左目用画像とを読み出す。これにより、右目用画像および左目用画像が、画素を縦に1ライン毎に並んだ短冊状画像に分割され、分割された右目用画像の短冊状画像と左目用画像の短冊状画像とが交互に配置された画像が、上側LCD22の画面に表示される。そして、上側LCD22の視差バリアを介して当該画像がユーザに視認されることによって、ユーザの右目に右目用画像が、ユーザの左目に左目用画像が視認される。以上により、上側LCD22の画面には立体視可能な画像が表示される。
【0065】
外側撮像部23および内側撮像部24は、情報処理部31に接続される。外側撮像部23および内側撮像部24は、情報処理部31の指示に従って画像を撮像し、撮像した画像データを情報処理部31に出力する。
【0066】
3D調整スイッチ25は、情報処理部31に接続される。3D調整スイッチ25は、スライダ25aの位置に応じた電気信号を情報処理部31に送信する。
【0067】
また、3Dインジケータ26は、情報処理部31に接続される。情報処理部31は、3Dインジケータ26の点灯を制御する。例えば、情報処理部31は、上側LCD22が立体表示モードである場合、3Dインジケータ26を点灯させる。以上がゲーム装置10の内部構成の説明である。
【0068】
(ゲームシステムの概要)
ゲーム装置10は、ローカル通信モジュール37を介した近距離無線通信によって、周囲に存在する他のゲーム装置10と通信することができる。このような近距離無線通信を利用することによって、ゲーム装置10をそれぞれ所有する複数のユーザが同一のゲームを一緒にプレイすることができる、マルチプレイが可能である。
【0069】
マルチプレイを実現するためには、マルチプレイに参加する全てのゲーム装置10において、同一のゲームに対応するゲームプログラムを実行する必要がある。本実施形態のゲームシステムでは、マルチプレイに対応しているゲームプログラムを所有しているユーザのゲーム装置10(以下、親機と称す)から、当該ゲームプログラムを所有していないユーザのゲーム装置10(以下、子機と称す)に対して、子機用のゲームプログラムを送信することによって、マルチプレイが可能である。このように、親機から子機に対してマルチプレイに必要なゲームプログラム(子機用ゲームプログラム)を送信してから実行されるマルチプレイのことを、以下の説明では「ダウンロードプレイ」もしくは「DLプレイ」と称する。
【0070】
(子機用プログラムのダウンロード)
図4は、第1ゲーム装置(以下では、単に「親機」とも称する)10aの外部メモリ44aまたはデータ保存用内部メモリ(以下では、単に「内部メモリ」とも称する)35aから、第2ゲーム装置(以下では、単に「子機」とも称する)10bに対して子機用のゲームプログラムが送信される様子を示している。
【0071】
親機10aの外部メモリ44aまたは内部メモリ35aには、ダウンロードプレイに対応したゲームプログラムが格納されている。例えば、外部メモリ44aには、ダウンロードプレイに対応したゲームAに関連するプログラム群(具体的には、親機用ゲームプログラムAと、子機用ゲームプログラムAと、ファームウェア更新プログラムA)が格納されている。また、内部メモリ35aには、ダウンロードプレイに対応したゲームBに関連するプログラム群(具体的には、親機用ゲームプログラムBと、子機用ゲームプログラムBと、ファームウェア更新プログラムB)が格納されている。なお、内部メモリ35aに格納されている親機用ゲームプログラムB、子機用ゲームプログラムBおよびファームウェア更新プログラムBは、典型的には、サーバー装置からセット(一組のプログラム群)で取得されて、互いに関連付けて内部メモリ35aに記憶される。
【0072】
親機用ゲームプログラムAは、ゲームAのダウンロードプレイが実行されるときに親機10aにおいて実行されるコンピュータプログラムである。子機用ゲームプログラムAは、ゲームAのダウンロードプレイが実行されるときに子機10bにおいて実行されるコンピュータプログラムであって、親機10aと子機10bとが互いに通信可能な状況でのみ正常に実行可能である。ファームウェア更新プログラムAは、子機10bのファームウェアを、子機用ゲームプログラムAを実行可能なバージョンへと更新するためのコンピュータプログラムである。なお、親機10aは、適宜のタイミング(典型的には、親機10aにおいてゲームAが最初に実行された時点、または外部メモリ44aが親機10aに最初に接続された時点)で、外部メモリ44aに格納されているファームウェア更新プログラムAを用いて、親機10a自身のファームウェアを更新してもよい。そして、こうして親機10aのファームウェアを更新する際に利用されたファームウェア更新プログラムAが、子機10bのファームウェアの更新にも利用されてもよい。つまり、ファームウェアの更新が外部メモリ44aから親機10aへと行われ、さらに親機10aから子機10bへと行われるように、ファームウェアの更新を他の機器に伝播させることができる。また、外部メモリ44aに格納されるファームウェア更新プログラムAは、親機10aのファームウェアを更新するための親機用ファームウェア更新プログラムと子機10bのファームウェアを更新するための子機用ファームウェア更新プログラムの2種類のプログラムを含んでいてもよい。そして、親機10aは、外部メモリ44aに格納されているファームウェア更新プログラムAのうちの親機用ファームウェア更新プログラムを用いて、親機10a自身のファームウェアを更新し、子機10bは、外部メモリ44aに格納されているファームウェア更新プログラムAのうちの子機用ファームウェア更新プログラムを親機10aから取得して、子機10b自身のファームウェアを更新してもよい。
【0073】
同様に、親機用ゲームプログラムBは、ゲームBのダウンロードプレイが実行されるときに親機10aにおいて実行されるコンピュータプログラムである。子機用ゲームプログラムBは、ゲームBのダウンロードプレイが実行されるときに子機10bにおいて実行されるコンピュータプログラムであって、親機10aと子機10bとが互いに通信可能な状況でのみ正常に実行可能である。ファームウェア更新プログラムBは、子機10bのファームウェアを、子機用ゲームプログラムBを実行可能なバージョンへと更新するためのコンピュータプログラムである。なお、親機10aは、サーバー装置から取得されたファームウェア更新プログラムBを用いて、適宜のタイミング(典型的には、親機10aにおいてゲームBが最初に実行された時点、またはファームウェア更新プログラムBをサーバー装置から受信した時点)で親機10a自身のファームウェアを更新してもよい。そして、こうして親機10aのファームウェアを更新する際に利用されたファームウェア更新プログラムBが、子機10bのファームウェアの更新にも利用されてもよい。つまり、サーバー装置から親機10aに対してファームウェアの更新が行われ、さらに親機10aから子機10bに対してファームウェアの更新が行われるように、ファームウェアの更新が他の機器に伝播するようにしていくことができる。また、サーバー装置から取得されるファームウェア更新プログラムBは、親機10aのファームウェアを更新するための親機用ファームウェア更新プログラムと子機10bのファームウェアを更新するための子機用ファームウェア更新プログラムの2種類のプログラムを含んでいてもよい。そして、親機10aは、サーバー装置から取得されたファームウェア更新プログラムBのうちの親機用ファームウェア更新プログラムを用いて、親機10a自身のファームウェアを更新し、子機10bは、ファームウェア更新プログラムBのうちの子機用ファームウェア更新プログラムを親機10aから取得して、子機10b自身のファームウェアを更新してもよい。
【0074】
本実施形態では、ダウンロードプレイの実行に先立って、必要に応じて、親機10aから子機10bへと子機用プログラムが送信され、当該子機用プログラムが子機10bの内部メモリ35bに保存される。そして、親機用ゲームプログラムに従って動作する親機10aと、子機用ゲームプログラムに従って動作する子機10bとが互いに通信することによって、マルチプレイが実行される。
【0075】
従来、ダウンロードプレイの際に親機から子機へとダウンロードされた子機用ゲームプログラムは、子機の揮発性メモリに保存されていたため、子機の電源が切られると子機ゲームプログラムは子機から消滅していた。よって、従来は、ダウンロードプレイを開始する度に必ず子機用ゲームプログラムのダウンロードが必要であった。一方、本実施形態では、子機用プログラムが子機10bの内部メモリ35bに不揮発的に保存されるため、子機10bの電源が切れたとしても、子機用プログラムが子機10bは子機10bに保存されたままとなる。よって、後日、同じゲームのダウンロードプレイを子機10bが実行しようとした場合には、そのゲームのダウンロードプレイに必要な子機用プログラムがすでに子機10bの内部メモリ35bに存在するので、子機10bは、子機用プログラムを親機10aからダウンロードすることなく、親機10aとのダウンロードプレイを開始することが可能となる。
【0076】
(ファームウェアの更新)
図5は、親機10aの外部メモリ44aまたは内部メモリ35aから、子機10bに対してファームウェア更新プログラムが送信される様子を示している。
【0077】
本実施形態では、ダウンロードプレイの実行に先立って、子機のファームウェアを更新する必要があるか否かのチェックが行われる。そして、子機のファームウェアの更新が必要な場合には、親機10aから子機10bへとファームウェア更新プログラムが送信され、当該ファームウェア更新プログラムに従って子機10bのファームウェアが更新される。
【0078】
従来、ファームウェア更新プログラムは、インターネットに接続してサーバーからゲーム装置にダウンロードしたり、CD−ROMなどの外部記憶媒体からゲーム装置に読み込んだりするのが一般的であるが、本実施形態では、通信によって他のゲーム装置から受信する点が特徴的である。
【0079】
(ダウンロードプレイの流れ)
次に、図6〜図15を参照して、ダウンロードプレイを開始するまでの親機10aおよび子機10bの処理の流れ説明する。
【0080】
(親機の処理の流れ)
図6〜図9は、ダウンロードプレイを開始するときに第1ゲーム装置(親機)10aの画面(例えば、下側LCD12の画面)に表示される画像を示している。
【0081】
ユーザ(以下、ユーザAと称す)が第1ゲーム装置10aの電源をオンにすると、図6のようなゲーム選択画像が表示される。このゲーム選択画像では、ユーザAは、外部メモリ44aに記憶されている1以上のゲーム(ここではゲームA)と、内部メモリ35aに記憶されている1以上のゲーム(ここではゲームB)の中から、所望のゲームを選択することができる。当該選択は、例えばタッチパネル13を用いて行うことができる。また、図6において、ユーザAは「ダウンロードプレイ」を選択することもできる。「ダウンロードプレイ」が選択された場合には、第1ゲーム装置10aは子機として動作して、他のゲーム装置(親機)から子機用プログラムをダウンロードすることになる。すなわち、ユーザAの選択次第で、第1ゲーム装置10aは親機にも子機にもなり得る。
【0082】
図6においてユーザAが「ゲームB」を選択すると、続いて図7に示すようなプレイモード選択画像が表示される。ここでは、ユーザAは、「シングルプレイ」か「マルチプレイ(マルチカートリッジ)」か「マルチプレイ(ダウンロードプレイ)」を選択することができる。「シングルプレイ」は、一人でプレイするモードである。「マルチプレイ(マルチカートリッジ)」は、同一のゲームのゲームプログラムを所有している複数のプレイヤ間でマルチプレイを行うモードであって、当該モードでは、マルチプレイを開始する前にゲーム装置間でゲームプログラムを送受信する必要はないが、マルチプレイを行う全てのゲーム装置がゲームプログラムを所有している必要がある。
【0083】
図7においてユーザAが「マルチプレイ(ダウンロードプレイ)」を選択すると、第1ゲーム装置10aは親機としての動作を開始して、図8に示すような募集中画像が表示される。この状態は、第1ゲーム装置10aがビーコンを発信して、他のゲーム装置(子機)からの参加要求を待っている状態(すなわち、ダウンロードプレイの参加者を募集している状態)である。
【0084】
親機10aによる募集に対して子機10bからの応募があった場合、図9に示すような承認画像が表示される。承認画像には、応募してきた子機10bに関する情報(ユーザの顔画像、ユーザ名など)が表示される。
【0085】
図9においてユーザAが「はい」を選択すると、必要に応じて、親機10aから子機10bへと子機用プログラムBおよびファームウェア更新プログラムBがダウンロードされた後、マルチプレイが開始される。
【0086】
(子機の処理の流れ)
図10〜図15は、ダウンロードプレイを開始するときに第2ゲーム装置(子機)10bの画面(例えば、下側LCD12の画面)に表示される画像を示している。
【0087】
ユーザ(以下、ユーザBと称す)が第2ゲーム装置10bの電源をオンにすると、図10のようなゲーム選択画像が表示される。このゲーム選択画像では、ユーザBは、外部メモリ44bに記憶されている1以上のゲーム(ここでは無し)と、内部メモリ35bに記憶されている1以上のゲーム(ここではゲームCおよびゲームD)の中から、所望のゲームを選択することができる。また、図10において、ユーザBは「ダウンロードプレイ」を選択することもできる。
【0088】
図10においてユーザBが「ダウンロードプレイ」を選択すると、第2ゲーム装置10bは子機としての動作を開始して、図11に示すような探索中画像が表示される。この状態は、ダウンロードプレイの参加者を募集している親機から発信されているビーコンの受信を試みている状態である。
【0089】
1台以上の親機から発信されているビーコンを受信できた場合、図12に示すように、それらの親機に関する情報(ユーザの顔画像、ゲーム名、ユーザ名など)が表示される。図12の例では、ゲームAのダウンロードプレイの参加者を募集しているユーザAの親機の情報と、ゲームEのダウンロードプレイの参加者を募集しているユーザCの親機の情報がリストアップされている。ユーザBは、リストアップされている親機の中から所望の親機を選択して、当該親機とのダウンロードプレイに応募することができる。
【0090】
図12においてユーザBが、ユーザAの親機10aを選択すると、子機10bのファームウェアのバージョン情報が子機10bから親機10aへと自動的に送信され、親機10aにおいて、子機10bのファームウェアの更新の要否が自動的に判断される。
【0091】
子機10bのファームウェアの更新が必要であると判断された場合には、その旨を示す信号が親機10aから子機10bへと送信され、子機10bの画面に図13に示すような更新確認画像が表示される。
【0092】
図13においてユーザが「はい」を選択すると、ゲームAに対応するファームウェア更新プログラムAが親機10aから子機10bへと送信され、当該ファームウェア更新プログラムAに基づいて子機10bのファームウェアが更新される。
【0093】
子機10bのファームウェアの更新が完了すると、子機10bの画面に図14に示すような更新完了画像が表示され、子機10bの再起動が行われる。そして、再起動後に、図15に示すようなダウンロードプレイ確認画像が表示され、ここでユーザが「はい」を選択すると、親機10aから子機10bへ子機用ゲームプログラムAがダウンロードされ、子機10bの内部メモリ35bに保存された後、当該子機用ゲームプログラムAに従ってゲームAのマルチプレイが開始される。
【0094】
(ゲーム装置の動作の詳細)
次に、図16〜図22を参照して、ゲーム装置10の動作についてより詳細に説明する。
【0095】
図16は、外部メモリ44に記憶されるプログラムおよびデータの一例を示している。この例では、外部メモリ44にはゲームAに関連するデータおよびプログラムが記憶されている。より具体的には、ゲーム関連情報Aと、親機用ゲームプログラムAと、子機用ゲームプログラムAと、ファームウェア更新プログラムAが記憶されている。ゲーム関連情報Aには、例えば、ゲームを識別するためのゲームIDや、ゲームAのゲーム名や、ゲームAを表すアイコンや、ゲームAの実行に必要となるファームウェアのバージョン情報が含まれている。
【0096】
図17は、内部メモリ35に記憶されるプログラムおよびデータの一例を示している。この例では、内部メモリ35には、ユーザ情報と、DLプレイ制御プログラムと、ゲームBに関するデータおよびプログラムが記憶されている。ユーザ情報には、例えば、ユーザ名や、ユーザの顔画像が含まれている。DLプレイ制御プログラムは、ダウンロードプレイを開始するために必要な処理を実行するためのコンピュータプログラムである。ゲームBに関するデータおよびプログラムは、例えば、無線通信モジュール36およびインターネットを介してサーバー装置からダウンロードされて内部メモリ35に保存されたものである。内部メモリ35には、子機用ゲームプログラムを保存するための子機用ゲームプログラム記憶領域が設けられている。
【0097】
なお、DLプレイ制御プログラムは、ゲーム装置10の出荷時に内部メモリ35に予め格納されていてもよいし、ゲーム装置10の出荷後に、ユーザがサーバー装置からダウンロードしてもよいし、CD−ROMや半導体メモリ等の外部記憶媒体を通じてゲーム装置10に供給されてもよい。
【0098】
図18〜図22は、DLプレイ制御プログラム等に基づいてゲーム装置10のCPU311によって実行される処理の流れを示すフローチャートである。
【0099】
(メイン処理)
図18において、ゲーム装置10の電源がオンになると、DLプレイ制御プログラムの実行が開始され、CPU311は、ステップS10において画面にゲーム選択画像(図6、図10)を表示する。ゲーム選択画像には、外部メモリ44に記憶されているゲームと、内部メモリ35に記憶されているゲームが表示される。ただし、内部メモリ35の子機用ゲームプログラム記憶領域に保存されているゲーム(子機用ゲームプログラム)については表示されない。したがって、ユーザがゲーム選択画像からダウンロードプレイを選択しない限り、内部メモリ35の子機用ゲームプログラム記憶領域に保存されている子機用ゲームプログラムが実行されることはない。すなわち、内部メモリ35の子機用ゲームプログラム記憶領域に保存されているゲーム(子機用ゲームプログラム)は、ユーザの操作により任意に実行することができず、当該子機用ゲームプログラムを提供し得る親機と通信可能な状態でのみ実行することができる。
【0100】
ステップS11では、CPU311は、入力装置(例えば、タッチパネル13)からの信号に基づいて、ユーザによってダウンロードプレイ(図6または図10の「ダウンロードプレイ」)が選択されたかどうかを判断し、ユーザによってダウンロードプレイが選択された場合には処理はステップS12に進み、そうでない場合には処理はステップS13に進む。
【0101】
ステップS12では、CPU311は、子機処理を実行する。子機処理の詳細は後述する。
【0102】
ステップS13では、CPU311は、入力装置からの信号に基づいて、ゲーム選択画像に表示されているいずれかのゲームソフトがユーザによって選択されたかどうかを判断し、いずれかのゲームソフトが選択された場合には処理はステップS14に進み、そうでない場合には処理はステップS15に進む。
【0103】
ステップS14では、CPU311は、親機処理を実行する。親機処理の詳細は後述する。
【0104】
ステップS15では、CPU311は、ゲーム装置10の電源がオフになったかどうかを判断し、電源がオフになった場合にはDLプレイ制御プログラムの実行を終了し、そうでない場合には処理はステップS10に戻る。
【0105】
(子機処理)
次に、図19のフローチャートを参照して、図18のステップS12の子機処理について詳細に説明する。
【0106】
図19のステップS20では、CPU311は、近距離無線の通信可能範囲に存在する親機をサーチ(探索)するために(言い換えれば、ダウンロードプレイの募集を行っている親機に参加するために)、他のゲーム装置から発信されたビーコンを受信したかどうかを判断し、ビーコンを受信した場合には処理はステップS22に進み、そうでない場合には処理はステップS21に進む。
【0107】
ステップS21では、CPU311は、ビーコンの受信を再試行するかどうかをユーザに問い合わせ、ビーコンの受信を再試行する場合には処理はステップS20に戻り、そうでない場合には子機処理を終了する。
【0108】
ステップS22では、CPU311は、受信したビーコンの発信元である親機から、親機情報を受信する。親機情報には、親機に関する情報(ユーザの顔画像、ユーザ名、ダウンロードプレイの参加者を募集しているゲームのゲームIDおよびゲーム名など)が含まれている。
【0109】
ステップS23では、CPU311は、受信した親機情報に基づいて、画面に親機リスト(図12)を表示する。
【0110】
ステップS24では、CPU311は、入力装置(例えば、タッチパネル13)からの信号に基づいて、親機リストに表示されているいずれかの親機がユーザによって選択されたかどうかを判断し、いずれかの親機が選択された場合には処理はステップS25に進み、そうでない場合には、いずれかの親機が選択されるまで待機する。
【0111】
ステップS25では、CPU311は、選択された親機(以下では、単に親機と称す)に対して子機情報を送信する。子機情報には、内部メモリ35に保存されているユーザ情報(ユーザの顔画像、ユーザ名など)などが含まれる。
【0112】
ステップS26では、CPU311は、親機から承認信号を受信したかどうかを判断し、承認信号を受信した場合には処理はステップS29に進み、そうでない場合には処理はステップS27に進む。
【0113】
ステップS27では、CPU311は、親機から拒否信号を受信したかどうかを判断し、拒否信号を受信した場合には処理はステップS28に進み、そうでない場合には処理はステップS26に戻る。
【0114】
ステップS28では、CPU311は、親機とのダウンロードプレイの開始に失敗した旨のメッセージを画面に表示し、その後、処理はステップS20に戻る。
【0115】
ステップS29では、CPU311は、ファームウェア更新処理(子機)を実行する。ファームウェア更新処理(子機)の詳細は後述する。
【0116】
ステップS30では、CPU311は、内部メモリ35の子機用ゲームプログラム記憶領域に、これからダウンロードプレイを実行しようとしているゲームの子機用ゲームプログラムがすでに保存されているかどうかを判断する。当該判断は、例えば、図19のステップS22で受信した親機情報に含まれているゲームIDと、内部メモリ35の子機用ゲームプログラム記憶領域に存在している子機用ゲームプログラム(もし存在していれば)のゲームIDとを比較することによって行われる。そして、内部メモリ35の子機用ゲームプログラム記憶領域に、これからダウンロードプレイを実行しようとしているゲームの子機用ゲームプログラムがすでに保存されている場合には処理はステップS31に進み、そうでない場合には処理はステップS32に進む。
【0117】
ステップS31では、CPU311は、親機に対してダウンロード不要信号を送信する。
【0118】
ステップS32では、CPU311は、内部メモリ35の子機用ゲームプログラム記憶領域に、これからダウンロードプレイを実行しようとしているゲームとは別のゲームの子機用ゲームプログラムが保存されているかどうかを判断する。そして、別のゲームの子機用ゲームプログラムが保存されている場合には処理はステップS33に進み、そうでない場合には処理はステップS34に進む。
【0119】
ステップS33では、CPU311は、内部メモリ35の子機用ゲームプログラム記憶領域に保存されている別のゲームの子機用ゲームプログラムを消去する。これは、子機用ゲームプログラム記憶領域には、一つのゲームプログラムしか保存できないようになっているため、新たにゲームプログラムをダウンロードして保存するためには、既に保存されているゲームプログラムを消去する必要があるからである。
【0120】
ステップS34では、CPU311は、親機に対してダウンロード要求信号を送信する。
【0121】
ステップS35では、CPU311は、ローカル通信モジュール37を介した近距離無線通信によって、これからダウンロードプレイを実行しようとしているゲームの子機用ゲームプログラムを親機から受信する。なお、受信した子機用ゲームプログラムには、当該子機用ゲームプログラムに対応するゲームのゲームIDが含まれている(もしくは、子機用ゲームプログラムと一緒にゲームIDも受信される)。
【0122】
ステップS36では、CPU311は、受信した子機用ゲームプログラムを、内部メモリ35の子機用ゲームプログラム記憶領域に保存する。
【0123】
ステップS37では、CPU311は、内部メモリ35の子機用ゲームプログラム記憶領域に保存されている子機用ゲームプログラムに基づいて通信ゲーム処理(すなわち、マルチプレイ)を実行する。当該通信ゲーム処理では、複数のゲーム装置の間でゲームデータが適宜に送受信され、これらのゲーム装置をそれぞれ操作する複数のユーザが同一のゲームを一緒にプレイすることができる。
【0124】
ステップS38では、CPU311は、ゲームが終了したかどうかを判断し、ゲームが終了した場合には子機処理を終了し、そうでない場合には処理はステップS37に戻る。
【0125】
(ファームウェア更新処理(子機))
次に、図20のフローチャートを参照して、図19のステップS29のファームウェア更新処理(子機)について詳細に説明する。
【0126】
図20のステップS40では、CPU311は、子機(すなわち、自身のゲーム装置)のファームウェアのバージョン情報を親機に送信する。バージョン情報は、例えば、ファームウェアのバージョンを識別するための識別コードであってもよい。
【0127】
ステップS41では、CPU311は、親機から更新要否フラグを受信する。更新要否フラグとは、これからダウンロードプレイを実行しようとしているゲームの子機用ゲームプログラムを実行するために、子機のファームウェアを更新する必要があるか否かを示す情報である。子機のファームウェアを更新する必要がある場合には、更新要否フラグはオンになっており、更新する必要が無い場合には、更新要否フラグはオフになっている。
【0128】
ステップS42では、CPU311は、受信した更新要否フラグがオンであるかどうかを判断し、受信した更新要否フラグがオンである場合には処理はステップS44に進み、そうでない場合には処理はステップS43に進む。
【0129】
ステップS43では、CPU311は、親機に対してファームウェア不要信号を送信する。
【0130】
ステップS44では、CPU311は、ファームウェアの更新がユーザによって承認されたかどうかを判断する(図13)。そして、ファームウェアの更新が承認された場合には処理はステップS45に進み、そうでない場合には処理は図19のステップS23に戻る。
【0131】
ステップS45では、CPU311は、ゲーム装置10の電源が所定条件を満たしているかどうかを判断する。これは、ファームウェアの更新処理の途中でゲーム装置10の電源が切れてしまうのを防止するためのチェックである。所定条件には、例えば、ゲーム装置10に内蔵されているバッテリーの残量や、ACアダプタを通じて商用電源がゲーム装置10に供給されているか否かなどが含まれている。そして、ゲーム装置10に内蔵されているバッテリーの残量が所定値以上あるとき、および/またはACアダプタを通じて商用電源がゲーム装置10に供給されているとき、所定条件を満たしていると判断される。ゲーム装置10の電源が所定条件を満たしている場合には処理はステップS48に進み、そうでない場合には処理はステップS46に進む。
【0132】
ステップS46では、CPU311は、ファームウェアの更新処理の途中でゲーム装置10の電源が切れてしまう恐れがある旨の警告メッセージや、バッテリーを充電したりACアダプタを接続したりすることを促すメッセージや、ファームウェアの更新を中止するか続行するかをユーザに問い合わせるメッセージを画面に表示する。
【0133】
ステップS47では、CPU311は、ユーザによってファームウェアの更新の中止が指示されたかどうかを判断し、ファームウェアの更新の中止が指示された場合には処理は図19のステップS23に戻り、そうでない場合には処理はステップS45に戻る。
【0134】
ステップS48では、CPU311は、親機に対してファームウェア要求信号を送信する。
【0135】
ステップS49では、CPU311は、ローカル通信モジュール37を介した近距離無線通信によって、これからダウンロードプレイを実行しようとしているゲームに対応するファームウェア更新プログラムを親機から受信する。
【0136】
ステップS50では、CPU311は、受信したファームウェア更新プログラムに基づいてファームウェアを更新する。
【0137】
ステップS51では、CPU311は、更新されたファームウェアを有効化するために、ゲーム装置10を再起動する。こうしてファームウェア更新処理(子機)は終了する。
【0138】
(親機処理)
次に、図21のフローチャートを参照して、図18のステップS14の親機処理について詳細に説明する。
【0139】
図21のステップS60では、CPU311は、入力装置(例えば、タッチパネル13)からの信号に基づいて、ユーザによってダウンロードプレイ(図7の「マルチプレイ(ダウンロードプレイ)」)が選択されたかどうかを判断し、ユーザによってダウンロードプレイが選択された場合には処理はステップS63に進み、そうでない場合には処理はステップS61に進む。
【0140】
ステップS61では、CPU311は、ユーザによって選択されたゲームモード(図7の「シングルプレイ」または「マルチプレイ(マルチカートリッジ)」に応じたゲーム処理を実行する。
【0141】
ステップS62では、CPU311は、ゲームが終了したかどうかを判断し、ゲームが終了した場合には親機処理を終了し、そうでない場合には処理はステップS61に戻る。
【0142】
ステップS63では、CPU311は、近距離無線の通信可能範囲に存在する他のゲーム装置に自機の存在を知らせるために(言い換えれば、他のゲーム装置からのダウンロードプレイへの参加を募るために)、ビーコンを発信する。
【0143】
ステップS64では、CPU311は、ビーコンを受信した他のゲーム装置(以下、子機と称す)からの要求に応じて、当該子機に対して親機情報(ユーザの顔画像、ユーザ名、ダウンロードプレイの参加者を募集しているゲームのゲームIDおよびゲーム名など)を送信する。
【0144】
ステップS65では、CPU311は、子機から子機情報を受信したかどうかを判断し、子機情報を受信した場合には処理はステップS67に進み、そうでない場合には処理はステップS66に進む。
【0145】
ステップS66では、CPU311は、ダウンロードプレイの参加者の募集(すなわち、ビーコンの発信)を再試行するかどうかをユーザに問い合わせ、募集を再試行する場合には処理はステップS63に戻り、そうでない場合には処理はステップS60に戻る。
【0146】
ステップS67では、CPU311は、受信した子機情報(募集してきた子機からの子機情報)を画面に表示する(図9)。
【0147】
ステップS68では、CPU311は、募集してきた子機(以下では、単に子機と称す)の参加がユーザによって承認されたかどうかを判断し、承認された場合には処理はステップS70に進み、そうでない場合には処理はステップS69に進む。
【0148】
ステップS69では、CPU311は、子機に対して拒否信号を送信する。そして、処理はステップS60に戻る。
【0149】
ステップS70では、CPU311は、子機に対して承認信号を送信する。
【0150】
ステップS71では、CPU311は、ファームウェア更新処理(親機)を実行する。ファームウェア更新処理(親機)の詳細は後述する。
【0151】
ステップS72では、CPU311は、子機からダウンロード要求信号を受信したかどうかを判断し、ダウンロード要求信号を受信した場合には処理はステップS74に進み、そうでない場合には処理はステップS73に進む。
【0152】
ステップS73では、CPU311は、子機からダウンロード不要信号を受信したかどうかを判断し、ダウンロード不要信号を受信した場合には処理はステップS75に進み、そうでない場合には処理はステップS72に戻る。
【0153】
ステップS74では、CPU311は、これからダウンロードプレイを実行しようとしているゲーム(すなわち、ゲーム選択画像においてユーザが選択したゲーム)の子機用ゲームプログラムを外部メモリ44または内部メモリ35から読み出して、ローカル通信モジュール37を介した近距離無線通信によって、子機に送信する。
【0154】
ステップS75では、CPU311は、外部メモリ44または内部メモリ35に記憶されている、送信した子機用ゲームプログラムに対応する親機用ゲームプログラムに基づいて、通信ゲーム処理(すなわち、マルチプレイ)を実行する。
【0155】
ステップS76では、CPU311は、ゲームが終了したかどうかを判断し、ゲームが終了した場合には親機処理を終了し、そうでない場合には処理はステップS75に戻る。
【0156】
(ファームウェア更新処理(親機))
次に、図22のフローチャートを参照して、図21のステップS71のファームウェア更新処理(親機)について詳細に説明する。
【0157】
図22のステップS80では、CPU311は、子機のファームウェアのバージョン情報を子機から受信する。
【0158】
ステップS81では、CPU311は、子機の現在のファームウェアが、これからダウンロードプレイを実行しようとしているゲーム(すなわち、ゲーム選択画像においてユーザが選択したゲーム)の要求条件を満たしているかどうかを判断する。この判断は、具体的には、受信した子機のファームウェアのバージョン情報と、上記ゲームのゲーム関連情報とに基づいて行われる。そして、子機の現在のファームウェアが上記ゲームの要求条件を満たしている場合には、処理はステップS82に進み、そうでない場合には処理はステップS83に進む。
【0159】
ステップS82では、CPU311は、更新要否フラグをオフにセットする。
【0160】
ステップS83では、CPU311は、更新要否フラグをオンにセットする。
【0161】
ステップS84では、CPU311は、子機に更新要否フラグを送信する。
【0162】
ステップS85では、CPU311は、子機からファームウェア要求信号を受信したかどうかを判断し、ファームウェア要求信号を受信した場合には処理はステップS87に進み、そうでない場合には処理はステップS86に進む。
【0163】
ステップS86では、CPU311は、子機からファームウェア不要信号を受信したかどうかを判断し、ファームウェア不要信号を受信した場合にはファームウェア更新処理(親機)を終了し、そうでない場合には処理はステップS85に戻る。
【0164】
ステップS87では、CPU311は、これからダウンロードプレイを実行しようとしているゲームに対応するファームウェア更新プログラムを外部メモリ44または内部メモリ35から読み出して、ローカル通信モジュール37を介した近距離無線通信によって、子機に送信する。そして、ファームウェア更新処理(親機)を終了する。
【0165】
(上記実施形態の効果)
上記実施形態によれば、ゲームプログラムを所有しているユーザは、ゲームプログラムを所有していない他のユーザとマルチプレイを楽しむことができる。また、ゲームプログラムを所有していない他のユーザのゲーム装置10のファームウェアのバージョンが古い場合であっても、そのファームウェアを更新してマルチプレイを楽しむことができる。
【0166】
また、上記実施形態によれば、ダウンロードプレイにおいて親機から子機にダウンロードされた子機用プログラムが、子機の不揮発性メモリに保存される。したがって、子機の電源を切った後に再び同じゲームのダウンロードプレイを実行する場合に、子機用プログラムを親機から再度ダウンロードする必要が無く、ダウンロードプレイを開始するまでの待ち時間を短縮することができる。また、ユーザの操作の手間も省くことができる。
【0167】
また、上記実施形態によれば、ダウンロードプレイの開始前に、子機のファームウェアの更新の要否のチェックが行われ、更新が必要な場合には、ファームウェア更新プログラムが親機から子機へ送信されて、子機のファームウェアの更新が行われる。したがって、インターネットに接続してサーバーからゲーム装置にファームウェア更新プログラムをダウンロードするなどの手間をかけることなく、ダウンロードプレイの開始前に必要に応じて自動的にファームウェアが更新され、ユーザにとって便利である。また、インターネットに接続不可能な状況でも、ファームウェアの更新が可能である。
【0168】
また、上記実施形態によれば、子機が親機からダウンロードした子機用ゲームプログラムは、内部メモリ35に保存されるが、ゲーム選択画像(図6、図10)には表示されない。よって、当該子機用ゲームプログラムに対応する親機用ゲームプログラムを所有している他のゲーム装置と通信可能な状態にならないと、ユーザは子機用ゲームプログラムを実行することができないため、従来のダウンロードプレイと同様に、子機用ゲームプログラムの実行を、親機用ゲームプログラムを所有している他のゲーム装置と通信可能な状態で、ゲーム装置10の電源が切れるまでの間だけに制限することができる。
【0169】
また、上記実施形態によれば、内部メモリ35に子機用ゲームプログラム記憶領域が確保されているので、ダウンロードプレイを開始しようとしたときには空き容量が足らずに子機用ゲームプログラムをダウンロードできない、という状況の発生を防止することができる。
【0170】
(変形例)
なお、上記実施形態では、子機が親機から子機用ゲームプログラムをダウンロードして、親機との間でマルチプレイを実行する例を説明したが、本発明はこれに限らない。他の実施形態では、子機が親機からゲーム以外のアプリケーションプログラム(例えば、チャットソフトや楽器演奏ソフトなど)をダウンロードして、親機との通信処理を含む所定の情報処理を実行してもよい。さらに他の実施形態では、親機との通信処理を含まないアプリケーションプログラム(例えば、シングルプレイ用のゲームプログラムや、動画閲覧ソフトなど)を親機から子機へダウンロードしてもよい。
【0171】
また、上記実施形態では、親機用ゲームプログラムと子機用ゲームプログラムが異なっている例を説明したが、他の実施形態では、親機用ゲームプログラムと子機用ゲームプログラムが同一のゲームプログラムであってもよい。
【0172】
また、上記実施形態では、子機が親機からダウンロードした子機用ゲームプログラムが、子機の内部メモリ35の子機用ゲームプログラム記憶領域に保存される例を説明したが、本発明はこれに限らず、内部メモリ35の任意の領域や、内部メモリ35以外の不揮発性メモリに保存されるようにしてもよい。この場合、ダウンロードプレイの際に親機からダウンロードしたゲームプログラムと、その他のゲームプログラムとを識別可能にするために、内部メモリ35等に保存されている各ゲームプログラムに対して、ダウンロードプレイの際に親機からダウンロードしたゲームプログラムであるか否かを示すフラグ(ダウンロードプレイフラグ)を関連付けて記憶するようにしてもよい。そして、ゲーム選択画像(図6、図10)を表示するときに、当該ダウンロードプレイフラグを参照することによって、ダウンロードプレイの際に親機からダウンロードしたゲームプログラム以外のゲームプログラムだけを表示するようにすればよい。
【0173】
また、上記実施形態では、子機用ゲームプログラム記憶領域に1つの子機用ゲームプログラムしか保存されない例を説明したが、他の実施形態では、子機用ゲームプログラム記憶領域に複数の子機用ゲームプログラムが保存されてもよい。この場合、子機用ゲームプログラム記憶領域に保存されている子機用ゲームプログラムの個数または合計データサイズが所定値を超えたときや、ダウンロードした子機用プログラムを保存するための空き領域が無い場合に、所定の判断基準(例えば、内部メモリに保存された日が最も古いものや、ゲームの発売日が最も古いものや、最後にダウンロードプレイした日が最も古いものなど)に従って少なくとも1つの子機用ゲームプログラムを自動的に消去する、もしくは消去すべき子機用ゲームプログラムをユーザに選択させるようにしてもよい。
【0174】
また、上記実施形態では、親機から子機へのプログラムの送信は、ローカル通信モジュール37を介した近距離無線通信を用いて行っているが、本発明はこれに限らない。他の実施形態では、無線通信モジュール36を介した通信や、通信ケーブルを介した通信や、赤外線通信や、インターネットを介した通信など、任意の通信方式を用いてもよい。
【0175】
また、上記実施形態では、携帯型のゲーム装置10を用いる例を説明したが、本発明はこれに限らず、任意の情報処理装置(例えば、携帯電話やノートパソコンのような携帯型の情報処理装置や、据え置き型ゲーム装置やデスクトップパソコンなどの据え置き型の情報処理装置)を用いてもよい。また、親機と子機とが異なる種類の情報処理装置であってもよい。
【0176】
また、上記実施形態では、子機のファームウェアの更新の要否の判断(図22のステップS81)を親機が行う例を説明したが、他の実施形態では、子機のファームウェアの更新の要否の判断を子機が行ってもよい。この場合、子機は、ゲームの要求条件に関する情報(例えば、ゲーム関連情報)を親機から受信して、子機のファームウェアの更新の要否を判断するようにしてもよい。
【0177】
また、上記実施形態では、子機の現在のファームウェアが、ダウンロードプレイを実行しようとしているゲームの要求条件を満たしているかどうかを判断し(図22のステップS81)、要求条件を満たしていない場合に、ファームウェア更新プログラムを親機から子機へ送信しているが、他の実施形態では、子機の現在のファームウェアが、親機のファームウェアよりも古いバージョンかどうかを判断し、親機のファームウェアよりも古いバージョンである場合には、ファームウェア更新プログラムを親機から子機へ送信するようにしてもよい。
【0178】
また、上記実施形態では、必要に応じて子機のファームウェアを更新する例を説明したが、本発明はファームウェアに限らず、アプリケーションプログラムを実行する際に必要となる任意の基本ソフト(システムソフトウェア、ファームウェア、オペレーティングシステム等)の更新に適用できる。
【0179】
また、上記実施形態では、1台の親機から1台の子機へゲームプログラムまたはファームウェア更新プログラムを送信する例を説明したが、他の実施形態では、1台の親機から複数の子機へゲームプログラムまたはファームウェア更新プログラムを送信してもよい。
【0180】
また、他の実施形態では、子機のファームウェアを更新する際や、子機が親機から子機用ゲームプログラムをダウンロードする際に、ペアレンタルコントロールがかかっているかどうかをチェックして、その結果に応じて、それらを制限するようにしてもよい。ペアレンタルコントロールとは、ゲーム装置10のユーザが子供である場合に、親がゲーム装置10の機能を制限するためのものであって、例えば、年齢制限のあるゲームソフトの実行を制限したり、インターネットへの接続を制限したりすることができる。そこで、例えば、図20のステップS44でYESに進んだ直後などに、何らかのペアレンタルコントロールがかかっているかどうかを判断し、何らかのペアレンタルコントロールがかかっている場合には、ペアレンタルコントロールを一時的に解除するための暗証番号が正しく入力された場合にのみステップS48に進むようにしてもよい。同様に、図19のステップS29の直後などに、ダウンロードプレイしようとしているゲームが、ペアレンタルコントロールによる制限の対象であるかどうかを判断し、ペアレンタルコントロールによる制限の対象である場合には、ペアレンタルコントロールを一時的に解除するための暗証番号が正しく入力された場合にのみ、当該ゲームの子機用ゲームプログラムのダウンロードまたは実行を許可するようにしてもよい。
【0181】
また、上記実施形態では、図21のステップS68において、募集してきた子機の参加を承認するか否かをユーザの指示に基づいて決定しているが、他の実施形態では、ユーザの指示によらず自動的に承認するようにしてもよい。
【0182】
また、上記実施形態では、受信したビーコンを送受信した後に親機情報を送受信し、当該親機情報には親機に関する情報(ユーザの顔画像、ユーザ名、ダウンロードプレイの参加者を募集しているゲームのゲームIDおよびゲーム名など)が含まれている例を説明した。しかし本発明はこれに限らず、ビーコンに親機情報の一部(ユーザの顔画像、ユーザ名など)が含まれていてもよく、その他の親機情報(ダウンロードプレイの参加者を募集しているゲームのゲームIDおよびゲーム名など)をビーコンとは別に送受信してもよい。
【0183】
なお、上記実施形態では、図19のステップS29においてファームウェア更新処理(子機)を実行した後に、ステップS30において、これからダウンロードしようとしている子機用ゲームプログラムが内部メモリ35の子機用ゲームプログラム記憶領域にすでに保存されているかどうかの判断を行っているが、他の実施形態では、図19のステップS29においてファームウェア更新処理(子機)を実行する直前に、これからダウンロードしようとしている子機用ゲームプログラムが内部メモリ35の子機用ゲームプログラム記憶領域にすでに保存されているかどうかの判断を行い、すでに保存されている場合には、過去にすでにファームウェアの更新も行われたはずなので、ファームウェア更新処理(子機)をスキップするようにしてもよい。
【0184】
なお、上記実施形態では、図18〜図22に示すフローチャートの各ステップの処理をCPU311が実行する例を説明したが、本発明はこれに限らず、これらの処理を複数のプロセッサが分担して処理するようにしてもよい。また、これらの処理の一部をハードウェアが実行するようにしてもよい。
【符号の説明】
【0185】
10 ゲーム装置
11 下側ハウジング
12 下側LCD
13 タッチパネル
14 操作ボタン
15 アナログスティック
16 LED
21 上側ハウジング
22 上側LCD
23 外側撮像部
23a 外側撮像部(左)
23b 外側撮像部(右)
24 内側撮像部
25 3D調整スイッチ
26 3Dインジケータ
28 タッチペン
31 情報処理部
311 CPU
312 GPU
32 メインメモリ
35 データ保存用内部メモリ
44 外部メモリ

【特許請求の範囲】
【請求項1】
互いに通信可能な第1情報処理装置と第2情報処理装置を含む通信システムであって、
前記第1情報処理装置は、
前記第1情報処理装置と前記第2情報処理装置との間で所定の通信処理を実行するためのアプリケーションプログラムを記憶するアプリケーションプログラム記憶手段、
前記第2情報処理装置からの要求に応じて前記アプリケーションプログラムを前記第2情報処理装置に送信するアプリケーションプログラム送信手段、および
前記第2情報処理装置との間で前記通信処理を実行する第1通信処理手段を備え、
前記第2情報処理装置は、
不揮発性メモリ、
前記アプリケーションプログラムが前記不揮発性メモリに既に保存されているか否かを判断する第1判断手段、
前記第1判断手段によって保存されていないことが判断されたとき、前記第1情報処理装置から前記アプリケーションゲームプログラムを受信するアプリケーションプログラム受信手段、
前記アプリケーションプログラム受信手段によって受信されたアプリケーションプログラムを前記不揮発性メモリに保存するアプリケーションプログラム保存手段、および
前記不揮発性メモリに保存された前記アプリケーションプログラムを用いて前記第1情報処理装置との間で前記通信処理を実行する第2通信処理手段を備える、通信システム。
【請求項2】
前記第2通信処理手段は、前記第1判断手段によって前記アプリケーションプログラムが前記不揮発性メモリに既に保存されていると判断されたとき、当該既に保存されているアプリケーションプログラムを用いて前記第1情報処理装置との間で前記通信処理を実行する、請求項1に記載の通信システム。
【請求項3】
前記第1情報処理装置および前記第2情報処理装置は、近距離無線通信によって互いに通信可能な携帯型の情報処理装置である、請求項1または2に記載の通信システム。
【請求項4】
前記第1情報処理装置は、前記通信処理への参加を他の情報処理装置に対して募集する側の情報処理装置であり、
前記第2情報処理装置は、前記募集に対して参加する側の情報処理装置であり、
前記第1判断手段によって前記アプリケーションプログラムが前記不揮発性メモリに既に保存されていると判断されたとき、または、前記アプリケーションプログラム受信手段によって受信されたアプリケーションプログラムが前記アプリケーションプログラム保存手段によって前記不揮発性メモリに保存されたときに、前記第1通信処理手段および前記第2通信処理手段は前記通信処理を実行する、請求項1〜3のいずれか1項に記載の通信システム。
【請求項5】
前記第1情報処理装置は、前記アプリケーションプログラムの識別情報を送信する識別情報送信手段をさらに備え、
前記第1判断手段は、前記識別情報送信手段によって送信される識別情報と前記不揮発性メモリに保存されているアプリケーションプログラムの識別情報とを対比することによって、前記アプリケーションプログラムが前記不揮発性メモリに既に保存されているか否かを判断する、請求項1〜4のいずれか1項に記載の通信システム。
【請求項6】
前記第2情報処理装置は、前記第1判断手段によって前記アプリケーションプログラムが前記不揮発性メモリに保存されていないと判断されたとき、前記第1情報処理装置に対して前記アプリケーションプログラムを要求する要求信号を送信する要求信号送信手段をさらに備え、
前記アプリケーションプログラム送信手段は、前記要求情報送信手段によって送信される要求信号を受信したとき、前記アプリケーションプログラムを前記第2情報処理装置に送信する、請求項1〜5のいずれか1項に記載の通信システム。
【請求項7】
前記第2情報処理装置は、
前記アプリケーションプログラム受信手段によって過去に受信された、前記アプリケーションプログラムとは別のアプリケーションプログラムが前記不揮発性メモリに保存されているか否かを判断する第2判断手段、および
前記第2判断手段によって前記不揮発性メモリに別のアプリケーションが保存されていると判断されたとき、当該別のアプリケーションプログラムを消去する第1消去手段をさらに備え、
前記アプリケーションプログラム保存手段は、前記第1消去手段によって消去された後、前記アプリケーションプログラム受信手段によって受信される前記アプリケーションプログラムを保存する、請求項1〜6のいずれか1項に記載の通信システム。
【請求項8】
前記第2情報処理装置は、
前記アプリケーションプログラム受信手段によって受信されるアプリケーションプログラムを保存するための空き領域が前記不揮発性メモリにあるか否かを判別する空き領域判別手段、および
前記空き領域判別手段によって空き領域がないことが判別されたとき、当該空き領域が確保されるまで前記不揮発性メモリに保存されているアプリケーションプログラムを所定の判断基準にしたがって消去する第2消去手段をさらに備え、
前記アプリケーションプログラム保存手段は、前記第2消去手段によって消去された後、前記アプリケーションプログラムを保存する、請求項1〜6のいずれか1項に記載の通信システム。
【請求項9】
前記第2情報処理装置は、前記第1情報処理装置から前記アプリケーションプログラムの識別情報を受信する識別情報受信手段、および
前記識別情報受信手段によって受信された識別情報と前記不揮発性メモリに保存されているアプリケーションプログラムの識別情報とが一致するか否かを判断する第2判断手段をさらに備え、
前記第2通信処理手段は、前記第2判断手段によって一致することが判断されたとき、前記不揮発性メモリに保存されているアプリケーションプログラムを用いて前記第1情報処理装置との間で前記通信処理を実行する、請求項1〜8のいずれか1項に記載の通信システム。
【請求項10】
前記不揮発性メモリに保存されているアプリケーションプログラムは、任意に実行することのできないアプリケーションプログラムである、請求項1〜9のいずれか1項に記載の通信システム。
【請求項11】
前記アプリケーションプログラム保存手段は、前記アプリケーションプログラム受信手段によって受信されたアプリケーションプログラムを他のアプリケーションプログラムと識別可能に保存し、
前記第2情報処理装置は、
前記アプリケーションプログラム受信手段によって受信されたアプリケーションプログラムを除くアプリケーションプログラムを一覧表示する一覧表示手段、
前記一覧表示手段によって表示されたアプリケーションプログラムからいずれか1つをユーザの指示に基づいて選択する選択手段、および
前記選択手段によって選択されたアプリケーションプログラムを実行するアプリケーション実行手段をさらに備える、請求項1〜10のいずれか1項に記載の通信システム。
【請求項12】
他の情報処理装置と通信可能な情報処理装置であって、
不揮発性メモリ、
前記他の情報処理装置との間で所定の通信処理を実行するためのアプリケーションプログラムが前記不揮発性メモリに既に保存されているか否かを判断する第1判断手段、
前記第1判断手段によって保存されていないことが判断されたとき、前記他の情報処理装置から前記アプリケーションゲームプログラムを受信するアプリケーションプログラム受信手段、
前記アプリケーションプログラム受信手段によって受信されたアプリケーションプログラムを前記不揮発性メモリに保存するアプリケーションプログラム保存手段、および
前記不揮発性メモリに保存された前記アプリケーションプログラムを用いて前記他の情報処理装置との間で前記通信処理を実行する通信処理手段を備える、情報処理装置。
【請求項13】
不揮発性メモリを有する情報処理装置のコンピュータを、
他の情報処理装置との間で所定の通信処理を実行するためのアプリケーションプログラムが前記不揮発性メモリに既に保存されているか否かを判断する第1判断手段、
前記第1判断手段によって保存されていないことが判断されたとき、前記他の情報処理装置から前記アプリケーションゲームプログラムを受信するアプリケーションプログラム受信手段、
前記アプリケーションプログラム受信手段によって受信されたアプリケーションプログラムを前記不揮発性メモリに保存するアプリケーションプログラム保存手段、および
前記不揮発性メモリに保存された前記アプリケーションプログラムを用いて前記他の情報処理装置との間で前記通信処理を実行する通信処理手段として機能させるための、通信プログラム。
【請求項14】
互いに通信可能な第1情報処理装置と第2情報処理装置との間で所定の通信処理を実行するための通信方法であって、
前記第2情報処理装置の判断手段が、前記第1情報処理装置との間で前記通信処理を実行するためのアプリケーションプログラムが当該第2情報処理装置の不揮発性メモリに既に保存されているか否かを判断するステップ、
前記判断手段によって保存されていないことが判断されたとき、前記第1情報処理装置のアプリケーションプログラム送信手段が、前記第2情報処理装置からの要求に応じて、前記アプリケーションプログラムを前記第2情報処理装置に送信するステップ、
前記第2情報処理装置のアプリケーションプログラム受信手段が、前記第1情報処理装置から前記アプリケーションゲームプログラムを受信するステップ、
前記第2情報処理装置のアプリケーションプログラム保存手段が、前記アプリケーションプログラム受信手段によって受信されたアプリケーションプログラムを前記不揮発性メモリに保存するステップ、および
前記第2情報処理装置の通信処理手段が、前記不揮発性メモリに保存された前記アプリケーションプログラムを用いて前記第1情報処理装置との間で前記通信処理を実行するステップを備える、通信方法。

【図1】
image rotate

【図2A】
image rotate

【図2B】
image rotate

【図2C】
image rotate

【図2D】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate

【図17】
image rotate

【図18】
image rotate

【図19】
image rotate

【図20】
image rotate

【図21】
image rotate

【図22】
image rotate


【公開番号】特開2012−143269(P2012−143269A)
【公開日】平成24年8月2日(2012.8.2)
【国際特許分類】
【出願番号】特願2011−1525(P2011−1525)
【出願日】平成23年1月6日(2011.1.6)
【出願人】(000233778)任天堂株式会社 (1,115)
【Fターム(参考)】