PC-98のフォントをTrueTypeフォントに変換する

NEC PC-9800(PC-9801, PC-9821) のフォントをTrueTypeフォントに変換するツールを作りました:https://github.com/hikaen2/ttf-pc9800




特長

  • アウトラインフォントを生成する

  • PC-9800にない文字を東雲フォントで補う(例:∈∋⊆⊇⊂⊃∧∨⇒⇔∀∃⌒∂∇≪≫∽∝∬ʼn♯♭♪†‡¶◯尭槙遥瑶凜熙)
  • FONT.ROM - PC-9800のフォントROMのイメージが要ります。Neko Project II の GETBIOS などであらかじめ吸い出しておいてください

手順

プロジェクトをクローンし、その中の data ディレクトリに FONT.ROM という名前でフォントROMのイメージを配置して、make してください。
make に成功すると dist ディレクトリの中に pc-9800.ttf が生成されます。

Debian / Ubuntu
$ sudo apt install git make ruby fontforge-nox potrace bdfresize
$ git clone https://github.com/hikaen2/ttf-pc9800.git
$ cd ttf-pc9800
$ cp /path/to/FONT.ROM data/FONT.ROM  # ←あらかじめ吸い出しておいたフォントROM(パスは適宜読み替えてください)を配置する
$ make                                # ←makeする。fontforgeが警告を吐きますが問題ありません
Cygwin

1. Cygwinをインストールする。
デフォルトのパッケージの他に以下のパッケージをインストールする。
git, fontforge, potrace, gcc-core, make, ruby

2. Cygwin Terminalで

  # ↓bdfresizeをインストールする
$ curl -O http://openlab.ring.gr.jp/efont/dist/tools/bdfresize/bdfresize-1.5.tar.gz
$ tar zxf bdfresize-1.5.tar.gz
$ cd bdfresize-1.5
$ sed -i '/*malloc();/d' charresize.c    # ←これをしないとコンパイルエラーになる(Debianのパッチを参考にしました)
$ ./configure
$ make
$ make install
$ cd ..

  # ↓フォントをビルドする
$ git clone https://github.com/hikaen2/ttf-pc9800
$ cd ttf-pc9800
$ cp /path/to/FONT.ROM data/FONT.ROM     # ←あらかじめ吸い出しておいたフォントROM(パスは適宜読み替えてください)を配置する
$ make                                   # ←makeする。fontforgeが警告を吐きますが問題ありません

おまけ. 円記号の割り当てについて

生成したフォントのU+005C(REVERSE SOLIDUS)には円記号ではなくバックスラッシュを割り当てています。円記号はU+00A5(YEN SIGN)に割り当てています。つまりUnicode的に正しい割り当てになっています。
もし U+005C に円記号を割り当てたければ(CP932的割り当て)、data/EXT.TXT の
0x00FC 0x005C

0x005C 0x005C
に書き換えてください。
例:

sed -i 's/0x00FC\t0x005C/0x005C\t0x005C/' data/EXT.TXT

追記

2016年2月11日
Windows 10 + Cygwin 2.4 (32bit)でも作れました。64bitのCygwinではうまくいきませんでした。

2023年10月15日
Windows 10 + Cygwin (64bit)でも作れました