Kohan2 が、日本語ウィンドウズxpで起動しなくなった時の対処法
今回、紹介するのは、Kohan 2 : Kings of War という名作RTSが、ある日突然起動しなくなった、という時の対処法です。もっとエレガントな方法があるかも知れませんが、取り敢えずは、これで。
どれくらいのニーズがあるのか、全然分からんけど、サクッと検索した限り、他ではこの情報が公開されていないみたいなので、せっかくだから晒しときます。原因が分かり辛く、対処法が思い付くまで、時間が掛かったしね。
まあ、とまれ。昨日、ひっじょーに久し振りにKohan2を遊びたくなったので、起動してみたのですが、なんか、見知らぬエラーメッセージが出て、起動途中で強制終了してしまいます。ちなみに、エラーメッセージは、
「Processing non-unicode truetype font」
(意訳:フォントを準備しようとしたけど、ユニコード対応でないので、駄目でした)
というもの。
ネットで検索した結果を元に、Kohan2の起動ログを確認してみたところ、なんか日本語を表示するフォントとして、MSゴシックを読み込む際に、上記のエラーが発生しています。なお、ネット上で同じ症状を訴えている人は2名いましたが、両名ともVista環境でした。(ちなみに、非日本語圏の人)
言うまでもなく、MSゴシックはOS標準のフォントであり、普通に考えてユニコード非対応という事は有り得ません (と言うか、OSレベルでユニコード対応してる筈)。そもそも、昔は問題なく起動してたのに、突然起動しないってのもヘンです。フォントキャッシュが壊れている、という、昔よくあった不都合でもない。
とまれ、昔は正常に起動していた、って事は、Microsoft Update経由でxpをアップデートした際に、フォントの扱いを変えてしまうアップデートを適用してしまったんだろうな。……と、ここまで考えて、ようやく一つ、原因が思い当たりました。で、やっぱりそれが原因でした。
その原因とは、「JISX2004対応フォントパッケージ」。これは、xpに標準で添付されているMSゴシックとMS明朝系のフォントを、最新の日本語文字コードセットであるJISX2004に対応したものに置き換えるパッケージです (註:元のフォントファイルも、ファイル名を変更した上で、残されます)。なお、JISX2004とは、分かり易く言うと、より多くの文字をコンピュータ上で扱えるように、4000文字以上が新規に追加された規格です。
細かい理屈は後回しにするとして、xpの場合は、要するに、この「JISX2004対応フォントパッケージ」をアンインストールすれば、再びKohan2が正常に起動するようになります。「コントロールパネル > アプリケーションの追加と削除」を開いて、ウィンドウ上部の「更新プログラム」のチェックボックスをオンにすると、リストの中に、このフォントパッケージが表示されます。これを削除してリブートすれば、オッケ。
では、Vista (及び' Windows 7)はどうか?Vistaを所持していないので予測ですが、たぶん大体同じようにして、起動するように出来ます。
Vista以降では、MSゴシックは最初からJISX2004対応のものがインストールされています。幸い、これを旧来のものにダウングレードするためのパッケージがマイクロソフトから公開されているので、これをインストールします。
Windows Vista および Windows Server 2008 向け JIS90 互換 MS ゴシック・明朝フォントパッケージについて
運が良ければ、これだけでKohan2が起動してくれるでしょう。但し、ここに不安定要素が一つ。起動ログから判断すると、Kohan2は、準備するべきフォントを、OSに問い合わせているようなのです。なので、OSの標準フォントを「メイリオ」に設定されていると (これがデフォルト?)、上手く行かないかも。この場合、レジストリを手作業で書き換える必要があるかと思います。
おまけ。原因をより深く探ってみる
さて、ここからはオマケです。この症状が出た原因を、もちっと深く考察してみよう、というコーナー。逆アセンブリしていない以上、予測の範疇を出られないので、あんまり意味が無い気もしますが。なんとなく興味がある人はどうぞー。
前述のように、Kohan2は「これ、Unicodeのフォントじゃないよ!!」等と言い張っておいでですが、実のところ、JISX2004対応フォントは、バリバリにUnicodeなフォントです。それまでのShift-JISなどと違い、内部コードもUnicode16で作ってるみたい。
ただ、JISX2004規格は、最新のUnicode規格をバリバリに利用しているようで、このへんにKohan2が対応出来ていないのが、原因なのでしょう。
ちなみに、Kohan2は、Unicodeの処理を、OSに任せず自前で行っているのは、間違いないと思われます。何故なら、最新のUnicode規格にしっかり対応しているVistaでも、このエラーが出ていますから。
なお、起動に成功した時のログを眺めていて、不可解な点を一つ発見。ログには、得られたフォントの名前が記録されるのですが、日本語フォントのところだけ、その名前が空白になってます。
うー。良く分からん。何が悪いんだ?
| 固定リンク
| コメント (0)
| トラックバック (0)
最近のコメント