[SS] SSF Update

Ver0.08 alpha R5をアップしました。

R4はメモリアクセスウェイトが実機より4倍もあり、
動作が怪しくなっているソフトが幾つかありました…
他にもCDアクセスLEDの排他処理が不完全でハングアップしたり…

あとアナログ入力はXYZ軸,スライダー1のみ対応です。
POV1にも対応しています。
XBOX360のコントローラしか持ってないので、
あまり動作チェックはしていません。

http://www7a.biglobe.ne.jp/~phantasy/ssf/index.html
Ver0.08 alpha R5'

コントローラのRx軸,Ry軸,Rz軸,スライダー2に対応してみました。
とりあえず、これだけ対応しておけば問題ないと思うけど
動作確認する環境が無いので正常に動作するかは判りません…

http://www7a.biglobe.ne.jp/~phantasy/ssf/index.html
SSF Ver0.08 alpha R6

SCSPの割り込み処理を修正しました。
SCUのDMA処理を修正しました。
SH2のダイナミックリコンパイル処理を修正しました。
メモリアクセス処理を修正しました。
メモリアクセスウェイト処理を修正しました。
どうも勘違いをしたみたいで前のウェイト値で正しいみたいです。
VDP2のビットマップ処理を修正しました。
VDP2のサイクルパターン指定ミス処理を修正しました。
CDアクセスLEDの排他処理を修正しました。
Check SlaveSH2 Idle Loopオプションが機能していなかったのを修正しました。

コントローラのRx軸,Ry軸,Rz軸,スライダー2に対応しました。
ステートセーブデータのバージョンが変わりました。

いくつかのソフトで動作が怪しくなってしまいましたが、R6の方が実機に近いはず…
近いうちに問題を見つけて直します。

http://www7a.biglobe.ne.jp/~phantasy/ssf/index.html
SSF Ver0.08 alpha R7

VDP1の描画処理を改良しました。
VDP2の描画処理を改良しました。
SCUのDSP処理を改良しました。
DSPを使うほとんどのソフトは速くなりますが、
頻繁にプログラムを変更しているものは逆に遅くなるかもしれません。
バックアップライブラリのフック処理を修正しました。

今回の修正は高速化が中心です。
DSPを使いまくるゲームはかなり速くなります。
特にグランディアのムービーは高速になってます。

http://www7a.biglobe.ne.jp/~phantasy/ssf/index.html
SSF Ver0.08 alpha R8

SCSPのLFO処理を修正しました。
SCU-DSPのダイナミックリコンパイル処理を実装しました。
SH2のSleep命令を修正しました。
SH2のダイナミックリコンパイル処理を修正しました。

SCU-DSPを高速化できたのでDSPスレッドオプションは削除します。
やはりメインスレッドで処理した方が同期が取れるので…
ステートセーブデータのバージョンが変わりました。
サウンドを録音できるようにしました。
キー割り当ては
Sound Record = F9 key
です。
低プライオリティの保存スレッドでファイル出力を行うので、
マシンパワーに余裕の無い場合は上手く動作しないかもしれません。
サウンドを録音する時はScanline Base TimingとAlways Runningオプションにチェックを入れないでください。
尚、近いうちにPCMのリサンプリング処理を変更する予定ですので、
今とは微妙に音質が変わるかもしれません。

http://www7a.biglobe.ne.jp/~phantasy/ssf/index.html
SSF Ver0.08 alpha R9

VDP1の描画ウェイト処理を修正しました。
SCSPのEG処理を修正しました。
SCSPのFM結線処理を修正しました。
SCSPのPCMリサンプリング時に線形補間するようにしました。
少し重い処理なのでオプションを設けてあります。
線形補間は実機でも行っている処理です。
それと、リサンプリング処理を単精度浮動小数点から倍精度浮動小数点に変更しました。
同じ処理でも前より若干重くなってます。

Enforce Aspect Ratioオプション使用時にPC側の画面アスペクト比を考慮するようにしました。
ステートセーブデータのバージョンが変わりました。

今回の変更で内蔵音源の曲がより実機に近くなっているはず…
あとはFM結線の音がノイズ混じりになるのを修正できればいいんですが…

http://www7a.biglobe.ne.jp/~phantasy/ssf/index.html
SSF Ver0.08 alpha R9'

Enforce Aspect Ratioオプション使用時に画面サイズが横長になるのを修正しました。
PC側の画面アスペクト比を考慮していましたが、
本当はピクセルのアスペクト比で計算しなくてはいけないですね。

あとIDirect3D9::CreateDevice()関数の引数にハードウェアT&Lが指定されていたのを修正しました。
これでCreateDevice()エラーは出なくなるはず。

