honeylab's blog

各種ハードウェアの改造、主にファミコンミニなどをやってます(ました)

title.fntを入れ替える

何かに付属するtitle.fntを日本語に対応させる方法です。
ほんとは何かのソースにコミットして、実際に使用しているタイトルから抽出しようかと思ったんですが、いまいち連携がうまくいかなかったので、とりあえずやり方と、最低限の日本語が入ったファイルを置いておいてみます。

http://honey.lovepop.jp/font/

 上から落としたファイルを解凍して、例のヤツのフォルダの中を探すとtitle.fntってのがあるので、それと入れ替えればいいです。

 

f:id:honeylab:20170116130743p:plain

上記の文字が入っています。
選定理由は、英数字、カタカナ、ひらがな、もともと日本版に入っているタイトルの文字、日本語タイトルリストから集計した上位100位ぐらいの感じです。
ちなみに最上位はこんな感じ。
文字の右側の数字が、タイトル1700本ぐらいで使われている漢字の個数です。

f:id:honeylab:20170116130904p:plain

すでにほとんど内蔵されてる気もしますね。

そこそこ入ってるので、どうしても出ないのはひらがなで対応するか、↓の方法で置き換えましょう。
自分用のツールは作りましたが、めんどいので置きません。頑張って作りましょう。

作成元のフォントはIPAフォントです。
IPAフォントを使ったデジタルコンテンツの作成と配布、で利用条件に合致してるはずです。
それ以外のフォントを使いたければ、下のほうにあるやり方で作ってみましょう。

 

FNTファイルの作り方

BMFont - AngelCode.com

こちらからBMFontをダウンロード→いろいろやり方を調べて文字セットを作る

FontSettingsはこんな感じ。これ以外でも入れば通ると思います。

f:id:honeylab:20170116130732p:plain

Export Settingはこの通りにしないとたぶんちゃんと出ません。

f:id:honeylab:20170116131137p:plain

 

これでSave Bitmap Fontで "title" とつけると、title.fnttitle_0.pngができます。
ここで、title_0に収まらない場合、title_1ができてしまいます。
この場合、データ化できませんので使う文字を減らし、[Visualization]を使って
preview:1/1 と表示されるように調整しましょう。

さて、title.fntとtitle_0.pngができましたが、このtitle.fntはそのままではだめです。
例のヤツのフォントファイルは。

 

0x00 : 必ず 0x01

0x01 - 0x04 : 元のtitle.fntのサイズ (LSB 32bit)

0x05 - 0x08 : title.png のサイズ (LSB 32bit)

0x09 - xxxx 元のtitle.fntの実データ

xxxx- yyyy 元のpngの実データ

zzzz : 最終バイト必ず0

の構造になります。

このようにファイルをバイナリエディタかなんかで作るか、適当にツールを作ってpackしましょう。

出来上がったファイルを、最初のtitle.fntをは別のフォルダに title.fnt として保存しておきます。
このファイルを例のヤツのフォルダの中にある title.fnt に上書きします。
(前のは適当に取っておきましょう)

これでUse custom font してる状態でSyncすれば生成したfntが使えます。
fntファイルの作成に失敗した場合起動しなくなるので、とりあえず元のtitle.fntに戻しつつ、どこが間違ってるかを確認しましょう。
上に置いてあるファイルを参考にしてもいいかもしれません。

あと、このページは適当に書きなぐっているので、もっと詳しくやりたい人は
わかる人に聞いてみるか、誰かがわかるサイトを作ってくれるまで待ちましょう。

まぁ、全然調べてないのでもしかしたらとっくに本家が対応してたりして(わかんない