セガサターンのエミュをみんなで作るスレ
■ このスレッドは過去ログ倉庫に格納されています
0725PI.
03/04/06 16:18ID:SsedY/1Z内部的に「論理エミュレーション」と「I/Oエミュレーション」の2つに分けられ
ると思います。
論理エミュレーションとはSH2 CPUの動きや、メモリマップ、割り込みのかかり
方、デバイスの応答の仕方など、仮想サターン上で動かしているソフトウェアが
実機と同じように進行してゆくために必要な論理記述のことをいいます。これ
らが実機と異なっていれば、たとえば無限ループに落ち込んで進まなくなる、
実機と演算結果が異なってくる、という事が起こります。
一方、I/Oエミュレーションは、論理エミュレーションが正しく動作している
という前提のもとで、実際のI/Oデバイスをエミュレータ側プラットフォーム
(今回はWindowsですね)に結びつけることを言います。サターンではたとえば
ゲームパッドをWindows側のキーボードに接続するとこから始まって、音源の
WAV再生、CD-ROMアクセス、表示全般などが含まれます。
このI/OエミュレーションのうちI(In)側は重要です。これは論理エミュレー
ションでのデバイス応答ともリンクしており、たとえばCD-ROMが読めないと
ソフトウェアが先に進みません。
逆に、O(Out)側は重要ではありません。たとえば音の再生が多少変であった
り、パレットの色が違う、画面のプライオリティが違うなどは、論理エミュレー
ションとは別の次元なのです。論理エミュレーションから言うと、たとえば
表示開始を指示して一定時間BUSYが見え、その後READYになればOKなのです。
その考えで行くと、まずは論理エミュレーションを優先させることが必要である
と言えると思います。幸い、一般に論理エミュレーションはあまりCPUパワーを
必要としません。私のX68000エミュレータXM6の例で言うと、サウンドおよび
画面出力を完全にカットした状態でリアルタイムエミュレーションを行わせ
ようとすると、Celeron 266MHz程度でもなんとかなります。残ったCPUパワーを
全てOutエミュレーションに振り向けるのですが、X68000程度の描画アーキテ
クチャでも相当のCPUパワーが必要です。
■ このスレッドは過去ログ倉庫に格納されています