Wine×Mac OS Xで東方しようぜ?

Intel Macで東方してみましょう。タイトルのとおり、Wineを使います。
環境はiMac(early 2008) 2.66 GHz C2D, ATI Radeon HD 2600 Pro、OSはMac OS X 10.6.3です。


一昔前に話題となったMikuInstallerなんてものがありましたが、今回はこちらを使わず、MacPortsを使ってwineを導入してみましょう。
なお、東方の起動にVsyncPatchを使用します。こちらの説明は割愛します。
使用しなくても起動はすると思いますが、一部の作品ではBGMが読み込まれなかったりFPSが60以外で固定されたりします。
なお今のところ、花映塚萃夢想、緋想天、非想天則のネット対戦はできていません。
できたら教えてください。

最初に確認しておくこと

  • Xcode」がインストールされていること
    • Snow LeopardLeopardならInstall DVDのオプションインストールに「Xcode.mpkg」が同梱されていると思いますので実行してインストール
    • んなもんねーよ! という方はこちら→Mac Dev Center - Apple Developer
      • アカウントをお持ちの方はログインしてください。持っていない方はregisterからアカウントを作成してください。無料ですので英語にめげずがんばりましょう。
      • 真ん中あたりのDevelopment ResourcesからDeveloper Downloadsをクリック
      • 「Developer Downloads & ADC Program Assets」右カラムのDownloadsからDeveloper Toolsをクリック
      • Xcode *.*.* Developer Tools」をクリック(この記事時点では3.2.2が最新、Snow Leopard以前をご利用の方はこちらを参照して適切なXcodeをダウンロードしてください)
      • 結構ファイルサイズが大きいので金鍔でも食べてお待ちください。
      • dmgをマウントして出てきたpkgからXcodeをインストールしてください。
  • X11」がインストールされていること
    • Snow Leopardならデフォルトでインストールされていると思います。
    • インストールされていない方は再びInstall DVDのオプションインストール、あるいはOptional Installsから。
    • 特に設定は不要でございます。

MacPortsのインストール

  • MacPorts」でググって一番上→The MacPorts Project -- Home
  • サイドバーの Getting Started から Install MacPorts をクリック
  • 「“dmg” disk images for Snow Leopard, Leopard and Tiger as a legacy platform,〜」とあります。ご自分のMac OS Xにあわせて選択してください。クリックするとdmgのインストールが始まります。
  • dmgがマウントされるとpkgが実行されます。インストールしてください。
  • インストールが終わったら再起動するか、ログインしなおしてください。やらなくてもいいかも。おかしいな? と思ったら再起動してみてください。

MacPortsの設定

  • MacPortsはターミナルから利用するアプリケーションです。ターミナルを起動してください。/Applications/Utilities/、または/アプリケーション/ユーティリティにあります。
  • まずはMacPortsのアップデートとリストの更新が必要です。一行入力してReturn、次の一行を入力してReturn。

$ sudo port -d selfupdate
$ sudo port -d sync

最初の$と半角スペースはいりませんよ?
password: と表示されますのでアプリケーションをインストールする時と同様にOSのユーザーアカウントのパスワードを入力して、Return。また、すぐに実行すれば2行目ではパスワードを要求されません。


これでMacPortsの設定は整いました。それではWineをインストールしていきましょう。

MacPortsでWineのインストール

  • ターミナルを開きます。
  • 「port search wine」と入力してReturnしてみましょう。パッケージ名にwineを含むものが出てきたと思います。今回はその中から wine-devel をインストールします。
  • 「sudo port -d install wine-devel」と入力し、Return。*1
  • またしばらくかかります。蕎麦でも茹でてお待ちください。

