Wineのフォントを設定したらアプリが起動できない問題が治った

まずはWineの本家のaptを使っていると最近発生しだした問題。

  • アプリを起動したらすぐに終了するようになった。
  • アプリを動かしていると何が原因かは不明だけど、アクセスしてはいけないメモリにアクセスするらしく死ぬようになった。


フリーのWindows用ゲームを動かしているだけなのでまあ良いかと思って放っておいてた。
それとは別問題でボタンとかに使われる文字が見えない問題が有って(これは前からあった問題)、こっちを直そうとしいたら上記の問題が治ったのでメモ。


おそらく文字が見えないのはフォントが無いからだと踏んで、こんな感じでシンボリックリンクを張ってみる
Windowsからフォントを持ってきても動くらしいけどライセンス関係があやしいので止めておく。

$ ls -l
合計 0
lrwxrwxrwx 1 yasusi yasusi 39 2009-09-05 01:16 mona.ttf -> /usr/share/fonts/truetype/mona/mona.ttf
lrwxrwxrwx 1 yasusi yasusi 44 2009-09-05 01:19 msgothic.ttc -> /usr/share/fonts/truetype/wqy/wqy-zenhei.ttc
lrwxrwxrwx 1 yasusi yasusi 44 2009-09-05 01:19 msmincho.ttc -> /usr/share/fonts/truetype/wqy/wqy-zenhei.ttc
$ pwd
~/.wine/drive_c/windows/Fonts

どうやら拡張子は同じものじゃないとダメらしい。


で設定ファイルを直接いじって、存在しないフォントの置換を行う。
~/.wine/user.reg

[Software\\Wine\\Fonts\\Replacements]
"MS Gothic"="Mona"
"MS Mincho"="Mona" 
"MS PGothic"="Mona"
"MS PMincho"="Mona"  
"MS UI Gothic"="Mona"
"MS ゴシック"="Mona"
"MS Pゴシック"="Mona"
"MS 明朝"="Mona"
"MS P明朝"="Mona"

ちなみに、日本語の部分は再度開くと文字化けするが気にしない。


~/.wine/drive_c/windows/notepad.exeを起動してフォントの設定を開く。
ここで上記に設定したフォントがリストに出て入ればOK。


で、この設定でも肝心の表示されない文字の問題はダメだったけど、起動できないアプリが起動できる様になった。
多分実行ファイルは直接フォントを指定していている作りじゃないかと思う。Windows上でフォントが無い場合はどう動くのかは知らないけど、Wineでは前のバージョンで動いていて最近動かなくなったということはフォントは用意しろという仕様に変わったんじゃないかと勝手に想像している。