アカウント名:
パスワード:
どこまで出すのだろうねぇ。
ところで後期作品はWindowsでDirectDrawで256色フルスクリーンとか、今のWindowsだとまともに動きそうにないけど、うまく移植できるのか。それとも今時のWin機だとそれすら仮想化でなんとかなっちゃうレベルなのかな。
WindowsマシンでネイティブのWindowsソフトを動すならなんの問題も無いっていうのが一つ。あとDirectDrawレベルのエミュレータならスマホでも動くんじゃないかなっていうのが一つ。
でも、当時のディスクステーション収録ゲームのダウンロード販売ではXPあたりはともかく、7だと動作不可が結構あるようです。なんらかのエミュレーションが無いと完全動作は難しいのではないかと。
16ビットコードが混じっててx64ではそのまま動作しないとかは普通にありそう
そもそも8bit(Z80A)ですし・・・
単にエミュレータのできの問題じゃないですかね。エミュレータ内部のポインタがどうなっているかはわかりませんが、Z80のポインタをそのまま使うわけじゃないから、Win32のAPIが無事に叩けていればそれでいいんじゃないかな。
ただしタイミング調整に隠しBIOSコールとか使ってるソフトがあるからそういうやつはデバイスの動作タイミングまでエミュレートしてあげないと誤作動するかも。オープンソース系のエミュレータは、その辺のオプションが豊富だったりする。
Screen10以降のモードを使用したコンテンツがあったかどうか定かではないですが少なくとも収録されているものならScreen5/7/8あたりだと思うので(16 色パレット有り or 256 色固定色/パレット無し)いまどきのDirect2Dでもそれほど問題はないんじゃないですかね。
PC-9801VM2でZ80のエミュレーションをするとかなら、かなりV30のマシン語レベルにも手伝ってもらう必要があったけど、いまのCPUなら、たとえJavaとかC#でエミュレータを書いても当時のZ80の動作速度を軽く超えちゃうんじゃなかろうか。
Z80インタープリタとか作って動かしても、クロックからすれば桁が3ケタも違うわ、メモリはCPUのキャッシュに全部入るわとか考えちゃうと、意外と行けるかもね。
25年前の段階でも、 PC-98用の簡易X1エミュレータ [wikipedia.org]が実機より高速に動作してました。私自身、Z80のエミュレータを書いたことがありますが、CPUエミュレーションぐらいなら楽勝ですね。最適化なんか考えずにテキトーに書いてもそれなりな速度で動きました。
インタプリタ/仮想マシン上のエミュレータ動作、という点ではJavaScriptによるファミコンエミュレータ [fir.sh]なんてものもあります。
問題はタイミングあわせ。ゲーム等で実機の動作を再現するためには、実機と同じ速度で動作する必要があり速すぎてもダメで、さらにCPUエミュレーションと周辺デバイスエミュレーションなどがちゃんと同期し
古いコンソールはラインバッファ方式ですから、エミュも1ラインごとにCPUとVDPのエミュレーション処理を行います実機ではCPUとVDPとディスプレイが同時に動いていたものを、エミュだと仮想CPUとVDPと、実ディスプレイの二つに分かれてしまうので、フレームバッファでつないでいるのですですからそこでちょうど1フレームの遅延が起きますもしラインバッファ方式のビデオカードがあれば、エミュでも「実機と同じ」1ラインの遅延しか発生しません(エミュも水平帰線とリアルタイムに同期する必要がありますが)
そういうわけで、CPU+VDP(+サウンド)のエミュを実機と同じ時間をかけてゆったりできるんですよまとめると・VDPがフレームバッファだと必ず1フレーム遅延する・VDPがラインバッファなら1ラインの遅延ですむ・垂直帰線期間にCPU+VDPのエミュレーションを全部やってしまう必要はない(そうしたところでフレームバッファなら遅延をまぬがれない)パイプライン処理をしているのだから、バッファリングの単位だけ遅れるというごくあたりまえの話です
> ・VDPがフレームバッファだと必ず1フレーム遅延する> ・VDPがラインバッファなら1ラインの遅延ですむ
VDPではなくエミュレータが動いているPCのビデオカードですすみません
より多くのコメントがこの議論にあるかもしれませんが、JavaScriptが有効ではない環境を使用している場合、クラシックなコメントシステム(D1)に設定を変更する必要があります。
192.168.0.1は、私が使っている IPアドレスですので勝手に使わないでください --- ある通りすがり
季刊ということだが (スコア:1)
どこまで出すのだろうねぇ。
ところで後期作品はWindowsでDirectDrawで256色フルスクリーンとか、今のWindowsだとまともに動きそうにないけど、うまく移植できるのか。
それとも今時のWin機だとそれすら仮想化でなんとかなっちゃうレベルなのかな。
Re: (スコア:0)
WindowsマシンでネイティブのWindowsソフトを動すならなんの問題も無いっていうのが一つ。
あとDirectDrawレベルのエミュレータならスマホでも動くんじゃないかなっていうのが一つ。
Re: (スコア:0)
でも、当時のディスクステーション収録ゲームのダウンロード販売ではXPあたりはともかく、7だと動作不可が結構あるようです。
なんらかのエミュレーションが無いと完全動作は難しいのではないかと。
Re: (スコア:1)
16ビットコードが混じっててx64ではそのまま動作しないとかは普通にありそう
Re: (スコア:0)
そもそも8bit(Z80A)ですし・・・
単にエミュレータのできの問題じゃないですかね。
エミュレータ内部のポインタがどうなっているかはわかりませんが、
Z80のポインタをそのまま使うわけじゃないから、
Win32のAPIが無事に叩けていればそれでいいんじゃないかな。
ただしタイミング調整に隠しBIOSコールとか使ってるソフトがあるから
そういうやつはデバイスの動作タイミングまでエミュレートしてあげないと誤作動するかも。
オープンソース系のエミュレータは、その辺のオプションが豊富だったりする。
Screen10以降のモードを使用したコンテンツがあったかどうか定かではないですが
少なくとも収録されているものならScreen5/7/8あたりだと思うので
(16 色パレット有り or 256 色固定色/パレット無し)
いまどきのDirect2Dでもそれほど問題はないんじゃないですかね。
Re: (スコア:1)
PC-9801VM2でZ80のエミュレーションをするとかなら、かなりV30のマシン語レベルにも手伝ってもらう必要があったけど、いまのCPUなら、たとえJavaとかC#でエミュレータを書いても当時のZ80の動作速度を軽く超えちゃうんじゃなかろうか。
Re: (スコア:0)
Z80インタープリタとか作って動かしても、クロックからすれば桁が3ケタも違うわ、
メモリはCPUのキャッシュに全部入るわとか考えちゃうと、意外と行けるかもね。
Re: (スコア:1)
25年前の段階でも、 PC-98用の簡易X1エミュレータ [wikipedia.org]が実機より高速に動作してました。
私自身、Z80のエミュレータを書いたことがありますが、CPUエミュレーションぐらいなら楽勝ですね。最適化なんか考えずにテキトーに書いてもそれなりな速度で動きました。
インタプリタ/仮想マシン上のエミュレータ動作、という点ではJavaScriptによるファミコンエミュレータ [fir.sh]なんてものもあります。
問題はタイミングあわせ。ゲーム等で実機の動作を再現するためには、実機と同じ速度で動作する必要があり速すぎてもダメで、さらにCPUエミュレーションと周辺デバイスエミュレーションなどがちゃんと同期し
Re:季刊ということだが (スコア:0)
古いコンソールはラインバッファ方式ですから、エミュも1ラインごとにCPUとVDPのエミュレーション処理を行います
実機ではCPUとVDPとディスプレイが同時に動いていたものを、エミュだと仮想CPUとVDPと、実ディスプレイの二つに分かれてしまうので、フレームバッファでつないでいるのです
ですからそこでちょうど1フレームの遅延が起きます
もしラインバッファ方式のビデオカードがあれば、エミュでも「実機と同じ」1ラインの遅延しか発生しません
(エミュも水平帰線とリアルタイムに同期する必要がありますが)
そういうわけで、CPU+VDP(+サウンド)のエミュを実機と同じ時間をかけてゆったりできるんですよ
まとめると
・VDPがフレームバッファだと必ず1フレーム遅延する
・VDPがラインバッファなら1ラインの遅延ですむ
・垂直帰線期間にCPU+VDPのエミュレーションを全部やってしまう必要はない(そうしたところでフレームバッファなら遅延をまぬがれない)
パイプライン処理をしているのだから、バッファリングの単位だけ遅れるというごくあたりまえの話です
Re: (スコア:0)
> ・VDPがフレームバッファだと必ず1フレーム遅延する
> ・VDPがラインバッファなら1ラインの遅延ですむ
VDPではなくエミュレータが動いているPCのビデオカードです
すみません