pcettf

「pcettf」とは

NECから1987年に発売された家庭用ゲーム機「PCエンジン」のフォントを、WindowsのTrueTypeフォント(以下、「True Type Font」と表記します)として使うための、Windows用のツールです。
正確には、「PC Engine CD-ROM2 System」に内蔵されている全角フォントが対象です。
本ツールでは、システムカードのイメージデータからフォントデータを読み込みます。 イメージデータは各自で用意してください。
True Type Fontファイル(ttf)単体では公開していませんので、ご了承ください。

pcettfの特長は 別ページ にまとめました。

使用条件

本ツールで作成したTrue Type Fontファイルやフォントデータの公開や配布は禁止します。
また、システムカードのイメージデータの公開や配布も禁止です。 各自でイメージ化(吸い出し)をお願いします。
本ツールで作成したフォントの使用については、各自で楽しむのみとしてください。
本ツールおよびフォントを使用した結果について、作者は一切の責任を負いません。


必要なプログラム

True Type Fontファイルの作成には、本ツール以外に、以下のプログラムが必要です。
別途、ダウンロード、インストールをお願いします。

Potrace

本ツールで作成したビットマップファイル(pbm)をベクタファイル(svg)に変換するために使用します。
公式サイトの「Downloading and installing」→「Precompiled distributions」から、「Windows (32 bit)」 or 「Windows (64 bit)」をダウンロードしてください。
http://potrace.sourceforge.net/
インストーラはありませんので、任意のフォルダに展開してください。(例:C:\potrace-1.16.win32)

FontForge

本ツールで作成したビットマップファイル(bdf)や、Potraceで変換したベクタファイル(svg)から、True Type Fontファイル(ttf)を作成するために使用します。
公式サイトの「Download」→「Windows」→「Confirm and Download」から、Windows版のインストーラをダウンロードしてください。
https://fontforge.org/
インストーラを実行して、任意のフォルダにインストールしてください。(例:C:\Program Files (x86)\FontForgeBuilds)

WinTTX

Potraceで作成したTrue Type Fontファイル(ttf)の文字幅を修正するために使用します。 (これはFontForgeのバグのようです)
「RT's Free Soft」にある「WinTTX-2.4-git-behdad-20140317-11580c55bb.7z」をダウンロードしてください。
http://rtfreesoft.blogspot.com/search/label/ttx
アーカイブ中のttx.exeを任意のフォルダに展開してください。(例:C:\winttx-2.4)
注意:ウィルス対策ソフトの誤検出で、ttx.exeが削除されることがあります。


使用方法

本ツールのアーカイブファイルをダウンロードして、任意のフォルダに展開してください。(例:C:\pcettf)
注意:ウィルス対策ソフトの誤検出で、pcettf.exeが削除されることがあります。

本ツールはコンソールアプリケーションですので、実行はコマンドプロンプトから行います。 実行ファイルは「pcettf.exe」です。

設定ファイル

展開したフォルダに含まれる「pcettf.json」が設定ファイルです。
実行時に必要ですので、事前にメモ帳やテキストエディタ等で開き、必要な項目を編集してください。

最低限修正が必要なのは、batchグループの「potraceExe」「fontForgeExe」「ttxExe」です。
これらには、インストールしたPotrace、FontForge、WinTTXの各実行ファイルのパスをそれぞれ設定してください。
なお、jsonファイルではパスのフォルダ区切り文字の「\」がそのまま使用できませんので、「\\」と記述するか、「\」の代わりに「/」を使用してください。
例:C:\\winttx-2.4\\ttx または C:/winttx-2.4/ttx

それ以外の項目は、通常は変更の必要はありません。各ファイルのパスを変更したい場合などに、必要に応じて変更してください。

シンプルな実行方法

コマンドプロンプトを開き、pcettfを展開したフォルダに移動して、以下のように実行してください。

pcettf -font_type フォントの種類 -image イメージファイル名 -batch

-font_typeには、作成するフォントの種類を「12」「12a8」「16」「16k12」のいずれかで指定します。

