[令和最新版]2024年にM1 MacでWindows版東方STG(古いやつ)をWineSkinServerで動かせた実績のメモ

# はじめに

基本的には、以下の記事を参考にして、HomeBrewでWineSkinServerを導入し、WineTricksメニューからfakejapaneseを導入するだけで動きます。
しかし、動く状態に持っていくまでに色々悩んだので、同好の士のために情報を残しておきます。

https://qiita.com/amasaku/items/9101add74779bca03614

https://pc.watch.impress.co.jp/docs/column/nishikawa/1332743.html

↑の記事が消えた場合に備えてメモ

```
brew tap gcenx/wine
brew install --no-quarantine unofficial-wineskin
```

## 環境情報

* Wineskin Engine: WineskinCX 23.7.1
* Wineskin Wrapper: 3.0.3
* MacOS Sonoma 14.4.1
* M1 Mac mini / x86_64 MacBookPro 2016
    * M1で作った12GBの `.app` ファイルを、そのままx86なMBP2016にコピペしたら、動きました。(コピーが完了してなかったのか、ちゃんと動作するまで少し時間がかかった)

### 紅魔郷 〜 獣王園まで(黄昏ゲー除く) 全部入れたdisk容量

12GB

## インストールと動作を確認したゲーム

* 東方紅魔郷 vpatch前提 
    * vpatch(非公式 東方VSync Patch)は、公式サイトからアップデートパッチを入手し、最新化した状態でないと正常動作しないことに注意。以下同様
* 東方妖々夢 vpatch前提
* 東方永夜抄 vpatch前提
    * ~~ver. 1.00dで「千年幻想郷」以降の全BGMが鳴らない問題あり。 ゲームを進めることはできるが、曲がかからない。Music Roomで直接再生しようとするとゲームがフリーズして操作不能になる。かなり大きな問題、解決策が現状ない。~~
        * ~~vpatchを経由せず直接th08.exeを実行しても再現する。これは嫌すぎる…。(涙)~~
        * インストール時にthbgm.datファイルのコピーに失敗し、本来450MBあるところが中途半端に264MBしか無かった。インストールCDからコピーし直したら解消。
* 東方文化帖 vpatch前提
* 東方風神録 vpatch前提
* 東方地霊殿
* 妖精大戦争
* ダブルスポイラー
* 東方神霊廟
* 東方輝針城
    * ※問題あり。 ~~起動はするものの、FPSが100超えになってしまいマトモにプレイ不可。vpatchも非対応、custom.exeにも設定項目なし。困った。~~
        * custom.exeで「入力レイテンシー」をデフォルトの「自動」から「高速」に変更することで、60FPSでプレイできることを確認できた。
* 弾幕アマノジャク 入力レイテンシーを「高速」にする必要あり
* 東方紺珠伝 入力レイテンシーを「高速」にする必要あり
* 東方獣王園 入力レイテンシーを「高速」にする必要あり

# WineSkinとは何をするものなのか

## Wine環境の考え方

まずWineというソフトウェアがあります。Windows OSのAPIを*NIX系のAPIに置き換えて動作させるソフトウェアです。互換レイヤーと呼ばれます。

この「素の」Wineは、ホームディレクトリ配下の「 `~/.wine` 」以下を独占します。複数の環境を切り替えて使用することはできません。(古い知識なので、今は違うかも)

WineSkin(MacOS版)は、その環境を包みこみ、MacOSの `.app` ファイル(Wrapper)1個につき1つ、分離して扱えるようにするツールです。
WineSkin Wineryを実行していくと、最終的に `.app` なファイル1個が生成されます。
この中に、いわばWindows環境一式が入った、仮想フォルダが入ります。(MacOS上から見ることができます)



生成された `.app` を実行すると、内部で指定されている `.exe` ファイルだけがWine経由で実行される、というカラクリになっています。

## WineTricks

Wine開発元があらかじめ用意してくれている設定用テンプレートです。
メニューに従ってチェックを入れて実行ボタンを押すだけで、WineSkin環境の中身を書き換えてくれます。(例: フォントのインストール、日本語化設定など)

## アプリケーションの実行

