DockerによるノベルゲームのためのWineコンテナ
- FORTUNE ARTERIAL
- WHITE ALBUM2 EXTENDED EDITION
MESA: error: Failed to query drm device.
glx: failed to create dri3 screen
failed to load driver: iris
failed to open /dev/dri/card1: No such file or directory
failed to load driver: iris
こんな感じのエラーはIntelのGPUを認識できないことが原因なので、Dockerのオプションとして--device /dev/dri:/dev/driを与えてやれば良い。ただ、ゲームは動くので必須ではない。
このようなエラーが出たが、同じエラーで質問している記事や、Wine公式のWikiで取り上げられている便利な設定を参照して対処した。
X Error of failed request: XF86VidModeClientNotLocal
Major opcode of failed request: 152 (XFree86-VidModeExtension)
Minor opcode of failed request: 18 (XF86VidModeSetGammaRamp)
Serial number of failed request: 278
Current serial number in output stream: 280
具体的な内容は以下の通り。レジストリに推奨設定を書き込んだあと、レジストリファイルの変更を見て実際に書き込まれたかを確認する。確認しないと設定が保存しないままDockerfileが次のステップに移ってしまう。尚、この確認方法ではどちらか一方だけが書き込まれ、その他が書き込まれていない状況でも通ってしまう懸念がある。
RUN before=$(stat -c '%Y' ${HOME}/.wine/user.reg) &&\
wine reg add "HKCU\Software\Wine\X11 Driver" /v UseXRandR /t REG_SZ /d N /f && \
wine reg add "HKCU\Software\Wine\X11 Driver" /v UseXVidMode /t REG_SZ /d N /f && \
while [ $(stat -c '%Y' ${HOME}/.wine/user.reg) = $before ]; do sleep 1; doneWHITE ALBUM2はDirectX 9に依存しているので、d3dx9のインストールが必要。尚、dxvkをインストールしてはいけない。古いゲームを動かす上ではVulkanベースのdxvkは意図しない動作の原因になりやすい。実際、WHITE ALBUM2を動かす際にdxvkをDirectXとしてインストールしていたが、動画の再生ができなかった。
また、wmvやmpegの再生のためにwmp9をインストールしている。「gstreamerの変わりにquartzを使用すべき」といった記事が散見されたが、現在のWineではgstreamerで十分動作するようである。
因みに、mv\d{2}0.pakやev\d{2}0.pakと言ったファイルは拡張子をwmvに変えることで動画として再生できる。