アカウント名:
パスワード:
いつも思うんですがエミュって重いですよねLLVMみたいに動的コンパイルすれば超早くなるのでは?と妄想してしまいます
# 難しい(現実的に作るのは不可能に近い)のはわかってます
より多くのコメントがこの議論にあるかもしれませんが、JavaScriptが有効ではない環境を使用している場合、クラシックなコメントシステム(D1)に設定を変更する必要があります。
目玉の数さえ十分あれば、どんなバグも深刻ではない -- Eric Raymond
エミュ (スコア:0)
いつも思うんですがエミュって重いですよね
LLVMみたいに動的コンパイルすれば超早くなるのでは?と妄想してしまいます
# 難しい(現実的に作るのは不可能に近い)のはわかってます
Re: (スコア:1)
前どこかでソースコードを見た時に、switchの羅列ばかりで驚いた事があります。当時、なんとなくエミュって得体のしれない超技術で作られているようなイメージが有り、少なくとも関数ポインタの配列位は使ってるんじゃないかと思っていたので。
いつもの結論は、必要ないとか技術不足以外では、移植性の高さと再現性を重視しているんじゃないかってところです。
ゲーム機エミュレーターってのは、閉じたハードにサードパーティーソフトを動かせるようになった時に真っ先に移植されるソフトです。何しろ、初歩的なグラフィック・オーディ
Re:エミュ (スコア:1)
他に、昔のゲームで多用される関数ポインタへの対応の困難・メモリとデータの混在の厄介さ・セキュリティー問題などがあるでしょうね。
例えば、RPGの戦闘で多様なエフェクトを出す、あるいはアイテムで特殊な振る舞いをさせる、といった場面を考えると、簡単なスクリプトを使うか関数ポインタを使うしか思い浮かびません。メモリ制限が厳しいROM時代なら後者しかないでしょう。関数ポインタの対応もやろうとすればできなくはないでしょうが、ハードウェア・コンパイラ回りの知識が必要で、バグの温床・移植の妨げです。
単に静的コンパイルするだけなら、外部のコンパイラかアセンブラにソースコードを食わせればいいように思えますが、こういう理由でうまくいかないんでしょうね。
というより、昔のゲームなら必要なくて、新しいゲームなら再現性ある移植で精いっぱいというのが実情でしょうか。