【RetroArch】iOSとWindowsでセーブデータを自動同期する環境の構築方法(WebDAV+Docker)

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の自動起動を有効にしておきます。

  1. Docker Desktopの画面右上にある 歯車マーク(Settings) をクリック。
  2. 「General」 タブを開く。
  3. 「Start Docker Desktop when you log in」 にチェックを入れる。
  4. 右下の 「Apply & restart」 で保存。
注意点: Docker DesktopはWindowsにユーザーが「サインイン(ログイン)」したタイミングで起動します。PC再起動後は、一度ロック画面を解除してデスクトップを表示させてください。

💡 実際の運用の流れ

RetroArchのクラウド同期はリアルタイム同期ではありません。

  • ゲーム起動時: サーバーから最新ファイルを自動ダウンロード
  • ゲーム終了時: サーバーへ最新ファイルを自動アップロード

ゲームを遊び終わったら、アプリをいきなりタスクキルせず、RetroArchのメニューからゲームを正常に終了(コンテンツを閉じる)させることだけ意識すれば、WindowsとiOSの間で完璧なクロスセーブ環境が維持されます。

コメント