http://www7a.biglobe.ne.jp/~phantasy/ssf/index.html
SSF Ver0.08 alpha R10

68000の不当命令例外処理を実装しました。
SCSPのEG処理を修正しました。
SCSPのサウンドデータスタックにデータを書き込むようにしました。
SCSPのサンプリング位置の更新処理を修正しました。
SCU-DSPの処理を修正しました。
VDP1の描画ウェイト処理を修正しました。
BIOSエミュレート処理を修正しました。

BIOS無しでもリセットできるようにしました。

http://www7a.biglobe.ne.jp/~phantasy/ssf/index.html
SSF Ver0.08 alpha R11

68000の割り込み処理を修正しました。
CDブロックのタイミングを変更しました。
SCUのDMA処理を修正しました。
SH2のダイナミックリコンパイル処理を修正しました。
VDP1の描画ウェイト処理を修正しました。
VDP2のサイクルパターン指定ミス処理を修正しました。
メモリアクセスウェイト処理を修正しました。

サウンド生成処理を別スレッド専用にしました。

VDP1の描画タイミングがずれてスプライトがちらつく場合があります。
その時は、SH2 Instruction Numbersを低く設定してみてください。

http://www7a.biglobe.ne.jp/~phantasy/ssf/index.html
SSF Ver0.09 prototype

SCUの割り込み処理を修正しました。
SCU-DSPのダイナミックリコンパイル処理を修正しました。
SH2の1段ライトバッファを実装しました。
SH2のキャッシュを仮実装しました。
非常に重い処理なので専用のオプションを設けてあります。
キャッシュを有効にして動作するソフトは輝水晶伝説アスタルのみ確認しています。
メモリアクセスウェイト値を修正しました。

ステートセーブデータのバージョンが変わりました。

http://www7a.biglobe.ne.jp/~phantasy/ssf/index.html
SSF Ver0.09 prototype R1

SCUの割り込み処理を修正しました。
CDDA処理を修正しました。

ステートセーブデータのバージョンが変わりました。

SCUの割り込み処理はこちらの方が正しいはずなので、
Ver0.09 prototypeで初めて動いたソフトも再チェックしてもらえると助かります。
また、メモリアクセスウェイト有りやキャッシュ有効だと動かないソフトがあります。
バーチャファイターやパンツァードラグーンⅡなどはチェックを外すようにしてください。
その内、チェック有りでも動くようにする予定…

http://www7a.biglobe.ne.jp/~phantasy/ssf/index.html
SSF Ver0.09 prototype R2

SCUの割り込み処理を修正しました。
VDP1の描画タイミングを修正しました。

ステートセーブデータのバージョンが変わりました。

SCUの割り込み処理にまだバグがありました。
今度こそ大丈夫だと思います。
VDP1の描画タイミングを変更しました。
ドットクロックが低いとタイミングがずれるためスプライトが表示されない場合があります。

http://www7a.biglobe.ne.jp/~phantasy/ssf/index.html
SSF Ver0.09 alpha

VDP1のクリッピング処理を修正しました。
VDP2の回転面の描画処理を修正しました。
SCSPのサウンド生成処理を修正しました。
CDブロックのCD再生処理を修正しました。

ステートセーブデータのバージョンが変わりました。
また、ステートセーブデータは同バージョンでも読み込めない場合があります。
BIOSの有無,BIOSのVer違い,バックアップライブラリのフック有無が違うと読み込みできません。

起動時に設定を切り替えるようにしました。
設定はSetting.iniに記述します。
起動後に1~4を押しているとStandard,High,Highest,Fullに設定が切り替わります。
また、ゲーム毎に設定もできます。
SSF起動時に使用するCDドライブに入っているゲームの設定が読み込まれます。
CDが入っていない状態で起動した時やマルチプレイヤー画面などでゲームを入れ替えた場合は設定されません。
設定の読み込み優先度は1~4押し,ゲーム毎,SSF.iniの順です。

ファイル保存時にフォルダを作成するようにしました。

http://www7a.biglobe.ne.jp/~phantasy/ssf/index.html
SSF Ver0.09 alpha R1

CDブロックのシーク処理を修正しました。
SCUのタイマ処理を修正しました。
VDP1のクリッピング処理を修正しました。

アナログ入力の不具合を修正しました。
マルチコントローラのLRトリガと、
スライダーのあるコントローラでキー設定が出来ない不具合が直ってるはず…

http://www7a.biglobe.ne.jp/~phantasy/ssf/index.html
SSF Ver0.09 alpha R2

