看板 Emulator 關於我們 聯絡資訊
http://drhell.web.fc2.com/ps1/index.html ------------------------------------------------------------------------ 更新内容 ------------------------------------------------------------------------ ①GPUの描画ルーチンの修正 従来のルーチンではテクスチャにライティングをするときの計算精度が1ビット低い (結果としてテクスチャにディザをかけるとき大きめにかけてしまう)ような気がするの で 修正した ②Mode 2で実行してもOS ROM上のコードはMode 1で実行するようになっていたので 修正した。 ③パッド履歴を記録中の場合、ファンクションキーによる実行イメージの退避・復帰 (いわゆるステートセーブ・ロード)において、パッド履歴も退避・復帰するように変更 した。 これにともないファイルの拡張子も若干変更した。 ------------------------------------------------------------------------ いつかドキュメントを改定するときのためのドラフト ------------------------------------------------------------------------ ■実行モード Mode 1 コードを関数単位でまとめてバイナリ変換し実行 遅延処理・割り込み監視を常に実行 命令キャッシュは疑似再現で、I Cache Rateを使用 Mode 2 コードを関数単位でまとめてバイナリ変換し実行 遅延処理・割り込み監視を適当に端折るので少し高速 命令キャッシュは疑似再現で、I Cache Rateを使用 Mode 3 1コードづつ解釈しながら実行 遅延処理・割り込み監視を常に実行 命令キャッシュは全く再現せず、I Cache Rateを使用 Mode 4 1コードづつ解釈しながら実行 遅延処理・割り込み監視を常に実行 命令キャッシュ完全再現のため、I Cache Rateは不使用 Mode 5 4コードづつバイナリ変換し実行 遅延処理・割り込み監視を常に実行 命令キャッシュ完全再現のため、I Cache Rateは不使用 コードの再使用率が高ければMode 4よりMode 5の方が高速になるはずだが 実感としてはMode 4の方が高速。 PlayStationのキャッシュヒット率はそれほど高くないということだろう。 理論上の精度としてはMode 4,5が最も高いので Mode 1,2では動くのにMode 4,5では動かないといったケースがあるなら それは間違いなくタイミング調整の問題。 ただしMode 4,5ではI Cache Rateを変更しても意味はないので 他のシミュレーション設定値を変更してタイミング調整を行う必要がある。 ■実行イメージの注意点 PlayStationではメモリを変更しても直ちには命令キャッシュに反映されない。 このキャッシュ特性を積極的に利用したゲームは そもそもMode 3では暴走してしまう。 Mode 1,2では、このキャッシュ特性を疑似的に再現できるが、 再現のためのデータは実行時の環境によって異なるため 実行イメージファイルには含んでいない。 だからキャッシュ特性を正に利用中のタイミングで退避した 間の悪い実行イメージファイルからは正常な復帰が出来ない。 Mode 4,5ではその問題はないが、Mode 1,2で作成した 間の悪い実行イメージファイルを Mode 4,5で正常に復帰できるという訳ではない。 間の悪い確率は相当低いと思われるが 絶対に回避したいのなら、常にMode 4,5で実行し続けるしかないだろう。 実行イメージにはメモリカードイメージも含んでいる。 そうでないと書き込み中のタイミングで実行イメージを作成してしまった場合、 それを復帰したときにメモリカードを壊してしまうからだ。 だから現在のカードを保持したければ、File/Save/Memory Card ... で カードを退避してから実行イメージを復帰し、 Run/Stop Card -> File/Open/Memory Card ... -> Run/Start Card を実施する必要がある。 Stop Card/Start Cardを実施しないとカードが変更されたことが PlayStation OSのメモリカードマネージャーに認識されないため、 事前にメインメモリにコピーされたデータが使われてしまい、 メモリカードを壊す恐れがあるからだ。 ■パッド履歴について 気付いた人は少ないようだが、いわゆるTASのための機能。 ただし格闘ゲームのリプレイと同様、 パッド入力情報をひたすら記録したものに過ぎないので 途中でシミュレーション設定・ディスク・実行モードを変更すると TASとしての意味はなくなる。 使用の流れとしては (01)シミュレーション設定の変更やディスクの指定を事前にしておく。 (02)File/History/Write Padによりパッド履歴の書き込みを開始する。 (03)Run/Powerにより実行を開始する。 (04)難しいタイミングのシーンの直前でRun/Pauseにより実行を中断する。 (05)File/Save/Running Imageにて(4)の時点の実行イメージを退避する。 (06)File/History/Save Padにて(4)の時点までのパッド履歴を退避する。 (07)Run/Powerにより実行を再開する。 (08)上手くいかなかったらRun/Pauseにより実行を中断する。 (09)File/Open/Running Imageにて(4)の時点の実行イメージを復帰する。 (10)File/History/Load Padにて(4)の時点までのパッド履歴を復帰する。 (11)Run/Powerにより実行を再開する。 Version 15/12/03からは パッド履歴の書き込みを開始した状態で ファンクションキーによる実行イメージの退避・復帰を行った場合、 同時にパッド履歴の退避・復帰も行うように変更したので、 いちいち中断しなくても済むようになっている。 ■ファンクションキーによる実行イメージの退避・復帰 ファンクションキーによる実行イメージのファイル名は ゲームのプロダクトIDがxxxx_xxxxxだとすると F1/F7キーではXEBRA.RUN F2/F8キーではxxxx_xxxxx.RI0 F3/F9キーではxxxx_xxxxx.RI1 となっている。 全てプロダクトIDにしたいところだが、 プロダクトIDはディスクをある程度読み進めていかないと (目安としてはSマークからPSロゴへの切り替わりまで)出現しないし、 そもそもプロダクトIDが出現しないゲームもあるため F1/F7キーでのファイル名をXEBRA.RUNに固定している。 別のゲームのディスクに替えたとしても、すぐにはプロダクトIDは変更されないので 復帰するためにはディスクをある程度読み進めなければならない。 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 59.126.232.106 ※ 文章網址: https://www.ptt.cc/bbs/Emulator/M.1449326427.A.827.html ※ 編輯: choan (59.126.232.106), 12/05/2015 22:58:45