サターン本体は2台あるけどどっちも電池切れでデータ全部飛んでほこりかぶってる。
当時はフラッシュメモリとか無かったのか、メモリーパックの中身も全部飛んだ。
エミュレータならちゃんとバックアップしておけば大丈夫だろう。
SSFはVer0.12 beta R4
wineは1.6.2だけどPlayOnLinuxでやってみたら1.7.39まで特に違いはなさそう。
サターンのCDはマウントしておく。
普通に実行すると↓のようなエラーが起こる。
XAudio2Create() error.
File: ./XAudio2App.cpp
Line: 260
Function: XAudio2App::Initialize
windowsならDirectXとか入れとけばいいんだろうけど、
XAudioがうまく行ってないようなので↓のコマンドで入れる。
(2016/2/25 追記:wine1.9.4でやってみたところ不要になっている。 )
winetricks xact
winetricks xact_jun2010
これで実行すると、↓のようなエラーが起こる。
IDirect3DDevice9::UnlockRect() error.
File: ./Direct3D9.cpp
Line: 1548
Function: Direct3d9::_SetTexture
SSFで画面が切り替わるあたりで異常っぽい。
SSFの設定を試行錯誤して動かした。
--- SSF.ini.org 2015-04-08 01:44:33.339513534 +0900
+++ SSF.ini 2015-04-08 01:46:09.123557993 +0900
@@ -24,14 +24,14 @@
ScanlineRatio="70"
DisableFullscreenScanline="1"
AutoFieldSkip="1"
-EnforceAspectRatioWindow="1"
-EnforceAspectRatioFullscreen="1"
+EnforceAspectRatioWindow="0"
+EnforceAspectRatioFullscreen="0"
WideScreen="0"
-VSynchWaitWindow="0"
-VSynchWaitFullscreen="0"
-FixedWindowResolution="0"
-FixedFullscreenResolution="0"
-BilinearFiltering="0"
+VSynchWaitWindow="1"
+VSynchWaitFullscreen="1"
+FixedWindowResolution="1"
+FixedFullscreenResolution="1"
+BilinearFiltering="1"
StretchScreen="1"
FullSize="1"
FullscreenDisplay="0"
@@ -47,24 +47,24 @@
[Program1]
DisableInput="1"
FlipThread="0"
-VDP1DrawThread="0"
+VDP1DrawThread="1"
VDP1ThreadNumber="1"
-VDP1ThreadAlwaysRunning="0"
+VDP1ThreadAlwaysRunning="1"
VDP1Division="1"
-VDP2DrawThread="1"
+VDP2DrawThread="0"
VDP2ThreadNumber="11"
SoundThread="1"
-CDBlockThread="0"
+CDBlockThread="1"
CDBlockNoWait="0"
ScanlineBaseTiming="0"
-DSPThread="0"
-DSPThreadAlwaysRunning="0"
+DSPThread="1"
+DSPThreadAlwaysRunning="1"
DSPDynamicRecompile="1"
Priority="2"
[Program2]
CDDriveReadSectors="8"
-DotClock="2.50"
+DotClock="3.70"
BlockClock="80"
CheckSlaveSH2IdleLoop="1"
SlaveSH2Speed="90"
@@ -92,7 +92,7 @@
BranchInstructionClock="0"
[Program4]
-CDAccessLED="1"
+CDAccessLED="0"
NoBIOS="0"
HookBackupLibrary="1"
EnableFDD="0"
@@ -133,7 +133,7 @@
PadType1_3="5"
PadType1_4="5"
PadType1_5="5"
-Pad0_0_0="2/200/2/208/2/203/2/205/2/44/2/45/2/46/2/31/2/32/2/33/2/30/2/34/2/28/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0"
+Pad0_0_0="1/33025/1/33026/1/32769/1/32770/1/0/1/256/1/512/1/768/1/1024/1/1280/1/1536/1/1792/1/2048/0/0/0/0/0/0/0/0/0/0/1/33025/1/33026/1/32769/1/32770/1/0/1/256/1/512/1/768/1/1024/1/1280/1/1536/1/1792/1/2048"
Pad0_0_1="0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0"
Pad0_0_2="0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0"
Pad0_0_3="0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0"
パッドの設定はぷよぷよフィーバー買った時についてきたPC用サターンパッド用
(というかパッド目的で買った)
未解決の問題:
これで動かすと、5回に1回くらい正常起動する。一回動くと大丈夫。
あと、オプション設定しようとすると死ぬので、設定は手動でiniファイルをいじる。
パッドの設定はどうやったか覚えてない。マウスクリックで進んだり、何度もやれば書けたんだったか、類推して直書きしたか?
2016/2/25 追記
wine 1.9.4で動かしてみたら正常起動する確率が上がっていた。というか失敗しない。
あと、オプション設定もできるようになってた。
パッドの設定は、アナログ入力がずっと入っているようなデバイスは抜いて実行する。
(キーが離されるまで設定が進まない仕様のようなので、
ハンドルコントローラとかつなげていると、設定が進まない)
あと、実際はCDEmu使って仮想CDで実行している。CDのイメージ化はlinuxで適当なのが見つからなかったので、Diskjugglerってやつをwineで動かして吸いだした。CDの寿命は10年くらいと聞いたことがあるが、意外と今でも読めるんだなあ。 読めなくなる前に全部吸いだしておきたい。
遊んでいるところ
グランディア
Disk2まで行って保留中。雨月の塔のあたりでイベントが起こらなくなって進めなくなったが、dotclock3.7にしたら進めた。以後dotclockは3.7のまま。
ShiningForce3
最初の頃のSSFだと魔法のエフェクトがおかしかったりしたけど、今のSSFだと完璧に見える。
バーチャロン
ツインスティック繋げたい。
エミュレーション部分についてはもう何の文句もないくらい動いた。
情報ありがとうございます!
返信削除ところで質問ですが、CDマウントには何を使われていますか?
忘れたけど多分↓のやつを入れたと思います。
削除https://launchpad.net/~cdemu/+archive/ubuntu/ppa
自分用なので大して細かく書いてないですが、役に立ったのであればよかったです。
削除一応手元ではUbuntu 16.04 (64bit) Wine 1.9.15 SSF_012_beta_R4でブログに書いた通りの状態(素の設定だと動かない)ですが、動作が違うようですね。
SSFはソフトウェアレンダリングらしいのでグラフィックカードはあんまり関係ないかと思っていましたが、四角ポリゴン(三角形2枚)で画面描画しているんだろうか。(それがグラフィックカードによってはうまく再現できない?みたいな。)
情報ありがとうございます。結構動きますね。
返信削除