説明

エミュレーション装置

【課題】コントローラ接続ポートを複数のコントローラ接続ポートに拡張する拡張機器が接続可能な装置をターゲットとすることのできるエミュレーション装置を提供する。
【解決手段】複数のコントローラが接続可能な、少なくとも一つのコントローラ接続ポートを備え、当該コントローラ接続ポートを複数のコントローラ接続ポートに拡張する拡張機器が接続可能な装置をターゲットとして、当該ターゲットとなった装置の動作をエミュレートするエミュレーション装置であって、有線または無線にて接続されるコントローラの各々に対して、前記ターゲットとなった装置が備えるコントローラ接続ポート、または当該装置に接続される拡張機器のコントローラ接続ポートのいずれに接続されているものとするかを規定するポート識別情報を割り当て、この割り当てたポート識別情報が、コントローラを通じた操作の受け入れの処理に供されるエミュレーション装置である。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ターゲットとなる情報処理装置の動作をエミュレートするエミュレーション装置に関する。
【背景技術】
【0002】
近年では、プロセッサなどコンピュータ資源の高性能化により、旧来の情報処理装置(ターゲット)の動作を模して、旧来の情報処理装置にて実行可能であったプログラムなどを利用できるようにする技術(エミュレーション技術)が広く利用されるようになっている。
【0003】
エミュレーション装置は、例えば特許文献1等に開示がある。
【特許文献1】特開2006−190318号公報
【発明の開示】
【発明が解決しようとする課題】
【0004】
こうしたエミュレーション装置では、エミュレーション装置が備えている入力デバイス(コントローラ)と、エミュレーションのターゲットとなる情報処理装置の入力デバイスとに相違があるのが一般的である。
【0005】
また、ターゲットとなる情報処理装置のうちには、例えばコントローラを接続するコネクタに複数のコントローラの接続を可能とするための分岐装置を接続すると、一つのコネクタを介して複数のコントローラを接続できるようになるものもある。このような装置においては、当該分岐装置の特定の端子に接続されるコントローラでなければ、特定の操作の入力を受け付けないプログラムが開発されている場合もある。
【0006】
本発明は上記実情に鑑みて為されたもので、かかる分岐装置のように、コントローラ接続ポートを複数のコントローラ接続ポートに拡張する拡張機器が接続可能な装置をターゲットとすることのできるエミュレーション装置を提供することを、その目的の一つとする。
【課題を解決するための手段】
【0007】
上記従来例の問題点を解決するための本発明は、複数のコントローラが接続可能な、少なくとも一つのコントローラ接続ポートを備え、前記コントローラ接続ポートを複数のコントローラ接続ポートに拡張する拡張機器が接続可能な装置をターゲットとして、当該ターゲットとなった装置の動作をエミュレートするエミュレーション装置であって、有線または無線にて接続されるコントローラの各々に対して、前記ターゲットとなった装置が備えるコントローラ接続ポート、または当該装置に接続される拡張機器のコントローラ接続ポートのいずれに接続されているものとするかを規定するポート識別情報を割り当て、前記割り当てたポート識別情報が、前記コントローラを通じた操作の受け入れの処理に供されることとしたものである。
【0008】
ここで、前記コントローラの各々に割り当てられたポート識別情報を表示する手段と、注目コントローラに対するポート識別情報の割り当て変更を受け入れる手段と、前記受け入れた割り当て変更に応じて、注目コントローラに対するポート識別情報の割り当てを変更する手段と、を備えてもよい。
【0009】
この場合に、前記有線または無線にて接続されるコントローラの各々のうち、所定要求操作が行われたコントローラの一つを選択的に注目コントローラとし、当該注目コントローラに対して選択された旨を報知することとしてもよい。
【0010】
また、前記ターゲットとなり得る装置ごとに予め割り当て可能なポート識別情報を記録したテーブル情報を保持し、前記ポート識別情報を割り当てる際に、ターゲットとなった装置に対応する前記テーブル情報を選択的に利用して、ポート識別情報を割り当てることとしてもよい。
【0011】
さらに、指示により、前記テーブル情報を保持する手段を備え、当該保持されたテーブル情報が、後のエミュレーション処理に供されるようにしてもよい。
【発明を実施するための最良の形態】
【0012】
本発明の実施の形態について図面を参照しながら説明する。本発明の実施の形態に係るエミュレーション装置は、図1に示すように、制御ユニット11と、記憶部12と、インタフェースユニット13と、表示制御部14と、コントローラインタフェース部15と、音声出力部16と、ディスクドライブ17とを含んで構成され、少なくとも一つのコントローラ2に、有線または無線にて接続される。
【0013】
制御ユニット11は、少なくとも一つのプロセッサを含む。この制御ユニット11のプロセッサは、記憶部12や、ディスクドライブ17にセットされたディスクに格納されているプログラムに従って動作する。本実施の形態においては、制御ユニット11に含まれる少なくとも一つのプロセッサが、他の情報処理装置の動作を模擬する、エミュレーションの処理を実行する。このエミュレーションの処理については後に述べる。
【0014】
記憶部12は、RAM(Random Access Memory)やROM(Read Only Memory)等の記憶素子を含んで構成される。また、この記憶部12は、ハードディスク等の磁気的または光学的に情報を記憶する記録媒体及びドライブを含んでもよい。この記憶部12には、制御ユニット11のプロセッサが実行するプログラムが格納される。また記憶部12は、プロセッサのワークメモリとしても動作する。
【0015】
インタフェースユニット13は、制御ユニット11と、コントローラインタフェース部15と、音声出力部16と、ディスクドライブ17とに接続されている。このインタフェースユニット13は、制御ユニット11のプロセッサが出力する指示やデータを、その宛先としてプロセッサが指定した、コントローラインタフェース部15、音声出力部16、またはディスクドライブ17に出力する。また、このインタフェースユニット13は、コントローラインタフェース部15や、音声出力部16、ディスクドライブ17から入力されるデータ等を制御ユニット11に出力する。
【0016】
表示制御部14は、制御ユニット11に接続されており、制御ユニット11から入力される指示に従って、描画処理を実行する。また、この表示制御部14は、描画処理の結果、得られた画像の情報を、ディスプレイや家庭用テレビジョン等に出力する。
【0017】
コントローラインタフェース部15は、少なくとも一つの有線ポート15aと、無線ポート15bとを含んで構成されている。この有線ポート15aには、少なくとも一つのコントローラ2が有線にて接続される。また、有線ポート15aは、接続されたコントローラ2にて行われた操作の内容を表す情報、及び当該コントローラ2に固有に割り当てられているコントローラ識別子を制御ユニット11のプロセッサへ出力する。さらに有線ポート15aは、制御ユニット11のプロセッサから入力される指示に従い、コントローラ識別子と当該コントローラ識別子で識別されるコントローラ2への情報とを、接続されているコントローラ2へ送出する。
【0018】
無線ポート15bは、コントローラ2と無線にて通信する。この無線ポート15bは、通信先となったコントローラ2の各々にて行われた操作の内容を表す情報、及び当該操作が行われたコントローラ2に固有に割り当てられているコントローラ識別子を制御ユニット11のプロセッサへ出力する。さらに無線ポート15bは、制御ユニット11のプロセッサから入力される指示に従い、コントローラ識別子と当該コントローラ識別子で識別されるコントローラ2への情報とを、通信先のコントローラ2へ送出する。
【0019】
音声出力部16は、指定された波形の音源を鳴動するサウンドプロセッサなどであり、制御ユニット11のプロセッサからの指示に従って、指示された音声を鳴動する。ディスクドライブ17は、ブルーレイ(登録商標)ディスクや、DVDディスクなどからデータを読み出し、制御ユニット11のプロセッサに出力する。
【0020】
コントローラ2は、ここでは例えばゲーム用のコントローラであり、ユーザの操作を受け入れて、当該操作の内容をエミュレーション装置に送信する。このコントローラ2は、図2に示すように、把持部20R,20Lを有している。ユーザは、これら把持部20をそれぞれ左右の手で把持することになる。ユーザが把持部20を把持した状態で、左右の手の親指にて操作可能な位置には、第1,第2の操作部21,22と、アナログ操作部23R,23Lとがそれぞれ設けられている。また、このコントローラ2には、所定の機能が割り当てられる機能ボタン24と、識別子表示器25とが設けられている。
【0021】
コントローラ2は、図示しない記憶部を備え、この記憶部に、予め設定されている、固有なコントローラ識別子を格納している。コントローラ2は、第1、第2の操作部21,22や、アナログ操作部23R,23L、さらには機能ボタン24の操作などが行われると、有線または無線にて接続されたエミュレーション装置に対して、記憶部に格納されているコントローラ識別子と、操作の内容を表す情報とを送出する。また、このコントローラ2は、エミュレーション装置から、自己宛の情報(自己のコントローラ識別子を宛先として含む情報)を受信する。
【0022】
なお、本実施の形態では、エミュレーション装置側でこのコントローラ識別子ごとに固有の内部識別子を割り当てて、各コントローラ2を識別する。このためコントローラ2は、エミュレーション装置との通信が可能となると、コントローラ識別子をエミュレーション装置へ送信し、エミュレーション装置側で内部識別子の割り当て(当初アサイン)を行わせる。
【0023】
エミュレーション装置側では、コントローラ2に対する固有の内部識別子として、例えば所定の順で、連番を割り当ててもよい。ここで所定の順は、例えばコントローラ2とエミュレーション装置との間の通信が行われた順序としてもよいし、所定の操作(例えば機能ボタン24の押下操作)が行われた順序としてもよい。エミュレーション装置は、各コントローラ2に対してコントローラ識別子と、割り当てた内部識別子とを送出する。
【0024】
そして、コントローラ2は、当該割り当てられた内部識別子を受信して、識別子表示器25を用いて、当該内部識別子に対応する情報を表示する。ここで識別子表示器25は、例えば複数個のLED(発光ダイオード)で構わない。そしてコントローラ2側では、この複数個のLEDのどれを点灯させ、どれを消灯させるかによって内部識別子を表すこととすればよい。
【0025】
また、ここで機能ボタン24は、光線を透過する、半透明ないし透明なカバーと、当該カバーによって覆われる内部にLEDなどの発光体とを備えて、当該発光体の発光態様(消灯、点滅、点灯、点灯色などの態様)を、エミュレーション装置からの指示に従って変更できるようにしておいてもよい。
【0026】
本実施の形態のエミュレーション装置は、例えば、家庭用ゲーム機をエミュレーションのターゲットとして、ディスクドライブ17にセットされた、ターゲット用のゲームソフトウエアを読み出して、当該ゲームソフトウエアに対応した処理を実行する。
【0027】
本実施の形態のエミュレーション装置は、このターゲットとしての処理が開始されると、ターゲットのコントローラ接続ポートに応じて、各コントローラ2に割り当てた内部識別子を更新する。
【0028】
例えば、本実施の形態のエミュレーション装置がターゲットの一つとする家庭用ゲーム機では、少なくとも一つのコントローラ接続ポートを備えており、各コントローラ接続ポートには、通常、一つのコントローラが接続される。また、このコントローラ接続ポートに、一つのコントローラ接続ポートを複数のコントローラ接続ポートに拡張する拡張機器(分岐装置)を接続すると、この分岐装置を介して複数のコントローラが接続できるようになる。ターゲットとなる家庭用ゲーム機では、各コントローラ接続ポートに接続されたコントローラを、家庭用ゲーム機側に備えられているコントローラ接続ポートに割り振られた番号(1,2…)を識別子として識別し、また、拡張機器を介して接続されているコントローラについては、当該分岐装置が接続されているコントローラ接続ポートの番号(1,2…)と、コントローラが接続されている、分岐装置のコントローラ接続ポートの識別符号(A,B,C,…)とを用い、「1A」、「2A」…というような識別子(ポート識別情報)を割り当てて識別する。
【0029】
さらに、本実施の形態のエミュレーション装置はまた、別の家庭用ゲーム機等をターゲットとしてもよい。一般にコントローラ接続ポートの数や、分岐装置の接続可能性などは、ターゲットとなる家庭用ゲーム機等ごとに異なるので、ターゲットごとに割り当てる識別子(ポート識別符号)を異ならせてもよい。
【0030】
このようにコントローラ2に対して割り当てる内部識別子を変更したときには、エミュレーション装置は、当該変更後の内部識別子を、各コントローラ2へ送信してもよい。この場合コントローラ2は、変更後の内部識別子の通知を受けて、識別子表示器25での識別子の表示を更新する。
【0031】
例えば、当初アサインにおいて、内部識別子「1」が割り当てられていたコントローラ2では、識別子表示器25が「1」が割り当てられていることを表す表示を行っている。しかしターゲットのエミュレーションの処理が開始され、割り当てが変更がされて、当該コントローラ2に内部識別子「2」が割り当てられることとなると、識別子表示器25が「2」が割り当てられていることを表す表示となってもよい。
【0032】
本実施の形態のエミュレーション装置は、入力デバイスたるコントローラに関係して行われる、制御ユニット11のプロセッサのソフトウエア的な処理により、図3に示すように、有線または無線にて接続されたコントローラ2とのデータの送受を制御するドライバ部31と、コントローラ入力受入部32と、エミュレーション実行部33と、表示処理部34と、アサイン切替部35とを含んで構成される。
【0033】
ドライバ部31は、有線または無線で接続されたコントローラ2から、コントローラ識別子と、当該コントローラ2における操作の内容を表す情報とを受信すると、これらの情報をコントローラ入力受入部32に出力する。またドライバ部31は、コントローラ2において、機能ボタン24が押下されると、予め定められた処理を開始する。ここでは、機能ボタン24が押下されたときには、当該操作が行われたコントローラ2のコントローラ識別子とともに、その旨を表す信号をアサイン切替部35に出力し、その後、復帰の指示がされるまでは、コントローラ2にて行われた操作を表す情報を、コントローラ入力受入部32に代えてアサイン切替部35に出力する。復帰の指示がされたときには、ドライバ部31はまた、コントローラ識別子と、当該コントローラ2における操作の内容を表す情報とを受信したときに、これらの情報をコントローラ入力受入部32に出力するようになる。
【0034】
コントローラ入力受入部32は、ターゲットとなる家庭用ゲーム機に対応した内部識別子を予め記録しているアサインテーブルを読み出す。このアサインテーブルは、各ターゲットに対応する内部識別子に対して、コントローラ識別子を関連づけるテーブルであるが、当初は、各内部識別子に対応するコントローラ識別子は空欄(何も設定されていない状態)となっている。
【0035】
コントローラ入力受入部32は、ドライバ部31を介してデータの送受が可能となっているコントローラ2の各々に対して、内部識別子を割り当てると、対応するコントローラ2のコントローラ識別子と、内部識別子とを関連づけてアサインテーブルに記録し、記憶部12に格納する(図4)。
【0036】
既に述べたように、一般にコントローラ接続ポートの数や、分岐装置の接続可能性などは、ターゲットとなる家庭用ゲーム機等ごとに異なるので、このアサインテーブルは、ターゲットとなり得る家庭用ゲーム機ごとの内部識別子を列挙して記録したテーブルとして予め、記憶部12に格納される。コントローラ入力受入部32は、実行の指示がされたターゲットに対応するアサインテーブルを読み出して、ドライバ部31を介してデータの送受が可能となっているコントローラ2の各々に対して、内部識別子を割り当て、対応するコントローラ2のコントローラ識別子と、内部識別子とを関連づけて、当該読み出したアサインテーブルの内容を更新する。
【0037】
ここで内部識別子は、ターゲットとなる家庭用ゲーム機におけるポート識別子と同様でよく、処理開始後、通信が行われた順、または機能ボタン24が押下された順に、所定の順序、例えば(分岐装置にAからDの4つのコントローラ接続ポートが備えられているものとして)1A,1B,1C,1D,2A…というように内部識別子を発行して割り当てればよい。
【0038】
また、このコントローラ入力受入部32は、ドライバ部31がコントローラ2から受け入れた、コントローラ識別子と操作の内容を表す情報との入力を受けて、このコントローラ識別子に対応する内部識別子を記憶部12のアサインテーブルから読み出し、当該読み出した内部識別子と、入力された操作の内容を表す情報とをエミュレーション実行部33に出力する。
【0039】
さらにコントローラ入力受入部32は、アサイン切替部35からアサイン切替の処理に伴う画面表示を行うべき旨の指示を受けて、当該指示された画像を、後に説明するエミュレーション実行部33が出力する画像(ゲームの画像)に半透明合成(背景となるゲームの画像の明度を低下させ、そのゲーム画像に対して、指示された画像のうち有意な画素に係る部分を上書きして描画することで、背景となるゲーム画像が視認可能な状態で、操作用の画像を描画する合成方式)する。
【0040】
コントローラ入力受入部32は、さらに、アサイン切替部35から、コントローラ識別子と、内部識別子との入力を受けて、当該入力されたコントローラ識別子に対応してアサインテーブルに格納している内部識別子を、入力された内部識別子で上書きする。このとき、当該入力された内部識別子に対応している他のコントローラ識別子がアサインテーブル上にある場合は、当該他のコントローラ識別子に対応する内部識別子を、空いている(他に対応づけられていない)内部識別子で上書きしてもよい。また、空いている内部識別子を割り当てる代わりに、内部識別子を割り当てないこととしてもよい。内部識別子を割り当てない場合、当該他のコントローラ2における操作の内容を表す情報は、エミュレーション実行部33へ出力しないように制御してもよい。
【0041】
エミュレーション実行部33は、コントローラ入力受入部32から、コントローラの操作として、内部識別子と、操作の内容を表す情報との入力を受けて、当該内部識別子によって識別されるコントローラ接続ポートに仮想的に接続されているコントローラからの操作として、当該操作の内容を表す情報を受け入れ、ゲームなどの処理を実行する。
【0042】
表示処理部34は、エミュレーション実行部33から入力される描画指示を、表示制御部14に出力して、ディスプレイなどへの表示を行わせる。
【0043】
アサイン切替部35は、ドライバ部31から、コントローラ識別子とともに、当該コントローラ識別子で識別されるコントローラ2において機能ボタン24が押下された旨の信号の入力を受けると、当該入力されたコントローラ識別子によって識別されるコントローラ2を注目コントローラとして、以下の処理を実行する。
【0044】
まず、アサイン切替部35は、図5に示すような「コントローラ割り当て」のインタフェース画面を描画する指示をコントローラ入力受入部32に出力し、このインタフェース画面をエミュレーション実行部33が出力する描画指示による画像に半透明合成させる。このインタフェース画面では、注目コントローラ2を識別する情報(A)とともに、現在関連づけられている内部識別子をコントローラ入力受入部32から取得して表示する(B)。
【0045】
アサイン切替部35は、ドライバ部31から入力される、コントローラ2にて行われた操作を表す情報のうち、注目コントローラ2のコントローラ識別子とともに入力される情報を選択的に受け入れる。
【0046】
アサイン切替部35は、注目コントローラ2にて例えば上下方向を選択する操作が行われると、図5に示すインタフェース画面で、注目コントローラ2を割り当てる内部識別子を当該操作に応じて変更する(C)。そして注目コントローラ2にて「決定」を表すボタン操作がされると、当該「決定」のボタン操作が行われた時点で選択されていた内部識別子を、注目コントローラ2のコントローラ識別子に関連づけて記憶するよう、コントローラ入力受入部32に指示し、また、ドライバ部31に対して復帰の指示を行う。
【0047】
なお、アサイン切替部35は、この間に注目コントローラ2以外のコントローラ2から入力された、コントローラ識別子と、操作を表す情報とについては、そのままコントローラ入力受入部32に出力することとしてもよい。この場合、他のコントローラ2を利用しているプレイヤは、半透明合成された画面を通じて、ゲームを続行できるようになる。
【0048】
ここまでの説明では、コントローラ2に対する内部識別子の割り当て変更のインタフェース画面は、アサイン切替部35からではなく、エミュレーションの実行に関係するコントローラ入力受入部32から間接的に表示処理部34に出力されるようにしていたが、本実施の形態はこれに限られず、アサイン切替部35から直接的に当該インタフェース画面の描画指示を表示処理部34に出力して、エミュレーション処理部33が出力する描画指示による画像に半透明合成させてもよい。
【0049】
またアサイン切替部35に代えて、メニュー表示を行う機能を実行し、エミュレーション実行部33が出力する描画指示による画像に、予め定めたメニュー画面を表示してもよい。このメニュー画面には、注目コントローラ2を識別する情報を表示してもよい。具体的な例としてこのメニュー画面では、ゲームの処理を終了させるメニュー項目などと並んで、アサイン切替部35としての処理を開始するためのメニュー項目を表示し、注目コントローラ2にて、アサイン切替部35としての処理を開始するためのメニュー項目が選択されたときに、アサイン切替部35の機能を実行してもよい。
【0050】
本実施の形態によると、エミュレーション装置において、ターゲットとなった家庭用ゲーム機でのゲームが実行される際に、予め所定の順に、ターゲットとなった家庭用ゲーム機で識別可能な情報(内部識別子)が各コントローラ2に割り当てられる。
【0051】
既に述べたように、所定の順は、例えばコントローラ2とエミュレーション装置との間の通信が行われた順序としてもよいし、所定の操作(例えば機能ボタン24の押下操作)が行われた順序としてもよい。
【0052】
プレイヤの一人が、ターゲットである家庭用ゲーム機用のゲームの実行中に、使用しているコントローラ2の機能ボタン24を押下すると、ゲーム画面にアサイン切替のインタフェースがスーパーインポーズされる。このとき、当該機能ボタン24が押下されたコントローラ2を識別する情報が表示され、プレイヤは、誰が内部識別子を変更しようとしているのかを認識できる。
【0053】
プレイヤが内部識別子の変更を完了する操作を行うと、以後は、当該プレイヤの使用するコントローラ2が、変更された内部識別子で識別されたコントローラとして、ゲームソフトウエア側に認識されるようになる。
【0054】
これにより、例えば分岐装置の特定の端子に接続されるコントローラでなければ、特定の操作の入力を受け付けないプログラムを実行している場面であっても、プレイヤは、当該特定の端子に接続されているコントローラによるものと、コントローラ2での操作を認識させることができるようになる。
【0055】
このことで、本実施の形態では、分岐装置のように、コントローラ接続ポートを複数のコントローラ接続ポートに拡張する拡張機器が接続可能な装置をターゲットとすることができる。
【0056】
なお、機能ボタン24が発光素子を含んで、エミュレーション装置からの指示に従い、その発光態様を変更できるようにしている場合は、アサイン切替部35は、ドライバ部31から内部識別子のアサインの切替を要求する操作(機能ボタン24を押下する操作など)があった旨が入力されたときに、アサイン切替を受け入れた旨を、当該操作が行われた、注目コントローラ2へ報知するよう指示してもよい。
【0057】
この場合、ドライバ部31は、指示に従い、注目コントローラ2のコントローラ識別子とともに、機能ボタン24の発光態様を、他のコントローラ2の機能ボタン24の発光態様と異ならせる(例えば点滅させる、色を変更するなど)指示を出力する。また、注目コントローラ2とは異なる他のコントローラ2の機能ボタン24の発光態様を、注目コントローラ2とは異なる態様とする(消灯など)指示を出力してもよい。
【0058】
このようにすると、注目コントローラ2となったコントローラ2を使用するプレイヤが、自己の行った、内部識別子のアサイン変更要求が受け入れられたことが容易に理解できるようになる。
【0059】
さらに、本実施の形態のエミュレーション装置は、ターゲットとなる装置でのプログラムの実行が指示されたときに、当該実行するべきプログラムが、分岐装置に対応していないプログラムであるか否かを判断し、分岐装置に対応していないプログラムであれば、アサインテーブルにおける内部識別子を変更してもよい。また、この場合に、分岐装置が接続可能なターゲットについては、ターゲットに対応するアサインテーブルとして、分岐装置が接続されている際に利用されるアサインテーブル(分岐装置に対応する内部識別子が設定されているもの)と、分岐装置が接続されていない場合に利用されるアサインテーブル(分岐装置を含まない内部識別子が設定されているもの)とを予め保持しておき、実行するプログラムに応じて、いずれかを選択的に読み出して利用することとしてもよい。
【0060】
具体的な例として、分岐装置に対応しているプログラムの一覧を記憶部12に予め保持しておき、実行の対象となったプログラムが、当該一覧に含まれるプログラムであるか否かを判断することなどにより、分岐装置に対応していないプログラムであるか否かを判断すればよい。
【0061】
またここまでの説明では、各コントローラ2への内部識別子の割り当て順は、予め定められているものとしたが、ターゲットとなる装置で実行されるべきプログラムの少なくとも一部について、各プログラムに対応づけて、プリセットとして割り当て順を記憶部12に格納しておき、このプリセットが対応づけられているプログラムの実行時には、このプリセットで表される割り当て順で、各コントローラ2への内部識別子を割り当ててもよい。
【0062】
さらに、プログラム別にプリセットを割り当てる代わりに、プリセット候補として、コントローラ識別子と、内部識別子とを関連づけたテーブルを複数、記憶部12に格納しておき、当該プリセット候補の一つが選択されたときには、アサインテーブルを、当該選択されたテーブルで上書きすることとしてもよい。
【0063】
また、プレイヤの操作により、アサインテーブルを変更した場合は、プレイヤからさらに当該アサインテーブルを保存する旨の指示を受けて、アサインテーブルを、登録テーブルとして記憶部12に保持してもよい。この記憶部12に保持した登録テーブルは、デフォルトのアサインテーブルとして利用されるか、またはプレイヤの操作などによって呼び出されて、アサインテーブルとして利用されてもよい。
【0064】
さらにこのとき、保存指示があったときに接続されていたコントローラ2の数と、呼び出しが行われたときに接続されているコントローラ2の数とが異なる場合があることに配慮して、登録テーブルに対して、保存の指示があったときに接続されていたコントローラ2の数を表す情報を、利用条件として関連づけて保持してもよい。
【0065】
そして、この登録テーブルを、デフォルトのアサインテーブルとして利用するときには、登録テーブルを呼び出す時点で、接続されているコントローラ2の数をカウントし、このカウントの結果が、登録テーブルに関連づけて保持されている利用条件に含まれるコントローラ2の数に合致するか否かを調べる。ここでカウントした数と、利用条件に含まれる数とが合致していれば、当該登録テーブルをアサインテーブルに上書きして用いる。
【0066】
プレイヤの操作によって呼び出される場合も同様に、呼び出しの操作が行われたときに、接続されているコントローラ2の数をカウントし、このカウントの結果が、登録テーブルに関連づけて保持されている利用条件に含まれるコントローラ2の数に合致するか否かを調べる。そしてカウントした数と、利用条件に含まれる数とが合致していれば、当該登録テーブルをアサインテーブルに上書きして用いることとすればよい。
【0067】
さらに、この登録テーブルは、プログラムごとに保存されてもよい。すなわち、保存の操作が行われたとき、その時点で実行されているプログラムを特定する情報(例えばプログラム名や、プログラムごとに割り当てられた識別符号など)に関連づけて、アサインテーブルを登録テーブルとして、記憶部12に保持してもよい。この場合、エミュレーション装置は、次回以降にターゲットとなる装置用のプログラムの実行を開始する際に、当該プログラムを特定する情報に関連づけられた登録テーブルが記憶部12に保持されているか否かを調べ、保持されていれば、当該登録テーブルを呼び出して、アサインテーブルに上書きして用いる。
【0068】
またこの場合も、登録テーブルに、プログラムを特定する情報だけでなく、保存の指示があったときに接続されていたコントローラ2の数など、利用条件の情報が関連づけられていれば、登録テーブルを呼び出す際に、当該利用条件が満足されているか(例えば、登録テーブルを呼び出す時点で、接続されているコントローラ2の数をカウントし、このカウントの結果が、登録テーブルに関連づけて保持されている利用条件に含まれるコントローラ2の数に合致するか)を調べ、利用条件が満足されているときに、当該登録テーブルをアサインテーブルに上書きし、アサインテーブルとして用いることとしてもよい。
【0069】
なお、登録テーブルの利用条件は、ここで述べたようなコントローラ2の数だけでなく、コントローラ2の種別や、種別ごとの数、コントローラ2の機能、プレイヤの数、その他の情報であってもよい。このようにプレイヤが設定したアサインテーブルを後の利用に供することを可能としたことで、利便性を向上できる。また、アサインテーブルの設定時の条件を併せて記録することで、後の利用の際での利用条件の相違に配慮した処理を行うことを可能としている。
【0070】
さらに、アサイン切替のインタフェースでは、アサインテーブルにおいて内部識別子が割り当てられていないコントローラ識別子(未アサインコントローラ)があれば、当該未アサインコントローラのコントローラ識別子の一覧を併せて表示してもよい。
【0071】
さらに、本実施の形態のエミュレーション装置は、アサイン切替の操作が行われている間、注目コントローラ2からの操作によって選択された内部識別子に、その時点でアサインテーブル上で対応づけられているコントローラ2があれば、当該コントローラ2の機能ボタン24の発光態様を所定の態様(例えば赤色に点滅させるなど)とするよう指示してもよい。これにより、当該コントローラ2を使用しているプレイヤが意図していないのに、割り当てが変更される可能性があることを当該プレイヤに報知できる。
【図面の簡単な説明】
【0072】
【図1】本発明の実施の形態に係るエミュレーション装置の構成ブロック図である。
【図2】本発明の実施の形態に係るエミュレーション装置に接続されるコントローラの一例の外観図である。
【図3】本発明の実施の形態に係るエミュレーション装置の機能ブロック図である。
【図4】本発明の実施の形態に係るエミュレーション装置が保持するアサインテーブルの例を表す説明図である。
【図5】本発明の実施の形態に係るエミュレーション装置が表示するインタフェース画面の例を表す説明図である。
【符号の説明】
【0073】
2 コントローラ、11 制御ユニット、12 記憶部、13 インタフェースユニット、14 表示制御部、15 コントローラインタフェース部、16 音声出力部、17 ディスクドライブ、20 把持部、21 第1の操作部、22 第2の操作部、23 アナログ操作部、24 機能ボタン、25 識別子表示器、31 ドライバ部、32 コントローラ入力受入部、33 エミュレーション実行部、34 表示処理部、35 アサイン切替部。

