作者choan (八房龙之助)
看板Emulator
标题[新闻] Xebra/Arbex (2015/12/03)
时间Sat Dec 5 22:40:24 2015
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://webptt.com/cn.aspx?n=bbs/Emulator/M.1449326427.A.827.html
※ 编辑: choan (59.126.232.106), 12/05/2015 22:58:45