ゲームコンソールのCPUアーキテクチャは、多くの場合、平均的なデスクトップマシンと比較してややエキゾチックです。 エミュレーションとは、元のハードウェアが実行したすべてのことをソフトウェアで実行することを意味します。つまり、元のコンソールには専用のグラフィックス、オーディオなどのチップと、異なる命令セットを備えたCPUが搭載されていた可能性がありますが、エミュレーターはこれらの並列リソースのすべての機能を高速で実行する必要があります。
コンソールのGPUが古い場合を除いて、ホストマシンのGPUでエミュレートする必要があります。最新のグラフィックカードは、安価なものでも、最も高価なマルチコアCPUの何倍ものスループット(グラフィックワークロードの場合)を備えているためです。この難しさをさらに悪化させるのは、CPU、GPU、その他のオンボードDSP、およびメモリ間の通信が、ハードウェア構成の詳細を利用するためにコンソールで高度に最適化されているため、これらのリソースもレートを一致させる必要があるという事実です。
これらすべての困難を悪化させ、通常、コンソールのハードウェアの詳細についてはほとんど知られていません。これは、設計上、非常に覆い隠されているためです。リバースエンジニアリングは、愛好家が実行できるようになりつつあります。
物事を概観すると、アーキテクチャシミュレータ(たとえば、x86マシンでPowerPCプログラムを実行し、それに関するあらゆる種類の統計を収集できるプログラム)は、リアルタイムよりも1000倍から100000倍遅く実行される可能性があります。最新のCPUのRTLシミュレーション(チップを構成するすべてのゲートとフリップフロップのシミュレーション)は、通常、10Hzから数百Hzの間でしか実行できません。非常に最適化されたエミュレーションでさえ、ネイティブコードよりも10倍から100倍遅くなる可能性が高いため、今日、説得力のある方法でエミュレートできるものが制限されます(特に、ゲームコンソールエミュレーターによって暗示されるリアルタイムの対話性を考えると)。