SH2のFRT処理を修正しました。
SCUのDMA処理を修正しました。
SCUのDMA終了割り込み処理を修正しました。
SCSPの再生位置の更新処理を修正しました。

ステートセーブデータのバージョンが変わりました。

http://www7a.biglobe.ne.jp/~phantasy/ssf/index.html
SSF Ver0.09 alpha R3

CDブロックのドライブ状態遷移処理を修正しました。
SCSPのタイマ処理を修正しました。
SCSPのリサンプリング処理を修正しました。
SCUのDMA終了割り込み処理を修正しました。
VDP2の回転面の描画処理を修正しました。

ステートセーブデータのバージョンが変わりました。

メインループ処理をマスタSH2中心からシステムクロック中心に変更しました。
それに伴い、オプションのSH2 Instruction Numbersを1Block Clockに変更しました。
若干重くなっているかもしれません。
また、HSynch Real Clockオプションを廃止しました。

Ver0.09 alphaからコンパイルオプションを変更しましたが、
それが原因で不具合が発生していたようです…
オプションを元に戻したのでalphaから不具合が出たソフトは直ってるかもしれません。

http://www7a.biglobe.ne.jp/~phantasy/ssf/index.html
SSF Ver0.09 alpha R4

SCUのDMA終了割り込み処理を修正しました。
VDP1のリセット処理を修正しました。
VDP2のバック画面処理を修正しました。

ステートセーブデータのバージョンが変わりました。

エラーダイアログ表示後でも終了しないようにしました。
ただし、継続実行はできません。

SCUのDMA終了割り込みの発生タイミングが実機とずれているようなので、
遅延をON/OFFするオプションを設けました。
ほとんどのソフトでは遅延させる必要はありませんが、
ばくばくアニマルなど一部のソフトでは必要になります。

http://www7a.biglobe.ne.jp/~phantasy/ssf/index.html
SSF Ver0.09 beta

SCSPのサウンド生成処理を修正しました。
SCUのDMA終了割り込み処理を修正しました。
メモリアクセスウェイト処理を修正しました。
キャッシュ処理を修正しました。

ステートセーブデータのバージョンが変わりました。

CDのトラック内インデックス位置を有効にするオプションを設けました。
サターンはインデックス指定でCDDA再生ができるので。
有効にした場合、CDIndexフォルダ以下にインデックス情報が保存されます。
インデックス検索にはReadCDコマンドのオプション機能を使用しているので、
ドライブによってはエラーになるかもしれません。

http://www7a.biglobe.ne.jp/~phantasy/ssf/index.html
SSF Ver0.09 beta R1

CDの再生処理を修正しました。
SCSPのスロット制御処理を修正しました。
SCUのタイマ1処理を修正しました。
VDP2のサイクルパターンチェック処理を修正しました。
メモリウェイト処理を修正しました。

ステートセーブデータのバージョンが変わりました。
フル画面でもサターンのアスペクト比に強制設定するオプションを設けました。
旧SH2実行処理を削除しました。それに伴いSH2 New Executionオプションも削除しました。
今バージョンからはSH2 New Executionにチェックした状態と同じです。
Pattern Name RenewalとCheck Cycle Patternオプションを統合しました。

ビットマップ時のサイクルパターンチェック処理を変更したところ、
ムービーでちらつく場合があります。
その時はCheck Cycle Patternにチェックを入れてください。
サイクルパターン処理はR1の方が正しいはずなので…

http://www7a.biglobe.ne.jp/~phantasy/ssf/index.html
SSF Ver0.09 beta R2

VDP2の回転面の描画処理を修正しました。

シャトルマウスに対応しました。
ウィンドウモード時はテンキーの-キーでWindowsマウスカーソルの表示ON/OFFができます。

サウンド生成処理の間隔を1/2にするオプションを設けました。
展開バッファサイズを512以下にしてノイズが出る場合は、Half Bufferingにチェックしてみてください。
VDP2の描画処理をマルチスレッド化しました。
3CPU以上なら(CPU数-1)個のスレッドで処理します。

http://www7a.biglobe.ne.jp/~phantasy/ssf/index.html
SSF Ver0.09 beta R3

VDP2のVカウンターレジスタ処理を修正しました。
SCSPのタイマ処理を修正しました。

アスペクト比強制設定時のフルスクリーン解像度を強制設定後の画面サイズから探すようにしました。
入力機器のキー設定を各ポート,各機器毎に保存するようにしました。

http://www7a.biglobe.ne.jp/~phantasy/ssf/index.html
SSF Ver0.09 beta R4

