(57)【特許請求の範囲】
【請求項１】
複数のレジスタを含む処理ユニットとその処理ユニットによって起動時に実行される起動プログラムとを搭載する第１のゲーム機およびそのゲーム機と互換性を有する第２のゲーム機において実行可能であり、かつ両ゲーム機に装着可能な記憶媒体に記憶されるゲームプログラムであって、
前記第１のゲーム機の処理ユニットにおける起動プログラムの実行終了直後にその処理ユニットの所定レジスタに残る既知の第１データと、前記第２のゲーム機の処理ユニットにおける起動プログラムの実行終了直後にその処理ユニットの所定レジスタに残る既知の第２データとを含み、
前記記憶媒体が装着された第１ゲーム機又は第２ゲーム機の処理ユニットを、
前記いずれか一方の処理ユニットによって自己の実行が開始されたとき、前記起動プログラムの実行終了直後に残る前記処理ユニットの所定レジスタの値を識別データとして読出す識別データ読出手段、
前記識別データ読出手段によって読出した識別データと、前記第１データ又は前記第２データを比較することにより、前記記憶媒体が装着されているゲーム機が前記第１のゲーム機と前記第２のゲーム機のいずれであるかを識別する識別手段、および
前記識別手段によって前記第１のゲーム機と識別したときと前記第２のゲーム機と識別したときとによって、少なくとも一部が異なるゲーム内容となるようにゲームを進行させるゲーム進行手段、
としてそれぞれ機能させることを特徴とするゲームプログラム。
【請求項２】
前記ゲームに登場させるための第１のキャラクタ群を含む第１キャラクタ群データと、第２のキャラクタ群を含む第２キャラクタ群データとをさらに含み、
前記ゲーム進行手段は、前記第１のゲーム機と識別したとき、前記第１キャラクタ群データを選択することにより、前記第１のキャラクタ群をゲームに登場させ、前記第２のゲーム機と識別したとき、前記第２キャラクタ群データを選択することにより、前記第２のキャラクタ群をゲームに登場させる、請求項１に記載のゲームプログラム。
【請求項３】
前記ゲーム内容を決めるための第１のシナリオを含む第１シナリオデータと、第２のシナリオを含む第２シナリオデータとをさらに含み、
前記ゲーム進行手段は、前記識別手段によって第１のゲーム機と識別したとき、前記第１シナリオデータを選択することにより、前記第１のシナリオに基づいてゲームを進行させ、前記第２のゲーム機と識別したとき、前記第２シナリオデータを選択することにより、前記第２のシナリオに基づいてゲームを進行させる、請求項１に記載のゲームプログラム。
【請求項４】
前記第２のシナリオは、前記第１シナリオデータによって決まる第１のシナリオを拡張する拡張シナリオを含む、請求項３に記載のゲームプログラム。
【請求項５】
複数のレジスタを含む処理ユニットとその処理ユニットによって起動時に実行される起動プログラムとを搭載する第１のゲーム機およびそのゲーム機と互換性を有する第２のゲーム機において実行可能であり、かつ両ゲーム機に装着可能な記憶媒体に記憶されるゲームプログラムを用いるゲーム処理方法であって、
前記ゲームプログラムは、前記第１のゲーム機の処理ユニットにおける起動プログラムの実行終了直後にその処理ユニットの所定レジスタに残る既知の第１データと、前記第２のゲーム機の処理ユニットにおける起動プログラムの実行終了直後にその処理ユニットの所定レジスタに残る既知の第２データとを含み、
前記いずれか一方の処理ユニットによって前記ゲームプログラムの実行が開始されたとき、前記起動プログラムの実行終了直後に残る前記処理ユニットの所定レジスタの値を識別データとして読出す識別データ読出ステップ、
前記識別データ読出ステップによって読出した識別データと、前記第１データ又は前記第２データを比較することにより、前記記憶媒体が装着されているゲーム機が前記第１のゲーム機と前記第２のゲーム機のいずれであるかを識別する識別ステップ、および
前記識別ステップによって前記第１のゲーム機と識別したときと前記第２のゲーム機と識別したときとによって、少なくとも一部が異なるゲーム内容となるようにゲームを進行させるゲーム進行ステップを含む、ゲーム処理手法。
【請求項６】
複数のレジスタを含む処理ユニットとその処理ユニットによって起動時に実行される起動プログラムとを搭載する第１のゲーム機およびそのゲーム機と互換性を有する第２のゲーム機において実行可能であり、かつ両ゲーム機の記憶手段に記憶されるゲームプログラムであって、
前記第１のゲーム機の処理ユニットにおける起動プログラムの実行終了直後にその処理ユニットの所定レジスタに残る既知の第１データと、前記第２のゲーム機の処理ユニットにおける起動プログラムの実行終了直後にその処理ユニットの所定レジスタに残る既知の第２データとを含み、
前記第１ゲーム機又は第２ゲーム機の処理ユニットを、
前記いずれか一方の処理ユニットによって自己の実行が開始されたとき、前記起動プログラムの実行終了直後に残る前記処理ユニットの所定レジスタの値を識別データとして読出す識別データ読出手段、
前記識別データ読出手段によって読出した識別データと、前記第１データ又は前記第２データを比較することにより、前記第１のゲーム機と前記第２のゲーム機のいずれであるかを識別する識別手段、および
前記識別手段によって前記第１のゲーム機と識別したときと前記第２のゲーム機と識別したときとによって、少なくとも一部が異なるゲーム内容となるようにゲームを進行させるゲーム進行手段、
としてそれぞれ機能させることを特徴とするゲームプログラム。
【請求項７】
複数のレジスタを含む処理ユニットとその処理ユニットによって起動時に実行される起動プログラムとを搭載する第１のゲーム機およびそのゲーム機と互換性を有する第２のゲーム機において実行可能であり、かつ両ゲーム機の記憶手段に記憶されるゲームプログラムを用いるゲーム処理方法であって、
前記ゲームプログラムは、前記第１のゲーム機の処理ユニットにおける起動プログラムの実行終了直後にその処理ユニットの所定レジスタに残る既知の第１データと、前記第２のゲーム機の処理ユニットにおける起動プログラムの実行終了直後にその処理ユニットの所定レジスタに残る既知の第２データとを含み、
前記いずれか一方の処理ユニットによって前記ゲームプログラムの実行が開始されたとき、前記起動プログラムの実行終了直後に残る前記処理ユニットの所定レジスタの値を識別データとして読出す識別データ読出ステップ、
前記識別データ読出ステップによって読出した識別データと、前記第１データ又は前記第２データを比較することにより、前記第１のゲーム機と前記第２のゲーム機のいずれであるかを識別する識別ステップ、および
前記識別ステップによって前記第１のゲーム機と識別したときと前記第２のゲーム機と識別したときとによって、少なくとも一部が異なるゲーム内容となるようにゲームを進行させるゲーム進行ステップを含む、ゲーム処理方法。
【発明の詳細な説明】
【０００１】
【産業上の利用分野】
この発明はゲームプログラムに係り、特にたとえば既に発売されている第１ゲーム機と、第１ゲーム機に対して互換性を有する新たに発売される第２ゲーム機との双方に装着可能な記憶媒体に記憶されて、いずれの種類のゲーム機に装着されたかによってシナリオの少なくとも一部が異なる内容のゲームを提供するためのゲームプログラムに関する。
【０００２】
【従来技術】
従来より、ゲームプログラムを記憶した記憶媒体（例えば半導体メモリを搭載したカートリッジ，ハードディスク，ＣＤ−ＲＯＭ，ＤＶＤ−ＲＯＭ等）を利用してゲームを楽しむための携帯型又は据置型のゲーム機が知られている。このようなゲーム機では、技術革新やユーザのニーズによって、既発売の旧機種（又は下位機種；第１のゲーム機）から機能的により優れた新機種（又は上位機種；第２のゲーム機）への世代交代が適宜行われている。世代交代に際しては、新機種においても旧機種用のソフト資産を利用可能にすることにより、旧機種との互換性を確保すれば、ユーザにとって便利であり、メーカにとっても有利となる。
【０００３】
例えば、旧機種（下位機種）ではＣＤ−ＲＯＭを利用し、新機種（上位機種）ではＤＶＤ−ＲＯＭ及びＣＤ−ＲＯＭを利用する据置型のゲーム機が知られている。この場合、新機種は、旧機種との互換性を確保するために、新しいタイプの処理ユニット（ＣＰＵ）と旧機種用の処理ユニットの両方を搭載している。この新機種は、本体に搭載している起動プログラムによって、装着されている記憶媒体に予め記憶されている機種別コードを読出し、その機種別コードに応じた処理ユニットを起動し、その処理ユニットによってゲームプログラムの実行を開始している。すなわち、新機種は、旧機種用のゲームプログラムを記憶したＣＤ−ＲＯＭが装着されたとき、旧機種用の処理ユニットによってゲームプログラムの実行を開始し、新機種用のゲームプログラムを記憶したＤＶＤ−ＲＯＭ又はＣＤ−ＲＯＭが装着されたとき、新機種用の処理ユニットによってゲームプログラムの実行を開始する。
【０００４】
【発明が解決しようとする課題】
近年、上述したような新機種が発売された後でも、各ゲームソフトメーカは、新機種用のゲームプログラムの開発困難性や新機種市場の小ささなどの理由から、旧機種用のゲームプログラムによるゲームを数多く開発し販売している。このような新機種の発売後に発売された旧機種用のゲームプログラムは、新機種の発売前に発売された旧機種用のゲームプログラムと何ら変わることなく、新機種又は旧機種のいずれでプレイしても同一の内容（例えばシナリオ，ストーリ，イベント等）でゲームが進められるようになっている。したがって、ユーザ（プレイヤ）は、新たに販売された旧機種用のゲームが、新機種でも旧機種でも全く同一の内容でプレイできるので、新機種を改めて買う必要もないと感じている。
【０００５】
このような状況は、ゲーム機メーカにとっては新機種の拡販等に結び付かないので好ましくなく、また、ゲームソフトメーカにとっても市場のさらなる拡大を期待できないので好ましくないことであった。そこで、プレイヤに旧機種用の単一ゲームソフトを新機種でプレイさせる場合と、旧機種でプレイさせる場合とでは、そのゲーム内容を変えることを可能にするゲームソフトが考えられる。このようなゲームソフトであれば、市場の大きな旧機種用として多売を可能にしながら、そのゲームソフトによって新機種自体の拡販を可能にできる可能性がある。
【０００６】
しかしながら、従来、新機種のゲーム機においては、そのゲーム機に搭載されている起動プログラムによって、記憶媒体が新機種用か旧機種用かを判別し、旧機種用であるときには、旧機種用の処理ユニットによって記憶媒体に記憶されているゲームプログラムを実行していたので、ゲームプログラム自身によって自らが実行されている機種を判別する必要がなかった。また、新機種上であっても新機種内蔵の旧機種用の処理ユニットによって実行されているので、自らが新機種上において実行されていることを判別することも困難であった。このような問題点から、従来のゲームプログラムは、新機種及び旧機種のいずれにおいて実行されるかによってゲーム内容が変わるという面白みをプレイヤに感じさせることができず、新機種の拡販等にも結びつかなかった。
【０００７】
それゆえに、この発明の目的は、ゲームプログラムを記憶する記憶媒体が互換性のある少なくとも２種類のゲーム機の一方に装着された場合に、ゲーム機の種類を識別させかつその種類に応じてシナリオを変化させることができるゲームプログラムを提供することである。
【０００９】
【課題を解決するための手段】
第１の発明は、第１のゲーム機および第１のゲーム機と互換性を有する第２のゲームにおいて実行可能なゲームプログラムである。請求項１では、ゲームプログラムは、両ゲーム機に装着可能な記憶媒体に記憶されている。第１のゲーム機及び第２のゲーム機は、複数のレジスタを含む処理ユニットとその処理ユニットによって起動時に実行される起動プログラムとを各々搭載している。請求項１では、ゲームプログラムは、第１データと第２データを含み、記憶媒体が装着されたゲーム機の処理ユニットを、識別データ読出手段、識別手段、ゲーム進行手段として機能させることを特徴とする。第１データは、第１のゲーム機の処理ユニットにおける起動プログラムの実行終了直後にその処理ユニットの所定レジスタ（実施例との対応関係を示せばＣＰＵ１５，６１の内部レジスタいわゆるＡレジスタやＢレジスタ等の少なくともいずれか１つ）に残る既知の値に相当するデータである。第２データは、第２のゲーム機の処理ユニットにおける起動プログラムの実行終了直後にその処理ユニットの所定レジスタに残る既知の値に相当するデータである。識別データ読出手段は、処理ユニットによって自己の実行が開始されたとき、既に終了している前記起動プログラムの実行終了時に残った前記処理ユニットの所定レジスタの値を識別データとして読出す。識別手段は、識別データ読出手段によって読出した識別データと、第１データ又は第２データとを比較することにより、記憶媒体が装着されているゲーム機が前記第１のゲーム機と前記第２のゲーム機のいずれであるかを識別する。そして、ゲーム進行手段は、識別手段によって第１のゲーム機と識別したときと第２のゲーム機と識別したときとによって、少なくとも一部が異なるゲーム内容となるようにゲームを進行させる。
【００１０】
第２の発明は、第１キャラクタ群データと第２キャラクタ群データとを含む。請求項２では、ゲーム進行手段が第１のゲーム機と識別したとき、第１キャラクタ群データを選択し、第２のゲーム機と識別したとき、前記第２キャラクタ群データを選択する。これにより、第１のゲーム機と第２のゲーム機とではゲームに登場するキャラクタを替える。第１キャラクタ群データは、第１のゲーム機におけるゲームに登場する第１のキャラクタ群を含むデータである。第２キャラクタ群データは、第２のゲーム機におけるゲームに登場する第２のキャラクタ群を含むデータである。
【００１１】
第３の発明は、第１シナリオデータと第２シナリオデータとを含む。請求項３では、ゲーム進行手段が第１のゲーム機と識別したとき、第１シナリオデータを選択し、第２のゲーム機と識別したとき、第２シナリオデータを選択する。これにより、第１のゲーム機と第２のゲーム機とではゲームのシナリオ（又はストーリ）の少なくとも一部を替える。第４の発明（請求項４に記載）では、第２のシナリオは、第１のシナリオを拡張する拡張シナリオを含む。
【００１２】
【発明の効果】
この発明によれば、記憶媒体に記憶されたゲームプログラムによって、記憶媒体が装着されたゲーム機の種類を識別させることができるので、記憶媒体が装着されるゲーム機の種類に応じて、そのゲーム機上で進行されるゲーム内容を変えることができる。その結果、第１のゲーム機及び第２のゲーム機（例えば新機種及び旧機種）の両方でプレイするという面白みをプレイヤに感じさせることができるゲームを提供することができる。また、第１のゲーム機と互換性を有する第２のゲーム機のさらなる拡販を期待できる。
【００１３】
また、第１のゲーム機と第２のゲーム機における起動プログラムの実行終了直後に残る処理ユニットの所定レジスタの値に基づいて、記憶媒体が装着されたゲーム機の種類を識別するので、既に販売されている互換性のあるゲーム機の起動プログラムに改めて手を加えることもなく、既販売のゲーム機にも容易に対応することもできる。
【００１４】
【発明の実施の形態】
以下、図面を参照してこの発明の一実施例を説明する。
まず、本発明のゲームプログラムが適用されるゲームシステムについて説明する。図１及び図２は第１のゲーム機と第２のゲーム機とから構成されるゲームシステムの一実施例を説明するための外観図である。図３は第２のゲーム機と第２のカートリッジ及び第１のカートリッジとの使用様態を示す斜視図である。
【００１５】
図１および図３（ａ）において、ゲームシステムは、第１のゲーム機１０と、その第１のゲーム機１０と互換性を有する第２のゲーム機３０とを含み、さらに第１のゲーム機１０及び第２のゲーム機３０の双方に着脱可能な第１のゲーム機用カートリッジ（以下、単に「カートリッジ」又は「ゲームカートリッジ」という）２０と、第２のゲーム機３０だけに着脱可能な第２のカートリッジ４０とを含んで構成される。後述で明らかになるが、本発明のゲームプログラムは第１のカートリッジ２０に記憶される。なお、本実施例では、第１のゲーム機および第２のゲーム機として携帯ゲーム機を例に説明するが、例えば据置型のゲーム機などであってもよい。また、記憶媒体としてカートリッジを例に説明するが、例えばCD-ROM，DVD-ROM，ハードディスクなどの記憶媒体でもよい。
【００１６】
第１のゲーム機１０は、性能的に比較的低い処理ユニット（例えば８ビット程度のＣＰＵ等；図５のＣＰＵ１５）を搭載しており、処理能力が低い旧機種（又は下位機種）である。一方、第２のゲーム機３０は、性能的に高い処理ユニット（例えば、１６ビット以上のＣＰＵ等；図１２の第２ＣＰＵ６３）を搭載しており、新機種（又は上位機種）である。さらに、第２のゲーム機３０は、互換性を確保するために第１のゲーム機１０の処理ユニットと同等の処理ユニットＣＰＵ（図１２の第１ＣＰＵ６１）も内蔵している。
【００１７】
第１のカートリッジ２０のハウジング２１の形状は、縦長さがａ１であり、横長さがｂ１の矩形形状（又は略正方形）であり、その厚みがｃ１に選ばれる。第１のカートリッジ２０の一方主面の左右側面には、表裏の逆差しを防止するための傾斜面２１１が形成される。第１のカートリッジ２０は、ハウジング２１の内に、ゲームプログラムを記憶したＲＯＭ２３等の半導体メモリを実装した回路基板（図示せず）を内蔵して構成される。第１のカートリッジ２０の下方部分には、開口部２１２が形成され、その開口部２１２から回路基板の一辺に形成されている複数の接続端子（図示せず）が露出される。回路基板に形成された複数の接続端子によって、エッジコネクタ（図示せず）が構成される。
【００１８】
第１のゲーム機１０は、ハウジング１１を含み、その一方主面（図示の表面）の上部領域に液晶表示器１２が形成されるとともに、下部領域に移動方向指示スイッチ１３ａ及び動作指示スイッチ１３ｂが装着される。第１のゲーム機１０の他方主面（図示の裏面）の上部領域には、第１のカートリッジ２０を装着するためのカートリッジ挿入凹部（以下「挿入凹部」と略称する）１４が形成される。挿入凹部１４は、第１のカートリッジ２０を収納し又は装着できるように、第１のカートリッジ２０の外形寸法（縦×横×厚さ＝ａ１×ｂ１×ｃ１）に略等しい凹部又は空間を有する（縦方向の長さはａ１より短くても良い）。挿入凹部１４の内部には、第１のカートリッジ２０を第１のゲーム機１０内のＣＰＵ等の各種電子部品と電気的に接続するためのコネクタ（図５のコネクタ１１３）が実装される。従って、挿入凹部１４に第１のカートリッジ２０を装着したとき、第１のカートリッジ２０が挿入凹部１４にすっぽりと嵌まり込んだ状態で、第１のゲーム機１０のコネクタと第１のカートリッジ２０の回路基板の複数の接続端子とが電気的に接続されて、使用されることになる。このとき、第１のゲーム機１０は、第１の駆動電圧（例えば、５Ｖ）を第１のカートリッジ２０に供給する。
【００１９】
一方、第２のカートリッジ４０のハウジング４１は、縦長さが第１のカートリッジ２０よりも短いａ２（ａ２＜ａ１）であり、横長さが第１のカートリッジ２０と同じｂ１の横長の平面形状であり、その厚みが第１のカートリッジ２０と同じｃ１に選ばれる。第２のカートリッジ４０の横長さおよび厚みを第１のカートリッジ２０と同じにすることによって、両方のカートリッジを第２のゲーム機３０のカートリッジ挿入凹部へ挿入可能にすることができる。なお、横長さ方向および厚み方向は相対的なものであり、本発明の趣旨に従って方向が決められることは言うまでもない。ハウジング４１の一方主面の左右側面部分には、第１のカートリッジ２０と同様に、傾斜面４１１が形成される。また、第２のカートリッジ４０は、第１のカートリッジ２０が装着された場合と区別するために、被検出部の一例の切欠部４１２が少なくとも左右の一方側面の挿入方向先端部分に形成される（デザイン上対称とするなどの理由等により、切欠部は左右の両方に設けてもよい）。さらに、第２のカートリッジ４０は、その縦方向上部の辺（上部辺）の左右の少なくとも一方（必要に応じて両側）に、挿入時のストッパーとなるための突出部４１３が形成される。従って、第２のカートリッジ４０の上辺の幅ｂ２は、その下方の幅（ｂ１＝第１のカートリッジ２０の幅）よりも若干大きく選ばれる。この第２のカートリッジ４０は、ゲームプログラムを記憶したＲＯＭ４２等の各種集積回路（ＩＣ）を実装した回路基板（図示せず）を内蔵して構成される。第２のカートリッジ４０の下方部分には、開口部４１４が形成され、その開口部４１４から回路基板の一辺に形成されている複数の接続端子が露出される。回路基板に形成された複数の接続端子によって、エッジコネクタ（図示せず）が構成される。
【００２０】
第２のゲーム機３０は、ハウジング３１を含み、その一方主面（図示の表面）の中央領域に液晶表示器３２が形成されるとともに、液晶表示器３２を挟んだ外側の空き領域に移動方向指示スイッチ３３ａ及び動作指示スイッチ３３ｂがそれぞれ装着される。第２のゲーム機３０の他方主面（図示の裏面）の上部領域には、第２のカートリッジ４０を装着するための挿入凹部３４が形成される。挿入凹部３４は、第２のカートリッジ３０を収納し又は装着できるように、第２のカートリッジ３０の外形寸法（縦×横×厚さ＝ａ２×ｂ１×ｃ１）に略等しい凹部又は空間を有する（縦方向の長さはａ２より短くても良い）。挿入凹部３４の内部には、第２のカートリッジ４０を第２のゲーム機３０内のＣＰＵ等の各種電子部品と電気的に接続するためのコネクタ（図４，図６の３７）が実装される。従って、挿入凹部３４に第２のカートリッジ４０を装着したとき、第２のカートリッジ４０が挿入凹部３４にすっぽりと嵌まり込んだ状態で使用されることになる。このとき、第２のゲーム機３０は、第２の駆動電圧（例えば、３．３Ｖ）を第２のカートリッジ４０に供給する。
【００２１】
次に、図２および図３（ｂ）を参照して、第１のゲーム機１０と第２のゲーム機３０のそれぞれに別の第２のカートリッジ４０，第１のカートリッジ２０を装着した場合を説明する。
図２の左側図に示すように、第１のゲーム機１０に第２のカートリッジ４０が装着された場合は、第２のカートリッジ４０の縦長さａ２が第１のゲーム機１０内のコネクタに接続するのに必要な縦長さａ１よりも短いため、突出部４１３が挿入凹部１４の横のハウジング１１の上辺に引っかかり、第２のカートリッジ４０の接続端子（４６）がコネクタに届かず正常に接続されない。すなわち、第２のカートリッジ４０の接続端子（４６）部分が第１のゲーム機１０内のコネクタから浮いた状態で装着される。そのため、第１のゲーム機１０の電源電圧は、第２のカートリッジ４０の接続端子、ひいては第２のカートリッジ４０に内蔵される半導体メモリを含む各種ＩＣ部品に供給されず、半導体メモリ等の各種ＩＣ部品が過電圧によって破壊されるのを有効に防止できる。
【００２２】
逆に、図２の右側図およびに図３（ｂ）示すように、第２のゲーム機３０に第１のカートリッジ４０が装着された場合は、第１のカートリッジ２０の縦長さａ１が第２のゲーム機３０の挿入凹部３４の縦長さａ２よりも長い（ａ２＜ａ１）ため、第１のカートリッジ２０の接続端子が第２のゲーム機３０内のコネクタ３７まで達して電気的に接続さる。このとき、ａ２＜ａ１のため、第１のカートリッジ２０の縦長さ方向のａ１−ａ２（差）の部分が挿入凹部３４から露出した状態で、第１のカートリッジ２０が第２のゲーム機３０に装着されて使用されることになる。このとき、第２のゲーム機３０は、第２の駆動電圧（例えば、３．３Ｖ）に代えて第１の駆動電圧（５Ｖ）を第１のカートリッジ２０に供給する。
【００２３】
従って、第１のカートリッジ２０は、第１のゲーム機１０だけでなく、第２のゲーム機３０にも利用でき、上位機種への互換性が確保される。一方、第２のカートリッジ４０は、第２のゲーム機３０に使用できるが第１のゲーム機１０に使用できず、誤って第１のゲーム機１０に装着されても第１のゲーム機１０と電気的に接続されないため、過電圧による半導体メモリ等の破壊を有効に防止できることになる。
【００２４】
なお、第１のカートリッジ２０と第２のカートリッジ４０の駆動電圧が異なるのは、上位機種用のカートリッジである第２のカートリッジ４０が省電力化の目的で、低電圧で駆動される半導体等の電子部品を使用しているためである。しかし、消費電力の低減を必要としないならば、両ゲーム機において同一の電源電圧を使用してもよい。その場合、第２のゲーム機３０は、第１のカートリッジ２０と第２のカートリッジ４０の何れが装着されているかによって、カートリッジへの供給電圧の切換を必要としない。
【００２５】
次に、カートリッジ形状検出スイッチ（以下、「検出スイッチ」という）３５によって第１のカートリッジ２０と第２のカートリッジ４０を区別して検出する場合について、図４を参照して説明する。
【００２６】
検出スイッチ３５は、例えば２者択一のセレクタスイッチが用いられ、コネクタ３７の近傍に設けられる。検出スイッチ３５は、ＤＣ−ＤＣコンバータ（図示せず）の３．３Ｖ出力端子と５Ｖ出力端子の何れか一方を選択的に接続して、コネクタ３７に接続されているカートリッジの電源端子に選択した電源を供給すように回路接続される。なお、初期状態では検出スイッチ３５は３．３Ｖを選択するように構成されている。
【００２７】
例えば、図４（ａ）に示すように、第２のカートリッジ４０が装着された場合は、検出スイッチ３５が切欠部４１２に嵌まり込み、オフのままであるので、第２のカートリッジ４０であることを検出して、第２のカートリッジ４０用の電源（３．３Ｖ）を供給する。一方、図４（ｂ）に示すように、第１のカートリッジ２０が装着された場合は、ハウジング２１には切欠部４１２が形成されていないので、検出スイッチ３５がハウジング２１の先端部分によって押し倒されてオンとなり、第１のカートリッジ２０であることを検出して、第１のカートリッジ２０用の電源（５Ｖ）を供給する。なお、被検出部と検出スイッチ３５は、切欠部４１２とマイクロスイッチ以外に種々のものを使用してもよい。
【００２８】
次に、図５〜図７を参照しながら、第１のゲーム機１０と第１のカートリッジについて詳細に説明する。図５は第１のゲーム機１０とその機種用の第１のカートリッジ２０の一実施例を示すブロック図である。図６は第１のゲーム機のブートＲＯＭに記憶された起動プログラムを図解した図である。図７は第１のカートリッジのＲＯＭに記憶されるゲームプログラムを図解した図である。
【００２９】
第１のゲーム機１０は、既に発売されかつ性能の低い（旧機種又は下位機種）ゲーム機である。この第１のゲーム機１０は、処理ユニットの一例のＣＰＵ１５を含み、さらにＣＰＵ１５にバスを解して接続される、ＬＣＤ（液晶表示器）１２，操作キー（１３ａ，１３ｂの総称）１３，ＷＲＡＭ（ワークＲＡＭ）１８，ＶＲＡＭ（ビデオＲＡＭ）１９等を含む。ＣＰＵ１５は、周知のように、Ａレジスタ（アキュームレータ）１５ａやＢレジスタ１５ｂなどの複数の内部レジスタを備える中央処理装置である。また、ＣＰＵ１５には、記憶媒体の一例の第１のカートリッジ２０を接続するためのコネクタ１７がＩ／Ｏバッファコントローラ（図示せず）を解して接続される。
【００３０】
さらに、ＣＰＵ１５には、本体起動用のブートＲＯＭ１６が接続される。ブートＲＯＭ１６は、本体電源投入時にＣＰＵ１５によって最初に実行される起動プログラム１６０（図６参照）を記憶している。起動プログラム１６０は、ＷＲＡＭ１８，ＶＲＡＭ１９などの周辺回路を初期化する初期化プログラム１６１、第１のカートリッジ２０が正規品か否かを認証するための確認用ロゴデータ１６２および認証プログラム１６３等を含む。
【００３１】
一方、第１のカートリッジ２０は、上述したように、第２のゲーム機３０にも着脱可能に構成され、ＲＡＭ２２，ＲＯＭ２３等を含む。ＲＡＭ２２は、バックアップデータを記憶するためのメモリとして利用される。ＲＯＭ２３は、本発明の一例のゲームプログラム２２０を記憶した不揮発性のメモリである。このゲームプログラム２２０は、退避プログラム２２１，識別プログラム２２２，ゲーム進行プログラム２２３，認証ロゴデータ２２４，第１データ２２５，第２データ２２６，第１シナリオデータの一例の基本シナリオデータ２２７，第２シナリオデータの一例の拡張シナリオデータ２２８を含む。
【００３２】
次に、図８〜図１０に示すフローチャートを参照しながら、上述した各種プログラムに基づく第１のゲーム機の動作について説明する。図８は起動プログラムに基づく第１のゲーム機の動作を示すフローチャートである。図９および図１０はゲームプログラムに基づく第１のゲーム機の動作を示すフローチャートである。
【００３３】
まず、ゲームプレイに先立って、プレイヤは、第１のカートリッジ２０を第１のゲーム機１０の挿入凹部１４に挿入して、第１のゲーム機に装着するとともに、コネクタ１７に接続する。ステップ（図では「Ｓ」の記号で示す）１において、プレイヤによってゲーム機本体の電源が投入（ＯＮ）される。この電源投入によって、ＣＰＵ１５は、ブートＲＯＭ１６から起動プログラム１６０を構成する各命令を順次読込み実行することにより、以下の処理を行う。
【００３４】
すなわち、ステップ２において、初期化プログラム１６１が実行されることによって、ＷＲＡＭ１８やＶＲＡＭ１９等の記憶領域に例えば「０」を書込み、それらを初期化する。続く、ステップ３において、認証プログラム１６２が実行されることによって、第１のカートリッジ２０から認証ロゴデータ２２４が読み込まれる。そして、ステップ４において、読込んだ認証ロゴデータ２２４と、自らが記憶している確認用ロゴデータ１６３とが一致するか否かを判別することにより、正規のカートリッジか否かを認証する。ステップ５において、両ロゴデータが一致しない場合、前述のステップＳ３，Ｓ４が無限に繰り返され、不正なゲームプログラムの実行は不可能になる。
【００３５】
一方、ステップ５において、両ロゴデータが一致する場合、ステップ６に処理が移行する。ステップ６において、ＣＰＵ１５の処理対象が、起動プログラム１６０の実行から、第１のカートリッジ２０のゲームプログラム２２０の実行へ移る。このステップ６の開始時、すなわち起動プログラム１６０の起動終了直後において、ＣＰＵ１５の各レジスタには毎回同じ既知の値（例えばＡレジスタ１５ａには「０１ｈ（ｈは１６進数を示す）」）が残る。既知の値が残る原理は、周知のように、ＣＰＵによって同一プログラムを同一条件で毎回実行すれば、内部レジスタに同じ値が毎回残る原理と同じである。なお、後述で明らかになるが、第２のゲーム機３０の第１ＣＰＵ６１（図１２参照）の場合には、上記ＣＰＵ１５のＡレジスタ１５ａの値とは異なる値が第１ＣＰＵ６１のＡレジスタ６１ａに残る。
【００３６】
次に、ＣＰＵ１５は、第１のカートリッジ２０のゲームプログラム２２０の実行を開始する。すなわち、ステップ１１において、まず、退避プログラム２２１が実行され、起動プログラム１６０の実行終了直後におけるＣＰＵ１５の所定レジスタの一例のＡレジスタの値（識別データ）を、例えばワークＲＡＭ１８に退避する（例えばＡレジスタの値をＷＲＡＭ１８に単にロードするようにすればよい）。具体的には、図１１のＷＲＡＭを図解図に示すように、例えばＷＲＡＭ１８のＡレジスタの値退避領域１８ａを設け、その領域１８ａにＡレジスタの値「０１ｈ」を記憶する。この値の退避は、プログラムの実行により、Ａレジスタの値が書き換わるので、その書き換わる前にＡレジスタの値を確保するためである。
【００３７】
続くステップ１２において、識別プログラム２２２を実行することによって、ゲームプログラム２２０に予め含まれる第１データ２２５と第２データ２２６とを読込む。そして、ステップ１３において、ＷＲＡＭ１８に退避したＡレジスタの値「０１ｈ」と、第１データ又は第２データとを比較し、いずれに一致するかを判別する。ステップ１４において、第１データと一致することが判断され、続くステップ１５に移行する。ステップ１５において、ＷＲＡＭ１８の第１のゲーム機用フラグ領域１８ｂにフラグデータが書き込まれる。すなわち、ステップ１１〜ステップ１５によって、第１のカートリッジ２０が第１のゲーム機１０に装着されていることを識別にする。
【００３８】
そして、ステップ１７において、ゲーム進行プログラム２２３に基づいて、図１０に示すステップ２１〜２４又はステップ２１，２５〜２７が実行されることにより、プレイヤがゲームをプレイ可能なゲーム処理が開始される。ステップ２１において、ＷＲＡＭ１８の第１のゲーム機用フラグ領域１８ｂおよび第２のゲーム機用フラグ領域１８ｃを読込み、いずれのフラグ領域にフラグデータが書き込まれているかを把握する。ここで、上述したステップＳ１５によってフラグ領域１８ｂにフラグデータが書き込まれているので、ステップ２２へ分岐しそれ以降のステップが実行される。すなわち、第１のカートリッジ２０が第１のゲーム機１０に装着された場合には常にステップ２２〜２４が実行される。
【００３９】
ステップ２２において、ゲームプログラム２２０に含まれる基本シナリオデータ２２７を選択しそのシナリオデータを読込む。ステップ２３において、基本シナリオデータ２２７に沿ったシナリオでゲームを進行させる。例えば基本シナリオデータ２２７がロールプレイングゲームである場合、ゲーム世界に登場する主人公キャラクタをプレイヤに操作させてゲームをクリヤさせるために、ゲーム世界において様々なイベントを発生させる処理等を行う。ステップ２４において、プレイヤの意思によって、電源が切られる（ＯＦＦ）か、所定ボタンの操作によってゲームの終了が指示されるまで、上述のステップ２３を繰り返し行わせる。
【００４０】
上述したように、第１のカートリッジ２０が第１のゲーム機１０に装着された場合には、起動プログラム１６０によってＣＰＵ１５のＡレジスタに残る値を識別データとして認識し、その識別データに応じて、自らが記憶されている第１のカートリッジ２０が第１のゲーム機１０に装着されていることを識別する。そして、第１のゲーム機１０用のゲーム内容（例えば、シナリオ，ストーリ，キャラクタ等）でゲームを進行させる。
【００４１】
次に、図１２、図１３を参照しながら、第１のカートリッジ２０を第２のゲーム機３０に装着する場合について説明する。図１２は第２のゲーム機３０と第１のカートリッジ２０及び第２のカートリッジ４０との一実施例のブロック図である。図１３は第２のゲーム機３０に搭載する２つのブートＲＯＭに各々記憶された起動プログラムを示す模式図である。
【００４２】
第２のゲーム機３０は、新たに発売されかつ性能の高い（新機種又は上位機種）ゲーム機であり、処理能力の高い新たな処理ユニット（第２ＣＰＵ６３）だけでなく、第１のゲーム機１０との互換性を確保するための第１のゲーム機１０のＣＰＵ１５に相当する処理ユニット（第１ＣＰＵ６１）を備えている。具体的には、第２のゲーム機１０は、第１ＣＰＵ６１と第２ＣＰＵ６３を含み、さらに両ＣＰＵ６１，６３にバスを解して接続される、ＬＣＤ３２，操作キー６６，ＷＲＡＭ６７，ＶＲＡＭ６８等を含む。第１ＣＰＵ６１は、第１のゲーム１０のＣＰＵ１５と同様に構成される所定レジスタの一例のＡレジスタ６１ａ，Ｂレジスタ６１ｂ等の複数のレジスタを備える。また、第２ＣＰＵ６３も、Ａレジスタ６３ａ，６３ｂ等の複数のレジスタを備える。ただし、第２ＣＰＵ６３は、例えば３２ビットであるので、例えば８ビットの第１ＣＰＵ６１とは、レジスタの数やその構成が異なる。また、ＷＲＡＭ６７，ＶＲＡＭ６８等は、既に説明した第１のゲーム機１０のものとは記憶容量が異なる程度の違いしかないので、その説明を省略する。
【００４３】
また、第１ＣＰＵ６１及び第２ＣＰＵ６３には、第１のカートリッジ２０又は第２のカートリッジ４０を接続するためのコネクタ３７がＩ／Ｏバッファコントローラ（図示せず）を解して接続され、さらに、カートリッジの種類に応じてＣＰＵを切替えるための切替回路６５が接続される。
【００４４】
コネクタ３７には、関連して動作するセレクタタイプのマイクロスイッチ等の検出スイッチ３５が設けられる。検出スイッチ３５は、図４において説明したように、第１のカートリッジ２０と第２のカートリッジ４０の何れが挿入凹部３４に挿入されたか（すなわち、第２のゲーム機３０に装着されたか）を検出するものである。例えば、検出スイッチ３５は、第２のカートリッジ４０が挿入されたとき切欠部４１２が有ることを検出することによって、第２のカートリッジ４０が装着されたとことを判別する。一方、第１のカートリッジ２０が挿入されたとき切欠部４１２のないことに応じて、第１のカートリッジ２０が装着されたことを判別する。そして、検出スイッチ３５が第２のカートリッジ４０を検出したとき、３．３Ｖの電源電圧を選択して第２のカートリッジ４０に供給する。一方、検出スイッチ３５が第１のカートリッジ２０を検出したとき、５Ｖの電源電圧を選択して第１のカートリッジ２０に供給する。このとき、切替回路６５は、検出スイッチ３５の出力に応答して第１ＣＰＵ６１と第２ＣＰＵ６３のいずれか一方を能動化する。
【００４５】
さらに、第１ＣＰＵ６１には、切替回路６５によって能動化されたとき、第２のゲーム機３０を第１のゲーム機１０として起動するためのブートＲＯＭ６２が接続される。同様に、第２ＣＰＵ６３には、切替回路６５によって能動化されたとき、第２のゲーム機３０として起動するためのブートＲＯＭ６４が接続される。ブートＲＯＭ６２は、起動プログラム６２０を記憶しており、ブートＲＯＭ６４は、起動プログラム６４０を記憶している。
【００４６】
起動プログラム６２０は、初期化プログラム６２１，認証プログラム６２２，確認用ロゴデータ１６３を含む。起動プログラム６４０は、初期化プログラム６４１，認証プログラム６２２，認証ロゴデータ１６３を含む。ここで、既に説明した第１のゲーム機１０の起動プログラム１６０と起動プログラム６２０と起動プログラム６４０とは、それぞれ同じ機能を有する。しかし、各起動プログラム１６０，６２０，６４０は、バージョンアップやバグフィックス、また、第１のゲーム機１０と第２のゲーム機３０の周辺回路の構成の違いにより、プログラムを構成する命令の順序や種類が多少異なる場合がある。つまり、起動プログラムの終了直後のＡレジスタ等に残る値が、起動プログラムの種類によって異なり、この値の違いをゲームプログラムによって識別することにより、カートリッジが装着されているゲーム機の種類によってゲーム内容を変えることが可能になる。
【００４７】
図１４および既に説明した図８〜図１０を参照して、第１のカートリッジ２０を第２のゲーム機３０に装着した場合の動作について説明する。図１３は、第２のゲーム機３０が起動プログラムを実行するまでのフローチャートである。
【００４８】
まず、ゲームプレイに先立って、プレイヤは、第１のカートリッジ２０を第２のゲーム機３０に装着する。ステップ３１において、プレイヤによってゲーム機本体の電源が投入される。ステップ３２において、検出スイッチ３５の出力が切替回路６５へ入力されることによって、カートリッジの種類を判別する。ステップ３３において、切替回路６５は、第１のカートリッジ２０と第２のカートリッジ４０のいずれであるかを判別し、カートリッジの種類に応じたステップを実行する。この場合において、切替回路６５は、第１のカートリッジ２０であること識別する。すなわち、ステップ３４，３５が実行される。なお、詳細な説明は省略するが、第２のカートリッジ４０が装着されているときには、ステップ３６，３７が実行される。
【００４９】
ステップ３４において、切替回路６５は、第１のゲーム機１０用の第１ＣＰＵ６１を能動化する。続くステップ３５において、第１ＣＰＵ６１は、第１ブートＲＯＭ６２に記憶されている起動プログラム６２０の実行を開始する。すなわち、ステップ３５において、初期化プログラム６２１，認証プログラム６２２によって、図８のステップ２〜６と同様の処理が実行される。ここで、ステップ６の処理が開始される直前、すなわち起動プログラム６２０が実行終了直後において、第１ＣＰＵ６１のＡレジスタ６１ａ，Ｂレジスタ６１ｂ等には、第１のゲーム機１０の時とは、既に説明した理由により異なる値（例えば「１１ｈ」）が残っている。
【００５０】
そして、第１のカートリッジ２０のゲームプログラム２２０（図７参照）の実行が開始される。図９で説明したように、ステップ１１において、Ａレジスタ６１ａの値「１１ｈ」をＷＲＡＭ６７のレジスタ退避領域６７ａに退避させる。そして、ステップ１２〜１４の動作が実行され、ステップ１４において、Ａレジスタ６１ａの値「１１ｈ」と、第１データ２２５又は第２データ２２６とを比較することにより、第２データ２２６と一致することを判断し、ステップ１６へ進む。これによって、続くステップ１６において、ＷＲＡＭ６７の第２のゲーム機用フラグ領域６７ｃにフラグデータが書き込まれる。その後、ステップ１７へ進み、図１０の処理が実行される。
【００５１】
ステップ１７すなわち図１０に示すステップ２１において、第２のゲーム機３０であることを示すフラッグデータが検出され、ステップ２５へ分岐し進む。ステップ２５において、ゲーム進行プログラム２２３は、拡張シナリオデータ２２８を選択する。続くステップ２６において、その拡張シナリオデータ２２８に従ったシナリオでゲームを進行させる。ステップ２７において、プレイヤからの終了の動作又は指示があるまで、ステップ２６を繰返させる。この拡張シナリオは、例えば基本シナリオデータ２２７のシナリオでは侵入できなかった洞窟や城に入れたり、いままで無かった新たな町を出現させたりするような新たなイベントを発生させる、基本シナリオとは別のシナリオ又は異なる分岐処理プログラムである。
【００５２】
以上のように、ゲームプログラム２２０の記憶媒体である第１のカートリッジ２０を、第１のゲーム機１０と第２のゲーム機３０のいずれに装着するかによって、ゲームの内容を変えるので、単一のゲームソフトを例えば旧機種と新機種の両方で楽しませることができる。その結果、飽きられにくいゲームソフトをプレイヤに提供できる。また、新機種の拡販をも可能にする。
【００５３】
なお、以上の説明では、第１のゲーム機１０と第２のゲーム機３０とでは、シナリオを替える場合について説明したが、例えばステップ２２において、ゲーム世界に登場するキャラクタを表示させるための第１のキャラクタ群のデータを選択させ、ステップ２５において、第２のキャラクタ群のデータを選択させることによって、第１のゲーム機１０又は第２のゲーム機３０の場合においてキャラクタを替えるようにすることもできる。
【００５４】
また、この実施例では、ゲームプログラムの実行開始時にＡレジスタの値を退避させたが、退避させずに直ちにＡレジスタの値に基づいて機種を識別させるようにしてもよい。
【００５５】
また、互換性を確保するため、第１のゲーム機１０のＣＰＵ１６によって実行される起動プログラム１６０と、第２のゲーム機３０の第１ＣＰＵ６１によって実行される起動プログラム６２０とが全く同一の命令で構成する必要がある場合には、例えば起動プログラム６２０の終了間際の命令に、Ａレジスタ６１ａの値をインクメントする命令を付加する。こうすれば、プログラムをほとんど変えることなく、Ａレジスタ６１ａの値を、第１のゲーム機１０のＡレジスタ１５ａの値とは異ならせることができる。ブートＲＯＭに機種を特定するための識別コードを入れておき、起動プログラムの実行終了時にその識別コードをＡレジスタ等にロードしてもよい。
【００５６】
また、上述した実施例では、Ａレジスタの値の違いだけで、第１のゲーム機１０か第２のゲーム機３０かを識別したが、例えばＢレジスタ等の複数のレジスタの値を利用してもよい。Ａレジスタでなく、他のレジスタの値でもよい。
【００５７】
また、ゲームプログラム２２０が実行されているときに、ゲーム機の機種の違いによるハード構成（ＲＡＭの容量など）を検出することにより、その検出結果を識別データとして、自己が実行されている機種を識別することも可能である。
【図面の簡単な説明】
【図１】ゲームシステムの原理を説明するための説明図である。
【図２】ゲームシステムの原理を説明するための説明図である。
【図３】第２のゲーム機に第２のカートリッジと第１のカートリッジを使用する状態を示す斜視図である。
【図４】カートリッジの識別機構の詳細図である。
【図５】第１のゲーム機および第１のカートリッジの一実施例のブロック図である。
【図６】ブートＲＯＭに記憶された起動プログラムを図解的に示した図である。
【図７】第１のカートリッジに記憶されたゲームプログラムを図解的に示した図である。
【図８】第１のカートリッジの起動プロログラムに基づくフローチャートである。
【図９】第１のカートリッジのゲームプログラムに基づくフローチャートである。
【図１０】ゲーム処理の詳細を示すフローチャートである。
【図１１】ＷＲＡＭの記憶データを図解的に示した図である。
【図１２】第２のゲーム機を示すブロック図である。
【図１３】第２のゲーム機の２つのブートＲＯＭにそぞれぞ記憶された起動プログラムを図解的に示した図である。
【図１４】第２のゲーム機における各起動プログラムが実行されるまでの動作を示すフローチャートである。
【符号の説明】
１０；第１のゲーム機
１５；ＣＰＵ
１６；ブートＲＯＭ
１６０；起動プログラム
２０；第１のカートリッジ
２２０；ゲームプログラム
３０；第２のゲーム機
４０；第２のカートリッジ
６１；第１ＣＰＵ
６２；第１ブートＲＯＭ
６２０；第１ＣＰＵ用の起動プログラム
６３；第２ＣＰＵ
６４；第２ブートＲＯＭ
６４０；第２ＣＰＵ用の起動プログラム
【図１】
0004623841.tif 000002
【図２】
0004623841.tif 000003
【図３】
0004623841.tif 000004
【図４】
0004623841.tif 000005
【図５】
0004623841.tif 000006
【図６】
0004623841.tif 000007
【図７】
0004623841.tif 000008
【図８】
0004623841.tif 000009
【図９】
0004623841.tif 000010
【図１０】
0004623841.tif 000011
【図１１】
0004623841.tif 000012
【図１２】
0004623841.tif 000013
【図１３】
0004623841.tif 000014
【図１４】
0004623841.tif 000015