[Linux] Linux + Wine + SteamでWindows対応ゲームをプレイする

まだ転職活動中ですが、GWに入って一休みと行った所。
退職エントリーをみて、何社か声をかけて頂きまして話が進んでいる所もあります。
もちろん人材紹介会社も利用はしていますが、なんとかなるかもしれません。ありがたい話です。


さて、本題。
前回LinuxでSteamをプレイできる話を書いたのですが、不満はゲームの数。Macも持っているのですが、Windowsにはかないません。
こんな状況で色々不満に思いつつも、わざわざWindows用のPC買うのもなぁと思いつつ、仮想PCは重そうだしと悶々としていたところ、Wineでプレイ出来ないかなと思いつき早速実行したところ、ひとまず1タイトルだけですがプレイ出来たので忘れないうちに、メモしておきます。


ゲームタイトルはSimCity 4 Deluxe Edition
元々ニコニコ動画での実況動画を見ていて前から欲しいとは思っていたタイトルでした。最近になって、Steamでも購入できると知ったのですが、Windows専用なので諦めていたタイトルですが、つい先日(4月の末ぐらい?)に安売りしていたので勢いで購入しました。5ドルくらいだったので、つい...。

環境設定

さて、環境は前回と同じくLinux Mint14です。


まずはwineをインストールします。

$ sudo apt-get install wine
$ wine --version
wine-1.4.1

いつのまにやらバージョンは1.4.1にまでアップしていました。
最新版にしたい人は、Wineのサイトに行けばapt-lineがあったはず。今回はひとまず使っていません。


設定ですが、色々苦労しました。
まず、"Configure Wine"から"画面"に行きます。
"ウィンドウ マネージャがウィンドウを制御するのを許可する"以外のチェックをはずします。

$ wine regedit


してから次のレジストリを追加します。

[HKEY_CURRENT_USER\Software\Wine\Direct3D]
"VideoMemorySize"="NNN"
[HKEY_CURRENT_USER\Software\Wine\Direct3D]
"DirectDrawRenderer"=""

DirectXを使う人はWinetricksを起動してからインストールしてください。

Steamのインストール

次は、Windows用のSteamをインストールします。
まず、"SteamInstall.msi"をダウンロードしてきたら、インストールです。

$ wine msiexec /i SteamInstall.msi


ゲームは事前に購入していますので、SteamからSimCity4をインストールします。

起動

あとは起動です。

$ cd .wine/drive_c/Program Files/Steam/SteamApps/common/SimCity 4 Deluxe/Apps
$ WINEDEBUG=-all wine SimCity\ 4.exe -intro:off -d:opengl -CPUCount:1 -CustomResolution:enabled -r1680x1050x32


オプションの意味

  • "-intro:off"は起動時のゲームメーカの表示部分がなくなるようです。これ、コンシューマでもありますがウザイのでスキップしたいですね。なんか契約関係が絡んでいるとか聞いたことありますが、ユーザからしたら知らんがなと...。
  • "1680x1050"は画面サイズです。予め調べておいてください。
  • "-d:opengl"は"-d:DirectX"や"-d:software"などがありますが、自分の場合は"software"以外なら問題なく起動できました。
  • "CPUCount:1"はそのままですが、これ確かSimCity4が使うCPUが1つだからつけているのだと思います。結構古いゲームなので、確かマルチプロセス/マルチスレッドは対応していないとか実況動画で聞きました。


まだ、チュートリアルしかしていませんが問題なくプレイできました。
Wineすごい!


参考サイトは本家の掲示板。ゲームごとに情報がありますので便利です。
http://appdb.winehq.org/objectManager.php?sClass=version&iId=10515
Wineですべてのゲームが動作するとは思いませんが、本家で動作報告があればかなり期待はできます。
ただし、保証は当然できないのでおすすめできる方法ではないのですが、こういう方法もあるよということで。