SMPCのペリフェラルデータ取得の最適化を実装しました。
SCSPのLFOのノイズ処理を修正しました。
SCSPの再生位置の更新処理を修正しました。
VDP2の回転面の描画処理を修正しました。
VDP2のVカウンターレジスタ処理を修正しました。

ステートセーブデータのバージョンが変わりました。

VDP2描画スレッド使用時、解像度の切り替わりタイミングでアプリケーションエラーが発生する場合があったのを修正しました。
PAL時のフルスクリーンサイズに縦512が抜けていたので追加しました。

http://www7a.biglobe.ne.jp/~phantasy/ssf/index.html
SSF Ver0.10 test

VDP2の回転面の描画処理を修正しました。
VDP2のサイクルパターン指定ミス処理を修正しました。
少し重くなってますが、ほとんどのソフトの表示ずれが直っているはず。

ステートセーブデータのバージョンが変わりました。

http://www7a.biglobe.ne.jp/~phantasy/ssf/index.html
SSF Ver0.10 prototype

SCU-DSPのリコンパイル処理を修正しました。
SH2のリコンパイル処理を修正しました。
SH2のキャッシュ処理を修正しました。

ステートセーブデータのバージョンが変わりました。

サウンドのバッファリングオプションを変更しました。

http://www7a.biglobe.ne.jp/~phantasy/ssf/index.html
SSF Ver0.10 prototype R1

CDの再生処理を修正しました。
VDP1の描画処理を修正しました。
VDP2のサイクルパターン指定ミス処理を修正しました。

ステートセーブデータのバージョンが変わりました。

サウンドバッファリングをNormal以外に設定し録音するとエラーが発生する不具合を修正しました。

スプライトのプライオリティが全て0の時は描画しないようにするオプションを設けました。
バロックのムービーなどに効果があります。

録画を仮実装しました。

http://www7a.biglobe.ne.jp/~phantasy/ssf/index.html
SSF Ver0.10 prototype R2

68000エミュレータにバスエラー,アドレスエラー,2重バスエラー処理を追加しました。
CDの読み込み処理を修正しました。

ステートセーブデータのバージョンが変わりました。

VDP2 Multi Threadの設定が反映されていない不具合を修正しました。
VDP2の描画スレッド数を設定するオプション設けました。
VDP2RAMへの書き込みをライン毎に行うようにするオプションを設けました。
The Towerなどに効果があります。

http://www7a.biglobe.ne.jp/~phantasy/ssf/index.html
SSF Ver0.10 prototype R3

SH2のリコンパイル処理を修正しました。
SCSPのLFO処理を修正しました。
VDP2のラインカラー画面処理を修正しました。
VDP2のキャラクタパターンデータリード処理を修正しました。

デインターレースを行うオプションを設けました。
ただし、単純に縦を2倍表示するだけでは駄目なのでかなり重いです。
サイクルパターン指定ミスによるVDP2RAMのメモリアクセス位置のずれを考慮するオプションを設けました。
今までCheck Cycle Patternで行っていた処理の一部をこちらで行います。

http://www7a.biglobe.ne.jp/~phantasy/ssf/index.html
SSF Ver0.10 alpha

SCSPのPLFO処理を修正しました。
SH2のリコンパイル処理を修正しました。
SMPCの定期処理を修正しました。
クロック切り替え処理を修正しました。
BIOSのエミュレート処理を修正しました。

ステートセーブのバージョンは変わっていませんが、
BIOS未使用のデータはエミュレートプログラム変更のため読み込めません。

http://www7a.biglobe.ne.jp/~phantasy/ssf/index.html
SSF Ver0.10 alpha R1

メモリアクセス処理を修正しました。
VDP2の回転面の描画処理を修正しました。
VDP2の拡張カラー演算処理を修正しました。
BIOSのエミュレート処理を修正しました。

メッシュ描画のスプライトを半透明にするオプションを設けました。
スプライト処理が複雑になるため重いです。
実機には無い機能なので上手く半透明化できないかもしれません。

前バージョンと同様にステートセーブのバージョンは変わっていませんが、
BIOS未使用のデータはエミュレートプログラム変更のため読み込めません。

http://www7a.biglobe.ne.jp/~phantasy/ssf/index.html
SSF Ver0.10 alpha R2

メモリアクセス処理を修正しました。
SH2のDMA処理を修正しました。
SMPCのクロック切り替え処理を修正しました。
VDP2の回転面の描画処理を修正しました。
BIOSのエミュレート処理を修正しました。

ステートセーブデータのバージョンが変わりました。
SH2のDMA処理の修正に伴い、DMAの動作を実機と同様にするオプションを設けました。

http://www7a.biglobe.ne.jp/~phantasy/ssf/index.html