12
「12ドットフォント」を作成します。全角文字は12×12ドット、半角文字は6×12ドットになります。
12a8
「12ドットフォント改」を作成します。全角文字は12×12ドット、半角文字は8×12ドットになります。
16
「16ドットフォント」を作成します。全角文字は16×16ドット、半角文字は8×16ドットになります。
16k12
「16×12ドットフォント」を作成します。フォントのサイズは16×12ドットですが、デザインは「12ドットフォント改」を使用したフォントです。

-imageには、システムカードのイメージデータのファイル名を指定します。
対応しているシステムカードは、以下の4種類です。 いずれも、ファイルサイズは262144バイト(2Mビット)となっているはずです。
海外版(Turbo Grafx 16用)やGAMES EXPRESS版(HACKER CD CARD)等、それ以外のシステムカードは動作対象外です。

なお、システムカードのバージョンによって、フォントのデザイン(字体)が異なります。

-batchを指定すると、pcettfから「Potrace」「FontForge」「WinTTX」の各プログラムを実行して、完成版のTrue Type Fontファイルを自動的に作成します。
指定しない場合は、ビットマップファイル(bdf、pbm)のみ作成して終了します。True Type Fontファイルの作成には、各プログラムを手動で実行する必要があります。

実行に成功すると、pcettfを展開したフォルダ(カレントディレクトリ)にTrue Type Fontファイルが作成されます。
ファイル名は、「-font_type」の指定とシステムカードのバージョンによって自動的に付けられますが、pcettfのコマンドラインオプション「-ttf フォントファイル名」で指定することも出来ます。

最後に、エクスプローラでこのフォントファイルを右クリックして「インストール」を実行してください。
フォントファイルをWindows\Fontsフォルダにドラッグ&ドロップすることでもインストール出来ます。

コマンドラインオプション

-font_type フォントの種類
作成するフォントの種類を「12」「12a8」「16」「16k12」のいずれかで指定します。
-image イメージファイル名
システムカードのイメージデータのファイル名を指定します。(フルパス可)
-config 設定ファイル名
設定ファイル(pcettf.json)のファイル名を指定します。(フルパス可)
デフォルトでは、カレントディレクトリの「pcettf.json」を使用します。
-batch
指定すると、「Potrace」「FontForge」「WinTTX」の各プログラムを実行して、完成版のTrue Type Fontファイルを自動的に作成します。
指定しない場合は、ビットマップファイル(bdf、pbm)のみ作成して終了します。
-ttf フォントファイル名
作成するTrue Type Fontファイルのファイル名を指定します。(フルパス可)
-batchオプション指定時のみ有効です。
デフォルトでは、「-font_type」の指定とシステムカードのバージョンによって、自動的に付けられます。(例:pcengine_12_V1.0.ttf)
-verbose
指定すると、デバッグ用の情報を出力します。デフォルトでは出力しません。

手動でのフォント作成方法

本ツールのコマンドラインオプションで「-batch」を指定しない場合、True Type Fontファイルを作成するためには、「Potrace」「FontForge」「WinTTX」の各プログラムを手動で実行する必要があります。
ここでは、その手順について説明します。
なお、pcettfの設定ファイル(pcettf.json)で、各プログラムで使用したり出力するファイルやフォルダの名前やパスを変更することが可能です。

(1) pcettf実行

コマンドプロンプトを開き、cdコマンドでpcettfを展開したフォルダに移動して、以下のように実行します。
オプションの詳細は、「使用方法」の「シンプルな実行方法」を参照してください。

pcettf -font_type フォントの種類 -image イメージファイル名

実行に成功すると、pcettfを展開したフォルダ(カレントディレクトリ)に、ビットマップファイル「pcettf.bdf」とFontForge用スクリプトファイル「pcettf.pe」が作成されます。
また、pbmフォルダに、1文字ごとにビットマップファイル(u*.pbm)が作成されます。

(2) Potrace実行

