2019/10/22 公開

セガサターン・エミュレータ について

セガサターン・エミュレータはパソコンのWindows環境下で昔懐かしい家庭用ゲーム機セガサターン(1994年11月発売)の機能を模倣しセガサターンのゲームを動作させるソフトです。
セガサターン・エミュレータの中で日本人の「shima」氏が開発・提供するセガサターン・エミュレータ「SSF」を紹介したいと思います。セガサターン・エミュレータ「SSF」はフリーソフトウェアですが非常に完成度の高いセガサターン・エミュレータ ソフトです。


セガサターン・エミュレータ「SSF」の 動作環境

下記動作環境等は「SSF PreviewVer R9」フォルダ内「Readme.txt」より引用しています。詳細は「Readme.txt」を参照してください。
セガサターン・エミュレータ「SSF」動作環境
項目 最小動作環境 推奨動作環境
OS Windows7/8/10
CPU FPU、MMX、SSE、SSE2を搭載しているCPU Intel Core i9シリーズ
Intel Core i7シリーズ
Intel Core i5シリーズ
AMD Ryzenシリーズ
AMD FXシリーズ
メモリ 256MB以上 512MB以上 (デュアルチャネル以上)
ビデオ DirectX11に対応しているカード
ソフトウェアレンダリング時はFeatureLevel 10.0が必要です
GPUレンダリング時はFeatureLevel 11.0が必要です
1024x512又は1024x1024のテクスチャが作成できる必要があります
サウンド DirectX11に対応しているカード
44100Hz,ステレオPCMが再生できる必要があります
CDドライブ MMC3に対応したドライブ

筆者のシステム環境
OS Windows 10 Pro 64bit( Ver 1903 )
CPU AMD Ryzen Threadripper 1950X 3.4GHz (16コア/32スレッド)
メモリー CORSAIR CMK16GX4M2B3200C16 (8GB X 2) X 2 = 32GB
XMP2.00プロファイル DDR4-3200
グラフィックス MSI GTX 1080 Ti ARMOR 11G OC
ハードディスク容量 Samsung SSD 960 PRO 512GB ×2(RAID 0) (システムドライブ)
HITACHI HDS72303ALA640 (3TB) (データドライブ)
WDC WD40EZRX (4TB) (データドライブ)
キーボード ロジクール G610 Orion Blue バックライト搭載 メカニカルゲーミングキーボード
マウス ロジクール G PRO ゲーミングマウス
サウンドカード Sound Blaster ZxR
モニター FlexScan EV3237 (最大3840×2160)


セガサターン・エミュレータ「SSF」の 起動手順

1.セガサターン・エミュレータ「SSF」の入手
セガサターン・エミュレータ「SSF」の入手は 「shima」氏のTwitterから入手可能です。
https://twitter.com/FessX から「SSF_PreviewVer_R9.zip」ファイル(2019年10月22日現在の最終バージョン)をダウンロードします。

2.セガサターン・エミュレータ「SSF」の展開
ZIPファイル内にはファイル一式が「SSF_PreviewVer_R9」フォルダに格納されているので適当なフォルダに「SSF_PreviewVer_R9」フォルダを展開します。
展開後の「SSF_PreviewVer_R9」フォルダ内容

3.セガサターン・エミュレータ「SSF」の起動
SSFの起動はフォルダ内の「SSF.exe」を起動するだけで事前にプログラムをインストールする必要はありません。アンインストールは、レジストリを使用していないので展開したフォルダを削除するだけです。
「SSF」の起動は「SSF.exe」をクリック


「SSF」の起動画面 解説
「SSF.exe」を起動すると「Windows Defender SmartScreen」によって左記のメッセージが表示されますが「詳細情報」をクリックします。
※左記の画面は初回起動時のみ表示されます。
「実行」ボタンが表示されるので「実行」ボタンをクリックします。
左記画面はSSFが起動した画面です。CDドライブにゲームディスクがセットされている場合はCDを読み込みます。Optionで「CD Image」を有効にしていると保存しているCDイメージを読み込みます。

「SSF」起動後にフォルダ内には、いくつかのフォルダが生成されます

4.セガサターン・エミュレータ「SSF」の画面説明

