(57)【特許請求の範囲】
【請求項１】
第２のビデオゲームプラットフォーム用に書かれたビデオゲームの実行を強化するために、第１のビデオゲームプラットフォームを構成する装置でエミュレーションを行う方法であって、
前記装置が、
第２のビデオゲームプラットフォーム用に書かれた入力信号を受信し、
第２のビデオゲームプラットフォーム用に書かれた入力信号を解析し、
所定の基準に従って、入力信号からコントロール信号をインターセプトし、
前記コントロール信号を強化して第１のビデオゲームプラットフォーム用の強化されたコントロール信号を発生させ、かつ、
強化されたコントロール信号を出力するエミュレーション方法。
【請求項２】
コントロール信号がオーディオ効果コンポーネント、ビデオ効果コンポーネント、及び体感効果コンポーネントを含む、請求項１記載のエミュレーション方法。
【請求項３】
コントロール信号を強化することにより、コントロール信号のオーディオ効果コンポーネント、ビデオ効果コンポーネントを増強し、第１のビデオゲームプラットフォーム上での追加のプラットフォーム性能を活用する強化されたコントロール信号を発生させる、請求項２記載のエミュレーション方法。
【請求項４】
コントロール信号の強化が、体感効果をリダイレクトし、第１のビデオゲームプラットフォームでのオーディオ又はビデオ効果を搬送する強化されたコントロール信号を発生させる、請求項２記載のエミュレーション方法。
【請求項５】
第１ビデオゲームプラットフォームでのビデオ効果が、ユーザ出力画面を振動させる、請求項４記載のエミュレーション方法。
【請求項６】
第１のビデオゲームプラットフォームのビデオ効果がユーザの出力画面の明るさを変化させる、請求項４記載のエミュレーション方法。
【請求項７】
第１のビデオゲームプラットフォームのオーディオ効果にはサブウーファを使用したオーディオ効果が含まれる、請求項２記載のエミュレーション方法。
【請求項８】
強化されたコントロール信号の出力が、コントロール信号が特定の回数より多く遮断された場合にのみ発生する、請求項２記載のエミュレーション方法。
【請求項９】
コントロール信号を強化することにより、コントロール信号のオーディオ効果コンポーネントをリダイレクトして、リダイレクトされたビデオ効果コンポーネントを搬送する強化されたコントロール信号を発生させる、請求項２記載のエミュレーション方法。
【請求項１０】
リダイレクトされたビデオ効果を搬送する強化されたコントロール信号は、色、明るさ、及びコントラストのうち１つ又はそれ以上を変化させる請求項２記載のエミュレーション方法。
【請求項１１】
リダイレクトされたビデオ効果を搬送する強化されたコントロール信号が、ユーザアイコンのサイズを変化させる、請求項２記載のエミュレーション方法。
【請求項１２】
第２のビデオゲームプラットフォーム用に書かれたビデオゲームの実行強化する、第１のビデオゲームプラットフォームのデバイスであって、
第２のビデオゲームプラットフォーム用に書かれた入力信号を受信し、その入力信号を解析し、その入力信号から第１のビデオゲームプラットフォームで強化されるコントロール信号をインターセプトする信号インターセプター、
コントロール信号を強化し、第１のビデオゲームプラットフォーム用に強化されたコントロール信号発生させる、コントロール信号エンハンサー、及び、
強化されたコントロール信号の出力をコントロールする出力コントローラを備えたデバイス。
【請求項１３】
コントロール信号が、ユーザ出力画面に出力されるオーディオ効果コンポーネント、ビデオ効果コンポーネント、及び体感効果コンポーネントを搬送する、請求項１２記載のデバイス。
【請求項１４】
信号インターセプターが所定の基準に従ってコントロ−ル信号をインターセプトする請求項１２記載のデバイス。
【請求項１５】
コントロール信号エンハンサーがコントロール信号のオーディオ効果コンポーネント及びビデオ効果コンポーネントを増強し、第１のビデオゲームプラットフォーム上で追加のプラットフォーム性能を活用する強化されたコントロール信号を発生させる、請求項１３記載のデバイス。
【請求項１６】
更に、第１のビデオゲームプラットフォーム上で追加のプラットフォーム性能を活用するオーディオ及びビデオ効果を搬送する新規信号を発生させる信号インサーターを有する請求項１３記載のデバイス。
【請求項１７】
ホストプラットフォーム上のエミュレータ装置が実行する、ビデオゲームのエミュレーション方法であって、前記エミュレータ装置が、
ビデオゲームソフトウェアを実行し、
所定の基準の発生を特定するためにビデオゲームソフトウェアの実行をモニタリングし、かつ、
所定の基準を満たした場合に、実行されたビデオゲームソフトウェアの動作を修正する、ビデオゲームのエミュレーション方法。
【請求項１８】
実行されたビデオゲームソフトウェアの動作修正に効果のリダイレクトを含む、請求項１７記載の方法。
【請求項１９】
実行されたビデオゲームソフトウェアの動作修正に効果の強化を含む、請求項１７記載の方法。
【請求項２０】
実行されたビデオゲームソフトウェアの動作修正にコントローラの強化を含む、請求項１７記載の方法。
【請求項２１】
実行されたビデオゲームソフトウェアの動作修正にコンテンツ挿入を含む、請求項１７記載の方法。
【請求項２２】
ビデオゲームプラットフォームを構成する装置であって、
ターゲットプラットフォーム用に書かれたビデオゲームを実行するための、ホストプラットフォーム上のエミュレータを有し、
ターゲットプラットフォームとは異なった入力／出力性能を含むホストプラットフォームで、前記エミュレータが、ターゲットプラットフォーム用に書かれたビデオゲームの実行を、前記ホストプラットフォームの前記異なった入力／出力性能用に強化する、ビデオゲームプラットフォームを構成する装置。
【請求項２３】
前記エミュレータが、プラットフォーム用に書かれたビデオゲームの実行を、視聴覚コンテンツを挿入することによって強化する、請求項２２記載のビデオゲームプラットフォームを構成する装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本願は、ゲーミングプラットフォームにおけるレガシーゲームのエミュレーション方法に関する。
特に、本願は、ビデオゲームプラットフォーム用のエミュレータが、他のプラットフォーム用に書かれたビデオゲームの実行を、ゲームプレイを改善及び／又は強化しつつ促進するものである。
【背景技術】
【０００２】
本出願は、２００７年９月２１日に同時出願された、本願と同時係属中の米国仮特許出願第６０／９７４，３９６号"Method And Apparatus  For Emulation Enhancement"の関連出願である。
第２のコンピュータプラットフォーム（「ターゲットシステム」）の機能を第１のコンピュータシステム（「ホストシステム」）上でシミュレートし、ホストシステムがターゲットシステム用に設計されたプログラムを実行できるようにする処理は「エミュレーション」として知られる。エミュレーションは通常、ターゲットプラットフォーム用に設計されたプログラムインストラクション（ターゲットコードインストラクション）をホストプラットフォームのネイティブ言語ホストインストラクション）に変換するソフトウェアを作成することによって達成され、互換性をもたらす。より最近では、エミュレーションは、ターゲットプラットフォームの物理的アーキテクチャ（ハードウェアの設計自体がソフトウェアのバーチャルモデルを通して複製される「バーチャルマシン」の作成を通して実行されている。
【発明の開示】
【発明が解決しようとする課題】
【０００３】
ゲーミングプラットフォームを別のプラットフォーム上にシミュレートする方法はこれまでも使用されてきた。しかし、レガシーターゲットシステムとは異なった技術性能を持った後発のホストシステムを開発する場合、ホストシステムに存在するさらなる性能を活用してホストシステムでのゲーム体験を強化及び補強するためにエミュレーションを行う場合がある。
本願はエミュレータを強化あるいは拡張（enhancement）する技術を提供する。例としては、これに限られるわけではないが、Playstation(R)2のエミュレータはPlaystation(R)2のゲームをPlaystation(R)3のゲームプラットフォームなど、より高度なプラットフォームで実行できるようにする。Playstation(R)3のゲームプラットフォームで作動するPlaystation(R)2のエミュレータは、イベント、コマンド、及び／又はインストラクションのインターセプト及びそれらの効果を修正することによりゲームプレイ体験の様々な面を強化及び／又は修正することができ、Playstation(R)3ゲームプラットフォームでのPlaystation(R)2ゲームのユーザのゲーム体験を更に強化する。
【課題を解決するための手段】
【０００４】
本願は、第一のビデオゲームプラットフォームにおいて、第二のビデオゲームプラットフォーム用に書かれたビデオゲームの実行をエミュレート及び強化するための方法とデバイスを対象とする。
通常、エミュレーション強化方法には、第２のビデオゲームプラットフォーム用に書かれた入力信号を受信し、第２のビデオゲームプラットフォーム用に書かれた入力信号を解析し、設定基準に従って入力信号からのコントロール信号をインターセプトあるいは受信し第１のビデオゲームプラットフォーム用に強化されたコントロール信号を発生させるコントロール信号を強化し、及びその強化されたコントロール信号を出力することが含まれる。
【０００５】
導入例によっては、コントロール信号を強化することにより、コントロール信号のオーディオ効果コンポーネント、ビデオ効果コンポーネント及び体感効果あるいは触覚効果（haptic effect）コンポーネントを増強し、第１のビデオゲームプラットフォーム上での追加された（新たに加えられた）プラットフォーム性能を活用する強化されたコントロール信号を発生させる。コントロール信号の強化は、ユーザコントローラ装置の体感効果をリダイレクトし、第１のビデオゲームプラットフォームでのオーディオ又はビデオ効果をもたらす強化されたコントロール信号を発生させる。発生させた強化コントロール信号の結果として得られるビデオ効果は、ユーザの出力画面を振動させることができる。又は、第１のビデオゲームプラットフォームでのビデオ効果はユーザの出力画面の明るさを変化させることもできる。発生させた強化コントロール信号の結果として得られるオーディオ効果は、低周波オーディオ効果を出力できる。
【０００６】
エミュレーション強化方法は、更に、第１のビデオゲームプラットフォーム上で追加のプラットフォーム性能を活用するオーディオ及びビデオ効果をもたらす新規信号の挿入を含んでもよい。コントロール信号はユーザコントローラ装置をコントロールでき、コントロール信号はユーザのコントロール装置上で体感効果をもたらすことができる。
導入例によっては、強化されたコントロール信号は、コントロール信号が特定の回数より多く受信された場合にのみ発生させられる。
更に、コントロール信号を強化することにより、コントロール信号のオーディオ効果コンポーネントをリダイレクトして、リダイレクトされたビデオ効果コンポーネントを搬送する強化されたコントロール信号を発生させることができる。
【０００７】
リダイレクトされたビデオ効果を搬送する強化されたコントロール信号は、ユーザ出力画面上の色、明るさ、及び／又はコントラストを変化させることができる。又は、リダイレクトされたビデオ効果を搬送する強化されたコントロール信号は、ユーザ出力画面上に表示されたユーザアイコンのサイズを変化させたり、上記のうちいかなるコンビネーションでも用いることができる。
同様に、第１のビデオゲームプラットフォームでのエミュレーション強化装置は第２のビデオゲームプラットフォーム用に書かれたビデオゲームの入力信号を受信し、その入力信号を解析し、その入力信号から第１のビデオゲームプラットフォームで強化されるコントロール信号をインターセプトする信号インターセプター、コントロール信号を強化（enhance）し、第１のビデオゲームプラットフォーム用に強化されたコントロール信号を発生させるコントロール信号エンハンサー、及び強化されたコントロール信号の出力をコントロールする出力コントローラを含む。コントロール信号はオーディオ効果コンポーネント及びビデオ効果コンポーネントを運んで（搬送して）もよい。これらはユーザ出力画面に出力される。
コントロール信号は更に、ユーザコントローラで体感効果をもたらす体感効果コンポーネントを搬送してもよい。
【０００８】
更に、信号インターセプターは、設定基準に従いコントロール信号を受信あるいはインターセプトできる。コントロール信号エンハンサーは、コントロール信号のオーディオ効果コンポーネント、ビデオ効果コンポーネント、及び体感効果コンポーネントを増強し、第１のビデオゲームプラットフォーム上の追加のプラットフォーム性能を活用する強化されたコントロール信号を発生させることができる。コントロール信号はユーザのコントローラをコントロールすることができ、及びコントロール信号は、ユーザコントローラ装置の体感効果をもたらすこともできる。コントロール信号エンハンサーはユーザのコントローラ装置上で体感効果をリダイレクトし、第１のビデオゲームプラットフォームでのオーディオ又はビデオ効果をもたらす強化されたコントロール信号を発生させることができる。発生させた強化コントロール信号の結果として得られるビデオ効果は、ユーザの出力画面を振動させることができる。又は、発生させた強化コントロール信号の結果としてのビデオ効果はユーザの出力画面の明るさを変化させることもできる。発生させた強化コントロール信号の結果として得られるオーディオ効果は、低周波オーディオ効果を出力できる。
【０００９】
エミュレーション強化装置には、更に、第１のビデオゲームプラットフォーム上の追加プラットフォーム性能を活用するオーディオ及びビデオ効果を搬送する新規の信号を発生させる、信号インサーターを含んでもよい。
導入例によっては、出力コントローラは、コントロール信号が特定の回数より多くインターセプトされたときにのみ、強化されたコント口ール信号を出力する。
コントロール信号エンハンサーはコントロール信号のオーディオ効果コンポーネントをリダイレクトして、リダイレクトされたビデオ効果コンポーネントを搬送する強化されたコントロール信号を発生させることができる。リダイレクトされたビデオ効果を搬送する強化コントロール信号は、ユーザ出力画面の色、明るさ及び又はコントラストを変更することができる。又は、リダイレクトされたビデオ効果を搬送する強化コントロール信号は、ユーザ出力画面に表示されたユーザアイコンのサイズを変化させたり、上記のいずれかのコンビネーションを使用することができる。
【００１０】
同様に、コンピュータで読み込み可能な媒体には、第２のビデオゲームプラットフォーム用に書かれたビデオゲームの実行を強化するための、第１のビデオゲームプラットフォームにおけるエミュレーション強化コンピュータで実行可能なインストラクションを含む。本発明の例示的実施形態におけるエミュレーション強化コンピュータで実行可能なインストラクションが記録されたコンピュータで読み込み可能な媒体には、第２のビデオゲームプラットフォーム用に書かれた入力信号受信のコンピュータで実行可能なインストラクション、第２のビデオゲームプラットフォーム用に書かれた入力信号を受信するコンピュータで実行可能なコンピュータ―で実行可能なインストラクション、第２のビデオゲームプラットフォーム用に書かれた入力信号解析コンピュータで実行可能なインストラクション、設定基準に従って入力信号からコントロール信号を受信するためのコンピュータで実行夫可能なインストラクション、第１のビデオゲームプラットフォーム用に強化されたコントロール信号を発生させるためにコントロール信号を強化するためのコンピュータで実行可能なインストラクション、及び強化されたコントロール信号を出力するためのコンピュータで実行可能なインストラクションが含まれる。
実行例の詳細は、添付の図及び以下の説明文によって説明されている。その他の機能及び利点は、明細書、図面、及び請求項によって明示されている。
【発明を実施するための最良の形態】
【００１１】
以下、図面を参照しながら説明する。図中の参照番号は、いくつかの視点から同じ部品又は対応する部分を指定しており、例えば、図１Ａは、ターゲットシステム１００をゲームコンソール装置の形で示すブロック図である。ターゲットシステムは、エモーションエンジンと呼ばれるメインプロセッサモジュール１０２、グラフィックシンセサイザー１０４、入出力（Ｉ／Ｏ）プロセッサ（ＩＯＰ）１０６、及びサウンドプロセッサユニット１０８を中心に構成されている。
エモーションエンジン（ＥＥ）１０２は、通常、ＣＰＵコア、コプロセッサ、及びシステムクロックを有し、関連するランダムアクセスメモリ（ＲＡＭ）１１０を備える。エモーションエンジン１０２は、アニメーションの計算を行い、シーンをトラバースして二次元画像に変換し、ラスタライズのためにグラフィックシンセサイザー（ＧＳ）１０４に送信する。
【００１２】
図１Ｂに示されるように、ＥＥ１０２はＣＰＵコア１２２、関連するフローティングポイントユニツト（ＦＰＵ）コプロセッサ１２４、第１及び第２ベクトルコプロセッサ１２６、１２８、グラフィックインターフェイスコントローラ１３０、及び割り込みコントローラ（ＩＮＴＣ）１３２を含む。
ＣＰＵ１２２、ベクトルコプロセッサ１２６、１２８、ＧＩＦ１３０及びＩＮＴＣ１３２は、１２８ビットのメインバス１３４に結合している。ＦＰＵ１２４は直接ＣＰＵ１２２に結合している。ＣＰＵ１２２は、第１ベクトルコプロセッサ（ＶＵ０）１２６に結合し、これは第２ベクトルコプロセッサ（ＶＵ１）１２８に結合している。第２ベクトルコプロセッサＶＵ１ １２８はグラフィックインターフェイス（ＧＩＦ）１３０に結合する。ＥＥ１０２は更にタイマー１３６、ダイレクトメモリアクセスコントローラ（ＤＭＡＣ）１３８、イメージデータ解凍プロセッサ（ＩＰＵ）１４０、ＤＲＡＭコントローラ１４２、及びＥＥ１０２及びＩＯＰ１０６間の通信を促すサブバスインターフェイス（ＳＩＦ）１４４を含む。
【００１３】
ＣＰＵコア１２２は、１２８ビットのプロセッサで、３００メガヘルツのクロック周波数で作動し、１２８ビットマルチメディアインストラクションを伴った２ウェイスーパースカラーとして作動する６４ビットインストラクションを伴ったＭＩＰＳインストラクションセットを使用する。ＣＰＵ１２２にはデータキャッシュ、インストラクションキャッシュ、及び、多くの場合はスクラッチパッドと呼ばれるオンチップメモリ１２３の１領域を含む。スクラッチパッド１２３は小規模な口−カルメモリとして働き、メインバス１３４がコード及び／又はデータを送信中に、ＣＰＵ１２２が特定の動作を行えるように使用できる。第１ベクトルユニット１２６はアニメーション及び物理計算に使用できる。第２ベクトルユニット１２８はジオメトリ変換に使用できる。ＧＩＦ１３０は、ＥＥ１０２及びＧＳ１０４間のメインインターフェイスとして働く。
【００１４】
ＩＯＰ１０６にはターゲットシステム１００の旧バージョン及びＩＯＰ１０６に関連するＲＡＭ１１２への下位互換性を持たせるためのプロセッサを含む。ＩＯＰ１０６は、コントローラ、ＵＳＢデバイス、ハードディスク、イーサネットカード又はモデム、及びサウンドプロセッサユニット１０８、ＲＯＭ１１４、及びＣＤ／ＤＶＤユニット１１６などのシステムの他のコンポーネントなど、外部デバイスからの入力及び出力を扱う。ターゲットプログラム１１８はＣＤ／ＤＶＤユニット１１６にロードしたＣＤ／ＲＯＭディスクに保管できる。ターゲットプログラム１１８からのインストラクションはＥＥ ＲＡＭ１０８又はＩＯＰ  ＲＡＭ  １１２に保管し、これらのプロセッサによって読み取ることができるネイティブマシンコードによってターゲットシステム１００の様々なプロセッサによって実行される。
【００１５】
実装例によっては、ターゲットシステム１００はパラレルプロセッシングホストシステム２００を使用してエミュレートでき、これによってホストシステム２００がターゲットプログラム１１８のようにターゲットシステム１００にネイティブなコードで書かれたプログラムを作動できるようにする。図２Ａは、セルプロセッサ２０１に基づくホストシステム２００の例を示し、ターゲットシステム１００をエミュレートするために設定できる。セルプロセッサ２０１にはメインメモリ２０２、シングルパワープロセッサエレメント（ＰＰＥ）２０４、及び８つのシナジスティックプロセッサエレメント（ＳＰＥ：synergistic processor elements）２０６を含む。ただし、セルプロセッサ２０１は複数のＰＰＥ及びＳＰＥを伴って設定することができる。各ＳＰＥ２０６にはシナジスティックプロセッサユニツト（ＳＰＵ）及びローカルストア（ＬＳ）を含む。メモリ２０２、ＰＰＥ２０４、及びＳＰＥ２０６はお互いにコミュニケートでき、及び、リングタイプエレメント・インターコネクトバス（ＥＩＢ）２１０を通じたＩ／○デバイス２０８ともコミュニケートできる。ＰＰＥ２０４及びＳＰＥ２０６はバスインターフェイスユニット（ＢＩＵ）を通してＥＩＢ２１０にアクセスできる。ＰＰＥ２０４及びＳＰＥ２０６はメモリフローコントローラ（ＭＦＣ）を通してＥＩＢ２１０上のメインメモリ２０２にアクセスできる。メモリ２０２はターゲットシステム１００用に書かれたインストラクションコードの解釈と翻訳を実行するエミュレーションプログラム２０９を含む。エミュレーションプログラム２０９は更に、例えばターゲットシステム１００上で特定のハードウェアをシミュレートするソフトウェアコードなどのハードウェアエミュレーションコードを含む。ターゲットシステム１００用に書かれたインストラクションコードはＩ／Ｏデバイス２０８に結合したＣＤ／ＤＶＤリーダー２１１内のＣＤ／ＲＯＭディスクから読み取ることができる。ターゲットプログラム１１８を含むＣＤ／ＲＯＭディスクはＣＤ／ＤＶＤリーダー２１１にロードできる。少なくとも１つのＳＰＥ  ２０６が、そのローカルストアに、図１Ａ及び１Ｂに関し、上記のＩＯＰ１０６をエミュレートするインストラクションを持つ、エミュレートされたＩＯＰコード２０５を受信することができる。
【００１６】
例としては、ＰＰＥ２０４上で作動中のトランスレーター２１２がターゲットシステム１００のＥＥ１０２を、ターゲットプログラム１１８のＥＥインストラクションをＳＰＵ上で作動できるマシンコード２１３に翻訳することによって、エミュレートできる。本願の実施形態では、ＳＰＵも、ターゲットプログラム１１８のＩＯＰインストラクションを翻訳することによつてＩＯＰ１０６をエミュレートするインタープリタ２１４を実行する。ＩＯＰ１０６上でデバイスリクエストが実行されたとき、リクエストのいくつかはＰＰＥ２０４に転送される。この情報がＰＰＥ２０４に送られたとき、これらのリクエスト（例：体感イベントなど）は受信あるいはインターセプト、リダイレクト、修正、強化（enhancement）されるなどする。
エミュレーション強化の異なる形態の詳細を以下に説明する。
【００１７】
アプリケーションを特定したエミュレータの設定
ターゲットプログラムを実際のターゲットシステム上で直接実行する場合に対して、ターゲットプログラム１１８が、ターゲットシステム１００のエミュレーションを使用して実行されるときには、その動作に違いがある場合がある。例えば、ターゲットシステム１００をエミュレートしているホストシステム２００は、ターゲットシステムとは異なった性能を含む場合があり、これには異なった実行速度、コンポーネント間のタイミングの違い、メモリサイズの違い、プロセッシング性能の違い、入力／出力性能の違い、及びこれらに類する違いがあるが、これに限られるわけではない。
【００１８】
タイミングの違いは予定した動作とは異なった動作をもたらすおそれがある。最も単純なレベルでは、タイミングの問題が単にターゲットプログラム１１８の実行が早すぎたり遅すぎたりする結果を招く場合がある。エミュレーションが早すぎると、ターゲットプログラム１１８を使用可能とするためにエミュレーション全体のスピードが減速される場合がある。しかし、タイミングの問題は、非同期通信が関わる場合にはその特定及び修正が難しくなることがある。２つのコンポーネントが非同期に通信するとき、ターゲットシステム１００上で直接作動するソフトウェアが、ホストシステム２００上でのターゲットシステムのエミュレーション中に正しく作動できないことがある。
【００１９】
更に、ホストシステム２００の入力／出力性能の違いは、エミュレーションがターゲットシステム１００の実行をシミュレートすることを妨げる場合がある。例えば、キーボード、マウス、コントローラ及び同様のホストシステム２００の入力デバイスには、異なる数又は配列のボタン、センサーなどが含まれる。更にかかるデバイスは光、センサー、体感あるいは触覚などの異なる出力を提供してもよい。
エミュレーションは、ターゲットシステム１００とホストシステム２００間の違いをある程度、自動的に補ってもよい。しかし、違いによってはアプリケーション特定の偏差を生み出すことがある。かかる違いはアプリケーション特定の設定によって対応する。当業者であれば、エミュレータのアプリケーション特定の設定を実行するための多数のメカニズムの利便性が理解されよう。そのようなメカニズムの１つは、エミュレーション中に、かかる変更、設定、修正などを特定するためのアプリケーション特有のメタデータを使用することである。
【００２０】
例として、ターゲットシステム１００によってＣＤ‐ＲＯＭから読み取られるように設計されたターゲットプログラム１１８を想定する。ターゲットプログラム１１８のエミュレーションの動作を修正する方法の１つは、ＣＤ‐ＲＯＭの読取及びエミュレートされたターゲットシステム１００に実際に提供されたデータ間に分離層を作成することである。この例では、ターゲットプログラム１１８に対応するメタデータが、ホストシステム２００に、エミュレータによって使用できるようにロードされる。このメタデータはＸＭＬファイル、バイナリファイルなど、いかなるフォーマットでも保管できる。ホストシステム２００上のエミュレータがターゲットプログラム１１８を実行するとき、エミュレータはプロセス「読取」の指示を受け取る。メタデータは読取指示の結果としてリターンされたデータを変更するために使用できる。例えば、ターゲットプログラム１１８がプログラミングエラーを含む場合、かかるエラーは、エミュレーション中に間違ったコードが読み取られたときにコードを修正又は別のコードを挿入するように、エミュレータに指示するメタデータを含むことによって修正できる。メタデータの本使用法は例示的なものであり、本願の範囲を限定するものではない。メタデータの本使用法はエミュレーションを修正及び／又は強化するために、以下に説明する技術と共に使用できる。
【００２１】
エフェクトの出力先変更及び強化
例えば、ビデオ、オーディオ、及び／又は触知性のインタラクションなどの効果はエミュレータ内で強化及び／又は修正できる。これにより、エミュレータは、他の動作と共に、ユーザの体験を強化し、さらなるプラットフォーム性能を活用し、及び／又はプラットフォームの限界を克服できる。
出力先の変更は元の効果をシミュレートする方法を伴う。例えば、オーディオ効果をビデオ効果に変更することは、元のオーディオ効果の波形をビデオのコンテクスト内でシミュレートすることに関わる。ここでは、オーディオ信号の波形のアスペクトを元のオーディオ信号１５に最も近いビデオ信号に移行させることによって物理的課程をモデリングすることでシミュレーションを達成できる。
【００２２】
実施例の１つでは、オーディオ効果はビジュアル効果を通して出力先変更又は増大される。例えば、エミュレータ上に作動しているビデオゲームがオーディオ出力の強さを変更しようとすると、エミュレータがオーディオの出力先を変更し、例えば色、明るさなどのビデオ画像のアスペクトを変更する。同様に、ビデオ効果もオーディオ効果を通して出力先を変更したり増強できる。例えば、ビデオゲームのプレイ中にディスプレイ画面の点滅が、ゲームプレイ中のイベントによってトリガされることがよくある。この場合、エミュレータがビデオ信号の出力先を変更し、変わりにバックグランド音楽の速度を変更したり、ゲームプレイ中のイベントに対応する独自の効果音を作成したりする。
【００２３】
別の実施例では、ビデオオーバーレイが、オーディオ情報をビジュアルで示すために表示される。例えば、アイコンのサイズを意図するオーディオの強度に従って変更できる。意図するオーディオの強度か弱い場合、アイコンのサイズは小さくなるが、強度が強まるにつれて、アイコンのサイズも同様に大きくなり、オーディオ情報を伝える。同様に、ゲームプレイ中にオーディオ効果をターゲットシステム１００内に出力する結果をもたらすイベントがトリガされるとき、エミュレータがオーディオ信号の出力先を変更し、変わりにポップアップ画面を表示して意図するオーディオ効果を画像表示する。これらの技術は効果を転州又は修正したり、増強するために使用できる。かかる出力先の変更は、ホストシステム２００に存在する追加のプラットフォーム性能を活用するために、出力先が変更された各効果を強化することができるために、有利である。
他の方法として、オーディオ又はビデオ効果は、以下に記述するように、出力先の変更なしで強化することができる。
【００２４】
コントローラの強化
エミュレータがゲームプレイ体験を強化する方法の１つは、コントローラのインクラクションを変更することである。ビデオゲームプラットフォーム及びコントローラの性能は異なることがある。例えば、異なったコントローラでは、ボタン、設定、センサー、及び／又はフィードバック機能が異なっているかもしれない。
【００２５】
実施例の１つでは、Playstation(R)2のデュアルショックコントローラのランブル機能を有効化するためのコントロール信号を、Playstation(R)2エミュレータがトラップし、例えば次のうち１つ又はそれ以上の代替効果を提供する。
（ｉ）ビデオ振動：エミュレータがビデオ出力を修正して振動に見せかける
（ｉｉ）ビデオキュー：エミュレータは、例えば明るさ及び／又は色の強さを変更したり、又はアイコンや他の効果の注釈を表示するなどして、ビデオ出力を修正する
（ｉｉｉ）オーディオ効果：ランブル効果を伝えるために、エミュレータがオーディオ信号を発生する。
【００２６】
更に特定すると、ターゲットシステム１００内で体感効果を有効化する、受信されコントロール信号は、ホストシステム２００内での出力は、ターゲットシステム１００内の触知性効果をもたらすために使用されるオフセンターの重さの振動をシミュレートするために異なる強度のサウンド出力としての形をとることができる。
更に、サブウーファーをオーディオ効果のリダイレクトと共に使用して、振動効果信号を受信あるいはインターセプトし、サブウーファーが伝える低周波効果を発生させることもできる。このような実施例は、触知性インターフェイスをコントローラ内で提供しないホストプラットフォーム２００において有利である。
【００２７】
コントローラの強化はPlaystation(R)2のエミュレータにおいて、ＩＯＰインタープリタ２１４の代わりにコントローラに送信された特定のコントロール信号を判別し阻止するPlaystation(R)2入力−出力プロセッサ１０６を修正することによって実行できる。例えば、振動機能をオンにするコントロール信号は、ＩＯＰインタープリタ２１４内のエミュレータによって受信され、適切に処理され得る。かかるコントロール信号は、エミュレータに受信されると、上記の多数の方法のうち１つの方法でリダイレクトされ、強化される。
【００２８】
更に、ホストシステム２００は、リニアアクチュエーター又はその他これらに類する体感あるいは触覚装置を装備したユーザコントローラを含むこともある。こうしたユーザコントローラは、ホストシステム２００に様々な媒体を通じて接続でき、例えばＷｉ‐Ｆｉ、Ｂｌｕｅｔｏｏｔｈ、ＵＳＢポート、赤外線通信（ＩＲ）等により行うことができる。これらの場合、体感効果を有効化するコントロール信号は、受信され、ホストシステム２００で体感効果をトリガすることに加え、更に、追加のビデオ及び又はオーディオ効果によって強化できる。更に、ライブラリ機能を改めて、関連装置内でトラップされたコマンド及び所望のイベントに基づき、他の機能を提供することもできる。
【００２９】
実施例によっては、個別のコントロール信号ではなく一連のコントロール信号を強化することが望ましい。例えば、エミュレータは、コントローラの振動機能を定期的に有効化するといった、パターンを特定するように設定してもよい。イベント又はコントロール信号のパターンをインターセプトすることで、エミュレータは特定のシチュエーションに適切な効果を提供することができる。例えば、振動コントロール信号をインターセプトするエミュレータについて考えてみる。もしそれぞれの振動コントロール信号がビデオシェイク効果に変換されると、ビデオ出力が振動する回数が多すぎる場合がある。こうした効果はゲームによっては望ましくない。振動コントロール信号を単に検出する代わりに、エミュレータは、所定の時間（例：１．５秒）以上続く振動有効化を検出するように設定してもよい。このパターンが発生した場合にビデオシェイク効果が使用されるが、その他の場合では、別の効果が作動する。本実施例のエミュレータでは、出力コントローラ３０６が強化されたコントロール信号の実際の出力を扱う。
同様に、頻繁に使用されるとゲームを邪魔するかもしれない、その他の効果の出力先変更又は強化のいずれであっても、出力コントローラ３０６によってコントロールできる。
【００３０】
視聴覚強化
別の実施例では、オーディオ及び／又はビデオの出力をエミュレータを通じて強化することが望まれる場合がある。例えば、レガシーターゲットシステム１００は、開発及びリリースの段階で、ビデオ処理、保存、及び／又は表示性能が限られている場合がある。かかるゲームは強化されたプラットフォームの性能を活用してゲームプレイ体験を改善するように、増強及び／又は修正することができる。前記のように、信号の強化は信号の効果のリダイレクトによって行うこともできる。つまり、ホストシステム２００内に出力された、出力先を変更された信号（例：ビデオ又はオーディオ）が何であっても、出力先を変更された信号がホストシステム２００内に存在する更なるプラットフォーム性能を活用することができる。
実施例の１つでは、エミュレータは、ターゲットシステム１００のＥＥ１０２をシミュレートするＰＰＥ２０４においてテクスチャリングコントロールをインターセプトし、画質を改善するために新しいテクスチャを適用する。これにより、例えば、レガシービデオゲームはホストシステム２００に存在する、より高度な表示性能を活用できる。例えば、Playstation(R)2のゲームは、レガシービデオゲームを書き換えせずにハイビジョンの表示性能を活用して強化できる。
同様に、ホストシステム２００のオーディオ性能も、レガシーターゲットシステム１００より高度であるかもしれない。このときには、オーディオ出力の質を改善するためにデジタル信号処理を行い、ホストシステム２００に存在する更なる性能を活用することが可能である。
【００３１】
オーディオ及び／又はビデオの挿入
実施例によっては、エミュレータが、ゲームプレイ中にオーディオ及び／又はビデオ情報を追加することによって、実行されたゲームを強化することが望ましい。例えば、エミュレータはプロダクトプレイスメントの追加、プロダクトプレイスメントの修正、情報表示の追加などを行うことができる。このように新規信号を挿入することは、ターゲットシステム１００はこのように新規に追加された信号を扱うことが技術的にできないおそれがあることから、ホストシステム２００が保証する。新規に追加される信号は、ビデオ及び／又はオーディオ信号であり、ホストシステム２００の追加のプラットフォーム性能を活用する。本実施例のエミュレータでは、信号インサーター３０７が新規信号の挿入を扱う。
【００３２】
実装技法
上記のコンセプト実施、及びその他の実施例は、様々な方法で行うことができる。例えば、これに限定されるわけではないが、コマンドがエミュレータプログラムを通してアプリケーション層でトラップされ、コマンドが同様又は異なった機能を発生できるようにする。同様に、コマンドは、新規コマンド又はルーティンと共にデバイスレベル（シリアルＩ／Ｏ）で阻止及び交換できる。このようにして、既存又は追加の外部周辺デバイスを伴った強化通信が達成される。
また、強化及び／又は出力先を変更された信号のいかなるコンビネーションでも、ユーザ選択設定を基にして選択的に発生させることも可能であることに注目したい。つまり、例えば、ホストシステム２００内でエミュレータを作動しているユーザは、ターゲットシステム１００を意図した体感効果コンポーネントをホストシステム２００のビデオ効果出力に出力先変更することを望むかもしれない。別のユーザは、ターゲットシステム１００を意図したかかる体感効果コンポーネントをホストシステム２００のオーディオ効果出力に出力先変更することを望むかもしれない。
【００３３】
ユーザがユーザ選択設定を行う方法は少なくとも２通りある。第一に、ユーザは信号の出力先変更及び強化がどのように行われるかを、複数の選択肢から選ぶことができる。例えば、ユーザは、他の効果の中から、体感効果信号をターゲットシステム２００内のビジュアルシェイク及び対応するオーディオ効果に出力先変更することを選択できる。あるいは、そのユーザは、特定の効果がホストシステム２００に出力されることを妨げるようにユーザ選択設定を設定することもできる。例えば、ユーザは、特定のオーディオ又はビデオ効果を望まないかもしれない。この場合では、ユーザがユーザ選択設定を、望まないオーディオ又はビデオ効果がホストシステム２００内で発生させられないように設定することができる。
この場合、出力先変更及び強化のユーザ選択設定に基づき、エミュレーション中に更にゲーム体験を強化することができる。
【００３４】
図３はエミュレーション強化デバイス３００を高度レベルで描いたものである。描かれたエミュレーション強化デバイスは、描かれたエレメントに対応するコンピュータで読取可能な媒体及び／又はハードウェアエレメントに記録された、コンピュータで読み取り可能なインストラクションと共に実施できることに注目されたい。
入力信号３０１はエミュレータデバイスを通して入力される。例としては、入力信号３０１はＥＥ翻訳マシンコード２１３又はＩＯＰインタープリタ２１４によって解釈されたＩＯＰインストラクションのどちらかである。入力信号３０１が入力されると、信号インターセプター３０２がインターセプトあるいは受信されるべきコントロール信号をインターセプトする。コントロール信号がインターセプトされると、コントロール信号３０３がコントロール信号エンハンサー３０４に、強化目的で出力される。
【００３５】
コントロール信号エンハンサー３０４は、上記で詳述するように、効果の出力先変更、コントローラの強化、コントロール信号３０３の及びオーディオ／ビジュアル強化を扱う。コントロール信号エンハンサー３０４は、強化されたコントロール信号３０５を出力コントローラ３０６に出力する。エミュレータデバイスはまた、信号インサーター３０７を含む場合がある。信号インサーター３０７は、ゲームプレイ中に、挿入された信号３０８を発生させることにより、オーディオ及び／又はビデオ情報の挿入を可能にする。出力コントローラ３０６は強化されたコントロール信号３０５又は挿入された信号３０８のどちらかの出力をコントロールする。
【００３６】
図４はエミュレーション強化方法を示すフローチャートの典型例を示す。
ＥＥ翻訳のマシンコード２１３又はＩＯＰインタープリタ２１４によつて翻訳されたＩＯＰインストラクションのどちらかである入力信号は、ステップ４０１で解析される。ステップ４０２では、入力信号に強化するべきコントロール信号が含まれるかどうかが判定される。強化されるコントロール信号が存在する場合には、ステップ４０３で、効果のリダイレクト、コントローラの強化、及びコントロール信号のオーディオ／ビジュアル強化が実行される。信号が強化された後に、強化されたコントロール信号はステップ４０４で出力される。
上に示したように、現存する信号の強化及び新規信号の追加により、ホストシステム２００内でターゲットシステムのゲームをシミュレートしているユーザのゲーム体験を強化できる。このように本発明の見本実施例に従って強化されたシミュレートは、以前にはレガシーターゲットシステム１００で見られなかった、ホストシステム２００の高度な技術機能をユーザが体験できるようにする。
【００３７】
上記は望まれる実施例の完全な記述ではあるが、様々な代案、変更、及び相当するものの使用が可能である。従って、本発明の範囲は上記の記述に従って判断されるべきではなく、代わりに、添付の請求項及びそれに相当する全範囲を参照して判断されるべきである。ここに記述された機能は全て、望ましいかどうかに関わらず、個々に記述された他のいかなる機能とも、望ましいかどうかに関わらず組み合わせることができる。次に挙げる請求項では、別途明記されている場合を除いて、単数で記載されている構成要素は、「少なくとも１つ以上」を意味している。添付の請求項は、手段及び機能の限界を含むものとして解釈されてはならないが、かかる限界が「〜の達成手段」という言いまわしを使用して、提供された請求項内で明示されている場合はこの限りではない。
【００３８】
以上、本発明を要約すると、第２のビデオゲームプラットフォーム用に書かれたビデオゲームの実行を強化するための、第１のビデオゲームプラットフォームでのエミュレーション強化方法であって、第２のビデオゲームプラットフォーム用に書かれた入力信号を受信し、第２のビデオゲームプラットフォーム用に書かれた入力信号を解析し、設計基準に従って入力信号からのコントロール信号をインターセプトし、第１のビデオゲームプラットフォーム用に強化されコントロール信号を発生させるコントロール信号を強化し、及びその強化されたコントロール信号を出力することが含まれる。コントロール信号はオーディオ効果コンポーネント、ビデオ効果コンポーネント、及び体感効果コンポーネントを伴い、これらはユーザ出力画面に出力される。コントロール信号を強化することにより、コントロール信号のオーディオ効果コンポーネント、及びビデオ効果コンポーネントを増強し、第１のビデオゲームプラットフォーム上で新たに加えられたプラットフォーム性能を活用する、強化されたコントロール信号を発生させる。
【図面の簡単な説明】
【００３９】
【図１Ａ】エミュレートされるターゲットデバイスのブロック図である。
【図１Ｂ】図１Ａのターゲットデバイスのエモーションエンジンのブロック図である。
【図２】図１Ａ〜１Ｂのターゲットデバイスをエミュレートするホストデバイスの概念図である。
【図３】エミュレーション強化デバイスのブロック図である。
【図４】エミュレーション強化を示すフローチャートである。
【符号の説明】
【００４０】
１００      レガシーターゲットシステム
１０２      エモーションエンジン
１０４      グラフィックシンセサイザー
１０６      出力プロセッサ
１０８      サウンドプロセッサユニット
１１６      ユニット
１１８      ターゲットプログラム
１２２      コア
１２３      オンチップメモリ
１２３      スクラッチパッド
１２４      コプロセッサ
１２６      ベクトルコプロセッサ
１２８      ベクトルユニット
１３０      グラフィックインターフェイスコントローラ
１３４      メインバス
１３６      タイマー
１４２      コントローラ
２００      ターゲットシステム
２０１      セルプロセッサ
２０２      メインメモリ
【図１Ａ】
0005186320.tif 000002
【図１Ｂ】
0005186320.tif 000003
【図２】
0005186320.tif 000004
【図３】
0005186320.tif 000005
【図４】
0005186320.tif 000006