Xebra/Arbex (2015/12/03) - 模擬器
![Enid avatar](/img/woman-biz.jpg)
By Enid
at 2015-12-05T22:40
at 2015-12-05T22:40
Table of Contents
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は変更されないので
復帰するためにはディスクをある程度読み進めなければならない。
--
------------------------------------------------------------------------
更新内容
------------------------------------------------------------------------
①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は変更されないので
復帰するためにはディスクをある程度読み進めなければならない。
--
Tags:
模擬器
All Comments
Related Posts
Wayder Cheat v0.168
![Jacky avatar](/img/cat3.jpg)
By Jacky
at 2015-12-05T22:37
at 2015-12-05T22:37
請問一下WIN10用DS3玩ePSXe怎麼調震動呢?
![Faithe avatar](/img/cat4.jpg)
By Faithe
at 2015-12-05T13:27
at 2015-12-05T13:27
請問md 大戰略閃擊戰的問題
![Candice avatar](/img/girl3.jpg)
By Candice
at 2015-12-04T23:08
at 2015-12-04T23:08
FBA Previews & titles screenshots
![Lily avatar](/img/cat1.jpg)
By Lily
at 2015-12-04T22:08
at 2015-12-04T22:08
(WIP) DU Update: NAOMI Development BOOT ROM / Baby D
![Zanna avatar](/img/girl2.jpg)
By Zanna
at 2015-12-04T21:10
at 2015-12-04T21:10