メニュー Files(F) 項目 解説
State Load(L) 状態セーブのデータを読み込みます。
※「State Load」をクリックすると画面上に「Select Load NO. 0-9」と表示されますので読み込む番号を指定します。
State Save(S) 状態セーブのデータを保存します。
※「State Save」をクリックすると画面上に「Select Save No. 0-9」と表示されますので「0」~「9」の数字を指定します。状態セーブは「bin」ファイル形式で「StateSave\Saturn」フォルダに保存されます。例えば「SEGA RALLY CHAMPIONSHIP」の状態を「1」で保存した場合「SEGA RALLY CHAMPIONSHIP_1.bin」のファイルが保存されます。
Snapshot(C) スクリーンショットを撮影します。
※スクリーンショットは「bmp」ファイル形式(解像度:704x448)で「Snapshot」フォルダに保存されます。
Sound Record(R) サウンド (*.wav) を録音します。
※「Sound Record」をクリックすると録音開始し、再度「Sound Record」をクリックすると録音停止します。サウンドは「wav」ファイル形式で「Wave」フォルダに保存されます。
Video Record(V) 動画 (SSFVファイル) を保存します (※AviUtlのみ対応)。
Exit(E) SSFを終了します。
   

メニュー Hardware(H) 項目 解説
CD Open(O) CDドライブを開きます。
CD Close(C) CDドライブを閉じます。
Reset(R) エミュレーションをリセットします。
   
   
   
   

メニュー Option(O) 項目 解説
Option(O) オプションメニューを開きます。→ 各種設定ができます。
※Option設定を参照のこと。
Graphic NBG / RBG / Spriteの表示ON / OFFを切り替えます。
Rotation 画面の回転位置を選択します。
範囲は「Normal / 270°/ 90°」です。
Window Size ウィンドウサイズを選択します。
範囲は「1x / 1.5x / 2x」です。
※ウィンドウサイズの変更なので解像度には影響しません。全画面表示する場合は、「ALT」+「Enter」キーを押します。再度「ALT」+「Enter」キーを押すと元のウィンドウサイズに戻ります。
Exchange ABC/XYZ ABCボタンとXYZボタンを入れ替えます。
Rapid ラピッドファイア (連射) を有効にします。
   


5.セガサターン・エミュレータ「SSF」のOption設定

Peripheral Tab 項目 解説
Saturn BIOS サターンのBIOSファイルを指定します。
サターンの動作はBIOS無しでも可能ですが互換性は落ちます。
ST-V BIOS ST-VのBIOSファイルを指定します。
ST-Vの動作にはBIOSが必要です。
CD Drive 使用するCDドライブを選択します。
※CDドライブが複数存在する場合、使用するCDドライブを指定します。
Cartridge 拡張スロットに挿すカートリッジを選択します。
Area Code エリアコードを選択します。
※「Japan」を指定します。
Data Cartridge 有効にすると指定したファイルをABUS-CS0領域に読み込みます。
データカートリッジを読み込むためのオプションですが動作確認はしていません。
CD Image 有効にするとCDイメージファイルを使用します。
対応フォーマットはCUE+BinaryImageとなります。
※CDイメージファイルを指定し、SSFの再起動が必要になります。ただし、SSFを再起動した後は「CD Image」チェックマーク変更不可になります。変更する場合、「Hardware」-「CD Open」をクリックすると「CD Image」チェックマーク変更可になります。
   

Screen Tab 項目 解説
Scanline チェックを入れるとスキャンラインが有効になります。
※通常は無効にします。
Disable Fullscreen Scanline チェックを入れるとフル画面時はスキャンラインが無効になります。
Auto Field Skip チェックを入れると自動で速度調整をします。
フレーム単位ではなくフィールド(1/60秒)単位での調整です。
なので、インターレースのゲームは残像が残る場合があります。
チェックを入れても遅い場合はマシンパワーが足りていません。
Enforce Aspect Ratio (Window)
Enforce Aspect Ratio (Fullscreen)
チェックを入れるとサターンのアスペクト比に強制設定します。
※サターンのアスペクト比は4:3です。
Wide Screen チェックを入れるとワイド画面(16:9)になります。
VSynch Wait (Window)
VSynch Wait (Fullscreen)
チェックを入れるとフル画面時にVSynchを待って画面を切り替えます。
Fixed Window Resolution チェックを入れるとウィンドウ時の解像度の切り替えを行わなくなります。
サターン最大解像度のウィンドウになり中央に有効画面が表示されます。
Bilinear Filtering チェックを入れるとバイリニアフィルタリングが有効になります。
※通常は有効にします。
Full Size チェックを入れるとフル画面時に縦横のどちらかがディスプレイの表示解像度になるまでサターンの画面を拡大させます。
   

