ロシア語を文字化けなく綺麗に表示できた!





その他のスクリーンショット
戦車で交互に撃ち合う2Dネットゲーム「ポトリス」。日本やアメリカ等で遊べたんですが、現在、日本人がプレイできるのはロシア版のポトリスだけのようです。Linux上で動かすためにVMwareを使ってたんですが、Wineでより軽く速く動かすことができるようになった!ありがとうWine開発者。
Linux上でロシア語のロケールを設定するとWine内部で自動的にポトリスのロケールも適切なもの(CP1251)を選んでくれるようで、ロシア語(キリル文字)を文字化けなく綺麗に表示できます。日本語ロケールを選べば日本語表示&入力もできます。
公式のAppDBに登録しておきました。
WineHQ - Fortress2 Blue Forever 1.0.1
http://appdb.winehq.org/objectManager.php?sClass=version&iId=17995
以下、ロシア版ポトリスをWineで動かすための詳しい手順です。
Wineでロシア版ポトリスを動かす手順
- 1. Wineのインストール
- 2. オーディオの設定
- 3. フォントの設定
- 4. ロシア語ロケールの設定
- 5. ロシア版ポトリスのインストール
- 6. ロシア版ポトリスの実行
- (7. 動作安定化: レジストリーの編集)
- (8. MIDIの設定: DLLのオーバーライド等)
1. Wineのインストール
公式で開発版のwine-1.1.30をダウンロードしてmake、インストールしました。
特に必要となるようなconfigureオプションはありませんでした。
安定版(1.0.1)では動作しませんでした。
※wine-1.1.31〜wine-1.1.36でも動きました [2010-01-09]
2. オーディオの設定
ALSAで音が鳴るように設定します。
以下実行したコマンドです。
$ winecfg"Audio"タブを選択。

ダイアローグがポップアップ。OK"を押す。
過去に設定済みの場合はこのダイアログは出ない。

自分の環境では何もしなくても、この時点で自動的に以下のように設定された。

3. フォントの設定
ロシア語の表示にはlucon.ttf、日本語の表示にはmsgothic.ttcがいい感じです。
「$HOME/.wine/drive_c/windows/Fonts」以下にコピーまたはシンボリックリンクを作成。
※自分が持っているWindowsXPのフォントフォルダーから持ってきました。ライセンス違反かも?
以下実行したコマンドです。
$ cd $HOME/.wine/drive_c/windows/Fonts
$ ln -s $SOMEWHERE/lucon.ttf
$ ln -s $SOMEWHERE/msgothic.ttc
4. ロシア語ロケールの設定
ロシア語ロケール「ru_RU.UTF-8」を使えるようにします。/etc/locale.genを編集。「# ru_RU.UTF-8 UTF-8」のコメントを外しました。
※ロシア版ポトリス内部ではCP1251を使っているようです。SCIMでの入力のためにru_RU.CP1251でなくUTF-8を選びました。ru_RU.UTF-8の替わりにru_RU.CP1251でもru_RU.KOI8-Rでもロシア語を表示できました。Wineが自動的にCP1251に合わせてくれてる?
以下、その後に実行したコマンドです。
# locale-gen
Generating locales (this might take a while)...
(中略)
ru_RU.UTF-8... done
(中略)
done
Generation complete.
5. ロシア版ポトリスのインストール
公式からダウンロードしてきてWineで実行しました。
以下実行したコマンドです。
$ LANG=ru_RU.UTF-8 wine fotress2_v1.0.1_installer.exeДалее = Next、Отмена = Cancel

ライセンスに同意=上にチェックを入れてNextを押す。

インストール最後の画面。2つのチェックは外す。チェックしたままでも問題なくインストールは終わるがエラーダイアログが出る。

※翻訳してみた
Запустить Fortress2 Blue Forever
→ Run Fortress2 Blue Forever: インストーラー終了後ポトリスを起動する
Домашняя страница Fortress2 Blue Forever
→ Home Fortress2 Blue Forever: 公式webサイトをブラウザーで開く
Зарегистрироваться в игре Fortress2 Blue Forever
→ Sign in game Fortress2 Blue Forever: ログインアカウントを作成するサイトをブラウザーで開く
6. ロシア版ポトリスの実行
以下実行したコマンドです。
$ cd $HOME/.wine/drive_c/Program\ Files/Innova/Fortress2パッチサーバーに接続、ログインするサーバーを選択したのちログイン画面に到達します。
$ LANG=ru_RU.UTF-8 wine GAME.exe
後はアカウントとパスワードを入力するだけ!アカウントの取得方法はこちらのサイトが参考になりました。


