iOS版のRetroArchはバックグラウンドの制約が厳しく、Syncthing等での常駐同期が困難です。しかし、RetroArch v1.19.0以降に実装された「クラウド同期(WebDAV)」機能を使えば、ゲーム起動・終了時に自動でセーブデータを同期できます。
今回は、自前のWindows PCを軽量なDockerコンテナでWebDAVサーバー化し、既存のセーブフォルダ・ステートフォルダ(直置き構成)とダイレクトに紐付けるスマートな構築手順をまとめます。
1. Windows側:DockerでWebDAVサーバーを構築
Windowsの標準機能(IIS)を使わず、Docker Composeを使って数分でセーブ・ステートフォルダ専用のWebDAVサーバーを立ち上げます。
① docker-compose.yml の作成
任意の空フォルダ(例: C:\retroarch-webdav)を作成し、その中に docker-compose.yml という名前でファイルを作成。以下の内容を記述します。
services:
webdav:
image: bytemark/webdav
container_name: retroarch-webdav
restart: always
ports:
- "8080:80"
environment:
- AUTH_TYPE=Basic
- USERNAME=your_user # 任意のユーザー名に変更
- PASSWORD=your_password # 任意のパスワードに変更
volumes:
# 左側のWindowsパスに、RetroArchが自動作成する「saves」「states」をダイレクトに紐付け
- "C:/Users/SyncthingServiceAcct/retroarch-saves:/var/lib/dav/data/saves"
- "C:/Users/SyncthingServiceAcct/retroarch-state:/var/lib/dav/data/states"
② コンテナの起動
エクスプローラーでC:\retroarch-webdavを開いた状態でアドレスバーにcmdを入力してコマンドプロンプトを開いて、下記のコマンドを実行します。
docker compose up -d
※起動後、ブラウザで http://localhost:8080 にアクセスし、設定したユーザー名・パスワードでログインできればサーバー側は正常に動作しています。
2. 各デバイス(Windows / iOS)のRetroArch設定
サーバーと通信するため、各デバイスのRetroArch(Windows版・iOS版の両方)で以下の設定を行います。
① クラウド同期の設定
メインメニューから 「設定」 > 「保存」 に進み、一番下にある「クラウド同期」の項目を以下のように設定します。
| 設定項目 | 設定内容 |
|---|---|
| クラウド同期を有効にする | オン |
| 同期: セーブ/ステート | オン |
| クラウド同期のバックエンド | webdav |
| ユーザー名 | ymlファイルで指定したユーザー名 |
| パスワード | ymlファイルで指定したパスワード |
| クラウドストレージURL | http://[WindowsマシンのローカルIP]:8080/ ※末尾の「/」は必須。奥にフォルダを作らせないためURL末尾に saves/ は付けない。 |
② 【重要】セーブデータの階層を「フラット」にする
フォルダ直下に .srm や .state を直接配置する運用の場合、コアごとに自動でフォルダが掘られないよう、以下の設定を必ずオフにします。
- 「設定」 > 「保存」 > 「セーブデータをコアごとにフォルダに分けて保存する」 → オフ
- 「設定」 > 「保存」 > 「ステートセーブをコアごとにフォルダに分けて保存する」 → オフ
※設定が終わったら、必ずメインメニューの「設定ファイル」 > 「現在の設定を保存」を実行してください。
3. PC再起動時の自動起動設定
Windows PCが不意に再起動した際も自動でWebDAVサーバーが立ち上がるよう、土台となるDocker Desktopの自動起動を有効にしておきます。
- Docker Desktopの画面右上にある 歯車マーク(Settings) をクリック。
- 「General」 タブを開く。
- 「Start Docker Desktop when you log in」 にチェックを入れる。
- 右下の 「Apply & restart」 で保存。
注意点: Docker DesktopはWindowsにユーザーが「サインイン(ログイン)」したタイミングで起動します。PC再起動後は、一度ロック画面を解除してデスクトップを表示させてください。
💡 実際の運用の流れ
RetroArchのクラウド同期はリアルタイム同期ではありません。
- ゲーム起動時: サーバーから最新ファイルを自動ダウンロード
- ゲーム終了時: サーバーへ最新ファイルを自動アップロード
ゲームを遊び終わったら、アプリをいきなりタスクキルせず、RetroArchのメニューからゲームを正常に終了(コンテンツを閉じる)させることだけ意識すれば、WindowsとiOSの間で完璧なクロスセーブ環境が維持されます。
コメント
コメントを投稿