
SSFの実行に必要な最低環境
OS |
WindowsXP/Vista/7/8 各32ビット/64ビット版
XPで動かないとの報告がありますが原因は不明 |
CPU |
FPU,MMX,SSE,SSE2,TSCを搭載しているCPU |
Memory |
256MB以上 |
Video |
DirectX9.0cに対応しているカード
頂点シェーダー3.0,ピクセルシェーダー3.0に対応している必要があります
1024x512又は1024x1024のテクスチャが作成できる必要があります |
Sound |
DirectX9.0cに対応しているカード
44100Hz,ステレオPCMが再生できる必要があります |
CD drive |
MMC3に対応したドライブ |
XAudio2関係でエラーが出る場合は、
こちらをインストールしてみてください。
推奨環境
CPU |
Core i7シリーズ
Core i5シリーズ
Core 2 Duoシリーズ
FXシリーズ
PhenomIIシリーズ
Phenomシリーズ
|
Memory |
512MB以上(デュアルチャネル以上) |
その他 |
BIOS |
エミュレート状況
SH2 Emulator |
100% |
68000 Emulator |
100% |
VDP1 Block |
95% |
VDP2 Block |
95% |
SCU Block |
100% |
SMPC Block |
100% |
SCSP Block |
95% |
CD Block |
85% |
具体的な実装状況
SH2 |
ゲーム実行に必要な部分はほぼ全て実装 |
68000 |
ほぼ全て実装 |
VDP1 |
ほぼ全て実装
ハイスピードシュリンクは未実装 |
VDP2 |
ほぼ全て実装
回転面のモザイクは未実装 |
SCU |
ほぼ全て実装 |
SMPC |
ほぼ全て実装
キーボードは未対応
バーチャガンは非対応 |
SCSP |
ほぼ全て実装
FM時のPLFOノイズは未実装 |
CD Block |
ほぼ全て実装
CDCコマンドの一部は未実装
マルチセッションは非対応 |
Ver0.06からの変更点
- バックアップRAMファイル名を変更
- バックアップ容量の無制限化(バックアップライブラリのフック)
- BIOSファイルをオプションで設定できるようにしました
- BIOS無しでも動作するようにしました
- DirectInputに対応
パッドとキーボードが使えます。ボタンの再割り当て可能。
デフォルトは
UP = UP Arrow
DOWN = DOWN Arrow
LEFT = LEFT Arrow
RIGHT = RIGHT Arrow
A TRG = Z key
B TRG = X key
C TRG = C key
X TRG = S key
Y TRG = D key
Z TRG = F key
L TRG = A key
R TRG = G key
START = Enter key
以下は変更不可
CD Open = F1 key
CD Close = F2 key
Hard Reset = F4 key
連射のON/OFF切り替え = F5 key
SoundのON/OFF切り替え = F6 key
State Load = F7 key
State Save = Shift + F7 key
Snapshot = F8 key
Sound Record = F9 key
Video Record = Shift + F9 key
NBG0の表示ON/OFF切り替え = NUMPAD 1 key(テンキーの1)
NBG1の表示ON/OFF切り替え = NUMPAD 2 key(テンキーの2)
NBG2の表示ON/OFF切り替え = NUMPAD 3 key(テンキーの3)
NBG3の表示ON/OFF切り替え = NUMPAD 4 key(テンキーの4)
RBG0の表示ON/OFF切り替え = NUMPAD 5 key(テンキーの5)
RBG1の表示ON/OFF切り替え = NUMPAD 6 key(テンキーの6)
Spriteの表示ON/OFF切り替え = NUMPAD 7 key(テンキーの7)
画面の回転 = NUMPAD 0 key(テンキーの0)
ABCとXYZボタンの入れ替え = NUMPAD 9 key(テンキーの9)
ウィンドウサイズ変更 = NUMPAD + key (テンキーの+)
Windowsマウスカーソルの表示ON/OFF = NUMPAD - key (テンキーの-)
Window/Fullscreenの切り替え = Alt + Enter key
終了 = ESC key
以下は変更不可(ST-V関係)
TEST = F11 key
SERVICE = F12 key
Coin1 = 5 key
Coin2 = 6 key
Coin3 = 7 key
Coin4 = 8 key
1P Start = 1 key
2P Start = 2 key
3P Start = 3 key
4P Start = 4 key
A~N = A~N key (Mahjong panel)
カン = Ctrl key (Mahjong panel)
ポン = Alt key (Mahjong panel)
チー = Space key (Mahjong panel)
リーチ = Shift key (Mahjong panel)
ロン = Z key (Mahjong panel)
2P側はデフォルトではキー設定されていません。キー設定を行えば使用できるようになります。
シングルコア環境で録音,録画する時はScanline Base Timingオプションにチェックを入れないようにしてください。
Shiftを押しながら起動するとST-Vに切り替わります。
Spaceを押しながら起動すると1Block Clockを一時的に60%に落とします。
Ctrlを押しながら起動するとBIOSの使用ON/OFFが一時的に切り替わります。
1~5を押しながら起動すると設定が切り替わります(Setting.iniファイルの[Setting1]~[Setting5]に対応)。
- ST-Vに対応
ROMセットの内容はこちら
問題がある部分
- グーローシェーディングの計算精度が足りない
グーローシェーディングの計算に固定小数点(MMX)を使用しています。
そのため幅が極端に大きいスプライト(1024ドット以上)の計算精度が足りません。
しかし、精度が足りなくなるような場面はかなり限られているので今のところ対応する予定はありません。
- 回転スクロールの座標計算に浮動小数点を使用している
サターン内部では固定小数点で計算しているようですが、SSFでは単精度浮動小数点を使用しています。
よって、誤差が発生する可能性があります。
- PCMが15ビットである
音量の計算にSSE2の符号付き乗算命令(PMULHW)を使用しています。
PCMは符号ありですが音量は符号なしなので音量を1/2にして計算しています(最下位ビットが失われる)。
- PCMのリサンプリング処理に浮動小数点を使用している
サターン内部では整数(または固定小数点)演算でリサンプリング処理を行っているはず…
よって、誤差が発生し音程が若干狂う可能性があります。
- 音の再生タイミングが実機と異なる
エミュレータの特性上、音が若干遅れて再生されます(ただし、画面表示が2/60秒分遅れているのでデフォルト設定ではそれほど気にならない)。
速度を確保するため一定時間毎にPCMを生成しているためです。
具体的には(オプションで設定したバッファサンプル数*4/44100)秒の遅延があります。
また、キーONも最大で((バッファサンプル数/4)/44100)秒遅れます。
- リングバッファを更新していない
SCSP内蔵DSPが使用するリングバッファ用メモリに浮動小数点データを書き込まないので、リングバッファ上に直接アクセスするようなソフトの音がきちんと再生されません。
そんなトリッキーなことをするソフトがあるとは思えませんが…
よくある質問
- コントローラのRedefineで固まる
リキャリブレートしてみてください。
Windows7ならコントロールパネル -> デバイスとプリンター -> コントローラを選択して右クリック -> ゲームコントローラの設定 -> プロパティ -> 設定タブの調整
アナログ入力がニュートラル状態で片方に振り切っている場合はRedefineで固まります。
- 遅延ありますよね?
描画に関してはVDP2 RAM Write Timingにチェックで遅延が1/60秒になります(チェックしないと2/60秒の遅延)。
モニタ自体の表示遅延に関してはこちらではどうすることもできません。
入力に関しては入力装置やドライバに依存するのでこちらも対処できません。
入力装置(ドライバ)によってはデータのサンプリング間隔が1/60秒より遅い場合があります。
その場合、素早い操作では入力が遅く感じる又はデータの取りこぼしが発生します。
他には、変換アダプタを使用しているとアダプタ内部で遅延を起こしている可能性があります。
特にサイバーガジェットの変換アダプタは明らかに3/60秒以上の遅延があります。
あと、マシンパワーが足りないと描画が1/60秒に間に合わず遅延しているように見えます。
タイトルバーのDropの数値が増えていくようでしたらマシンパワーが足りていません。
なお、DrawPrimitiveUP後に即Presentしているのでプログラムではこれ以上画面を素早く切り替えることはできません。
もっと良い方法があるなら教えてください。
- 1/60秒の遅延は無くなりませんか?
VSynch Waitのチェックを外せば少しは短くなります。
しかし、完全に無くすことはできません。
実機では走査線に合わせて画像を表示しているので遅延はありません。
Windows環境では表示画面全体を作成してから切り替えるため、最悪で1/60秒の遅延がどうしても発生します。
これはWindows(Direct3D)の仕様なのでどうすることもできません。
かなり速いマシンでVSynch Waitのチェックを外せば、見た目はともかく遅延は無くなるはずですが…
- FPUってなんですか?
- MMXってなんですか?
- SSEってなんですか?
- SSE2ってなんですか?
x86系CPUについて少し勉強しましょう。
- TSCってなんですか?
タイム・スタンプ・カウンタの略称。Pentium以降のプロセッサなら搭載されています。
SSFが動作するCPUにはTSCが載っているはずなのであまり気にしなくていいです。
- 起動直後にエラーで強制終了する
FPU,MMX,SSE,SSE2を搭載していないCPUで実行すると不当命令例外が発生して強制終了します。
- 強制終了後、CDが取り出せない
エミュレータの都合で実行中はCDドライブの操作が出来ないようになっています。
強制終了時はCDドライブのロック解除処理を通らないので取り出せなくなります。
ロック解除するにはもう一度SSFを実行してESCで終了してください。
- よくマルチプレイヤー画面に飛ぶ
CDブロックはCDドライブが実機と同じ動作することを前提として作成しています。
ドライブによってはタイミングが実機と違うため上手く同期できないことがあります。
そのためマルチプレイヤー画面に飛ぶことが多くなります。
CDイメージ化すると改善する可能性があります。
- ゲームの動きが遅い
ドットクロックが低いと一部のゲームで処理落ちします(ゲーム自体が処理落ちする)。
- BGMのテンポが狂っている
マシンパワーが足りないと処理が間に合わず、内蔵音源の曲が狂ってしまいます。
- 音が鳴らない
SGLでサウンド初期化時にメインCPUとサウンドCPUの同期に失敗すると、以降の再生コマンドを一切発行しないバージョンがあります。
Memory Access Waitにチェックを入れてみてください。
- 音がノイズだらけになる
オプションのサウンドバッファサイズを小さくすると発生します。
サウンドバッファサイズの下限はドライバによって異なります。
- 画面表示が狂っている
VDP2の制限事項に抵触しているソフトの可能性があります。
Check Cycle PatternやVDP2 RAM Revision Accessにチェックを入れてみてください。
- ゲームが進行しない
以下の設定をすると動くことがあります。
1. Bus Waitにチェックを入れる(かなり重い)
2. Bus Wait Clockを0にする(Bus Wait有効時)
3. Dot Clockを上げる
4. Memory Access Wait,SH2 Cache,SH2 DMA Real Transfer,SCU DMA Delay Interruptあたりにチェックを入れる
5. 1Block Clockを下げる
- 画面が縞模様になっている(黒い横線がある)
ノンインターレースを再現した結果です。
インターレースTVの場合、ノンインターレースは規格外ですがよく使われていた方法です。
1/60秒の書き換え速度を確保するために偶数フィールド(又は奇数フィールド)のみに描画します。
古いTVで表示してみると1ラインおきに描画されているのが判ると思います。
この隙間を上手く利用したゲームも存在するので敢えて再現しています。
現在のプログレッシブとは違います。
- 遅い
SSは複雑なハードのためPSのように簡単にはエミュレートできません。
特に画面に関してはDirect3Dでは再現できません。
ねじれた四角形ポリゴンが現在のグラフィックスカードで簡単に描画できますか?
それ以外にもハードウェア描画では再現不可能な機能がたくさんあります。
他のSSエミュレータはハードウェア描画を使用しているみたいですが、その辺は再現しなくても良いと割り切っているのでしょう。
SSFはPC上でサターンというハードを完全再現するのが最終目標であり、実機より高解像度,綺麗な画面で遊べるようにすることは全く考えていません。
たとえ遅くてもソフトウェアレンダリングで画面を生成し、見た目が限りなく実機と同じくなるようにしていきます。
이 글에 총 1 개의 파일이 첨부되어 있습니다.
1