(57)【要約】      （修正有）【課題】エミュレート対象装置とエミュレート装置とで装置間の通信に関わる構成が異なる場合にも、複数のエミュレート対象装置を複数のエミュレート装置でエミュレートするための技術を提供する。【解決手段】第１端末装置１１０は、第２端末装置１２０から操作データを受信する受信部１１５と、第１エミュレート対象装置をエミュレートする第１エミュレート部１１４２と、第２エミュレート対象装置をエミュレートする第２エミュレート部１１４３と、第１エミュレート部１１４２の処理と第２エミュレート部１１４３の処理とを並行して行うよう第１エミュレート部１１４２及び第２エミュレート部１１４３を制御し、操作データに基づいて処理を行うよう、第２エミュレート部１１４３を制御し、第２エミュレート部１１４３からの第２処理結果データに基づいて処理を行うよう第１エミュレート部１１４２を制御するエミュレート制御部１１４とを備える。【選択図】図６
2017084255.tif 000002
【特許請求の範囲】
【請求項１】
所定のアプリケーションを処理する第１エミュレート対象装置をエミュレートする第１エミュレート手段と、
所定のアプリケーションを処理する第２エミュレート対象装置をエミュレートする第２エミュレート手段と、
前記第１エミュレート手段における処理と前記第２エミュレート手段における処理とを並行して行うよう、前記第１エミュレート手段および前記第２エミュレート手段を制御するエミュレート制御手段と、
を備え、
前記エミュレート制御手段は、前記第２エミュレート手段における第２処理に基づいて処理を行うよう、前記第１エミュレート手段を制御し、かつ／または、前記第１エミュレート手段における第１処理に基づいて処理を行うよう、前記第２エミュレート手段を制御することを特徴とする情報処理装置。
【請求項２】
第２操作入力手段を備えた第２端末装置から、前記第２操作入力手段に対する操作に応じた第２操作データを受信する第１受信手段をさらに備え、
前記エミュレート制御手段は、前記第２操作入力手段に対する操作に基づいて処理を行うよう、前記第２エミュレート手段を制御し、かつ、前記第２処理に基づいて処理を行うよう、前記第１エミュレート手段を制御することを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記第２エミュレート手段における処理によって得られた第２出力用データを前記第２端末装置に送信する第１送信手段をさらに備えたことを特徴とする請求項２に記載の情報処理装置。
【請求項４】
ユーザからの操作を受け付ける第１操作入力手段をさらに備え、
前記エミュレート制御手段は、前記第１操作入力手段に対する操作に基づいて処理を行うよう、前記第１エミュレート手段を制御し、かつ、前記第１処理に基づいて処理を行うよう、前記第２エミュレート手段を制御することを特徴とする請求項１ないし３のいずれか一項に記載の情報処理装置。
【請求項５】
前記第１エミュレート手段における処理によって得られた第１出力用データを出力する第１出力手段をさらに備えたことを特徴とする請求項１ないし４のいずれか一項に記載の情報処理装置。
【請求項６】
前記第１エミュレート手段は、前記第１処理によって第１処理結果データを生成し、前記第２エミュレート手段は、前記第２処理によって第２処理結果データを生成し、
前記第２エミュレート手段は、前記第１処理結果データに基づいて処理を行い、第１エミュレート手段は、前記第２処理結果データに基づいて処理を行うことを特徴とする請求項１ないし５のいずれか一項に記載の情報処理装置。
【請求項７】
前記第１エミュレート手段は、前記第２処理を経て前記第２エミュレート手段から得た前記第２操作データに基づいて処理を行うことを特徴とする請求項２ないし５のいずれか一項に記載の情報処理装置。
【請求項８】
前記第１エミュレート対象装置と前記第２エミュレート対象装置とは、同種の装置であることを特徴とする請求項１ないし７のいずれか一項に記載の情報処理装置。
【請求項９】
前記第１エミュレート対象装置が処理する前記所定のアプリケーションと、前記第２エミュレート対象装置が処理する前記所定のアプリケーションとは、同種のアプリケーションであることを特徴とする請求項１ないし８のいずれか一項に記載の情報処理装置。
【請求項１０】
前記エミュレート制御手段は、前記第１エミュレート手段における処理と前記第２エミュレート手段における処理とを同時に行うことを特徴とする請求項１ないし９のいずれか一項に記載の情報処理装置。
【請求項１１】
前記第２端末装置は、前記情報処理装置と同種の装置であることを特徴とする請求項２または３に記載の情報処理装置。
【請求項１２】
第２操作入力手段を備えた第２端末装置から、前記第２操作入力手段に対する操作に応じた第２操作データを受信する第１受信手段と、
前記第２エミュレート手段における処理によって得られた第２出力用データを前記第２端末装置に送信する第１送信手段と、
ユーザからの操作を受け付ける第１操作入力手段と、
をさらに備え、
前記エミュレート制御手段は、前記第２操作入力手段に対する操作に基づいて処理を行うよう、前記第２エミュレート手段を制御し、かつ、前記第１操作入力手段に対する操作および前記第２処理に基づいて処理を行うよう、前記第１エミュレート手段を制御し、
前記第１受信手段および前記第１送信手段は、ローカル環境下で、前記第２端末装置と送受信を行うことを特徴とする請求項１ないし１１のいずれか一項に記載の情報処理装置。
【請求項１３】
前記第１エミュレート対象装置による前記所定のアプリケーションの処理は、前記第１エミュレート対象装置における処理の結果得られる処理結果データを前記第２エミュレート対象装置に伝送する第１伝送処理を含み、かつ／または、前記第２エミュレート対象装置による前記所定のアプリケーションの処理は、前記第２エミュレート対象装置における処理の結果得られる処理結果データを前記第１エミュレート対象装置に伝送する第２伝送処理を含み、
前記第１伝送処理および／または前記第２伝送処理の頻度は、前記第２端末装置と前記情報処理装置との間の通信の頻度よりも高いことを特徴とする請求項２または３に記載の情報処理装置。
【請求項１４】
前記第１エミュレート対象装置が処理する前記所定のアプリケーションおよび前記第２エミュレート対象装置が処理する前記所定のアプリケーションは、ゲームアプリケーションであることを特徴とする請求項１ないし１３のいずれか一項に記載の情報処理装置。
【請求項１５】
前記ゲームアプリケーションは、複数プレイヤが参加可能なゲームのアプリケーションであることを特徴とする請求項１４に記載の情報処理装置。
【請求項１６】
前記第１受信手段は、さらに第１操作入力手段を備えた第１端末装置から、前記第１操作入力手段に対する操作に応じた第１操作データを受信し、
前記エミュレート制御手段は、前記第１操作入力手段に対する操作に基づいて処理を行うよう、前記第１エミュレート手段を制御し、かつ、前記第１処理に基づいて処理を行うよう、前記第２エミュレート手段を制御することを特徴とする請求項２に記載の情報処理装置。
【請求項１７】
前記第１エミュレート手段における処理によって得られた第１出力用データを前記第１端末装置に送信する第１送信手段をさらに備えたことを特徴とする請求項１６に記載の情報処理装置。
【請求項１８】
前記第１端末装置は、前記情報処理装置と同種の装置であることを特徴とする請求項１６または１７に記載の情報処理装置。
【請求項１９】
情報処理装置と、第２端末装置とからなる情報処理システムであって、
前記第２端末装置は、
ユーザからの操作を受け付ける第２操作入力手段と、
前記第２操作入力手段に対する操作に応じた第２操作データを前記情報処理装置に送信する第２送信手段と、
を備え、
前記情報処理装置は、
前記第２操作データを受信する第１受信手段と、
所定のアプリケーションを処理する第１エミュレート対象装置をエミュレートする第１エミュレート手段と、
所定のアプリケーションを処理する第２エミュレート対象装置をエミュレートする第２エミュレート手段と、
前記第１エミュレート手段における処理と前記第２エミュレート手段における処理とを並行して行うよう、前記第１エミュレート手段および前記第２エミュレート手段を制御するエミュレート制御手段と、
を備え、
前記エミュレート制御手段は、前記第２操作入力手段に対する操作に基づいて処理を行うよう、前記第２エミュレート手段を制御し、かつ、前記第２エミュレート手段における第２処理に基づいて処理を行うよう、前記第１エミュレート手段を制御することを特徴とする情報処理システム。
【請求項２０】
情報処理装置の第１エミュレート手段を用いて、所定のアプリケーションを処理する第１エミュレート対象装置をエミュレートする第１エミュレート工程と、
前記情報処理装置の第２エミュレート手段を用いて、所定のアプリケーションを処理する第２エミュレート対象装置をエミュレートする第２エミュレート工程と、
を含み、
前記第１エミュレート工程における処理と前記第２エミュレート工程における処理とは並行して行われ、
前記第１エミュレート工程における処理は、前記第２エミュレート手段における第２処理に基づいて行われ、かつ／または、前記第２エミュレート工程における処理は、前記第１エミュレート手段における第１処理に基づいて行われることを特徴とする情報処理方法。
【請求項２１】
情報処理装置において実行されることで、前記情報処理装置を、
所定のアプリケーションを処理する第１エミュレート対象装置をエミュレートする第１エミュレート手段と、
所定のアプリケーションを処理する第２エミュレート対象装置をエミュレートする第２エミュレート手段と、
前記第１エミュレート手段における処理と前記第２エミュレート手段における処理とを並行して行うよう、前記第１エミュレート手段および前記第２エミュレート手段を制御するエミュレート制御手段と、
して機能させる情報処理プログラムであって、
前記エミュレート制御手段は、前記第２エミュレート手段における第２処理に基づいて処理を行うよう、前記第１エミュレート手段を制御し、かつ／または、前記第１エミュレート手段における第１処理に基づいて処理を行うよう、前記第２エミュレート手段を制御することを特徴とする情報処理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、エミュレート対象装置をエミュレートする情報処理装置、情報処理システム、情報処理方法、および情報処理プログラムに関し、特に、他のエミュレート対象装置との通信を伴うアプリケーションを処理するエミュレート対象装置をエミュレートする情報処理装置、情報処理システム、情報処理方法、および情報処理プログラムに関するものである。
【背景技術】
【０００２】
特定の装置構成を持つ装置をエミュレート対象装置として、そこで実行される特定のアプリケーションを他の装置構成を持つ装置（エミュレート装置）で実行するエミュレーション技術が知られている（例えば、特許文献１を参照）。例えば、当該技術では、新ゲーム機と配信装置とがインターネットを介して接続されたとき、新ゲーム機におけるプレイヤに所望のゲームタイトルを選択させ、それに応じて、配信装置が、選択された旧ゲーム機用のゲームタイトルのゲームプログラムとともに当該旧ゲーム機をエミュレートするためのエミュレータプログラムを新ゲーム機へ配信する。これによって、新ゲーム機で旧ゲーム機用のゲームをプレイすることが可能になる。
【０００３】
例えば、エミュレーションプログラムは、旧ゲーム機用のゲームプログラムを構成する各命令を受け取った場合、当該各命令を、当該各命令に対応して新ゲーム機のＣＰＵが行うべき処理を指示するための命令に変換する。例えば、予め変換すべき複数の命令とそれに対応する変換後の命令を変換テーブルとして記憶しておき、旧ゲーム機用の命令を受け取る毎に、当該受け取った命令を新ゲーム機用ＣＰＵのための命令に変換して当該ＣＰＵで実行させることにより、命令をエミュレーションする。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００１−３４０６５５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
エミュレート対象装置および当該エミュレート対象装置用のアプリケーションが、複数のエミュレート対象装置間での通信ないしデータ伝送を行う機能を有する場合がある。この場合に、例えば、エミュレート対象装置が通信ケーブルのコネクタを備え、複数のエミュレート対象装置が通信ケーブルによって接続されることで、複数のエミュレート対象装置の間で通信ないしデータ伝送が行われる。
【０００６】
このようなエミュレート対象装置を別の装置構成を持つエミュレート装置でエミュレートする場合に、当該エミュレート装置が通信ケーブルのコネクタを有しておらず、他のエミュレート装置との通信を例えば無線ＬＡＮ通信で行う場合がある。しかしながら、複数のエミュレート対象装置の間の通信ケーブルを介した送受信が非常に高頻度で行われる場合には、エミュレート装置の間の無線ＬＡＮを介した通信は遅延やパッケージロス率が比較的大きく、通信ケーブルと同様の高頻度の送受信の要求を満足できない。
【０００７】
このように、エミュレーション技術によって、所定のアプリケーションを処理するエミュレート対象装置をエミュレートできたとしても、装置構成の相違、特に装置間の通信に関わる構成の相違によって、装置間で通信を行うエミュレート対象装置を完全にエミュレートすることが困難ないし不可能であることがある。
【０００８】
本願では、エミュレート対象装置とエミュレート装置とで装置間の通信に関わる構成が異なる場合にも、互いに通信を行う複数のエミュレート対象装置を複数のエミュレート装置でエミュレートするための技術が提供される。
【課題を解決するための手段】
【０００９】
本発明の第１の態様は、所定のアプリケーションを処理する第１エミュレート対象装置をエミュレートする第１エミュレート手段と、所定のアプリケーションを処理する第２エミュレート対象装置をエミュレートする第２エミュレート手段と、前記第１エミュレート手段における処理と前記第２エミュレート手段における処理とを並行して行うよう、前記第１エミュレート手段および前記第２エミュレート手段を制御するエミュレート制御手段とを備え、前記エミュレート制御手段は、前記第２エミュレート手段における第２処理に基づいて処理を行うよう、前記第１エミュレート手段を制御し、かつ／または、前記第１エミュレート手段における第１処理に基づいて処理を行うよう、前記第２エミュレート手段を制御することを特徴とする情報処理装置である。
【００１０】
この情報処理装置によれば、情報処理装置内で、第２エミュレート手段における処理に、第１エミュレート手段における第１処理を反映させ、及び／又は、第１エミュレート手段における処理に、第２エミュレート手段における第２処理を反映させることができるので、この情報処理装置の通信に関わる構成に関わらず、第１エミュレート対象装置にデータを伝送する第２エミュレート対象装置と、第２エミュレート対象装置からデータが伝送されて、そのデータに基づいて処理を行う第１エミュレート対象装置、および／または、第２エミュレート対象装置にデータを伝送する第１エミュレート対象装置と、第１エミュレート対象装置からデータが伝送されて、そのデータに基づいて処理を行う第２エミュレート対象装置をエミュレートすることができる。
【００１１】
本発明の第２の態様は、第２操作入力手段を備えた第２端末装置から、前記第２操作入力手段に対する操作に応じた第２操作データを受信する第１受信手段をさらに備え、前記エミュレート制御手段は、前記第２操作入力手段に対する操作に基づいて処理を行うよう、前記第２エミュレート手段を制御し、かつ、前記第２処理に基づいて処理を行うよう、前記第１エミュレート手段を制御することを特徴とする第１の態様の情報処理装置である。
【００１２】
この情報処理装置によれば、この情報処理装置とは別の第２端末装置を用いて、第２エミュレート手段の処理のための操作入力を行うことができる。
【００１３】
本発明の第３の態様は、前記第２エミュレート手段における処理によって得られた第２出力用データを前記第２端末装置に送信する第１送信手段をさらに備えたことを特徴とする第２の態様の情報処理装置である。
【００１４】
この情報処理装置によれば、この情報処理装置とは別の第２端末装置を用いて、グラフィックデータ、サウンドデータ等の第２出力用データを受信できる。
【００１５】
本発明の第４の態様は、ユーザからの操作を受け付ける第１操作入力手段をさらに備え、前記エミュレート制御手段は、前記第１操作入力手段に対する操作に基づいて処理を行うよう、前記第１エミュレート手段を制御し、かつ、前記第１処理に基づいて処理を行うよう、前記第２エミュレート手段を制御することを特徴とする第１ないし第３のいずれかの態様の情報処理装置である。
【００１６】
この情報処理装置によれば、この情報処理装置を第１端末装置として用いて、第１エミュレート手段の処理を行うための操作入力を行うことができる。
【００１７】
本発明の第５の態様は、前記第１エミュレート手段における処理によって得られた第１出力用データを出力する第１出力手段をさらに備えたことを特徴とする第１ないし第４のいずれかの態様の情報処理装置である。
【００１８】
この情報処理装置によれば、この情報処理装置を第１端末装置として用いて、グラフィックデータ、サウンドデータ等の第１出力用データを出力できる。
【００１９】
本発明の第６の態様は、前記第１エミュレート手段は、前記第１処理によって第１処理結果データを生成し、前記第２エミュレート手段は、前記第２処理によって第２処理結果データを生成し、前記第２エミュレート手段は、前記第１処理結果データに基づいて処理を行い、第１エミュレート手段は、前記第２処理結果データに基づいて処理を行うことを特徴とする第１ないし第５のいずれかの態様の情報処理装置である。
【００２０】
この情報処理装置によれば、第１エミュレート手段の処理の結果を第２エミュレート手段の処理に反映させることができ、第２エミュレート手段の処理の結果を第１エミュレート手段の処理に反映させることができる。
【００２１】
本発明の第７の態様は、前記第１エミュレート手段は、前記第２処理を経て前記第２エミュレート手段から得た前記第２操作データに基づいて処理を行うことを特徴とする第２ないし第５のいずれかの態様の情報処理装置である。
【００２２】
この情報処理装置によれば、第１エミュレート手段は、第２エミュレート手段の処理を行うための第２操作データに基づいて処理を行うことができる。
【００２３】
本発明の第８の態様は、前記第１エミュレート対象装置と前記第２エミュレート対象装置とは、同種の装置であることを特徴とする第１ないし第７のいずれかの態様の情報処理装置である。
【００２４】
この情報処理装置によれば、互いに通信を行う同種の複数のエミュレート対象装置が処理する所定のアプリケーションをエミュレートできる。
【００２５】
本発明の第９の態様は、前記第１エミュレート対象装置が処理する前記所定のアプリケーションと、前記第２エミュレート対象装置が処理する前記所定のアプリケーションとは、同種のアプリケーションであることを特徴とする第１ないし第８のいずれかの態様の情報処理装置である。
【００２６】
この情報処理装置によれば、複数のエミュレート対象装置間で互いに通信を行う機能を含む同種のアプリケーションをエミュレートできる。
【００２７】
本発明の第１０の態様は、前記エミュレート制御手段は、前記第１エミュレート手段における処理と前記第２エミュレート手段における処理とを同時に行うことを特徴とする第１ないし第９のいずれかの態様の情報処理装置である。
【００２８】
この情報処理装置によれば、互いに通信をしながら同時に処理を行う複数のエミュレート対象装置をエミュレートできる。
【００２９】
本発明の第１１の態様は、前記第２端末装置は、前記情報処理装置と同種の装置であることを特徴とする第２または第３の態様の情報処理装置である。
【００３０】
この情報処理装置によれば、複数の同種の装置のいずれか一つをこの情報処理装置として用い、他を第２端末装置として用い、互いに通信をしながら処理を行う複数のエミュレート対象装置をエミュレートできる。
【００３１】
本発明の第１２の態様は、第２操作入力手段を備えた第２端末装置から、前記第２操作入力手段に対する操作に応じた第２操作データを受信する第１受信手段と、前記第２エミュレート手段における処理によって得られた第２出力用データを前記第２端末装置に送信する第１送信手段と、ユーザからの操作を受け付ける第１操作入力手段とをさらに備え、前記エミュレート制御手段は、前記第２操作入力手段に対する操作に基づいて処理を行うよう、前記第２エミュレート手段を制御し、かつ、前記第１操作入力手段に対する操作および前記第２処理に基づいて処理を行うよう、前記第１エミュレート手段を制御し、前記第１受信手段および前記第１送信手段は、ローカル環境下で、前記第２端末装置と送受信を行うことを特徴とする第１ないし第１１のいずれかの態様の情報処理装置である。
【００３２】
この情報処理装置によれば、ローカル環境下でこの情報処理装置とは別の第２端末装置との間の通信をしながら、所定のアプリケーションを処理する第１エミュレート対象装置および第２エミュレート対象装置をエミュレートできる。
【００３３】
本発明の第１３の態様は、前記第１エミュレート対象装置による前記所定のアプリケーションの処理は、前記第１エミュレート対象装置における処理の結果得られる処理結果データを前記第２エミュレート対象装置に伝送する第１伝送処理を含み、かつ／または、前記第２エミュレート対象装置による前記所定のアプリケーションの処理は、前記第２エミュレート対象装置における処理の結果得られる処理結果データを前記第１エミュレート対象装置に伝送する第２伝送処理を含み、前記第１伝送処理および／または前記第２伝送処理の頻度は、前記第２端末装置と前記情報処理装置との間の通信の頻度よりも高いことを特徴とする第２または第３の態様の情報処理装置である。
【００３４】
この情報処理装置によれば、複数のエミュレート対象装置の間の送受信の頻度が、複数のエミュレート装置の間の送受信の頻度より高い場合にも、複数のエミュレート装置の間の送受信における遅延やパッケージロスの問題を回避して、所定のプリケーションを処理して互いに通信を行う複数のエミュレート対象装置をエミュレートできる。
【００３５】
本発明の第１４の態様は、前記第１エミュレート対象装置が処理する前記所定のアプリケーションおよび前記第２エミュレート対象装置が処理する前記所定のアプリケーションは、ゲームアプリケーションであることを特徴とする第１ないし第１３のいずれかの態様の情報処理装置である。
【００３６】
この情報処理装置によれば、ゲームアプリケーションを処理する複数のエミュレート対象装置をエミュレートできる。
【００３７】
本発明の第１５の態様は、前記ゲームアプリケーションは、複数プレイヤが参加可能なゲームのアプリケーションであることを特徴とする第１４の態様の情報処理装置である。
【００３８】
この情報処理装置によれば、対戦型ゲームアプリケーション等の、複数プレイヤが参加可能なゲームのアプリケーションを処理する複数のエミュレート対象装置をエミュレートできる。
【００３９】
本発明の第１６の態様は、前記第１受信手段は、さらに第１操作入力手段を備えた第１端末装置から、前記第１操作入力手段に対する操作に応じた第１操作データを受信し、前記エミュレート制御手段は、前記第１操作入力手段に対する操作に基づいて処理を行うよう、前記第１エミュレート手段を制御し、かつ、前記第１処理に基づいて処理を行うよう、前記第２エミュレート手段を制御することを特徴とする第２または第３の態様の情報処理装置である。
【００４０】
この情報処理装置によれば、この情報処理装置とは別の第１端末装置を用いて、第１エミュレート手段の処理のための操作入力を行うことができる。
【００４１】
本発明の第１７の態様は、前記第１送信手段は、さらに前記第１エミュレート手段における処理によって得られた第１出力用データを前記第１端末装置に送信することを特徴とする第１７の態様の情報処理装置である。
【００４２】
この情報処理装置によれば、この情報処理装置とは別の第１端末装置を用いて、グラフィックデータ、サウンドデータ等の第１出力用データを受信することができる。
【００４３】
本発明の第１８の態様は、前記第１端末装置は、前記情報処理装置と同種の装置であることを特徴とする第１６または第１７の態様の情報処理装置である。
【００４４】
この情報処理装置によれば、第１端末装置と同種の装置を、第１端末装置と第２端末装置との通信を仲介する情報処理装置として用いることができる。
【００４５】
本発明の第１９の態様は、情報処理装置と、第２端末装置とからなる情報処理システムであって、前記第２端末装置は、ユーザからの操作を受ける第２操作入力手段と、前記第２操作入力手段に対する操作に応じた第２操作データを前記情報処理装置に送信する第２送信手段とを備え、前記情報処理装置は、前記第２操作データを受信する第１受信手段と、所定のアプリケーションを処理する第１エミュレート対象装置をエミュレートする第１エミュレート手段と、所定のアプリケーションを処理する第２エミュレート対象装置をエミュレートする第２エミュレート手段と、前記第１エミュレート手段における処理と前記第２エミュレート手段における処理とを並行して行うよう、前記第１エミュレート手段および前記第２エミュレート手段を制御するエミュレート制御手段と備え、前記エミュレート制御手段は、前記第２操作入力手段に対する操作に基づいて処理を行うよう、前記第２エミュレート手段を制御し、かつ、前記第２エミュレート手段における第２処理に基づいて処理を行うよう、前記第１エミュレート手段を制御することを特徴とする情報処理システムである。
【００４６】
この情報処理システムによれば、情報処理装置内で、第２エミュレート手段における処理に、第１エミュレート手段における第１処理を反映させ、及び／又は、第１エミュレート手段における処理に、第２エミュレート手段における第２処理を反映させることができるので、この情報処理装置の通信に関わる構成に関わらず、第１エミュレート対象装置にデータを伝送する第２エミュレート対象装置と、第２エミュレート対象装置からデータが伝送されて、そのデータに基づいて処理を行う第１エミュレート対象装置とをエミュレートすることができるとともに、第２端末装置を用いて、第２エミュレート手段の処理のための操作入力を行い、かつ、グラフィックデータ、サウンドデータ等の第２出力用データを受信できる。
【００４７】
本発明の第２０の態様は、情報処理装置の第１エミュレート手段を用いて、所定のアプリケーションを処理する第１エミュレート対象装置をエミュレートする第１エミュレート工程と、前記情報処理装置の第２エミュレート手段を用いて、所定のアプリケーションを処理する第２エミュレート対象装置をエミュレートする第２エミュレート工程とを含み、前記第１エミュレート工程における処理と前記第２エミュレート工程における処理とは並行して行われ、前記第１エミュレート工程における処理は、前記第２エミュレート手段における第２処理に基づいて行われ、かつ／または、前記第２エミュレート工程における処理は、前記第１エミュレート手段における第１処理に基づいて行われることを特徴とする情報処理方法である。
【００４８】
この情報処理方法によれば、情報処理装置内で、第２エミュレート手段における処理に、第１エミュレート工程における第１処理を反映させ、及び／又は、第１エミュレート工程における処理に、第２エミュレート工程における第２処理を反映させることができるので、この情報処理装置の通信に関わる構成に関わらず、第１エミュレート対象装置にデータを伝送する第２エミュレート対象装置と、第２エミュレート対象装置からデータが伝送されて、そのデータに基づいて処理を行う第１エミュレート対象装置とをエミュレートすることができる。
【００４９】
本発明の第２１の態様は、情報処理装置において実行されることで、前記情報処理装置を、所定のアプリケーションを処理する第１エミュレート対象装置をエミュレートする第１エミュレート手段、所定のアプリケーションを処理する第２エミュレート対象装置をエミュレートする第２エミュレート手段、および前記第１エミュレート手段における処理と前記第２エミュレート手段における処理とを並行して行うよう、前記第１エミュレート手段および前記第２エミュレート手段を制御するエミュレート制御手段として機能させる情報処理プログラムであって、前記エミュレート制御手段は、前記第２エミュレート手段における第２処理に基づいて処理を行うよう、前記第１エミュレート手段を制御し、かつ／または、前記第１エミュレート手段における第１処理に基づいて処理を行うよう、前記第２エミュレート手段を制御することを特徴とする情報処理プログラムである。
【００５０】
この情報処理プログラムによっても、情報処理装置内で、第２エミュレート手段における処理に、第１エミュレート手段における第１処理を反映させ、及び／又は、第１エミュレート手段における処理に、第２エミュレート手段における第２処理を反映させることができるので、この情報処理装置の通信に関わる構成に関わらず、第１エミュレート対象装置にデータを伝送する第２エミュレート対象装置と、第２エミュレート対象装置からデータが伝送されて、そのデータに基づいて処理を行う第１エミュレート対象装置とをエミュレートすることができる。
【図面の簡単な説明】
【００５１】
【図１】本発明の実施の形態の情報処理システムでエミュレートされる複数のエミュレート対象装置の外観を示す図
【図２】本発明の実施の形態の情報処理システムでエミュレートされる複数のエミュレート対象装置の機能構成を示すブロック図
【図３】バックギャモンゲームのアプリケーションの処理を実行する場合の複数のエミュレート対象装置の処理の一部を示すフロー図
【図４】図１および図２の複数のエミュレート対象装置をエミュレートする複数のエミュレート装置の外観を示す図
【図５】図１および図２の複数のエミュレート対象装置をエミュレートする複数のエミュレート装置の機能構成を示すブロック図
【図６】本実施の形態の情報処理システムを構成する端末装置の機能構成を示すブロック図
【図７】専らエミュレート制御部を提供するために用いられる情報処理装置の機能構成を示すブロック図
【発明を実施するための形態】
【００５２】
以下、図面を参照して本発明の実施の形態を説明する。なお、以下に説明する実施の形態は、本発明を実施する場合の一例を示すものであって、本発明を以下に説明する具体的構成に限定するものではない。本発明の実施にあたっては、実施の形態に応じた具体的構成が適宜採用されてよい。
【００５３】
図１は、本実施の形態の情報処理システムでエミュレートされる複数のエミュレート対象装置の外観を示す図であり、図２は、図１に示した複数のエミュレート対象装置の機能構成を示すブロック図である。まず、図１および図２を参照して、本実施の形態の情報処理システムがエミュレーション技術によって模倣ないし再現しようとする情報処理システムについて説明する。
【００５４】
図１を参照すると、第１エミュレート対象装置である第１端末装置５１０と第２エミュレート対象装置である第２端末装置５２０は、互いに同種の情報処理装置であり、具体的には同種の携帯型ゲーム機である。同種の情報処理装置とは、同じ装置構成を持った情報処理装置（典型的には、同じ型番の装置）であり、本明細書では、少なくともエミュレーションの対象とするアプリケーション（以下、「対象アプリケーション」という。）を処理するためのハードウェアおよびソフトウェアの構成が同一である情報処理装置をいう。
【００５５】
第１端末装置５１０は、Ａボタン５１１１、Ｂボタン５１１２、および十字ボタン５１１３を含む操作入力部５１１と、液晶パネル５１２１およびスピーカ５１２２を含む出力部５１２とを備えている。また、第２端末装置５２０も同様に、Ａボタン５２１１、Ｂボタン５２１２、および十字ボタン５２１３を含む操作入力部５２１と、液晶パネル５２２１およびスピーカ５２２２を含む出力部５２２とを備えている。
【００５６】
第１端末装置５１０および第２端末装置５２０は、いずれも図示しない通信ケーブル用コネクタを有し、これらのコネクタに通信ケーブル５５０の両端の接続プラグが各々挿し込まれることで、互いに通信可能に接続される。
【００５７】
図２を参照すると、第１エミュレート対象装置である第１端末装置５１０および第２エミュレート対象装置である第２端末装置５２０は同一の機能構成を有しており、第１端末装置５１０は、操作入力部５１１、出力部５１２、記憶部５１３、処理部５１４、受信部５１５、および送信部５１６を備え、第２端末装置５２０は、操作入力部５２１、出力部５２２、記憶部５２３、処理部５２４、受信部５２５、および送信部５１６を備えている。なお、受信部５１５と送信部５１６とは、別れている必要はなく一体のモジュールであってもよい。
【００５８】
操作入力部５１１は、第１端末装置５１０のユーザ（第１ユーザ）からの操作入力を受け、処理部５１４は、この操作に応じた第１操作データを生成する。操作入力部５２１は、第２端末装置５２０のユーザ（第２ユーザ）からの操作入力を受け、処理部５１４は、この操作に応じた第２操作データを生成する。出力部５１２は、処理部５１４における処理の結果生成されたグラフィックデータやサウンドデータ等の第１出力用データを出力し、出力部５２２は、処理部５２４における処理の結果生成されたグラフィックデータやサウンドデータ等の第２出力用データを出力する。
【００５９】
送信部５１６は、処理部５１４における処理によって得られた処理結果を第１処理結果データとして、通信ケーブル５５０を介して第２端末装置５２０に伝送し、送信部５２６は、処理部５２４における処理によって得られた処理結果を第２処理結果データとして、通信ケーブル５５０を介して第１端末装置５１０に伝送する。受信部５１５は、第２端末装置５２０から伝送されてきた第２処理結果データを受信し、受信部５２５は、第１端末装置５１０から伝送されてきた第１処理結果データを受信する。この第１端末装置５１０と第２端末装置５２０との間のデータの送受信は、比較的高頻度（高周期）、例えば１／６０秒間隔で行われる。
【００６０】
記憶部５１３、５２３には、同一のアプリケーションが記憶されている。処理部５１４、５２４は、それぞれ記憶部５１３、５２３に記憶されたアプリケーションを読み出して、そのアプリケーションの処理を実行する。記憶部５１３、５２３は、第１端末装置５１０および第２端末装置５２０にそれぞれ内蔵された記憶デバイスであってもよいし、第１端末装置５１０および第２端末装置５２０に設けられたスロットに差し込まれた可搬型の記憶媒体であってもよい。
【００６１】
アプリケーションはゲームのアプリケーションであってよいが、本発明は、複数のユーザがプレイヤとして参加する対戦型のゲームのアプリケーション等、第１端末装置５１０と第２端末装置５２０との間の通信を伴い、第１端末装置５１０および第２端末装置５２０が、それぞれの操作入力部５１１、５２１に与えられたユーザの操作入力のみならず、接続された他方の端末装置からのデータにも基づいて処理を行うアプリケーションである場合に、特に有効である。
【００６２】
処理部５１４は、操作入力部５１１が受けた第１操作、および受信部５１５で受信した第２端末装置５２０からの第２処理結果データに基づいて、記憶部５１３に記憶されたアプリケーションを処理して第１処理結果データおよび第１出力用データを生成する。処理部５２４も同様に、操作入力部５２１から与えられた第２操作データ、および受信部５２５で受信した第１端末装置５１０からの第１処理結果データに基づいて、記憶部５２３に記憶されたアプリケーションを処理して第２処理結果データおよび第２出力用データを生成する。
【００６３】
なお、上記の例では、第１端末装置５１０では処理部５１４にて第１処理結果データが生成されてこれが送信部５１６から第２端末装置５２０に送信されるが、この第１処理結果データの代わりに第１出力用データが第２端末装置５２０に送信されてもよい。また、第１処理結果データの代わりに操作入力部５１１で生成された第１操作データがそのまま第２端末装置５２０に送信されてもよい。第２端末装置５２０においても同様に、第２処理データの代わりに第２出力用データが第１端末装置５１０に送信されてよく、あるいは、第２操作データがそのまま第１端末装置５１０に送信されてもよい。
【００６４】
図３は、通信を伴うアプリケーションの例として、複数のユーザがプレイヤとして参加する対戦型のゲームの一例としてのバックギャモンゲームのアプリケーションの処理を実行する場合の第１端末装置５１０と第２端末装置５２０の処理の一部を示すフロー図である。図３の左側の列の各ステップは第１端末装置５１０における処理であり、図３の右側の列の各ステップは第２端末装置５２０における処理を示している。
【００６５】
第１端末装置５１０のユーザ（第１ユーザ）が、第１端末装置５１０の操作入力部５１１に対して、サイコロを振るための操作入力をすると（ステップＳ３１１）、第１端末装置５１０の処理部５１４は、その第１操作に基づいて処理を行ってサイコロを振る処理を行って（ステップＳ３１２）、その処理結果（出たサイコロの目）を示すデータを第１処理結果データとして第２端末装置５２０に送信する（ステップＳ３１３）。また、処理部５１４は、処理結果（出たサイコロの目）を示すグラフィックデータを第１出力用データとして生成して（ステップＳ３１４）、出力部５１２にてこのグラフィックデータを出力する（ステップＳ３１５）。
【００６６】
第２端末装置５２０の受信部５２５は、第１端末装置５１０からの第１処理結果データを受信する（ステップＳ３２１）。そして、処理部５２４は、受けた第１処理結果データ（第１ユーザが出したサイコロの目）を示すグラフィックデータを第２出力用データとして生成して（ステップＳ３２２）、出力部５１２にてこのグラフィックデータを出力する（ステップＳ３２３）。
【００６７】
次に、第１端末装置５１０のユーザ（第１ユーザ）が、第１端末装置の操作入力部５１１に対して、駒を移動させるための操作入力をすると（ステップＳ３１６）、第１端末装置５１０の処理部５１４は、その第１操作に基づいて駒を移動させる処理を行って（ステップＳ３１７）、その処理結果（移動された駒及びその位置）を示すデータを第１処理結果データとして第２端末装置５２０に送信する（ステップＳ３１８）。また、処理部５１４は、処理結果（移動された駒及びその位置）に基づいて駒移動後の盤面を示すグラフィックデータを第１出力用データとして生成して（ステップＳ３１９）、出力部５１２にてこのグラフィックデータを出力する（ステップＳ３２０）。
【００６８】
第２端末装置５２０の受信部５２５は、第１端末装置５１０からの第１処理結果データを受信する（ステップＳ３２４）。そして、処理部５２４は、受けた第１処理結果データ（移動された駒及びその位置）に基づいて駒異動後の盤面を示すグラフィックデータを第２出力用データとして生成して（ステップＳ３２５）、出力部５１２にてこのグラフィックデータを出力する（ステップＳ３２６）。
【００６９】
以下、説明は省略するが、第１端末装置５１０と第２端末装置５２０とで上記の処理を交互に繰り返していくことで、ゲームが進行していく。このようにして、第１端末装置５１０と第２端末装置５２０とで、ゲームの進行内容が同一となって、ゲームの通信対戦が実現される。
【００７０】
なお、アプリケーションは、上記の例のように第１端末装置５１０への操作入力と第２端末装置５２０への操作入力とが所定の順番に従って行われるものに限らず、例えば、格闘ゲームのアプリケーションのように、第１端末装置５１０への操作入力と第２端末装置５２０への操作入力とが随時に行われるものであってもよい。この場合にも、第１端末装置５１０からは、操作入力部５１１に対して与えられた操作入力に基づいて処理部５１４がアプリケーションに従った処理を行い、それによって得られたデータが第２端末装置５２０に送信されるが、操作入力部５１０に対して与えられた操作入力自体を示すデータが第２端末装置５２０に送信されてよく、処理部５１４によって生成された第１出力用データが第２端末装置５３０に送信されてもよい。また、第２端末装置５２０から第１端末装置５１０に送信されるデータも同様である。
【００７１】
次に、このような通信を伴うアプリケーションを処理する第１端末装置５１０および第２端末装置５２０をエミュレート対象装置として、エミュレート対象装置とは異なる構成を有するエミュレート装置でこれらのエミュレート対象装置をエミュレートする場合を説明する。図４は、図１および図２の複数のエミュレート対象装置をエミュレートする複数のエミュレート装置の外観を示す図であり、図５は、図４に示した複数のエミュレート装置の機能構成を示すブロック図である。図４および図５は、本発明の原理を利用しない例を説明する図であり、以下では、これらを参照して本発明が解決する課題を説明する。
【００７２】
図４に示すように、第１エミュレート装置である第１端末装置３１０と第２エミュレート装置である第２端末装置３２０はいずれも携帯型のゲーム機であって、互いに同種のゲーム機である。第１端末装置３１０は、Ａボタン３１１１、Ｂボタン３１１２、Ｘボタン３１１３、Ｙボタン３１１４、十字ボタン３１１５タッチセンサ３１１７は、下側液晶パネル３１２３、スライドパッド３１１６、およびタッチセンサ３１１７を含む操作入力部３１１と、上側液晶パネル３１２１、スピーカ３１２２、および下側液晶パネル３１２３を含む出力部３１２とを備えている。タッチセンサ３１１７は、下側液晶パネル３１２３に重ねて設けられ、タッチセンサ３１１７と下側液晶パネル３１２３とでタッチパネルが構成されている。
【００７３】
また、第２端末装置３２０も同様に、Ａボタン３２１１、Ｂボタン３２１２、Ｘボタン３２１３、Ｙボタン３２１４、十字ボタン３２１５、スライドパッド３２１６、タッチセンサ３２１７を含む操作入力部３２１と、上側液晶パネル３２２１、スピーカ３２２２、および下側液晶パネル３２２３を含む出力部３２２とを備えている。第２端末装置３２０においても、下側液晶パネルとタッチセンサ３２１７とは重ねて設けられ、これらによってタッチパネルが構成されている。
【００７４】
第１端末装置３１０および第２端末装置３２０には、通信ケーブル用コネクタは設けられておらず、その代わりに、図示しない無線ＬＡＮモジュールを備えている。端末装置３１０および第２端末装置３２０は、無線ＬＡＮモジュールを用いて、無線ＬＡＮルータ３５０に無線接続可能であり、無線ＬＡＮルータ３５０を介して互いに通信可能である。また、無線ＬＡＮルータ３５０は、図示しないモデムを介してインターネットに接続しており、これによって、第１端末装置３１０および第２端末装置３２０はインターネットにも接続可能である。
【００７５】
図５を参照すると、第１エミュレート装置としての第１端末装置３１０および第２エミュレート装置としての第２端末装置３２０は同一の機能構成を有しており、第１端末装置３１０は、操作入力部３１１、出力部３１２、記憶部３１３、エミュレート部３１４、受信部３１５、および送信部３１６を有し、第２端末装置３２０は、操作入力部３２１、出力部３２２、記憶部３２３、エミュレート部３２４、受信部３２５、および送信部３１６を有している。第１端末装置３１０の受信部３１５および送信部３１６、および第２端末装置３２０の受信部３２５および送信部３２６は、それぞれ上記の無線ＬＡＮモジュールによって実現される。
【００７６】
記憶部３１３、３２３には、いずれも第１端末装置５１０および第２端末装置５２０に記憶されたアプリケーションのＲＯＭイメージが記憶されている。エミュレート部３１４、３２４は、このＲＯＭイメージを用いてエミュレート処理を行うことで、この第１端末装置３１０および第２端末装置３２０によって、第１端末装置５１０と第２端末装置５２０とで対象アプリケーションを実行するのと同様に、対象アプリケーションを実行する。すなわち、エミュレート装置としての第１端末装置３１０および第２端末装置３２０は、このエミュレート部３１４、３２４によって、対象アプリケーションを実行するエミュレート対象装置である第１端末装置５１０および第２端末装置５２０をエミュレートする。
【００７７】
なお、記憶部３１３、３２３は、第１端末装置３１０および第２端末装置３２０にそれぞれ内蔵された記憶デバイスであってもよいし、第１端末装置３１０および第２端末装置３２０に設けられたスロットに差し込まれた可搬型の記憶媒体であってもよい。また、記憶部３１３、３２３は、第１端末装置３１０および第２端末装置３２０にそれぞれ内蔵された記憶デバイスである場合において、そこに記憶されるＲＯＭイメージは、インターネット経由でダウンロードされたものであってよい。
【００７８】
第１端末装置３１０の送信部３１６から送信されたデータは無線ＬＡＮルータ３５０を介して第２端末装置３２０に伝送されて、第２端末装置の受信部３２５にて受信され、第２端末装置３２０の送信部３２６から送信されたデータは無線ＬＡＮルータ３５０を介して第１端末装置３１０に伝送されて、第１端末装置３１０の受信部３１５にて受信される。この第１端末装置３１０と第２端末装置３２０との間のデータの送受信は、比較的低頻度（低周期）、例えば１／２０秒間隔で行われる。このように、エミュレート装置である第１端末装置３１０および第２端末装置３２０では、エミュレート対象装置の通信ケーブル５５０を、無線ＬＡＮルータ３５０を介した無線ＬＡＮ通信で代替しており、これをリンクケーブルシミュレーションという。
【００７９】
エミュレート対象装置である第１端末装置５１０と第２端末装置５２０との間では、高周期で通信が行われるのに対して、エミュレート装置である第１端末装置３１０と第２端末装置３２０との間では、低周期でしか通信を行うことができない。しかも、エミュレート装置である第１端末装置３１０および第２端末装置３２０では、その間の通信に無線ＬＡＮを利用しているので、通信ケーブル５５０を利用するエミュレート対象装置と比較して、遅延およびパッケージロス率が大きくなる。よって、図５に示す構成では、通信を伴うアプリケーションを実行する第１端末装置５１０および第２端末装置５２０の通信の要求を満足できない。
【００８０】
そこで、本発明の実施の形態では、第１端末装置３１０および第２端末装置３２０を用いて、第１端末装置５１０と第２端末装置５２０との間のリンクケーブルシミュレーションを行うために、以下の構成を採用する。図６は、本実施の形態の情報処理システム１００を構成する第１端末装置１１０および第２端末装置１２０の機能構成を示すブロック図である。第１端末装置１１０および第２端末装置１２０のハードウェア構成は、図４に示す構成と同じである。なお、図６では、無線ＬＡＮルータの図示を省略しているが、図６の例においても第１端末装置１１０と第２端末装置１２０とは、無線ＬＡＮルータを介して無線通信を行う。
【００８１】
図６に示すように、情報処理装置としての第１端末装置１１０と第２端末装置１２０によって、本実施の形態の情報処理システム１００が構成されている。なお、図６では、第１端末装置１１０のほかに、１つの端末装置（第２端末装置１２０）を有し、２つの端末装置によって情報処理システム１００が構成されているが、第２端末装置１２０と同様の端末装置が複数あってもよい。
【００８２】
第１端末装置１１０は、操作入力部１１１、出力部１１２、記憶部１１３、エミュレート制御部１１４、受信部１１５、および送信部１１６を備え、第２端末装置１２０も、操作入力部１２１、出力部１２２、記憶部１２３、エミュレート制御部１１４、受信部１２５、および送信部１２６を備える。記憶部１１３には、対象アプリケーションのＲＯＭイメージ、および本発明の実施の形態の情報処理プログラムとしてのエミュレーションプログラムが記憶されている。
【００８３】
エミュレート制御部１１４は、ＣＰＵ、メモリ、記憶部１１３からメモリにロードされたエミュレーションプログラムなどによって実現され、図６ではそれらの連携によって実現される機能ブロックを描いている。また、エミュレート制御部１２４も、ＣＰＵ、メモリ、記憶部１１３からメモリにロードされたエミュレーションプログラムなどによって実現する。これらの機能ブロックがハードウェアのみ、ソフトウェアのみ、またはそれらの組合せ等の種々の形で実現できることは、当業者に理解されるところである。
【００８４】
上記のように、本実施の形態のエミュレーションプログラムは、図６に示す第１端末装置１１０のエミュレート制御部１１４を構成する第１部分と、第２端末装置１２０のエミュレート制御部１２４を構成する第２部分とを有し、ＣＰＵが第１部分を実行することでエミュレート制御部１１４が構成され、ＣＰＵが第２部分を実行することで、エミュレート制御部１２４が構成される。
【００８５】
なお、エミュレーションプログラムは、エミュレート制御部１１４のみを構成するものであってもよい。すなわち、エミュレーションプログラムは、第１部分のみからなるものであってもよい。この場合には、エミュレート制御部１２４は、エミュレーションプログラムとは別のプログラムによって実現されてもよく、あるいは、第２端末装置１２０にインストールされているファームウェアによって実現されてもよい。
【００８６】
第２端末装置１２０の操作入力部１２５は、第２端末装置１２０のユーザ（第２ユーザ）の操作入力（第２操作）を受け付け、エミュレート制御部１２４は、その第２操作を示す第２操作データを生成する。エミュレート制御部１２４は、生成した第２操作データを送信部１２６から第１端末装置１１０に送信するように、送信部１２６を制御する。
【００８７】
また、第２端末装置１２０の受信部１２５は、第１端末装置１１０から送信されてきた第２出力用データを受信する。エミュレート制御部１２４は、受信部１２５にて受信した第２出力用データを出力部１２２にて出力するように、出力部１２２を制御する。このように、第２端末装置１２０のエミュレート制御部１２４は、主に第２操作データおよび第２出力用データの入出力を管理するものであり、データの入出力管理部として機能する。
【００８８】
第１端末装置１１０の受信部１１５は、第２端末装置１２０の送信部１２６から送信されてきた第２操作データを受信する。操作入力部１１１は、第１端末装置１１０のユーザ（第１ユーザ）の操作入力（第１操作）を受け付け、エミュレート制御部１１４は、その第１操作を示す第１操作データを生成する。
【００８９】
第１端末装置１１０のエミュレート制御部１１４は、入力分配部１１４１、第１エミュレート部１１４２、第２エミュレート部１１４３、および出力分配部１１４４からなる。エミュレート制御部１１４は、ＲＯＭ管理やＵＩ管理を行うとともに、入力分配部１１４１、第１エミュレート部１１４２、第２エミュレート部１１４３、および出力分配部１１４４の動作を制御する。
【００９０】
第１エミュレート部１１４２および第２エミュレート部１１４３は、いずれもＣＰＵ、メモリ、記憶部１１３からメモリにロードされたＲＯＭイメージなどによって実現され、エミュレーションプログラムによって制御される。第１エミュレート部１１４２および第２エミュレート部１１４３は、エミュレータコアとも呼ばれる。なお、エミュレート制御部１１４、１２４の上記の構成は、１つのプロセッサによって構成されてもよく、あるいは、複数台のプロセッサが分担して構成してもよい。
【００９１】
入力分配部１１４１は、生成された第１操作データ、および受信部１１５にて受信した第２操作データを分配する。具体的には、入力分配部１１４１は、第１操作データを第１エミュレート部１１４２に与え、第２操作データを第２エミュレート部１１４３に与える。なお、第２端末装置１２０と同様の構成を有する端末装置が複数あり、３以上の端末装置で情報処理システム１００が構成される場合には、エミュレート部もそれに合わせて３以上構成され、入力分配部１１４１は、対応するエミュレート部に操作データを分配する。
【００９２】
第１エミュレート部１１４２は、記憶部１１３に記憶されたＲＯＭイメージおよびエミュレーションプログラム（の第１部分）を用いて、対象アプリケーションを処理するエミュレート対象装置としての第１端末装置５１０をエミュレートする。第２エミュレート部１１４３も同様に、記憶部１１３に記憶されたＲＯＭイメージおよびエミュレーションプログラム（の第１部分）を用いて、対象アプリケーションを処理するエミュレート対象装置としての第２端末装置５２０をエミュレートする。
【００９３】
このように、本実施の形態の情報処理システム１００では、第１端末装置５１０のエミュレーションおよび第２端末装置５２０のエミュレーションがいずれも第１端末装置１１０で行われる。エミュレート制御部１１４は、第１エミュレート部１１４２における処理と第２エミュレート部１１４３における処理とを同期させて、それらの処理を並行して行うよう、第１エミュレート部１１４２および第２エミュレート部１１４３を制御する。これにより、第１エミュレート部１１４２における処理と第２エミュレート部１１４３における処理は同時に行われる。
【００９４】
第１エミュレート部１１４２は、入力分配部１１４１から分配された第１操作データと、第２エミュレート部１１４３からの第２処理結果データに基づいて、ＲＯＭイメージに従った処理を行い、第２エミュレート部１１４３は、入力分配部１１４１から分配された第２操作データと、第１エミュレート部１１４２からの第１処理結果データに基づいて、ＲＯＭイメージに従った処理を行う。
【００９５】
第１エミュレート部１１４２は、第１操作データおよび第２処理結果データに基づいて処理（第１処理）を行い、第１処理結果データおよび第１出力用データを生成し、第２エミュレート部１１４３は、第２操作データおよび第１処理結果データに基づいて処理（第２処理）を行い、第２処理結果データおよび第２出力用データを生成する。第１エミュレート部１１４２で生成された第１処理結果データは、第２エミュレート部１１４３に与えられ、第２エミュレート部１１４３で生成された第２処理結果データは、第１エミュレート部１１４２に与えられる。また、第１エミュレート部１１４２で生成された第１出力用データは、出力分配部１１４４によって出力部１１２に分配され、出力部１１２から出力され、第２エミュレート部１１４３で生成された第２出力用データは、出力分配部１１４４によって送信部１１６に分配され、送信部１１６から第２端末装置１２０に送信される。
【００９６】
このように、第１エミュレート部１１４２と第２エミュレート部１１４３との間のリンクケーブルシミュレーションは、第１端末装置１１０内で実現する。エミュレート制御部１１４は、第１端末装置１１０内でリンクケーブルシミュレーションを実現するために、リンクケーブル関連のレジスタを実現するとともに、第１エミュレート部１１４２と第２エミュレート部との間の第１処理結果データおよび第２処理結果データの転送シーケンスの制御を実行する。
【００９７】
エミュレート制御部１１４を構成するメモリには、第１エミュレート部１１４２で生成された第１出力用データを一時的に保存するための第１メモリ領域、第２エミュレート部１１４３で生成された第２出力用データを一時的に保存するための第２メモリ領域、出力分配部１１４４によって分配された第１出力用データを一時的に保存するための第１バッファ領域、および出力分配部１１４４によって分配された第２出力用データを一時的に保存するための第２バッファ領域が確保される。
【００９８】
上述のように、本実施の形態の情報処理システム１００では、第２端末装置１２０は、エミュレート部を有しておらず、第２操作データを生成して、第１端末装置１１０に送信し、第２出力用データを受信して出力するのみである。このような第２端末装置１２０から見ると、第１端末装置１１０は、第２端末装置１２０をクライアントとするサーバとして機能しており、クライアントである第２端末装置１２０は、第２ユーザの操作入力をサーバとしての第１端末装置１１０に送信し、後述するように、サーバである第１端末装置１１０から表示用のレンダリングデータを受信する。このように、情報処理システム１００は、サーバ／クライアント構成を採用しているということもできる。
【００９９】
なお、上記の例では、第１エミュレート部１１４２は、第１処理の結果得られた第１処理結果データを第２エミュレート部１１４３に渡し、第２エミュレート部１１４３はこの第１処理結果データ（と第２操作データ）に基づいて処理を行ったが、第１エミュレート部１１４２が、第１処理を行うことで、第１処理結果データに代えて、第１操作データをそのまま第２エミュレート部１１４３に渡してもよい。この場合に、第２エミュレート部１１４３は、第１操作データ（と第２操作データ）に基づいて対象アプリケーションに基づく処理を行うことができる。第２エミュレート部１１４３から第１エミュレート部１１４２に与えられるデータについても同様である。
【０１００】
さらに、第１エミュレート部１１４２は、第１処理結果データに代えて、出力部１１２から出力すべき第１出力用データを第２エミュレート部１１４３に与えてもよい。また、第２エミュレート部１１４３も、第２処理結果データに代えて、送信部１１６から送信すべき第２出力用データを第１エミュレート部１１４２に与えてもよい。すなわち、第１エミュレート部１１４２から第２エミュレート部１１４３に与えられるデータ（第１処理結果データ、第１操作データ、および第１出力用データ）は、いずれも第１エミュレート部における第１処理を経て第２エミュレート部１１４３に与えられるデータであり、第２エミュレート部１１４３から第１エミュレート部１１４２に与えられるデータ（第２処理結果データ、第２操作データ、および第２出力用データ）は、第２エミュレート部１１４３における第２の処理を経て、第１エミュレート部１１４２に与えられるデータである。
【０１０１】
第１出力用データは、グラフィックデータ、および／またはサウンドデータを含むがこれらに限られない。例えば、第１端末装置１１０および第２端末装置１２０がバイブレーション装置を備えている場合には、これらのバイブレーション装置を駆動するための信号も第１出力用データまたは第２出力用データとなり得る。
【０１０２】
なお、上記の例では、第１エミュレート部１１４２で第１出力用データを生成し、第２エミュレート部１１４３で第２出力用データを生成した。これは、例えば、対象アプリケーションがバックギャモンゲームのアプリケーションである場合に、第１出力用データとして、第１ユーザの陣地が手前になるようなグラフィックデータを生成し、第２出力用データとして、第２ユーザの陣地が手前になるようなグラフィックデータを生成するなど、第１出力用データと第２出力用データとが異なっていてよいことを意味している。
【０１０３】
変形例として、第１出力用データと第２出力用データが同じデータであってよい。さらに、この場合には、同一の出力用データを生成する１つの出力用データ生成部が設けられてもよく、第１エミュレート部１１４２および第２エミュレート部１１４３は、それぞれ第１処理結果データおよび第２処理結果データをこの出力用データ生成部に出力し、出力用データ生成部は第１処理結果データおよび第２処理結果データに基づいて、第１端末装置１１０と第２端末装置１２０とで共用される出力用データを生成する。
【０１０４】
本実施の形態の情報処理システム１００において、対象アプリケーションとして、例えばバックギャモンゲームのアプリケーションを実行する場合には、図３を引用して第１端末装置５１０と第２端末装置５２０との間で実行される処理として説明したのと同様の手順で第１エミュレート部１１４２および第２エミュレート部１１４３との間で処理が実行されてゲームが進行する。すなわち、図３における第１端末装置５１０の処理および第２端末装置５２０の処理をそれぞれ第１エミュレート部１１４２および第２エミュレート部１１４３の処理とすることで、本実施の形態の情報処理システム１００の処理を説明できる。この場合に、図３の送信／受信は、エミュレータ制御部１１４内での第１エミュレート部１１４２と第２エミュレート部１１４３との間のデータの受け渡しに置き換えられる。
【０１０５】
以上のように、本実施の形態の情報処理システム１００によれば、リンクケーブルシミュレーションが第１端末装置１１０内で行われるので、エミュレート対象装置である第１端末装置５１０および第２端末装置５２０とエミュレート装置である第１端末装置１１０および第２端末装置１２０との間の通信に関わる構成の相違に関わらず、第１端末装置５１０および第２端末装置５２０を第１端末装置１１０および第２端末装置１２０でエミュレートすることができる。
【０１０６】
なお、上記の実施の形態では、第１エミュレート部１１４２と第２エミュレート部１１４３がいずれも同一の対象アプリケーションのＲＯＭイメージを実行したが、これに限らず、エミュレート制御部１１４に構成される複数のエミュレート部が、互いに異なるＲＯＭイメージを実行してもよい。すなわち、エミュレート制御部１１４に構成されるあるエミュレート部がエミュレートするエミュレート対象装置にて処理される対象アプリケーションと、エミュレート制御部１１４に構成される他のエミュレート部がエミュレートするエミュレート対象装置にて処理される対象アプリケーションとが異種のものであってもよい。
【０１０７】
本発明の原理を応用することで、以下のような構成を実現することもできる。すなわち、上記の実施の形態では、第１端末装置において、入力分配部１１４１、第１エミュレート部１１４２、第２エミュレート部１１４３、および出力分配部１１４４を有するエミュレート制御部１１４が構成されるとともに、操作入力部１１１と出力部１１２も設けられ、第１ユーザからの操作入力を受け付けて第１ユーザのために出力を行う端末装置としても用いられたが、入力分配部１１４１、第１エミュレート部１１４２、第２エミュレート部１１４３、および出力分配部１１４４を有するエミュレート制御部１１４が専用の情報処理装置として構成され、第１ユーザは、この専用の情報処理装置をサーバとして、この情報処理装置とは別の第１端末装置１１０をクライアントとして、上記で説明した第２端末装置１２０と同様に機能させることで、第１端末装置１１０と第２端末装置１２０との間の通信を伴う対象アプリケーションのエミュレートを実現することもできる。
【０１０８】
図７は、専らサーバとして上記で説明したエミュレート制御部１１４を提供するために用いられる情報処理装置の機能構成を示すブロック図である。図７の例では、３つの端末装置がクライアントとなる場合を示している。なお、端末装置は４つ以上であってもよい。情報処理装置２００は、記憶部２１３、エミュレート制御部２１４、受信部２１５、および送信部２１６を備えている。
【０１０９】
記憶部２１３には、記憶部１１３と同様に、対象アプリケーションのＲＯＭイメージと、エミュレーションプログラムが記憶されている。エミュレート制御部２１４は、ＣＰＵ、メモリ、記憶部２１３からメモリにロードされたエミュレーションプログラムなどによって実現され、図７ではそれらの連携によって実現される機能ブロックを描いている。特に、クライアントとなる端末装置の数に応じた数のエミュレート部が構成され、本例のように、クライアントとなる端末装置が３つある場合には、３つのエミュレート部が構成される。すなわち、エミュレート制御部２１４は、入力分配部２１４１、第１エミュレート部２１４２、第２エミュレート部２１４３、第３エミュレート部２１４４、および出力分配部２１４５からなる。
【０１１０】
受信部２１５は、第１端末装置、第２端末装置、および第３端末装置からそれぞれ第１操作データ、第２操作データ、および第３操作データを受信する。入力分配部２１４１は、受信部２１５にて受信した第１操作データ、第２操作データ、および第３操作データをそれぞれ第１エミュレート部２１４２、第２エミュレート部２１４３、第３エミュレート部２１４４のうちの対応するものに分配する。第１エミュレート部２１４２、第２エミュレート部２１４３、第３エミュレート部２１４４は、各々ＲＯＭイメージに従って処理を行い、処理結果データを他のエミュレート部に出力するとともに、それぞれ第１出力用データ、第２出力用データ、および第３出力用データを生成して出力分配部２１４５に出力する。
【０１１１】
第１エミュレート部２１４２は、第１操作データ、第２エミュレート部２１４３からの第２処理結果データ、および第３エミュレート部２１４４からの第３処理結果データに基づいて処理を行う。第２エミュレート部２１４３は、第２操作データ、第１エミュレート部２１４２からの第１処理結果データ、および第３エミュレート部２１４４からの第３処理結果データに基づいて処理を行う。第３ミュレート部２１４４は、第３操作データ、第１エミュレート部２１４２からの第１処理結果データ、および第２エミュレート部２１４３からの第２処理結果データに基づいて処理を行う。
【０１１２】
出力分配部２１４５は、第１出力用データ、第２出力用データ、および第３出力用データをそれぞれ第１端末装置、第２端末装置、および第３端末装置に送信するように分配して、送信部２１６に出力する。送信部２１６は、第１出力用データ、第２出力用データ、および第３出力用データをそれぞれ第１端末装置、第２端末装置、および第３端末装置に送信する。
【０１１３】
この図７の構成において、情報処理装置２１０は、第１〜第３端末装置と同様のハードウェア構成を有する装置であってよく、例えば、情報処理装置２１０と第１〜第３端末装置がいずれも図４に示した第１端末装置３１０および第２端末装置３２０のように、携帯型のゲーム機であってよい。また、情報処理装置２１０が据え置き型のゲーム機本体であり、第１〜第３端末装置がこのゲーム機本体に用いる画面付きのコントローラであってもよい。この場合に、コントローラとしての第１〜第３端末装置は、ケーブル（有線）でゲーム機本体に接続されて、ゲーム機本体と通信可能にされてよく、ゲーム機本体と近距離無線通信によって、操作データや出力用データの送受信を行ってもよい。
【０１１４】
なお、上記の実施の形態において、第１端末装置１１０と第２端末装置１２０との間の通信、および情報処理装置２１０と第１〜第３端末装置との間の通信は、いずれも無線ＬＡＮルータを介した無線ＬＡＮ通信を利用したが、これらの通信はインターネットを介したものであってもよく、あるいは、ブルートゥース（登録商標）やＩＥＥＥ８０２．１１シリーズの無線通信規格や有線接続による装置間の直接通信等及び実施の形態のような無線ＬＡＮルータを介した無線ＬＡＮ通信等を含む、ローカル環境下における（インターネット介さない）装置間の直接的な通信であってもよい。
【符号の説明】
【０１１５】
１００  情報処理システム
１１０  第１端末装置
１１１  操作入力部
１１２  出力部
１１３  記憶部
１１４  エミュレート制御部
１１４１  入力分配部
１１４２  第１エミュレート部
１１４３  第２エミュレート部
１１４４  出力分配部
１１５  受信部
１１６  送信部
１２０  第２端末装置
１２１  操作入力部
１２２  出力部
１２３  記憶部
１２４  エミュレート制御部
１２５  受信部
１２６  送信部
２１０  情報処理装置
２１１  操作入力部
２１２  出力部
２１３  記憶部
２１４  エミュレート制御部
２１４１  入力分配部
２１４２  第１エミュレート部
２１４３  第２エミュレート部
２１４４  第３エミュレート部
１１４５  出力分配部
２１５  受信部
２１６  送信部
３１０  第１端末装置（第１エミュレート装置）
３１１  操作入力部
３１１１  Ａボタン
３１１２  Ｂボタン
３１１３  Ｘボタン
３１１４  Ｙボタン
３１１５  十字ボタン
３１１６  スライドパッド
３１１７  タッチセンサ
３１２  出力部
３１２１  上側液晶パネル
３１２１  スピーカ
３１２３  下側液晶パネル
３１３  記憶部
３１４  エミュレート部
３１５  受信部
３１６  送信部
３２０  第２端末装置（第２エミュレート装置）
３２１  操作入力部
３２１１  Ａボタン
３２１２  Ｂボタン
３２１３  Ｘボタン
３２１４  Ｙボタン
３２１５  十字ボタン
３２１６  スライドパッド
３２１７  タッチセンサ
３２２  出力部
３２２１  上側液晶パネル
３２２１  スピーカ
３２２３  下側液晶パネル
３２３  記憶部
３２４  エミュレート部
３２５  受信部
３２６  送信部
３５０  無線ＬＡＮルータ
５１０  第１端末装置（第１エミュレート対象装置）
５１１  操作入力部
５１１１  Ａボタン
５１１２  Ｂボタン
５１１３  十字ボタン
５１２  出力部
５１２１  液晶パネル
５１２２  スピーカ
５１３  記憶部
５１４  処理部
５１５  受信部
５１６  送信部
５２０  第２端末装置（第２エミュレート対象装置）
５２１  操作入力部
５２１１  Ａボタン
５２１２  Ｂボタン
５２１３  十字ボタン
５２２  出力部
５２２１  液晶パネル
５２２２  スピーカ
５２３  記憶部
５２４  処理部
５２５  受信部
５２６  送信部
５５０  通信ケーブル
【図１】
2017084255.tif 000003
【図２】
2017084255.tif 000004
【図３】
2017084255.tif 000005
【図４】
2017084255.tif 000006
【図５】
2017084255.tif 000007
【図６】
2017084255.tif 000008
【図７】
2017084255.tif 000009