Sound Tab 項目 解説
Linear Filtering チェックを入れるとリサンプリング時にPCMを線形補間します。
線形補間は実機でも行っています。
Calculation リサンプリング処理の演算方法を選択します。
Mute チェックを入れると無音になります。
ただし、サウンド生成処理は行います。
Volume ボリュームを浮動小数点で指定します。
XAudio2のマスターボイスのボリュームを変更しているので大きくすると音割れするかもしれません。
設定できる数値は0.0~4.0です。
Buffer Size サウンドの展開バッファサイズを選択します。
サイズが小さいと遅延も少なくなりますがサウンドドライバや環境によってはきちんと再生されません。
Buffer Sizeはサウンドドライバに一度に転送するサイズです。
   

Controller Tab 項目 解説
Port1 コントロール端子1の接続を選択します。
Player1:A~Player1:F コントロール端子1に接続したマルチターミナル6の各ポートに接続する機器を選択します。
ダイレクト接続の場合はPlayer1:Aの設定を使います。
ST-Vの場合、1PはPlayer1:A,3PはPlayer1:B,4PはPlayer1:Cに割り当ててあります。
Redefineボタンで各ボタンの設定ができます。Rapidは連射用です。
Port2 コントロール端子2の接続を選択します。
Player2:A~Player2:F コントロール端子2に接続したマルチターミナル6の各ポートに接続する機器を選択します。
ダイレクト接続の場合はPlayer2:Aの設定を使います。
ST-Vの場合、2PはPlayer2:Aに割り当ててあります。
Redefineボタンで各ボタンの設定ができます。Rapidは連射用です。
Reset コントローラの設定を初期状態に戻します。
   

Controller (Rapid) Tab 項目 解説
Enable チェックを入れると連射が有効になります。
  各端子,ポートの連射速度を設定します。
Allボタンは全てのボタンに適用させます。
   

Program1 Tab 項目 解説
Flip Thread チェックを入れるとフリップ処理が別スレッドになります。
テクスチャのロック,アンロックもフリップ処理スレッドで行うのでアンロックが重いドライバなどで有効です。
環境によってはフリップがサターンの垂直同期期間後からかなりずれる可能性があります。
VSynch Waitは無効になります。
VDP1 Draw Thread チェックを入れるとVDP1の描画処理が別スレッドになります。
マルチコア環境などで効果を発揮します。
VDP1 Thread Numbers VDP1描画スレッド数を設定します。
設定できる数値は1~3です。
VDP1 Thread Synch チェックを入れるとVDP1描画スレッドとメインスレッドの同期を取ります。
ただ、速度重視のため精度が低いときがあります。
スプライトがチラつくなど表示が怪しいソフトでチェックを入れてみてください。
VDP2 Draw Thread チェックを入れるとVDP2の描画処理が別スレッドになります。
マルチコア環境などで効果を発揮します。
VDP2 Thread Numbers VDP2の描画スレッド数を設定します。
最大11スレッドで処理します。
CPU数が設定値に満たない場合は(CPU-1)数となります。
設定できる数値は1~11です。
VDP2 Thread Numbers Auto 負荷に応じてVDP2描画スレッド数を切り替えます。
最大数は上記のVDP2 Thread Numbersとなります。
Sound Thread チェックを入れるとサウンド生成処理が別スレッドになります。
マルチコア環境などで効果を発揮します。
チェックを入れずメインスレッドで生成する場合、16サンプル単位で生成するようになります。
別スレッドで生成する場合は(Buffer Size / 4)サンプル単位で生成します。
CD Block Thread チェックを入れるとCDブロック処理が別スレッドになります。
マルチコア環境などで効果を発揮します。
ただし、処理タイミングがかなり変わるので互換性は落ちるかもしれません。
CD Block No Wait チェックを入れるとCDブロックがウェイト無しで動作します。
CDアクセスが速くなりますが互換性は落ちるかもしれません。
Scanline Base Timing チェックを入れると走査線1ライン毎に速度調整をします。
ムービーがコマ送りになったりストリーム再生のタイミングが合わない場合はチェックを入れてみてください。
DSP Thread チェックを入れるとDSP処理が別スレッドになります。
マルチコア環境などで効果を発揮します。
ただし、同期に時間が掛かり逆にCPUパワーが必要になる場合があります。
DSP Thread Always Running チェックを入れるとDSP処理スレッドが常に動作するようになります。
DSP Dynamic Recompile チェックを入れるとSCU-DSPをダイナミックリコンパイルして実行します。
Priority Class プロセスの優先度を指定します。
GPU Rendering チェックを入れるとGPUレンダリングが有効になります。
ただし、ソフトウェアレンダリングより互換性が落ちます。
また、VDP2 RAM Write Timingは無効になります。