以上でロシア版ポトリスが動きました!
(7. 動作安定化: レジストリーの編集)
手順1-6まででとりあえずロシア版ポトリスを起動できますが、自分の環境では安定動作しませんでした。
起動してしばらくたつと以下のエラーが連続して表示され画面の描画が止まってしまう…
fixme:d3d:stretch_rect_fbo >>>>>>>>>>>>>>>>> GL_INVALID_FRAMEBUFFER_OPERATION (0x506) from glBlitFramebuffer() @ device.c / 6434レジストリーを編集することで解決しました。
以下の2行のテキストファイル「pbuffer.reg」を適当な場所に作成します。
[HKEY_CURRENT_USER\Software\Wine\Direct3D]以下、その後に実行したコマンドです。
"OffScreenRenderingMode"="pbuffer"
$ wine regedit pbuffer.reg以上で安定動作するようになりました。
(8. MIDIの設定: DLLのオーバーライド等)
手順1-7までで安定動作しますが、MIDIのBGMが鳴りませんでした。音が鳴るのは効果音だけ。
DLLのオーバーライドとgm.dlsのコピーが必要でした。
※普段ミュージックOFFにしてポトリスする人にはこの設定が必要ないと思います。
1) ダウンロード
「DirectX 9.0c」に必要なDLL等が含まれています。
マイクロソフト公式から「DirectX 9.0c Redistributable」を探してダウンロードします。
2) DLLとgm.dlsのコピー
ダウンロードした「DirectX 9.0c Redistributable」を解凍してDLL等をコピーします。
解凍にはcabextractが使えました。
以下実行したコマンドです。
$ cabextract directx_9c_redist.exe -d /tmp/directx_9c_redist※「gm16.dls」は「gm.dls」へリネームが必要
$ cabextract /tmp/directx_9c_redist/DirectX.cab -d /tmp/DirectX
$ cd $HOME/.wine/drive_c/windows/system32
$ cp /tmp/DirectX/dm{band,ime,loader,synth,usic,style}.dll ./
$ cd drivers
$ cp /tmp/DirectX/gm16.dls ./gm.dls
3) DLLのオーバーライド
以下実行したコマンドです。
$ winecfg"Libraries"タブを開く。

6つのDLLをAddする。

以上でMIDIのBGMが鳴りました。
※wine-1.1.33以降はデフォルトで6つのDLL(dmband.dll, dmime.dll, dmloader.dll, dmstyle.dll, dmsynth.dll and dmusic.dll)を持っていますが、これらデフォルトbuilt-inのDLLではMIDIのBGMが鳴りませんでした。上記の方法と同様にして6つのDLLを入れ替える必要がありました。 [2009-12-20]
※wine-1.1.33以降、BGMをOFFにしていても6つのDLLをオーバーライドしないと"error:dsound:DSOUND_MixOne Fatal error. ..."が断続的に表示された後、"wine: Assertion failed at address ..."と表示されWineが止まることがありました。wine-1.1.33以降のビルトインDLLがエンバグしてる?とりあえず、6つのDLLを上記方法で入れ替えオーバーライドすると落ちなくなりました。 [2009-12-05]
まとめ
Linuxネイティアプリかのようにポトリスが動いて感動!W:ETとポトリスが主力になりそうです。
ロシア語が読み書きできるようになった!ロシア人ルームで「Привет(こんにちわ)」とコピペしたらbanされずロシア人と一緒に遊べました。ポトリス内掲示板の翻訳とかもできそう。挑戦してみたいと思います。
参考リンク
Wine公式
http://www.winehq.org/
Wine AppDB
http://appdb.winehq.org/
Wineで動くアプリケーションやその動かし方の情報が蓄積されてます。
ロシア版ポトリス公式
http://www.fortress2.ru/
ロシア版手順 -- ポトリス博物館
http://www.potohaku.com/russian/
アカウント取得方法等を解説されてます。
Wine上でMSGSの音を鳴らす -- 試験運用中なLinux備忘録
http://d.hatena.ne.jp/kakurasan/20080331/p1
MIDIを鳴らすための設定に関し参考にさせて頂きました。
環境
OS: Linux
debian-lenny (i386)
wine-1.1.30 (公式ソースmake)
wine-1.1.36 (公式ソースmake) ※更新しました [2010-01-09]
VGA: GeForce 9600GT
VGA driver: NVIDIA-Linux-x86-177.82-pkg1.run (公式バイナリー)
VGA driver: NVIDIA-Linux-x86-180.44-pkg1.run (公式バイナリー) ※更新しました [2009-10-24]
以下は以前に書いたポトリスに関する記事です。
ロシアでポトリス
ロシアでポトリス2