■掲示板に戻る■
全部
1-
最新50
ご意見ご感想スレ
- 1 :(む)@管理人 ★ : 2005/05/17(火) 00:17:11 ID:???
- とびつきをプレイして思ったことなどをお気軽にどうぞぞぞ。
- 18 :NyaRuRu : 2006/03/02(木) 13:15:33 ID:7/Yahnx6
- サークル「不思議キッチン」のプログラマ等をやっていますNyaRuRuと申します.
C68,C69ではお世話になりました.
リプレイの再現性問題ですが,当サークルでも何度か問題になっていくつか調べたことがありますので,参考になりましたらと思い投稿させて頂きました.
1)DirectX9はデバイス初期化時にD3DCREATE_FPU_PRESERVEフラグを設定しなかった場合,FPUの丸めレジスタをsingle-precision,round-to-nearestに変更します.
もし何らかの原因でその後に割り込んだ処理がこの丸めレジスタをさらに書き換えた場合,丸め誤差の影響でリプレイが再現できなくなることがあります.
VisualC++でしたら_controlfp関数などで丸めレジスタの内容をチェックできますので,リプレイが再現できない環境でassertを仕込んで毎フレームチェックしてみるというのも手かもしれません.
2)DirectXSDKに付属するD3DXライブラリですが,実行時にCPU判定を行って内部的にMMX/SSE/SSE2/3DNow!の各最適化ルーチンに分岐します.
このためD3DXの算術関数がゲームエンジンで使用されている場合,同じ入力を与えても環境によって微妙に異なる結果となる可能性があります.
この場合後からD3DXを自前関数に置き換えるのは大変ですが,レジストリエントリを使用してこれらのCPU拡張命令を使用しないように出来ます.
このあたりについてまとめた記事を書いたことがありますので,参考になりましたら幸いです.
http://codezine.jp/a/article.aspx?aid=235
上の記事でも書きましたが,以下のレジストリキーにDWORDで1を設定すると,DirectXRuntimeはx87FPUで計算を行うようになります.
・HKLM\Software\Microsoft\Direct3D\DisablePSGP
・HKLM\Software\Microsoft\Direct3D\DisableD3DXPSGP
(・HKLM\Software\Microsoft\Direct3D\DisableMMXも以前は使用されていました)
順番が前後いたしますが,「とびでばいん」「とびまな」「とびつきひめ」楽しくプレイさせていただきました.どうもありがとうございます.
- 19 :(む)@管理人 ★ : 2006/03/04(土) 00:28:00 ID:???
- >>18 NyaRuRuさん
貴重な情報どうもありがとうございますーヽ(´ー`)ノ
DirectX側でもこういった問題ありましたか。うむむ。
今ちっと他の作業中なんで、これ終わったら調べてみます。
- 20 :ななしさん : 2006/03/07(火) 00:38:09 ID:AOHdYH6.
- これってボタンの複数割り当てはできないんでしょうか?
- 21 :(む)@管理人 ★ : 2006/03/07(火) 00:54:14 ID:???
- >>20ななしさん
複数割り当てというのは、例えばボタンAの琥珀ショットを
パッドのボタン1とボタン2とボタン3のどれ押しても
琥珀ショットが出るようにするって事ですかね?
もしそれであれば、ゲームの仕様によるところもありますので、
申し訳ありませんが出来ません。
なおパッドの設定は、環境設定.exeから行う事が出来ます。
10 KB
新着レスの表示
掲示板に戻る 全部
前100
次100 最新50
read.php ver2.4 2005/04/13