「サイクル精度のエミュレーション」とはどういう意味ですか?[複製]

Aug 22 2020

注:「Arqade」カテゴリでこの質問を何度か試みました。「履歴」カテゴリと同じように、私がそこに尋ねたものはすべて、投稿した直後に壊れたボットによって削除されます。そして、私は「閉じた」という意味ではなく、削除されました。のように、メモリホール。404エラー。だから私はここで尋ねます。これが最適なカテゴリだと思うからではありませんが、次善のカテゴリであり、レトロなコンピュータに関するものであり、「エミュレーション」タグも付いています。

1990年代後半から、ファミコンからニンテンドウ64まで、数え切れないほどのビデオゲームエミュレーターを試してきました。それらはすべてひどいものでした。

もちろん、もっと上手くできると言っているわけではありませんが(くだらないエミュレーターを作ることすらできませんでした)、黄金時代(1980-2000)のビデオゲームで育った私はますます愕然としました。どうやら違いがわからない人々によって古典的なゲームがどのように虐殺されているかによって。

ゲームの見た目、サウンド、プレイがエミュレーターを介してどれほどひどく虐待されているかを私が取り上げるたびに、彼らは私が彼ら、彼らの両親、または彼らの子供を個人的に侮辱しているように振る舞いました。私がすぐに禁止/ブロックされない場合、私がそれをどれほどうまく置いても、彼らはせいぜい非常に無愛想になります。

本当に違いがわからないようです。ファーストフード店の裏にあるゴミ箱で見つけたカビの生えたフライドポテトのパッケージは、町で最高のレストランで手に入る食べ物と同じではないことを誰かに納得させようとするある種の食べ物のスノッブのように感じます。

解像度が完全に間違っていること、アスペクト比がワイドスクリーンに引き伸ばされていること、テキストと2Dスプライトが完全に歪んで「途切れている」ように見えること、さまざまなレイヤー全体が存在しないかちらつくこと、ゲーム内で「マリオカート64の「大画面」オブジェクトには何も表示されません。アニメーションが不条理にオフ/グリッチ、サウンドがすべて歪んでいる/サウンドが間違っている、あらゆる種類のタイミングが同じではないようです。実際のハードウェアなど

彼らは何年もの間、すべてのエミュレーション開発を完全にやめたように私には思えます。5年おきに、最新のエミュレーターを試してみると、実際に実際のハードウェアをエミュレートしてからまだ光年であることに気付きます。ファミコンを狂わせても、それが聞こえるほどクレイジーです!しかし、特にSNES、Nintendo 64、PlayStation、Saturnなどの場合。

たぶん私は「本物の」エミュレーターを見つけることができないばかですが、それらは存在しないと思います。それらを使用する人々は、単に彼らがどれほど悪いかを知る能力を持っていないと思います。エミュレーターのリンクや名前は、すべて知っていると確信しているので、尋ねていません。

子供の頃には手に入らなかった、実際に中古品を購入するには高すぎる、現在のエミュレーターで処理されているこれらすべてのゲームをようやくプレイできる日を夢見ています。

これを念頭に置いて、「サイクル精度のエミュレーション」とはどういう意味ですか?そのようなエミュレーターはありますか?そしてそれは、CRT TVに接続し、何らかのアダプターを使用して実際のコントローラーを使用できるようにした場合、すべての場合で実際のハードウェアと区別することが100%不可能であることを意味しますか?

回答

7 Tommy Aug 22 2020 at 04:32

エミュレーターの作成者と言えば、「サイクル精度のエミュレーション」は、作成者がモデル化するすべてのイベントが内部で発生するように、基本と見なすロジックの部分を実装しようとしたことを宣伝したい場合に、エミュレーターに適用するラベルです。システムクロックでマークされた正しい離散時間ウィンドウ。

NESのようなものでは、プロセッサが正しいタイミングで決定を下し、イメージプロセッサがタイルとスプライトを正しい間隔でフェッチするため、実際のハードウェアで行ったようにそれらが交差することを意味します。

本質的には、目的は、ソフトウェアが元の環境以外の環境にあることをソフトウェアが検出できないようにすることです。

NESの場合、FCEUXはサイクルが正確であると主張されており、そのように広く受け入れられています。ですからそうです。

多くのエミュレーターでは、ビデオ出力の時点で状況が少し低下します。完全なフレームをアトミックに送信し、ホストマシンの画面と正確に1:1のピクセル比で表示することは今でもかなり一般的です。したがって、現代の用語では、ピクセルは常に正方形になります。一部のエミュレーターは、後処理を試みて正しいアスペクト比を適用し、場合によってはよりテレビのようなディスプレイを提供しますが、走行距離は異なり、フレーム全体を明確に送信してから後処理することは、実際のオーディオビデオ機器の機能とはまったく異なります。

私はそのラストマイルでも信号レベルの忠実度を維持しようとするエミュレーターの作者です。つまり、他のエミュレーターも存在するでしょうが、そうする主流のエミュレーターを私は知りません。

3 MartinMaly Aug 22 2020 at 16:51

「サイクルアキュレート」とは、エミュレートされたパーツ(主にCPUとビデオプロセッサ)が、元のハードウェアと同じ速度と同じステップシーケンスで処理を実行することを意味します。たとえば、実際のCPUは、最初のサイクルで命令フェッチを実行し、次に命令デコードを実行し、次にメモリアクセスを実行し、次に値を読み取るなどを実行しました。同時に、ビデオプロセッサは独自のジョブを実行しました。正確なタイミングにもよりますが、この協力(または「競合状態」)を念頭に置いて、多くの特殊効果が達成されました。つまり、CPUは非常に正確な瞬間にビデオプロセッサレジスタを変更して、目的のビデオエフェクトを生成します。このタイミングは、「各命令のクロックサイクル」に依存していました。

このようなレベルのエミュレーションは実現が難しいため、多くのエミュレーターは単純な方法で機能します。一度に「一連のCPU命令」をエミュレートしてから、ビデオ結果を計算するなどです。それはより簡単で「十分に公平」ですが、特にソフトウェアが正確なタイミングに依存している場合、適切な外観を実現することはできません。