JP3830442B2 - 無線通信ゲームシステム、ゲーム装置、情報記憶媒体、および、プログラム - Google Patents
無線通信ゲームシステム、ゲーム装置、情報記憶媒体、および、プログラム Download PDFInfo
- Publication number
- JP3830442B2 JP3830442B2 JP2002306867A JP2002306867A JP3830442B2 JP 3830442 B2 JP3830442 B2 JP 3830442B2 JP 2002306867 A JP2002306867 A JP 2002306867A JP 2002306867 A JP2002306867 A JP 2002306867A JP 3830442 B2 JP3830442 B2 JP 3830442B2
- Authority
- JP
- Japan
- Prior art keywords
- communication
- game
- unit
- identification information
- packet
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Lifetime
Links
Images
Classifications
-
- A63F13/12—
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F13/00—Video games, i.e. games using an electronically generated display having two or more dimensions
- A63F13/30—Interconnection arrangements between game servers and game devices; Interconnection arrangements between game devices; Interconnection arrangements between game servers
- A63F13/31—Communication aspects specific to video games, e.g. between several handheld game devices at close range
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F13/00—Video games, i.e. games using an electronically generated display having two or more dimensions
- A63F13/30—Interconnection arrangements between game servers and game devices; Interconnection arrangements between game devices; Interconnection arrangements between game servers
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F13/00—Video games, i.e. games using an electronically generated display having two or more dimensions
- A63F13/30—Interconnection arrangements between game servers and game devices; Interconnection arrangements between game devices; Interconnection arrangements between game servers
- A63F13/32—Interconnection arrangements between game servers and game devices; Interconnection arrangements between game devices; Interconnection arrangements between game servers using local area network [LAN] connections
- A63F13/327—Interconnection arrangements between game servers and game devices; Interconnection arrangements between game devices; Interconnection arrangements between game servers using local area network [LAN] connections using wireless networks, e.g. Wi-Fi or piconet
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F13/00—Video games, i.e. games using an electronically generated display having two or more dimensions
- A63F13/90—Constructional details or arrangements of video game devices not provided for in groups A63F13/20 or A63F13/25, e.g. housing, wiring, connections or cabinets
- A63F13/92—Video game devices specially adapted to be hand-held while playing
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F2300/00—Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
- A63F2300/20—Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterised by details of the game platform
- A63F2300/204—Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterised by details of the game platform the platform being a handheld device
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F2300/00—Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
- A63F2300/40—Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterised by details of platform network
- A63F2300/402—Communication between platforms, i.e. physical link to protocol
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F2300/00—Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
- A63F2300/40—Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterised by details of platform network
- A63F2300/404—Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterised by details of platform network characterized by a local network connection
- A63F2300/405—Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterised by details of platform network characterized by a local network connection being a wireless ad hoc network, e.g. Bluetooth, Wi-Fi, Pico net
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Computer Networks & Wireless Communication (AREA)
- Mobile Radio Communication Systems (AREA)
Description
【産業上の利用分野】
この発明は、無線通信を利用するゲームシステム、ゲーム装置、情報記憶媒体、および、プログラムに関し、特にたとえば、親機と子機との間の通信が途絶えた後に子機を親機に復帰接続させることが可能な無線通信ゲームシステム、ゲーム装置、情報記憶媒体、および、プログラムに関する。
【0002】
【従来の技術】
従来の無線通信ゲームシステムの一例が、たとえば、平成12年(2000)5月16日付きで出願公開された特許文献1(国際分類:A63F13/00、H04L12/28)に開示されている。
【0003】
【特許文献1】
特開2000−135380号公報
【0004】
【発明が解決しようとする課題】
この先行技術では、通信が途絶えた場合の処理が全く考慮されておらず、ましてや、通信が途絶えた後に通信を復帰させることについては全く開示されていない。
【0005】
無線通信である以上、通信が途絶える可能性がある。たとえば、なんらかの通信障害があった場合や、ユーザ同士が誤って通信可能な距離以上離れてしまった場合等である。さらには、あるユーザに用事ができて通信可能な範囲を離れる必要が生じた場合がある。
【0006】
このような状況が発生した場合に、それらの要因が解消した後には、通信を復帰させるようにするのが望ましい。そうしなければ、もう一度通信を確立する処理をし直す必要があるからである。
【0007】
それゆえに、この発明の主たる目的は、新規な、無線通信ゲームシステム、携帯ゲーム装置およびゲームプログラムを提供することである。
【0008】
この発明の他の目的は、通信途絶後に子機が復帰が可能な、無線通信ゲームシステム、携帯ゲーム装置およびゲームプログラムを提供することである。
【0009】
【課題を解決するための手段】
請求項1の発明は、無線通信によってデータを送受信することにより通信ゲームを実行する複数の携帯型のゲーム装置を用いる無線通信ゲームシステムである。複数のゲーム装置の中には、親機と子機が存在する。親機は、自機への接続を要求する子機から当該子機の識別情報を受信する受信手段、自機に接続することを許可する子機の識別情報が設定される接続許可データに、受信手段により受信された識別情報を設定し、当該設定された接続許可データを含む親機パケットを、自機と子機との接続の当初から継続して子機に送信し続ける送信手段、および子機からの通信が第1所定時間途絶えた場合に、接続許可データから当該子機の識別情報を削除する削除手段を備える。子機は、親機からの通信が途絶えたことを検出する通信断絶検出手段、および通信断絶検出手段が親機からの通信が途絶えたことを検出したときに、親機から送信される親機パケットの受信を試みて、受信した親機パケットに自機の識別情報が設定されているときに、通信を再開する復帰手段を備える。
【0010】
請求項4の発明は、第1タイムスロットと複数のサブタイムスロットを含む第2タイムスロットとによって構成される通信周期で無線通信することにより通信ゲームを実行する複数の携帯ゲーム装置を用いる、無線通信ゲームシステムである。複数のゲーム装置の中には、親機と子機が存在する。親機は、第1タイムスロットで親機パケットをブロードキャストしかつ第2タイムスロットで子機パケットを受信する第1通信制御手段、および自機への接続を要求する子機から当該子機の識別情報を受信する受信手段を備え、親機パケットは、自機に接続することを許可する子機の識別情報が設定される接続許可データを含み、自機と子機との接続の当初から継続して、受信手段により受信された識別情報を接続許可データに設定し続け、かつ、子機からの通信が所定時間途絶えた場合に、接続許可データから当該子機の識別情報を削除する親機パケット設定手段をさらに備える。子機は、複数のサブタイムスロットのうち少なくとも1つのサブタイムスロットで子機パケットを送信し、第1タイムスロットで親機パケットを受信する第2通信制御手段、親機からの通信が途絶えたことを検出する通信断絶検出手段、および通信断絶検出手段が親機からの通信が途絶えたことを検出したときに、親機からブロードキャストされる親機パケットの受信を試みて、受信した親機パケットに自機の識別情報が設定されているときに、通信を再開する復帰手段を備える。
【0011】
請求項5の発明は、無線通信によってデータを送受信することにより通信ゲームを実行する複数の携帯型のゲーム装置を用い、複数のゲーム装置の中には、親機と子機が存在する、そのような無線通信ゲームシステムにおいて用いるゲーム装置のプログラムである。プログラムは、当該ゲーム装置が親機となったときには、ゲーム装置のプロセサを、自機への接続を要求する子機から当該子機の識別情報を受信する受信手段、自機に接続することを許可する子機の識別情報が設定される接続許可データに、受信手段により受信された識別情報を設定し、当該設定された接続許可データを含む親機パケットを、自機と子機との接続の当初から継続して子機に送信し続ける送信手段、および子機からの通信が所定時間途絶えた場合に、接続許可データから当該子機の識別情報を削除する削除手段として機能させ、当該ゲーム装置が子機となったときには、ゲーム装置のプロセサを、親機からの通信が途絶えたことを検出する通信断絶検出手段、および通信断絶検出手段が親機からの通信が途絶えたことを検出したときに、親機から送信される親機パケットの受信を試みて、受信した親機パケットの接続許可データに自機の識別情報が設定されているときに、通信を再開する復帰手段として機能させる。
【0017】
無線通信ゲームシステムは、実施例では、少なくとも2台の携帯ゲーム装置(10:実施例で相当する参照符号。以下同じ。)を用いて構成される。
【0018】
親機の送信手段は、実施例でいえば図22のステップS41すなわち図29に相当し、この送信手段が図11で示すようなデータフィールドを有する親機パケットを送信する。
【0019】
子機の通信断絶検出手段は実施例のステップS95(図24)に相当し、この通信断絶検出手段によって親機からの通信が途絶えたことが検出したときに、実施例でいえば図33に相当する復帰手段は、図33のステップS5001で親機から送信される親機パケットの受信を試み、ステップS5013でその親機パケットに接続許可データが存在するかどうか判断する。つまり、接続許可データ、具体的には、親機パケットのUスロットの自機の位置に自機の子機番号CIDが存在するとき、復帰成功である。
【0020】
この発明によれば、子機が簡単に親機への接続の復帰を果たすことができる。
【0026】
【発明の効果】
この発明によれば、子機からの通信が途絶えた後に、親機が接続許可データを送信し続けるので、子機が通信可能な状態になったときに、親機との接続の復帰を簡単に行うことができる。
【0027】
また、この発明によれば、無線通信において不可避である通信障害に対して、ユーザの手をわずらわせることなく接続の復帰をおこなうことができる。
【0028】
また、この発明によれば、あるユーザに用事ができて通信可能な範囲を離れる必要が生じた場合に、決められた時間内に戻ってくるのであれば、通信を復帰して、無線通信ゲームを継続することが可能になる。
【0029】
この発明の上述の目的,その他の目的,特徴および利点は、図面を参照して行う以下の実施例の詳細な説明から一層明らかとなろう。
【0030】
【実施例】
この発明が適用される無線通信ゲームシステムは、一例として、図1に示すような携帯ゲーム装置10を利用する。携帯ゲーム装置10は、この実施例では、たとえばゲームボーイアドバンス(GAMEBOY ADVANCE:商品名)のような携帯ゲーム機12と、その携帯ゲーム機12の通信コネクタ46に接続された無線通信ユニット14およびカートリッジコネクタ40に接続されたカートリッジ16を含む。つまり、この実施例においては、携帯ゲーム装置10は、携帯ゲーム機12,無線通信ユニット14およびカートリッジ16によって構成される。
【0031】
図1に示す携帯ゲーム機12は、プロセサ20を含み、このプロセサ20は、CPUコア22とそれに関連するブートROM24,LCDコントローラ26,WRAM(ワーキングRAM:以下同様)28,VRAM30および周辺回路32とを含む。ただし、周辺回路32は、音声(サウンド)回路、DMA(Direct Memory Access)回路、タイマ回路、入出力インタフェース(IO)などを含む。携帯ゲーム機12の前面に設けられたLCD18には、プロセサ20から表示信号、この実施例ではRGB信号が与えられ、したがって、LCD18ではゲーム画像がカラー表示される。そして、プロセサ20からは、サウンド回路34にオーディオ信号が与えられ、そのオーディオ信号によって、スピーカ36からゲーム音楽や効果音などの音声が出力される。また、携帯ゲーム機12の前面にLCD18を挟んで設けられる十字キーやスタートキー,セレクトキーおよびAボタンならびにBボタンがまとめて操作スイッチ38として示され、この操作スイッチ38からの操作信号がプロセサ20に入力される。したがって、プロセサ20は操作スイッチ38を通して与えられたユーザの指示に従った処理を実行する。
【0032】
携帯ゲーム機16はカートリッジコネクタ40を有し、このカートリッジコネクタ40には、カートリッジ16が接続または挿入される。カートリッジ16にはROM42およびバックアップRAM44が内蔵され、ROM42には携帯ゲーム機12で実行すべきゲームのためのゲームプログラムが、そのゲーム名とともに、予め設定されている。バックアップRAM44は、そのゲームの途中データやゲームの結果データを記憶する。
【0033】
携帯ゲーム機16にはさらに通信コネクタ46が設けられ、この通信コネクタ46には無線通信ユニット14のコネクタ48が接続される。なお、実施例で用いる携帯ゲーム機12は、一例としてゲームボーイアドバンス(商品名)であり、その場合、上述のカートリッジコネクタ40は、LCD18を前面(正面)としたときの上面奥側に設けられる32ピンコネクタであり、通信コネクタ46は上面手前側に設けられる6ピンコネクタである。
【0034】
無線通信ユニット14は、ベースバンドIC50を含み、このベースバンドIC50はROM52を含む。ROM52にはたとえばOCD(One-Cartridge Download)プログラムやその他のプログラムが内蔵され、ベースバンドIC50は、それらのプログラムに従って動作する。なお、ワンカートリッジダウンロードプログラムとは、OCモード(ワンカートリッジモード:親機にだけゲームカートリッジが装着されていて、子機はその親機カートリッジからの子機用プログラムのダウンロードを受けて動作するモード)において、子機へプログラムをダウンロードするためのプログラムである。
【0035】
無線通信ユニット14にはさらにEEPROM54が設けられ、このEEPROM54には、たとえば、ユーザ名が固有に設定される。ベースバンド(Base Band)IC50は、そのユーザ名を含んだデータを、RF(Radio Frequency)−IC56に送出し、RF−IC56は、そのデータを変調して、アンテナ58から電波を送信する。ただし、その電波強度は、非常に微弱で、電波法の規制の対象とならない程度の小さい値に設定されている。また、この無線通信ユニット14には電源回路60が設けられている。この電源回路60は典型的には電池であり、無線通信ユニット14の各コンポーネントに直流電源を供給する。
【0036】
無線通信ユニット14では、また、他の携帯ゲーム装置から送信された電波をアンテナ58で受信してRF−IC56によって復調し、復調信号がベースバンドIC50に入力される。したがって、ベースバンドIC50は、復調信号をデコードして、データを復元し、そのデータをコネクタ48および46を介して携帯ゲーム機12すなわちWRAM28に転送する。
【0037】
この発明に従った実施例の無線通信ゲームシステムでは、複数台の図1に示すような携帯ゲーム装置10を利用する。図2の点線64は自機携帯ゲーム装置62の通信可能範囲を示している。そして、携帯ゲーム装置62は、通信可能範囲64に存在する携帯ゲーム装置に対してエントリできる可能性がある。この通信可能範囲64が上述の微弱電波によって親機と子機との間のデータ通信が可能な範囲であり、この通信可能範囲64の中に存在する複数の携帯ゲーム装置は、どれでもが、任意に、親機となりまたは子機となることができる。図示の例では、その範囲64の内に、4台の親機と3台の子機と、1台の自機62とが存在する。
【0038】
そして、自機62がゲームに参加する場合、親機か子機になる必要がある。自機が子機になる場合には、参加可能な親機を探す必要がある。親機を探すときに、自機がカートリッジを持っているかどうかによって、異なる親機を探す必要がある。
【0039】
まず、自機62が図1に示すカートリッジ16を装着した携帯ゲーム装置である場合であって、かつ自機62の周囲のすべての親機を表示することを示す全表示フラグ(後述)を「1」に設定しているときには、図1に示す携帯ゲーム機12のLCD18上に、図3で示すような親機リスト18Aが表示される。この図3の親機リスト18Aには、通信可能範囲64(図2)内に存在するすべての親機、すなわち、ユーザ名がそれぞれ「太郎」,「一郎」および「二郎」の3台の親機が表示される。したがって、自機のユーザは、自機を子機として動作または機能させたいとき、その自機を接続したい親機を、操作キー38(図1)に含まれる十字キーでカーソルを動かして指定した後同じく操作キー38に含まれるAボタンを押すことによって、選択することができる。
【0040】
ただし、自機を親機として使いたい場合には、ユーザは、操作キー38に含まれるBボタンを押せばよい。
【0041】
図2では範囲64内に4台の親機が存在するにも拘わらず、図3の親機リスト18Aでは3台の親機だけが表示されるのは、次の理由による。ユーザ名が「三郎」の親機はエントリスロットESlotが「ffh」に設定されている。このエントリスロットESlotは、新しい子機を希望するかどうかを示すフラグであり、このエントリスロットESlotが「ffh」に設定されているときは、その親機は子機の新規参加を拒否しているので、そのような親機は表示されないのである。ユーザ名「三郎」の親機は、エントリ可能な最大子機数に達しているため、新しい子機を希望していない。
【0042】
また、図3の親機リスト18Aでは、ユーザ名「二郎」の親機に丸印(○)が付加されている。この丸印(○)は、OCモードでのゲームがプレイ可能なことを示す。
【0043】
さらに、全表示フラグがオフの場合には、LCD18には図4に示す親機リスト18Aが表示される。この場合には、自機のゲームカートリッジ、たとえばマリオカート−1(Mario Kart−1)と通信できる親機、この例ではユーザ名が「太郎」である親機だけが表示される。なぜなら、ユーザ名「太郎」の親機にはマリオカート−2(Mario Kart−2)のカートリッジが装着されていて、Mario Kart−1とMario Kart−2とは相互に通信可能であるからである。なお、通信可能範囲64内に、マリオカート−1のカートリッジが装着されている親機があれば、その親機も当然表示される。
【0044】
上の例では自機(子機)にMario Kart−1のカートリッジが装着されているが、自機にカートリッジを装着せず、OCモードでゲームをプレイしたい場合には、LCD18には、たとえば図5に示す親機リスト18Aが表示される。この図5の親機リスト18Aでは、OCモードに対応できる親機、この例ではユーザ名「二郎」の親機だけが表示される(「F-ZERO」はOCモード対応のゲームである)。ただし、この場合には自機にはカートリッジが装着されていないので、自機は親機になれない。したがって、「自分が親機になりたいときはBボタンを押してください」という図3や図4に示すメッセージは表示されない。
【0045】
次に図6−図8を参照して、ユーザ名「四郎」の親機が図2に示す通信可能範囲64に入り、その後、ユーザ名「一郎」の親機がその範囲64の外へ出た場合の自機62の表示の変化について説明する。ユーザ名「四郎」の親機が範囲外にある場合には、図6に示すように、自機62のLCD18上には図3と同じ親機リスト18Aが表示される。
【0046】
その後、ユーザ名「四郎」の親機が範囲内に進入してきたときには、図7で示す親機リスト18Aが表示される。ただし、自機62の全表示フラグがオンされているものとする。つまり、ユーザ名「四郎」の親機が、ユーザ名がそれぞれ「太郎」,「一郎」および「二郎」である親機に加えて表示される。
【0047】
そして、さらにユーザ名「一郎」の親機が範囲64外へ脱したときには、図8の親機リスト18Aが表示される。この親機リストにはユーザ名「一郎」の親機は表示されない。
【0048】
さらに、自機が親機であってかつ新たな子機の参加を待っているときには、LCD18には、図9に示す子機リスト18Bが表示される。この子機リスト18Bをみると、現在、ユーザ名がそれぞれ「五郎」,「六郎」および「七郎」の子機が自機に接続していることがわかる。ここで、本実施例は親機と子機とが微弱電波によって無線通信をしながらゲームを進行させる無線通信ゲームシステムであるので、本来的には「接続」の用語を用いるべきではない。しかしながら、親機となる携帯ゲーム装置と子機となる携帯ゲーム装置との間での通信可能な連係状態を表す用語として、有線通信の場合の用語を借りて、便宜上「接続」と表現することとする。
【0049】
次に、接続状態にある親機と子機とが無線通信する場合のデータパケットフォーマットについて、図10−図14を参照して説明する。図10で示すように、1つのデータサイクルが2ミリ秒で、そのデータサイクルは、1つの親機スロットと複数(この実施例では4つ)の子機スロットとを含む。親機スロットでは図11に具体的に示す親機パケットがブロードキャスト(Broadcast:放送)され、4つの子機スロットでは、それぞれ、図13に具体的に示す子機パケットの親機への送信が行われる。
【0050】
親機パケットは、図11に示すように、同期データを格納しておくためのフィールドsyncをその先頭に有し、その同期データフィールドsyncに後続してその親機の番号(識別コード)PID格納するためのフィールドPIDを有する。そのフィールドPIDに続いて、ユーザ名フィールドUserNameおよびゲーム名フィールドGameNameが形成される。ユーザ名フィールドUserNameには、EEPROM54(図1)から読み出されたユーザ名、上の例でいえば「太郎」,「一郎」などが登録され、ゲーム名フィールドGameNameにはゲーム名、上の例でいえばMarioKart−1,Mario Kart−2,F-Zero,Golf,…が登録される。ただし、カートリッジ16(図1)を装着すれば、このゲーム名フィールドGameNameにはROM42(図1)から読み出されたゲーム名(図16の68)が自動的に登録され得る。
【0051】
親機パケットはさらに、フラグOCを含み、このフラグOCは、先に述べたワンカートリッジ(OC)モードに対応できるかどうかを示すフラグである。具体的には、このフラグOCがリセットされているとき、すなわちOC=0のときには、そのときの親機のゲームカートリッジはOCモードに非対応であること、あるいは、OCモードに対応できるが現在は通常モードでプレイしていることを示す。フラグOCがセットされているとき、すなわち、OC=1のとき、OCモードに対応できかつ現在そのOCモードでプレイしていることを示す。したがって、カートリッジを持たないユーザは、このフラグOCが「1」である親機を探す必要がある。
【0052】
フラグOCに続いて、親機パケットは、フィールドESlot,USlotおよびPayloadを順次含む。EスロットフィールドESlotは、エントリ(参加)可能な子機スロットの番号が格納される。つまり、新規参加子機が使用できるスロット番号が格納される。UスロットフィールドUSlotには、子機スロットの使用状況が格納される。具体的には、図12に示す。すなわち、UスロットフィールドUSlotは、4つの領域を含み、この4つの領域の各々が子機スロット0,子機スロット1,子機スロット2および子機スロット3に対応する。そして、それぞれの領域には、該当する子機スロットが割り当てられた子機の番号(識別コード)CIDが格納される。該当する領域に対応する子機番号CIDが登録されているときには、その子機スロットが使用されていることがわかる。
【0053】
ペイロードフィールドPayloadは、ゲーム処理において必要となるゲームデータを送信するためのフィールドであり、親機から子機へ送信されるゲームデータを格納するためのフィールドである。
【0054】
子機から、その子機に割り当てられた子機スロットに送出される子機パケットが図13に示される。すなわち、子機パケットは、子機番号CIDを格納または登録する先頭のフィールドCIDとそれに後続するペイロードフィールドPayloadとを含む。ペイロードフィールドPayloadは子機から親機へ送信されるゲームデータを格納するためのフィールドである。
【0055】
図14が具体例を示す。この図14の例では、親機番号フィールドPIDに「58」が格納されていて、したがって、親機番号PIDが「58」であることがわかる。そして、この親機のユーザ名は「太郎」であり、ゲーム名はMario Kartであり、フラグOCが「0」で、EスロットフィールドESlotには「2」が登録されていて、UスロットフィールドUslotを参照することにより子機スロット0には「16」の子機番号(CID)を持った子機が、子機スロット1には「130」を持った子機がそれぞれ接続されているが、子機スロット2および3はともに「0h」であるので空きスロットであることがわかる。
【0056】
このような状態の親機に対して新たな子機が接続(Entry)を試みる場合には、親機のUスロットフィールドUSlotを参照すると子機番号CIDとして「16」および「130」が使用されているので、それ以外の子機番号CIDをたとえば乱数を発生させることによって決定する。一例として「86」が当該子機のCIDとして決定されたとする。したがって、その子機は、ESlotで指定される子機スロット(子機スロット2)にCID=86を送信する。
【0057】
そして、親機では、子機スロット2で「86」を受信することにより、子機番号CIDとして「86」を持つ子機がエントリしたい、ということを知る。そして、そのエントリを許可するかどうかを決定するわけであるが、許可する場合には、親機は、Uslotの子機スロット2に対応する領域に「86」を設定した図14の最下段に示す親機パケットをブロードキャストし、新たに「86」の子機番号CIDを持つ子機の参加を許可したことを知らしめる。同時に、新規参加した子機は、Uslotの子機スロット2に対応する領域に自己の子機番号としてCID=86があることを確認し、エントリが成功したことを判断できる。
【0058】
図15はOCモードに対応していないカートリッジのメモリマップを示し、図16はOCモードに対応できるカートリッジのメモリマップを示す。
【0059】
図15の実施例では、カートリッジ16に含まれるROM42(図1)は、ゲームプログラム領域62およびゲーム名領域64を含む。ゲームプログラム領域62には、共通プログラム66,親機プログラム68および子機プログラム70が予め格納される。共通プログラム66は、自機が親機であると子機であるとに拘わらず使用するプログラムである。すなわち、自機が親機の場合は共通プログラムと後述の親機プログラムが実行され、自機が子機の場合は共通プログラムと後述の子機プログラムが実行される。親機プログラム68は、自機が親機として機能するときにのみ作動するプログラムであり、変数MおよびNを含むとともに、「0」に設定された(つまりオフされた)フラグOCを含む。ただし、変数Mは、その親機に同時に接続可能な子機の最大数を示し、変数Nは1台の子機が使用できる最大スロット数を示す。これらの変数MおよびNは、ともに、ゲームに応じて変化することに留意されたい。子機プログラム70は、自機が子機として機能するときにのみ作動するプログラムであり、上述の変数Nを含む。ゲーム名領域64には、上記ゲームプログラムの名称、たとえばMario Kart−1,Golf,…などが予め格納される。
【0060】
図16の実施例でも、カートリッジ16のROM44は、ゲームプログラム領域62およびゲーム名領域64を含む。ゲームプログラム領域62には、図15と同じ共通プログラム66,親機プログラム68および子機プログラム70が設定されるとともに、OCモードに対応するためにOCモード用ゲームプログラム72が設定される。OCモード用ゲームプログラム72は親機プログラム74と転送用子機プログラム76とを含む。親機プログラム74は、フラグOCが「1」に設定されていることを除いて、先の親機プログラム68と同じである。転送用子機プログラム76は、OCモードでゲームプレイする子機へ転送するためのプログラムであり、変数Nを含む。OCモードでエントリする子機は、親機から転送(ダウンロード)されるこの転送用子機プログラム76を受けることによって、ゲームに参加できる。
【0061】
図17には図1に示す無線通信ユニット14のEEPROM54のメモリマップが示され、この図17に示すように、EEPROM54は、ユーザ名領域78を含み、このユーザ名領域78にユーザ名、上の例でいえば「太郎」,「一郎」…などが登録される。
【0062】
図18に示すメモリマップを参照すると、ゲーム機12のWRAM28(図1)は、親機リスト領域80,親機リストクリアタイマ82,子機リスト領域84,変数領域86および88,ゲーム変数領域90,送信バッファ領域92および受信バッファ領域94を含む。
【0063】
親機リスト領域80は、先に図3等で説明した親機リスト18Aを表示するためのデータ、たとえば親機番号(PID),ユーザ名(UserName),ゲーム名(GameName),フラグOC,EスロットフィールドESlotを一時的に記憶保持しておくための領域である。
【0064】
親機リストクリアタイマ82は、この親機リスト領域80のデータをクリアするまでの時間を計測するためのタイマであり、後述のように、このタイマ82がタイムアップすれば、親機リスト領域80は自動的にクリアされる。
【0065】
子機リスト領域84は、先に図9等で説明した子機リスト18Bを表示するためのデータ、たとえば子機番号(CID),ユーザ名(UserName)およびゲーム名(GameName)を一時的に記憶保持しておくための領域である。
【0066】
WRAM28はさらに、自機が親機として動作する(振舞う)ときに使用する変数をストアしておくための親機変数領域86および自機が子機として動作する(振舞う)ときに使用する変数をストアしておくための子機変数領域88を含む。
【0067】
親機変数領域86には、たとえば図11に示す各フィールドPID,USlotおよびESlotのためのデータや接続対象の子機の子機番号(CID)さらには、変数nおよびmが設定される。ここで、変数nは、1台の子機に現に実際に割り当てられているスロット数を示し、その最大数が先に説明した変数Nで与えられる。また、変数mは、1台の親機に現に実際に同時に接続されている子機数を示し、その最大数が上述の変数Mで与えられる。
【0068】
子機変数領域88には、たとえば図12に示すフィールドCIDのためのデータが設定されるとともに、接続結果を示す変数、復帰結果を示す変数、接続先の親機の親機番号(PID)、獲得したスロット番号(1つまたは複数)、同期タイマ、変数n、さらには、全表示フラグが設定される。
【0069】
ゲーム変数領域90はゲーム実行中のゲーム変数、たとえばクリアしたステージ数や獲得したアイテム等を示す変数をストアするための領域である。そして、送信バッファ92および受信バッファ94は、それぞれ、送信データおよび受信データを一時的にストアしておくための領域である。
【0070】
それぞれがこのような構成を有する2台以上の携帯ゲーム装置10がゲームシステムを構築するが、以下に、そのゲームシステムにおける各携帯ゲーム装置10の動作をフロー図を参照して説明する。
【0071】
詳細な説明に先立って、OCモードに対応できないカートリッジが自機に装着されている場合で、かつ、自機が親機になるときには、後述のステップS29(図21)−ステップS69(図23)の一連のステップを実行する。また、OCモードに対応できないカートリッジが自機に装着されている場合で、かつ、自機が子機となるときには、後述のステップS83−ステップS109(図24)の一連のステップを実行することになる。
【0072】
また、自機にOCモード対応可能なカートリッジが装着されてはいるが通常モード(OCモードではない)でゲームをプレイする場合には、自機を親機とするときには、ステップS29(図21)−ステップS69(図23)の一連のステップを実行し、自機を子機とするときには、上と同様に、ステップS83−ステップS109(図24)の一連のステップを実行することになる。
【0073】
さらに、自機にOCモード対応可能なカートリッジが装着されていて、OCモードでゲームをプレイする場合には、自機は親機としてしか機能できず、この場合には、ステップS75およびS77(図19)を経て、上述の親機の場合と同様に、図21に示すステップS29から図23に示すステップS69の一連のステップを実行する。
【0074】
そして、自機にカートリッジが装着されていない場合には、自機はOCモードでの子機にしかなれず、したがって、この場合には、ステップS111(図19)−ステップS147(図26)の一連のステップを実行することになる。
【0075】
図19は携帯ゲーム機12の動作を示す。携帯ゲーム機12の電源(図示せず)を投入すると図19の動作が開始され、最初は、ブート(Boot)ROM24内に設定された動作を実行する。つまり、最初のステップS1で、プロセサ20は、たとえばコネクタ40(図1)からの信号に基づいて、カートリッジ16が装着されているかどうかを検出する。そして、ステップS3でカートリッジがあると判断した場合には、カートリッジ16のROM42のプログラムに移行し、続くステップS5で、そのカートリッジがOCモードに対応可能なカートリッジかどうか判断する。このステップS5では、図15のカートリッジ(OCモードに対応不可能なカートリッジ)が装着されているか、図16のカートリッジ(OCモードに対応可能なカートリッジ)が装着されているかを判断する。
【0076】
ステップS5で“NO”が判断されたとき、すなわち自機にカートリッジは装着されているがそのカートリッジがOCモード対応カートリッジではないとき、図20のステップS7に進み、図18に示す親機リスト領域80をクリアするとともに、同じく図18に示す親機リストクリアタイマ82をリセットし、さらには図18の子機変数領域88に設定されている全表示フラグをオン(「1」を設定)する。なお、親機リストクリアタイマ82はリセット後自動的にタイマのカウントを開始する。
【0077】
その後、ステップS9において、図11で示すような親機パケットの受信を試みる。ステップS11で、親機パケットを成功裏に受信したかどうか判断する。そして、ステップS11で“YES”を判断したとき、続くステップS13において、その親機パケットをブロードキャストした親機は、親機リストに存在しない親機かどうか判断する。具体的には、このステップS13では、受信した親機パケットのデータ(図18に示すWRAM28の受信バッファ94に一時的にストアされているデータ)のうちの親機PIDやユーザ名が、親機リスト80(図18)に登録されている親機かどうか判断する。このステップS13で“YES”が判断されると、つまり、新規な親機の場合には、続くステップS15において、プロセサ20は、親機リスト80に、親機パケットに含まれた親機ID(PID),ユーザ名(UserName),ゲーム名(GameName),OCフラグ(OC)およびエントリスロット(ESlot)を新たに登録する。
【0078】
先のステップS11で“NO”を判断したとき、またはステップS15での登録を終えたとき、次のステップS17で、先のステップS7でリセットした親機リストクリアタイマ82(図18)の値が2秒以上になったかどうか判断する。“YES”なら、ステップS19で親機リスト80をクリアするとともに、親機リストクリアタイマ82をリセットする。ここで、親機リストクリアタイマ82をリセットするのは次の理由による。すなわち、図8を参照して前述したようにある親機(図8の「一郎」)が通信可能範囲から外れた場合に、その親機を親機リスト80から削除しなければならない。そのため、定期的に(この実施例では2秒ごとに)、親機リスト80をクリアして通信可能範囲の親機のリストへの登録を最初からおこなうことによって、通信可能範囲から外れた親機が親機リストに残らないようにしているのである。ステップS17で“NO”を判断したとき、またはステップS19を経た後、次のステップS21において、プロセサ20は、上述の全表示フラグがオン(「1」)かどうか判断する。なお、実施例では、この全表示フラグは、デフォルトとして、「1」またはオンに設定されている。全表示フラグがオンのとき、ステップS23で、親機リストに登録されている親機のうち、エントリスロットESlotが「ffh」でない親機、つまり、新たな子機のエントリを許容するすべて親機の情報(具体的には、ユーザ名UserNameおよびゲーム名GameName)を図3に示すように表示する。全表示フラグがオフ(「0」)のときには、ステップS25において、親機リストに登録されている親機のうち、エントリスロットESlotが「ffh」でなくしかも通信可能な(すなわち、親機のカートリッジのゲームと子機のカートリッジのゲームが所定の関係にあり通信可能な)親機の情報(ユーザ名UserNameおよびゲーム名GameName)を図4に示すように表示する。
【0079】
その後、図21のステップS27に進み、プロセサ20は、操作キー38からの信号を参照して、Bボタン(図示せず)が押されたかどうか判断する。Bボタンが押されたということは、その携帯ゲーム装置のユーザが、自機を親機として振舞わせることを決めたことを意味し、その場合には、変数MおよびNの範囲内で子機を募集するために、ステップS29の親機接続処理を実行する。ただし、1台の子機に与えられる最大スロット数を示す変数Nおよび最大参加可能子機数を示す変数Mは、それぞれ、ゲームによって変更可能である。たとえば、最大参加子機数Mを大きくするためには最大スロット数Nを小さくし、データレートを重視するなら最大スロット数Nを大きくし最大参加子機数Mを小さくすればよい。
【0080】
ここで、図27および図28を参照して、子機募集のためのステップS29における親機の接続処理について、詳細に説明する。図27の最初のステップS1001では、プロセサ20は、図18に示す子機リスト領域84をクリアするとともに、初期画面を表示させる。このステップS1001は初期設定ステップであり、上の処理に加えて、さらに、1つの子機の対して割り当てるサブタイムスロットの最大数(N)を設定するとともに、エントリを許可する子機の最大数(M)を設定する。ただし、これら最大数NおよびMは、それぞれ、実行すべきゲームプログラムに応じて決定できる。このように、1つの子機に対して割り当てるサブタイムスロットの最大数Nや同時参加可能な子機の最大数Mをゲームに応じて決定するようにすれば、一定のサブタイムスロット数の中で、1つの子機に対して割り当てる個数を少なくして参加可能な子機の数を多くするか、または、1つの子機に対して割り当てる個数を多くしてデータレートを大きくするかのいずれかをゲームの内容に応じて決定することができる。たとえば、多くのプレイヤが参加する方が面白いゲームの場合にはスロット数Nを小さくし参加子機数Mを大きくし、通信量が多いゲームの場合はスロット数Nを大きくし参加子機数Mを小さくすればよい。
【0081】
続くステップS1003では、プロセサ20は、親機変数領域86(図18)の親機PIDを設定するための領域PIDに擬似ランダム値を書き込む。そして、次のステップS1005において、領域86内の、親機(自機)に実際に接続している子機の数を示す変数mをゼロ(0)とし、続くステップS1007で、接続対象子機の番号を示す接続対象CIDの領域に「Null」を設定するとともに、領域86内の、現在接続処理中の子機に実際に付与しているスロット数を示す変数nにゼロ(0)を書き込む。なお、接続対象CIDとは、現在接続処理中の子機のCIDのことであり、エントリ処理において1つの子機に複数のスロットを付与する場合に、ある子機に対するスロットの付与を複数回連続しておこなうために、ある子機に対するスロットの付与が開始されたら、接続対象CID以外のCIDの子機からのエントリ要求を無視するためのものである。次のステップS1009において、領域86内の、エントリスロット領域ESlotに、空いているスロット番号のうちの1つを割り当てる。
【0082】
その後、ステップS1011において、プロセサ20は、操作キー38(図1)からの信号を検証して、Aボタン(図示せず)が押されたかどうか判断する。ステップS1011で“YES”なら、そのとき自機(親機)のユーザがその子機のエントリを拒否したことを意味するので(図9参照)、続くステップS1013において、プロセサ20は、図18の子機リスト領域84から、その選択された子機のデータ、USlotおよびCIDを削除する。その後、ステップS1015で、図9に示すように新たな子機リスト18Bを表示させる。
【0083】
そして、ステップS1011で“NO”が判断されたときには、すなわち親機のユーザがAボタンを押さなかったとき、またはステップS1015を実行した後には、ステップS1017において、プロセサ20は、操作キー38からの信号に基づいて、スタートキー(図示せず)が操作されたかどうか判断する。“YES”なら、そのままリターンする。しかしながら、“NO”なら、続くステップS1021において、図29に詳細に示す親機の送受信処理を実行する。
【0084】
図27のステップS1019で示す親機の送受信処理が、図29に詳細に示される。図29のステップS2001では、プロセサ20は、送信バッファ92(図18)に未送信データがあるかどうか判断する。“YES”なら、次のステップS2003において、図14の親機スロットに必要なデータ、たとえばPID,ユーザ名,ゲーム名,OCフラグ,Eスロット,Uスロットおよび、上記未送信データであるペイロードを送信する。そして、次のステップS2005で子機パケットを受信した後、リターンする。
【0085】
先のステップS2001で“NO”が判断されたときには、次のステップS2007で、プロセサ20は、過去64ミリ秒の間データ送信をしなかったかどうか判断する。なお、この「64ミリ秒」という時間は、タイマずれを解消できる数値の一例であり、当然この数値に限られるものではない。
【0086】
ステップS2007で“YES”を判断したときには、ステップS2009で、親機スロットを用いて、ペイロードを除く各データ、たとえばPID,ユーザ名,ゲーム名,OCフラグ,EスロットおよびUスロットを送信する。このステップS2009は子機からのエントリを可能にするために必要なステップであり、ペイロード(送信すべきデータ)がなくても、エントリ処理に必要なデータ(PID,ユーザー名,ゲーム名,OCフラグ,Eスロット,Uスロット)を定期的に送信しているため、子機は常にエントリ処理できるのである。このステップS2009では、ペイロードデータは送信しない。そして、ステップS2009の終了後、またはステップS2007で“NO”が判断されたとき、先のステップS2005を経てリターンする。
【0087】
図27に戻って、ステップS1019に続くステップS1021で、プロセサ20は、図11に示す親機パケットのフィールドESlotで指定したスロットで、子機番号CIDを受信できたかどうか判断する(すなわち、子機がエントリスロットを使用してエントリ要求をしてきたかどうかを判断する)。このステップS1021で“NO”の場合、先のステップS1011に戻り、“YES”の場合、次のステップS1023で、図18の子機変数領域86の接続対象子機CIDがNullかどうか判断する(すなわち、現在エントリ処理中の他の子機があるか否かを判断する)。“YES”なら、つまり、接続対象子機番号(CID)が登録されていなければ、ステップS1025で、ステップS1019で受信した子機CIDを接続対象子機番号(CID)として、図18の領域86内の接続対象子機CIDに登録する。
【0088】
先のステップS1023で“NO”のとき、またはステップS1025を終えたとき、ステップS1027において、プロセサ20は、受信したCIDが接続対象CIDと同じかどうか判断する(すなわち、受信したCIDが現在エントリ処理中の子機のCIDか否かを判断する)。“NO”なら先のステップS1011に戻るが、“YES”なら次のステップS1029で、図18の領域86内のUスロット領域USlotのエントリスロットを示す部分に、そのCIDを格納する。そして、ステップS1031で、実接続スロット数nをインクリメント(+1)し、ステップS1033で、n=Nかどうか、すなわち、実接続スロット数nが1台の子機に与える最大スロット数N(ゲーム毎に異なる)に達したかどうかを判断する。“YES”なら、その子機に対してそれ以上のスロットの付与は許容できないので、図28で示す次のステップS1035に進む。しかしながら、“NO”なら、その子機に対してさらにスロットを付与することが可能なので、ステップS1009に戻る。
【0089】
実付与スロット数nが最大付与可能スロット数Nに達したときには、その子機に対するエントリ処理を終了して、図28のステップS1035に進むが、このステップS1035では、親機となった携帯ゲーム機のプロセサ20は、エントリ処理が終了した子機のユーザ名、およびゲーム名等を受信する。この子機のユーザ名およびゲーム名がステップS1037において、子機リストに追加され、ステップS1039において、子機リスト18Bが、図9に示すように表示される。
【0090】
その後、親機のプロセサ20は、ステップS1041において、実接続子機数mをインクリメント(+1)し、ステップS1043において、その実接続子機数mが最大接続可能子機数M(ゲーム毎に異なる)と等しくなったかどうかを判断する。このステップS1043で“YES”が判断されると、つまり、それ以上子機を接続できないと判断したときには、そのままリターンする。
【0091】
逆に、1台以上の子機が未だ接続可能な場合、すなわちステップS1043で“NO”が判断された場合には、図27のステップS1007に戻る。
【0092】
このようにして、図21のステップS29での接続処理が実行され、さらに、図22のステップS31において、子機の募集を一旦打ち切り、他の子機の参加を禁止するために、エントリスロットESlotに「ffh」を書き込む。そして、ゲーム中に必要に応じて、子機を追加募集できるように、図18の領域86内の接続対象CIDをNull,実接続スロット数n=0としておく。
【0093】
その後、ステップS33においてゲームスタートかどうか、つまり、操作キー38に含まれるスタートボタン(図示せず)が押されたかどうか判断する。スタートボタンが押されると、次のステップS35において、プロセサ20は、図18に示す親機変数領域86のUスロット領域USlotを参照して、現に接続中の子機の数「m」を検出する。Uスロットの各領域のうち「0h」でない領域の数が現に接続中の子機の数mである。そして、ステップS37で、接続中の子機数mが最大接続可能数Mより小さいかどうか判断する。このステップS37で“YES”が判断されるということは、新規子機のエントリを許容できることを意味していて、したがって、この場合には、次のステップS39において、親機変数領域86のEスロット領域ESlotに、空いているスロット番号(Uスロットのうち「0h」である領域に対応するスロット番号)の1つを設定する。これによって、領域ESlotの「ffh」の状態設定が解除される。
【0094】
そして、ステップS41において、先に図29を参照して説明した親機の送受信処理を実行することによって、図11に示す親機パケットをブロードキャスト(送信)するとともに、各子機からの図13に示す子機データ(パケット)を受信する。
【0095】
その後、ステップS43において、プロセサ20は、一定時間t1以上、或る子機のデータを受信できなかったかどうか判断する。このステップS43で“YES”が判断されるということは、該当の子機が既に通信可能範囲64(図2)を離脱した可能性があることを意味し、その場合には、ステップS45において、プロセサ20は、該当の子機の子機番号CIDを親機変数領域86(図18)のUスロット領域USlotから削除する。この処理によって、離脱した子機が使用していた子機スロットが空きスロットになるので、離脱した子機の代わりに新たな子機のエントリが可能になる。
【0096】
ステップS43で“NO”が判断されたとき、またはステップS45を終えたとき、次のステップS47において、プロセサ20は、親機変数領域86のEスロット領域ESlotに「ffh」が設定されているかどうか判断する。“YES”なら、次のステップS49で、プロセサ20は、カートリッジ16のゲームプログラム62(図15)に従って、ゲーム処理を実行する。
【0097】
図22のステップS47で“NO”が判断されたときには、子機の途中参加を許容するために、プロセスは図23のステップS51に進む。このステップS51では、親機のプロセサ20は、EスロットフィールドESlotで指定したスロットで子機CIDを受信できたかどうか判断する。“YES”なら、次のステップS53において、図18の領域86内の接続対象CIDの領域に「Null」が書き込まれているかかどうか判断する。“YES”なら、つまり、接続対象子機のCIDが登録されていなければ、ステップS55で、Eスロットで指定したスロットで受信した子機CIDを接続対象CIDの領域に登録する。
【0098】
先のステップS53で“NO”のとき、またはステップS55を終えたとき、ステップS57において、プロセサ20は、受信した子機番号CIDが接続対象CIDと同じかどうか判断する。“YES”なら次のステップS59で、図18の領域86のUスロット領域USlotのエントリスロットを示す部分に、その子機番号CIDを格納する。そして、ステップS61で、実接続スロット数nをインクリメント(+1)し、ステップS63で、n=Nかどうか、すなわち、実接続スロット数nが1台の子機に与える最大スロット数Nに達したかどうかを判断する。“YES”なら、その子機にそれ以上のスロット付与は許容できないのでその子機に対するスロット付与を終了し、ステップS65で、領域86内の、接続対象CIDの領域に「Null」を設定するとともに、変数nにゼロ(0)を書き込む。
【0099】
その後、親機のプロセサ20は、ステップS67において、実接続子機数mが最大接続可能子機数Mと等しくなったかどうかを判断する。このステップS67で“YES”が判断されると、つまり、それ以上子機を接続できないと判断したときには、ステップS69において、Eスロット領域ESlotに「ffh」を書き込む。
【0100】
なお、ステップS69の後、または、ステップS51,S57,S63もしくはS67においてそれぞれ“NO”が判断されたときには、いずれの場合にも子機の途中参加処理をやめてゲーム処理に戻る(図22のステップS49に戻る)。
【0101】
以上が、自機にOCモード対応でないカートリッジが装着されている場合で、かつ自機が親機になる場合の携帯ゲーム装置の処理である。
【0102】
次に、自機にOCモード対応のカートリッジが装着されている場合の携帯ゲーム装置の処理を説明する。
【0103】
図19のステップS5において“YES”が判断されたとき、すなわち、自機に図16に示すOCモード対応のカートリッジを装着している場合には、次のステップS71で、プロセサ20は、モード選択画面(図示せず)を表示する。そして、ステップS73において、通常モードが選択されたかどうか判断する。“YES”なら、先のステップS5で“NO”を判断したときと同様に、図20のステップS7に進む。すなわち、OCモード対応でないカートリッジを装着している場合の処理と、OCモード対応のカートリッジを装着しているが通常モードを選択した場合の処理は同じである。
【0104】
自機にOCモード対応のカートリッジが装着されていてかつOCモードのゲームをプレイする場合には、自機は親機にしかなれない。詳しく述べると、ステップS73で“NO”なら、すなわち、OCモードが選択された場合には、次のステップS75において、先のステップS29(図21)と同様に、図27,図28を参照して詳しく説明した親機の接続処理を実行する。ただし、このときには、1台の子機の使用可能スロット数Nは「1」とし(N=1)、最大接続可能台数Mとしては、ゲームで許容されている数を設定する。その後、ステップS77で、プロセサ20は、図16に示す転送用子機プログラム76を子機に転送(ダウンロード)する。その後、図22のステップS31に進み、前述と同様にそれぞれ以降の各ステップを実行する。
【0105】
以上が、自機にOCモード対応のカートリッジが装着されている場合の携帯ゲーム装置の処理である。
【0106】
次に、自機にOCモード対応でないカートリッジが装着されている場合で、かつ自機が子機になる場合の携帯ゲーム装置の処理を説明する。
【0107】
図21のステップS27で“NO”が判断されたときには、つまり自機が親機になるという選択をしなかったときには、続くステップS79において、携帯ゲーム機12のプロセサ20は、操作キー38からの操作信号を検証して、Aボタン(図示せず)が操作されたかどうか、つまり、接続を希望する親機を選択したかどうかを判断する。このステップS79で“YES”を判断ときには、プロセサ20は、続いて、ステップS81において、当該選択した親機との間で通信可能かどうかを判断する。すなわち、親機のカートリッジと自機のカートリッジが所定の関係にあって通信可能かどうかを判断する。通信可能なときには、その後、図24のステップS83に進み、子機の接続処理を実行する。この子機の接続処理は、詳しくは、図30および図31に示される。
【0108】
図30の最初のステップS3001では、子機となった携帯ゲーム機のプロセサ20が、親機パケット(図11)の受信を試みる。そして、次のステップS3003において、メニュー画面(図3等)で選択した親機の、フレーム同期データsyncを受信できたかどうか判断する。具体的には、メニュー画面で選択した親機のPIDを含む親機パケットの同期データsyncを受信できたかどうか判断する。
【0109】
ステップS3003で“NO”が判断されたとき、つまり、選択した親機の親機パケットが受信できなかった場合には、ステップS3005において、タイムアウト(時間切れ)かどうか判断し、このステップS3005で“NO”なら先のステップS3001に戻るが、“YES”なら、ステップS3007で接続結果変数(図18の領域88内の)に「失敗」を書き込んでリターンする。
【0110】
ステップS3003で“YES”が判断されたとき、つまり、対象としている親機の同期信号を受信できたときには、ステップS3009で、子機のプロセサ20は、同期タイマ(領域88)をリセットし、次のステップS3011に進む。このステップS3011では、プロセサ20は、擬似ランダム値を子機のID番号CIDとする。そして、ステップS3013において、このときのCIDを持った子機が既に存在するかどうか判断する。すなわち、受信した親機パケットのUスロットを参照して、同一のCIDが既に存在するかどうか、判断する。ステップS3013で“YES”の場合には一旦付与した番号を変更する必要があり、したがって、この場合には、ステップS3011を再度実行し、新たな番号CIDを付与して、ステップS3013での検証を再度実行する。
【0111】
ステップS3013で“NO”が得られるまでこれらステップS3011およびS3013が繰り返され、“NO”が得られたとき、次のステップS3015に進む。ステップS3015では、実付与スロット数nをゼロ(0)とし、さらに、次のステップS3017で、親機パケットを受信するとともに、ステップS3019において、同期タイマを再度リセットする。そして、ステップS3021において、プロセサ20は、受信した親機パケットのEスロットESlot(図11参照)が「ffh」であるかどうか判断する。このステップS3021で“YES”が判断されると、子機のエントリは禁止されているので、先のステップS3007を経て、「失敗」としてリターンする。
【0112】
ステップS3021で“NO”が判断されたときには、子機のエントリは禁止されてはいないので、図31のステップS3023に進む。ステップS3023では、子機のCPUコアは、そのときの親機パケットのEスロットフィールドESlotで示されるスロットにステップS3011で得た番号CIDを送信する。そして、次のステップS3025において親機パケットを受信するとともに、ステップS3027において同期タイマを再度リセットする。
【0113】
そして、続くステップS3029において、子機のプロセサ20は、受信した親機パケットのUスロットフィールドのエントリスロット位置に自身の番号(CID)があるかどうか確認する。そして、このステップS3029で“NO”を判断すると、次のステップS3031で、プロセサ20は、タイムアウトかどうか判断する。タイムアウトではない場合には、先のステップS3017(図30)に戻るが、タイムアウトを生じた場合には、図30のステップS3007において「失敗」を接続結果変数に書き込んだ後にリターンする。
【0114】
ステップS3029で“YES”が判断されたとき、つまり、受信した親機パケットのUスロットのエントリスロット位置に自身の番号(CID)があったときには、続くステップS3033において実付与スロット数nをインクリメント(+1)した後、ステップS3035において、実付与スロット数nが1台の子機に付与できる最大スロット数N(ただし、このNは、ゲームによって変化し、たとえば1−4の値である。)と等しくなったかどうか判断する。このステップS3035で“NO”が判断されるときには、つまり、スロットが未だ付与できるときには、先のステップS3025に戻って親機パケットを受信する。
【0115】
しかしながら、ステップS3035で“YES”が判断されると、可能な数のスロットがすべて割り付けられたものとして、次のステップS3037において、接続結果変数に「成功」を登録し、次のステップS3039に進む。このステップS3039では、接続した親機の親機番号PIDおよび獲得したスロット番号を自身の内部RAM28(図18)の領域88に格納する。ただし、スロット数は複数の場合もあり、この実施例では「0」−「3」のいずれかの数値である。そして、その後図24のステップS85にリターンする。
【0116】
そのステップS85では、領域88の接続結果変数を参照して、接続結果が「成功」かどうか判断する。そして、“NO”の場合には、次のステップS87において、メッセージたとえば「接続できませんでした」を子機のLCD18(図1)に表示して図20のステップS7に戻る。
【0117】
親機への接続成功の場合には、次のステップS89において、子機のプロセサ20は、親機に対して、自身に付与された子機スロットを利用して、自身のユーザ名およびゲーム名を送信する。そして、ステップS91において、ゲームスタートかどうか、すなわち、操作キー38に含まれるスタートボタンが押されたかどうか判断する。このステップS91でスタートボタンのオンが検出されると、次のステップS93において、子機の送受信処理を実行する。
【0118】
図24のステップS93で示す子機の送受信処理が、図32に詳細に示される。図32のステップS4001で親機パケットを受信し、次のステップS4003で同期タイマ(図18)をリセットする。そして、ステップS4005では、子機のプロセサ20は、送信バッファ92(図18)に未送信データがあるかどうか判断する。“YES”なら、次のステップS4007において、既に割り付けられている子機スロットを用いて、必要なデータ、たとえばCIDおよびペイロードを送信する。そして、未送信データがない場合、またはステップS4007の後、プロセスは、図24のステップS95にリターンする。
【0119】
再び図24に戻って、ステップS95では、子機のプロセサ20は、時間t2以上の間にわたって親機からのデータを受信できなかったかどうか判断する。この時間t2は、先の図22のステップS43での時間t1より短い。すなわち、t1>t2である。なぜなら、t1は親機が通信異常の子機を切断する時間であり、t2は子機が復帰処理を開始する時間であるので、親機は子機の復帰処理を待ってから切断する必要があるためである。“NO”の場合には、さらに次のステップS97で、受信した親機パケットのUスロットフィールドに自身の番号CIDが含まれているかどうか判断する。ステップS97で“YES”の場合には、ステップS99において、図22のゲーム処理を実行する。ただし、ステップS97で“NO”が判断されたときは、すなわち、親機パケットのUスロットフィールドに自機の番号がない場合には、ステップS101において、メッセージたとえば「親機から切断されました」をLCDに表示し、図20のステップS7に戻る。
【0120】
先のステップS95で“YES”が判断されたときには、つまり、一定時間t2以上にわたって親機からのデータを受信できなかったときには、ステップS103においてメッセージたとえば「親機と通信できなくなりました。復帰を試みます」を表示した後、ステップS105で、復帰処理を実行する。
【0121】
この復帰処理の詳細が図33に示されていて、この図33の最初のステップS5001では、子機のプロセサ20は、復帰すべき親機パケットの受信を試みる。そして、ステップS5003では、その親機からのブロードキャストデータを受信できたかどうか判断する。ただし、自分が復帰すべき親機かどうかは、図18の領域88に登録されている「接続先のPID」をみればわかる。
【0122】
ステップS5003で“NO”が判断されたとき、つまり、復帰すべき親機パケットのデータを受信できなかったとき、次のステップS5005で、タイムアウトになったかどうか判断する。そして、“NO”なら、先のステップS5003に戻るが、タイムアウトになってしまったら、次のステップS5007で、図18に示す領域88に含まれる復帰結果変数に「失敗」を書き込み、リターンする。
【0123】
先のステップS5003で“YES”が判断されたとき、すなわち、対象としている親機からの親機パケットを受信できたときには、次のステップS5009で同期タイマをリセットし、さらに、ステップS5011で親機パケットを受信する。そして、ステップS5013において、その親機パケットのUスロットフィールドに自身の番号CIDがあるかどうか判断する。受信した親機パケットに自機の番号があるということは、時間t2以上にわたる通信不能状態の原因は、親機による意図的な切断ではないということであり、したがって、次のステップS5015において、領域88(図18)の復帰結果変数に「成功」を登録してリターンする。このように復帰処理をすることによって、例えば、親機と子機が誤って通信可能範囲を外れた場合や、通信状態が悪くて通信ができなかった場合、または、子機を操作しているプレイヤに用事ができて、その子機プレイヤが少しの間通信可能範囲を外れる必要がある場合等に、それらの要因が解消されて通信が可能になった後に、以前の通信状態に復帰することが可能になる。
【0124】
ただし、ステップS5003で“YES”になってもステップS5013で“NO”が判断されたときには、通信不能が親機の意思による切断が原因であったものとして、先のステップS5007を経て、リターンする。
【0125】
図33のサブルーチンから図24のステップS107にリターンすると、このステップS107では、領域88の復帰結果変数を参照して、復帰が「成功」したかどうか判断する。“YES”なら、ステップS99に進んでゲーム処理を実行する。しかしながら、“NO”なら、ステップS109でメッセージたとえば「復帰できませんでした」を表示した後、図20のステップS7に戻る。
【0126】
以上が、自機にOCモード対応でないカートリッジが装着されている場合で、かつ自機が子機になる場合の携帯ゲーム装置の処理である。
【0127】
次に、自機にカートリッジが装着されていない場合の携帯ゲーム装置の処理を説明する。ただし、この場合には、自機は、OCモード対応のゲームの子機として動作できるだけである。
【0128】
図19に戻って、ステップS3で“NO”が判断されたとき、すなわちその子機にカートリッジがないことを検出した場合は、ブートROM(図1の24)のプログラムであるステップS111において、無線通信ユニット14(図1)のROM52に設定されているOCDプログラム(親機から子機用プログラムをダウンロードするためのプログラム)を携帯ゲーム機12のプロセサ20に含まれるWRAM28に展開し、その後ステップS113において、子機のプロセサ20は、そのWRAM28上に展開されたOCDプログラムを起動する。
【0129】
その後、図25のステップS115において、子機のプロセサ20は、図18に示すような親機リスト領域80をクリアするとともに、親機リストクリアタイマ82をリセットする。ついで、ステップS117において、親機パケットの受信を試みる。そして、ステップS119において、親機パケットの受信が成功したかどうか判断し、“NO”ならステップS125に進み、“YES”なら、ステップS121に進む。ステップS121では、受信した親機パケットに含まれる親機番号PIDと図18に示す親機リスト領域80に登録されている番号PIDとを比較して、その親機パケットを送信した親機が親機リスト内に存在しないかどうか判断する。このステップS121で“YES”が判断されると、ステップS123において、親機リストに新たな親機を登録するように、親機パケットから読み出された、親機番号PID,ユーザ名,ゲーム名,OCフラグおよびEスロットを親機リスト領域80に追加する。その後ステップS125に進む。
【0130】
ステップS125では、ステップS115でリセットした親機リストクリアタイマ82の値が「2秒」以上になったかどうか判断する。“YES”なら、ステップS127で親機リストすなわち親機リスト領域80をクリアするとともに、親機リストクリアタイマ82をリセットする。その後、ステップS125で“NO”を判断した場合と同様に、ステップS127に進む。
【0131】
ステップS127では、親機リストの内、「Eスロットが「ffh」でなくかつOCフラグが「1」である親機、つまり、OCモードでのゲームがプレイできかつ子機の参加(エントリ)を拒否していない親機の情報(ユーザ名,ゲーム名)を表示する。それによって、当該子機のユーザに対して図5に示すような親機リスト18Aを作成し、自機が接続したい親機を選択させる。そして、ステップS131で、Aボタン(図示せず)が操作されたかどうか判断する。つまり、どれか1つの親機が選択されたかどうか判断する。ステップS127で“NO”なら、つまり親機を選択しなかったら、次のステップS133で、操作キー38に含まれる十字キー(図示せず)が操作されたかどうか判断する。十字キーの操作は、エントリを希望する親機の選択のためにカーソルを移動させるためであり、したがって、このステップS133で“YES”なら、次のステップS135でカーソルを移動させ、ステップS113に戻る。
【0132】
ステップS131で“YES”が判断されると、ステップS139に進んで子機の接続処理(図30,図31)を実行する。
【0133】
ステップS137で、既に詳細に説明した方法に従って、子機の接続処理を実行し、次のステップS139で、図18の領域88の接続結果変数を参照して、接続が成功したかどうか判断する。“NO”なら、ステップS141でメッセージたとえば「接続できませんでした」を表示して、ステップS111に戻る。
【0134】
ステップS139で“YES”が判断されると、プロセサ20は、当該子機と成功裏に接続された親機に対して、自機のユーザ名,ゲーム名を送信する。その後、図26のステップS145に進み、OCモードでゲームをプレイするために、転送用子機プログラムを親機から受信して自機のRAM28(図1)内に展開するとともに、そのプログラムを起動させる。そして、その後は、ステップS147において、先に説明した図24ステップS91−S109と同様の各ステップを実行する。
【0135】
以上が、自機にカートリッジが装着されていない場合の携帯ゲーム装置の処理である。
【0136】
なお、図21のステップS81で“NO”が判断されたとき、すなわち、親機の選択を試みたが通信できなかったときには、ステップS149において、メッセージたとえば「その親機は選択できません」を表示して図20のステップS9に戻る。
また、図21のステップS79で“NO”が判断されたとき、つまり、BボタンもAボタンも操作されなかったときには、次のステップS151において、十字キー(図示せず)が操作されたかどうか、判断する。“NO”なら、次のステップS153で、さらにスタートキー(図示せず)が操作されたかどうか判断する。セレクトキーが操作されていないときは、図20のステップS9に戻る。ステップS153で“YES”が判断されたときには、ステップS153で、全表示フラグのオン/オフを切替えた後、同様にステップS9に戻る(すなわち、セレクトキーは全表示フラグのオン/オフの制御に使用される)。ただし、ステップS151で“YES”が判断されたときには、その十字キーの指示に従ってカーソルを移動させた後、ステップS9に戻る。
【0137】
なお、上述の実施例では、プログラムの進行に合わせて自機を親機とするか子機とするかを選択するようにした。しかしながら、直ちにこのような選択をするようにしてもよい。この場合には、図34に示すように、スタート直後の最初のステップS201で親機または子機の選択画面(図示せず)を表示し、その表示に従ってユーザが親機または子機を選択する。したがって、プロセサ20は、次のステップS203で、ユーザが親機を選択したかどうか判断する。ステップS203で“YES”の場合には、それ以後、先の図21のステップS29以降のステップを実行する。“NO”の場合、すなわち子機を選択したときには、図21に示すステップS7−S25,S79,S151−S157,およびS81−S109を実行する。
【図面の簡単な説明】
【図1】図1はこの発明の一実施例の無線送信ゲームシステムに用いられる携帯ゲーム装置の一例を示すブロック図である。
【図2】図2は図1実施例の携帯ゲーム装置を用いたゲームシステムの概略を説明するための図解図である。
【図3】図3は図2実施例において自機の周りのすべての親機の情報を表示する全表示フラグがオンされている場合の表示画面例を示す図解図である。
【図4】図4は図2実施例において、全表示フラグがオンされていない場合において、自機の周りに存在しかつ自機との間で通信ゲームが可能な親機だけを表示する表示画面例を示す図解図である。
【図5】図5は図2実施例において自機の周りに存在しかつOC(ワンカートリッジ)モードでゲームがプレイできる親機のみを表示する表示画面例を示す図解図である。
【図6】図6は図2実施例における或る状況での親機リストの表示画面例を示す図解図である。
【図7】図7は図2実施例において図6の状況でユーザ名「四郎」の携帯ゲーム装置が通信範囲に入ったときの親機リストの表示画面例を示す図解図である。
【図8】図8は図2実施例において図7の状況でユーザ名「一郎」の携帯ゲーム装置が通信範囲外に出たときの親機リストの表示画面例を示す図解図である。
【図9】図9は図2実施例において自機が親機でありかつ子機の接続(エントリ)を待っている状態の子機リストの表示画面例を示す図解図である。
【図10】図10は図2実施例におけるデータサイクルの一例を示す図解図である。
【図11】図11は図10実施例における親機スロットに送出される親機パケットの一例を示す図解図である。
【図12】図12は図11におけるUスロットを詳細に示す図解図である。
【図13】図13は図10実施例における子機スロットに送出される子機パケットの一例を示す図解図である。
【図14】図14は図1実施例の或る状況における通信データの具体例を示す図解図である。
【図15】図15はOCモードには対応しないカートリッジのメモリマップの一例を示す図解図である。
【図16】図16はOCモードに対応するカートリッジのメモリマップの一例を示す図解図である。
【図17】図17は図1実施例の無線通信ユニットに含まれるEEPROMのメモリマップの一例を示す図解図である。
【図18】図18は図1実施例において携帯ゲーム装置を構成する携帯ゲーム機の内部RAMのメモリマップの一例を示す図解図である。
【図19】図19は図1実施例の携帯ゲーム機の動作を示すメインフローの一部を示すフロー図である。
【図20】図20は図19の続きを示すフロー図である。
【図21】図21は図20の続きを示すフロー図である。
【図22】図22は図21の続きを示すフロー図である。
【図23】図23は図22の続きを示すフロー図である。
【図24】図24は図21の続きを示すフロー図である。
【図25】図25は図19の続きを示すフロー図である。
【図26】図26は図25の続きを示すフロー図である。
【図27】図27は親機の接続処理の動作の一部を示すフロー図である。
【図28】図28は図27の続きを示すフロー図である。
【図29】図29は親機の送受信処理の動作を示すフロー図である。
【図30】図30は子機の接続処理の動作の一部を示すフロー図である。
【図31】図31は図30の続きを示すフロー図である。
【図32】図32は子機の送受信処理の動作を示すフロー図である。
【図33】図33は子機の復帰処理の動作を示すフロー図である。
【図34】図34は自機を親機とするか子機とするかの選択を最初に行う実施例の要部を示すフロー図である。
【符号の説明】
10 …携帯ゲーム装置
12 …携帯ゲーム機
14 …無線通信ユニット
16 …カートリッジ
18 …LCD
20 …プロセサ
22 …CPUコア
24 …ブートROM
28 …WRAM
38 …操作キー
42 …ROM
54 …EEPROM
Claims (10)
- 無線通信によってデータを送受信することにより通信ゲームを実行する複数の携帯型のゲーム装置を用いる無線通信ゲームシステムであって、
前記複数のゲーム装置の中には、親機と子機が存在し、
前記親機は、
自機への接続を要求する子機から当該子機の識別情報を受信する受信手段、
自機に接続することを許可する子機の識別情報が設定される接続許可データに、前記受信手段により受信された識別情報を設定し、当該設定された接続許可データを含む親機パケットを、自機と子機との接続の当初から継続して子機に送信し続ける送信手段、および
子機からの通信が第1所定時間途絶えた場合に、前記接続許可データから当該子機の識別情報を削除する削除手段を備え、
前記子機は、
前記親機からの通信が途絶えたことを検出する通信断絶検出手段、および
前記通信断絶検出手段が親機からの通信が途絶えたことを検出したときに、前記親機から送信される前記親機パケットの受信を試みて、受信した親機パケットの前記接続許可データに自機の識別情報が設定されているときに、通信を再開する復帰手段を備える、無線通信ゲームシステム。 - 前記子機の前記通信断絶検出手段は、親機からの通信が第2所定時間途絶えたことを検出するものであり、
前記第1所定時間は前記第2所定時間より長い、請求項1記載の無線通信ゲームシステム。 - 前記親機と前記子機とは、前記親機によって使用される第1タイムスロットと前記子機によって使用される複数のサブタイムスロットを含む第2タイムスロットとによって構成される通信周期で通信されるものであり、
前記接続許可データは、前記複数のサブタイムスロットのうち前記子機が復帰すべきサブタイムスロットを指定する情報を含む、請求項1または2記載の無線通信ゲームシステム。 - 第1タイムスロットと複数のサブタイムスロットを含む第2タイムスロットとによって構成される通信周期で無線通信することにより通信ゲームを実行する複数の携帯ゲーム装置を用いる、無線通信ゲームシステムであって、
前記複数のゲーム装置の中には、親機と子機が存在し、
前記親機は、
前記第1タイムスロットで親機パケットをブロードキャストしかつ前記第2タイムスロットで子機パケットを受信する第1通信制御手段、および
自機への接続を要求する子機から当該子機の識別情報を受信する受信手段を備え、
前記親機パケットは、自機に接続することを許可する子機の識別情報が設定される接続許可データを含み、
自機と子機との接続の当初から継続して、前記受信手段により受信された識別情報を前記接続許可データに設定し続け、かつ、子機からの通信が所定時間途絶えた場合に、前記接続許可データから当該子機の識別情報を削除する親機パケット設定手段をさらに備え、
前記子機は、
前記複数のサブタイムスロットのうち少なくとも1つのサブタイムスロットで前記子機パケットを送信し、前記第1タイムスロットで前記親機パケットを受信する第2通信制御手段、
前記親機からの通信が途絶えたことを検出する通信断絶検出手段、および
前記通信断絶検出手段が親機からの通信が途絶えたことを検出したときに、前記親機からブロードキャストされる前記親機パケットの受信を試みて、受信した親機パケットの前記接続許可データに自機の識別情報が設定されているときに、通信を再開する復帰手段を備える、無線通信ゲームシステム。 - 無線通信によってデータを送受信することにより通信ゲームを実行する複数の携帯型のゲーム装置を用い、前記複数のゲーム装置の中には、親機と子機が存在する、そのような無線通信ゲームシステムにおいて用いるゲーム装置のプログラムであって、
前記プログラムは、
当該ゲーム装置が親機となったときには、前記ゲーム装置のプロセサを、
自機への接続を要求する子機から当該子機の識別情報を受信する受信手段、
自機に接続することを許可する子機の識別情報が設定される接続許可データに、前記受信手段により受信された識別情報を設定し、当該設定された接続許可データを含む親機パケットを、自機と子機との接続の当初から継続して子機に送信し続ける送信手段、および
子機からの通信が所定時間途絶えた場合に、前記接続許可データから当該子機の識別情報を削除する削除手段として機能させ、
当該ゲーム装置が子機となったときには、前記ゲーム装置のプロセサを、
前記親機からの通信が途絶えたことを検出する通信断絶検出手段、および
前記通信断絶検出手段が親機からの通信が途絶えたことを検出したときに、前記親機から送信される前記親機パケットの受信を試みて、受信した親機パケットの前記接続許可データに自機の識別情報が設定されているときに、通信を再開する復帰手段として機能させる、ゲーム装置のプログラム。 - 第1タイムスロットと複数のサブタイムスロットを含む第2タイムスロットとによって構成される通信周期で無線通信することにより通信ゲームを実行する複数の携帯ゲーム装置を用い、前記複数のゲーム装置の中には、親機と子機が存在する、そのような無線通信ゲームシステムに用いるゲーム装置のプログラムであって、
前記プログラムは、
当該ゲーム装置が親機となったときには、前記ゲーム装置のプロセサを、
前記第1タイムスロットで親機パケットをブロードキャストしかつ前記第2タイムスロットで子機パケットを受信する第1通信制御手段、および
自機への接続を要求する子機から当該子機の識別情報を受信する受信手段として機能させ
前記親機パケットは、自機に接続することを許可する子機の識別情報が設定される接続許可データを含み、さらに
自機と子機との接続の当初から継続して、前記受信手段により受信された識別情報を前記接続許可データに設定し続け、かつ、子機からの通信が所定時間途絶えた場合に、前記接続許可データから当該子機の識別情報を削除する親機パケット設定手段として機能させ、
当該ゲーム装置が子機となったときには、前記ゲーム装置のプロセサを、
前記複数のサブタイムスロットのうち少なくとも1つのサブタイムスロットで前記子機パケットを送信し、前記第1タイムスロットで前記親機パケットを受信する第2通信制御手段、
前記親機からの通信が途絶えたことを検出する通信断絶検出手段、および
前記通信断絶検出手段が親機からの通信が途絶えたことを検出したときに、前記親機からブロードキャストされる前記親機パケットの受信を試みて、受信した親機パケットの前記接続許可データに自機の識別情報が設定されているときに、通信を再開する復帰手段として機能させる、ゲーム装置のプログラム。 - 無線通信によってデータを送受信することにより通信ゲームを実行する複数の携帯型のゲーム装置を用い、前記複数のゲーム装置の中には、親機と子機が存在する、そのような無線通信ゲームシステムに用いる前記ゲーム装置によって読み取り可能に、プログラムを記録した記録媒体であって、
前記プログラムは、
当該ゲーム装置が親機となったときには、前記ゲーム装置のプロセサを、
自機への接続を要求する子機から当該子機の識別情報を受信する受信手段、
自機に接続することを許可する子機の識別情報が設定される接続許可データに、前記受信手段により受信された識別情報を設定し、当該設定された接続許可データを含む親機パケットを、自機と子機との接続の当初から継続して子機に送信し続ける送信手段、および
子機からの通信が所定時間途絶えた場合に、前記接続許可データから当該子機の識別情報を削除する削除手段として機能させ、
当該ゲーム装置が子機となったときには、前記ゲーム装置のプロセサを、
前記親機からの通信が途絶えたことを検出する通信断絶検出手段、および
前記通信断絶検出手段が親機からの通信が途絶えたことを検出したときに、前記親機から送信される前記親機パケットの受信を試みて、受信した親機パケットの前記接続許可データに自機の識別情報が設定されているときに、通信を再開する復帰手段として機能させる、無線通信ゲームシステムのプログラム記録媒体。 - 第1タイムスロットと複数のサブタイムスロットを含む第2タイムスロットとによって構成される通信周期で無線通信することにより通信ゲームを実行する複数の携帯ゲーム装置を用い、前記複数のゲーム装置の中には、親機と子機が存在する、そのような無線通信ゲームシステムに用いる前記ゲーム装置によって読み取り可能に、プログラムを記録した記録媒体であって、
前記プログラムは、
当該ゲーム装置が親機となったときには、前記ゲーム装置のプロセサを、
前記第1タイムスロットで親機パケットをブロードキャストしかつ前記第2タイムスロットで子機パケットを受信する第1通信制御手段、および、
自機への接続を要求する子機から当該子機の識別情報を受信する受信手段として機能させ、
前記親機パケットは、自機に接続することを許可する子機の識別情報が設定される接続許可データを含み、さらに
自機と子機との接続の当初から継続して、前記受信手段により受信された識別情報を前記接続許可データに設定し続け、かつ、子機からの通信が所定時間途絶えた場合に、前記接続許可データから当該子機の識別情報を削除する親機パケット設定手段として機能させ、
当該ゲーム装置が子機となったときには、前記ゲーム装置のプロセサを、
前記複数のサブタイムスロットのうち少なくとも1つのサブタイムスロットで前記子機パケットを送信し、前記第1タイムスロットで前記親機パケットを受信する第2通信制御手段、
前記親機からの通信が途絶えたことを検出する通信断絶検出手段、および
前記通信断絶検出手段が親機からの通信が途絶えたことを検出したときに、前記親機からブロードキャストされる前記親機パケットの受信を試みて、受信した親機パケットの前記接続許可データに自機の識別情報が設定されているときに、通信を再開する復帰手段として機能させる、無線通信ゲームシステムのプログラム記録媒体。 - 無線通信によってデータを送受信することにより通信ゲームを実行する複数の携帯型のゲーム装置を用い、前記複数のゲーム装置の中に親機と子機が存在し、前記親機は、自機 への接続を要求する子機から当該子機の識別情報を受信する受信手段、自機に接続することを許可する子機の識別情報が設定される接続許可データに、前記受信手段により受信された識別情報を設定し、当該設定された接続許可データを含む親機パケットを、自機と子機との接続の当初から継続して子機に送信し続ける送信手段、および子機からの通信が所定時間途絶えた場合に、前記接続許可データから当該子機の識別情報を削除する削除手段を備える、そのような無線通信ゲームシステムにおける、前記子機となるゲーム装置であって、
前記親機からの通信が途絶えたことを検出する通信断絶検出手段、および
前記通信断絶検出手段が親機からの通信が途絶えたことを検出したときに、前記親機から送信される前記親機パケットの受信を試みて、受信した親機パケットの前記接続許可データがに自機の識別情報が設定されているときに、通信を再開する復帰手段を備える、無線通信ゲームシステムにおけるゲーム装置。 - 第1タイムスロットと複数のサブタイムスロットを含む第2タイムスロットとによって構成される通信周期で無線通信することにより通信ゲームを実行する複数の携帯ゲーム装置を用い、前記複数のゲーム装置の中に親機と子機が存在し、前記親機は、前記第1タイムスロットで親機パケットをブロードキャストしかつ前記第2タイムスロットで子機パケットを受信する第1通信制御手段、および、自機への接続を要求する子機から当該子機の識別情報を受信する受信手段を備え、前記親機パケットは、自機に接続することを許可する子機の識別情報が設定される接続許可データを含み、さらに自機と子機との接続の当初から継続して、前記受信手段により受信された識別情報を前記接続許可データに設定し続け、かつ、子機からの通信が所定時間途絶えた場合に、前記接続許可データから当該子機の識別情報を削除する親機パケット設定手段を備える、そのような無線通信ゲームシステムにおける、前記子機となるゲーム装置であって、
前記複数のサブタイムスロットのうち少なくとも1つのサブタイムスロットで前記子機パケットを送信し、前記第1タイムスロットで前記親機パケットを受信する第2通信制御手段、
前記親機からの通信が途絶えたことを検出する通信断絶検出手段、および
前記通信断絶検出手段が親機からの通信が途絶えたことを検出したときに、前記親機からブロードキャストされる前記親機パケットの受信を試みて、受信した親機パケットの前記接続許可データに自機の識別情報が設定されているときに、通信を再開する復帰手段を備える、無線通信ゲームシステムにおけるゲーム装置。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002306867A JP3830442B2 (ja) | 2002-10-22 | 2002-10-22 | 無線通信ゲームシステム、ゲーム装置、情報記憶媒体、および、プログラム |
US10/689,072 US20040110563A1 (en) | 2002-10-22 | 2003-10-21 | Wireless communication game system |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002306867A JP3830442B2 (ja) | 2002-10-22 | 2002-10-22 | 無線通信ゲームシステム、ゲーム装置、情報記憶媒体、および、プログラム |
Publications (3)
Publication Number | Publication Date |
---|---|
JP2004141225A JP2004141225A (ja) | 2004-05-20 |
JP2004141225A5 JP2004141225A5 (ja) | 2005-12-22 |
JP3830442B2 true JP3830442B2 (ja) | 2006-10-04 |
Family
ID=32453492
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2002306867A Expired - Lifetime JP3830442B2 (ja) | 2002-10-22 | 2002-10-22 | 無線通信ゲームシステム、ゲーム装置、情報記憶媒体、および、プログラム |
Country Status (2)
Country | Link |
---|---|
US (1) | US20040110563A1 (ja) |
JP (1) | JP3830442B2 (ja) |
Families Citing this family (35)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8224985B2 (en) * | 2005-10-04 | 2012-07-17 | Sony Computer Entertainment Inc. | Peer-to-peer communication traversing symmetric network address translators |
US8060626B2 (en) | 2008-09-22 | 2011-11-15 | Sony Computer Entertainment America Llc. | Method for host selection based on discovered NAT type |
JP3907609B2 (ja) * | 2003-04-30 | 2007-04-18 | 株式会社ソニー・コンピュータエンタテインメント | ゲーム実行方法、ゲーム機、通信方法および通信装置 |
CN1838980A (zh) * | 2003-09-19 | 2006-09-27 | 诺基亚公司 | 支持使用多人游戏集线器的无线多人游戏的方法和设备 |
JP4324487B2 (ja) * | 2004-01-20 | 2009-09-02 | 任天堂株式会社 | 無線通信ゲームシステムおよび無線通信ゲームプログラム |
US7769409B2 (en) | 2004-06-23 | 2010-08-03 | Sony Computer Entertainment America Inc. | Network participant status evaluation |
US9289678B2 (en) | 2005-01-12 | 2016-03-22 | Microsoft Technology Licensing, Llc | System for associating a wireless device to a console device |
US8369795B2 (en) | 2005-01-12 | 2013-02-05 | Microsoft Corporation | Game console notification system |
JP4754261B2 (ja) * | 2005-04-28 | 2011-08-24 | 任天堂株式会社 | ゲームシステム、ゲーム装置、ゲームプログラムおよびゲーム制御方法 |
US7444130B2 (en) * | 2005-08-19 | 2008-10-28 | Nextstep, Inc. | Tethered digital butler consumer electronic device and method |
US9866697B2 (en) | 2005-08-19 | 2018-01-09 | Nexstep, Inc. | Consumer electronic registration, control and support concierge device and method |
US7389103B2 (en) * | 2005-08-19 | 2008-06-17 | Robert Stepanian | Tethered digital butler consumer electronic device and method |
US9614964B2 (en) | 2005-08-19 | 2017-04-04 | Nextstep, Inc. | Consumer electronic registration, control and support concierge device and method |
JP5501546B2 (ja) * | 2005-10-04 | 2014-05-21 | 任天堂株式会社 | ゲームシステム、ゲーム装置およびゲームプログラム |
KR100722427B1 (ko) | 2005-11-17 | 2007-05-28 | 한국전자통신연구원 | 유무선 멀티플랫폼 온라인 게임의 게임 상태 동기화 방법 |
JP4982111B2 (ja) * | 2006-06-06 | 2012-07-25 | 株式会社カプコン | ゲームシステム、ゲーム装置、プログラム、および記録媒体 |
US8619623B2 (en) | 2006-08-08 | 2013-12-31 | Marvell World Trade Ltd. | Ad-hoc simple configuration |
US20080058065A1 (en) * | 2006-09-06 | 2008-03-06 | Aruze Gaming America, Inc. | Game system including slot machines and game control method thereof |
US20080070671A1 (en) * | 2006-09-06 | 2008-03-20 | Aruze Gaming America, Inc. | Slot machines and playing method thereof |
US20080076570A1 (en) * | 2006-09-06 | 2008-03-27 | Sam Johnson | Mobile operation of video gaming machines |
US20080085751A1 (en) * | 2006-10-06 | 2008-04-10 | Aruze Gaming America, Inc. | Game system including slot machines and game control method thereof |
US20080085753A1 (en) * | 2006-10-10 | 2008-04-10 | Aruze Gaming America, Inc. | Game system including slot machines and control method thereof |
US8233456B1 (en) | 2006-10-16 | 2012-07-31 | Marvell International Ltd. | Power save mechanisms for dynamic ad-hoc networks |
US8732315B2 (en) | 2006-10-16 | 2014-05-20 | Marvell International Ltd. | Automatic ad-hoc network creation and coalescing using WiFi protected setup |
US9308455B1 (en) | 2006-10-25 | 2016-04-12 | Marvell International Ltd. | System and method for gaming in an ad-hoc network |
JP4137157B2 (ja) * | 2006-12-07 | 2008-08-20 | 株式会社スクウェア・エニックス | ビデオゲーム処理装置、ビデオゲーム処理方法、およびビデオゲーム処理プログラム |
US7995478B2 (en) | 2007-05-30 | 2011-08-09 | Sony Computer Entertainment Inc. | Network communication with path MTU size discovery |
WO2009006585A1 (en) | 2007-07-03 | 2009-01-08 | Marvell Semiconductor, Inc. | Location aware ad-hoc gaming |
US7856501B2 (en) | 2007-12-04 | 2010-12-21 | Sony Computer Entertainment Inc. | Network traffic prioritization |
US7856506B2 (en) | 2008-03-05 | 2010-12-21 | Sony Computer Entertainment Inc. | Traversal of symmetric network address translator for multiple simultaneous connections |
JP5225764B2 (ja) * | 2008-06-20 | 2013-07-03 | 株式会社アリカ | 通信ゲームシステム及び通信ゲームプログラム |
JP5800483B2 (ja) * | 2010-07-07 | 2015-10-28 | 任天堂株式会社 | 情報処理プログラム、情報処理装置、情報処理システムおよび情報処理方法 |
CN103514039B (zh) * | 2012-06-25 | 2018-07-06 | 联想(北京)有限公司 | 操作控制方法及电子设备 |
KR102579203B1 (ko) * | 2019-12-31 | 2023-09-15 | 한국전자통신연구원 | 게임 결과 예측 장치 및 방법 |
US11724194B2 (en) * | 2021-07-28 | 2023-08-15 | Blizzard Entertainment, Inc. | Initial results of a reinforcement learning model using a heuristic |
Family Cites Families (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5618045A (en) * | 1995-02-08 | 1997-04-08 | Kagan; Michael | Interactive multiple player game system and method of playing a game between at least two players |
US5738583A (en) * | 1996-02-02 | 1998-04-14 | Motorola, Inc. | Interactive wireless gaming system |
JPH1015245A (ja) * | 1996-07-05 | 1998-01-20 | Kokusai Electric Co Ltd | データ伝送装置、ビデオゲーム機 |
JPH1056417A (ja) * | 1996-08-07 | 1998-02-24 | Nippon Telegr & Teleph Corp <Ntt> | スケジューリング型空線制御アクセス方法 |
US6165068A (en) * | 1997-01-22 | 2000-12-26 | Tomy Company, Ltd. | Connection-fighting type game machine and connection-fighting type game methods |
JPH10209956A (ja) * | 1997-01-28 | 1998-08-07 | Nippon Telegr & Teleph Corp <Ntt> | 無線パケット通信方法 |
JP2000165512A (ja) * | 1998-11-24 | 2000-06-16 | Hitachi Ltd | 不正利用検出方法及び装置及び不正利用検出プログラムを記録したコンピュータ読み取り可能な記憶媒体 |
KR100323389B1 (ko) * | 1999-04-28 | 2002-02-19 | 오정훈 | 휴대용 무선 네트웍 게임기 및 게임 방법 |
US6500070B1 (en) * | 1999-05-28 | 2002-12-31 | Nintendo Co., Ltd. | Combined game system of portable and video game machines |
JP2001168873A (ja) * | 1999-12-07 | 2001-06-22 | Sony Corp | 無線通信システムおよびその方法と無線通信装置 |
US6810463B2 (en) * | 2000-05-24 | 2004-10-26 | Nintendo Co., Ltd. | Gaming machine that is usable with different game cartridge types |
US6354946B1 (en) * | 2000-09-20 | 2002-03-12 | Time Domain Corporation | Impulse radio interactive wireless gaming system and method |
JP2002224449A (ja) * | 2001-01-31 | 2002-08-13 | Tdk Corp | ビデオゲーム機 |
JP4064355B2 (ja) * | 2004-01-20 | 2008-03-19 | 任天堂株式会社 | ゲームシステムおよびゲーム装置 |
-
2002
- 2002-10-22 JP JP2002306867A patent/JP3830442B2/ja not_active Expired - Lifetime
-
2003
- 2003-10-21 US US10/689,072 patent/US20040110563A1/en not_active Abandoned
Also Published As
Publication number | Publication date |
---|---|
JP2004141225A (ja) | 2004-05-20 |
US20040110563A1 (en) | 2004-06-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3830442B2 (ja) | 無線通信ゲームシステム、ゲーム装置、情報記憶媒体、および、プログラム | |
JP2004136009A (ja) | 無線通信ゲームシステム | |
JP3824568B2 (ja) | 無線通信ゲームシステム | |
JP3679111B2 (ja) | 無線通信ゲームシステム | |
JP2005095697A5 (ja) | ||
JP3790257B2 (ja) | 無線通信ゲームシステム、ゲーム装置、情報記憶媒体、および、プログラム | |
JP3699471B2 (ja) | 無線通信ゲームシステム | |
JP3790263B2 (ja) | 無線通信ゲームシステム、ゲーム装置、情報記憶媒体、および、プログラム | |
JP3790264B2 (ja) | 無線通信ゲームシステム、ゲーム装置、情報記憶媒体、および、プログラム | |
JP3790261B2 (ja) | 無線通信ゲームシステム、ゲーム装置、情報記憶媒体、および、プログラム | |
JP4456611B2 (ja) | 無線通信ゲームシステム、ゲーム装置およびプログラム | |
JP3786369B2 (ja) | 無線通信ゲームシステム、ゲーム装置、情報記憶媒体、および、プログラム | |
JP3798010B2 (ja) | 無線通信ゲームシステム、ゲーム装置、情報記憶媒体、および、プログラム | |
JP4099482B2 (ja) | 無線通信ゲームシステム、ゲーム装置、情報記憶媒体、および、プログラム | |
JP5358619B2 (ja) | 無線通信ゲームシステム、ゲーム装置、ゲームプログラムおよび無線通信方法 | |
JP5427204B2 (ja) | 無線通信ゲームシステム、ゲーム装置、ゲームプログラムおよびゲーム処理方法 | |
JP4778999B2 (ja) | ゲーム装置およびプログラム | |
JP6348547B2 (ja) | 無線通信ゲームシステム | |
JP3790262B2 (ja) | 無線通信ゲームシステム、ゲーム装置、情報記憶媒体、および、プログラム | |
JP6193948B2 (ja) | 無線通信ゲームシステム | |
JP3790259B2 (ja) | 無線通信ゲームシステム、ゲーム装置、情報記憶媒体、および、プログラム | |
JP3790260B2 (ja) | 無線通信ゲームシステム | |
JP5923082B2 (ja) | 無線通信ゲームシステム | |
JP5358610B2 (ja) | ゲーム装置、ゲームプログラムおよびゲーム処理方法 | |
JP5856589B2 (ja) | 無線通信ゲームシステム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20051021 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20051026 |
|
A871 | Explanation of circumstances concerning accelerated examination |
Free format text: JAPANESE INTERMEDIATE CODE: A871 Effective date: 20051026 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20051026 |
|
A975 | Report on accelerated examination |
Free format text: JAPANESE INTERMEDIATE CODE: A971005 Effective date: 20051110 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20060117 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20060316 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20060411 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20060612 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20060711 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20060711 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 3830442 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090721 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090721 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100721 Year of fee payment: 4 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100721 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110721 Year of fee payment: 5 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110721 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120721 Year of fee payment: 6 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120721 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120721 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130721 Year of fee payment: 7 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130721 Year of fee payment: 7 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
EXPY | Cancellation because of completion of term |