図1は、実施例にかかる通信システム1の構成を示す。通信システム1は、情報端末装置10と、情報端末装置10と無線LAN(Local Area Network)で接続するアクセスポイント12と、アクセスポイント12とネットワーク14を介して接続するエミュレータプログラム提供サーバ20およびゲームイメージファイル提供サーバ30とを備える。エミュレータプログラム提供サーバ20は、情報端末装置10にゲーム用エミュレータプログラムを提供する。ゲームイメージファイル提供サーバ30は、情報端末装置10にゲームプログラムのイメージファイルを提供する。イメージファイルは、ゲームプログラムが記憶されていた記憶媒体の完全な内容と構造を1つのファイルに格納したデータであり、ISO9660形式のCDイメージファイルである「ISOイメージ」などが代表的である。なお、ゲームプログラムを記録したROMをファイル化したものは「ROMイメージ」と呼ばれることもある。
情報端末装置10は無線通信機能を有して構成される処理装置であって、実施例では無線LAN方式による通信機能を有する。なお情報端末装置10は他の無線通信方式による通信機能を有してもよく、またUSBケーブルなどの有線ケーブルで外部装置と接続する通信機能を有してもよい。
アクセスポイント12は、無線LANで情報端末装置10同士を接続したり、また無線LANで情報端末装置10を他のアクセスポイントに接続したり、さらには情報端末装置10をインターネットや有線LANなどのネットワーク14に接続する中継装置として機能する。通信システム1では、情報端末装置10がアクセスポイント12を介して、エミュレータプログラム提供サーバ20およびゲームイメージファイル提供サーバ30と接続できる。情報端末装置10が有線通信機能をもつ場合、たとえばネットワーク14に接続するパーソナルコンピュータや据置型のゲーム機などを中継装置として、エミュレータプログラム提供サーバ20およびゲームイメージファイル提供サーバ30に接続してもよい。
情報端末装置10は、携帯型のゲーム機であってよい。情報端末装置10は、ゲームプログラムを記録したディスクをディスクリーダに装着されることで、ゲームプログラムを読み出し、実行できる。なお、本実施例において情報端末装置10は携帯型のゲーム機でなくてもよく、たとえば据置型のゲーム機やパーソナルコンピュータ、また携帯電話機やPDA(Personal Digital Assistance)などの端末装置であってよい。いずれの端末装置として構成される場合であっても、情報端末装置10は、エミュレータプログラム提供サーバ20から提供されるエミュレータプログラムを起動することで、ゲームイメージファイル提供サーバ30から提供されるゲームプログラムを実行できるエミュレーション装置として機能する。
エミュレータプログラム提供サーバ20は、所定のゲーム機用のゲームプログラムを情報端末装置10上で実行させるためのエミュレータプログラムを提供する。エミュレータプログラムはファームウェアの一部を構成してもよく、通信システム1においてエミュレータプログラム提供サーバ20は、更新されたファームウェアを提供するファームウェア更新サーバとして構成されてもよい。このときユーザがファームウェアの更新を情報端末装置10に指示すると、情報端末装置10が、エミュレータプログラム提供サーバ20から、更新されたファームウェアをダウンロードする。情報端末装置10は、ファームウェアをダウンロードすることでエミュレータプログラムを取得でき、エミュレーション装置として動作することが可能となる。
ゲームイメージファイル提供サーバ30は、所定のゲーム機用のゲームプログラムのイメージファイルを生成して情報端末装置10に提供する。たとえばゲームイメージファイル提供サーバ30は情報端末装置10にダウンロード可能なゲームタイトルのリストを送信し、ユーザが、所望のゲームタイトルを選択することで、情報端末装置10が、そのイメージファイルをフラッシュメモリなどの記憶媒体にダウンロードする。情報端末装置10は、エミュレータプログラムを起動して、ダウンロードしたイメージファイルを読み込むことで、あたかも所定のゲーム機であるかのように、ゲームを進行させることが可能となる。
図2は、本実施例においてゲームイメージファイル提供サーバ30から配信されるイメージファイルを示す。ゲームイメージファイル提供サーバ30は、複数枚のゲームディスク(記憶媒体)に分割されて記録されているゲームプログラムをまとめて、1つのイメージファイルを生成する。図2は、3枚のディスクに分割されて記録されていたゲームプログラムのイメージファイルを、1つのイメージファイル(「実行ファイル」ともよぶ)にまとめた例を示す。1つにまとめたイメージファイルの先頭にはインデックスが設けられ、インデックスには、ゲームプログラムが3枚組のディスクにより構成されていることや、各ディスクのデータが含まれる「先頭バイト位置」および「バイト数」などの情報が書き込まれている。
図3は、情報端末装置10の外観構成を示す。情報端末装置10は、ゲーム画像やグラフィカルユーザインタフェースなどを表示するための表示部40と、音声データを出力する音声出力部42と、ユーザからの操作入力を受け付ける操作部44とを備える。表示部40は液晶ディスプレイであってよく、音声出力部42はスピーカであってよい。操作部44は、筐体表面に設けられた方向キーや4種のボタン(○ボタン、×ボタン、□ボタン、△ボタン)、STARTボタン、SELECTボタン、HOMEボタンなどを含み、また筐体側面に設けられたボタンも含む。
図4は、エミュレーション機能を実現する情報端末装置10の構成を示す。情報端末装置10は、表示部40、音声出力部42、操作部44を備え、さらに通信制御部102、通信部104、取得部110、処理部120および記憶部140を備える。取得部110は、エミュレータプログラム取得部112およびゲームイメージファイル取得部114を有して構成され、通信部104からダウンロードされたデータを取得する。処理部120は、操作入力受付部122、エミュレータ起動部124、ゲーム実行部126、プログラムカウンタ128、ディスク駆動状態監視部130、入替判定部132およびGUI処理部134を有して構成され、情報端末装置10におけるエミュレーション機能を実行する。入替判定部132の一部の機能および/またはGUI処理部134は、仮想記憶媒体の入替処理に関する制御を行う制御部として機能する。記憶部140はフラッシュメモリなどの記憶媒体であり、エミュレータプログラム記憶部150およびゲームイメージファイル記憶部160a、160b、160c(以下、総称する場合は「ゲームイメージファイル記憶部160」と呼ぶ)を有して構成される。記憶部140は、ハードディスクであってもよく、また他の種類の記憶媒体であってもよく、これら複数種類の記憶媒体から記憶領域を構成するものであってもよい。このようにエミュレータプログラム記憶部150およびゲームイメージファイル記憶部160は、同一の記憶部140に形成されてもよいが、異なる記憶部に形成されてもよい。
情報端末装置10のエミュレーション機能は、CPU、メモリ、メモリにロードされたプログラムなどによって実現され、ここではそれらの連携によって実現される機能ブロックを描いている。本実施例では、エミュレータプログラムをダウンロードすることで情報端末装置10がエミュレーション装置として機能するが、エミュレータプログラムは、情報端末装置10に内蔵されていてもよい。したがってこれらの機能ブロックがハードウエアのみ、ソフトウエアのみ、またはそれらの組合せによっていろいろな形で実現できることは、当業者に理解されるところである。
通信制御部102は、操作部44からエミュレータプログラムのダウンロード要求を受けると、通信部104をエミュレータプログラム提供サーバ20に接続する。通信部104は、エミュレータプログラム提供サーバ20から、最新のエミュレータプログラムをダウンロードし、エミュレータプログラム取得部112に供給する。
本実施例において、エミュレータプログラムは、エミュレータの実行プログラムと、入替条件データベースを含む。エミュレータプログラム取得部112は、エミュレータプログラム記憶部150において、実行プログラムを実行プログラム保持部152に格納し、入替条件データベースを入替条件保持部154に格納する。
入替条件データベースは、ゲーム実行中に仮想記憶媒体を入れ替えるべき状態にあることを判定するための条件を、ゲームタイトルごとに保持して構成される。なお本明細書において、ゲームタイトルは、ゲームソフトウェアを特定する情報を意味し、ゲームタイトルとゲームソフトウェアは、一対一に対応する。従来のゲーム機で、複数枚のゲームディスクから構成されるゲームソフトウェアを実行すると、ユーザは、途中でゲームディスクを入れ替える必要がある。一方、情報端末装置10は、複数のゲームディスクのデータをまとめたゲームプログラムを実行するため、ゲーム途中で、仮想的なゲームディスク(仮想記憶媒体)を入れ替える処理を実行しなければならない。入替条件データベースは、ゲームの状態がゲームディスクの入替イベント中であるか判定するための入替判定条件をゲームタイトルごとに保持している。
また通信制御部102は、操作部44からゲームイメージファイル提供サーバ30への接続要求を受けると、通信部104をゲームイメージファイル提供サーバ30に接続する。ゲームイメージファイル提供サーバ30は、ダウンロード可能なゲームタイトルのリストを配信し、ユーザは、表示部40に表示されたリストから所望のゲームタイトルを操作部44により選択することで、ゲームイメージファイルのダウンロード要求が生成される。通信部104は、ゲームイメージファイル提供サーバ30からゲームイメージファイルをダウンロードし、ゲームイメージファイル取得部114に供給する。
ゲームイメージファイルは、ゲームソフトウェアの実行プログラムを少なくとも含み、さらにゲームタイトルのIDを含んでもよい。ゲームイメージファイル取得部114は、ゲームイメージファイル記憶部160において、ゲームソフトウェアの実行プログラムのイメージファイルをゲームプログラム保持部162に格納し、タイトルIDをタイトルID保持部164に格納する。なお本明細書では、ゲームプログラム保持部162に格納されたイメージファイルを実行ファイルと呼び、また単にゲームプログラムまたは実行プログラムと呼ぶこともある。
ゲームイメージファイル取得部114は、取得したゲームイメージファイルを、ゲームソフトウェアすなわちゲームタイトルごとに記憶部140に格納する。したがって、記憶部140において、ゲームイメージファイル記憶部160は、ダウンロードしたゲームソフトウェアの数だけ生成される。
以上のように、記憶部140に、エミュレータプログラム記憶部150およびゲームイメージファイル記憶部160が形成されることで、本実施例における情報端末装置10のエミュレータ機能を実現することが可能となる。
図5は、ゲームディスクの入替イベントの発生時に、ゲームプログラムにより表示部40に表示される「ディスク入替メッセージ」を示す。このメッセージは、従来のゲーム機において、ユーザにディスク交換を促すために表示されていたものであり、情報端末装置10では、必ずしも表示する必要はない。しかしながら、ディスク入替メッセージを表示する際に、なんらかの演出が行われるゲームソフトウェアも存在するため、情報端末装置10によるエミュレーション機能は、このような演出が損なわれる事態を回避するために、ゲームプログラムの実行内容を忠実に再現している。
一方で、ユーザは、このディスク入替メッセージのみを表示されても、交換するディスクが存在しないために、次にとるべきアクションが分からないという問題が発生する。そこで、情報端末装置10は、ゲームディスクの入替イベントの発生を正確に検出して、ユーザに対して次にとるべきアクションを提示することが好ましい。
図6は、従来のゲーム機において、ディスク入替イベントの発生中に実行されている命令セットを示す。まず、ゲームディスクを駆動するスピンドルの停止命令が発行され、ゲームディスクの回転駆動が停止される。次に、ディスク入替メッセージの表示命令が発行され、図5に示すディスク入替メッセージがディスプレイに表示される。その後、ゲーム機筐体の蓋開きの監視命令が発行され、ゲームディスクが取り出される状態にあるか監視される。この監視は、筐体の蓋が開いたことが検出されるまで継続される。筐体の蓋が開かれると、ゲーム機筐体の蓋閉じの監視命令が発行され、筐体の蓋が閉じられたか監視される。この監視も、筐体の蓋が閉じたことが検出されるまで継続される。筐体の蓋が閉じられると、装着されたゲームディスクの検証命令が発行され、ゲームディスクが挿入されているか、また挿入されたゲームディスクが正しいかを検証される。
以上は、ゲームディスクの着脱に際して、筐体蓋を開閉するタイプのゲーム機における命令セットであり、たとえばトレーローディングタイプのドライブをもつタイプのゲーム機であれば、トレーの開閉についての監視命令が実行される。
図7は、ディスク入替イベント発生中の命令セットをプログラムメモリ136に展開した状態を示す。説明の便宜上、ゲームタイトル「ABC」のゲームプログラムが、図7に示すように展開されたものとする。なお、各命令の格納位置は、ゲームソフトウェアによって異なる。これらの命令セットは、図示するように連続するアドレスに記憶される必要はないが、いずれにしても、それぞれ先頭アドレスから特定の範囲に格納される。プログラムカウンタ128は、プログラムメモリ136に格納されたプログラムを実行するために、アドレスを順番に指示するレジスタである。
図4に戻って、処理部120において、操作入力受付部122が、操作部44からゲームの実行指示を受け付けると、エミュレータ起動部124にゲームプログラムの実行指示を供給する。エミュレータ起動部124は、実行プログラム保持部152からエミュレータの実行プログラムを読み出し、起動する。これにより、情報端末装置10はエミュレーション装置として動作する。エミュレーション機能が立ち上がると、その環境上でゲーム実行部126が、ゲームプログラム保持部162から、ユーザにより指定されたゲームプログラムをイメージファイルから読み出し、実行する。既述したように、イメージファイルは、複数枚のゲームディスクのイメージファイルを1つにまとめたものである。
ゲーム実行部126は、図7に示すようにゲームプログラム中の命令をプログラムメモリ136に展開し、プログラムカウンタ128によりアドレスを指定して、命令を順に実行する。最初にゲーム実行部126は、1枚目の仮想ゲームディスク中の命令をプログラムメモリ136に展開して実行する。
入替判定部132は、入替条件保持部154に保持された仮想記憶媒体の入替判定条件を参照して、ゲームプログラムの実行状況から、仮想記憶媒体を入れ替えるべき状態にあるか否かを判定する。入替判定部132は、プログラムカウンタ128の値が所定の範囲内にあるときに、仮想記憶媒体が入れ替えられるべき状態にあることを判定してもよい。
図8は、入替条件データベースに保持された仮想記憶媒体の入替判定条件の一例を示す。本実施例では、仮想記録媒体の入替判定条件が、「筐体蓋開きの監視命令」が実行されていることに設定され、「筐体蓋開きの監視命令」が実行されていれば、入替判定部132が、ディスク入替イベントの発生中であることを判定する。
図7を参照して、ゲームタイトル「ABC」の入替判定条件は、プログラムカウンタの値がPC開始値(ADD_CH2)からPC終了値(ADD_CH3−1)の範囲内にあることに設定される。なお、プログラムメモリ136において、「筐体蓋開きの監視命令」が、どのアドレスに格納されているかはゲームタイトルごとに異なる。そのため入替条件データベースは、ゲームタイトルごとに「筐体蓋開きの監視命令」が格納されるアドレスの範囲を特定し、プログラムカウンタ128の値が、特定された範囲内に存在することを、仮想記憶媒体の入替判定条件として保持している。
入替判定部132は、プログラムカウンタ128の値を監視し、プログラムカウンタ128の値が、実行中のゲームタイトルに対応して入替条件データベースで特定される範囲内にある場合に、仮想記憶媒体を入れ替えるべき状態にあることを判定する。このようにプログラムカウンタの値を利用することで、ディスク入替イベントの発生を高精度に検出することが可能となる。
入替条件保持部154は、さらに、仮想記憶媒体の駆動停止指示信号が生成されたことを、仮想記憶媒体の入替判定条件として保持してもよい。ディスク駆動状態監視部130が、仮想記憶媒体の駆動状態を監視し、たとえばスピンドル停止命令が生成されたことを検出すると、入替判定部132に仮想記憶媒体の駆動停止指示信号が生成されたことを通知してもよい。なお、スピンドル停止命令の発行は、プログラムカウンタ128の値によっても検出可能であり、ディスク駆動状態監視部130は、プログラムカウンタ値にもとづいて、駆動停止指示信号が生成されたことを入替判定部132に通知してもよい。なおプログラムカウンタ128の値の監視は、入替判定部132が直接実行してもよい。
入替判定部132は、仮想記憶媒体の駆動停止指示信号が生成されたことを検出すると、仮想記憶媒体を入れ替えるべき状態にあることを判定してもよい。なお、入替判定部132は、複数の入替判定条件が成立していることをもって、仮想記憶媒体を入れ替えるべき状態にあることを判定することが好ましい。すなわち、入替判定部132は、プログラムカウンタ128の値が所定の範囲内にあって、且つ、仮想記憶媒体の駆動停止指示信号が生成されたことを検出することで、仮想記憶媒体を入れ替えるべき状態にあることを判定する。このように、複数の入替判定条件の成立により、入替判定を行うことで、ディスク入替イベントの発生を高精度に検出することが可能となる。またゲームタイトル固有の入替判定条件と、ゲームタイトルに依存しない入替判定条件とを利用することで、ディスク入替イベントの発生をさらに高精度に検出することが可能となる。
なお、入替条件保持部154は、仮想記憶媒体の駆動停止指示信号が生成されただけではなく、仮想記憶媒体の駆動停止状態が所定時間継続したことを、仮想記憶媒体の入替判定条件として保持してもよい。ゲームの実行中、ゲームディスクはシーク時間を短くするために、基本的には回転駆動された状態を維持しているが、ゲームの進行上、ゲームディスクの回転が短時間停止されることもある。しかしながら、ディスク入替イベントの発生時には、ゲームディスクが回転停止状態を維持するため、この状態が所定時間継続したことを入替判定条件として利用することで、入替判定部132が、ディスク入替イベントの発生を、さらに高精度に検出することが可能となる。
ディスク駆動状態監視部130はタイマを有し、スピンドル停止命令の発行後の時間を監視する。スピンドル停止命令が発行された後、所定時間が経過するまでにスピンドル駆動命令が発行されなければ、ディスク駆動状態監視部130は、仮想記憶媒体の駆動停止状態が所定時間継続したことを入替判定部132に通知する。入替判定部132は、この通知をうけて、仮想記憶媒体を入れ替えるべき状態にあることを判定する。なお判定精度を高めるために、入替判定部132は、プログラムカウンタ128の値が所定の範囲内にあって、且つ、仮想記憶媒体の駆動停止状態が所定時間継続したことを検出することで、仮想記憶媒体を入れ替えるべき状態にあることを判定することが好ましい。またゲームタイトル固有の入替判定条件と、ゲームタイトルに依存しない入替判定条件とを利用することで、ディスク入替イベントの発生をさらに高精度に検出することが可能となる。
入替判定部132は、メモリ上の特定番地を監視することで、次に使用する仮想記憶媒体を特定してもよい。たとえば図5に示すディスク入替メッセージでは、次に使用するディスク番号が2番であることが示されている。また、たとえば3枚目のディスクへの入替メッセージでは、次に使用するディスク番号が3番であることが示される。このとき、次に使用するディスク番号を特定するために、ゲームプログラムは、メモリ上の所定の番地にアクセスして、その番地に格納されている数字を読み出している。このことを利用して、入替判定部132は、ディスク入替メッセージに含まれるディスク番号を保持するメモリ上の番地を把握し、その番地へのアクセスを監視する。入替判定部132は、アクセスがあったことを検出すると、その特定番地に格納されている数字から、次に使用する仮想記憶媒体のディスク番号を特定できる。
GUI処理部134は仮想記憶媒体の入替をユーザに指示させる操作画面を、GUIを用いて生成する。ゲーム中に、ユーザが、情報端末装置10の所定の操作部44を押下すると、GUI処理部134が、エミュレータメニュー画面を表示部40に表示する。たとえば、図3に示される「HOME」ボタンを押下することで、エミュレータメニュー画面がGUI表示されてもよい。
図9は、エミュレータメニュー画面を示す。エミュレータメニュー画面はGUIを用いて生成され、ユーザによる操作指示が可能とされている。エミュレータメニュー画面には、「ゲーム終了」、「ボタン割り当て」、「ディスク入れ替え」、「ゲームリセット」などのメニュー項目が用意されている。「ゲーム終了」は実行中のゲームを終了させる項目であり、「ボタン割り当て」はゲームのボタン割り当てを設定させる項目であり、「ディスク入れ替え」は仮想記憶媒体の入替を行わせる項目であり、「ゲームリセット」はゲームをリセットさせる項目である。ユーザは、操作部44を操作してカーソルを移動し、所望のメニュー項目にあわせた状態で、決定ボタン(○)を押下することで、メニュー項目の内容が実行される。
入替判定部132により、仮想記憶媒体を入れ替えるべき状態にないことが判定されると、GUI処理部134は、ユーザにより仮想記憶媒体の入替を指示できないように操作画面を生成する。すなわち、ディスク入替イベント中でなければ、GUI処理部134は、「ディスク入れ替え」の項目表示をグレーアウトとし、ユーザがカーソルで選択できないように処理する。これにより、ユーザがゲーム中に誤ってHOMEボタンを押下し、さらに、「ディスク入れ替え」項目を選択して、ゲームデータを消失するような不測の事態を事前に回避することが可能となる。一方、入替判定部132により、仮想記憶媒体を入れ替えるべき状態にあることが判定されると、GUI処理部134は、ユーザにより仮想記憶媒体の入替を指示しやすい操作画面を生成する。GUI処理部134は、「ディスク入れ替え」の項目表示のグレーアウトを外し、また「ディスク入れ替え」の項目表示をデフォルトフォーカスすることで、「ディスク入れ替え」のメニュー項目を選択しやすくしてもよい。
図10は、図5に示すディスク入替メッセージが表示された画面に、仮想ゲームディスクの入れ替え方法を表現するダイアログを開いた状態を示す。このようにGUI処理部134は、ユーザに対して仮想ゲームディスクの入れ替え方法を知らせるメッセージを表示してもよい。これによりユーザは、HOMEボタンを押下して、図9に示すエミュレータメニュー画面を表示させることができる。なお、この時点では、ディスク入替イベントの発生中であるため、「ディスク入れ替え」項目のグレーアウト表示は解除されており、ユーザは、カーソルを動かして、「ディスク入れ替え」項目を選択することができる。
ユーザが「ディスク入れ替え」を選択して決定ボタンを押すと、エミュレータは、その決定指示により、ディスクが入れ替えられたことを示す信号を生成する。図6または図7を参照して、この信号は、ゲームプログラムにおいて、ディスク検証命令による検証処理がOKであったことに相当する。これによりゲーム実行部126は、仮想ゲームディスク2の命令をプログラムメモリ136に展開し、ゲームを継続できる。
GUI処理部134は、ゲームプログラムにより表示されるディスク入替メッセージに重ならないように、ダイアログを表示することが好ましい。GUI処理部134は、ディスク入替メッセージが専有する領域を認識することで、空いた領域にダイアログを表示することが可能となる。たとえば、図2に示すゲームプログラムのINDEXに、ディスク入替メッセージの表示領域が記述され、GUI処理部134は、その情報からダイアログをディスク入替メッセージに重ならないように表示できる領域を取得してもよい。これによりGUI処理部134は、ゲームプログラムにより生成されるディスク入替メッセージに重ねることなく、ダイアログを表示することが可能となる。
なお、GUI処理部134は、ディスク入替メッセージに重なるように、ダイアログを表示してもよい。この場合は、見えやすさを確保するために、ディスク入替メッセージの輝度を低くして、ダイアログ表示の視認性を高めることが好ましい。
図11は、図5に示すディスク入替メッセージが表示された画面に、仮想ゲームディスクの選択入替ダイアログを開いた状態を示す。既述したゲームタイトル「ABC」には、3枚の仮想ゲームディスクが存在しているが、GUI処理部134は、入替判定部132により次に使用する仮想記憶媒体が特定されると、その仮想記憶媒体の入替をユーザにより指示させやすい操作画面を生成することが好ましい。このとき、次に入れ替えるべきディスクとして特定されたディスクのみを表示させてもよいし、また次に入れ替えるべきディスクとして特定されたディスクにデフォルトでカーソルを合わせて、ユーザから選択しやすくしてもよい。これによりユーザによる誤操作を回避することができ、仮想ゲームディスクの円滑な入替処理を実現できる。
ゲームソフトウェアによっては、仮想ゲームディスクが入れ替えられた後、ゲームを継続させるためにゲームリセットをさせるものがある。そのような操作が必要なゲームソフトウェアについては、GUI処理部134が、ゲームタイトルごとにリセット操作が必要であるか否かの情報を保持し、その情報にしたがって、既述したように、ゲームリセット方法を表現したダイアログを表示したり、また「ゲームリセット」のメニュー項目を提示することで、ユーザが円滑にゲームを継続できるようにしてもよい。なお、このような表示を行うことなく、入替判定部132が、内部的なリセット処理を自動的に実行してもよい。
図12は、仮想ゲームディスクの入れ替えフローを示す。入替判定部132が、入替条件データベースを参照して実行中のゲームプログラムの入替判定条件を取得し、プログラムカウンタ128の値が、入替判定条件として特定される範囲内にあるか判定する(S10)。なお、入替条件データベースにおける検索キーがゲームタイトルのIDである場合は、タイトルID保持部164に保持されているタイトルIDを用いて、プログラムカウンタ値の範囲を取得する。プログラムカウンタ128の値が所定の範囲内になければ(S10のN)、ディスク入替イベントは発生しておらず、本フローは終了する。
プログラムカウンタ128の値が所定の範囲内にあれば(S10のY)、入替判定部132は、仮想ゲームディスクの停止状態が所定時間を超えたか判定する(S12)。スピンドル停止命令が発生すると、ディスク駆動状態監視部130が仮想ゲームディスクの停止時間の計測を開始し、所定時間経過前にスピンドル駆動命令が発生したことを検出すると(S12のN)、ディスク入替イベントが発生していないことが判定されて、本フローは終了する。仮想ゲームディスクの停止状態が所定時間を超えると(S12のY)、入替判定部132は、仮想ゲームディスクを入れ替えるべき状態にあることを判定する(S14)。この判定結果を受けて、GUI処理部134は、ユーザの仮想ゲームディスクの選択操作を支援するための操作画面を表示部40に表示する(S16)。GUI処理部134は、ユーザからの仮想ゲームディスクの入替操作を待機し(S18のN)、入替操作がなされると(S18のY)、本フローを終了する。
以上、本発明を実施例をもとに説明した。この実施例は例示であり、それらの各構成要素や各処理プロセスの組合せにいろいろな変形例が可能なこと、またそうした変形例も本発明の範囲にあることは当業者に理解されるところである。たとえばPC値に関する入替判定条件は入替条件保持部154により保持されるものとしたが、たとえばイメージファイルのINDEXに、ゲームタイトルごとに埋め込まれてもよい。
上記した実施例では、ディスク入替イベントの発生を検出した場合に、ユーザに対してGUIを用いた操作画面を提示することとしたが、GUI処理部134による操作画面の提示を行うことなく、入替判定部132が、適切な仮想ゲームディスクに自動的に交換処理を行ってもよい。
また実施例では、入替判定部132が入替判定条件をもとにディスク入替イベントの発生を高精度に検出するため、これを応用して、たとえばディスク入替イベント中でない場合には、記憶媒体の取り外しをできなくしてもよい。これにより、ゲーム中に記憶媒体が取り外される事態を回避できる。
なお、ディスク入替イベントの発生を、たとえば表示部40に表示されている画像から判断することも可能である。たとえば、入替判定部132は、ディスク交換メッセージの画像データを保持し、表示部40に表示されている画像とのマッチングをとることで、現在の状況がディスク入替イベントの発生中であるか判定することができる。また、表示部40に表示されている画像に含まれる数字から、次に入れ替えるべきディスクの番号を特定することも可能となる。
また実施例では、複数枚の仮想ゲームディスクを1つにまとめたイメージファイル(実行ファイル)が記憶部140に格納されているものとして説明した。イメージファイルは、たとえばメニュー画面において1つのアイコンにより表示部40に表示されてもよく、これにより、ユーザは、所望のゲームタイトルのイメージファイルの存在を認識することができる。なお表示部40に、複数の仮想ゲームディスクのアイコンをそれぞれ表示することも可能である。これにより、ユーザに対して、複数枚の仮想ゲームディスクの存在を認識させることができ、あたかも複数の物理的なゲームディスクが存在するような感覚をユーザに与えることが可能となる。
記憶部140は複数種類の記憶媒体から構成されてもよく、複数の仮想ゲームディスクは、ゲームイメージファイル記憶部160において、それぞれ異なる記憶媒体に分散して格納されてもよい。ゲーム実行部126は、タイトルIDに対応付けて、関連する仮想ゲームディスクの格納場所を保持しておき、仮想ゲームディスクが適切に入れ替えられたことを示す信号を受け取ると、次に実行するべき仮想ゲームディスクの格納場所を特定し、その仮想ゲームディスクの命令を読み出して実行する。イメージファイルまたは仮想ゲームディスクが格納された記憶媒体は、ネットワーク14に接続するゲーム機などに存在していてもよく、また情報端末装置10と無線ないしは有線で直接接続するゲーム機などに存在していてもよい。ゲーム実行部126は、関連する仮想ゲームディスクが保持される可能性のあるデバイスを探索して、次に実行する仮想ゲームディスクを格納した記憶領域を特定する。これにより、1つのゲームソフトウェアを構成する仮想ゲームディスクが複数の記憶媒体にまたがって存在する場合であっても、適切に仮想ゲームディスクを取得でき、ゲームを進行することができる。
また、図2には、3枚組のディスクに記録されていたゲームプログラムを1つのイメージファイルにまとめた例を示したが、情報端末装置10は、たとえば3枚のディスクのうち、1枚目(DISK1)と3枚目(DISK3)をまとめたイメージファイルを処理することも可能である。この場合、2枚目の物理的なディスクが使用され、ユーザは、GUIにより2枚目のディスクへの交換指示が表示部40に表示されると、物理的なディスクを所定のドライブに装着させてもよい。これにより、1枚目と3枚目については仮想ディスクのゲームプログラムが実行され、2枚目については物理的なディスクのゲームプログラムが実行されて、3枚のディスクで構成されていたゲームソフトウェアを実行することが可能となる。
なお、ゲームの進行上、音楽ファイルなどの他の種類のファイルが必要な場合がある。このとき入替判定部132が、音楽ディスクへの入替が必要なことを判定して、GUI処理部134が、ディスク入替を指示するGUIメッセージを表示部40に表示してもよい。入替判定部132およびGUI処理部134による処理は、仮想ゲームディスクについて説明したものと同様である。入れ替えられるべき音楽ディスクは、上記したように、現実の物理的なディスクであってもよく、この場合、GUI処理部134により音楽ディスクへの交換指示が表示部40に表示されると、ユーザは、物理的な音楽ディスクを所定のドライブに装着し、ゲーム実行部126が、ドライブを駆動して音楽ディスクのデータを読み出し実行する。また入れ替えられるべき音楽ディスクは、記憶部140において予めイメージファイルに変換されて記憶されたものであってもよい。この場合、GUI処理部134により音楽ディスクへの交換指示が表示部40に表示されると、ユーザは操作部44からディスク入替を指示し、ゲーム実行部126が、音楽ディスクのイメージファイルを読み出して実行する。
なお、記憶部140の音楽ライブラリには、MP3などで圧縮された音楽ファイルそのものが格納されていてもよい。この場合、GUI処理部134により音楽ディスクへの交換指示が表示部40に表示され、ユーザが操作部44からディスク入替を指示すると、ゲーム実行部126が、音楽ライブラリから指示された音楽ファイルを読み出してイメージファイルを生成し、生成したイメージファイルを用いてゲームを実行することも可能である。このように、ディスク入替の指示に応答してイメージファイルを自動生成することで、予めイメージファイルを記憶部140に保持しておく必要がなく、記憶部140の容量を効率的に使用することが可能となる。なお、この自動生成処理は、音楽ファイルに限るものではなく、動画ファイルなど様々なタイプのファイルに適用することができる。
1・・・通信システム、10・・・情報端末装置、12・・・アクセスポイント、14・・・ネットワーク、20・・・エミュレータプログラム提供サーバ、30・・・ゲームイメージファイル提供サーバ、40・・・表示部、42・・・音声出力部、44・・・操作部、102・・・通信制御部、104・・・通信部、110・・・取得部、112・・・エミュレータプログラム取得部、114・・・ゲームイメージファイル取得部、120・・・処理部、122・・・操作入力受付部、124・・・エミュレータ起動部、126・・・ゲーム実行部、128・・・プログラムカウンタ、130・・・ディスク駆動状態監視部、132・・・入替判定部、134・・・GUI処理部、136・・・プログラムメモリ、140・・・記憶部、150・・・エミュレータプログラム記憶部、152・・・実行プログラム保持部、154・・・入替条件保持部、160・・・ゲームイメージファイル記憶部、162・・・ゲームプログラム保持部、164・・・タイトルID保持部。