アカウント名:
パスワード:
PS3/PSPにNEOGEOアーカイブスができて、過去のNEOGEOソフトを遊べるっていう噂が出てますね本当だとうれしい
Wiiだと既にバーチャルコンソール化 [snkplaymore.co.jp]されていますね。流石にプログラムそのままではないでしょうが、Xbox 360のXbox Live ArcadeでもいくつかNEO GEO用ソフトを見かけますし、PS3の性能だったら完全再現も難しくないんじゃないですかね。
実機はVDPの出力を即表示させてますが、エミュレータはVDPの出力を一旦仮想ディスプレイとして裏のフレームバッファに書いて、その処理が終わってから表示対象のハードウェアにあわせて画像のコンバートをかけているので最低でも1~2フレーム分は遅れて表示されます。
実機でのラスターの処理は次のフレームですよ。その(MPUの)処理が終了するまで画面イメージのビットマップは決定できないと思いますが、それから表示を行うと遅延は生じないですか?プレイヤーの入力から画面への表示まで、遅延は大きいのではないですか?
実機とエミュレーターで処理の順番が違う以上、発生するウェイトによって遅延が出るのは不可避ですね。この遅延というのは実機と比べてタイミングが遅れるっていう意味で、処理能力とは関係ない。だから「VMの処理時間がゼロ」では間に合わない。マイナスじゃないと。
ただそれが深刻な問題かといわれると、全くそうは思いませんけど。
PS3では表示中のフレームバッファを書き換えられない、と仮定すれば、エミュレータが頑張って書いてる仮想フレームバッファから本物のフレームバッファ(裏)へフレームの途中でも頻繁に変換するとしても、変換に加えて表と裏を切り替える時間分は論理的にどうしても遅延しますね。数十nsくらいでしょうか。
私も、そのへんはソフト側で感覚的に調整すればいいだけのような気がします。
実機の動作に拘る人は実機を動態保存すればいいんで、なんで「完全に再現」に固執するのか微妙に解らなかったりします。
どこにぶら下げればいいのかわからんけど。
要は液晶とCRTの方式を比べてホールド形式(だっけ?)はどうしてもスキャンライン形式と比べて一フレーム遅延するみたいな話をしたいのかなこの人は。そういう話ならまあそうですねとしか言えないが。
V-Sync時に表示されるか、H-Sync時に表示されるか?って事を言いたいんじゃないかと。走査線が一画面書き終わってから表示なのか、1ライン(より正確にはもっと少ない時間で横に書いていく)で表示なのか・・・っていう。
ラスタースクロールの場合は1ライン書き終わりの割り込みでグラフィックコントローラ叩いて表示をスクロールさせてるわけで。
もっと言うとX68000等々で使われてたスプライトダブラなんかは画面の上半分をハードウェアがモニタに出力し終わった瞬間にスプライト関係のハードウェア叩いて表示するパターンや位置を切り替えてますね。
#FF6はH-Sync割り込みでパレット書き換えてSFCの同時発色を超えたとか聞いたなぁ・・・
そういう手合いは完全に再現してほしくないんですよなにがしかの差がないと実機を持ってない人をバカにすることができませんから
まああたしも実機の方を好みはしますが違和感を感じるのは遅延とかではなくコントローラの感触ですな変換コネクタメーカーの皆様お世話になっておりますって言うとまたそこで遅延が、って怒られるのよね
と言うより、その話とエミュレータにおけるレンダリング処理の話を完全に混同しているようにしか見えないのですが。
まあ、「安直に」ダブルバッファリングすれば、「理論上は」1フレーム遅れますけど、回避方法はいくらでもあるし、そもそも実機からしてフレームバッファ機だったりダブルバッファリングしていたら何の問題も無い訳で。
#NEOGEOはラインバッファスプライトですけど、その程度の無遅延エミュレーションが今時のハードで出来ないとはとても…
ええ。遅延が遅延がと大騒ぎしているACは、「ゲーム処理上の」1フレーム描画から、「実際の表示装置に送られるまでの」間に、ラインバッファとフレームバッファの違いのせいで、実機よりもレンダリングウェイトが入るんじゃないの? という話をしたいんだと思います。要は、データを表示装置に逐次送信できるラインバッファスプライトと違い、フレームバッファ上に一度全スプライトを描画した上で(=1フレーム分の処理が終わった後で)送信しなきゃならない、だから遅延するんだ、と言う論法だと思います。「ゲーム側が行っているのは、オブジェクトの『位置を決定』す
もちろん遅延しますよ。「全てのレンダー要素が揃った所」というのが実機での表示がし終わったタイミングですから。
より多くのコメントがこの議論にあるかもしれませんが、JavaScriptが有効ではない環境を使用している場合、クラシックなコメントシステム(D1)に設定を変更する必要があります。
皆さんもソースを読むときに、行と行の間を読むような気持ちで見てほしい -- あるハッカー
PS3でネオジオソフトがプレイ可能? (スコア:3, 興味深い)
PS3/PSPにNEOGEOアーカイブスができて、過去のNEOGEOソフトを遊べるっていう噂が出てますね
本当だとうれしい
Re: (スコア:1, 参考になる)
Wiiだと既にバーチャルコンソール化 [snkplaymore.co.jp]されていますね。
流石にプログラムそのままではないでしょうが、Xbox 360のXbox Live ArcadeでもいくつかNEO GEO用ソフトを見かけますし、PS3の性能だったら完全再現も難しくないんじゃないですかね。
Re: (スコア:0)
Re: (スコア:2)
だからむしろグラフィック的には負荷は低いと思います。
Re: (スコア:0)
Re: (スコア:2)
実機 V-Blank-In
VM 処理開始
VM V-Blank-Out
VM V-Blank-In
描画処理>BLT
VM 処理終了
実機 V-Blank-Out
特に発生する要因は無いと思いますが・・・
Re: (スコア:0)
実機はVDPの出力を即表示させてますが、エミュレータはVDPの出力を一旦仮想ディスプレイ
として裏のフレームバッファに書いて、その処理が終わってから表示対象のハードウェアに
あわせて画像のコンバートをかけているので最低でも1~2フレーム分は遅れて表示されます。
Re: (スコア:2)
むしろフレームをまたいで描画する理由がわかりませんが。
何故1-2フレームも後で処理するのですか?
Re:PS3でネオジオソフトがプレイ可能? (スコア:0)
Re:PS3でネオジオソフトがプレイ可能? (スコア:2)
むしろなんで頑なにそんなに遅延すると思ってるのか謎。
Re: (スコア:0)
エミュレータはフレームバッファにレンダリングしている時にラスター割り込みもエミュレートしますので問題はありません。
Re: (スコア:0)
実機でのラスターの処理は次のフレームですよ。
その(MPUの)処理が終了するまで画面イメージのビットマップは決定できないと思いますが、それから表示を行うと遅延は生じないですか?
プレイヤーの入力から画面への表示まで、遅延は大きいのではないですか?
Re:PS3でネオジオソフトがプレイ可能? (スコア:2)
とりあえず、VMの処理時間が限りなくゼロに近いと仮定して色々考えられてはどうですか?
それでも遅延が出るのなら、それは絶対に出る遅延なんでしょう。
ラスターの値をライン毎に記憶しておいて
全てのレンダー要素が揃った所で
その記憶しておいた値を使ってレンダリング
この間の時間がゼロだとしても遅延します?
Re: (スコア:0)
Re: (スコア:0)
実機とエミュレーターで処理の順番が違う以上、発生するウェイトによって遅延が出るのは不可避ですね。
この遅延というのは実機と比べてタイミングが遅れるっていう意味で、処理能力とは関係ない。
だから「VMの処理時間がゼロ」では間に合わない。
マイナスじゃないと。
ただそれが深刻な問題かといわれると、全くそうは思いませんけど。
Re:PS3でネオジオソフトがプレイ可能? (スコア:2)
PS3では表示中のフレームバッファを書き換えられない、と仮定すれば、エミュレータが頑張って書いてる仮想フレームバッファから本物のフレームバッファ(裏)へフレームの途中でも頻繁に変換するとしても、変換に加えて表と裏を切り替える時間分は論理的にどうしても遅延しますね。数十nsくらいでしょうか。
Re: (スコア:0)
私も、そのへんはソフト側で感覚的に調整すればいいだけのような気が
します。
実機の動作に拘る人は実機を動態保存すればいいんで、なんで「完全に再現」
に固執するのか微妙に解らなかったりします。
Re: (スコア:0)
どこにぶら下げればいいのかわからんけど。
要は液晶とCRTの方式を比べてホールド形式(だっけ?)はどうしてもスキャンライン形式と比べて一フレーム遅延するみたいな話をしたいのかなこの人は。そういう話ならまあそうですねとしか言えないが。
Re: (スコア:0)
なにがしかの差がないと実機を持ってない人をバカにすることができませんから
Re:PS3でネオジオソフトがプレイ可能? (スコア:1)
V-Sync時に表示されるか、H-Sync時に表示されるか?って事を言いたいんじゃないかと。
走査線が一画面書き終わってから表示なのか、1ライン(より正確にはもっと少ない時間で横に書いていく)で表示なのか・・・っていう。
ラスタースクロールの場合は1ライン書き終わりの割り込みでグラフィックコントローラ叩いて表示をスクロールさせてるわけで。
もっと言うとX68000等々で使われてたスプライトダブラなんかは画面の上半分をハードウェアがモニタに出力し終わった瞬間に
スプライト関係のハードウェア叩いて表示するパターンや位置を切り替えてますね。
#FF6はH-Sync割り込みでパレット書き換えてSFCの同時発色を超えたとか聞いたなぁ・・・
猫にボタンを押されました (スコア:0)
そういう手合いは完全に再現してほしくないんですよ
なにがしかの差がないと実機を持ってない人をバカにすることができませんから
まああたしも実機の方を好みはしますが
違和感を感じるのは遅延とかではなくコントローラの感触ですな
変換コネクタメーカーの皆様お世話になっております
って言うとまたそこで遅延が、って怒られるのよね
Re: (スコア:0)
と言うより、その話とエミュレータにおけるレンダリング処理の話を完全に混同しているようにしか見えないのですが。
まあ、「安直に」ダブルバッファリングすれば、「理論上は」1フレーム遅れますけど、回避方法はいくらでもあるし、そもそも実機からしてフレームバッファ機だったりダブルバッファリングしていたら何の問題も無い訳で。
#NEOGEOはラインバッファスプライトですけど、その程度の無遅延エミュレーションが今時のハードで出来ないとはとても…
Re: (スコア:0)
遅れるというのが、何が何から遅れるのか理解していますか?
Re: (スコア:0)
ええ。
遅延が遅延がと大騒ぎしているACは、「ゲーム処理上の」1フレーム描画から、「実際の表示装置に送られるまでの」間に、ラインバッファとフレームバッファの違いのせいで、実機よりもレンダリングウェイトが入るんじゃないの? という話をしたいんだと思います。
要は、データを表示装置に逐次送信できるラインバッファスプライトと違い、フレームバッファ上に一度全スプライトを描画した上で(=1フレーム分の処理が終わった後で)送信しなきゃならない、だから遅延するんだ、と言う論法だと思います。
「ゲーム側が行っているのは、オブジェクトの『位置を決定』す
Re: (スコア:0)
もちろん遅延しますよ。
「全てのレンダー要素が揃った所」というのが実機での表示がし終わったタイミングですから。
Re:PS3でネオジオソフトがプレイ可能? (スコア:2)
実機での表示を行う前に「全てのレンダー要素」を揃えるので。
Re: (スコア:0)
- 実機でnフレーム目の画面が表示されて、
- プレイヤーがその画面を見て、それに対して何かしらの操作をして、
- その操作の結果が(n+1)フレーム目に反映される
といった感じで、プレイヤーの操作が画面に対して遅延なく反映されるか、ということですよね?
- エミュレータの実行環境でnフレーム目の画面が表示され終わって、
- プレイヤーがその画面を見て、それに対して何かしらの操作をして、
- エミュレータがその入力を取得して、
- (n+1)フレーム目の期間だけエミュレータの仮想環境を駆動して、
- それに応じてレンダリングして、
- レンダリング結果のフリップが(n+1)フレーム目の表示開始に間に合えば、
エミュレータだからって遅延する訳じゃないでしょう、ってことじゃない?