【特許請求の範囲】
【請求項1】
複数のコントローラが接続可能な、少なくとも一つのコントローラ接続ポートを備え、前記コントローラ接続ポートを複数のコントローラ接続ポートに拡張する拡張機器が接続可能な装置をターゲットとして、当該ターゲットとなった装置の動作をエミュレートするエミュレーション装置であって、
有線または無線にて接続されるコントローラの各々に対して、前記ターゲットとなった装置が備えるコントローラ接続ポート、または当該装置に接続される拡張機器のコントローラ接続ポートのいずれに接続されているものとするかを規定するポート識別情報を割り当て、
前記割り当てたポート識別情報が、前記コントローラを通じた操作の受け入れの処理に供される
ことを特徴とするエミュレーション装置。
【請求項2】
請求項1に記載のエミュレーション装置において、
前記コントローラ装置の各々に割り当てられたポート識別情報を表示する手段と、
前記有線または無線にて接続されるコントローラ装置の各々のうち、所定要求操作が行われたコントローラの一つを選択的に注目コントローラ装置とし、当該注目コントローラ装置に対するポート識別情報の割り当て変更を受け入れる手段と、
前記受け入れた割り当て変更に応じて、注目コントローラ装置に対するポート識別情報の割り当てを変更する手段と、
を備えたことを特徴とするエミュレーション装置。
【請求項3】
請求項2に記載のエミュレーション装置において、
注目コントローラ装置に対して選択された旨を報知することを特徴とするエミュレーション装置。
【請求項4】
請求項1から3のいずれかに記載のエミュレーション装置であって、
前記ターゲットとなり得る装置ごとに予め割り当て可能なポート識別情報を記録したテーブル情報を保持し、
前記ポート識別情報を割り当てる際に、ターゲットとなった装置に対応する前記テーブル情報を選択的に利用して、ポート識別情報を割り当てることを特徴とするエミュレーション装置。
【請求項5】
請求項1から4のいずれかに記載のエミュレーション装置であって、
指示により、前記テーブル情報を保持する手段を備え、
当該保持されたテーブル情報が、後のエミュレーション処理に供されることを特徴とするエミュレーション装置。


【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate


【公開番号】特開2008−77411(P2008−77411A)
【公開日】平成20年4月3日(2008.4.3)
【国際特許分類】
【出願番号】特願2006−256061(P2006−256061)
【出願日】平成18年9月21日(2006.9.21)
【出願人】(395015319)株式会社ソニー・コンピュータエンタテインメント (871)
【Fターム(参考)】