以前、「インテリジェントブロックのLCDに日本語を表示する」のを試みて、途中で放ってしまっていたのですが、3年ぶりに再挑戦してみました。
前回はNBCでしたが、今回はNXCです。
sjistest.zipをダウンロード(動作無保証、フリーソフト)
▲パソコンでフォントファイルを作成します。
8x8pixelという小さいサイズで、第一次水準漢字と全角カタカナひらがな等、約4000字を含んだフォントデータです。コードはシフトJISです。
パソコン用のフォントから作る方法とelisaフォントから作る方法の2種類があります。
パソコン用のフォントから作る場合にはfontmake2.hsp、
elisaフォントから作る場合にはfontmake3.hspを実行します(ELISA100.FNTが必要)。
最終的に「font8x8.fnt」というフォントファイルが出来上がります。
これをNeXTtool.exeなどを使ってインテリジェントブロックNXTに転送します。
フォントファイルのサイズは約32Kバイト。全体の1/4のフラッシュを消費してしまいます。
▲fontview2.nxcを実行した様子。
1文字あたり8x8pixelのフォントを9pixel間隔で描画しています。
結構、複雑な文字はつぶれてしまいます。
▲sjistest.nxcを実行した様子です。読みにくいので2倍の大きさ(16pixel)で描画しています。
当たり前ですが、Truetypeから変換したフォントよりもElisaフォントが圧倒的に読みやすいです。
1文字ごとにファイルの先頭から空読みしているので、表示スピードがものすごい遅いです。ファームウェアの1.27から「FileSeek」という命令ができたらしいので、それを使ったら読み込みを高速化できるかもしれません。