情報処理装置およびゲームプログラム解析プログラム
【課題】複数種ハードウエア用に作られたゲームプログラムを実行途中で適宜切り替えて実行し、遊戯者にこれらを比較した遊びができるようにする。
【解決手段】ゲーム装置には、2個のエミュレータ(A、B)がインストールされるとともに、各エミュレータによってそれぞれ実行されるゲーム(A1、B1)のROMイメージがインストールされている。ゲームは異なるハードウエアで実行される対応した内容のソフトウエアである。 さらにゲーム装置にはエミュレータを選択的に実行するエミュレータ選択実行ソフトウエア(SW)がインストールされている。
【解決手段】ゲーム装置には、2個のエミュレータ(A、B)がインストールされるとともに、各エミュレータによってそれぞれ実行されるゲーム(A1、B1)のROMイメージがインストールされている。ゲームは異なるハードウエアで実行される対応した内容のソフトウエアである。 さらにゲーム装置にはエミュレータを選択的に実行するエミュレータ選択実行ソフトウエア(SW)がインストールされている。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ハードウエアの構成(アーキテクチャ)が異なるゲーム装置で実行されるゲームプログラムを解析して実行し得るゲーム装置、ゲームプログラム実行(解析)プログラムに関する。
【背景技術】
【0002】
現在、ゲームプログラムを実行するためのゲーム装置等のハードウエアは極めて高機能になっているが、そのハードウエアによって実行されるプログラムは、そのハードウエアに固有の仕様に合わせて作られている場合、ハードウエアが高機能であっても、異なる構成のハードウエア用に作られたプログラムは実行できない。
【0003】
一方、まだ画像表示が充分に行えなかった時代のハードウエア用に作られたゲームプログラムであっても、ハードウエア機能をカバーして余りある巧みな画像表現、演出等が施されたもの、あるいは独特の味わいのあるものも多く、ゲームファンの間で、現在でも高い人気を保持している。
【0004】
そこで特許文献1記載のゲームシステムでは、エミュレータによって旧ハードウエアの機能を現在のハードウエア上で再現し、旧ハードウエアで動作する1つのゲームプログラムのバイナリデータを解析して旧ハードウエアで実行されている状態と同様プログラム動作を行うものに関する発明が開示されている。
【0005】
【特許文献1】特開2001−340640号公報
【発明の開示】
【発明が解決しようとする課題】
【0006】
ゲームファンにとっては、1つのゲームプログラムがハードウエアごとに、その特性に応じた多様な特徴を発揮した移植がなされることも極めて興味深いポイントであり、個々のハードウエア用に作られた同様の仕様のゲームプログラムを比較したいという要求がある。しかし特許文献1のゲームシステムは、あるハードウエアに対応して作成されたエミュレータプログラムによって、そのハードウエアによって実行されるプログラムを逐次解析して実行しているため、そのような要求には応えていない。
【0007】
本発明はこのような従来の問題点を解消すべく創案されたもので、複数種ハードウエア用に作られたゲームプログラムを実行途中で適宜切り替えて実行し、遊戯者にこれらを比較した遊びができるようにすることを目的とする。
【課題を解決するための手段】
【0008】
本発明に係るゲーム装置は、第1のハードウエアで実行される第1のゲームプログラムと、第2のハードウエアで実行される第2のゲームプログラムとが格納された記憶手段と、前記第1のハードウエア構成をソフトウェアで再現して前記第1のゲームプログラムの解析を実行する第1エミュレータ手段と、前記第2のハードウエア構成をソフトウェアで再現して前記第2のゲームプログラムの解析を実行する第2エミュレータ手段と、前記第1または第2エミュレータを選択的に実行させるエミュレータ選択手段と、前記第1または第2エミュレータの実行を中断したときに、当該実行していたエミュレータの実行状態およびゲームプログラムの解析状態のパラメータを前記記憶手段にそのまま保持するパラメータ保持手段と、を有し、前記第1エミュレータ手段および第2エミュレータ手段は、前記エミュレータ選択手段により、前記第1または第2エミュレータの一方から他方に切り替えてエミュレータの実行を再開するときに、前記パラメータ保持手段により保持された前記パラメータに基づいて前記第1のゲームプログラムまたは第2のゲームプログラムの解析を実行する。
【0009】
これによって、複数種ハードウエア用に作られたゲームプログラムを実行途中で適宜切り替えて実行し、遊戯者にこれらを比較した遊びができるようになる。
【0010】
本発明に係る情報処理装置は、第1のハードウエアで実行される第1のゲームプログラムと、第2のハードウエアで実行される第2のゲームプログラムとが格納された記憶手段と、前記第1のハードウエア構成をソフトウェアで再現して前記第1のゲームプログラムの解析を実行する第1エミュレータ手段と、前記第2のハードウエア構成をソフトウェアで再現して前記第2のゲームプログラムの解析を実行する第2エミュレータ手段と、前記第1または第2エミュレータを選択的に実行させるエミュレータ選択手段と、前記第1または第2エミュレータの実行を中断したときに、当該実行していたエミュレータにより解析されたゲームプログラムにおけるゲームの進行状態のパラメータを抽出するパラメータ抽出手段と、前記エミュレータ選択手段により、前記第1または第2エミュレータの一方から他方に切り替えてエミュレータの実行を開始するときに、前記パラメータ抽出手段により抽出された前記パラメータを、前記他方のゲームプログラムの対応するパラメータに代入するパラメータ代入手段とを有する。
【0011】
これによって、複数種ハードウエア用に作られたゲームプログラムを実行途中で適宜切り替えて実行し、遊戯者にこれらを比較した遊びができ、ゲームプログラムの対応した状況の比較も可能である。
【0012】
本発明に係るゲームプログラム解析プログラムは、第1のハードウエアで実行される第1のゲームプログラムと、第2のハードウエアで実行される第2のゲームプログラムとが格納された記憶手段と、前記第1のハードウエア構成をソフトウェアで再現して前記第1のゲームプログラムの解析を実行する第1エミュレータ手段と、前記第2のハードウエア構成をソフトウェアで再現して前記第2のゲームプログラムの解析を実行する第2エミュレータ手段と、前記第1または第2エミュレータを選択的に実行させるエミュレータ選択手段と、前記第1または第2エミュレータの実行を中断したときに、当該実行していたエミュレータの実行状態およびゲームプログラムの解析状態のパラメータを前記記憶手段にそのまま保持するパラメータ保持手段と、前記エミュレータ選択手段により、前記第1または第2エミュレータの一方から他方に切り替えてエミュレータの実行を再開するときに、前記パラメータ保持手段により保持された前記パラメータに基づいて前記第1のゲームプログラムまたは第2のゲームプログラムの解析を実行させるエミュレータ再開手段として情報処理装置を機能させる。
【0013】
これによって、複数種ハードウエア用に作られたゲームプログラムを実行途中で適宜切り替えて実行し、遊戯者にこれらを比較した遊びができるようになる。
【0014】
本発明に係るゲームプログラム解析プログラムは、第1のハードウエアで実行される第1のゲームプログラムと、第2のハードウエアで実行される第2のゲームプログラムとが格納された記憶手段と、前記第1のハードウエア構成をソフトウェアで再現して前記第1のゲームプログラムの解析を実行する第1エミュレータ手段と、前記第2のハードウエア構成をソフトウェアで再現して前記第2のゲームプログラムの解析を実行する第2エミュレータ手段と、前記第1または第2エミュレータを選択的に実行させるエミュレータ選択手段と、前記第1または第2エミュレータの実行を中断したときに、当該実行していたエミュレータにより解析されたゲームプログラムにおけるゲームの進行状態のパラメータを抽出するパラメータ抽出手段と、前記エミュレータ選択手段により、前記第1または第2エミュレータの一方から他方に切り替えてエミュレータの実行を開始するときに、前記パラメータ抽出手段により抽出された前記パラメータを、前記他方のゲームプログラムの対応するパラメータに代入するパラメータ代入手段として情報処理装置を機能させる。
【0015】
これによって、複数種ハードウエア用に作られたゲームプログラムを実行途中で適宜切り替えて実行し、遊戯者にこれらを比較した遊びができ、ゲームプログラムの対応した状況の比較も可能である。
【発明の効果】
【0016】
本発明によれば、複数種のハードウエア用に作られたゲームプログラムを実行途中で切り替えながら実行できるので、ゲームの仕様等の比較が容易になり、過去に遊んだ類似するゲームまたは移植されたゲームの同様のシーンの比較を行うといったような新たな遊びを提供できるようになる。
【発明を実施するための最良の形態】
【0017】
次に本発明に係る通信装置の好適な実施例を図面に基づいて説明する。
【実施例1】
【0018】
図1は、本発明に係るゲーム装置の実施例1を示す正面図、図2は、本発明に係るゲーム装置をネットワークに接続した状態を示すブロック図である。
【0019】
図1において、ゲーム装置1000は例えば汎用コンピュータであり、表示すべき画像に基づいて表示部1010を駆動して画像を表示する表示制御部1012と有し、カラーLCD(液晶ディスプレイ)等の表示部(表示手段)1010等を備え、または接続される。
【0020】
表示制御部1012には、ゲーム装置1000全体を制御し、CPUや各ブロックとの情報の入出力を行うインターフェース(図示しない)等で構成する制御部1020が接続され、制御部1020には、システムメモリ1030、ROM1032、メモリカード等外部メモリ1034が接続されている。ROM1032は、ゲーム装置の起動時に最初に動作してゲーム装置の初期設定を行う起動プログラムやオペレーティングシステム(OS)等が格納されている。また、外部メモリ1034は、本発明のエミュレーションプログラムや、そのエミュレーションプログラムによって解析されるゲームのプログラムデータを格納しており、マスクROMやフラッシュROM、磁気および/または光学ディスク等のゲーム装置に対して着脱可能な記録媒体で構成されている。尚、オペレーティングシステム(OS)は、外部メモリ1034に記録しておき、ゲーム装置の起動後に外部メモリからその都度読み出して実行するようにしても良い。表示部1010に表示すべき画像は制御部1020によって生成され、あるいはシステムメモリ1030、ROM1032、外部メモリ1034に格納されている。
【0021】
制御部1020には、操作者からの操作入力に基づいてゲーム装置に操作指示信号を送信する操作入力部1060が接続されている。
【0022】
制御部1020には、他のゲーム装置や情報処理装置等の外部機器との間で、通信回線等の通信手段によって通信するための通信I/F1040(通信手段)が接続されている。
【0023】
ゲーム装置1000には、ゲームプログラム、エミュレーションプログラム(エミュレータ手段)およびエミュレータ選択実行ソフトウエア(エミュレータ選択手段)が、外部メモリ1034からロードされ、あるいは通信I/F1040を介して他のゲーム装置や情報処理装置等の外部機器からダウンロードされ、システムメモリ1030(記憶手段)に格納される。
【0024】
図2に示すように、複数のゲーム装置1001〜1004をLANを通じてサーバSVに接続し、さらにインターネットINを介して接続された遠隔のゲーム装置1005〜1007をサーバSVに接続してもよい。これによって、遠隔ゲーム装置のデータの送受信が可能となり、対戦ゲームが行えるようになる。尚、サーバSVを置かず、ゲーム装置同士で直接データの送受信を行うようにしても良い。
【0025】
図3(a)および(b)は、図1のゲーム装置におけるハードウエアとソフトウエアの関係を示す図、図4は、図1のゲーム装置におけるソフトウエアのメモリマップを示す図である。
【0026】
図3(a)および(b)において、例えばゲーム装置1000には、2個のエミュレータソフトウェアA、B(第1、第2エミュレータ手段)がシステムメモリ1030に記憶されるとともに、各エミュレータA、Bによってそれぞれ実行されるゲームA1、B1のROMイメージも記憶されている。エミュレータA、BおよびゲームA1、B1はそれぞれ異なるハートウエアで実行される対応した内容のソフトウエアである。
【0027】
ゲーム装置1000は、電源がオンされたときまたはリセット入力がされたとき、制御部1020内のCPUによってROM1032内の起動プログラムを実行し、ゲーム装置1000の初期設定を行う。この初期設定の終了後に、ROM1032または外部メモリ1034内の管理用ソフトウェア(OS)を読み出してこれを実行する。管理用ソフトウェア(OS)は、ゲーム等のアプリケーションプログラムやデータのシステムメモリ1030や通信I/F1040への入出力制御や、その際のシステムメモリ1030内への格納領域の確保や、複数のアプリケーションプログラムの実行の優先順位等のスケジュール管理の設定を行なう。その後、本発明のエミュレータ等のアプリケーション等がシステムメモリに読み込むたびに、必要なメモリ領域の確保や実行手順の設定を行なう。即ち、エミュレータA、Bは管理用ソフトウエアOSによって制御され、管理用ソフトウエアOSはゲーム装置1000のハードウエアHW(図1)によって実行、制御される。
【0028】
さらにゲーム装置1000にはエミュレータAまたはBを選択的に実行するエミュレータ選択実行ソフトウエアSWがシステムメモリ1030に記憶され、エミュレータ選択実行ソフトウエアSWは、管理用ソフトウエアOSによって制御される。尚、図3(a)は、管理用ソフトウェア(OS)上でエミュレータA、Bおよびエミュレータ選択実行ソフトウェアSWが実行、制御されているが、本発明においては、実行されるアプリケーションソフトウェアが固定的に決まっている場合、管理用ソフトウェア(OS)の機能を省略することも可能である。また同様に、図3(b)のように、管理用ソフトウェア(OS)がエミュレータ選択実行ソフトウェアSWの機能を含むようにしても良い。
【0029】
図4において、ゲーム装置1000にインストールされたエミュレータA、B、ゲームA1、B1はシステムメモリ1030に格納され、例えばアドレスADa1〜ADa2にエミュレータA、アドレスADb1〜ADb2にエミュレータB、アドレスADa11〜ADa12にゲームA1、アドレスADb11〜ADb12にゲームB1が格納される。また、アドレスADc1から始まるアドレス空間にエミュレータ選択実行ソフトウェアSWが格納され、アドレスADd1から始まるアドレス空間に管理用ソフトウェア(OS)が格納される。本発明では、システムメモリ1030にエミュレータA、BやゲームA1、B1、エミュレータ選択実行ソフトウェアSWを格納した状態で、各ソフトウェアを実行、制御する。
【0030】
エミュレータAは、例えば図5に示す、CONSUMER(例えば家庭用ゲームのハードウェア)という名称のハードウエアに対応し、エミュレータBは、例えば図6に示す、ARCADE(例えば業務用ゲームのハードウエア)という名称のハードウエアに対応する。
【0031】
図3の構成において、エミュレータA、Bおよびエミュレータ選択実行ソフトウエアSWによってゲームプログラム実行プログラムが構成される。
【0032】
図5は、エミュレータ選択実行ソフトウエアSWにおけるシステムメニューの画面P1を示し、図6は同ソフトウエアSWにおけるシステムメニューの画面P2を示し、図7は同ソフトウエアSWにおいて、エミュレータAを、エミュレータBに切り替える画面P3を示す。
【0033】
図5、図6のシステムメニューには、ハードウエアを選択する「MACHINE」、オプションメニュー「OPTION」、ゲーム記録を表示する「ARCHIVE」、表示部1010の設定を行う「DISPLAY SETTING」、ゲームを実行するための「CREDIT」、エミュレータAの設定をリセットする「RESET」、ゲームソフトウエアを初期画面(タイトル画面)の状態に戻す「RETURN TO TITLE」、エミュレータを終了する「EXIT」の各メニューが設けられている。そして、「MACHINE」として図5では「CONSUMER」、図6では「ARCADE」が選択されている。
【0034】
図7のシステムメニューでは、「MACHINE」を「ARCADE」から「CONSUMER」に切り替えた際に、ヘルプメッセージが表示された状態を示す。ヘルプメッセージには、例えば「マシンの切り替えを行います。OPTIONとARCHIVE、DISPLAY SETTINGの内容も変わります。」と表示される。
【0035】
エミュレータA、Bは操作入力部1060における所定のキー、例えば「F2」等ファンクションキーによって、いつでも動作を中断でき、その後「F1」キー等によって、中断個所から動作を再開できる。中断時にはメニューP1、P2あるいはP3が表示され、種々の設定変更が可能である。エミュレータソフトウェアの実行を中断するとは、エミュレータソフトウェアによって解析されているゲームソフトウェアの解析を中断することであり、本発明では、中断した際のゲームソフトウェアの解析箇所を示すアドレスや、プログラムをハングアップさせずに正しく動作させるために必要な、エミュレーションプログラムの動作パラメータや解析した結果のパラメータが格納されたシステムメモリの内容等を保持しておくようにしている。このときエミュレータ選択実行ソフトウエアSWはパラメータ保持手段として機能する。
【0036】
図8は、エミュレータ選択実行ソフトウエアSWの動作を示すタイミング図であり、図9は、エミュレータ選択実行ソフトウエアの動作を示すフローチャートである。
【0037】
図8において、ゲームA1の流れを左側に下向きに配列した画面PA1〜PA6で示し、ゲームB1の対応する流れを右側に下向きに配列した画面PB1〜PB6で示す。図8では、エミュレータ選択実行ソフトウエアSWによって、まずエミュレータAが選択されて、ゲームA1の解析が実行され、画面PA1、PA2等のようにゲームが実行されていく。ここで、画面PA1〜PA3が実行されたところで、遊戯者の操作指示によってエミュレータAの実行が中断される。ここで、中断した際のゲームソフトウェアA1の解析箇所を示すアドレスや、解析した結果のパラメータ等が格納されたシステムメモリの内容等を保持しておく。そしてエミュレータ選択実行ソフトウエアSWによって、エミュレータAを中断したままエミュレータBによりゲームB1の解析が実行される。エミュレータの移行に際して画面P1、P2が表示される。
【0038】
次に、エミュレータBはゲームB1の解析を実行し、画面PB1、PB2等のようにゲームが実行されていく。ここでまた、画面PB1〜PB3が実行されたところで、遊戯者の操作指示によってエミュレータBの実行が中断される。ここで、中断した際のゲームソフトウェアB1の解析箇所を示すアドレスや、解析した結果等のパラメータが格納されたシステムメモリの内容等を保持しておく。更に、エミュレータAの実行が中断されたときのゲームソフトウェアA1の解析箇所を示すアドレスや、解析した結果等のパラメータが格納されたシステムメモリの内容等がそのまま保持された状態であるため、エミュレータ選択実行ソフトウエアSWによって、エミュレータBを中断したままエミュレータAの実行が中断された状態から再開される。エミュレータの移行に際して画面P2、P1が表示される。
【0039】
次に、エミュレータAによってゲームA1を実行し、画面PB3〜PB5が実行されたところで、遊戯者の操作指示によってエミュレータBが中断される。ここでまた、中断した際のゲームソフトウェアA1の解析箇所を示すアドレスや、解析した結果等のパラメータが格納されたシステムメモリの内容等を保持しておく。更にまた、エミュレータBの実行が中断されたときのゲームソフトウェアB1の解析箇所を示すアドレスや、解析した結果等のパラメータが格納されたシステムメモリの内容等がそのまま保持された状態であるため、エミュレータ選択実行ソフトウエアSWによって、エミュレータAを中断したままエミュレータBの実行が再開される。エミュレータの移行に際して画面P1、P3が表示される。
【0040】
次に、エミュレータBによってゲームB1を実行し、画面PB3〜PB6が実行される。
【0041】
このように、異なるハードウエアに対応する複数のゲームソフトウエアを、中断した状態を保持したまま切り替え実行することによって、それぞれのゲームソフトウエアの仕様の比較が可能となる。
【0042】
図9において、エミュレータ選択実行ソフトウエアSWは以下の各ステップを実行するプログラムコードを含む。尚、このステップにおいては、既にゲームA1またはB1のいずれかが選択されてエミュレーションプログラムが実行されている状態でのプログラムステップとして説明する。
【0043】
ステップS801:まず「EXIT」によってエミュレータ選択実行ソフトウエアSWを終了すべきか否か判断する。終了すべきときは、ステップS807に進み、そうでないときはステップS802に進む。
【0044】
ステップS802:「F1」キー等の所定の操作入力によりエミュレータAまたはBの処理中断が指示されたか否かを判断する。中断されたと判断したときはステップS803に進み、所定の操作入力がなく中断しないと判断されたときはステップS801に戻る。
【0045】
ステップS803:実行中のエミュレータの処理を中断し、ステップS804に進む。ここで、エミュレータの処理を中断するとは、中断した際のゲームソフトウェアの解析箇所を示すアドレスや、解析した結果のパラメータが格納されたシステムメモリの内容等をその状態のまま保持しておくことである。
【0046】
ステップS804:「MACHINE」によってエミュレータ切り替えの指示が入力されたか否か判断する。指示入力によりエミュレータを切り替えると判断されたときはステップS805に進み、指示入力が無く切り替えないそうでないと判断されたときはステップS806に進む。
【0047】
ステップS805:エミュレータの切り替えを実行し、ステップS801に戻る。
【0048】
ステップS806:所定の操作入力によるエミュレータ実行再開を待ち、再開するときはステップS801に戻る。
【0049】
ステップS807:終了処理を実行し、そのまま処理を終了する。
【0050】
以上の処理では、ゲームA1、B1は異なるハードウエアで実行された同種のゲームソフトウエアであったが、全く異なるゲームソフトウエアを切り替え実行することも勿論可能である。
【実施例2】
【0051】
図10は、本発明に係るゲーム装置の実施例2を示すタイミング図、図11は、図10のゲーム装置におけるエミュレータ選択実行ソフトウエアの動作を示すフローチャートである。
【0052】
実施例2は、エミュレータ切り替えに際して、ゲームソフトウエアの対応するシーンからゲームを実行する。エミュレーションによるゲームの解析および中断のシーケンスは実施例1と同様の動作手順であるが、実施例2では、ゲームの進行を示すパラメータを保持し、切り替え先のゲームソフトウェアの対応するパラメータに保持したパラメータを代入してゲームの進行を引き継ぐようにしている。ここで、ゲームの進行を示すパラメータとは、プログラムをハングアップさせずに正しく動作させるために必要なエミュレーションプログラムの動作パラメータとは異なり、ゲームA1またはB1を解析した結果として発生するパラメータで、ゲームA1またはB1のゲーム進行をその状態から引き続き進行させるために必要なパラメータである。例えば、シューティングゲームの場合は、ステージ数、プレーヤキャラクタ数(ゲーム再開回数)、プレーヤキャラクタの体力や武器、強さ等を示すパラメータ等であり、ロールプレイングゲームやアドベンチャーゲームでは、ゲーム進行フラグやプレーヤキャラクタの体力や武器、強さ等を示すパラメータ等である。
【0053】
エミュレータ切り替えに際して、エミュレータ選択実行ソフトウエアSWは、そのとき実行されていたゲームから引き継ぐべきパラメータを抽出するパラメータ抽出手段、および抽出されたパラメータを切り替え実行されるゲームに代入するパラメータ代入手段として機能し、さらに新たなゲームプログラム解析を実行させるエミュレータ再開手段として機能する。
【0054】
図10に示すように、図8と同様のゲームA1、B1の流れにおいて、エミュレータ選択実行ソフトウエアSWによって、まずエミュレータAが選択されて、ゲームA1が実行され、画面PA1〜PA3が実行されたところで、操作入力によってエミュレータAの中断が指示される。このとき、中断した際のゲームA1の解析箇所を示すアドレスや、解析した結果等のパラメータが格納されたシステムメモリの内容等を保持してもよいが、解析した結果のパラメータとは別に、ゲームの進行を示すパラメータを抽出し、保持しておく。何故ならば、次にゲームA1が再開されるときは、中断した箇所から再開されるとは限らず、ゲームB1の進行状態を引き継いでエミュレーションプログラムを初期状態から実行させるため、エミュレーションプログラムそのものを中断状態からハングアップさせずに正しく動作させる必要がなく、エミュレーションプログラムの動作パラメータは保持しておく必要がないためである。そして、エミュレータ選択実行ソフトウエアSWによって、エミュレータAを中断または終了したままエミュレータB1の実行が開始される。
【0055】
エミュレータの移行に際して図8ではゲームB1の最初の画面P1が実行されたが、実施例2では、ゲームA1の中断時に保持しておいたゲームの進行を示すパラメータをゲームB1の対応するパラメータが記憶されているメモリ領域に代入する。この状態でゲームB1をエミュレータBが解析を始めると、ゲームB1は、ゲームA1の中断した状態に対応する箇所から実行される。図10においては画面PA3に対応する画面PB3の実行に移る。エミュレータ移行時には、図8と同様画面P1、P2が表示される。
【0056】
その後エミュレータBによってゲームB1の画面PB3から画面PB5終了時点までが実行され、操作入力によって中断が指示されると、ゲームB1のゲームの進行を示すパラメータを抽出して保持し、ゲームA1の対応するパラメータが記憶されているメモリ領域に代入する。エミュレータ移行処理によって、エミュレータAを実行すると、ゲームB1のPB5に対応するPA5の終了時点からゲームA1の解析が始まり、続いてPA6の解析が実行される。エミュレータ移行時には、図8と同様画面P2、P1が表示される。
【0057】
図11において、エミュレータ選択実行ソフトウエアSWは以下の各ステップを実行するプログラムコードを含む。尚、このステップにおいても、既にゲームA1またはB1のいずれかが選択されてエミュレーションプログラムが実行されている状態でのプログラムステップとして説明する。
【0058】
ステップS1001:まず「EXIT」によってエミュレータ選択実行ソフトウエアSWを終了すべきか否か判断する。終了すべきときは、ステップS1008に進み、そうでないときはステップS1002に進む。
【0059】
ステップS1002:「F1」キー等の所定の操作入力によりによりエミュレータAまたはBの処理中断が指示されたか否かを判断する。中断されたと判断したときはステップS1003に進み、中断しないと判断されたときはステップS1001に戻る。
【0060】
ステップS1003:実行中のエミュレータの処理を中断し、ステップS1004に進む。
【0061】
ステップS1004:「MACHINE」によってエミュレータ切り替えの指示が入力されたか否か判断する。エミュレータを切り替えるべきときはステップS1005に進み、そうでないときはステップS1007に進む。
【0062】
ステップS1005:実行されていたゲームのパラメータ、例えばクリアしたステージ、取得アイテム、パワー等、ゲームに状況を再現するのに必要なパラメータを保存し、ステップS1006に進む。ここにパラメータはシステムメモリ1030に保存される。
【0063】
ステップS1006:ステップS1006で保存されたパラメータをゲームB1の対応するパラメータが記憶されたメモリ領域に代入し、エミュレータBを実行し、ステップS1001に戻る。これによって一方のエミュレータで実行されたゲームの状況を他のエミュレータで実行されるゲームにおいて対応するシーンやゲーム状態で再現でき、異なるハードウエアに対応する対応ゲームの対応位置の状況を比較できる。
【0064】
ステップS1007:エミュレータ実行再開を待ち、再開するときはステップS1001に戻る。
【0065】
ステップS1008:終了処理を実行し、そのまま処理を終了する。
【0066】
以上のとおり、エミュレータ切り替えに際して、ゲームソフトウエアの対応位置を実行するので、対応した状況について、対応ゲームの家庭用ゲーム機バージョンとアーケードゲーム機バージョンの比較等を容易に行え、また、どうしてもクリアできないシーン等を、他のゲームの対応するシーンに切り替えて実行することで迂回して遊ぶ等、過去に遊んだゲームに新たな遊び方を提供することができるようになる。
【図面の簡単な説明】
【0067】
【図1】本発明に係るゲーム装置の実施例1を示す正面図である。(実施例1、2)
【図2】本発明に係るゲーム装置をネットワークに接続した状態を示すブロック図である。(実施例1、2)
【図3(a)】図1のゲーム装置におけるハードウエアとソフトウエアの関係を示す図である。(実施例1、2)
【図3(b)】図1のゲーム装置におけるハードウエアとソフトウエアの関係を示す図である。(実施例1、2)
【図4】図1のゲーム装置におけるソフトウエアのメモリマップを示す図である。(実施例1、2)
【図5】図1のゲーム装置におけるエミュレータ選択実行ソフトウエアの画面を示す図である。(実施例1、2)
【図6】図1のゲーム装置におけるエミュレータ選択実行ソフトウエアの他の画面を示す図である。(実施例1、2)
【図7】図1のゲーム装置におけるエミュレータ選択実行ソフトウエアのさらに他の画面を示す図である。(実施例1、2)
【図8】図1のゲーム装置におけるエミュレータ選択実行ソフトウエアの動作を示すタイミング図である。(実施例1)
【図9】図1のゲーム装置におけるエミュレータ選択実行ソフトウエアの動作を示すフローチャートである。(実施例1)
【図10】本発明に係るゲーム装置の実施例2を示すタイミング図である。(実施例2)
【図11】図1のゲーム装置におけるエミュレータ選択実行ソフトウエアの動作を示すフローチャートである。(実施例2)
【符号の説明】
【0068】
1000〜1007 ゲーム装置
1010 表示部
1012 表示制御部
1020 制御部
1030 システムメモリ
1032 ROM
1034 外部メモリ
1040 通信I/F
1060 操作入力部
1080 タイマ
【技術分野】
【0001】
本発明は、ハードウエアの構成(アーキテクチャ)が異なるゲーム装置で実行されるゲームプログラムを解析して実行し得るゲーム装置、ゲームプログラム実行(解析)プログラムに関する。
【背景技術】
【0002】
現在、ゲームプログラムを実行するためのゲーム装置等のハードウエアは極めて高機能になっているが、そのハードウエアによって実行されるプログラムは、そのハードウエアに固有の仕様に合わせて作られている場合、ハードウエアが高機能であっても、異なる構成のハードウエア用に作られたプログラムは実行できない。
【0003】
一方、まだ画像表示が充分に行えなかった時代のハードウエア用に作られたゲームプログラムであっても、ハードウエア機能をカバーして余りある巧みな画像表現、演出等が施されたもの、あるいは独特の味わいのあるものも多く、ゲームファンの間で、現在でも高い人気を保持している。
【0004】
そこで特許文献1記載のゲームシステムでは、エミュレータによって旧ハードウエアの機能を現在のハードウエア上で再現し、旧ハードウエアで動作する1つのゲームプログラムのバイナリデータを解析して旧ハードウエアで実行されている状態と同様プログラム動作を行うものに関する発明が開示されている。
【0005】
【特許文献1】特開2001−340640号公報
【発明の開示】
【発明が解決しようとする課題】
【0006】
ゲームファンにとっては、1つのゲームプログラムがハードウエアごとに、その特性に応じた多様な特徴を発揮した移植がなされることも極めて興味深いポイントであり、個々のハードウエア用に作られた同様の仕様のゲームプログラムを比較したいという要求がある。しかし特許文献1のゲームシステムは、あるハードウエアに対応して作成されたエミュレータプログラムによって、そのハードウエアによって実行されるプログラムを逐次解析して実行しているため、そのような要求には応えていない。
【0007】
本発明はこのような従来の問題点を解消すべく創案されたもので、複数種ハードウエア用に作られたゲームプログラムを実行途中で適宜切り替えて実行し、遊戯者にこれらを比較した遊びができるようにすることを目的とする。
【課題を解決するための手段】
【0008】
本発明に係るゲーム装置は、第1のハードウエアで実行される第1のゲームプログラムと、第2のハードウエアで実行される第2のゲームプログラムとが格納された記憶手段と、前記第1のハードウエア構成をソフトウェアで再現して前記第1のゲームプログラムの解析を実行する第1エミュレータ手段と、前記第2のハードウエア構成をソフトウェアで再現して前記第2のゲームプログラムの解析を実行する第2エミュレータ手段と、前記第1または第2エミュレータを選択的に実行させるエミュレータ選択手段と、前記第1または第2エミュレータの実行を中断したときに、当該実行していたエミュレータの実行状態およびゲームプログラムの解析状態のパラメータを前記記憶手段にそのまま保持するパラメータ保持手段と、を有し、前記第1エミュレータ手段および第2エミュレータ手段は、前記エミュレータ選択手段により、前記第1または第2エミュレータの一方から他方に切り替えてエミュレータの実行を再開するときに、前記パラメータ保持手段により保持された前記パラメータに基づいて前記第1のゲームプログラムまたは第2のゲームプログラムの解析を実行する。
【0009】
これによって、複数種ハードウエア用に作られたゲームプログラムを実行途中で適宜切り替えて実行し、遊戯者にこれらを比較した遊びができるようになる。
【0010】
本発明に係る情報処理装置は、第1のハードウエアで実行される第1のゲームプログラムと、第2のハードウエアで実行される第2のゲームプログラムとが格納された記憶手段と、前記第1のハードウエア構成をソフトウェアで再現して前記第1のゲームプログラムの解析を実行する第1エミュレータ手段と、前記第2のハードウエア構成をソフトウェアで再現して前記第2のゲームプログラムの解析を実行する第2エミュレータ手段と、前記第1または第2エミュレータを選択的に実行させるエミュレータ選択手段と、前記第1または第2エミュレータの実行を中断したときに、当該実行していたエミュレータにより解析されたゲームプログラムにおけるゲームの進行状態のパラメータを抽出するパラメータ抽出手段と、前記エミュレータ選択手段により、前記第1または第2エミュレータの一方から他方に切り替えてエミュレータの実行を開始するときに、前記パラメータ抽出手段により抽出された前記パラメータを、前記他方のゲームプログラムの対応するパラメータに代入するパラメータ代入手段とを有する。
【0011】
これによって、複数種ハードウエア用に作られたゲームプログラムを実行途中で適宜切り替えて実行し、遊戯者にこれらを比較した遊びができ、ゲームプログラムの対応した状況の比較も可能である。
【0012】
本発明に係るゲームプログラム解析プログラムは、第1のハードウエアで実行される第1のゲームプログラムと、第2のハードウエアで実行される第2のゲームプログラムとが格納された記憶手段と、前記第1のハードウエア構成をソフトウェアで再現して前記第1のゲームプログラムの解析を実行する第1エミュレータ手段と、前記第2のハードウエア構成をソフトウェアで再現して前記第2のゲームプログラムの解析を実行する第2エミュレータ手段と、前記第1または第2エミュレータを選択的に実行させるエミュレータ選択手段と、前記第1または第2エミュレータの実行を中断したときに、当該実行していたエミュレータの実行状態およびゲームプログラムの解析状態のパラメータを前記記憶手段にそのまま保持するパラメータ保持手段と、前記エミュレータ選択手段により、前記第1または第2エミュレータの一方から他方に切り替えてエミュレータの実行を再開するときに、前記パラメータ保持手段により保持された前記パラメータに基づいて前記第1のゲームプログラムまたは第2のゲームプログラムの解析を実行させるエミュレータ再開手段として情報処理装置を機能させる。
【0013】
これによって、複数種ハードウエア用に作られたゲームプログラムを実行途中で適宜切り替えて実行し、遊戯者にこれらを比較した遊びができるようになる。
【0014】
本発明に係るゲームプログラム解析プログラムは、第1のハードウエアで実行される第1のゲームプログラムと、第2のハードウエアで実行される第2のゲームプログラムとが格納された記憶手段と、前記第1のハードウエア構成をソフトウェアで再現して前記第1のゲームプログラムの解析を実行する第1エミュレータ手段と、前記第2のハードウエア構成をソフトウェアで再現して前記第2のゲームプログラムの解析を実行する第2エミュレータ手段と、前記第1または第2エミュレータを選択的に実行させるエミュレータ選択手段と、前記第1または第2エミュレータの実行を中断したときに、当該実行していたエミュレータにより解析されたゲームプログラムにおけるゲームの進行状態のパラメータを抽出するパラメータ抽出手段と、前記エミュレータ選択手段により、前記第1または第2エミュレータの一方から他方に切り替えてエミュレータの実行を開始するときに、前記パラメータ抽出手段により抽出された前記パラメータを、前記他方のゲームプログラムの対応するパラメータに代入するパラメータ代入手段として情報処理装置を機能させる。
【0015】
これによって、複数種ハードウエア用に作られたゲームプログラムを実行途中で適宜切り替えて実行し、遊戯者にこれらを比較した遊びができ、ゲームプログラムの対応した状況の比較も可能である。
【発明の効果】
【0016】
本発明によれば、複数種のハードウエア用に作られたゲームプログラムを実行途中で切り替えながら実行できるので、ゲームの仕様等の比較が容易になり、過去に遊んだ類似するゲームまたは移植されたゲームの同様のシーンの比較を行うといったような新たな遊びを提供できるようになる。
【発明を実施するための最良の形態】
【0017】
次に本発明に係る通信装置の好適な実施例を図面に基づいて説明する。
【実施例1】
【0018】
図1は、本発明に係るゲーム装置の実施例1を示す正面図、図2は、本発明に係るゲーム装置をネットワークに接続した状態を示すブロック図である。
【0019】
図1において、ゲーム装置1000は例えば汎用コンピュータであり、表示すべき画像に基づいて表示部1010を駆動して画像を表示する表示制御部1012と有し、カラーLCD(液晶ディスプレイ)等の表示部(表示手段)1010等を備え、または接続される。
【0020】
表示制御部1012には、ゲーム装置1000全体を制御し、CPUや各ブロックとの情報の入出力を行うインターフェース(図示しない)等で構成する制御部1020が接続され、制御部1020には、システムメモリ1030、ROM1032、メモリカード等外部メモリ1034が接続されている。ROM1032は、ゲーム装置の起動時に最初に動作してゲーム装置の初期設定を行う起動プログラムやオペレーティングシステム(OS)等が格納されている。また、外部メモリ1034は、本発明のエミュレーションプログラムや、そのエミュレーションプログラムによって解析されるゲームのプログラムデータを格納しており、マスクROMやフラッシュROM、磁気および/または光学ディスク等のゲーム装置に対して着脱可能な記録媒体で構成されている。尚、オペレーティングシステム(OS)は、外部メモリ1034に記録しておき、ゲーム装置の起動後に外部メモリからその都度読み出して実行するようにしても良い。表示部1010に表示すべき画像は制御部1020によって生成され、あるいはシステムメモリ1030、ROM1032、外部メモリ1034に格納されている。
【0021】
制御部1020には、操作者からの操作入力に基づいてゲーム装置に操作指示信号を送信する操作入力部1060が接続されている。
【0022】
制御部1020には、他のゲーム装置や情報処理装置等の外部機器との間で、通信回線等の通信手段によって通信するための通信I/F1040(通信手段)が接続されている。
【0023】
ゲーム装置1000には、ゲームプログラム、エミュレーションプログラム(エミュレータ手段)およびエミュレータ選択実行ソフトウエア(エミュレータ選択手段)が、外部メモリ1034からロードされ、あるいは通信I/F1040を介して他のゲーム装置や情報処理装置等の外部機器からダウンロードされ、システムメモリ1030(記憶手段)に格納される。
【0024】
図2に示すように、複数のゲーム装置1001〜1004をLANを通じてサーバSVに接続し、さらにインターネットINを介して接続された遠隔のゲーム装置1005〜1007をサーバSVに接続してもよい。これによって、遠隔ゲーム装置のデータの送受信が可能となり、対戦ゲームが行えるようになる。尚、サーバSVを置かず、ゲーム装置同士で直接データの送受信を行うようにしても良い。
【0025】
図3(a)および(b)は、図1のゲーム装置におけるハードウエアとソフトウエアの関係を示す図、図4は、図1のゲーム装置におけるソフトウエアのメモリマップを示す図である。
【0026】
図3(a)および(b)において、例えばゲーム装置1000には、2個のエミュレータソフトウェアA、B(第1、第2エミュレータ手段)がシステムメモリ1030に記憶されるとともに、各エミュレータA、Bによってそれぞれ実行されるゲームA1、B1のROMイメージも記憶されている。エミュレータA、BおよびゲームA1、B1はそれぞれ異なるハートウエアで実行される対応した内容のソフトウエアである。
【0027】
ゲーム装置1000は、電源がオンされたときまたはリセット入力がされたとき、制御部1020内のCPUによってROM1032内の起動プログラムを実行し、ゲーム装置1000の初期設定を行う。この初期設定の終了後に、ROM1032または外部メモリ1034内の管理用ソフトウェア(OS)を読み出してこれを実行する。管理用ソフトウェア(OS)は、ゲーム等のアプリケーションプログラムやデータのシステムメモリ1030や通信I/F1040への入出力制御や、その際のシステムメモリ1030内への格納領域の確保や、複数のアプリケーションプログラムの実行の優先順位等のスケジュール管理の設定を行なう。その後、本発明のエミュレータ等のアプリケーション等がシステムメモリに読み込むたびに、必要なメモリ領域の確保や実行手順の設定を行なう。即ち、エミュレータA、Bは管理用ソフトウエアOSによって制御され、管理用ソフトウエアOSはゲーム装置1000のハードウエアHW(図1)によって実行、制御される。
【0028】
さらにゲーム装置1000にはエミュレータAまたはBを選択的に実行するエミュレータ選択実行ソフトウエアSWがシステムメモリ1030に記憶され、エミュレータ選択実行ソフトウエアSWは、管理用ソフトウエアOSによって制御される。尚、図3(a)は、管理用ソフトウェア(OS)上でエミュレータA、Bおよびエミュレータ選択実行ソフトウェアSWが実行、制御されているが、本発明においては、実行されるアプリケーションソフトウェアが固定的に決まっている場合、管理用ソフトウェア(OS)の機能を省略することも可能である。また同様に、図3(b)のように、管理用ソフトウェア(OS)がエミュレータ選択実行ソフトウェアSWの機能を含むようにしても良い。
【0029】
図4において、ゲーム装置1000にインストールされたエミュレータA、B、ゲームA1、B1はシステムメモリ1030に格納され、例えばアドレスADa1〜ADa2にエミュレータA、アドレスADb1〜ADb2にエミュレータB、アドレスADa11〜ADa12にゲームA1、アドレスADb11〜ADb12にゲームB1が格納される。また、アドレスADc1から始まるアドレス空間にエミュレータ選択実行ソフトウェアSWが格納され、アドレスADd1から始まるアドレス空間に管理用ソフトウェア(OS)が格納される。本発明では、システムメモリ1030にエミュレータA、BやゲームA1、B1、エミュレータ選択実行ソフトウェアSWを格納した状態で、各ソフトウェアを実行、制御する。
【0030】
エミュレータAは、例えば図5に示す、CONSUMER(例えば家庭用ゲームのハードウェア)という名称のハードウエアに対応し、エミュレータBは、例えば図6に示す、ARCADE(例えば業務用ゲームのハードウエア)という名称のハードウエアに対応する。
【0031】
図3の構成において、エミュレータA、Bおよびエミュレータ選択実行ソフトウエアSWによってゲームプログラム実行プログラムが構成される。
【0032】
図5は、エミュレータ選択実行ソフトウエアSWにおけるシステムメニューの画面P1を示し、図6は同ソフトウエアSWにおけるシステムメニューの画面P2を示し、図7は同ソフトウエアSWにおいて、エミュレータAを、エミュレータBに切り替える画面P3を示す。
【0033】
図5、図6のシステムメニューには、ハードウエアを選択する「MACHINE」、オプションメニュー「OPTION」、ゲーム記録を表示する「ARCHIVE」、表示部1010の設定を行う「DISPLAY SETTING」、ゲームを実行するための「CREDIT」、エミュレータAの設定をリセットする「RESET」、ゲームソフトウエアを初期画面(タイトル画面)の状態に戻す「RETURN TO TITLE」、エミュレータを終了する「EXIT」の各メニューが設けられている。そして、「MACHINE」として図5では「CONSUMER」、図6では「ARCADE」が選択されている。
【0034】
図7のシステムメニューでは、「MACHINE」を「ARCADE」から「CONSUMER」に切り替えた際に、ヘルプメッセージが表示された状態を示す。ヘルプメッセージには、例えば「マシンの切り替えを行います。OPTIONとARCHIVE、DISPLAY SETTINGの内容も変わります。」と表示される。
【0035】
エミュレータA、Bは操作入力部1060における所定のキー、例えば「F2」等ファンクションキーによって、いつでも動作を中断でき、その後「F1」キー等によって、中断個所から動作を再開できる。中断時にはメニューP1、P2あるいはP3が表示され、種々の設定変更が可能である。エミュレータソフトウェアの実行を中断するとは、エミュレータソフトウェアによって解析されているゲームソフトウェアの解析を中断することであり、本発明では、中断した際のゲームソフトウェアの解析箇所を示すアドレスや、プログラムをハングアップさせずに正しく動作させるために必要な、エミュレーションプログラムの動作パラメータや解析した結果のパラメータが格納されたシステムメモリの内容等を保持しておくようにしている。このときエミュレータ選択実行ソフトウエアSWはパラメータ保持手段として機能する。
【0036】
図8は、エミュレータ選択実行ソフトウエアSWの動作を示すタイミング図であり、図9は、エミュレータ選択実行ソフトウエアの動作を示すフローチャートである。
【0037】
図8において、ゲームA1の流れを左側に下向きに配列した画面PA1〜PA6で示し、ゲームB1の対応する流れを右側に下向きに配列した画面PB1〜PB6で示す。図8では、エミュレータ選択実行ソフトウエアSWによって、まずエミュレータAが選択されて、ゲームA1の解析が実行され、画面PA1、PA2等のようにゲームが実行されていく。ここで、画面PA1〜PA3が実行されたところで、遊戯者の操作指示によってエミュレータAの実行が中断される。ここで、中断した際のゲームソフトウェアA1の解析箇所を示すアドレスや、解析した結果のパラメータ等が格納されたシステムメモリの内容等を保持しておく。そしてエミュレータ選択実行ソフトウエアSWによって、エミュレータAを中断したままエミュレータBによりゲームB1の解析が実行される。エミュレータの移行に際して画面P1、P2が表示される。
【0038】
次に、エミュレータBはゲームB1の解析を実行し、画面PB1、PB2等のようにゲームが実行されていく。ここでまた、画面PB1〜PB3が実行されたところで、遊戯者の操作指示によってエミュレータBの実行が中断される。ここで、中断した際のゲームソフトウェアB1の解析箇所を示すアドレスや、解析した結果等のパラメータが格納されたシステムメモリの内容等を保持しておく。更に、エミュレータAの実行が中断されたときのゲームソフトウェアA1の解析箇所を示すアドレスや、解析した結果等のパラメータが格納されたシステムメモリの内容等がそのまま保持された状態であるため、エミュレータ選択実行ソフトウエアSWによって、エミュレータBを中断したままエミュレータAの実行が中断された状態から再開される。エミュレータの移行に際して画面P2、P1が表示される。
【0039】
次に、エミュレータAによってゲームA1を実行し、画面PB3〜PB5が実行されたところで、遊戯者の操作指示によってエミュレータBが中断される。ここでまた、中断した際のゲームソフトウェアA1の解析箇所を示すアドレスや、解析した結果等のパラメータが格納されたシステムメモリの内容等を保持しておく。更にまた、エミュレータBの実行が中断されたときのゲームソフトウェアB1の解析箇所を示すアドレスや、解析した結果等のパラメータが格納されたシステムメモリの内容等がそのまま保持された状態であるため、エミュレータ選択実行ソフトウエアSWによって、エミュレータAを中断したままエミュレータBの実行が再開される。エミュレータの移行に際して画面P1、P3が表示される。
【0040】
次に、エミュレータBによってゲームB1を実行し、画面PB3〜PB6が実行される。
【0041】
このように、異なるハードウエアに対応する複数のゲームソフトウエアを、中断した状態を保持したまま切り替え実行することによって、それぞれのゲームソフトウエアの仕様の比較が可能となる。
【0042】
図9において、エミュレータ選択実行ソフトウエアSWは以下の各ステップを実行するプログラムコードを含む。尚、このステップにおいては、既にゲームA1またはB1のいずれかが選択されてエミュレーションプログラムが実行されている状態でのプログラムステップとして説明する。
【0043】
ステップS801:まず「EXIT」によってエミュレータ選択実行ソフトウエアSWを終了すべきか否か判断する。終了すべきときは、ステップS807に進み、そうでないときはステップS802に進む。
【0044】
ステップS802:「F1」キー等の所定の操作入力によりエミュレータAまたはBの処理中断が指示されたか否かを判断する。中断されたと判断したときはステップS803に進み、所定の操作入力がなく中断しないと判断されたときはステップS801に戻る。
【0045】
ステップS803:実行中のエミュレータの処理を中断し、ステップS804に進む。ここで、エミュレータの処理を中断するとは、中断した際のゲームソフトウェアの解析箇所を示すアドレスや、解析した結果のパラメータが格納されたシステムメモリの内容等をその状態のまま保持しておくことである。
【0046】
ステップS804:「MACHINE」によってエミュレータ切り替えの指示が入力されたか否か判断する。指示入力によりエミュレータを切り替えると判断されたときはステップS805に進み、指示入力が無く切り替えないそうでないと判断されたときはステップS806に進む。
【0047】
ステップS805:エミュレータの切り替えを実行し、ステップS801に戻る。
【0048】
ステップS806:所定の操作入力によるエミュレータ実行再開を待ち、再開するときはステップS801に戻る。
【0049】
ステップS807:終了処理を実行し、そのまま処理を終了する。
【0050】
以上の処理では、ゲームA1、B1は異なるハードウエアで実行された同種のゲームソフトウエアであったが、全く異なるゲームソフトウエアを切り替え実行することも勿論可能である。
【実施例2】
【0051】
図10は、本発明に係るゲーム装置の実施例2を示すタイミング図、図11は、図10のゲーム装置におけるエミュレータ選択実行ソフトウエアの動作を示すフローチャートである。
【0052】
実施例2は、エミュレータ切り替えに際して、ゲームソフトウエアの対応するシーンからゲームを実行する。エミュレーションによるゲームの解析および中断のシーケンスは実施例1と同様の動作手順であるが、実施例2では、ゲームの進行を示すパラメータを保持し、切り替え先のゲームソフトウェアの対応するパラメータに保持したパラメータを代入してゲームの進行を引き継ぐようにしている。ここで、ゲームの進行を示すパラメータとは、プログラムをハングアップさせずに正しく動作させるために必要なエミュレーションプログラムの動作パラメータとは異なり、ゲームA1またはB1を解析した結果として発生するパラメータで、ゲームA1またはB1のゲーム進行をその状態から引き続き進行させるために必要なパラメータである。例えば、シューティングゲームの場合は、ステージ数、プレーヤキャラクタ数(ゲーム再開回数)、プレーヤキャラクタの体力や武器、強さ等を示すパラメータ等であり、ロールプレイングゲームやアドベンチャーゲームでは、ゲーム進行フラグやプレーヤキャラクタの体力や武器、強さ等を示すパラメータ等である。
【0053】
エミュレータ切り替えに際して、エミュレータ選択実行ソフトウエアSWは、そのとき実行されていたゲームから引き継ぐべきパラメータを抽出するパラメータ抽出手段、および抽出されたパラメータを切り替え実行されるゲームに代入するパラメータ代入手段として機能し、さらに新たなゲームプログラム解析を実行させるエミュレータ再開手段として機能する。
【0054】
図10に示すように、図8と同様のゲームA1、B1の流れにおいて、エミュレータ選択実行ソフトウエアSWによって、まずエミュレータAが選択されて、ゲームA1が実行され、画面PA1〜PA3が実行されたところで、操作入力によってエミュレータAの中断が指示される。このとき、中断した際のゲームA1の解析箇所を示すアドレスや、解析した結果等のパラメータが格納されたシステムメモリの内容等を保持してもよいが、解析した結果のパラメータとは別に、ゲームの進行を示すパラメータを抽出し、保持しておく。何故ならば、次にゲームA1が再開されるときは、中断した箇所から再開されるとは限らず、ゲームB1の進行状態を引き継いでエミュレーションプログラムを初期状態から実行させるため、エミュレーションプログラムそのものを中断状態からハングアップさせずに正しく動作させる必要がなく、エミュレーションプログラムの動作パラメータは保持しておく必要がないためである。そして、エミュレータ選択実行ソフトウエアSWによって、エミュレータAを中断または終了したままエミュレータB1の実行が開始される。
【0055】
エミュレータの移行に際して図8ではゲームB1の最初の画面P1が実行されたが、実施例2では、ゲームA1の中断時に保持しておいたゲームの進行を示すパラメータをゲームB1の対応するパラメータが記憶されているメモリ領域に代入する。この状態でゲームB1をエミュレータBが解析を始めると、ゲームB1は、ゲームA1の中断した状態に対応する箇所から実行される。図10においては画面PA3に対応する画面PB3の実行に移る。エミュレータ移行時には、図8と同様画面P1、P2が表示される。
【0056】
その後エミュレータBによってゲームB1の画面PB3から画面PB5終了時点までが実行され、操作入力によって中断が指示されると、ゲームB1のゲームの進行を示すパラメータを抽出して保持し、ゲームA1の対応するパラメータが記憶されているメモリ領域に代入する。エミュレータ移行処理によって、エミュレータAを実行すると、ゲームB1のPB5に対応するPA5の終了時点からゲームA1の解析が始まり、続いてPA6の解析が実行される。エミュレータ移行時には、図8と同様画面P2、P1が表示される。
【0057】
図11において、エミュレータ選択実行ソフトウエアSWは以下の各ステップを実行するプログラムコードを含む。尚、このステップにおいても、既にゲームA1またはB1のいずれかが選択されてエミュレーションプログラムが実行されている状態でのプログラムステップとして説明する。
【0058】
ステップS1001:まず「EXIT」によってエミュレータ選択実行ソフトウエアSWを終了すべきか否か判断する。終了すべきときは、ステップS1008に進み、そうでないときはステップS1002に進む。
【0059】
ステップS1002:「F1」キー等の所定の操作入力によりによりエミュレータAまたはBの処理中断が指示されたか否かを判断する。中断されたと判断したときはステップS1003に進み、中断しないと判断されたときはステップS1001に戻る。
【0060】
ステップS1003:実行中のエミュレータの処理を中断し、ステップS1004に進む。
【0061】
ステップS1004:「MACHINE」によってエミュレータ切り替えの指示が入力されたか否か判断する。エミュレータを切り替えるべきときはステップS1005に進み、そうでないときはステップS1007に進む。
【0062】
ステップS1005:実行されていたゲームのパラメータ、例えばクリアしたステージ、取得アイテム、パワー等、ゲームに状況を再現するのに必要なパラメータを保存し、ステップS1006に進む。ここにパラメータはシステムメモリ1030に保存される。
【0063】
ステップS1006:ステップS1006で保存されたパラメータをゲームB1の対応するパラメータが記憶されたメモリ領域に代入し、エミュレータBを実行し、ステップS1001に戻る。これによって一方のエミュレータで実行されたゲームの状況を他のエミュレータで実行されるゲームにおいて対応するシーンやゲーム状態で再現でき、異なるハードウエアに対応する対応ゲームの対応位置の状況を比較できる。
【0064】
ステップS1007:エミュレータ実行再開を待ち、再開するときはステップS1001に戻る。
【0065】
ステップS1008:終了処理を実行し、そのまま処理を終了する。
【0066】
以上のとおり、エミュレータ切り替えに際して、ゲームソフトウエアの対応位置を実行するので、対応した状況について、対応ゲームの家庭用ゲーム機バージョンとアーケードゲーム機バージョンの比較等を容易に行え、また、どうしてもクリアできないシーン等を、他のゲームの対応するシーンに切り替えて実行することで迂回して遊ぶ等、過去に遊んだゲームに新たな遊び方を提供することができるようになる。
【図面の簡単な説明】
【0067】
【図1】本発明に係るゲーム装置の実施例1を示す正面図である。(実施例1、2)
【図2】本発明に係るゲーム装置をネットワークに接続した状態を示すブロック図である。(実施例1、2)
【図3(a)】図1のゲーム装置におけるハードウエアとソフトウエアの関係を示す図である。(実施例1、2)
【図3(b)】図1のゲーム装置におけるハードウエアとソフトウエアの関係を示す図である。(実施例1、2)
【図4】図1のゲーム装置におけるソフトウエアのメモリマップを示す図である。(実施例1、2)
【図5】図1のゲーム装置におけるエミュレータ選択実行ソフトウエアの画面を示す図である。(実施例1、2)
【図6】図1のゲーム装置におけるエミュレータ選択実行ソフトウエアの他の画面を示す図である。(実施例1、2)
【図7】図1のゲーム装置におけるエミュレータ選択実行ソフトウエアのさらに他の画面を示す図である。(実施例1、2)
【図8】図1のゲーム装置におけるエミュレータ選択実行ソフトウエアの動作を示すタイミング図である。(実施例1)
【図9】図1のゲーム装置におけるエミュレータ選択実行ソフトウエアの動作を示すフローチャートである。(実施例1)
【図10】本発明に係るゲーム装置の実施例2を示すタイミング図である。(実施例2)
【図11】図1のゲーム装置におけるエミュレータ選択実行ソフトウエアの動作を示すフローチャートである。(実施例2)
【符号の説明】
【0068】
1000〜1007 ゲーム装置
1010 表示部
1012 表示制御部
1020 制御部
1030 システムメモリ
1032 ROM
1034 外部メモリ
1040 通信I/F
1060 操作入力部
1080 タイマ
【特許請求の範囲】
【請求項1】
第1のハードウエアで実行される第1のゲームプログラムと、第2のハードウエアで実行される第2のゲームプログラムとが格納された記憶手段と、
前記第1のハードウエア構成をソフトウェアで再現して前記第1のゲームプログラムの解析を実行する第1エミュレータ手段と、
前記第2のハードウエア構成をソフトウェアで再現して前記第2のゲームプログラムの解析を実行する第2エミュレータ手段と、
前記第1または第2エミュレータを選択的に実行させるエミュレータ選択手段と、
前記第1または第2エミュレータの実行を中断したときに、当該実行していたエミュレータの実行状態およびゲームプログラムの解析状態のパラメータを前記記憶手段にそのまま保持するパラメータ保持手段と、
を有し、
前記第1エミュレータ手段および第2エミュレータ手段は、前記エミュレータ選択手段により、前記第1または第2エミュレータの一方から他方に切り替えてエミュレータの実行を再開するときに、前記パラメータ保持手段により保持された前記パラメータに基づいて前記第1のゲームプログラムまたは第2のゲームプログラムの解析を実行することを特徴とする情報処理装置。
【請求項2】
第1のハードウエアで実行される第1のゲームプログラムと、第2のハードウエアで実行される第2のゲームプログラムとが格納された記憶手段と、
前記第1のハードウエア構成をソフトウェアで再現して前記第1のゲームプログラムの解析を実行する第1エミュレータ手段と、
前記第2のハードウエア構成をソフトウェアで再現して前記第2のゲームプログラムの解析を実行する第2エミュレータ手段と、
前記第1または第2エミュレータを選択的に実行させるエミュレータ選択手段と、
前記第1または第2エミュレータの実行を中断したときに、当該実行していたエミュレータにより解析されたゲームプログラムにおけるゲームの進行状態のパラメータを抽出するパラメータ抽出手段と、
前記エミュレータ選択手段により、前記第1または第2エミュレータの一方から他方に切り替えてエミュレータの実行を開始するときに、前記パラメータ抽出手段により抽出された前記パラメータを、前記他方のゲームプログラムの対応するパラメータに代入するパラメータ代入手段と、
を有することを特徴とする情報処理装置。
【請求項3】
第1のハードウエアで実行される第1のゲームプログラムと、第2のハードウエアで実行される第2のゲームプログラムとが格納された記憶手段と、
前記第1のハードウエア構成をソフトウェアで再現して前記第1のゲームプログラムの解析を実行する第1エミュレータ手段と、
前記第2のハードウエア構成をソフトウェアで再現して前記第2のゲームプログラムの解析を実行する第2エミュレータ手段と、
前記第1または第2エミュレータを選択的に実行させるエミュレータ選択手段と、
前記第1または第2エミュレータの実行を中断したときに、当該実行していたエミュレータの実行状態およびゲームプログラムの解析状態のパラメータを前記記憶手段にそのまま保持するパラメータ保持手段と、
前記エミュレータ選択手段により、前記第1または第2エミュレータの一方から他方に切り替えてエミュレータの実行を再開するときに、前記パラメータ保持手段により保持された前記パラメータに基づいて前記第1のゲームプログラムまたは第2のゲームプログラムの解析を実行させるエミュレータ再開手段と、
して情報処理装置を機能させるゲームプログラム解析プログラム。
【請求項4】
第1のハードウエアで実行される第1のゲームプログラムと、第2のハードウエアで実行される第2のゲームプログラムとが格納された記憶手段と、
前記第1のハードウエア構成をソフトウェアで再現して前記第1のゲームプログラムの解析を実行する第1エミュレータ手段と、
前記第2のハードウエア構成をソフトウェアで再現して前記第2のゲームプログラムの解析を実行する第2エミュレータ手段と、
前記第1または第2エミュレータを選択的に実行させるエミュレータ選択手段と、
前記第1または第2エミュレータの実行を中断したときに、当該実行していたエミュレータにより解析されたゲームプログラムにおけるゲームの進行状態のパラメータを抽出するパラメータ抽出手段と、
前記エミュレータ選択手段により、前記第1または第2エミュレータの一方から他方に切り替えてエミュレータの実行を開始するときに、前記パラメータ抽出手段により抽出された前記パラメータを、前記他方のゲームプログラムの対応するパラメータに代入するパラメータ代入手段と、
して情報処理装置を機能させるゲームプログラム解析プログラム。
【請求項5】
請求項3または4に記載のゲームプログラム解析プログラムが記憶されたコンピュータ読み取り可能な記憶媒体。
【請求項1】
第1のハードウエアで実行される第1のゲームプログラムと、第2のハードウエアで実行される第2のゲームプログラムとが格納された記憶手段と、
前記第1のハードウエア構成をソフトウェアで再現して前記第1のゲームプログラムの解析を実行する第1エミュレータ手段と、
前記第2のハードウエア構成をソフトウェアで再現して前記第2のゲームプログラムの解析を実行する第2エミュレータ手段と、
前記第1または第2エミュレータを選択的に実行させるエミュレータ選択手段と、
前記第1または第2エミュレータの実行を中断したときに、当該実行していたエミュレータの実行状態およびゲームプログラムの解析状態のパラメータを前記記憶手段にそのまま保持するパラメータ保持手段と、
を有し、
前記第1エミュレータ手段および第2エミュレータ手段は、前記エミュレータ選択手段により、前記第1または第2エミュレータの一方から他方に切り替えてエミュレータの実行を再開するときに、前記パラメータ保持手段により保持された前記パラメータに基づいて前記第1のゲームプログラムまたは第2のゲームプログラムの解析を実行することを特徴とする情報処理装置。
【請求項2】
第1のハードウエアで実行される第1のゲームプログラムと、第2のハードウエアで実行される第2のゲームプログラムとが格納された記憶手段と、
前記第1のハードウエア構成をソフトウェアで再現して前記第1のゲームプログラムの解析を実行する第1エミュレータ手段と、
前記第2のハードウエア構成をソフトウェアで再現して前記第2のゲームプログラムの解析を実行する第2エミュレータ手段と、
前記第1または第2エミュレータを選択的に実行させるエミュレータ選択手段と、
前記第1または第2エミュレータの実行を中断したときに、当該実行していたエミュレータにより解析されたゲームプログラムにおけるゲームの進行状態のパラメータを抽出するパラメータ抽出手段と、
前記エミュレータ選択手段により、前記第1または第2エミュレータの一方から他方に切り替えてエミュレータの実行を開始するときに、前記パラメータ抽出手段により抽出された前記パラメータを、前記他方のゲームプログラムの対応するパラメータに代入するパラメータ代入手段と、
を有することを特徴とする情報処理装置。
【請求項3】
第1のハードウエアで実行される第1のゲームプログラムと、第2のハードウエアで実行される第2のゲームプログラムとが格納された記憶手段と、
前記第1のハードウエア構成をソフトウェアで再現して前記第1のゲームプログラムの解析を実行する第1エミュレータ手段と、
前記第2のハードウエア構成をソフトウェアで再現して前記第2のゲームプログラムの解析を実行する第2エミュレータ手段と、
前記第1または第2エミュレータを選択的に実行させるエミュレータ選択手段と、
前記第1または第2エミュレータの実行を中断したときに、当該実行していたエミュレータの実行状態およびゲームプログラムの解析状態のパラメータを前記記憶手段にそのまま保持するパラメータ保持手段と、
前記エミュレータ選択手段により、前記第1または第2エミュレータの一方から他方に切り替えてエミュレータの実行を再開するときに、前記パラメータ保持手段により保持された前記パラメータに基づいて前記第1のゲームプログラムまたは第2のゲームプログラムの解析を実行させるエミュレータ再開手段と、
して情報処理装置を機能させるゲームプログラム解析プログラム。
【請求項4】
第1のハードウエアで実行される第1のゲームプログラムと、第2のハードウエアで実行される第2のゲームプログラムとが格納された記憶手段と、
前記第1のハードウエア構成をソフトウェアで再現して前記第1のゲームプログラムの解析を実行する第1エミュレータ手段と、
前記第2のハードウエア構成をソフトウェアで再現して前記第2のゲームプログラムの解析を実行する第2エミュレータ手段と、
前記第1または第2エミュレータを選択的に実行させるエミュレータ選択手段と、
前記第1または第2エミュレータの実行を中断したときに、当該実行していたエミュレータにより解析されたゲームプログラムにおけるゲームの進行状態のパラメータを抽出するパラメータ抽出手段と、
前記エミュレータ選択手段により、前記第1または第2エミュレータの一方から他方に切り替えてエミュレータの実行を開始するときに、前記パラメータ抽出手段により抽出された前記パラメータを、前記他方のゲームプログラムの対応するパラメータに代入するパラメータ代入手段と、
して情報処理装置を機能させるゲームプログラム解析プログラム。
【請求項5】
請求項3または4に記載のゲームプログラム解析プログラムが記憶されたコンピュータ読み取り可能な記憶媒体。
【図1】
【図2】
【図3(a)】
【図3(b)】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図2】
【図3(a)】
【図3(b)】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【公開番号】特開2007−75466(P2007−75466A)
【公開日】平成19年3月29日(2007.3.29)
【国際特許分類】
【出願番号】特願2005−269227(P2005−269227)
【出願日】平成17年9月15日(2005.9.15)
【出願人】(000132471)株式会社セガ (811)
【Fターム(参考)】
【公開日】平成19年3月29日(2007.3.29)
【国際特許分類】
【出願日】平成17年9月15日(2005.9.15)
【出願人】(000132471)株式会社セガ (811)
【Fターム(参考)】
[ Back to top ]