コマンドプロンプトを開き、cdコマンドでpcettfを展開したフォルダに移動して、以下のように実行します。
potraceのパスは、Potraceをインストールした環境に合わせて変更してください。

C:\potrace-1.16.win32\potrace -s -z black -a -1 pbm\*.pbm

実行すると、pbmフォルダに、1文字ごとにベクタファイル(u*.svg)が作成されます。

(3) FontForge実行

コマンドプロンプトを開き、cdコマンドでpcettfを展開したフォルダに移動して、以下のように実行します。
potraceのパスは、Potraceをインストールした環境に合わせて変更してください。

"C:\Program Files (x86)\FontForgeBuilds\bin\fontforge" -script pcettf.pe 1.0

処理が完了すると、pcettfを展開したフォルダ(カレントディレクトリ)に、FontForge用プロジェクトファイル「pcettf.sfd」と作業用フォントファイル「pcettf.ttf」が作成されます。

フォントファイルのフォント名やファミリー名は、「pcettf.pe」ファイル内の「SetFontNames」コマンド(built in procedure)で設定しています。必要に応じて変更してください。
また、コマンドラインの引数に指定している「1.0」がフォントファイルのバージョンになります。 バージョンには任意の文字列を指定可能です。

(4) WinTTX実行

コマンドプロンプトを開き、cdコマンドでpcettfを展開したフォルダに移動して、以下のように実行します。
ttxのパスは、WinTTXをインストールした環境に合わせて変更してください。

C:\winttx-2.4\ttx -t OS/2 -o pcettf.ttx pcettf.ttf

pcettfを展開したフォルダ(カレントディレクトリ)に、フォント情報が書かれた「pcettf.ttx」というファイルが作成されます。

次に、メモ帳やテキストエディタ等で「pcettf.ttx」を開き、以下のような行を探します。

<xAvgCharWidth value="1010"/>

このxAvgCharWidth要素のvalue属性の値を「1024」に変更して、ファイルを保存してください。

再度、コマンドプロンプトから以下のように実行します。
-oオプションで指定している「pcengine_12_V1.0.ttf」が完成版のTrue Type Fontファイルです。任意のファイル名を指定可能です。

C:\winttx-2.4\ttx -m pcettf.ttf -o pcengine_12_V1.0.ttf pcettf.ttx

最後に、完成版のTrue Type Fontファイルをエクスプローラでインストールします。


ダウンロード

pcettf-0.1.zip [2021/08/16]

golang初心者で恥ずかしいのですが、ソースファイルも添付しています。
未確認ですが、goの実行環境があれば、Windows以外でも実行出来るかもしれません。


謝辞

True Type Fontの作成方法は、主に以下の記事と配布プログラムを参考にしました。
PotraceやFontForgeについて、ほぼ同様の実行方法になっています。
特に「createttf.pe」「template.sfd」については、大部分を流用させていただいています。

PC-98のフォントをTrueTypeフォントに変換する
https://hikaen2.hatenablog.com/entry/20130104/1357304715
PC-9800 - ビットマップTTFフォント
https://github.com/hikaen2/ttf-pc9800

WinTTXについては、以下の記事を参考にしました。
余談ですが、本ツールはWindows用ということでWinTTXを使用していますが、Windows以外ではオリジナルの fonttools が使用出来そうです。

FontForgeで生成した日本語TrueTypeフォント文字幅広すぎ対策
https://itouhiro.hatenablog.com/entry/20140910/font

本ツールで使用しているフォントファイルは以下です。

東雲フォント
http://openlab.ring.gr.jp/efont/shinonome/
shinonome-0.9.11p1.tar.bz2
(shnm6x12a / shnm8x16a)

8×12 ドット日本語フォント「k8x12」
https://littlelimit.net/k8x12.htm
k8x12_bdf_2021-05-05.zip
(k8x12)

本ツールで使用している変換テーブルは以下です。

cp932 to Unicode table
https://www.unicode.org/Public/MAPPINGS/VENDORS/MICSFT/WINDOWS/CP932.TXT


連絡先

<taicho@taicho.jp> / @taicho_jp