Wineの設定

  • まずはターミナルを開いて「winecfg」と入力してみましょう。

  • こんなんが出ると思います。「オーディオ」タブを選択しましょう。
  • 何かダイアログが出ますのでとりあえず(`・ω・)b OK!しておきましょう。
  • 「音をテスト」を押すとなんかもわもわした音がします。変な音なのは仕様でしょう。音が出なかったことがないので、出なかった方はがんばってください。
  • OK キャンセル 適用と並んでいますので、OKを押して終了してください。

いきなり東方を起動してみる

  • ターミナルを開いて「wine 」と入力します(半角スペース忘れずに)
  • ターミナルのウインドウに、起動したい東方のvpatch.exeをドロップして、Return。(wine@1.2-rc2ではファイルパスに日本語が含まれていても問題ないようです)

簡単なように書いていますが、実行できればそれでかまいません。


最新版wineではDirectXなどの更新なしで動作するはずです。
また、風神録以降のウインドウモードを指定すると直後にDockに引っ込みます(!)が、焦らずクリックすれば問題なくプレイできると思います。
文花帖以前でのウインドウモードにおいては、VsyncPatchの機能でサイズの変更が可能です。
また、文花帖以前の作品はフルスクリーンで起動することができません。前述のサイズ変更で代用してください。
VsyncPatchを利用したフルスクリーン起動が可能でしたが、command+tabによるアプリ間移動ができないようなので、実質他の作業はできない?(同本体、OSX10.7、wine1.3.25にて)


ダブルスポイラーは今のところVsyncPatchが公開されていませんが、直接th125.exeを実行することで起動できます。ただし私の環境ではfpsが66中盤に固定されてしまいます…
なお、DSのセーブデータは ~/.wine/drive_c/users/***/ShanghaiAlice/th125 に配置されます。ここに上書きすれば他で使用していたセーブデータ、リプレイを使うことができます。

「vpatch dllをロードできませんでした」の対処法

この記事時点の最新版では同様の状況で再現できませんでした。
これは、既にwineを導入していて、外付けHDDなどに東方を入れている方が対象となると思います。
MacOSXでは.(ドット)から始まるファイルをシステムが使用します。
ストレージのフォーマットがHFS+でない場合、「example.txt」というファイルに対する特別な情報を「._.example.txt」というファイル名で同じフォルダに作成し、保存しています。
ところで、vpatch.exeは同じフォルダにあるvpatch_th**.dllを「“vpatch”を含む拡張子dllのファイル」として探しています。
すると、「._.vpatch_th**.dll」というファイルに反応してしまうことになります。
よって、この問題を解決するにはそのファイルを削除すればいいわけですが、ドットから始まるファイルは初期設定ではFinderから見ることができないようになっています。
可視、不可視の設定、Finderの再起動についてはこちらが詳しいです。

東方非想天則東方緋想天のデータを読み込ませたい@wine

この項は外付けHDDなどに東方を入れていて、Windowsでも使用したい場合に役立てると思います。
Windowsでは外付けHDD(UNTITLED)をL:\と認識させているので、私の非想天則の設定には次のようにパスを指定してあります。

[th105path]
path=L:\th\th105

ですが、このままwineで非想天則を実行すると緋想天を認識してくれません。
認識させるにはwineの設定が必要です。

  • ターミナルを開き、winecfgと入力してReturnしてください。
  • winecfgのドライブ タブを選択してください。
  • 追加(A)をクリックしてください。
  • ドライブレターを指定して、OK。(私の場合はL:、あなたの使用状況に合わせて)
  • 今追加したドライブレターが選択されていることを確認し、参照(B)をクリックしてください。
  • 外付けHDDなどは/Volumes/以下にマウントされています。該当のフォルダを選択してください。

(私の場合は/Volumes/UNTITLED/でした)


非想天則にZ:/Volumes/UNTITLED/th/th105/と指定しても認識したと思いますが、他に持ち出した時意識しなくてすむことを優先すると、ドライブレターを指定して外付けドライブをマウントしてあげるのが手っ取り早いと思い、このように設定しました。


追記、妖精大戦争のこと
vsyncpatchなしで正常に動作します。文字が透けるのは相変わらずですが、問題なく遊ぶ事が出来るはず。

追記、東方神霊廟のこと
体験版はVsyncPatchなしでもfps60固定で遊ぶことができました。(同本体、OSX10.7、wine1.3.25にて)

*1:-dはなくても構わないですが非常に静かになります