アカウント名:
パスワード:
PS3/PSPにNEOGEOアーカイブスができて、過去のNEOGEOソフトを遊べるっていう噂が出てますね本当だとうれしい
Wiiだと既にバーチャルコンソール化 [snkplaymore.co.jp]されていますね。流石にプログラムそのままではないでしょうが、Xbox 360のXbox Live ArcadeでもいくつかNEO GEO用ソフトを見かけますし、PS3の性能だったら完全再現も難しくないんじゃないですかね。
遅延は発生しますよ。ビデオゲームの多くは表示期間と垂直帰線期間を合わせたフレームという単位で動かしているものが一般的ですが、そのフレームのなかでのプロセッサの処理は、大よそ以下の通りとなります。
----------------------------------------フレーム1表示期間・プレイヤー操作入力・ゲームロジック演算(自キャラ敵キャラの動き、当たり判定など)・ラスター処理(スクロール、パレット書き換えなど)----------------------------------------フレーム1垂直帰線期間・スプライトテーブル書き換え・BG書き換え・パレット書き換え----------------------------------------フレーム2
エミュレータの動作はこうです
----------------------------------------フレーム1表示期間・プレイヤー操作入力・ゲームロジック演算(自キャラ敵キャラの動き、当たり判定など) ×ラスター処理(スクロール、パレット書き換えなど) ----------------------------------------フレーム1垂直帰線期間・スプライトテーブル書き換え・BG書き換え・パレット書き換え ○フレーム2ラスター処理(スクロール、パレット書き換えなど) ----------------------------------------
> ラスター処理は、前のフレームで生成したイメージへの操作であるため、
違います。実機ではH-Blank
エミュレータの動作はこうです----------------------------------------フレーム1表示期間・プレイヤー操作入力・ゲームロジック演算(自キャラ敵キャラの動き、当たり判定など)×ラスター処理(スクロール、パレット書き換えなど)----------------------------------------フレーム1垂直帰線期間・スプライトテーブル書き換え・BG書き換え・パレット書き換え○フレーム2ラスター処理(スクロール、パレット書き換えなど)----------------------------------------
----------------------------------------フレーム1表示期間・プレイヤー操作入力・ゲームロジック演算(自キャラ敵キャラの動き、当たり判定など)×ラスター処理(スクロール、パレット書き換えなど)----------------------------------------フレーム1垂直帰線期間・スプライトテーブル書き換え・BG書き換え・パレット書き換え○フレーム2ラスター処理(スクロール、パレット書き換えなど)----------------------------------------
ラスター処理のシーケンスを変更するにはオリジナルのプログラムの変更が必要になると思いますが、エミュレータでそんなことやっているのですか?
>個別ではなく、ゲームの超基本的な作法で決まりますから、すべてのゲームで共通です。
んなワケねーよ。特に昔のゲームなんか、いまどきのOSやらフレームワークやらが揃ってないところで素人に毛の生えたようなのが各人バラバラな作り方してたぞ。
>エミュレータのCPUエミュレーションは実機より必ず高速ですから、
バカなこと言うな。
>いつごろの話をしているのかわかりませんが、ファミコン時代にはすでに必ずV-SYNCで同期をとっていました。(そうしないと画面がちらつきます)
なんでV-SYNC同期に話を限定するのか分からんが、V-SYNCの同期取ってない具体的な例ならSNKのVANGUARDがそうだな。
>実機より遅ければエミュレーションが間に合いませんが。
以前自分が担当した製品では間に合わない分に応じて小細工して帳尻合わせたが何か?
業務用ビデオゲームでBGとOBJの動きが1フレームずれてるのなんてざらだったけどな。知らないの?
ストーリーをはじめから読んでいただきたいのですが。
> なんでV-SYNC同期に話を限定するのか分からんが、V-SYNCの同期取ってない具体的な例ならSNKのVANGUARDがそうだな。
VANGUARDは派手に波打っていましたが、かなり古いゲームですね。
> 以前自分が担当した製品では間に合わない分に応じて小細工して帳尻合わせたが何か?
誰かが「フレームバッファ式のマシンでラインバッファ方式をエミュレートすると必ず1フレーム以上遅れる」と言ったので、必ずしもそうではない、正確に再現することもできるという話をしているわけです。正確さにこだわないエミュレータの実装もあると、かなり前のほうで断ったはずですが。
ついでにこっちも
> 業務用ビデオゲームでBGとOBJの動きが1フレームずれてるのなんてざらだったけどな。知らないの?
実機とエミュレータの動作の違いについての話ですから、実機の動作がどうであるかは対象外です。
> > > 個別ではなく、ゲームの超基本的な作法で決まりますから、すべてのゲームで共通です。
> > 業務用ビデオゲームでBGとOBJの動きが1フレームずれてるのなんてざらだったけどな。知らないの?
> 実機とエミュレータの動作の違いについての話ですから、実機の動作がどうであるかは対象外です。
超基本的な作法が守られてないタイトルなんてざらにあるって話ですが、日本語通じない人?
> 誰かが「フレームバッファ式のマシンでラインバッファ方式をエミュレートすると必ず1フレーム以上遅れる」と言ったので、必ずしもそうではない、正確に再現することもできるという話をしているわけです。
「ああいうのは内部で仮想VRAMを持っていて、フレームの最後にVRAM内容を転送するだけですね。 だからむしろグラフィック的には負荷は低いと思います。」
↑こんなことやってりゃフレームの遅延も当たり前に発生するでしょ。
> > > エミュレータのCPUエミュレーションは実機より必ず高速ですから、
> > バカなこと言うな。
> 実機より遅ければエミュレーションが間に合いませんが。
> 正確さにこだわないエミュレータの実装もあると、かなり前のほうで断ったはずですが ←New!
>フレームの内容をVRAMに転送するのはきわめて高速です。>一昔前のPCでも、1フレームに対して1msかかりません。
PS3でフルHDのフレームバッファ消去してゲームの画面イメージ他額縁等描画すると平気で数m秒掛かるよ。
>実機の動作をリアルタイムに正確に再現するには、ある程度の性能をもったPCが必要です。ということを解説するところからはじめないといけませんか?(といってもネオジオ程度であれば10年前のもので十分です)
可能であればどうぞ。
>プライドを傷つけるようで申し訳ないのですが、初歩の初歩からはじめますのでお付き合いください。
実際何度かエミュレータを使用してのオールドタイトルの再現は業務でやっておりますのでプライドが傷つくとかはないですよ。勉強になれば幸いだと思っています。
>次回以降では、ホストPCの単一スレッドが上記すべてのエミュレーションを行うことを前提にします。
なんでPCなんですか? 可能であればPS3でお願いします。あと、サウンドについても言及されるのであれば、可能であればそちらの遅延の解消方法についても解説していただけると幸いです。
> 5年前のPS3でさえフルHDでそんな性能がでるのなら、ネオジオ程度であれば一昔どころか10年前のPCでも楽勝そうですね
画面の描画だけで数m秒ですよ。ネオジオの実機ならラインバッファ単位の描画なので60μ秒程度ですね。描画に関してはPS3は実機に完全に負けているのでそれだけ他の部分を早く実行しなければいけないのですが、理解されてますか?10年前のPCで楽勝? 正気ですか?
> > ネオジオの実機ならラインバッファ単位の描画なので60μ秒程度ですね。
> 数字だけをぽーんと出してこられても困ります。
> あなたは、60μ秒というのが何の時間か、まず説明すべきです。
1走査線のおおよその期間ですが説明しないと分からないもんですか? ちょっとびっくりしました。
> 次に、エミュレータがその60μ秒の間に何をしているのか、説明すべきです。
???エミュレータが60μ秒の間に何をしているなどという話は私は一切しておりませんが?
> > 描画に関してはPS3は実機に完全に負けているので
>まだ描画(レンダリング)の話はまだ
> 1走査線のおおよその期間ですが説明しないと分からないもんですか? ちょっとびっくりしました。
あなたが妙な誤解をなさっているようなので確認してみましたが、その通りだったようですね。
> あなたが「描画(レンダリング)」という言葉をエミュレータ上でCPUが画像イメージを生成する意味で言っているのか、
このストーリーの前のほうで、前者すなわち「CPU(実機ならVPU)が画像イメージを生成する」ことをレンダリングだと断っていますが、読んでないのですか?
> 後者の意味ならば
ではありませせん。
>このストーリーの前のほうで、前者すなわち「CPU(実機ならVPU)が画像イメージを生成する」ことをレンダリングだと断っていますが、読んでないのですか?
正確な用語の定義のある話題ではないし、ACのどなたが言った言わないというのも意味のある話とも思いません。その辺を主張されたければIDをお使い下さい。
#1731695 [srad.jp]の以下の部分は何の話か?ってことですよね??
フレームの内容をVRAMに転送するのはきわめて高速です。一昔前のPCでも、1フレームに対して1msかかりません。
> エミュレータの話題でレンダリングと言えば、BGやスプライトを合成して画面イメージを生成することです。
あなたの狭い認識ではそうだということですね。ところで「メモリ上にレンダリングした結果を、エミュが動いているハードのVRAMへ転送する」話はどこ行ったのですか?
> ソースが公開されているものも多いので、目を通せば納得できるとおもいます。
どこかの誰かさんがある動作をどう呼んでいるかはさほど重要な話とも思いません。解釈の分かれる話であれば、その都度はっきりと明示すればよいだけのことではありませんか?
より多くのコメントがこの議論にあるかもしれませんが、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)
遅延は発生しますよ。
ビデオゲームの多くは表示期間と垂直帰線期間を合わせたフレームという単位で動かしているものが一般的ですが、そのフレームのなかでのプロセッサの処理は、大よそ以下の通りとなります。
----------------------------------------
フレーム1表示期間
・プレイヤー操作入力
・ゲームロジック演算(自キャラ敵キャラの動き、当たり判定など)
・ラスター処理(スクロール、パレット書き換えなど)
----------------------------------------
フレーム1垂直帰線期間
・スプライトテーブル書き換え
・BG書き換え
・パレット書き換え
----------------------------------------
フレーム2
Re: (スコア:0)
エミュレータの動作はこうです
----------------------------------------
フレーム1表示期間
・プレイヤー操作入力
・ゲームロジック演算(自キャラ敵キャラの動き、当たり判定など)
×ラスター処理(スクロール、パレット書き換えなど)
----------------------------------------
フレーム1垂直帰線期間
・スプライトテーブル書き換え
・BG書き換え
・パレット書き換え
○フレーム2ラスター処理(スクロール、パレット書き換えなど)
----------------------------------------
> ラスター処理は、前のフレームで生成したイメージへの操作であるため、
違います。実機ではH-Blank
Re: (スコア:0)
ラスター処理のシーケンスを変更するにはオリジナルのプログラムの変更が必要になると思いますが、エミュレータでそんなことやっているのですか?
Re:PS3でネオジオソフトがプレイ可能? (スコア:0)
シーケンスではないので。
ラスター処理はH-SYNC割り込み駆動ですから、それをエミュレートしているだけです。
Re: (スコア:0)
Re: (スコア:0)
通常のプログラムシーケンスはありますが、それはそのままエミュレートします。
ただし、実機が画面のリアルタイムのフレームの描画中にやる処理を、エミュレータはそれより前、つまりリアルタイムの直前のフレームのH-BLANK中にやってしまいます。
実機がリアルタイムのH-BLANK中にやる処理は、エミュレータでもリアルタイムのH-BLANK中にやりますので、シンプルに実装すれば、全処理をリアルタイムのH-BLANK中に押し込めることになります。(勘の鋭い方が指摘なさったとおりです)
Re: (スコア:0)
Re: (スコア:0)
タイミングではなく依存関係がわかれば十分です。
Re: (スコア:0)
Re: (スコア:0)
個別ではなく、ゲームの超基本的な作法で決まりますから、すべてのゲームで共通です。
あるフレームのラスター処理に必要なデータ(ラスタースクロールオフセットやカラーパレットなど)は、そのフレームのリアルタイム開始時刻Tにはすべて揃っています。
エミュレータのCPUエミュレーションは実機より必ず高速ですから、データが揃うリアルタイム時刻T'はTより前になります。
T'からTの間に、エミュレータは1画面をフレームバッファにレンダー(+ラスター処理)しVRAMに転送すればよいです。
Re: (スコア:0)
>個別ではなく、ゲームの超基本的な作法で決まりますから、すべてのゲームで共通です。
んなワケねーよ。特に昔のゲームなんか、いまどきのOSやらフレームワークやらが揃ってない
ところで素人に毛の生えたようなのが各人バラバラな作り方してたぞ。
>エミュレータのCPUエミュレーションは実機より必ず高速ですから、
バカなこと言うな。
Re: (スコア:0)
> んなワケねーよ。特に昔のゲームなんか、いまどきのOSやらフレームワークやらが揃ってないところで素人に毛の生えたようなのが各人バラバラな作り方してたぞ。
いつごろの話をしているのかわかりませんが、ファミコン時代にはすでに必ずV-SYNCで同期をとっていました。(そうしないと画面がちらつきます)
> >エミュレータのCPUエミュレーションは実機より必ず高速ですから、
> バカなこと言うな。
実機より遅ければエミュレーションが間に合いませんが。
Re: (スコア:0)
>いつごろの話をしているのかわかりませんが、ファミコン時代にはすでに必ずV-SYNCで同期をとっていました。(そうしないと画面がちらつきます)
なんでV-SYNC同期に話を限定するのか分からんが、V-SYNCの同期取ってない具体的な例ならSNKのVANGUARDがそうだな。
>実機より遅ければエミュレーションが間に合いませんが。
以前自分が担当した製品では間に合わない分に応じて小細工して帳尻合わせたが何か?
Re: (スコア:0)
>個別ではなく、ゲームの超基本的な作法で決まりますから、すべてのゲームで共通です。
業務用ビデオゲームでBGとOBJの動きが1フレームずれてるのなんてざらだったけどな。知らないの?
Re: (スコア:0)
ストーリーをはじめから読んでいただきたいのですが。
> なんでV-SYNC同期に話を限定するのか分からんが、V-SYNCの同期取ってない具体的な例ならSNKのVANGUARDがそうだな。
VANGUARDは派手に波打っていましたが、かなり古いゲームですね。
> 以前自分が担当した製品では間に合わない分に応じて小細工して帳尻合わせたが何か?
誰かが「フレームバッファ式のマシンでラインバッファ方式をエミュレートすると必ず1フレーム以上遅れる」と言ったので、必ずしもそうではない、正確に再現することもできるという話をしているわけです。
正確さにこだわないエミュレータの実装もあると、かなり前のほうで断ったはずですが。
ついでにこっちも
> 業務用ビデオゲームでBGとOBJの動きが1フレームずれてるのなんてざらだったけどな。知らないの?
実機とエミュレータの動作の違いについての話ですから、実機の動作がどうであるかは対象外です。
Re: (スコア:0)
> > > 個別ではなく、ゲームの超基本的な作法で決まりますから、すべてのゲームで共通です。
> > 業務用ビデオゲームでBGとOBJの動きが1フレームずれてるのなんてざらだったけどな。知らないの?
> 実機とエミュレータの動作の違いについての話ですから、実機の動作がどうであるかは対象外です。
超基本的な作法が守られてないタイトルなんてざらにあるって話ですが、日本語通じない人?
Re: (スコア:0)
> 超基本的な作法が守られてないタイトルなんてざらにあるって話ですが、日本語通じない人?
一般論として超基本的な作法はいくつかありますが、わたしが話題にしているものは、やはり前のほうで明らかにしています。
一体あなたの相手は誰なんですか?
Re: (スコア:0)
> 誰かが「フレームバッファ式のマシンでラインバッファ方式をエミュレートすると必ず1フレーム以上遅れる」と言ったので、必ずしもそうではない、正確に再現することもできるという話をしているわけです。
「ああいうのは内部で仮想VRAMを持っていて、フレームの最後にVRAM内容を転送するだけですね。
だからむしろグラフィック的には負荷は低いと思います。」
↑こんなことやってりゃフレームの遅延も当たり前に発生するでしょ。
Re: (スコア:0)
> > > エミュレータのCPUエミュレーションは実機より必ず高速ですから、
> > バカなこと言うな。
> 実機より遅ければエミュレーションが間に合いませんが。
> 正確さにこだわないエミュレータの実装もあると、かなり前のほうで断ったはずですが ←New!
Re: (スコア:0)
> 「ああいうのは内部で仮想VRAMを持っていて、フレームの最後にVRAM内容を転送するだけですね。 だからむしろグラフィック的には負荷は低いと思います。」
> ↑こんなことやってりゃフレームの遅延も当たり前に発生するでしょ。
フレームの内容をVRAMに転送するのはきわめて高速です。
一昔前のPCでも、1フレームに対して1msかかりません。
> > 正確さにこだわないエミュレータの実装もあると、かなり前のほうで断ったはずですが ←New!
実機の動作をリアルタイムに正確に再現するには、ある程度の性能をもったPCが必要です。ということを解説するところからはじめないといけませんか?(といってもネオジオ程度であれば10年前のもので十分です)
Re: (スコア:0)
>フレームの内容をVRAMに転送するのはきわめて高速です。
>一昔前のPCでも、1フレームに対して1msかかりません。
PS3でフルHDのフレームバッファ消去してゲームの画面イメージ他額縁等描画すると平気で数m秒掛かるよ。
>実機の動作をリアルタイムに正確に再現するには、ある程度の性能をもったPCが必要です。ということを解説するところからはじめないといけませんか?(といってもネオジオ程度であれば10年前のもので十分です)
可能であればどうぞ。
Re: (スコア:0)
5年前のPS3でさえフルHDでそんな性能がでるのなら、ネオジオ程度であれば一昔どころか10年前のPCでも楽勝そうですね。
Re: (スコア:0)
プライドを傷つけるようで申し訳ないのですが、初歩の初歩からはじめますのでお付き合いください。
ネオジオは12MHzの68000と4MHzのZ80、VDP、サウンド、I/Oといったハードウェアを持ちます。
エミュレータはおのおののデバイスのエミュレーションを行います。
次回以降では、ホストPCの単一スレッドが上記すべてのエミュレーションを行うことを前提にします。
ここまでは理解できましたか?
「はい・いいえ」
次回は、ネオジオのCPUエミュレーションの説明です。
Re: (スコア:0)
>プライドを傷つけるようで申し訳ないのですが、初歩の初歩からはじめますのでお付き合いください。
実際何度かエミュレータを使用してのオールドタイトルの再現は業務でやっておりますのでプライドが傷つくとかはないですよ。勉強になれば幸いだと思っています。
>次回以降では、ホストPCの単一スレッドが上記すべてのエミュレーションを行うことを前提にします。
なんでPCなんですか? 可能であればPS3でお願いします。
あと、サウンドについても言及されるのであれば、可能であればそちらの遅延の解消方法についても解説していただけると幸いです。
Re: (スコア:0)
> 5年前のPS3でさえフルHDでそんな性能がでるのなら、ネオジオ程度であれば一昔どころか10年前のPCでも楽勝そうですね
画面の描画だけで数m秒ですよ。ネオジオの実機ならラインバッファ単位の描画なので60μ秒程度ですね。
描画に関してはPS3は実機に完全に負けているのでそれだけ他の部分を早く実行しなければいけないのですが、理解されてますか?
10年前のPCで楽勝? 正気ですか?
Re: (スコア:0)
数字だけをぽーんと出してこられても困ります。
あなたは、60μ秒というのが何の時間か、まず説明すべきです。
次に、エミュレータがその60μ秒の間に何をしているのか、説明すべきです。
(わたしも説明しますが先ほどの講座で順序だてて説明したいので、かなり後のほうになります)
> 描画に関してはPS3は実機に完全に負けているので
まだ描画(レンダリング)の話はまだ出てきていないわけですが。
先ほど言及したのは、仮想VRAM(フレームバッファ)をエミュレーションホストのVRAMに転送する話です。文脈はこ
Re: (スコア:0)
> > ネオジオの実機ならラインバッファ単位の描画なので60μ秒程度ですね。
> 数字だけをぽーんと出してこられても困ります。
> あなたは、60μ秒というのが何の時間か、まず説明すべきです。
1走査線のおおよその期間ですが説明しないと分からないもんですか? ちょっとびっくりしました。
> 次に、エミュレータがその60μ秒の間に何をしているのか、説明すべきです。
???
エミュレータが60μ秒の間に何をしているなどという話は私は一切しておりませんが?
> > 描画に関してはPS3は実機に完全に負けているので
>まだ描画(レンダリング)の話はまだ
Re: (スコア:0)
> 1走査線のおおよその期間ですが説明しないと分からないもんですか? ちょっとびっくりしました。
あなたが妙な誤解をなさっているようなので確認してみましたが、その通りだったようですね。
> あなたが「描画(レンダリング)」という言葉をエミュレータ上でCPUが画像イメージを生成する意味で言っているのか、
このストーリーの前のほうで、前者すなわち「CPU(実機ならVPU)が画像イメージを生成する」ことをレンダリングだと断っていますが、読んでないのですか?
> 後者の意味ならば
ではありませせん。
Re: (スコア:0)
>このストーリーの前のほうで、前者すなわち「CPU(実機ならVPU)が画像イメージを生成する」ことをレンダリングだと断っていますが、読んでないのですか?
正確な用語の定義のある話題ではないし、ACのどなたが言った言わないというのも意味のある話とも思いません。その辺を主張されたければIDをお使い下さい。
Re: (スコア:0)
#1731695 [srad.jp]の以下の部分は何の話か?ってことですよね??
Re: (スコア:0)
この部分はレンダリングとは直接関係ありません。
エミュレータがCPUでゲーム機のVDPの動作を模倣してメモリ上にレンダリングした結果を、エミュが動いているハードのVRAMへ転送する話です。
エミュレータの話題でレンダリングと言えば、BGやスプライトを合成して画面イメージを生成することです。
ソースが公開されているものも多いので、目を通せば納得できるとおもいます。
Re: (スコア:0)
> エミュレータの話題でレンダリングと言えば、BGやスプライトを合成して画面イメージを生成することです。
あなたの狭い認識ではそうだということですね。ところで「メモリ上にレンダリングした結果を、エミュが動いているハードのVRAMへ転送する」話はどこ行ったのですか?
> ソースが公開されているものも多いので、目を通せば納得できるとおもいます。
どこかの誰かさんがある動作をどう呼んでいるかはさほど重要な話とも思いません。解釈の分かれる話であれば、その都度はっきりと明示すればよいだけのことではありませんか?