Program2 Tab 項目 解説
CD Drive Read Sectors CDドライブから一度に読み込むCDセクタ数を設定します。
この数値を大きくするとCDの読み込みが速くなりますがドライブによってはエラーになる場合があります。
設定できる数値は1~24です。
Dot Clock ドットクロックを浮動小数点で指定します。
サターンは4システムクロック(約7MHz周期)で1ドットを描画しています。
これは何システムクロックで1ドットを描画するか指定します。
逆に言えばこの項目でCPUの速度が調整できます。
4ドットクロックならSH2は実機と同じ速度、2ドットクロックなら半分の速度になります。
SH2のキャッシュをエミュレートしない場合は2.5~3.5ドットクロックに設定して、
キャッシュミスによるメインメモリのアクセスウェイトを擬似エミュレートします。
メモリアクセスウェイトやキャッシュを有効にする場合は少し上げてください。
設定できる数値は1.0~4.0です。
1Block Clock 一度に実行するクロック数を設定します。
メインループではSCU,SH2,DSP,SCSP,68000,CDブロックの順に処理しています。
この項目は1ループで処理するクロック数を設定します。
この数値を大きくすると若干速くなりますが互換性は落ちます。
設定できる数値は1~1200です。
Check SlaveSH2 Idle Loop チェックを入れるとスレーブSH2のアイドルループチェックが有効になります。
アイドルループ中と判断した場合はスレーブSH2の処理を行いません。
ソフトによっては若干速くなりますが互換性は落ちます。
SlaveSH2 Speed スレーブSH2の速度をパーセントで設定します。
マスタSH2の何パーセントの速度でスレーブSH2を動かすかを設定します。
SSFはマスタSH2とスレーブSH2のバスアービトレーションをエミュレートしていませんのでこの項目によって擬似エミュレートします。
設定できる数値は1~100です。
SH2 Recompile Block Instructions 1ブロックの最大命令数を設定します。
SSFでは分岐命令間を1ブロックとしてリコンパイルしブロック単位で実行しています。
分岐間(1ブロックの命令数)が長いと割り込みタイミングなどに影響してくるので長いブロックはこの最大命令数で分割します。
設定できる数値は1~50です。
SH2 Recompile Buffer Size SH2リコンパイルバッファサイズをMB単位で指定します。
この数値を大きくするとバッファのフラッシュ回数は減りますがフラッシュ処理に時間が掛かるようになります。
設定できる数値は1~99です。
CD Sector Numbers Per Second 一秒に読み込むセクタ数を設定します。
CDブロックがウェイトありの場合のみ有効です。
設定できる数値は150~200です。実機は150セクタです。
CD Task Per Second 1秒間に処理するCDブロック処理回数を指定します。
CDDAが途切れるなどが発生する場合は値を大きくしてください。
逆にリグロードサーガ2では100くらいにしてください。
設定できる数値は100~4000です。

Program3 Tab 項目 解説
Check Sprite Priority チェックを入れるとスプライトのプライオリティが全て0の場合、描画しないようにします。
Check Cycle Pattern チェックを入れるとサイクルパターンを毎ライン更新します。
ムービーがちらつく場合はチェックしてみてください。
互換性は上がりますが少し重くなります。
VDP2 RAM Revision Access チェックを入れるとサイクルパターン指定ミスによるVDP2RAMのメモリアクセス位置のずれを考慮します。
画面にゴミが出ている、又はずれている場合はチェックしてみてください。
互換性は上がりますが重くなります。
VDP2 RAM Write Timing チェックを入れるとVDP2RAMへの書き込みをライン毎に行います。
また、表示遅延が1フレームになります。通常は2フレームの遅延があります。
Check Cycle Patternにチェックを入れているとパターンネームの実データの更新チェックも行います。ただし、先頭2048バイトのみです。
メモリアクセスが増えるので重くなります。
Buffer Size (MB) VDP2 RAM Write Timingのバッファサイズを指定します。
設定できる値は32~99です。
Memory Access Wait チェックを入れるとキャッシュスルーアドレスのメモリアクセスウェイトが有効になります。
メモリアクセスウェイトを入れないとタイミングがずれて正常に動作しないソフトがあります。
メモリアクセスウェイトを有効にする場合はドットクロックを高めに設定してください。
Bus Wait チェックを入れると各バスのウェイトが有効になります。
実機に近い処理タイミングになりますが非常に重いです。
SH2 Cache チェックを入れるとSH2のデータキャッシュが有効になります。
メモリアクセスウェイトも有効になります。
キャッシュを有効にする場合はドットクロックを高めに設定してください。
非常に重い処理なので必要なソフトのみチェックを入れるようにした方が良いです。
SH2 DMA Real Transfer チェックを入れるとSH2-DMAが実機と同じ動作になります。
転送時間を考慮しないと正常に動作しないソフトがあります。
SCU DMA Delay Interrupt チェックを入れるとSCU-DMA割り込みを遅延させます。
転送時間を考慮しないと正常に動作しないソフトがあります。
CD Track/Index チェックを入れるとCDDAのトラック内インデックス位置が有効になります。
一部のゲームではインデックス指定でCDDAを再生しています。
確認しているソフトは、
タイトーチェイスH.Q. プラス S.C.I.