Windowsプログラムのインストールが完了したWineSkin Appは、ひとつのexeプログラムを実行するようになっています。
この挙動を変更にするには、Finderから対象のWineSkin AppをCmd+クリック(右クリック)して「パッケージの内容を表示」し、出てきた `Wineskin.app` を実行します。
GUIメニューが表示されるので、前述の記事にあるようなWineTricksなどの変更をかけてください。

![tohoproject_app.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/403229/6ec1b2c0-366f-5455-379a-01760728ec6b.png)

後述しますが、 `C:\Windows\explorer.exe` を指定しておくと、複数のWindowsプログラムを起動できて便利です。

# 文字化け問題

Wineは日本のソフトウェアではないので、日本語対応は後回しになりがちです。とはいえ、利用上問題がないように、対応はなされています。

## 文字が豆腐 □ になる

エンコードは合っているが、フォントが欠落している状態です。fakejapaneseを導入することで解消します。

## 文字がはてな ?? になる

原因不明です。
おそらくfakejapaneseを導入することで解消します。
WineSkinではないWineの検証記事では、環境変数LANGを `ja_JP.SJIS` に変更せよ、という記述も見つけましたが、私の場合はMacのUI言語が英語になっていたのを日本語に変えて再起動しただけで直りました。

# 事前準備

私の場合、最初にいきなり東方文化帖を動かそうとして、失敗しました。
インストーラーのウィンドウは出たのですが、文字が全部 `????` になってしまいました。
ゲームプログラムであったり、インストーラーが特殊だったりするので、もっと一般的なプログラムでトラブルシュートすべきでした。

## まず、サクラエディタをインストールして、日本語表示のテスト

https://sakura-editor.github.io/

自分の環境(M1 Mac mini 16GB / MacOS Sonoma)においては、サクラエディタはすんなり動きました。日本語表示も入力もバッチリです。

昔から使っている同様のプログラムである、FFFTPはなぜか動きませんでした。

https://github.com/ffftp/ffftp/releases

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/403229/1e8fa4c0-61f6-ab58-f5a1-de69874800f2.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/403229/02276b59-938f-c2e6-ef53-0deb8e869a15.png)
ウィンドウ枠は表示されるのですが、アイコン、文字がまったく表示されず、操作にも反応しません。
「文字が化けて表示される」のではなく「アプリケーションの動作自体が停止している」ので、Wineの内部的な問題が起きていると考えました。

なので、まずはfakejapaneseのみ導入、そしてサクラエディタをインストールして、正常に起動するか確認してから、東方STGゲームのインストールに移ると、滞りなく進めると思います。

# おすすめの構成

## appファイルは1個を使い回す

毎回Wrapperを作ってfakejapaseneを入れるのは手間ですし、自分が試した限りでは、特にWine側の設定を変更しなくても古い東方ゲームはみんな動きました。
(東方紅魔郷〜東方輝針城まで)
また、設定変更のcustom.exeを実行するのに不便です。(次項で説明)

## ランチャー
`C:\Windows\Exploer.exe` をエントリーポイントに指定すると、各ゲームが直接起動するのではなく、Macで言うところのFinderにあたるExplorerを起動できるので、そこから各ゲームを起動できます。
この方法の何が嬉しいのかと言うと、東方のゲームは `custom.exe` という付属プログラムを実行することでウインドウモード・フルスクリーンを切り替えるようになっています。(最新は違うかも？)
WineSkinのAppで直接ゲームのexeを起動してしまうと、付属のリプレイビューアも起動できないので、ランチャーを経由するほうがおすすめです。

## Tips

* 東方本体についてくるDirectXは入れなくても動きます。
* 風神録以前の解像度を指定できないゲームにvpatch(vsync patch)を適用するには、上海アリス公式サイトで配布されているバージョンアップパッチを当てる必要があります。(CDからインストールしたそのままでは、vpatchが正常動作しませんでした)
* 処理落ち対策
    * 作品によっては、同時に起動しているプログラムにおそらく依存してかなり処理落ちします。自分の環境では、獣王園は問題なく、天空璋はガッタガタに処理落ちしました。
    * 対策は、Google Chromeを落とす……でもいいんですが、不便なので以下2つを実施しました。
    * 1 Chromeのメモリセーバーを有効化
    * 2 reniceコマンドで東方ゲームのプロセスのnice値を-10にする
    * この2つの実施により、裏でChromeと流れの早いSNSが動いてても、処理落ちしなくなりました。