14

私はWii用のエミュレーターを構築している人々について読んでいますが、それは強化されたGameCubeまたはNintendo64にすぎないようですが、これらのシステムのエミュレーターを構築するのが難しいのはなぜですか?

ちょっとした注意点として、これらのシステムのハードウェアは驚くほど低いことに注意してください
。Wii:
   729MHz
   PPCCPU88MBメモリ
   243MHzGPUN64

   93.75MHz CPU(64ビット)
   4MBメモリ

4

4 に答える 4

25

ゲームコンソールのCPUアーキテクチャは、多くの場合、平均的なデスクトップマシンと比較してややエキゾチックです。 エミュレーションとは、元のハードウェアが実行したすべてのことをソフトウェアで実行することを意味します。つまり、元のコンソールには専用のグラフィックス、オーディオなどのチップと、異なる命令セットを備えたCPUが搭載されていた可能性がありますが、エミュレーターはこれらの並列リソースのすべての機能を高速で実行する必要があります。

コンソールのGPUが古い場合を除いて、ホストマシンのGPUでエミュレートする必要があります。最新のグラフィックカードは、安価なものでも、最も高価なマルチコアCPUの何倍ものスループット(グラフィックワークロードの場合)を備えているためです。この難しさをさらに悪化させるのは、CPU、GPU、その他のオンボードDSP、およびメモリ間の通信が、ハードウェア構成の詳細を利用するためにコンソールで高度に最適化されているため、これらのリソースもレートを一致させる必要があるという事実です。

これらすべての困難を悪化させ、通常、コンソールのハードウェアの詳細についてはほとんど知られていません。これは、設計上、非常に覆い隠されているためです。リバースエンジニアリングは、愛好家が実行できるようになりつつあります。

物事を概観すると、アーキテクチャシミュレータ(たとえば、x86マシンでPowerPCプログラムを実行し、それに関するあらゆる種類の統計を収集できるプログラム)は、リアルタイムよりも1000倍から100000倍遅く実行される可能性があります。最新のCPUのRTLシミュレーション(チップを構成するすべてのゲートとフリップフロップのシミュレーション)は、通常、10Hzから数百Hzの間でしか実行できません。非常に最適化されたエミュレーションでさえ、ネイティブコードよりも10倍から100倍遅くなる可能性が高いため、今日、説得力のある方法でエミュレートできるものが制限されます(特に、ゲームコンソールエミュレーターによって暗示されるリアルタイムの対話性を考えると)。

于 2009-01-23T05:29:54.943 に答える
1

ソフトウェアでのOSの動作を含め、ハードウェアの動作を正確/完全/絶対に複製する必要があるため、エミュレーターの作成は困難です。

古いコンソール用のエミュレーターを作成することは、最新のコンソール用のエミュレーターを作成するよりも難しい場合がありました。多くの最新のコンソールは何らかの形式の Linux または *nix を使用しているため、ハードウェアがエミュレートされると、ソフトウェアはマシンの BIOS をダンプして制御を処理するだけの問題になります。

古いコンソールはハードウェアですべてを行っていたため、リバース エンジニアリングがより大きな役割を果たしていました。古いコンソールがどのように機能し、各マジック ナンバーが何を意味するかを文書化するには、非常に優れた低レベルのハッカーが必要でした。

現在、マジック ナンバーは少なくなり、代わりに標準の GFX カードと CPU が使用されています。最新のハードウェアには、エミュレートするためのより多くの命令と素晴らしいツールがあります。古いコンソールとは異なり、最新のコンソールが行うことの多くは十分に文書化されています。

于 2016-05-16T12:25:08.670 に答える
0

それは、ゲーム プログラムがその特定のハードウェア用に作成されているため、ハードウェアの利点をすべて利用できるからです。スーパー コンピューターを持っていても、スーパー コンピューター自体のハードウェアと通信できない特定のプログラムを適切に実行することはできません。PS3/4 や xbox One などのコンソールで PC ゲームを実行する場合も同様です。99% 動作する唯一のエミュレーターは SNES エミュレーターと PS1 です。

于 2013-09-24T01:45:58.677 に答える