(57)【特許請求の範囲】
【請求項１】
第１のハードウェアに係るエミュレーション処理と、第２のハードウェアに係るエミュレーション処理と、を実行可能なエミュレーション装置であって、
前記第２のハードウェアが、前記第１のハードウェアに係るエミュレーション処理が実行可能であり、
前記第１のハードウェアに対応する記録媒体のファイルシステムを表すイメージデータである第１イメージデータと、前記第２のハードウェアに対応する記録媒体のファイルシステムを表すイメージデータである第２イメージデータとを保持する記憶手段と、
前記第２のハードウェアでのプログラム実行時に利用されるデータである第２利用データと、前記第２のハードウェアにおいて生成された前記第１のハードウェアに対応する記録媒体のファイルシステムを表すイメージデータ内に保持されている、前記第１のハードウェアでのプログラム実行時に利用されるデータである第１利用データと、が格納された記録媒体から、前記第１利用データと前記第２利用データとを読み出す読み出し手段と、
前記読み出し手段により読み出された前記第１利用データを前記記憶手段に保持されている前記第１イメージデータ内に記録し、前記読み出し手段により読み出された前記第２利用データを前記記憶手段に保持されている前記第２イメージデータ内に記録する記録手段と、
を含むことを特徴とするエミュレーション装置。
【請求項２】
請求項１に記載のエミュレーション装置であって、
前記記録媒体に複数のデータが記憶されている場合に、前記読出手段が、当該複数のデータを連続的に読み出すときには、
前記記録手段が、連続的に読み出された各データを、当該データが前記第１利用データである場合に前記第１イメージデータ内に記録し、当該データが第２利用データである場合に前記第２イメージデータ内に記録する、
ことを特徴とするエミュレーション装置。
【請求項３】
請求項２に記載のエミュレーション装置であって、
記録媒体に複数のデータが記憶されている場合に、前記読出手段が、当該複数のデータを連続的に読み出すときに、
読み出されたデータに対応するハードウェアに対応する記録媒体のファイルシステムを表すイメージデータを前記記憶手段内に生成する手段であって、当該イメージデータが所定表示順において連続的に表示されることとなるよう、イメージデータを生成する手段を含むことを特徴とするエミュレーション装置。
【請求項４】
請求項１から３のいずれか一項に記載のエミュレーション装置であって、
前記記録媒体に、エミュレーション処理において要しないデータが格納されている場合は、当該データをイメージデータ内に記録しないよう制御することを特徴とするエミュレーション装置。
【請求項５】
第１のハードウェアに係るエミュレーション処理と、第２のハードウェアに係るエミュレーション処理と、を実行可能なエミュレーション装置であって、
前記第２のハードウェアが、前記第１のハードウェアに係るエミュレーション処理が実行可能であり、
前記第１のハードウェアに対応する記録媒体のファイルシステムを表すイメージデータである第１イメージデータと、前記第２のハードウェアに対応する記録媒体のファイルシステムを表すイメージデータである第２イメージデータとを保持可能な記憶手段と、
前記第１のハードウェア又は前記第２のハードウェアに係るエミュレーション処理の実行が開始されたときに、当該開始されたエミュレーション処理に係るハードウェアに対応する記録媒体のファイルシステムを表すイメージデータが前記記憶手段に格納されているか否かを確認し、格納されていない場合に、所定の警告処理を実行する手段と、
前記第２のハードウェアでのプログラム実行時に利用されるデータである第２利用データと、前記第２のハードウェアにおいて生成された前記第１のハードウェアに対応する記録媒体のファイルシステムを表すイメージデータ内に保持されている、前記第１のハードウェアでのプログラム実行時に利用されるデータである第１利用データと、が格納された記録媒体から、前記第１利用データと前記第２利用データとを読み出す読み出し手段と、
前記読み出し手段により読み出された前記第１利用データを前記記憶手段に保持されている前記第１イメージデータ内に記録し、前記読み出し手段により読み出された前記第２利用データを前記記憶手段に保持されている前記第２イメージデータ内に記録する記録手段と、
を含むことを特徴とするエミュレーション装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、互いに異なる複数のハードウェアに係るエミュレーション処理を実行可能なエミュレーション装置に関する。
【背景技術】
【０００２】
近年、あるターゲットハードウェアのために開発されたソフトウェアを、ターゲットハードウェアとは異なるハードウェア（ホスト）上で動作させる、エミュレーション（emulation）と呼ばれる技術が注目されている。この技術によれば、設計変更がなされたハードウェア上で、設計変更前のハードウェア用のソフトウェアを動作させることが可能となり、ハードウェアの設計変更や買い換えに伴ってソフトウェアを書き換えたり、買い換えたりする必要がなく、ユーザの負担を軽減できる。
【０００３】
こうしたエミュレーション技術では、ターゲットハードウェアが備えるハードウェア資源、例えばＣＰＵ（Central Processing Unit）や、メモリ、ディスクシステム、メモリカード・リーダ・ライタなどをソフトウエアによって仮想的に実現し、ターゲットハードウェア上で実行されるべきプログラムが、これらハードウェア資源にアクセスするときには、アクセス先のハードウェア資源を実現するソフトウエアが実際のハードウェアから応答があったかのようにデータの入出力を行うことになる。
【０００４】
また一般に、ディスクやメモリカードなどの記憶媒体は、ホストのファイルシステム上の仮想的なファイルとして生成される。こうした記憶媒体を模したファイルでは、例えば１．４４メガバイト（ＭＢ）の媒体に対応する、１．４４メガバイト分の「ディスクイメージ」となっており、このディスクイメージに、記憶の対象となったデータを記録していく。例えば、このディスクイメージは、生成の時点では内部のデータは「０」で埋められており、記憶の対象となるデータが入力されるごとに、内部のデータ値を、当該記録の対象となるデータの値に設定して記録を行う。
【特許文献１】特表２００４−５３１７８８号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかしながら、上記従来のエミュレーション技術において、例えば、あるターゲットハードウェアＡが、エミュレーション処理を行っており、また別のターゲットハードウェアＢに係るエミュレーション処理を実行していた場合に、記憶媒体内にターゲットハードウェアＡ用のデータと、ターゲットハードウェアＢ用のデータとが混在して格納されることがある。この場合、当該記憶媒体に対応するディスクイメージを生成し、各ソフトウェアのデータをそのままこのディスクイメージに格納することとなると、ターゲットハードウェアＢのデータが、ターゲットハードウェアＡのファイルシステム上に記録されている状態となる。
【０００６】
本発明は上記実情に鑑みて為されたもので、種々のターゲットハードウェアに係るエミュレーション処理を実行する際の利便性を向上できるエミュレーション装置を提供することを、その目的の一つとする。
【課題を解決するための手段】
【０００７】
上記従来例の問題点を解決するための本発明は、互いに異なる複数のハードウェアに係るエミュレーション処理を実行可能なエミュレーション装置であって、前記複数のハードウェアの種別ごとに、少なくとも一つの記録媒体のイメージデータを保持する記憶手段と、前記複数のハードウェアのいずれかに対応するデータを少なくとも一つ記憶する記録媒体から、当該データを読み出す読出手段と、前記読み出したデータを、それぞれの対応するハードウェアの種別に係るイメージデータ内に記録する記録手段と、を含むことを特徴としている。
【０００８】
ここで前記記録媒体に複数のデータが記憶されている場合に、前記読出手段が、当該複数のデータを連続的に読み出すときには、前記記録手段が、連続的に読み出された各データを、それぞれの対応するハードウェアの種別に係るイメージデータ内に振り分けて記録する、こととしてもよい。
【０００９】
さらに、記録媒体に複数のデータが記憶されている場合に、前記読出手段が、当該複数のデータを連続的に読み出すときに、読み出されたデータに対応するハードウェアの種別に係るイメージデータを前記記憶手段内に生成する手段であって、当該イメージデータが所定表示順において連続的に表示されることとなるよう、イメージデータを生成する手段を含んでもよい。
【００１０】
さらにこれら本発明のエミュレーション装置は、前記記録媒体に、エミュレーション処理において要しないデータが格納されている場合は、当該データをイメージデータに記録しないよう制御することとしてもよい。
【００１１】
また、本発明の一態様は、互いに異なる複数のハードウェアに係るエミュレーション処理を実行可能なエミュレーション装置であって、前記複数のハードウェアの種別ごとに、少なくとも一つの前記記録媒体のイメージデータを保持可能な記憶手段と、いずれかのハードウェアに係るエミュレーション処理の実行が開始されたときに、当該開始されたエミュレーション処理に係るハードウェアの種別に関わるイメージデータが前記記憶手段に格納されているか否かを確認し、格納されていない場合に、所定の警告処理を実行する手段と、を含むことを特徴としている。
【発明を実施するための最良の形態】
【００１２】
本発明の実施の形態について図面を参照しながら説明する。本発明の実施の形態に係るエミュレーション装置１は、図１に示すように、制御部１１と、記憶部１２と、ストレージ部１３と、入出力ユニット１４と、外部記憶部１５と、操作部１６と、表示制御部１７と、インタフェース部１８とを含んで構成されている。また、このエミュレーション装置１には、インタフェース部１８を介してメモリカードリーダ２が接続されている。
【００１３】
制御部１１は、例えばプロセッサチップであり、外部記憶部１５にセットされた外部記憶媒体から読み出されるプログラム（例えばパーソナルコンピュータによって実行されるアプリケーションや、ゲームプログラムなど）を記憶部１２に格納して実行する。また、この制御部１１はストレージ部１３に格納されているプログラムに従ってエミュレーションの処理を実行する。本実施の形態では、制御部１１は、複数のターゲットハードウェアのそれぞれに応じて、複数種類のエミュレーション処理を実行する。本実施の形態の制御部１１の具体的な構成及び動作については、後に詳しく述べる。
【００１４】
記憶部１２は、ＲＡＭ（Random Access Memory）等の記憶素子を含んで構成され、制御部１１によって実行されるプログラムを保持する。また、この記憶部１２は、制御部１１が処理を行うときに必要となるデータを保持するワークメモリとしても動作する。
【００１５】
ストレージ部１３は、ハードディスクなどのディスクデバイスであり、制御部１１によって実行されるプログラムを格納している。また、このストレージ部１３には、制御部１１がプログラムの実行過程で利用する種々のデータが保持されている。
【００１６】
入出力ユニット１４は、いわゆるブリッジチップであり、メインバスを介して制御部１１に接続され、また別のバスを介して外部記憶部１５と操作部１６とに接続されている。この入出力ユニット１４は、制御部１１から入力される指示に従って、制御部１１が出力する信号（出力信号）の出力先を選択し、当該選択した出力先に対して、制御部１１の出力信号を選択的に出力する。また、入出力ユニット１４は、外部記憶部１５や操作部１６から入力される信号を制御部１１に出力する。
【００１７】
外部記憶部１５は、例えばＤＶＤ−ＲＯＭ等の外部記録媒体から、記録されている情報を読み取って、入出力ユニット１４を介して制御部１１に出力する。本実施の形態では、この外部記憶部１５にセットされる外部記憶媒体には、プログラムが暗号化されて保持され、またプログラム全体から演算されるハッシュ値が、認証情報として保持されている。操作部１６は、例えばゲーム用のコントローラ、マウス、キーボード等であり、ユーザの操作を受け入れて、当該操作の内容を制御部１１に出力する。
【００１８】
表示制御部１７は、グラフィックス処理ボード等であり、制御部１１から入力される指示に従って、画像を描画し、当該描画した画像の情報を外部に接続されているディスプレイ（家庭用テレビジョン装置等でもよい）に出力して、表示させる。
【００１９】
インタフェース部１８は、例えばＵＳＢ（Universal Serial Bus）等のインタフェースであり、外部に接続されるデバイスから入力されるデータを制御部１１に出力する。また、このインタフェース部１８は、制御部１１から入力される指示に従って、接続されているデバイスに対してデータを出力する。
【００２０】
メモリカードリーダ２は、エミュレーション装置１に接続されており、メモリカードを受け入れて、エミュレーション装置１から入力される指示によって、当該受け入れたメモリカードに対してデータを書き込み、また、当該受け入れたメモリカードからデータを読み出す。
【００２１】
次に、本実施の形態の制御部１１の動作について述べる。以下の説明では、制御部１１は、エミュレーションの処理として、第１のターゲットハードウェア（以下「第１ターゲット」と略称する）と、第２のターゲットハードウェア（以下「第２ターゲット」と略称する）とのエミュレーションを実行可能となっている。また、本実施の形態では、第１ターゲットまたは第２ターゲットにおいて生成された、それぞれのハードウェアでのプログラム実行時に利用されるデータを格納したメモリカードがあるものとする。
【００２２】
このメモリカードには、例えば図２に示すように、第１ターゲットまたは第２ターゲットのいずれか一方でのプログラム実行時に利用されるデータが少なくとも一つ格納されているケースと、図３に示すように、第１ターゲットでのプログラム実行時に利用されるデータと、第２ターゲットでのプログラム実行時に利用されるデータとが双方、少なくとも一つずつ格納されているケースと、がある。
【００２３】
なお、図３に示した例は、第２ターゲットによって書き込まれるメモリカードの内容例を示したもので、第１ターゲットのデータは、第２ターゲットにおいて生成された、第１ターゲットのメモリカードに対応するイメージデータ内に保持されている。
【００２４】
本実施の形態の制御部１１は、エミュレーションの処理において利用するデータを、こうしたメモリカードから読み出して、ストレージ部１３に格納する処理を実行する。この処理を行う制御部１１のプログラムは、機能的には図４に示すように、読み出し部２１と、ターゲット判別部２２と、振り分け決定部２３と、名称設定部２４と、記録部２５とを含んで構成される。
【００２５】
読み出し部２１は、メモリカードリーダ２にアクセスして、メモリカードリーダ２に受け入れられているメモリカード内のデータを読み出す。本実施の形態では、図２，図３に例示するように、メモリカード内には、複数個のデータが格納されていることがあるが、この場合、読み出し部２１は、各データを連続的に、順次読み出してターゲット判別部２２に出力する。
【００２６】
ターゲット判別部２２は、読み出し部２１が出力する各データが、どのハードウェア上で動作するプログラムで利用されるものかを判別する。この判別を行うためには、例えば、各データのヘッダに、対応するハードウェアを特定する情報を記録しておいてもよいし、データの内容を表示して、ユーザの指示操作に応じてどのハードウェア上で動作するプログラムで利用されるものかを判別してもよい。このターゲット判別部２２は、各データを、当該データがどのハードウェア上で動作するプログラムであるかを特定する情報（対応ハードウェア情報）とともに出力する。
【００２７】
なお、メモリカード内には、メモリカード内にデータを記録した第１ターゲット又は第２ターゲットなどのハードウェアに固有のデータ等も格納され得るが、こうしたハードウェアに固有の情報などは、エミュレーション処理において要しないデータである。そこでターゲット判別部２２は、こうしたエミュレーション処理において要しないデータについては破棄し、ストレージ部１３に格納しないよう制御してもよい。このようにハードウェアに固有のデータなどについてもヘッダ情報により識別可能としておけばよい。
【００２８】
振り分け決定部２３は、ターゲット判別部２２が出力するデータと、データごとの対応ハードウェア情報との入力を受けて、対応ハードウェア情報の種類ごとに、対応するデータを関連づけたエントリを含む記録データベースを生成し、記憶部１２に格納する。例えば図３に示した例のように第１ターゲットのデータＡと、第２ターゲットのデータＢと、第１ターゲットのデータＣとメモリカードに記録されており、読み出し部２１がこの順序でデータを読み出した場合、振り分け決定部２３は、図５に示すように、第１ターゲットを特定する対応ハードウェア情報に対してデータＡ及びデータＣを関連づけたエントリと、第２ターゲットを特定する対応ハードウェア情報に対してデータＢを関連づけたエントリとを、記録データベースに記録する。
【００２９】
名称設定部２４は、読み出し部２１が読み出しの対象としたメモリカードごとに固有の基礎名称を発行する。また、振り分け決定部２３が生成した記録データベースのエントリの各々に、連続符号（例えば連番）を発行する。そして名称設定部２４は、基礎名称と連続符号とを連接した名称情報を生成し、各エントリに関連づけて、記録データベースに記録する。
【００３０】
ここで連続符号は、ストレージ部１３に格納されているのデータの一覧を、ある順序（所定表示順）で並べ替えて表示したときに、同じメモリカードから読み出したデータが連続的に表示されることとなるよう定められる符号であれば、連番であると、文字列などであるとを問わない。
【００３１】
記録部２５は、記憶部１２に格納した記録データベースを参照しつつ、この記録データベースに記録されている各データを、ストレージ部１３内に格納する。本実施の形態では、これらのデータは制御部１１におけるエミュレーションの処理において参照される。このためデータは、エミュレーション装置１に固有のファイルシステムにおけるデータとしてではなく、ターゲットとなるハードウェアの種別に対応するディスクやメモリカードのファイルシステムを表すイメージデータとしてストレージ部１３に格納される。
【００３２】
ここでイメージデータは、対応するディスクやメモリカードの記録容量分のファイルとして生成される。そして当該ファイル内には、対応するハードウェアにおけるファイルシステムが形成される。つまりイメージデータは、ターゲットとなるハードウェアの種別ごとに異なる。そこで記憶部２５は、記録データベースに記録されているエントリごとに、エントリに関連づけられた対応ハードウェア情報を参照して、当該参照した対応ハードウェア情報で特定されるハードウェア種別のイメージデータを生成し、ストレージ部１３に格納する。
【００３３】
そして記録部２５は、エントリごとに生成したイメージデータの各々に対し、対応するエントリに関連づけて記録データベースに記録されているデータを書き込む。
【００３４】
これにより、メモリカードリーダ２にセットしたメモリカードから読み出されたデータが、対応するハードウェアごとに生成されたイメージデータ内に振り分けて記録されることとなる。
【００３５】
このように本実施の形態によると、例えば図３に示したように、第１ターゲットのデータＡと、第２ターゲットのデータＢと、第１ターゲットのデータＣと、第２ターゲットのハードウェア固有のデータを格納したデータＷとが格納されたメモリカードを、メモリカードリーダ２に挿入し、ユーザがこのメモリカードからのデータの読み出しを指示した場合、エミュレーション装置１は、次の図６に示すように動作する。
【００３６】
すなわち、エミュレーション装置１は、メモリカードリーダ２に対してメモリカード内に記録されたデータの読み取りを指示し、このメモリカードに格納されている各データを、予め定められた順序で読み出す（Ｓ１）。ここでは、格納されている順に読み出すものとし、まずは第１ターゲットのデータＡが読み出されるとする。
【００３７】
エミュレーション装置１は、このデータを利用するプログラムが対応しているハードウェアを判別する（Ｓ２）。ここでデータＡは第１ターゲットにおいて動作するプログラムで利用されるので、その旨判別する。そしてエミュレーション装置１は、第１ターゲットを特定する対応ハードウェア情報と、このデータＡとを関連づけて、記録データベースとして記憶部１２に格納する（Ｓ３）。
【００３８】
エミュレーション装置１は、ここでメモリカード内のデータの読み出しが完了したか（つまり、すべてのデータを読み出したか）否かを調べる（Ｓ４）。そして読み出しが完了していないならば、処理Ｓ１に戻って処理を続ける。
【００３９】
この繰り返しの処理によって、データＢが読み出され、第２ターゲットを特定する対応ハードウェア情報に関連づけて当該データＢが記録データベース内に格納される。さらに、データＣが読み出される。この段階では、第１ターゲットを特定する対応ハードウェア情報が記録データベース内に格納されているので、エミュレーション装置１は、データＣを、データＡとともに、第１ターゲットを特定する対応ハードウェア情報に関連づけて記録データベースに格納する。
【００４０】
さらにデータＷについては、処理Ｓ２において、エミュレーションの処理に関係のないものであると判別される。この場合エミュレーション装置１は、このデータＷを記録データベースに格納することなく破棄することとしてもよい。
【００４１】
一方処理Ｓ４において、読み出しが完了していれば、エミュレーション装置１は固有の基礎名称を発行する（Ｓ５）。ここで基礎名称は、例えば「名称未設定１」などとすればよい。
【００４２】
さらに記録データベースに格納されている対応ハードウェア情報ごとに連続符号を発行する（Ｓ６）。ここでは連続符号は連番を用いたものとし、第１ターゲットについて「＿１」、第２ターゲットについて「＿２」とする。そして、基礎名称と連続符号とを連接して、「名称未設定１＿１」及び「名称未設定１＿２」の名称を生成し、第１ターゲットの対応ハードウェア情報と、第２ターゲットの対応ハードウェア情報とに関連づけて記録データベースに格納する（名称設定処理：Ｓ７）。これにより、記録データベースの内容は図５に示すような状態となる。
【００４３】
エミュレーション装置１は、この記録データベースの内容を参照し、対応ハードウェア情報のうち、未だ注目エントリとして選択していないものを一つ、注目エントリとして選択する（Ｓ８）。そして、注目エントリに対応するハードウェア用のイメージデータをストレージ部１３内に生成する（Ｓ９）。ここではまず第１ターゲットを注目エントリとして、ストレージ部１３内に第１ターゲットに対応するイメージデータを生成する。
【００４４】
エミュレーション装置１は、注目エントリに関連づけて記録データベースに格納されているデータを生成したイメージデータに格納する（Ｓ１０）。ここでは第１ターゲットに対応するイメージデータ内にデータＡ及びデータＣを記録する。
【００４５】
さらにエミュレーション装置１は、記録データベースに未だ注目エントリとしていない対応ハードウェア情報があるか否かを調べ（Ｓ１１）、注目エントリとしていない対応ハードウェア情報があれば、そのような対応ハードウェア情報を注目エントリとして選択し、処理Ｓ８に戻って処理を続ける。ここでは、第２ターゲットが未だ注目エントリとなっていないので、第２ターゲットに対応するイメージデータを生成し、このイメージデータ内にデータＢを記録する。
【００４６】
また、処理Ｓ１０において、未だ注目エントリとしていない対応ハードウェア情報がないならば、処理を終了する。
【００４７】
なお、エミュレーション装置１は、予めターゲットとなるハードウェアの各々について対応するイメージデータのサイズ情報を記録して保持している。そしていずれかのターゲットを注目ターゲットとして当該注目ターゲットのハードウェアに対応するイメージデータを生成する際には、当該注目ターゲットに関連づけられて記録されるサイズ情報を取得し、当該サイズ情報によって示されるデータ長のイメージデータを生成して、ストレージ部１３に格納する。
【００４８】
また処理Ｓ３において、読み出したデータ（対象データ）を、いずれかの対応ハードウェア情報に関連づけて記録データベースに格納する際に、エミュレーション装置１は、関連づけようとする対応ハードウェア情報（対象情報）で特定されるターゲットのイメージデータのサイズ情報を取得する。そして、対象情報に関連づけられているデータのサイズの総計に、関連づけようとする対象データのサイズを加算し、この加算結果が、取得したサイズ情報を超えているか否かを調べる。ここで加算結果がサイズ情報を超えていなければ、対象データを、対象情報に関連づけて記録データベースに格納する。
【００４９】
一方、加算結果がサイズ情報を超えている場合は、対象情報と同じ対応ハードウェア情報のエントリを記録データベースに作成し、当該新たに生成したエントリに、対象データを関連づけて記録データベースに格納する。
【００５０】
つまり、一つのイメージデータのサイズを超えて複数のデータが読み出された場合には、複数のイメージデータを生成することとなるのである。
【００５１】
こうしてストレージ部１３には、読み出し元となったメモリカードごとに異なる基礎名称と、当該メモリカードから生成されたイメージデータごとに付された連続符号とによって命名された、少なくとも一つのイメージデータが格納されるようになる。
【００５２】
なお、ここまでの説明では、図６の処理Ｓ１からＳ４のループにおいて、データを順次読み出すごとに読み出したデータのサイズを累積して加算し、当該加算結果がサイズ情報を超えている場合に、新たなエントリを生成することとしている。しかし、この処理に代えて、まず、処理Ｓ１からＳ４のループにおいてすべてのデータを読み出した後に、記録データベースの内容を参照してエントリを作成するようにしてもよい。
【００５３】
すなわち、この場合、エミュレーション装置１は、イメージデータのサイズにかかわらず、一旦、読み出したデータのすべてを、ターゲットごとに振り分けて、記録データベースに記録する。次にエミュレーション装置１は、ターゲットごと（すなわちエントリごと）に次の処理を行う。すなわち、エミュレーション装置１は、注目するエントリに関連づけられたデータのサイズ総計を算出する。そして注目するエントリのターゲットに対応するイメージデータのサイズよりも、算出したサイズ総計が大きいか否かを調べる。ここで、算出したサイズ総計が対応するイメージデータよりも大きい場合、エミュレーション装置１は、予め定めた規則に従って、注目するエントリに属するデータを、それぞれがイメージデータのサイズ以内のサイズとなるような、複数のデータ群に分割する。
【００５４】
ここで分割の規則は、例えば、エントリに属するデータのうち、タイトルの一部が共通するデータごとに分割する規則などがある。また、例えば読みされるデータがゲームなどのアプリケーションのデータであれば、共通するアプリケーション（ゲーム）に係るデータごとに分割してもよい。こうした規則で分割した結果として得られた複数のデータ群が、イメージデータのサイズ以内とならない場合は、さらに、格納された日付の順序などに従って、さらに多数のデータ群に分割することとしてもよい。
【００５５】
さらに、いずれかのターゲットに対応するイメージデータについて、複数生成する必要がない場合がある。この場合、こうしたターゲットに対応するメモリカードを読み出し元とするときには、一旦、当該メモリカードに対応するイメージデータを生成して、メモリカードの内容をそのまま、当該生成したイメージデータ内に読み出してもよい。
【００５６】
一例として、第１ターゲットに対応するメモリカードがＸバイト、第２ターゲットに対応するメモリカードがＹバイト（Ｙ＞Ｘ）と定められているとする。この場合、第２ターゲットに対応するメモリカード内に第１ターゲット用のソフトウエアのデータが格納されているときには、このデータの総量がＸバイトを超えて、第１ターゲットに対応するイメージデータを複数生成する必要がある。これに対して、第２ターゲットに対応するメモリカードはＹバイトと定められているため、これの内部にＹバイト以上のデータが格納されることはなく、第２ターゲットに対応するイメージデータを複数生成する必要はない。以下の説明では、複数のイメージデータを生成する必要のないターゲット（ここでの第２ターゲットなど）を「確認対象外ターゲット」と呼ぶ。
【００５７】
このような、確認対象外ターゲットに対応する処理を行うエミュレーション装置１は、読み出し元となったメモリカードが、確認対象外ターゲットに対応するものであるか否かを確認し、確認対象外ターゲットに対応するものであれば、当該確認対象外ターゲットに対応するイメージデータを生成する。そして、当該生成したイメージデータ内に、読み出し元となったメモリカードの内容をそのまま複写して格納する。なお、このイメージデータに対しては基礎名称を発行しておく。
【００５８】
そして、このイメージデータ内の各データに対して、対応するハードウェアの判別を行い、他のターゲットに対応するデータが含まれていれば、当該他のターゲットに対応するイメージデータを生成して、当該他のターゲットに対応するイメージデータ内に格納する処理を行う。この場合も、連続符号の発行を行い、基礎名称に連接するなどして、他のターゲットに対応するイメージデータの名称を設定する。
【００５９】
一方、読み出し元となったメモリカードが、確認対象外ターゲットに対応するものでなければ、図６に示した処理を実行する。
【００６０】
なお、この場合において、確認対象外ターゲットに対応するメモリカード内に、他のターゲットに対応するデータのみが格納されている場合、上記の処理の結果、内容が空となった、確認対象外ターゲットのイメージデータがストレージ部１３に格納されていることとなる。この場合、当該空となった確認対象外ターゲットのイメージデータは削除してもよいし、しなくてもよい。削除しない場合は、確認対象外ターゲットのメモリカードを読み出したにも関わらず、確認対象外ターゲットに対応するイメージデータがストレージ部１３に見いだせないことによるユーザの不安感を払拭できる。
【００６１】
また、このイメージデータの名称は、ユーザが適宜変更可能となっていてもよい。また、イメージデータごとに、異なるアイコン（グラフィカルユーザインタフェースにおいてイメージデータを表す絵柄）をユーザが設定可能となっていてもよい。
【００６２】
次に、エミュレーション装置１が、こうして生成したイメージデータをエミュレーションの処理において利用する際の動作について述べる。
【００６３】
本実施の形態のエミュレーション装置１では、エミュレーションの処理において、ターゲットとなるハードウェアに備えられているインタフェースをソフトウエアによって仮想的に実現する。すなわちプログラムを実行するプロセッサからは、インタフェースがハードウェア的に実装されていたとしても、当該インタフェースを介してハードウェアからデータを読み出したり、データを出力したりするときには、当該インタフェースを介してハードウェアとのデータの入出力をソフトウエア的に行っている。そこで、ハードウェアが行うのと同様にデータの入力を受け、またハードウェアが行うのと同様の応答を入出力すれば、ソフトウエアによって、ハードウェアを仮想的に実現できる。かかるソフトウエアの構成は、エミュレータのソフトウエア技術において広く知られているので、ここでの詳細な説明を省略する。
【００６４】
本実施の形態では、例えば第１ターゲット、第２ターゲットにおいて、メモリカードを受け入れるメモリカードインタフェースがいずれも２つ設けられていたものとする。そこでエミュレーション装置１は、記憶部１２に、これら２つのメモリカードインタフェースにそれぞれ対応する２つの仮想的なメモリインタフェースに対して、仮想的なメモリインタフェースにセットされたイメージデータを特定する情報を関連づけるためのインタフェースデータベースを保持する（図７）。ここでイメージデータを特定する情報は、イメージデータの名称としてもよい。
【００６５】
エミュレーション装置１は、いずれかのターゲットでのプログラムを実行するときには、図８に示すように、当該プログラムに対応するターゲットハードウェアのエミュレータとしての処理を開始し（対象となるターゲットのエミュレータの起動：Ｓ２１）、起動したエミュレータのターゲットとなるハードウェアに対応するイメージデータがストレージ部１３に格納されているか否かを調べる（Ｓ２２）。ここで対応するイメージデータが格納されていなければ、「データが保存できませんがよろしいですか」のような文字列を表示出力して、ユーザにイメージデータを生成するか否かを問い合わせる（Ｓ２３）。ユーザがイメージデータを生成する旨の応答を行うと、ここでエミュレータの処理を終了し、図６に示したデータの取り込みの処理を開始する（Ｓ２４）。
【００６６】
なお、この処理Ｓ２４では、データの取り込みを行う例に限られず、新たに空（データが格納されていない状態）のイメージデータを生成する処理を開始してもよい。また、ユーザに対して、データの取り込みを行うか、空のイメージデータを生成するかを問い合わせ、当該問い合わせに対するユーザの応答に従って、図６に示したデータの取り込みか、空のイメージデータの生成かのいずれかの処理を選択的に実行してもよい。
【００６７】
また処理Ｓ２３においてイメージデータを生成しない旨の応答をユーザが行ったときには、エミュレーション装置１は、エミュレーションの処理を継続する（Ｓ２５）。この場合、エミュレータの処理として、仮想的なメモリカードインタフェースにはメモリカードが挿入されていない状態として処理を続けることになる。
【００６８】
一方、処理Ｓ２２において、ターゲットとなるハードウェアに対応するイメージデータがストレージ部１３に格納されていれば、仮想的なメモリカードインタフェースにイメージデータを関連づけるようユーザに促す（Ｓ２６）。この後、エミュレーション装置１は、エミュレーションの処理を継続する（Ａ）。
【００６９】
この処理Ｓ２６において、ユーザが仮想的なメモリカードインタフェースに対してイメージデータを関連づける操作を行うと、以降のプログラムの実行中に、メモリカードインタフェースへのアクセスがあったときに、当該アクセス先となったメモリカードインタフェース関連づけられたイメージデータに格納されたデータへのアクセスの処理が行われることとなる。
【００７０】
この処理Ｓ２６においては、エミュレーション装置１は例えば、図９に示すように、ストレージ部１３に格納されているイメージデータの一覧と、カーソルＣとを表示し、このカーソルＣをユーザの操作によって各イメージデータの間で移動させ、決定の操作が行われると、その時点でカーソルＣのあるイメージデータを選択する操作が行われたとして処理を行う。
【００７１】
また、この図８の処理Ｓ２２では、ターゲットのイメージデータがあるか否かを確認し、ターゲットのイメージデータがない場合にイメージデータを生成するなどの処理を行う例について記載したが、これに代えて、例えば処理Ｓ２２において、ターゲットのイメージデータが仮想的なメモリカードインタフェースに割り当てられているか否かを調べ、割り当てられていれば、エミュレータの処理を続け、割り当てられていなければ、仮想的なメモリカードインタフェースにイメージデータを関連づけるようユーザに促すようにしてもよい。
【００７２】
なお、この一覧において、各イメージデータは、例えば名称順に配列される。既に説明したように本実施の形態では、同じメモリカードから読み出されたデータを保持するイメージデータには、当初は基礎名称として同じ名称が付されているので、ここで互いに隣接して表示されることとなる。
【００７３】
また一覧においては、各イメージデータに関連づけされたアイコンが表示される。ここでアイコンは、ユーザが特に画像を指定している場合は当該指定された画像のアイコンとなり、指定していない場合は、デフォルトで予め指定されているアイコンが表示される。このデフォルトのアイコンの画像は、各イメージデータの対応しているハードウェアごとに異なる画像としてもよい。
【００７４】
ユーザは、この一覧からイメージデータの一つを選択する操作を行い（図１０（ａ））、さらにメニューを表示させる操作を行って（図１０（ｂ））、仮想的なメモリカードインタフェースへのセットを指示する「差込口割当て」を選択する。ここでは第１、第２ターゲットにおいて、メモリカードインタフェースが複数あるとしていたので、ここで「差込口割当て」が選択されると、当該複数あるメモリカードインタフェースに対応する複数の仮想的なメモリカードインタフェースのどちらにセットするか（割り当てるか）をさらに選択させる画面が表示される（図１０（ｃ））。そして、いずれかの仮想的なメモリカードインタフェースが選択されると、図７に示したインタフェースデータベースにおいて、選択された仮想的なメモリカードインタフェースに関連づけて、選択したイメージデータを特定する情報を関連づける。また、このようにして割り当てを行ったイメージデータのアイコンを、図１０（ｄ）に示すように、メモリカードインタフェースに差し込まれたかのような画像に変更する。なお、ここでどちらの仮想的なメモリカードインタフェースにセットされたのかを表す情報を併せて表示してもよい（Ｘ）。
【００７５】
また、このように割り当てが行われたイメージデータを、一覧から選択する操作を行い、メニューを表示させたときには、「取り出し」のメニューを表示するようにし、この「取り出し」が選択されたときには、インタフェースデータベースにおける対応するイメージデータを特定する情報を削除し、イメージデータのアイコンを、それが仮想的なメモリカードインタフェースに割り当てられる以前のアイコンの画像に戻す。
【００７６】
さらに本実施の形態では、エミュレーションの処理において、ターゲットでのプログラムを実行している間にも、このイメージデータの割り当てができるようにしておいてもよい。
【００７７】
この場合、エミュレーションの処理と並列的に実行されるユーザインタフェースの処理を起動する操作を受けて、当該ユーザインタフェースの処理において、操作部１６からの指示操作の内容を受けて、エミュレーションの処理に伝達しないようにしたうえで、このユーザインタフェースにおいてメニューを表示し、この表示されるメニューに、イメージデータで表される仮想的なメモリカードの差込口を割り当てる旨のメニュー項目を含めておく。このメニューに対する操作が行われている間、エミュレーションの処理におけるターゲットのプログラムの実行は、継続されてもよい。
【００７８】
ユーザがこの仮想的なメモリカードの差込口を割り当てる旨のメニュー項目を選択した場合、エミュレーション装置１は、図９に示したのと同様の一覧を表示して、割り当ての対象となるイメージデータを選択させる。そして図１０に示したのと同様の表示により、割り当てを実行させる。
【００７９】
さらにこのときには、プログラム内から書き込みを行う可能性のあることに配慮して、イメージデータの一覧を表示する際に、イメージデータの「空き容量」（生成したイメージデータのサイズのうち、イメージデータ内に記録されたデータの総データ量を差し引いた値）を演算して、それぞれのイメージデータの名称などとともに表示してもよい。
【００８０】
このように本実施の形態によると、第２ターゲットが、第１ターゲットのエミュレーション処理を実行していた場合に、当該第２ターゲットに対応するメモリカードなどの記憶媒体内に、第２ターゲットのデータと、第１ターゲットのデータとが混在して格納されても、これらから、それぞれ第１ターゲットに対応するイメージデータと、第２ターゲットに対応するイメージデータとを生成し、それぞれのイメージデータ内に対応するターゲットのデータを記録することとした。
【図面の簡単な説明】
【００８１】
【図１】本発明の実施の形態に係るエミュレーション装置とそれに接続されるメモリカードリーダの構成例を表すブロック図である。
【図２】メモリカードの内容例を表す説明図である。
【図３】メモリカードの内容の別の例を表す説明図である。
【図４】本発明の実施の形態に係るエミュレーション装置の例を表す機能ブロック図である。
【図５】本発明の実施の形態に係るエミュレーション装置における記録データベースの例を表す説明図である。
【図６】本発明の実施の形態に係るエミュレーション装置の動作例を表すフローチャート図である。
【図７】本発明の実施の形態に係るエミュレーション装置での仮想的なメモリカードインタフェースへのイメージデータの割り当てを保持するデータベースの例を表す説明図である。
【図８】本発明の実施の形態に係るエミュレーション装置におけるエミュレーション処理の動作例を表すフローチャート図である。
【図９】本発明の実施の形態に係るエミュレーション装置が表示する画面例を表す説明図である。
【図１０】本発明の実施の形態に係るエミュレーション装置の表示する画面の遷移例を表す説明図である。
【符号の説明】
【００８２】
１  エミュレーション装置、２  メモリカードリーダ、１１  制御部、１２  記憶部、１３  ストレージ部、１４  入出力ユニット、１５  外部記憶部、１６  操作部、１７  表示制御部、１８  インタフェース部、２１  読み出し部、２２  ターゲット判別部、２３  振り分け決定部、２４  名称設定部、２５  記録部。
【図１】
0004601577.tif 000002
【図２】
0004601577.tif 000003
【図３】
0004601577.tif 000004
【図４】
0004601577.tif 000005
【図５】
0004601577.tif 000006
【図６】
0004601577.tif 000007
【図７】
0004601577.tif 000008
【図８】
0004601577.tif 000009
【図９】
0004601577.tif 000010
【図１０】
0004601577.tif 000011