Alternative Bitmap Font Tools

If you're looking for something other than Playdate SDK's Font Tool.app or Caps, then here are some candidates:

Complete Font to Image Solution

Bits'n'Picas
https://github.com/kreativekorp/bitsnpicas/tree/master/downloads
Superb font editor, cross-platform, written in Java. Supports many legacy font import/export formats. I have an unmerged fork that adds Playdate-compatible export here.

Font to Intermediary (BDF)

BDF = Bitmap Distribution Format, a simple text file with the font data in it.

FontForge
https://fontforge.org
Open-Source cross platform font editor. Supports bitmap creation, import of any of its supported formats, and export as BDF.

  1. Open TTF file
  2. Element > Bitmap Strikes Available... > (enter "pixel size"; the height of font in pixels)
  3. File > Generate Fonts... > Generate > OK

Shell
Tool to convert OTF/TTF to intermediate BDF.

  • otf2bdf is part of freetype, so you'll need to install that (I used brew install freetype).
    • eg. otf2bdf -p 12 font.ttf -o font.bdf

Font to Intermediary (TTF, Other)

Fontstruct
https://www.fontstruct.com
Web-based tool that allows easy pixelling of bitmap fonts with a well-proven workflow. Also features a gallery of open-source bitmap fonts. Downloads as TTF (and Glyphs format for your own fonts).

BitFontMaker
http://www.pentacom.jp/pentacom/bitfontmaker2/
Nice and easy, web-based TTF generation. Less feature rich than Fontstruct, but perhaps easier to jump in and use.

Intermediary to Image (BMP)

Shell
Tool to convert intermediate BDF into BMP.

Font2BDF
https://devforum.play.date/t/font-data-from-bdf/485

Note

Finally you'll need to use Font Tool.app or Caps to load the resulting image and generate the .fnt file for use with Playdate SDK.

Others?

Does anybody else know of some other good bitmap font tools?

10 Likes

Creating TTF from Playdate Font Tool PNG

It’s possible to convert the Playdate Font Tool PNG bitmap font into a TTF outline font.

BUT for proportional fonts there’s a ton of manual work involved to set the widths of the individual characters, so it’s not something I would recommend doing manually. Though it’s quick and easy with Mono fonts!

Required: BitsNPicas app download

Step 1: Opening PNG

  1. Open BitsNPicas
  2. File > Open
  3. Select your PNG, eg. Asheville-Mono-Light-24-px-table-32-32.png
  4. Enter font Char Width and Char Height:
    • see PNG, file name: final number in filename
    • and FNT, file contents: width largest character
    • I’m picking 2 pixels as default tracking; you should be able adjust this when typing in an app
    • height = 32
    • width = 14 + 2 (tracking) = 16
    • spacing = 32 - 14 - 2 (tracking) = 16
    • ascent (adjustment for height of tallest letter) = 0
  5. Click: Create

Moving Glyphs

  1. Click: Characters in Font
  2. Select all Characters (here from space to …)
  3. Edit > Move Glyphs…
  4. Choose: By Code Point
  5. Enter: 32 (this is the value of the space character)
  6. Click: OK

3

Setting Font Info

  1. Font Family & Style Name: Asheville Mono Light
  2. Font Family: Asheville
  3. Font Style Name: Mono Light
  4. PostScript Name: Asheville-Mono-Light
  5. Click: OK

Note: You could probably add font size in there, somewhere, but I chose not to as there’s only one size of the Asheville Mono Light font.

Generating TTF

  1. File > Export
  2. Keep default settings
  3. Click: Export

Testing in macOS Font Book

  1. Double click TTF to open in Font Book app
  2. Click: Install
  3. Use the font in other apps!

Files

2 Likes

This is excellent, Matt! Thanks so much for the step-by-step! My first question is how do I open Bits n’ Picas? I’ve downloaded it and extracted the folder, but I’m looking for an executable file. I have a Windows machine.

1 Like

OK, on Windows if you download the .jar file you should be able to double click it to run it, or choose Open With… Java.

Make sure you have Java installed: https://www.java.com/en/download/help/download_options.html

1 Like

Awesome info in this thread. But for this, to get otf2bdf, I had to do brew install otf2bdf

This should be: bdf2bmp -s 0 font.bdf font-table-9-12.bmp

(Sorry if I'm reviving an old thread – but this thread has great info and I didn't see any new info anywhere else – and figured I'd pass on these updates to the info here. I wonder if it's also worth mentioning that Font Tool.app isn't a thing anymore? If I'm correct in understanding that.)

1 Like

Thanks for those catches!

Correct Font Tool.app no longer exists, it was replaced by Caps.

1 Like

Follow up question... once I have my .bmp .... how do I bring that into Caps (or otherwise make a .fnt file?)

See this post: Caps suggestions - #4 by shaun (edit: corrected link)

I can't try this right now, but it was true a while ago.

@matt, I'm curious if you got that new QuanPixel font properly converted from .bdf to .fnt ? I used this thread:

And got the ruby script to convert the example adobe font fine, but using the QuanPixel .bdf as an input threw an error:

./bdf2fnt.rb:148:in `encode_func': unknown charset (RuntimeError)
from ./bdf2fnt.rb:169:in `check_code'
from ./bdf2fnt.rb:43:in `readfile'
from ./bdf2fnt.rb:277:in `block in <main>'
from ./bdf2fnt.rb:276:in `each'
from ./bdf2fnt.rb:276:in `<main>'

I guess maybe I should be asking the OP of that script, but just curious if you got QuanPixel converted properly in some other way?

I'd never heard of QuanPixel as so I googled it and see it used to be called Galmuri, which I have heard of!

When I found the Galmuri font on itch I told the dev preview people about it. Shaun Inman did some digging and found that the Galmuri font is based on the Nintendo DS font, so I'm not sure how the can claim OTF or distribute it legally.

To play with that font it is best to load the original .kbits source file into Bits'n'Picas, here's my old fork of that has Playdate font PNG export and supports only the ASCII range of characters (you need to create the associated .fnt file to go with the .png).

I've kicked off some discussion of adding Playdate support to Bits'n'Picas: Interest in adding Playdate font support? · Issue #23 · kreativekorp/bitsnpicas · GitHub

1 Like

Hmmm... this is very good to know. I'm not sure it's worth playing with the fire that is Nintendo litigation...

Hello! I'm glad that my work has been mentioned here.

I think Galmuri isn't much different from these font projects reprinting classic bitmap fonts: Press Start 2P, Fixedsys Excelsior and IBM BIOS Fonts.

And, as far as I know, the design of typefaces in general is not protected by law. Furthermore, Galmuri is not quite the same as Nintendo's original, some other parts exist, and contains a lot more characters.

If you don't want to even talk about this, it's best to avoid using Galmuri and its derivations.

(If my words are to be taken offensively, I will inform you that I have no intention of doing so. This is because of my English skills.)

3 Likes

Thanks for replying!

My issue is that I would be scared of Nintendo legal action. So I'll use different fonts.

But what you've done with this font is really great work.