Program4 Tab 項目 解説
CD Access LED チェックを入れるとCDアクセスLEDの表示をします。
No BIOS チェックを入れるとサターンのBIOSを使わなくなります。
ただし、BIOS無しでは動かないソフトがあるのでBIOSの使用を推奨します。
バックアップライブラリは必ずフックされます。
ST-Vの動作にはBIOSが必要です。
Hook Backup Library チェックを入れるとバックアップライブラリをフックしてバックアップ容量を無制限にします。
データはBackupフォルダ以下に保存されます。
Enable FDD チェックを入れるとFDDが有効になります。
バックアップライブラリをフックした場合に限ります。
Mesh Translucent チェックを入れるとメッシュ描画のスプライトが半透明になります。
スプライト処理が複雑になるため重いです。
実機には無い機能なので上手く半透明化できないかもしれません。
テクスチャ自体をメッシュにしている、又はBG面のキャラクタ自体をメッシュにしているものは半透明になりません。
Deinterlace チェックを入れるとデインターレースが有効になります。
単純に縦を2倍表示するだけでは駄目なのでかなり重いです。
Ignore 68000 AddressError Exception チェックを入れると68000アドレスエラー例外を無視します。
今のところ、ワンチャイコネクションでのみチェックが必要です。
Use Object Cache チェックを入れるとオブジェクトキャッシュを使用します。
事前にオブジェクトキャッシュを作成する必要があります。
Emulate Speed エミュレート速度を浮動小数点で指定します。
この数値を大きくしても速くならない場合はマシンパワーが足りていません。
なお、Auto Field Skipのチェックを外すとウェイト無しで動作します。
設定できる数値は0.1~4.0です。
エミュレート速度を変更する時はVSynch Waitにチェックを入れないようにしてください。

FunctionKey Tab 項目 解説
CDオープンなどのキーを設定できます。
詳しくはFunctionKey.txtを参照してください。
   


6.セガサターン・エミュレータ「SSF」のキーボード対応表

コントロールパッド&キーボード 対応表
コントロールパッド キーボード
方向ボタン 上
方向ボタン 下
方向ボタン 左
方向ボタン 右
A ボタン Z キー
B ボタン X キー
C ボタン C キー
X ボタン S キー
Y ボタン D キー
Z ボタン F キー
L ボタン A キー
R ボタン G キー
スタートボタン Enter キー


7.CDイメージファイルの作成

CDドライブにゲームディスクをセットして置くのは不便なのでゲームディスクのCDイメージをパソコンに取り込んで使用する方法を紹介します。
対応フォーマットCUE+BinaryImageをサポートしているフリーソフトウェアのCD取り込みソフト「CD Manipulator」を使用してCDイメージを作成します。
「CD Manipulator」のダウンロードは「CD Manipulator跡地」の http://www.storeroom.info/cdm/ から入手します。
2019年10月22日現在のバージョンは「Version 2.70 Final」になっています。
ファイルはZIP形式ですので適当なフォルダに展開し使用します。
展開後の「CD Manipulator Version 2.70 Final」

展開したファイルの「CdManipulator.exe」をクリックし「CD Manipulator」を起動します。
「CD Manipulator」起動画面

CDイメージ保存先及びファイル名の変更、イメージ作成 解説
CDイメージ保存先及びファイル名を変更する場合は、メニューの「CD(C)」-「イメージ作成(W)」をクリックします。
CDイメージ作成画面が表示されるので「イメージファイル」で保存先及びファイル名を指定します。「OK」ボタンを押すとCDイメージ作成処理が開始されます。
CDイメージ作成処理中は左記の進捗状況の画面が表示されます。終了すると保存先には cue + img の2ファイルが作成されます。

SSFでCDイメージを使用する場合はOptionメニューから「Peripheral Tab」-「CD Image」を有効にし、CDイメージの保存先を指定します。






inserted by FC2 system