ゲーム機、ゲームデータのバックアップ制御プログラムおよびバックアップ制御方法
【課題】ゲームデータの喪失を防止することができる手段を提供する。
【解決手段】ゲーム機10はCPU40を含み、ゲーム機10にゲームカートリッジ32が装着されると、CPU40は、ゲームカートリッジ32内のROM56および2つのバックアップ領域を有するフラッシュメモリ58に電気的に接続される。ゲームの進行状況に応じて発生するゲームデータはワークメモリ44に保存(更新)され、たとえば、ユーザの指示に従って最新ゲームデータがバックアップ領域に書き込まれる。CPU40は、最新ゲームデータを書き込むとき、2つのバックアップ領域のうち、書き込まれた時間がより古いゲームデータを記憶するバックアップ領域を書込対象のバックアップ領域として選択する。このとき、選択されたバックアップ領域への書込みができなければ、直前に書き込まれたゲームデータへの上書きを禁止して、1世代前のゲームデータを残す。
【解決手段】ゲーム機10はCPU40を含み、ゲーム機10にゲームカートリッジ32が装着されると、CPU40は、ゲームカートリッジ32内のROM56および2つのバックアップ領域を有するフラッシュメモリ58に電気的に接続される。ゲームの進行状況に応じて発生するゲームデータはワークメモリ44に保存(更新)され、たとえば、ユーザの指示に従って最新ゲームデータがバックアップ領域に書き込まれる。CPU40は、最新ゲームデータを書き込むとき、2つのバックアップ領域のうち、書き込まれた時間がより古いゲームデータを記憶するバックアップ領域を書込対象のバックアップ領域として選択する。このとき、選択されたバックアップ領域への書込みができなければ、直前に書き込まれたゲームデータへの上書きを禁止して、1世代前のゲームデータを残す。
【発明の詳細な説明】
【技術分野】
【0001】
この発明はゲーム機、ゲームデータのバックアップ制御プログラムおよびバックアップ制御方法に関し、特にたとえば電気的に書き換え可能な記憶領域に2つまたは3つ以上のバックアップ領域を有する不揮発性メモリを備え、当該バックアップ領域にゲームデータを書き込む、ゲーム機、ゲームデータのバックアップ制御プログラムおよびバックアップ制御方法に関する。
【背景技術】
【0002】
従来のこの種のゲーム機の一例が特許文献1に開示される。この特許文献1のホットスタートシステムでは、操作者の操作によって、ゲームカートリッジのスタティックRAMに設けたゲーム1〜ゲーム3までの記憶領域の中からバックアップ箇所が選択される。選択されたバックアップ箇所にゲームデータがバックアップされていなければ、テレビゲーム機に設けられるスクラッチRAMのバックアップ対象データ領域を初期化して、最初からゲームを開始する。一方、選択されたバックアップ箇所にゲームデータがバックアップされていれば、テレビゲーム機のスクラッチRAMに当該ゲームデータを読み込み、続きからゲームを開始する。ゲームの進行に従ってスクラッチRAMのゲームデータが更新され、たとえば、主人公を動作させる毎に、スクラッチRAMのゲームデータのうちバックアップ対象データがゲームカートリッジのスタティックRAMの予め定めた(選択した)記憶領域に自動的に記憶され、ゲームの状態が随時自動的にバックアップされる。
【0003】
また、従来技術の他の一例が特許文献2に開示される。この特許文献2の不揮発性メモリ記憶媒体用ファイルシステムでは、使用頻度リストの未使用状態情報のものの中らから書込み回数情報値が最小のものをサーチして得た論理ブロック番号を書込対象とすることにより、利用可能メモリブロックを平均的に書き込むようにして、つまり書込み頻度を平準化して、不揮発性メモリの長寿命化を図っている。
【0004】
【特許文献1】特開平5−12139号公報(第4頁〜第5頁,第6図〜第7図)
【特許文献2】特開平10−31611号公報(第5頁〜第7頁,第2図〜第4図)
【発明の開示】
【発明が解決しようとする課題】
【0005】
しかし、前者の場合には、バックアップメモリとしてスタティックRAMを使用しており、ゲームデータのバックアップのために電池を利用する必要がある。このため、特に電池の消耗が激しいゲーム中に電池が切れる可能性が高く、このような場合には、スタティックRAM内の全てのゲームデータが消滅しまうという問題があった。近年、このような問題を回避するため、バックアップメモリとしてデータの保持に電池を必要としない不揮発性メモリ(例えばフラッシュメモリ、強誘電体メモリなど)が使用され始めている。このように、不揮発性メモリを利用すれば、電池切れの心配はないが、特にフラッシュメモリは、スタティックRAMに比べて、書込み速度が遅く記憶素子の寿命が短いというデメリットを有している。このため、ユーザが選択した同一のバックアップ箇所が集中して書き換えられると、そのバックアップ個所の記憶素子の寿命が、他の個所に比べて縮まるので、当該バックアップ領域に記憶されるゲームデータが失われやすいという問題が新たに生じている。
【0006】
一方、後者の場合には、不揮発性メモリの各メモリブロックの書き換え回数を平準化して特定のメモリブロックだけの寿命が他のメモリブロックの寿命に比べて極端に短くなることがないようにしている。
【0007】
しかしながら、上述した両者を考慮しても、最新ゲームデータを或るバックアップ個所に書き込んでいる途中に或る記憶素子(又は記憶領域の一部)が突然不良(寿命等)になってしまうと、最新ゲームデータを書き込めなくなり、さらに、最新ゲームデータの書込み前の旧ゲームデータの一部に最新ゲームデータの一部が書き込まれてしまっているので、その旧ゲームデータが壊れて消滅してしまうという問題は従前と変わらず存在する。さらに、最新ゲームデータの書込み途中でゲーム機側の電源を切られてしまうと、最新ゲームデータとともに旧ゲームデータのいずれも壊れてしまい最悪全てのゲームデータが消滅する問題も生じる。なお、プレイヤがこれまでに長時間をかけてゲームを進めた結果であるゲームデータの破損による消滅は、プレイヤによって非常に重要な問題である。
【0008】
それゆえに、この発明の主たる目的は、少なくとも1世代前のゲームデータの消滅を確実に防止することができる、ゲーム機、ゲームデータのバックアップ制御プログラムおよびバックアップ制御方法を提供することである。
【課題を解決するための手段】
【0009】
この発明は、電気的に書き換え可能な記憶領域に2つまたは3つ以上のバックアップ領域を有する不揮発性メモリを備え、当該バックアップ領域にゲームデータを書き込むゲーム機である。このゲーム機は、最新ゲームデータを書き込むとき、2つまたは3つ以上のバックアップ領域のうち、書き込まれた時間がより古いゲームデータを記憶するバックアップ領域を当該最新ゲームデータの書込対象バックアップ領域として優先的に選択する領域選択手段、領域選択手段によって選択された書込対象バックアップ領域への最新ゲームデータの書込みを実行する書込手段、書込手段によって最新ゲームデータの書込みをできたかどうかを検出する検出手段、検出手段によって最新ゲームデータの書込みができなかったことが検出されたとき、必要に応じて領域選択手段による書込対象バックアップ領域の選択を繰り返す繰返手段、および領域選択手段によって、最新ゲームデータの直前に書き込まれたゲームデータを記憶するバックアップ領域だけが書込対象バックアップ領域として最後に選択可能な状態になったとき、当該書込対象バックアップ領域への書込みを禁止する禁止手段を備える。
【0010】
ゲーム機 (10:実施例で相当する参照符号。以下同じ。)は、電気的に書き換え可能な記憶領域に少なくとも2つのバックアップ領域を有する不揮発性メモリ(58)を備え、当該バックアップ領域にゲームデータを書き込む。領域選択手段(40,S15) は、最新ゲームデータを書き込むとき、少なくとも2つのバックアップ領域のうち、書きこまれた時間がより古いゲームデータを記憶するバックアップ領域を当該最新ゲームデータの書込対象バックアップ領域として優先的に選択する。書込手段(40,S17,S25)は、領域選択手段(40,S15)によって選択された書込対象バックアップ領域への最新ゲームデータの書込みを実行する。検出手段(40,S27)は、書込手段(40,S17,S25)によって最新ゲームデータの書込みをできたかどうかを検出する。繰返手段(40,S101,S103)は、検出手段(40,S27)によって、最新ゲームデータの書込みができなかったことが検出されたとき、必要に応じて領域選択手段(40,S15)による書込対象バックアップ領域の選択を繰り返す。具体的には、バックアップ領域が2つの場合には、最新ゲームデータの書込みができなかったことが検出されても、選択手段(40,S15)による書込対象バックアップ領域の選択を繰り返さない。一方、バックアップ領域が3つ以上の場合には、最新ゲームデータの書込みができなかったことが検出されると、選択手段(40,S15)による書込対象バックアップ領域の選択を繰り返して、最新ゲームデータの書込み処理を繰り返し実行する。そして、禁止手段(40,S29)は、領域選択手段(40,S15)によって、最新ゲームデータがバックアップ領域に最新ゲームデータの直前に書き込まれたゲームデータを記憶するバックアップ領域だけが書込対象バックアップ領域として最後に選択可能な状態となったとき、書込対象バックアップ領域への書込みを禁止する。
【0011】
なお、バックアップ領域にゲームデータが未だ記憶されていない場合には、当該バックアップ領域が優先的に書込対象バックアップ領域として選択される。
【0012】
この発明によれば、確実に1世代前のゲームデータを残すことができる。
【0013】
請求項2は、請求項1に従属し、書込手段は、ゲームデータの新旧を識別するための履歴データを最新ゲームデータに含めて書込み、領域選択手段は、最新ゲームデータを書き込む前に、履歴データに基づいて、書き込まれた時間がより古いゲームデータを記憶するバックアップ領域を書込対象バックアップ領域として選択する、ゲーム機である。
【0014】
請求項2の発明によれば、書込手段(40,S17,S25)は、ゲームデータの新旧を識別するための履歴データを最新ゲームデータに含めて書き込むので、領域選択手段(40,S15)は最新ゲームデータを書き込む前に、旧ゲームデータに含まれる履歴データに基づいて、書き込まれた時間がより古いゲームデータを記憶するバックアップ領域を書込対象バックアップ領域として選択することができる。したがって、たとえば、最も古い履歴データを有するゲームデータを決定して、当該ゲームデータが記憶されるバックアップ領域を書込対象に選択することができるのである。
【0015】
請求項3は、請求項1または請求項2に従属し、禁止手段は、領域選択手段によって、最新ゲームデータの直前に書き込まれたゲームデータを記憶するバックアップ領域だけが書込対象バックアップ領域として最後に選択可能な状態になったとき、最新ゲームデータの書込み処理を強制的に終了する強制終了手段を含む、ゲーム機である。
【0016】
請求項3の発明の発明によれば、強制終了手段(40,S29)は、領域選択手段(40,S15)によって、最新ゲームデータの直前に書き込まれたゲームデータを記憶するバックアップ領域だけが書込対象バックアップ領域として最後に選択可能になったとき、最新ゲームデータの書込み処理を強制終了するので、上書きが禁止される旧ゲームデータを確実に残すことができる。このとき、最新ゲームデータは破棄される。
【0017】
請求項4は、請求項1ないし3のいずれかに従属し、禁止手段によって上書きが禁止されたとき、所定の警告メッセージを表示するメッセージ表示手段をさらに備える、ゲーム機である。
【0018】
請求項4の発明では、禁止手段(40,S29)によって上書きが禁止されたとき、メッセージ表示手段(14,40,S31)が所定の警告メッセージを表示して、ユーザに不揮発性メモリの交換を促すことができる。
【0019】
請求項5は、ゲーム機に電気的に接続されるかつ電気的に書き換え可能な記憶領域に2つまたは3つ以上のバックアップ領域を有する不揮発性メモリの当該バックアップ領域にゲームデータを書き込むためのバックアップ制御プログラムである。このバックアップ制御プログラムは、ゲーム機のコンピュータに、最新ゲームデータを書き込むとき、2つまたは3つ以上のバックアップ領域のうち、書き込まれた時間がより古いゲームデータを記憶するバックアップ領域を当該最新ゲームデータの書込対象バックアップ領域として優先的に選択する領域選択ステップ、領域選択ステップによって選択された書込対象バックアップ領域への最新ゲームデータの書込みを実行する書込ステップ、書込ステップによって最新ゲームデータの書込みをできたかどうかを検出する検出ステップ、検出ステップによって最新ゲームデータの書込みができなかったことが検出されたとき、必要に応じて領域選択ステップによる書込対象バックアップ領域の選択を繰り返す繰返ステップ、および領域選択ステップによって、最新ゲームデータの直前に書き込まれたゲームデータを記憶するバックアップ領域だけが書込対象バックアップ領域として最後に選択可能な状態になったとき、当該書込対象バックアップ領域への書込みを禁止する禁止ステップを実行させる。
【0020】
請求項9は、ゲーム機に電気的に接続されるかつ電気的に書き換え可能な記憶領域に少なくとも2つのバックアップ領域を有する不揮発性メモリの当該バックアップ領域にゲームデータを書き込むゲームデータのバックアップ制御方法である。このバックアップ制御方法は、(a)書き込まれた時間がより古いゲームデータを記憶するバックアップ領域であり、かつ最新ゲームデータを書込み可能なバックアップ領域を書込対象バックアップ領域として選択し、(b)書込対象バックアップ領域に書き込むことができず、かつ最新ゲームデータの直前に書き込まれたゲームデータが記憶されたバックアップ領域だけしか当該書込対象バックアップ領域として選択することができないとき、(c)最新ゲームデータの直前に書き込まれたゲームデータを残するために、最新ゲームデータを破棄する。
【0021】
請求項5および請求項9の発明においても、請求項1の発明と同様に、確実に1世代前のゲームデータを残すことができる。
【発明の効果】
【0022】
この発明によれば、最新ゲームデータの直前に書き込まれたゲームデータを記憶するバックアップ領域だけが書込対象バックアップ領域として選択可能な状態となったとき、直前のゲームデータへの上書きを禁止するので、直前のゲームデータを確実に残すことができる。つまり、ゲームデータの破損を防止することができる。
【0023】
この発明の上述の目的,その他の目的,特徴および利点は、図面を参照して行う以下の実施例の詳細な説明から一層明らかとなろう。
【発明を実施するための最良の形態】
【0024】
図1を参照して、この実施例のゲーム機10はケース12を含む。ケース12の表面には、その略中央にカラーの液晶表示器(以下、「LCD」という。)14が設けられる。このLCD14には、ゲーム空間およびそのゲーム空間内に存在するゲームキャラクタが表示されるとともに、必要に応じてメッセージが表示される。また、ケース12の表面には、操作ボタン16,18,20,22,24,26,28が設けられる。操作ボタン16,18および20はLCD14の左方に配置され、操作ボタン22および24はLCD14の右方に配置される。さらに、ケース12の上側(LCDの上方)の端面には、操作ボタン26および28が配置される。
【0025】
操作ボタン16は、ディジタルジョイスティックとして機能する十字ボタンであり、4つの押圧部の1つを操作することによって、LCD14上に表示されたゲームキャラクタの移動方向を指示したり、カーソルを移動させたりすることができる。操作ボタン18は、プッシュボタンで構成されたスタートボタンであり、ゲーム開始を指示するため等に利用される。操作ボタン20は、プッシュボタンで構成されたセレクトボタンであり、ゲームモードの選択等に利用される。
【0026】
操作ボタン22は、プッシュボタンで構成されたAボタンであり、LCD14上に表示されたゲームキャラクタに打つ、投げる、つかむ、乗る、ジャンプするなどの任意のアクションをさせることができる。操作ボタン24は、プッシュボタンで構成されたBボタンであり、セレクトボタン20で選択したゲームモードの変更やAボタン22で決定したアクションの取り消し等のために利用される。操作ボタン26は、プッシュボタンで構成された左押しボタン(Lボタン)であり、操作ボタン28は、プッシュボタンで構成された右押しボタン(Rボタン)である。操作ボタン26および操作ボタン28は、Aボタン22およびBボタンと同様の操作をすることができ、また、Aボタン22およびBボタン24の補助的な操作をすることができる。
【0027】
また、ケース12の裏面上端部には、挿入口30が形成される。この挿入口30には、ゲームカートリッジ32が挿入される。図示は省略するが、挿入口30の奥部とゲームカートリッジ32の挿入方向先端部とには、それぞれコネクタが設けられており、ゲームカートリッジ32が挿入口30に挿入されたとき、2つのコネクタが互いに接続される。このため、ゲームカットリッジ32がゲーム機10のCPU40(図2参照)でアクセス可能となる。
【0028】
さらに、ケース12の表面でありAボタン22およびBボタン24の下方には、ゲーム中にBGMやゲームキャラクタの音声或いは擬声音などを出力するためのスピーカ34が設けられる。
【0029】
なお、図示は省略するが、ケース12の天面側にはさらに、外部拡張コネクタが設けられ、ケース12の裏面側には、電池収容ボックスが設けられ、そして、ケース12の底面側には電源スイッチ、音量ボリュームおよびイヤフォンジャックなどが設けられる。
【0030】
ゲーム機10の電気的な構成は図2のように示される。この図2を参照して、ゲーム機10には、上述したようにCPU40が設けられ、このCPU40は、コンピュータまたはプロセサなどとも呼ばれ、ゲーム機10の全体制御を司る。CPU40またはコンピュータは、内部バス(以下、単に「バス」という。)42を介してワークメモリ44、外部メモリインターフェイス(I/F)46、コントローラI/F48、VRAM50および液晶ドライバ52に接続される。
【0031】
ワークメモリ44は、CPU40の作業領域或いはバッファ領域として使用される。外部メモリI/F46には、上述したように、挿入口30に挿入されたゲームカートリッジ32がコネクタ(図示せず)を介して接続される。
【0032】
コントローラI/F48には、図1に示した十字ボタン16、スタートボタン18、セレクトボタン20、Aボタン24、Bボタン26、Lボタン30およびRボタン32を含むコントローラ54が接続され、したがって、これらのボタン操作に応じた操作信号がコントローラI/F48を介してCPU40に入力される。
【0033】
VRAM50には、CPU40の指示の下、ゲーム画像データやキャラクタ画像データが描画される。また、液晶ドライバ52は、CPU40の指示に従って、VRAM50に描画されたゲーム画像データやキャラクタ画像データを読み出し、LCD14にゲーム画面やキャラクタを表示する。
【0034】
また、ゲームカートリッジ32には、ROM56および不揮発性メモリの一例のフラッシュメモリ58が設けられ、図示は省略するが、ROM56とフラッシュメモリ58とは互いにバスで接続されるとともに、コネクタに接続される。したがって、上述したように、ゲームカートリッジ32がゲーム機10に装着されると、CPU40はROM56およびフラッシュメモリ58に電気的に接続される。
【0035】
なお、この実施例では、フラッシュメモリ58を用いるようにしてあるが、他の不揮発性メモリとしてたとえば強誘電体メモリ(FeRAM)やEEPROMなどを用いることもできる。
【0036】
ROM56には、図3に示すように、ゲームプログラム560、画像データ(ゲーム画像データ、キャラクタ画像データ、メッセージ表示画像データなど)562およびバックアップ制御プログラム564が予め格納(記憶)される。このバックアップ制御プログラム564は、領域選択プログラム564a、故障検出プログラム564b、上書禁止プログラム564c、メッセージ表示プログラム564dおよび履歴データ更新プログラム564eで構成される。ただし、これらのプログラム564a〜564eは、それぞれ別個独立に実行されるのではなく、一連の処理として実行される(図10参照)。
【0037】
なお、図示は省略するが、ROM56には、ゲームに必要な音楽データなどのゲームプログラムに必要な各種データやプログラムも記憶される。
【0038】
また、フラッシュメモリ58には、ゲームデータ(バックアップデータ)が記憶される。たとえば、ユーザがゲーム機10を用いてゲームをすると、ゲームの進行状況に応じてゲームデータがゲーム機10のワークメモリ44に保存(更新)される。そして、ユーザの指示或いは所定のタイミング(イベント)に従って、ゲームデータがゲームカートリッジ32のフラッシュメモリ58に書き込まれる(セーブされる)。その後、ゲームを続行する場合には、そのままゲームが進行され、上述したようなゲームデータの保存およびバックアップが実行される。また、一旦ゲームを終了した場合には、次回ゲームをするときに、バックアップしておいたゲームデータを読み出して、前回の続きからゲームを開始することができる。
【0039】
ここで、ゲームデータをバックアップするためのフラッシュメモリ58は、SRAMのようなメモリと比較した場合に、バックアップ電源を有しないという利点がある反面、書き換え寿命が短く、書換え速度が遅いという欠点があり、特にデータの書込み時に、物理的故障や電気的故障のような書込み不能な不具合が発生すると、ゲームデータの一部を書き込むことができず、結果的にゲームデータの破損を招いてしまう。特に、ゲームデータは、上述したように、ゲームの進行に従って頻繁に書き換えられるため、何ら手当てをしない場合には、ゲームデータの破損が顕在化する。
【0040】
なお、物理的故障としては、メモリセル(記憶素子)故障,ハンダ不良,配線不良などが該当する。電気的故障としては、不注意による電源の切断や瞬間停電などが該当する。瞬間停電した場合には、復旧処理に戻らないなどの不具合が生じる。
【0041】
そこで、この実施例では、フラッシュメモリ58に2つのバックアップ領域を設けて、2つのバックアップ領域に順次ゲームデータを保存する。これにより、一方のバックアップ領域が故障したときでも、他方のバックアップ領域には必ずゲームデータが残るようにして、全てのゲームデータの完全消滅を防いでいる。さらに、直前に書き込まれたゲームデータ(旧ゲームデータ)への上書きしかできなくなったときに、当該直前の旧ゲームデータへの上書きを禁止するようにしてある。これにより、旧ゲームデータに最新ゲームデータを上書しているときにおける故障により、両方のゲームデータが消滅してしまうことを防いでいる。
【0042】
なお、フラッシュメモリ58は、一般的にセクタ(ブロック)単位でデータを書き換える必要があるため(アドレス単位で書換え可能な製品もある)、バックアップ領域には1または2以上のセクタが含まれる。つまり、ゲームデータの容量によって、バックアップ領域に含まれるセクタ数が決定される。
【0043】
フラッシュメモリ58は、図4(A)に示すように、第1バックアップ領域58aおよび第2バックアップ領域58bを有している。また、上述したように、ゲームデータを第1バックアップ領域58aおよび第2バックアップ領域58bに順次書き込むようにするため、本実施例ではゲームデータには履歴データを含める(付加する)ようにしてある。つまり、図4(A)は、第1バックアップ領域58aに履歴データ(1)を有するゲームデータが書き込まれ、第2バックアップ領域58bに履歴データ(2)を有するゲームデータが書き込まれた状態を示している。
【0044】
なお、履歴データの代わりに、たとえばセーブされたゲームデータのパターンをワークメモリ44に記憶させておくことにより、いずれが古いゲームデータであるかを判断させることもできる。
【0045】
ここで、ゲーム機10のワークメモリ44に保存されたゲームデータ(最新ゲームデータ)をフラッシュメモリ58に書き込む場合には、当該最新ゲームデータに履歴データ(3)が割り当てられ、所定のルール(領域選択の条件)に従って、当該最新ゲームデータを書き込む領域すなわち第1バックアップ領域58aまたは第2バックアップ領域58bが選択される。
【0046】
履歴データは、ゲーム機10のCPU40によって、1→2→3→4→1の順でゲームデータに割り当てられ、ゲームデータに含まれる。たとえば、図示は省略するが、履歴データは、2ビットのカウンタのカウント値によって決定され、ゲームデータを保存するときに、カウンタはインクリメントされる。つまり、カウント値は、“00”(「1」)→“01”(「2」)→“10”(「3」)→“11”(「4」)のように変化され、最大値“11”ではカウンタはリセットされる(“11”→“00”)。
【0047】
なお、この実施例では、最大値“11”(「4」)は、バックアップ領域の個数の倍数に決定される。したがって、カウンタとしては、少なくともバックアップ領域の個数の倍数をカウントできるカウンタを用いればよい。
【0048】
また、領域選択の条件は、2>1,3>2,4>3,1>4の4つの不等式で表される。この1〜4の数字は、履歴データが示す数値であり、左辺の数字の履歴データを含むゲームデータよりも右辺の数字の履歴データを含むゲームデータの方が古い(フラッシュメモリ58に書き込まれた時間が古い)データであることを意味する。このような領域選択の条件は、最新ゲームデータの履歴データに対応して使用される不等式(条件)が決定(定義)されており、具体的には表1のように示される。
【0049】
【表1】
【0050】
したがって、図4(A)に示す状態においては、履歴データ(3)を含む最新ゲームデータの書込対象は、領域選択の条件(2>1)に従って、書き込まれた時間がより古いゲームデータが記憶されている第1バックアップ領域58aに選択される。以下、同様にして、書込対象のバックアップ領域が選択される。そして、最新ゲームデータが第1バックアップ領域58aに書き込まれると、図4(B)に示すような状態となる。
【0051】
この図4(B)の状態において、次のゲームデータ(最新ゲームデータ)を書き込む場合には、ワークメモリ44に記憶される最新ゲームデータに履歴データ(4)が割り当てられ、当該最新ゲームデータの書込対象が領域選択の条件(3>2)に従って、第2バックアップ領域58bに選択される。そして、履歴データ(4)を含む最新ゲームデータが第2バックアップ領域58bに書き込まれると、図5(A)に示すような状態となる。
【0052】
この図5(A)の状態において、次のゲームデータ(最新ゲームデータ)を書き込む場合には、ワークメモリ44に記憶される最新ゲームデータに履歴データ(1)が割り当てられ、当該最新ゲームデータの書込対象が領域選択の条件(4>3)に従って、第1バックアップ領域58aに選択される。そして、履歴データ(1)を含む最新ゲームデータが第1バックアップ領域58aに書き込まれると、図5(B)に示すような状態となる。
【0053】
この図5(B)の状態において、次のゲームデータ(最新ゲームデータ)を書き込む場合には、ワークメモリ44に記憶される最新ゲームデータに履歴データ(2)が割り当てられ、当該最新ゲームデータの書込対象が領域選択の条件(1>4)に従って、第2バックアップ領域58bに選択される。そして、履歴データ(2)を含む最新ゲームデータが第2バックアップ領域58bに書き込まれる。
【0054】
このように領域選択の条件に従ってゲームデータの書込み(上書き)が実行されるが、上述したように、フラッシュメモリ58の物理的故障や電気的故障により、領域選択の条件に従って選択した領域に最新ゲームデータを書込みできない場合がある。かかる場合には、直前(1世代前)のゲームデータに上書きすることも考えられるが、上書き時に物理的故障や電気的故障が発生してしまうと、すべてのゲームデータを失ってしまうこととなるため、この実施例では、当該最新ゲームデータの上書きを禁止するようにしてある。つまり、ゲームデータの書込み処理が強制的に終了される。
【0055】
具体的には、図6に示すように、第1バックアップ領域58aに履歴データ(1)を含むゲームデータが書き込まれ、第2バックアップ領域58bに履歴データ(4)を含むゲームデータが書き込まれている場合には、領域選択の条件(4>1)に従って、履歴データ(2)を含む最新ゲームデータの書込対象は第2バックアップ領域58bに選択される。そして、最新ゲームデータの書込み処理が実行される。ゲームデータの書込み処理では、チェックサムにより、正常にゲームデータが書き込まれたかどうかが判断され、正常に書込みが行われていない場合には、書込み処理が複数回(たとえば、3回)繰り返される。複数回書込み処理を行った結果、ゲームデータの書込みに失敗すれば、書込み不能であると判断する。そして、他の領域(図6では、第1バックアップ領域58a)への最新ゲームデータの書込みを禁止すべく、ゲームデータの書込み処理を強制終了する。
【0056】
また、このように、フラッシュメモリ58へのゲームデータの書込みができなくなった場合には、LCD14に警告メッセージを表示して、フラッシュメモリ58の交換(ゲームカートリッジ32の修理)を促すようにしてある。たとえば、ユーザがゲームデータの保存(セーブ画面の表示)を指示すると、これに応じて、図7(A)に示すようなセーブを実行するか否かを選択する画面(セーブ画面)がLCD14に表示される。具体的には、CPU40が、ユーザの指示に従ってゲームカートリッジ32のROM56に記憶された画像データ562からセーブ画面の画像データを読み出し、VRAM50上に展開する。そして、液晶ドライバ52がCPU40の指示の下、VRAM50上に展開されたセーブ画面の画像データを読み出し、LCD14に出力する。
【0057】
以下、画面を表示する場合には、このような処理が実行されるため、その都度詳細な説明をするのは省略することにする。
【0058】
なお、セーブ画面は、ゲーム画面の一部に表示されるため、厳密には、VRAM50に展開されたゲーム画面の画像データの一部にセーブ画面の画像データが上書きされる。後述するセーブ終了画面およびエラー画面についても同様である。
【0059】
このセーブ画面で、“いいえ”が選択されると、ゲーム画面に戻ってゲームが続行される。一方、“はい”が選択されると、最新ゲームデータの書込み処理が実行される。最新ゲームデータの書込みに成功すると、図7(B)に示すように、“セーブが終了しました”のようなセーブの終了(正常終了)のメッセージを表示する画面(セーブ終了画面)が表示される。一方、最新ゲームデータの書込みに失敗し、他のバックアップ領域への書込みが禁止されると、図7(C)に示すように、“バックアップメモリが故障していますので、修理に出してください。最新データはセーブされません。”のような警告メッセージを表示する画面(エラー画面)が表示される。
【0060】
以上のように、1世代前のゲームデータを確実に残すことができ、警告メッセージが表示されたときには、たとえばそのカートリッジを製造メーカに修理に出すことにより、1世代前のゲームデータを残したまま、新規なフラッシュメモリに交換することが可能である。これにより、プレイヤは、1世代前のゲームデータではあるが、続きからゲームを開始することができる。
【0061】
なお、一方のバックアップ領域が書込み不能となり、他方のバックアップ領域が書込み禁止となった後に、さらにプレイヤがゲームを進めた場合には、最新ゲームデータを記憶させるときに初めて書込みできない旨が表示されるので、それまでのプレイヤの労力が無駄になる恐れがある。そこで、図8に示すように、フラッシュメモリ58内に書込み禁止フラグ領域58cをさらに設け、書込み禁止となったバックアップ領域の禁止フラグをセット(オン)しておけば、つまり、当該バックアップ領域への上書きを禁止しておけば、ゲーム開始時やセーブ画面の表示を指示された時に、この書込み禁止フラグ領域58cを参照して、直ぐに警告メッセージを表示することができ、上述したような無駄を無くすこともできる。
【0062】
また、書込み禁止フラグ領域58cに物理的故障や電気的故障が発生する可能性もあるため、第1バックアップ領域58aおよび第2バックアップ領域58bの特定のセル(たとえば、最終セル)に所定のデータ(この実施例では、“FF”)を書き込んでおき、バックアップ領域への書込みが不能となったときに、当該バックアップ領域の特定のセルに書き込まれた所定データを他のデータ(“FF”以外のデータ)に書き換えるようにしてもよい。このようにすれば、各バックアップ領域の特定のセルに書き込まれたデータを調べることにより、書込み不能となったバックアップ領域を簡単に知ることができ、一方のバックアップ領域が書込み不能となっている場合には、他方のバックアップ領域に書き込まれた旧ゲームデータへの上書きが禁止されていると判断することができる。
【0063】
なお、特定のセルに書き込む所定のデータ(“FF”)は、当該セルへのゲームデータの書込みを禁止するデータであり、通常はデータの書込み(書き換え)が実行されないため、寿命が長い。
【0064】
上述のような動作を、図2に示したCPU40が図9〜図12に示すフロー図に従って処理する。図9に示すように、ゲームが開始されると、ステップS1でゲームの進行状況に応じて発生するゲームデータをワークメモリ44に保存する。つまり、ゲームデータを更新する。続くステップS3では、セーブ画面表示が指示されたかどうかを判断する。ステップS3で“NO”であれば、つまりセーブ画面表示が指示されなければ、そのままステップS1に戻る。
【0065】
一方、ステップS3で“YES”であれば、つまりセーブ画面表示が指示されれば、ステップS5で図7(A)に示したようなセーブ画面を表示する。
【0066】
続くステップS7では、セーブが選択されたかどうかを判断する。つまり、セーブ画面において、“はい”が選択されたかどうかを判断する。ステップS7で“NO”であれば、つまり“いいえ”が選択されれば、そのままステップS1に戻る。一方、ステップS7で“YES”であれば、つまり“はい“が選択されれば、ステップS9でバックアップ処理を実行してからステップS1に戻る。
【0067】
なお、図9においては、ユーザがセーブを指示した場合に、バックアップ処理を実行する場合についてのみ示してあるが、ゲームの進行中に自動でバックアップ処理を実行するようにしてもよい。たとえば、所定時間をカウントするタイマを設けておき、タイマが所定時間をカウントしたときにバックアップ処理を実行したり、ゲームの進行状況やゲーム中のユーザの所定の操作(セーブの指示以外の操作)に応じてバックアップ処理を実行したりすることができる。これらは、ゲームの開発者やプログラマによって、任意に決定(設定)される。
【0068】
図10に示すように、バックアップ処理が開始されると、ステップS11でワークメモリ44に記憶されるゲームデータ(最新ゲームデータ)に履歴データを割り当てる。つまり、カウンタのカウント値に対応する数値データが最新ゲームデータに割り当てられる(含まれる)。次いで、ステップ13では、バックアップ領域58aおよびバックアップ領域58bに記憶されるゲームデータに含まれる履歴データを読み出し、ステップS15で書込対象のバックアップ領域の選択処理を実行する。
【0069】
続くステップS17では、選択した書込対象のバックアップ領域への最新ゲームデータと履歴データとの書込みを実行する。つまり、履歴データを含む最新ゲームデータの書込み処理を実行する。そして、ステップS19では、チェックサムにより正常に書き込めたかどうかを判断する。つまり、CPU40は、書き込んだゲームデータをフラッシュメモリ58から読み出し、ワークメモリ44に記憶されるゲームデータと比較して、一致するかどうかを判断する。一致する場合には、つまりステップS19で“YES”であれば、正常に書き込めたと判断して、ステップS21で履歴データの更新処理を実行し、ステップS23で図7(B)に示したようなセーブ終了画面を表示してバックアップ処理をリターンする。
【0070】
一方、ゲームデータが一致しない場合には、つまりステップS19で“NO”であれば、正常に書き込めていないと判断して、ステップS25でゲームデータの書込みを所定回数(たとえば、3回)実行する。このとき、ゲームデータの書込みを実行する毎に、上述したようなチェックサムを実行する。
【0071】
続くステップS27では、ゲームデータの書込みに成功したかどうかを判断する。ステップS27で“YES”であれば、つまりゲームデータの書込みに成功すれば、ステップS21に進む。一方、ステップS27で“NO”であれば、つまり複数回書込み処理を実行してもゲームデータの書込みに失敗すれば、ステップS29で1世代前のゲームデータへの上書きを禁止すべく、書込み処理を終了(強制終了)し、ステップS31で、図7(C)に示したようなエラー画面を表示してから、バックアップ処理をリターンする。このように、ゲームデータ(最新ゲームデータ)の書込み処理を強制的に終了した場合には、当該最新ゲームデータは破棄される。
【0072】
なお、図8に示したように、フラッシュメモリ58に書込み禁止フラグ領域58cを設ける場合には、ステップS29でゲームデータの書込み処理を終了したときに、書込み禁止フラグの書込みを実行してから、ステップS31でエラー画面を表示するようにすればよい。このようにすれば、次回のゲーム開始時やセーブ画面の表示が指示された時に、書込み禁止フラグ領域を参照して、最新ゲームデータの書込みが禁止されているかどうかを容易に知ることができ、直ぐにエラー画面を表示することができる。
【0073】
また、書込み禁止フラグ領域58cを設けない場合であっても、ステップS29でゲームデータの書込み処理を終了したときに、書込み不能となったバックアップ領域の最終セルのデータを変更するようにしてもよい。この場合には、次回のゲーム開始時やセーブ画面の表示が指示された時に、各バックアップ領域の最終セルのデータを参照することにより、最新ゲームデータの書込みが禁止されているかどうかを容易に知ることができる。
【0074】
図11に示すように、バックアップ領域の選択処理が開始されると、ステップS31で、読み出した各履歴データを、上述したような領域選択の条件に従って比較する。このとき使用される領域選択の条件は、表1を用いて説明したように、最新ゲームデータに割り当てられる履歴データに応じて決定される。そして、ステップS33で、最も古い(より古い)履歴データを含むゲームデータが書き込まれるバックアップ領域を、書込対象のバックアップ領域として選択して、選択処理をリターンする。
【0075】
ただし、初期状態などでフラッシュメモリ58にゲームデータが記憶されていない場合には、履歴データを参照することができないため、各領域に予め優先順位をつけておき、各バックアップ領域にゲームデータが書き込まれるまでは、その優先順位に従ってゲームデータを書き込むようにすればよい。つまり、この実施例では、第1バックアップ領域58a,第2バックアップ領域58bの順にゲームデータを書き込むようにしたり、その逆の順番でゲームデータを書き込むようにしたりすることができる。
【0076】
また、図12に示すように、履歴データの更新処理が開始されると、ステップS41で,履歴データが「4」すなわちカウンタのカウント値が“11”であるかどうかを判断する。ステップS41で“NO”であれば、つまりカウント値が“11”でなければ、ステップS43でワークメモリ44内の履歴データを+1して、すなわちカウンタをインクリメントして、履歴データの更新処理をリターンする。
【0077】
一方、ステップS41で“YES”であれば、つまりカウント値が“11”であれば、ステップS45でワークメモリ44内の履歴データを「1」に書き換えて、すなわちカウンタをリセットして、履歴データの更新処理をリターンする。
【0078】
この実施例によれば、一方のバックアップ領域へのゲームデータの書込みが不能となったとき、他方へのゲームデータの書込みを禁止するので、1世代前のゲームデータを確実に残すことができる。つまり、ゲームデータの破損を防止することができる。
【0079】
また、2つのバックアップ領域に順次ゲームデータを書き込むことにより、書き換え回数を平準化するので、フラッシュメモリの書き換え寿命を最大限に生かすことができる。
【0080】
他の実施例のゲーム機10は、ゲームカートリッジ32に設けられるフラッシュメモリ58のバックアップ領域を3つ以上設けるようにした以外は、上述の実施例と同じであるため、重複した説明は省略する。
【0081】
図13に示すように、この他の実施例では、フラッシュメモリ58には、N個のバックアップ領域58n(1≦n(自然数)≦N)が設けられる。他の実施例においても、上述の実施例と同様に、各バックアップ領域58nに順次ゲームデータが記憶される。たとえば、すべてのバックアップ領域58nにゲームデータが記憶されるまでは、n=1から順番にバックアップ領域を選択してゲームデータが記憶されるが、すべてのバックアップ領域58nにゲームデータが記憶された後では、所定の領域選択の条件に従ってゲームデータが上書きされる。
【0082】
なお、この実施例では、最初にすべてのバックアップ領域58nにゲームデータが記憶されるまでは、n=1から順番にバックアップ領域を選択するようにしてあるが、重複するバックアップ領域への書込みをしなければ、いずれの方法でバックアップ領域を選択するようにしてもよい。
【0083】
他の実施例における領域選択の条件は、表2のように示され、上述の実施例と同様に、最新ゲームデータの履歴データに対応して使用される領域選択の条件が予め決定される。たとえば、最新ゲームデータの履歴データが「1」であれば、使用される領域選択の条件は2N>2N−1>…>N+2>N+1である。
【0084】
【表2】
【0085】
つまり、上述の実施例と同様に、バックアップ領域の個数(N)の倍数(2N)以上の数をカウントすることができるカウンタを設けておき、そのカウンタのカウント値をインクリメントして履歴データの数値を順次更新し、また、バックアップ領域の個数の倍数をカウントしたときは、カウンタをリセットするようにすれば、表2に示したような簡易な不等式を用いて領域選択の条件を設定することができる。
【0086】
また、上述の実施例と同様に、不等式の左辺の数で示される履歴データを含むゲームデータよりも右辺の数で示される履歴データを含むゲームデータの方が古いデータである。したがって、領域選択の条件に従って最新ゲームデータを書き込む場合には、右端に記述される(最右辺の)数の履歴データを含むゲームデータが記憶されるバックアップ領域が書込対象のバックアップ領域に選択される。
【0087】
ただし、書込み不能となったバックアップ領域が存在する場合には、当該書込み不能となったバックアップ領域を除くバックアップ領域に記憶されるゲームデータの履歴データを取得し、それらを領域選択の条件に当てはめて、書込対象のバックアップ領域が選択される。したがって、たとえば、領域選択の条件において最右辺の数の履歴データを含むゲームデータが記憶されたバックアップ領域が書込み不能となった場合には、その次に古いゲームデータ(右端から2番目の数の履歴データを含むゲームデータ)が記憶されたバックアップ領域が書込対象に選択される。つまり、読み出した履歴データを領域選択の条件に従って比較した結果、最右辺となる数の履歴データを含むゲームデータが記憶されたバックアップ領域が書込対象として選択されるのである。言い換えると、ゲームデータがフラッシュメモリ58に書き込まれた時間がより古いゲームデータを記憶するバックアップ領域が優先的に選択されるのである。
【0088】
次に、CPU40の具体的な処理について説明するが、バックアップ処理の一部が異なる以外は上述の実施例で示した処理と同じであるため、重複した説明は省略することにする。
【0089】
具体的には、CPU40は、図14および図15に示すフロー図に従ってバックアップ処理を実行する。なお、図14および図15では、図10に示したバックアップ処理と同じ処理については同じ参照番号(ステップ番号)を付してある。
【0090】
図14に示すように、他の実施例のバックアップ処理においては、ステップS27で“NO”と判断された場合には、つまりゲームデータの書込みに失敗した場合には、ステップS101で、他に書き込めるバックアップ領域があるかどうかを判断する。具体的には、書込み可能なバックアップ領域が2つ以上存在するかどうかを判断する。このステップS101で“NO”であれば、つまり書込み可能なバックアップ領域が1つしか存在しなければ、当該バックアップ領域への書込みを禁止すべく、ステップS29でゲームデータの書込み処理を終了する。
【0091】
一方、ステップS101で“YES”であれば、つまり書込み可能なバックアップ領域が2つ以上存在すれば、ステップS103で、他の書き込める(書込対象の)バックアップ領域を選択してからステップ17に戻る。つまり、ステップS103においては、ステップS15のバックアップ領域の選択処理で選択されたバックアップ領域に記録されるゲームデータの次に古いゲームデータが記憶されるバックアップ領域が選択される。このように、上書きが禁止されるまでは、書込対象のバックアップ領域の選択処理が繰り返し実行される。
【0092】
なお、他の実施例では、ステップS101において、他に書き込めるバックアップ領域があるかどうかを判断するようにしてあるため、図8を用いて説明したような書込み禁止フラグ領域を設けるようにして、その判断を容易にすることもできる。
【0093】
ただし、書込み禁止フラグがオンになるまでは、つまり正常なバックアップ領域が1つになるまでは、書込み不能となったバックアップ領域へのゲームデータの書込み処理を実行することとなるため、図16に示すように、書込み不能となったバックアップ領域についてのフラグ(書込み不能フラグ)を書き込む領域(書込み不能フラグ領域)58pを設け、不要な書込み処理を回避すれば、迅速にバックアップ処理を終了することができる。この場合には、書込み不能フラグ領域58pを固定すると、当該領域に物理的故障や電気的故障が発生した場合には、書込み不能な領域を簡単に調べることができなくなるため、この書込み不能フラグ領域58pもバックアップ領域58nと同様に考えて、書き換えの必要が生じたときに、他のバックアップ領域58nに移動させる(書き換える)必要がある。たとえば、最新ゲームデータを書き込んだバックアップ領域58に記録されたゲームデータの次に古いゲームデータが記録されたバックアップ領域に書込み不能フラグ領域58pを書き換えるようにすればよい。したがって、この場合には、書込み可能なバックアップ領域が2つになったときに書込み処理を終了する必要がある。
【0094】
また、書込み不能フラグ領域58pを設けない場合であっても、上述の実施例で説明したように、各バックアップ領域の最終セルに書込み不能か否かを示すデータを書き込むようにしても、書込み不能なバックアップ領域58nを容易に知ることができる。
【0095】
他の実施例によれば、最も古いゲームデータへの上書きを実行し、1のバックアップ領域以外のバックアップ領域のすべてについてゲームデータの書込みが不能となったとき、当該1のバックアップ領域へのゲームデータの書込みを禁止するので、1世代前のゲームデータを確実に残すことができる。つまり、ゲームデータの破損を防止することができる。
【0096】
また、複数のバックアップ領域に順次ゲームデータを書き込むことにより、書き換え回数を平準化することができるので、フラッシュメモリの書き換え寿命を最大限に生かすことができる。
【0097】
なお、これらの実施例では、本発明におけるゲーム機として携帯型のゲーム機を例にあげて説明したが、ゲームプログラムを実行しかつゲームデータをフラッシュメモリ等の不揮発性メモリにセーブするゲーム機として機能する電子機器であれば、パーソナルコンピュータ,家庭用ゲーム機,アーエードゲーム機,携帯情報端末,携帯電話などいかなる形態のものにも適用できることは言うまでもない。
【0098】
また、バックアップ制御プログラムを記憶したROMおよび不揮発性メモリは、ゲーム機に着脱可能に設ける必要もなく、ゲーム機内に設けるようにしてもよい。
【図面の簡単な説明】
【0099】
【図1】この発明のゲーム機の外観の一例を示す図解図である。
【図2】図1実施例に示すゲーム機の電気的な構成を示すブロック図である。
【図3】図2に示すゲームカートリッジ内に設けられるROMのメモリマップを示す図解図である。
【図4】図2に示すフラッシュメモリのバックアップ領域を2つ設けた場合におけるバックアップ領域の選択を説明するための図解図である。
【図5】図2に示すフラッシュメモリのバックアップ領域を2つ設けた場合におけるバックアップ領域の選択を説明するための図解図である。
【図6】図2にフラッシュメモリのバックアップ領域を2つ設けた場合に、一方のバックアップ領域が書込み不能となった場合に他方のバックアップ領域へのデータの書込みを禁止する様子を説明するための図解図である。
【図7】図1および図2に示すLCDに表示されるセーブ画面、セーブ終了画面およびエラー画面の一例を示す図解図である。
【図8】図2にフラッシュメモリのバックアップ領域を2つ設け、さらに書込み禁止フラグ領域を設けた場合に、一方のバックアップ領域が書込み不能となった場合に他方のバックアップ領域へのデータの書込みを禁止する様子を説明するための図解図である。
【図9】図2に示すCPUの全体処理の一例を示すフロー図である。
【図10】図2に示すCPUのバックアップ処理を示すフロー図である。
【図11】図2に示すCPUのバックアップ領域の選択処理を示すフロー図である。
【図12】図2に示すCPUの履歴データの更新処理を示すフロー図である。
【図13】この発明の他のゲーム機に装着されるゲームカートリッジに設けられるフラッシュメモリのメモリマップの一例を示す図解図である。
【図14】他の実施例におけるCPUのバックアップ処理の一部を示すフロー図である。
【図15】他の実施例におけるCPUのバックアップ処理の他の一部を示すフロー図である。
【図16】他の実施例のゲーム機に装着されるゲームカートリッジに設けられるフラッシュメモリのメモリマップの他の一例を示す図解図である。
【符号の説明】
【0100】
10 …ゲーム機
14 …LCD
16〜28 …操作ボタン
32 …ゲームカートリッジ
40 …CPU
44 …ワークメモリ
50 …VRAM
56 …ROM
58 …フラッシュメモリ
【技術分野】
【0001】
この発明はゲーム機、ゲームデータのバックアップ制御プログラムおよびバックアップ制御方法に関し、特にたとえば電気的に書き換え可能な記憶領域に2つまたは3つ以上のバックアップ領域を有する不揮発性メモリを備え、当該バックアップ領域にゲームデータを書き込む、ゲーム機、ゲームデータのバックアップ制御プログラムおよびバックアップ制御方法に関する。
【背景技術】
【0002】
従来のこの種のゲーム機の一例が特許文献1に開示される。この特許文献1のホットスタートシステムでは、操作者の操作によって、ゲームカートリッジのスタティックRAMに設けたゲーム1〜ゲーム3までの記憶領域の中からバックアップ箇所が選択される。選択されたバックアップ箇所にゲームデータがバックアップされていなければ、テレビゲーム機に設けられるスクラッチRAMのバックアップ対象データ領域を初期化して、最初からゲームを開始する。一方、選択されたバックアップ箇所にゲームデータがバックアップされていれば、テレビゲーム機のスクラッチRAMに当該ゲームデータを読み込み、続きからゲームを開始する。ゲームの進行に従ってスクラッチRAMのゲームデータが更新され、たとえば、主人公を動作させる毎に、スクラッチRAMのゲームデータのうちバックアップ対象データがゲームカートリッジのスタティックRAMの予め定めた(選択した)記憶領域に自動的に記憶され、ゲームの状態が随時自動的にバックアップされる。
【0003】
また、従来技術の他の一例が特許文献2に開示される。この特許文献2の不揮発性メモリ記憶媒体用ファイルシステムでは、使用頻度リストの未使用状態情報のものの中らから書込み回数情報値が最小のものをサーチして得た論理ブロック番号を書込対象とすることにより、利用可能メモリブロックを平均的に書き込むようにして、つまり書込み頻度を平準化して、不揮発性メモリの長寿命化を図っている。
【0004】
【特許文献1】特開平5−12139号公報(第4頁〜第5頁,第6図〜第7図)
【特許文献2】特開平10−31611号公報(第5頁〜第7頁,第2図〜第4図)
【発明の開示】
【発明が解決しようとする課題】
【0005】
しかし、前者の場合には、バックアップメモリとしてスタティックRAMを使用しており、ゲームデータのバックアップのために電池を利用する必要がある。このため、特に電池の消耗が激しいゲーム中に電池が切れる可能性が高く、このような場合には、スタティックRAM内の全てのゲームデータが消滅しまうという問題があった。近年、このような問題を回避するため、バックアップメモリとしてデータの保持に電池を必要としない不揮発性メモリ(例えばフラッシュメモリ、強誘電体メモリなど)が使用され始めている。このように、不揮発性メモリを利用すれば、電池切れの心配はないが、特にフラッシュメモリは、スタティックRAMに比べて、書込み速度が遅く記憶素子の寿命が短いというデメリットを有している。このため、ユーザが選択した同一のバックアップ箇所が集中して書き換えられると、そのバックアップ個所の記憶素子の寿命が、他の個所に比べて縮まるので、当該バックアップ領域に記憶されるゲームデータが失われやすいという問題が新たに生じている。
【0006】
一方、後者の場合には、不揮発性メモリの各メモリブロックの書き換え回数を平準化して特定のメモリブロックだけの寿命が他のメモリブロックの寿命に比べて極端に短くなることがないようにしている。
【0007】
しかしながら、上述した両者を考慮しても、最新ゲームデータを或るバックアップ個所に書き込んでいる途中に或る記憶素子(又は記憶領域の一部)が突然不良(寿命等)になってしまうと、最新ゲームデータを書き込めなくなり、さらに、最新ゲームデータの書込み前の旧ゲームデータの一部に最新ゲームデータの一部が書き込まれてしまっているので、その旧ゲームデータが壊れて消滅してしまうという問題は従前と変わらず存在する。さらに、最新ゲームデータの書込み途中でゲーム機側の電源を切られてしまうと、最新ゲームデータとともに旧ゲームデータのいずれも壊れてしまい最悪全てのゲームデータが消滅する問題も生じる。なお、プレイヤがこれまでに長時間をかけてゲームを進めた結果であるゲームデータの破損による消滅は、プレイヤによって非常に重要な問題である。
【0008】
それゆえに、この発明の主たる目的は、少なくとも1世代前のゲームデータの消滅を確実に防止することができる、ゲーム機、ゲームデータのバックアップ制御プログラムおよびバックアップ制御方法を提供することである。
【課題を解決するための手段】
【0009】
この発明は、電気的に書き換え可能な記憶領域に2つまたは3つ以上のバックアップ領域を有する不揮発性メモリを備え、当該バックアップ領域にゲームデータを書き込むゲーム機である。このゲーム機は、最新ゲームデータを書き込むとき、2つまたは3つ以上のバックアップ領域のうち、書き込まれた時間がより古いゲームデータを記憶するバックアップ領域を当該最新ゲームデータの書込対象バックアップ領域として優先的に選択する領域選択手段、領域選択手段によって選択された書込対象バックアップ領域への最新ゲームデータの書込みを実行する書込手段、書込手段によって最新ゲームデータの書込みをできたかどうかを検出する検出手段、検出手段によって最新ゲームデータの書込みができなかったことが検出されたとき、必要に応じて領域選択手段による書込対象バックアップ領域の選択を繰り返す繰返手段、および領域選択手段によって、最新ゲームデータの直前に書き込まれたゲームデータを記憶するバックアップ領域だけが書込対象バックアップ領域として最後に選択可能な状態になったとき、当該書込対象バックアップ領域への書込みを禁止する禁止手段を備える。
【0010】
ゲーム機 (10:実施例で相当する参照符号。以下同じ。)は、電気的に書き換え可能な記憶領域に少なくとも2つのバックアップ領域を有する不揮発性メモリ(58)を備え、当該バックアップ領域にゲームデータを書き込む。領域選択手段(40,S15) は、最新ゲームデータを書き込むとき、少なくとも2つのバックアップ領域のうち、書きこまれた時間がより古いゲームデータを記憶するバックアップ領域を当該最新ゲームデータの書込対象バックアップ領域として優先的に選択する。書込手段(40,S17,S25)は、領域選択手段(40,S15)によって選択された書込対象バックアップ領域への最新ゲームデータの書込みを実行する。検出手段(40,S27)は、書込手段(40,S17,S25)によって最新ゲームデータの書込みをできたかどうかを検出する。繰返手段(40,S101,S103)は、検出手段(40,S27)によって、最新ゲームデータの書込みができなかったことが検出されたとき、必要に応じて領域選択手段(40,S15)による書込対象バックアップ領域の選択を繰り返す。具体的には、バックアップ領域が2つの場合には、最新ゲームデータの書込みができなかったことが検出されても、選択手段(40,S15)による書込対象バックアップ領域の選択を繰り返さない。一方、バックアップ領域が3つ以上の場合には、最新ゲームデータの書込みができなかったことが検出されると、選択手段(40,S15)による書込対象バックアップ領域の選択を繰り返して、最新ゲームデータの書込み処理を繰り返し実行する。そして、禁止手段(40,S29)は、領域選択手段(40,S15)によって、最新ゲームデータがバックアップ領域に最新ゲームデータの直前に書き込まれたゲームデータを記憶するバックアップ領域だけが書込対象バックアップ領域として最後に選択可能な状態となったとき、書込対象バックアップ領域への書込みを禁止する。
【0011】
なお、バックアップ領域にゲームデータが未だ記憶されていない場合には、当該バックアップ領域が優先的に書込対象バックアップ領域として選択される。
【0012】
この発明によれば、確実に1世代前のゲームデータを残すことができる。
【0013】
請求項2は、請求項1に従属し、書込手段は、ゲームデータの新旧を識別するための履歴データを最新ゲームデータに含めて書込み、領域選択手段は、最新ゲームデータを書き込む前に、履歴データに基づいて、書き込まれた時間がより古いゲームデータを記憶するバックアップ領域を書込対象バックアップ領域として選択する、ゲーム機である。
【0014】
請求項2の発明によれば、書込手段(40,S17,S25)は、ゲームデータの新旧を識別するための履歴データを最新ゲームデータに含めて書き込むので、領域選択手段(40,S15)は最新ゲームデータを書き込む前に、旧ゲームデータに含まれる履歴データに基づいて、書き込まれた時間がより古いゲームデータを記憶するバックアップ領域を書込対象バックアップ領域として選択することができる。したがって、たとえば、最も古い履歴データを有するゲームデータを決定して、当該ゲームデータが記憶されるバックアップ領域を書込対象に選択することができるのである。
【0015】
請求項3は、請求項1または請求項2に従属し、禁止手段は、領域選択手段によって、最新ゲームデータの直前に書き込まれたゲームデータを記憶するバックアップ領域だけが書込対象バックアップ領域として最後に選択可能な状態になったとき、最新ゲームデータの書込み処理を強制的に終了する強制終了手段を含む、ゲーム機である。
【0016】
請求項3の発明の発明によれば、強制終了手段(40,S29)は、領域選択手段(40,S15)によって、最新ゲームデータの直前に書き込まれたゲームデータを記憶するバックアップ領域だけが書込対象バックアップ領域として最後に選択可能になったとき、最新ゲームデータの書込み処理を強制終了するので、上書きが禁止される旧ゲームデータを確実に残すことができる。このとき、最新ゲームデータは破棄される。
【0017】
請求項4は、請求項1ないし3のいずれかに従属し、禁止手段によって上書きが禁止されたとき、所定の警告メッセージを表示するメッセージ表示手段をさらに備える、ゲーム機である。
【0018】
請求項4の発明では、禁止手段(40,S29)によって上書きが禁止されたとき、メッセージ表示手段(14,40,S31)が所定の警告メッセージを表示して、ユーザに不揮発性メモリの交換を促すことができる。
【0019】
請求項5は、ゲーム機に電気的に接続されるかつ電気的に書き換え可能な記憶領域に2つまたは3つ以上のバックアップ領域を有する不揮発性メモリの当該バックアップ領域にゲームデータを書き込むためのバックアップ制御プログラムである。このバックアップ制御プログラムは、ゲーム機のコンピュータに、最新ゲームデータを書き込むとき、2つまたは3つ以上のバックアップ領域のうち、書き込まれた時間がより古いゲームデータを記憶するバックアップ領域を当該最新ゲームデータの書込対象バックアップ領域として優先的に選択する領域選択ステップ、領域選択ステップによって選択された書込対象バックアップ領域への最新ゲームデータの書込みを実行する書込ステップ、書込ステップによって最新ゲームデータの書込みをできたかどうかを検出する検出ステップ、検出ステップによって最新ゲームデータの書込みができなかったことが検出されたとき、必要に応じて領域選択ステップによる書込対象バックアップ領域の選択を繰り返す繰返ステップ、および領域選択ステップによって、最新ゲームデータの直前に書き込まれたゲームデータを記憶するバックアップ領域だけが書込対象バックアップ領域として最後に選択可能な状態になったとき、当該書込対象バックアップ領域への書込みを禁止する禁止ステップを実行させる。
【0020】
請求項9は、ゲーム機に電気的に接続されるかつ電気的に書き換え可能な記憶領域に少なくとも2つのバックアップ領域を有する不揮発性メモリの当該バックアップ領域にゲームデータを書き込むゲームデータのバックアップ制御方法である。このバックアップ制御方法は、(a)書き込まれた時間がより古いゲームデータを記憶するバックアップ領域であり、かつ最新ゲームデータを書込み可能なバックアップ領域を書込対象バックアップ領域として選択し、(b)書込対象バックアップ領域に書き込むことができず、かつ最新ゲームデータの直前に書き込まれたゲームデータが記憶されたバックアップ領域だけしか当該書込対象バックアップ領域として選択することができないとき、(c)最新ゲームデータの直前に書き込まれたゲームデータを残するために、最新ゲームデータを破棄する。
【0021】
請求項5および請求項9の発明においても、請求項1の発明と同様に、確実に1世代前のゲームデータを残すことができる。
【発明の効果】
【0022】
この発明によれば、最新ゲームデータの直前に書き込まれたゲームデータを記憶するバックアップ領域だけが書込対象バックアップ領域として選択可能な状態となったとき、直前のゲームデータへの上書きを禁止するので、直前のゲームデータを確実に残すことができる。つまり、ゲームデータの破損を防止することができる。
【0023】
この発明の上述の目的,その他の目的,特徴および利点は、図面を参照して行う以下の実施例の詳細な説明から一層明らかとなろう。
【発明を実施するための最良の形態】
【0024】
図1を参照して、この実施例のゲーム機10はケース12を含む。ケース12の表面には、その略中央にカラーの液晶表示器(以下、「LCD」という。)14が設けられる。このLCD14には、ゲーム空間およびそのゲーム空間内に存在するゲームキャラクタが表示されるとともに、必要に応じてメッセージが表示される。また、ケース12の表面には、操作ボタン16,18,20,22,24,26,28が設けられる。操作ボタン16,18および20はLCD14の左方に配置され、操作ボタン22および24はLCD14の右方に配置される。さらに、ケース12の上側(LCDの上方)の端面には、操作ボタン26および28が配置される。
【0025】
操作ボタン16は、ディジタルジョイスティックとして機能する十字ボタンであり、4つの押圧部の1つを操作することによって、LCD14上に表示されたゲームキャラクタの移動方向を指示したり、カーソルを移動させたりすることができる。操作ボタン18は、プッシュボタンで構成されたスタートボタンであり、ゲーム開始を指示するため等に利用される。操作ボタン20は、プッシュボタンで構成されたセレクトボタンであり、ゲームモードの選択等に利用される。
【0026】
操作ボタン22は、プッシュボタンで構成されたAボタンであり、LCD14上に表示されたゲームキャラクタに打つ、投げる、つかむ、乗る、ジャンプするなどの任意のアクションをさせることができる。操作ボタン24は、プッシュボタンで構成されたBボタンであり、セレクトボタン20で選択したゲームモードの変更やAボタン22で決定したアクションの取り消し等のために利用される。操作ボタン26は、プッシュボタンで構成された左押しボタン(Lボタン)であり、操作ボタン28は、プッシュボタンで構成された右押しボタン(Rボタン)である。操作ボタン26および操作ボタン28は、Aボタン22およびBボタンと同様の操作をすることができ、また、Aボタン22およびBボタン24の補助的な操作をすることができる。
【0027】
また、ケース12の裏面上端部には、挿入口30が形成される。この挿入口30には、ゲームカートリッジ32が挿入される。図示は省略するが、挿入口30の奥部とゲームカートリッジ32の挿入方向先端部とには、それぞれコネクタが設けられており、ゲームカートリッジ32が挿入口30に挿入されたとき、2つのコネクタが互いに接続される。このため、ゲームカットリッジ32がゲーム機10のCPU40(図2参照)でアクセス可能となる。
【0028】
さらに、ケース12の表面でありAボタン22およびBボタン24の下方には、ゲーム中にBGMやゲームキャラクタの音声或いは擬声音などを出力するためのスピーカ34が設けられる。
【0029】
なお、図示は省略するが、ケース12の天面側にはさらに、外部拡張コネクタが設けられ、ケース12の裏面側には、電池収容ボックスが設けられ、そして、ケース12の底面側には電源スイッチ、音量ボリュームおよびイヤフォンジャックなどが設けられる。
【0030】
ゲーム機10の電気的な構成は図2のように示される。この図2を参照して、ゲーム機10には、上述したようにCPU40が設けられ、このCPU40は、コンピュータまたはプロセサなどとも呼ばれ、ゲーム機10の全体制御を司る。CPU40またはコンピュータは、内部バス(以下、単に「バス」という。)42を介してワークメモリ44、外部メモリインターフェイス(I/F)46、コントローラI/F48、VRAM50および液晶ドライバ52に接続される。
【0031】
ワークメモリ44は、CPU40の作業領域或いはバッファ領域として使用される。外部メモリI/F46には、上述したように、挿入口30に挿入されたゲームカートリッジ32がコネクタ(図示せず)を介して接続される。
【0032】
コントローラI/F48には、図1に示した十字ボタン16、スタートボタン18、セレクトボタン20、Aボタン24、Bボタン26、Lボタン30およびRボタン32を含むコントローラ54が接続され、したがって、これらのボタン操作に応じた操作信号がコントローラI/F48を介してCPU40に入力される。
【0033】
VRAM50には、CPU40の指示の下、ゲーム画像データやキャラクタ画像データが描画される。また、液晶ドライバ52は、CPU40の指示に従って、VRAM50に描画されたゲーム画像データやキャラクタ画像データを読み出し、LCD14にゲーム画面やキャラクタを表示する。
【0034】
また、ゲームカートリッジ32には、ROM56および不揮発性メモリの一例のフラッシュメモリ58が設けられ、図示は省略するが、ROM56とフラッシュメモリ58とは互いにバスで接続されるとともに、コネクタに接続される。したがって、上述したように、ゲームカートリッジ32がゲーム機10に装着されると、CPU40はROM56およびフラッシュメモリ58に電気的に接続される。
【0035】
なお、この実施例では、フラッシュメモリ58を用いるようにしてあるが、他の不揮発性メモリとしてたとえば強誘電体メモリ(FeRAM)やEEPROMなどを用いることもできる。
【0036】
ROM56には、図3に示すように、ゲームプログラム560、画像データ(ゲーム画像データ、キャラクタ画像データ、メッセージ表示画像データなど)562およびバックアップ制御プログラム564が予め格納(記憶)される。このバックアップ制御プログラム564は、領域選択プログラム564a、故障検出プログラム564b、上書禁止プログラム564c、メッセージ表示プログラム564dおよび履歴データ更新プログラム564eで構成される。ただし、これらのプログラム564a〜564eは、それぞれ別個独立に実行されるのではなく、一連の処理として実行される(図10参照)。
【0037】
なお、図示は省略するが、ROM56には、ゲームに必要な音楽データなどのゲームプログラムに必要な各種データやプログラムも記憶される。
【0038】
また、フラッシュメモリ58には、ゲームデータ(バックアップデータ)が記憶される。たとえば、ユーザがゲーム機10を用いてゲームをすると、ゲームの進行状況に応じてゲームデータがゲーム機10のワークメモリ44に保存(更新)される。そして、ユーザの指示或いは所定のタイミング(イベント)に従って、ゲームデータがゲームカートリッジ32のフラッシュメモリ58に書き込まれる(セーブされる)。その後、ゲームを続行する場合には、そのままゲームが進行され、上述したようなゲームデータの保存およびバックアップが実行される。また、一旦ゲームを終了した場合には、次回ゲームをするときに、バックアップしておいたゲームデータを読み出して、前回の続きからゲームを開始することができる。
【0039】
ここで、ゲームデータをバックアップするためのフラッシュメモリ58は、SRAMのようなメモリと比較した場合に、バックアップ電源を有しないという利点がある反面、書き換え寿命が短く、書換え速度が遅いという欠点があり、特にデータの書込み時に、物理的故障や電気的故障のような書込み不能な不具合が発生すると、ゲームデータの一部を書き込むことができず、結果的にゲームデータの破損を招いてしまう。特に、ゲームデータは、上述したように、ゲームの進行に従って頻繁に書き換えられるため、何ら手当てをしない場合には、ゲームデータの破損が顕在化する。
【0040】
なお、物理的故障としては、メモリセル(記憶素子)故障,ハンダ不良,配線不良などが該当する。電気的故障としては、不注意による電源の切断や瞬間停電などが該当する。瞬間停電した場合には、復旧処理に戻らないなどの不具合が生じる。
【0041】
そこで、この実施例では、フラッシュメモリ58に2つのバックアップ領域を設けて、2つのバックアップ領域に順次ゲームデータを保存する。これにより、一方のバックアップ領域が故障したときでも、他方のバックアップ領域には必ずゲームデータが残るようにして、全てのゲームデータの完全消滅を防いでいる。さらに、直前に書き込まれたゲームデータ(旧ゲームデータ)への上書きしかできなくなったときに、当該直前の旧ゲームデータへの上書きを禁止するようにしてある。これにより、旧ゲームデータに最新ゲームデータを上書しているときにおける故障により、両方のゲームデータが消滅してしまうことを防いでいる。
【0042】
なお、フラッシュメモリ58は、一般的にセクタ(ブロック)単位でデータを書き換える必要があるため(アドレス単位で書換え可能な製品もある)、バックアップ領域には1または2以上のセクタが含まれる。つまり、ゲームデータの容量によって、バックアップ領域に含まれるセクタ数が決定される。
【0043】
フラッシュメモリ58は、図4(A)に示すように、第1バックアップ領域58aおよび第2バックアップ領域58bを有している。また、上述したように、ゲームデータを第1バックアップ領域58aおよび第2バックアップ領域58bに順次書き込むようにするため、本実施例ではゲームデータには履歴データを含める(付加する)ようにしてある。つまり、図4(A)は、第1バックアップ領域58aに履歴データ(1)を有するゲームデータが書き込まれ、第2バックアップ領域58bに履歴データ(2)を有するゲームデータが書き込まれた状態を示している。
【0044】
なお、履歴データの代わりに、たとえばセーブされたゲームデータのパターンをワークメモリ44に記憶させておくことにより、いずれが古いゲームデータであるかを判断させることもできる。
【0045】
ここで、ゲーム機10のワークメモリ44に保存されたゲームデータ(最新ゲームデータ)をフラッシュメモリ58に書き込む場合には、当該最新ゲームデータに履歴データ(3)が割り当てられ、所定のルール(領域選択の条件)に従って、当該最新ゲームデータを書き込む領域すなわち第1バックアップ領域58aまたは第2バックアップ領域58bが選択される。
【0046】
履歴データは、ゲーム機10のCPU40によって、1→2→3→4→1の順でゲームデータに割り当てられ、ゲームデータに含まれる。たとえば、図示は省略するが、履歴データは、2ビットのカウンタのカウント値によって決定され、ゲームデータを保存するときに、カウンタはインクリメントされる。つまり、カウント値は、“00”(「1」)→“01”(「2」)→“10”(「3」)→“11”(「4」)のように変化され、最大値“11”ではカウンタはリセットされる(“11”→“00”)。
【0047】
なお、この実施例では、最大値“11”(「4」)は、バックアップ領域の個数の倍数に決定される。したがって、カウンタとしては、少なくともバックアップ領域の個数の倍数をカウントできるカウンタを用いればよい。
【0048】
また、領域選択の条件は、2>1,3>2,4>3,1>4の4つの不等式で表される。この1〜4の数字は、履歴データが示す数値であり、左辺の数字の履歴データを含むゲームデータよりも右辺の数字の履歴データを含むゲームデータの方が古い(フラッシュメモリ58に書き込まれた時間が古い)データであることを意味する。このような領域選択の条件は、最新ゲームデータの履歴データに対応して使用される不等式(条件)が決定(定義)されており、具体的には表1のように示される。
【0049】
【表1】
【0050】
したがって、図4(A)に示す状態においては、履歴データ(3)を含む最新ゲームデータの書込対象は、領域選択の条件(2>1)に従って、書き込まれた時間がより古いゲームデータが記憶されている第1バックアップ領域58aに選択される。以下、同様にして、書込対象のバックアップ領域が選択される。そして、最新ゲームデータが第1バックアップ領域58aに書き込まれると、図4(B)に示すような状態となる。
【0051】
この図4(B)の状態において、次のゲームデータ(最新ゲームデータ)を書き込む場合には、ワークメモリ44に記憶される最新ゲームデータに履歴データ(4)が割り当てられ、当該最新ゲームデータの書込対象が領域選択の条件(3>2)に従って、第2バックアップ領域58bに選択される。そして、履歴データ(4)を含む最新ゲームデータが第2バックアップ領域58bに書き込まれると、図5(A)に示すような状態となる。
【0052】
この図5(A)の状態において、次のゲームデータ(最新ゲームデータ)を書き込む場合には、ワークメモリ44に記憶される最新ゲームデータに履歴データ(1)が割り当てられ、当該最新ゲームデータの書込対象が領域選択の条件(4>3)に従って、第1バックアップ領域58aに選択される。そして、履歴データ(1)を含む最新ゲームデータが第1バックアップ領域58aに書き込まれると、図5(B)に示すような状態となる。
【0053】
この図5(B)の状態において、次のゲームデータ(最新ゲームデータ)を書き込む場合には、ワークメモリ44に記憶される最新ゲームデータに履歴データ(2)が割り当てられ、当該最新ゲームデータの書込対象が領域選択の条件(1>4)に従って、第2バックアップ領域58bに選択される。そして、履歴データ(2)を含む最新ゲームデータが第2バックアップ領域58bに書き込まれる。
【0054】
このように領域選択の条件に従ってゲームデータの書込み(上書き)が実行されるが、上述したように、フラッシュメモリ58の物理的故障や電気的故障により、領域選択の条件に従って選択した領域に最新ゲームデータを書込みできない場合がある。かかる場合には、直前(1世代前)のゲームデータに上書きすることも考えられるが、上書き時に物理的故障や電気的故障が発生してしまうと、すべてのゲームデータを失ってしまうこととなるため、この実施例では、当該最新ゲームデータの上書きを禁止するようにしてある。つまり、ゲームデータの書込み処理が強制的に終了される。
【0055】
具体的には、図6に示すように、第1バックアップ領域58aに履歴データ(1)を含むゲームデータが書き込まれ、第2バックアップ領域58bに履歴データ(4)を含むゲームデータが書き込まれている場合には、領域選択の条件(4>1)に従って、履歴データ(2)を含む最新ゲームデータの書込対象は第2バックアップ領域58bに選択される。そして、最新ゲームデータの書込み処理が実行される。ゲームデータの書込み処理では、チェックサムにより、正常にゲームデータが書き込まれたかどうかが判断され、正常に書込みが行われていない場合には、書込み処理が複数回(たとえば、3回)繰り返される。複数回書込み処理を行った結果、ゲームデータの書込みに失敗すれば、書込み不能であると判断する。そして、他の領域(図6では、第1バックアップ領域58a)への最新ゲームデータの書込みを禁止すべく、ゲームデータの書込み処理を強制終了する。
【0056】
また、このように、フラッシュメモリ58へのゲームデータの書込みができなくなった場合には、LCD14に警告メッセージを表示して、フラッシュメモリ58の交換(ゲームカートリッジ32の修理)を促すようにしてある。たとえば、ユーザがゲームデータの保存(セーブ画面の表示)を指示すると、これに応じて、図7(A)に示すようなセーブを実行するか否かを選択する画面(セーブ画面)がLCD14に表示される。具体的には、CPU40が、ユーザの指示に従ってゲームカートリッジ32のROM56に記憶された画像データ562からセーブ画面の画像データを読み出し、VRAM50上に展開する。そして、液晶ドライバ52がCPU40の指示の下、VRAM50上に展開されたセーブ画面の画像データを読み出し、LCD14に出力する。
【0057】
以下、画面を表示する場合には、このような処理が実行されるため、その都度詳細な説明をするのは省略することにする。
【0058】
なお、セーブ画面は、ゲーム画面の一部に表示されるため、厳密には、VRAM50に展開されたゲーム画面の画像データの一部にセーブ画面の画像データが上書きされる。後述するセーブ終了画面およびエラー画面についても同様である。
【0059】
このセーブ画面で、“いいえ”が選択されると、ゲーム画面に戻ってゲームが続行される。一方、“はい”が選択されると、最新ゲームデータの書込み処理が実行される。最新ゲームデータの書込みに成功すると、図7(B)に示すように、“セーブが終了しました”のようなセーブの終了(正常終了)のメッセージを表示する画面(セーブ終了画面)が表示される。一方、最新ゲームデータの書込みに失敗し、他のバックアップ領域への書込みが禁止されると、図7(C)に示すように、“バックアップメモリが故障していますので、修理に出してください。最新データはセーブされません。”のような警告メッセージを表示する画面(エラー画面)が表示される。
【0060】
以上のように、1世代前のゲームデータを確実に残すことができ、警告メッセージが表示されたときには、たとえばそのカートリッジを製造メーカに修理に出すことにより、1世代前のゲームデータを残したまま、新規なフラッシュメモリに交換することが可能である。これにより、プレイヤは、1世代前のゲームデータではあるが、続きからゲームを開始することができる。
【0061】
なお、一方のバックアップ領域が書込み不能となり、他方のバックアップ領域が書込み禁止となった後に、さらにプレイヤがゲームを進めた場合には、最新ゲームデータを記憶させるときに初めて書込みできない旨が表示されるので、それまでのプレイヤの労力が無駄になる恐れがある。そこで、図8に示すように、フラッシュメモリ58内に書込み禁止フラグ領域58cをさらに設け、書込み禁止となったバックアップ領域の禁止フラグをセット(オン)しておけば、つまり、当該バックアップ領域への上書きを禁止しておけば、ゲーム開始時やセーブ画面の表示を指示された時に、この書込み禁止フラグ領域58cを参照して、直ぐに警告メッセージを表示することができ、上述したような無駄を無くすこともできる。
【0062】
また、書込み禁止フラグ領域58cに物理的故障や電気的故障が発生する可能性もあるため、第1バックアップ領域58aおよび第2バックアップ領域58bの特定のセル(たとえば、最終セル)に所定のデータ(この実施例では、“FF”)を書き込んでおき、バックアップ領域への書込みが不能となったときに、当該バックアップ領域の特定のセルに書き込まれた所定データを他のデータ(“FF”以外のデータ)に書き換えるようにしてもよい。このようにすれば、各バックアップ領域の特定のセルに書き込まれたデータを調べることにより、書込み不能となったバックアップ領域を簡単に知ることができ、一方のバックアップ領域が書込み不能となっている場合には、他方のバックアップ領域に書き込まれた旧ゲームデータへの上書きが禁止されていると判断することができる。
【0063】
なお、特定のセルに書き込む所定のデータ(“FF”)は、当該セルへのゲームデータの書込みを禁止するデータであり、通常はデータの書込み(書き換え)が実行されないため、寿命が長い。
【0064】
上述のような動作を、図2に示したCPU40が図9〜図12に示すフロー図に従って処理する。図9に示すように、ゲームが開始されると、ステップS1でゲームの進行状況に応じて発生するゲームデータをワークメモリ44に保存する。つまり、ゲームデータを更新する。続くステップS3では、セーブ画面表示が指示されたかどうかを判断する。ステップS3で“NO”であれば、つまりセーブ画面表示が指示されなければ、そのままステップS1に戻る。
【0065】
一方、ステップS3で“YES”であれば、つまりセーブ画面表示が指示されれば、ステップS5で図7(A)に示したようなセーブ画面を表示する。
【0066】
続くステップS7では、セーブが選択されたかどうかを判断する。つまり、セーブ画面において、“はい”が選択されたかどうかを判断する。ステップS7で“NO”であれば、つまり“いいえ”が選択されれば、そのままステップS1に戻る。一方、ステップS7で“YES”であれば、つまり“はい“が選択されれば、ステップS9でバックアップ処理を実行してからステップS1に戻る。
【0067】
なお、図9においては、ユーザがセーブを指示した場合に、バックアップ処理を実行する場合についてのみ示してあるが、ゲームの進行中に自動でバックアップ処理を実行するようにしてもよい。たとえば、所定時間をカウントするタイマを設けておき、タイマが所定時間をカウントしたときにバックアップ処理を実行したり、ゲームの進行状況やゲーム中のユーザの所定の操作(セーブの指示以外の操作)に応じてバックアップ処理を実行したりすることができる。これらは、ゲームの開発者やプログラマによって、任意に決定(設定)される。
【0068】
図10に示すように、バックアップ処理が開始されると、ステップS11でワークメモリ44に記憶されるゲームデータ(最新ゲームデータ)に履歴データを割り当てる。つまり、カウンタのカウント値に対応する数値データが最新ゲームデータに割り当てられる(含まれる)。次いで、ステップ13では、バックアップ領域58aおよびバックアップ領域58bに記憶されるゲームデータに含まれる履歴データを読み出し、ステップS15で書込対象のバックアップ領域の選択処理を実行する。
【0069】
続くステップS17では、選択した書込対象のバックアップ領域への最新ゲームデータと履歴データとの書込みを実行する。つまり、履歴データを含む最新ゲームデータの書込み処理を実行する。そして、ステップS19では、チェックサムにより正常に書き込めたかどうかを判断する。つまり、CPU40は、書き込んだゲームデータをフラッシュメモリ58から読み出し、ワークメモリ44に記憶されるゲームデータと比較して、一致するかどうかを判断する。一致する場合には、つまりステップS19で“YES”であれば、正常に書き込めたと判断して、ステップS21で履歴データの更新処理を実行し、ステップS23で図7(B)に示したようなセーブ終了画面を表示してバックアップ処理をリターンする。
【0070】
一方、ゲームデータが一致しない場合には、つまりステップS19で“NO”であれば、正常に書き込めていないと判断して、ステップS25でゲームデータの書込みを所定回数(たとえば、3回)実行する。このとき、ゲームデータの書込みを実行する毎に、上述したようなチェックサムを実行する。
【0071】
続くステップS27では、ゲームデータの書込みに成功したかどうかを判断する。ステップS27で“YES”であれば、つまりゲームデータの書込みに成功すれば、ステップS21に進む。一方、ステップS27で“NO”であれば、つまり複数回書込み処理を実行してもゲームデータの書込みに失敗すれば、ステップS29で1世代前のゲームデータへの上書きを禁止すべく、書込み処理を終了(強制終了)し、ステップS31で、図7(C)に示したようなエラー画面を表示してから、バックアップ処理をリターンする。このように、ゲームデータ(最新ゲームデータ)の書込み処理を強制的に終了した場合には、当該最新ゲームデータは破棄される。
【0072】
なお、図8に示したように、フラッシュメモリ58に書込み禁止フラグ領域58cを設ける場合には、ステップS29でゲームデータの書込み処理を終了したときに、書込み禁止フラグの書込みを実行してから、ステップS31でエラー画面を表示するようにすればよい。このようにすれば、次回のゲーム開始時やセーブ画面の表示が指示された時に、書込み禁止フラグ領域を参照して、最新ゲームデータの書込みが禁止されているかどうかを容易に知ることができ、直ぐにエラー画面を表示することができる。
【0073】
また、書込み禁止フラグ領域58cを設けない場合であっても、ステップS29でゲームデータの書込み処理を終了したときに、書込み不能となったバックアップ領域の最終セルのデータを変更するようにしてもよい。この場合には、次回のゲーム開始時やセーブ画面の表示が指示された時に、各バックアップ領域の最終セルのデータを参照することにより、最新ゲームデータの書込みが禁止されているかどうかを容易に知ることができる。
【0074】
図11に示すように、バックアップ領域の選択処理が開始されると、ステップS31で、読み出した各履歴データを、上述したような領域選択の条件に従って比較する。このとき使用される領域選択の条件は、表1を用いて説明したように、最新ゲームデータに割り当てられる履歴データに応じて決定される。そして、ステップS33で、最も古い(より古い)履歴データを含むゲームデータが書き込まれるバックアップ領域を、書込対象のバックアップ領域として選択して、選択処理をリターンする。
【0075】
ただし、初期状態などでフラッシュメモリ58にゲームデータが記憶されていない場合には、履歴データを参照することができないため、各領域に予め優先順位をつけておき、各バックアップ領域にゲームデータが書き込まれるまでは、その優先順位に従ってゲームデータを書き込むようにすればよい。つまり、この実施例では、第1バックアップ領域58a,第2バックアップ領域58bの順にゲームデータを書き込むようにしたり、その逆の順番でゲームデータを書き込むようにしたりすることができる。
【0076】
また、図12に示すように、履歴データの更新処理が開始されると、ステップS41で,履歴データが「4」すなわちカウンタのカウント値が“11”であるかどうかを判断する。ステップS41で“NO”であれば、つまりカウント値が“11”でなければ、ステップS43でワークメモリ44内の履歴データを+1して、すなわちカウンタをインクリメントして、履歴データの更新処理をリターンする。
【0077】
一方、ステップS41で“YES”であれば、つまりカウント値が“11”であれば、ステップS45でワークメモリ44内の履歴データを「1」に書き換えて、すなわちカウンタをリセットして、履歴データの更新処理をリターンする。
【0078】
この実施例によれば、一方のバックアップ領域へのゲームデータの書込みが不能となったとき、他方へのゲームデータの書込みを禁止するので、1世代前のゲームデータを確実に残すことができる。つまり、ゲームデータの破損を防止することができる。
【0079】
また、2つのバックアップ領域に順次ゲームデータを書き込むことにより、書き換え回数を平準化するので、フラッシュメモリの書き換え寿命を最大限に生かすことができる。
【0080】
他の実施例のゲーム機10は、ゲームカートリッジ32に設けられるフラッシュメモリ58のバックアップ領域を3つ以上設けるようにした以外は、上述の実施例と同じであるため、重複した説明は省略する。
【0081】
図13に示すように、この他の実施例では、フラッシュメモリ58には、N個のバックアップ領域58n(1≦n(自然数)≦N)が設けられる。他の実施例においても、上述の実施例と同様に、各バックアップ領域58nに順次ゲームデータが記憶される。たとえば、すべてのバックアップ領域58nにゲームデータが記憶されるまでは、n=1から順番にバックアップ領域を選択してゲームデータが記憶されるが、すべてのバックアップ領域58nにゲームデータが記憶された後では、所定の領域選択の条件に従ってゲームデータが上書きされる。
【0082】
なお、この実施例では、最初にすべてのバックアップ領域58nにゲームデータが記憶されるまでは、n=1から順番にバックアップ領域を選択するようにしてあるが、重複するバックアップ領域への書込みをしなければ、いずれの方法でバックアップ領域を選択するようにしてもよい。
【0083】
他の実施例における領域選択の条件は、表2のように示され、上述の実施例と同様に、最新ゲームデータの履歴データに対応して使用される領域選択の条件が予め決定される。たとえば、最新ゲームデータの履歴データが「1」であれば、使用される領域選択の条件は2N>2N−1>…>N+2>N+1である。
【0084】
【表2】
【0085】
つまり、上述の実施例と同様に、バックアップ領域の個数(N)の倍数(2N)以上の数をカウントすることができるカウンタを設けておき、そのカウンタのカウント値をインクリメントして履歴データの数値を順次更新し、また、バックアップ領域の個数の倍数をカウントしたときは、カウンタをリセットするようにすれば、表2に示したような簡易な不等式を用いて領域選択の条件を設定することができる。
【0086】
また、上述の実施例と同様に、不等式の左辺の数で示される履歴データを含むゲームデータよりも右辺の数で示される履歴データを含むゲームデータの方が古いデータである。したがって、領域選択の条件に従って最新ゲームデータを書き込む場合には、右端に記述される(最右辺の)数の履歴データを含むゲームデータが記憶されるバックアップ領域が書込対象のバックアップ領域に選択される。
【0087】
ただし、書込み不能となったバックアップ領域が存在する場合には、当該書込み不能となったバックアップ領域を除くバックアップ領域に記憶されるゲームデータの履歴データを取得し、それらを領域選択の条件に当てはめて、書込対象のバックアップ領域が選択される。したがって、たとえば、領域選択の条件において最右辺の数の履歴データを含むゲームデータが記憶されたバックアップ領域が書込み不能となった場合には、その次に古いゲームデータ(右端から2番目の数の履歴データを含むゲームデータ)が記憶されたバックアップ領域が書込対象に選択される。つまり、読み出した履歴データを領域選択の条件に従って比較した結果、最右辺となる数の履歴データを含むゲームデータが記憶されたバックアップ領域が書込対象として選択されるのである。言い換えると、ゲームデータがフラッシュメモリ58に書き込まれた時間がより古いゲームデータを記憶するバックアップ領域が優先的に選択されるのである。
【0088】
次に、CPU40の具体的な処理について説明するが、バックアップ処理の一部が異なる以外は上述の実施例で示した処理と同じであるため、重複した説明は省略することにする。
【0089】
具体的には、CPU40は、図14および図15に示すフロー図に従ってバックアップ処理を実行する。なお、図14および図15では、図10に示したバックアップ処理と同じ処理については同じ参照番号(ステップ番号)を付してある。
【0090】
図14に示すように、他の実施例のバックアップ処理においては、ステップS27で“NO”と判断された場合には、つまりゲームデータの書込みに失敗した場合には、ステップS101で、他に書き込めるバックアップ領域があるかどうかを判断する。具体的には、書込み可能なバックアップ領域が2つ以上存在するかどうかを判断する。このステップS101で“NO”であれば、つまり書込み可能なバックアップ領域が1つしか存在しなければ、当該バックアップ領域への書込みを禁止すべく、ステップS29でゲームデータの書込み処理を終了する。
【0091】
一方、ステップS101で“YES”であれば、つまり書込み可能なバックアップ領域が2つ以上存在すれば、ステップS103で、他の書き込める(書込対象の)バックアップ領域を選択してからステップ17に戻る。つまり、ステップS103においては、ステップS15のバックアップ領域の選択処理で選択されたバックアップ領域に記録されるゲームデータの次に古いゲームデータが記憶されるバックアップ領域が選択される。このように、上書きが禁止されるまでは、書込対象のバックアップ領域の選択処理が繰り返し実行される。
【0092】
なお、他の実施例では、ステップS101において、他に書き込めるバックアップ領域があるかどうかを判断するようにしてあるため、図8を用いて説明したような書込み禁止フラグ領域を設けるようにして、その判断を容易にすることもできる。
【0093】
ただし、書込み禁止フラグがオンになるまでは、つまり正常なバックアップ領域が1つになるまでは、書込み不能となったバックアップ領域へのゲームデータの書込み処理を実行することとなるため、図16に示すように、書込み不能となったバックアップ領域についてのフラグ(書込み不能フラグ)を書き込む領域(書込み不能フラグ領域)58pを設け、不要な書込み処理を回避すれば、迅速にバックアップ処理を終了することができる。この場合には、書込み不能フラグ領域58pを固定すると、当該領域に物理的故障や電気的故障が発生した場合には、書込み不能な領域を簡単に調べることができなくなるため、この書込み不能フラグ領域58pもバックアップ領域58nと同様に考えて、書き換えの必要が生じたときに、他のバックアップ領域58nに移動させる(書き換える)必要がある。たとえば、最新ゲームデータを書き込んだバックアップ領域58に記録されたゲームデータの次に古いゲームデータが記録されたバックアップ領域に書込み不能フラグ領域58pを書き換えるようにすればよい。したがって、この場合には、書込み可能なバックアップ領域が2つになったときに書込み処理を終了する必要がある。
【0094】
また、書込み不能フラグ領域58pを設けない場合であっても、上述の実施例で説明したように、各バックアップ領域の最終セルに書込み不能か否かを示すデータを書き込むようにしても、書込み不能なバックアップ領域58nを容易に知ることができる。
【0095】
他の実施例によれば、最も古いゲームデータへの上書きを実行し、1のバックアップ領域以外のバックアップ領域のすべてについてゲームデータの書込みが不能となったとき、当該1のバックアップ領域へのゲームデータの書込みを禁止するので、1世代前のゲームデータを確実に残すことができる。つまり、ゲームデータの破損を防止することができる。
【0096】
また、複数のバックアップ領域に順次ゲームデータを書き込むことにより、書き換え回数を平準化することができるので、フラッシュメモリの書き換え寿命を最大限に生かすことができる。
【0097】
なお、これらの実施例では、本発明におけるゲーム機として携帯型のゲーム機を例にあげて説明したが、ゲームプログラムを実行しかつゲームデータをフラッシュメモリ等の不揮発性メモリにセーブするゲーム機として機能する電子機器であれば、パーソナルコンピュータ,家庭用ゲーム機,アーエードゲーム機,携帯情報端末,携帯電話などいかなる形態のものにも適用できることは言うまでもない。
【0098】
また、バックアップ制御プログラムを記憶したROMおよび不揮発性メモリは、ゲーム機に着脱可能に設ける必要もなく、ゲーム機内に設けるようにしてもよい。
【図面の簡単な説明】
【0099】
【図1】この発明のゲーム機の外観の一例を示す図解図である。
【図2】図1実施例に示すゲーム機の電気的な構成を示すブロック図である。
【図3】図2に示すゲームカートリッジ内に設けられるROMのメモリマップを示す図解図である。
【図4】図2に示すフラッシュメモリのバックアップ領域を2つ設けた場合におけるバックアップ領域の選択を説明するための図解図である。
【図5】図2に示すフラッシュメモリのバックアップ領域を2つ設けた場合におけるバックアップ領域の選択を説明するための図解図である。
【図6】図2にフラッシュメモリのバックアップ領域を2つ設けた場合に、一方のバックアップ領域が書込み不能となった場合に他方のバックアップ領域へのデータの書込みを禁止する様子を説明するための図解図である。
【図7】図1および図2に示すLCDに表示されるセーブ画面、セーブ終了画面およびエラー画面の一例を示す図解図である。
【図8】図2にフラッシュメモリのバックアップ領域を2つ設け、さらに書込み禁止フラグ領域を設けた場合に、一方のバックアップ領域が書込み不能となった場合に他方のバックアップ領域へのデータの書込みを禁止する様子を説明するための図解図である。
【図9】図2に示すCPUの全体処理の一例を示すフロー図である。
【図10】図2に示すCPUのバックアップ処理を示すフロー図である。
【図11】図2に示すCPUのバックアップ領域の選択処理を示すフロー図である。
【図12】図2に示すCPUの履歴データの更新処理を示すフロー図である。
【図13】この発明の他のゲーム機に装着されるゲームカートリッジに設けられるフラッシュメモリのメモリマップの一例を示す図解図である。
【図14】他の実施例におけるCPUのバックアップ処理の一部を示すフロー図である。
【図15】他の実施例におけるCPUのバックアップ処理の他の一部を示すフロー図である。
【図16】他の実施例のゲーム機に装着されるゲームカートリッジに設けられるフラッシュメモリのメモリマップの他の一例を示す図解図である。
【符号の説明】
【0100】
10 …ゲーム機
14 …LCD
16〜28 …操作ボタン
32 …ゲームカートリッジ
40 …CPU
44 …ワークメモリ
50 …VRAM
56 …ROM
58 …フラッシュメモリ
【特許請求の範囲】
【請求項1】
電気的に書き換え可能な記憶領域に2つまたは3つ以上のバックアップ領域を有する不揮発性メモリを備え、当該バックアップ領域にゲームデータを書き込むゲーム機であって、
最新ゲームデータを書き込むとき、前記2つまたは3つ以上のバックアップ領域のうち、書き込まれた時間がより古いゲームデータを記憶するバックアップ領域を当該最新ゲームデータの書込対象バックアップ領域として優先的に選択する領域選択手段、
前記領域選択手段によって選択された前記書込対象バックアップ領域への前記最新ゲームデータの書込みを実行する書込手段、
前記書込手段によって前記最新ゲームデータの書込みをできたかどうかを検出する検出手段、
前記検出手段によって前記最新ゲームデータの書込みができなかったことが検出されたとき、必要に応じて前記領域選択手段による書込対象バックアップ領域の選択を繰り返す繰返手段、および
前記領域選択手段によって、前記最新ゲームデータの直前に書き込まれたゲームデータを記憶するバックアップ領域だけが前記書込対象バックアップ領域として最後に選択可能な状態になったとき、当該書込対象バックアップ領域への書込みを禁止する禁止手段を備える、ゲーム機。
【請求項2】
前記書込手段は、ゲームデータの新旧を識別するための履歴データを前記最新ゲームデータに含めて書込み、
前記領域選択手段は、前記最新ゲームデータを書き込む前に、前記履歴データに基づいて、書き込まれた時間がより古いゲームデータを記憶するバックアップ領域を前記書込対象バックアップ領域として選択する、請求項1記載のゲーム機。
【請求項3】
前記禁止手段は、前記領域選択手段によって、前記最新ゲームデータの直前に書き込まれたゲームデータを記憶するバックアップ領域だけが前記書込対象バックアップ領域として最後に選択可能な状態になったとき、前記最新ゲームデータの書込み処理を強制的に終了する強制終了手段を含む、請求項1または2に記載のゲーム機。
【請求項4】
前記禁止手段によって上書きが禁止されたとき、所定の警告メッセージを表示するメッセージ表示手段をさらに備える、請求項1ないし3のいずれかに記載のゲーム機。
【請求項5】
ゲーム機に電気的に接続されるかつ電気的に書き換え可能な記憶領域に2つまたは3つ以上のバックアップ領域を有する不揮発性メモリの当該バックアップ領域にゲームデータを書き込むためのバックアップ制御プログラムであって、
前記ゲーム機のコンピュータに、
最新ゲームデータを書き込むとき、前記2つまたは3つ以上のバックアップ領域のうち、書き込まれた時間がより古いゲームデータを記憶するバックアップ領域を当該最新ゲームデータの書込対象バックアップ領域として優先的に選択する領域選択ステップ、
前記領域選択ステップによって選択された前記書込対象バックアップ領域への前記最新ゲームデータの書込みを実行する書込ステップ、
前記書込ステップによって前記最新ゲームデータの書込みをできたかどうかを検出する検出ステップ、
前記検出ステップによって前記最新ゲームデータの書込みができなかったことが検出されたとき、必要に応じて前記領域選択ステップによる書込対象バックアップ領域の選択を繰り返す繰返ステップ、および
前記領域選択ステップによって、前記最新ゲームデータの直前に書き込まれたゲームデータを記憶するバックアップ領域だけが前記書込対象バックアップ領域として最後に選択可能な状態になったとき、当該書込対象バックアップ領域への書込みを禁止する禁止ステップを実行させるバックアップ制御プログラム。
【請求項6】
前記書込ステップは、ゲームデータの新旧を識別するための履歴データを前記最新ゲームデータに含めて書込み、
前記領域選択ステップは、前記最新ゲームデータを書き込む前に、前記履歴データに基づいて、書き込まれた時間がより古いゲームデータを記憶するバックアップ領域を前記書込対象バックアップ領域として選択する、請求項5記載のゲームデータのバックアップ制御プログラム。
【請求項7】
前記禁止ステップは、前記領域選択手段によって、前記最新ゲームデータの直前に書き込まれたゲームデータを記憶するバックアップ領域だけが前記書込対象バックアップ領域として最後に選択可能な状態になったとき、前記最新ゲームデータの書込み処理を強制的に終了する強制終了ステップを含む、請求項5または6に記載のゲームデータのバックアップ制御プログラム。
【請求項8】
前記禁止ステップによって上書きが禁止されたとき、所定の警告メッセージを表示するメッセージ表示ステップをさらに実行させる、請求項5ないし7のいずれかに記載のゲームデータのバックアップ制御プログラム。
【請求項9】
ゲーム機に電気的に接続されるかつ電気的に書き換え可能な記憶領域に少なくとも2つのバックアップ領域を有する不揮発性メモリの当該バックアップ領域にゲームデータを書き込むゲームデータのバックアップ制御方法であって、
(a)書き込まれた時間がより古いゲームデータを記憶するバックアップ領域であり、かつ最新ゲームデータを書込み可能なバックアップ領域を書込対象バックアップ領域として選択し、
(b)前記書込対象バックアップ領域に書き込むことができず、かつ前記最新ゲームデータの直前に書き込まれたゲームデータが記憶されたバックアップ領域だけしか当該書込対象バックアップ領域として選択することができないとき、
(c)前記最新ゲームデータの直前に書き込まれたゲームデータを残するために、前記最新ゲームデータを破棄する、バックアップ制御方法。
【請求項1】
電気的に書き換え可能な記憶領域に2つまたは3つ以上のバックアップ領域を有する不揮発性メモリを備え、当該バックアップ領域にゲームデータを書き込むゲーム機であって、
最新ゲームデータを書き込むとき、前記2つまたは3つ以上のバックアップ領域のうち、書き込まれた時間がより古いゲームデータを記憶するバックアップ領域を当該最新ゲームデータの書込対象バックアップ領域として優先的に選択する領域選択手段、
前記領域選択手段によって選択された前記書込対象バックアップ領域への前記最新ゲームデータの書込みを実行する書込手段、
前記書込手段によって前記最新ゲームデータの書込みをできたかどうかを検出する検出手段、
前記検出手段によって前記最新ゲームデータの書込みができなかったことが検出されたとき、必要に応じて前記領域選択手段による書込対象バックアップ領域の選択を繰り返す繰返手段、および
前記領域選択手段によって、前記最新ゲームデータの直前に書き込まれたゲームデータを記憶するバックアップ領域だけが前記書込対象バックアップ領域として最後に選択可能な状態になったとき、当該書込対象バックアップ領域への書込みを禁止する禁止手段を備える、ゲーム機。
【請求項2】
前記書込手段は、ゲームデータの新旧を識別するための履歴データを前記最新ゲームデータに含めて書込み、
前記領域選択手段は、前記最新ゲームデータを書き込む前に、前記履歴データに基づいて、書き込まれた時間がより古いゲームデータを記憶するバックアップ領域を前記書込対象バックアップ領域として選択する、請求項1記載のゲーム機。
【請求項3】
前記禁止手段は、前記領域選択手段によって、前記最新ゲームデータの直前に書き込まれたゲームデータを記憶するバックアップ領域だけが前記書込対象バックアップ領域として最後に選択可能な状態になったとき、前記最新ゲームデータの書込み処理を強制的に終了する強制終了手段を含む、請求項1または2に記載のゲーム機。
【請求項4】
前記禁止手段によって上書きが禁止されたとき、所定の警告メッセージを表示するメッセージ表示手段をさらに備える、請求項1ないし3のいずれかに記載のゲーム機。
【請求項5】
ゲーム機に電気的に接続されるかつ電気的に書き換え可能な記憶領域に2つまたは3つ以上のバックアップ領域を有する不揮発性メモリの当該バックアップ領域にゲームデータを書き込むためのバックアップ制御プログラムであって、
前記ゲーム機のコンピュータに、
最新ゲームデータを書き込むとき、前記2つまたは3つ以上のバックアップ領域のうち、書き込まれた時間がより古いゲームデータを記憶するバックアップ領域を当該最新ゲームデータの書込対象バックアップ領域として優先的に選択する領域選択ステップ、
前記領域選択ステップによって選択された前記書込対象バックアップ領域への前記最新ゲームデータの書込みを実行する書込ステップ、
前記書込ステップによって前記最新ゲームデータの書込みをできたかどうかを検出する検出ステップ、
前記検出ステップによって前記最新ゲームデータの書込みができなかったことが検出されたとき、必要に応じて前記領域選択ステップによる書込対象バックアップ領域の選択を繰り返す繰返ステップ、および
前記領域選択ステップによって、前記最新ゲームデータの直前に書き込まれたゲームデータを記憶するバックアップ領域だけが前記書込対象バックアップ領域として最後に選択可能な状態になったとき、当該書込対象バックアップ領域への書込みを禁止する禁止ステップを実行させるバックアップ制御プログラム。
【請求項6】
前記書込ステップは、ゲームデータの新旧を識別するための履歴データを前記最新ゲームデータに含めて書込み、
前記領域選択ステップは、前記最新ゲームデータを書き込む前に、前記履歴データに基づいて、書き込まれた時間がより古いゲームデータを記憶するバックアップ領域を前記書込対象バックアップ領域として選択する、請求項5記載のゲームデータのバックアップ制御プログラム。
【請求項7】
前記禁止ステップは、前記領域選択手段によって、前記最新ゲームデータの直前に書き込まれたゲームデータを記憶するバックアップ領域だけが前記書込対象バックアップ領域として最後に選択可能な状態になったとき、前記最新ゲームデータの書込み処理を強制的に終了する強制終了ステップを含む、請求項5または6に記載のゲームデータのバックアップ制御プログラム。
【請求項8】
前記禁止ステップによって上書きが禁止されたとき、所定の警告メッセージを表示するメッセージ表示ステップをさらに実行させる、請求項5ないし7のいずれかに記載のゲームデータのバックアップ制御プログラム。
【請求項9】
ゲーム機に電気的に接続されるかつ電気的に書き換え可能な記憶領域に少なくとも2つのバックアップ領域を有する不揮発性メモリの当該バックアップ領域にゲームデータを書き込むゲームデータのバックアップ制御方法であって、
(a)書き込まれた時間がより古いゲームデータを記憶するバックアップ領域であり、かつ最新ゲームデータを書込み可能なバックアップ領域を書込対象バックアップ領域として選択し、
(b)前記書込対象バックアップ領域に書き込むことができず、かつ前記最新ゲームデータの直前に書き込まれたゲームデータが記憶されたバックアップ領域だけしか当該書込対象バックアップ領域として選択することができないとき、
(c)前記最新ゲームデータの直前に書き込まれたゲームデータを残するために、前記最新ゲームデータを破棄する、バックアップ制御方法。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【公開番号】特開2007−275611(P2007−275611A)
【公開日】平成19年10月25日(2007.10.25)
【国際特許分類】
【出願番号】特願2007−141398(P2007−141398)
【出願日】平成19年5月29日(2007.5.29)
【分割の表示】特願2002−331625(P2002−331625)の分割
【原出願日】平成14年11月15日(2002.11.15)
【出願人】(000233778)任天堂株式会社 (1,115)
【Fターム(参考)】
【公開日】平成19年10月25日(2007.10.25)
【国際特許分類】
【出願日】平成19年5月29日(2007.5.29)
【分割の表示】特願2002−331625(P2002−331625)の分割
【原出願日】平成14年11月15日(2002.11.15)
【出願人】(000233778)任天堂株式会社 (1,115)
【Fターム(参考)】
[ Back to top ]