How I make/adapt fonts for Bitsy


  1. Choose a font or make one in a graphics editor (I use MS Paint or Krita)
    gylph map of the PICO-8 font; generated by RhythmnLynx
  2. Generate a character map with the font's maximum height and width (add one to the width for letter spacing) using Fontsy
  3. Draw the characters on the map in Fontsy, or transfer the characters in the graphics editor and upload the finished map into Fontsy
  4. Review the resulting image to ensure accuracy; make corrections as needed
  5. Download the data in .bitsyfont format
  6. Test the font in Bitsy by:
    • uploading the file as a custom font through the settings panel (or download panel in Bitsy for Me); OR
    • open the game data panel, show font data, paste font data under current game data, scroll to the top and insert the text "DEFAULT_FONT font_name" on a new line between "! ROOM_FORMAT 1" and "PAL #" (the first palette)
  7. Make corrections as needed (and make sure to transfer them to the .bitsyfont file!)

If it's a mono-spaced font, it's done! Good work!

If it's a variable-width font, there's more to be done!

  1. Copy the data and paste it in a spreadsheet program (I use Google Sheets)

  2. A
    1FONT font_name
    2SIZE #W #H (maximum character width and height)
    3CHAR ##
    4000000
    ......

    it should look something like this
  3. Apply spreadsheet magic

    ABCD
    1FONTfont_name
    =JOIN(" ", A1, B1)
    2SIZE#W #H

    =JOIN(" ", A2, B2)
    3CHAR 32=A3
    =IF(REGEXMATCH(A3, "CHAR"), IF(REGEXMATCH(A3, "CHAR_SIZE"), JOIN(" ", A3:C3), A3), B3)
    4*CHAR_SIZE#W#H=IF(REGEXMATCH(A4, "CHAR"), IF(REGEXMATCH(A4, "CHAR_SIZE"), JOIN(" ", A4:C4), A4), B4)
    [CR]**000000000=RIGHT(A[CR], VLOOKUP("CHAR_SIZE", A([CR] - (#H + 1) : B([CR] - 1), 2, FALSE))
    =IF(REGEXMATCH(A[CR], "CHAR"), IF(REGEXMATCH(A[CR], "CHAR_SIZE"), JOIN(" ", A[CR]:C[CR]), A[CR]), B[CR])
  4. *Insert row below every instance of "CHAR ##"
    **[CR]: current row

  5. Go through the sheet and adjust the character width in column B as needed
  6. Filter out rows indicating a character has the default font size (not required, but I do it to decrease the file size)
  7. Copy the final column and paste it in a text editor (I use Notepad)
  8. Save the file as font_name.bitsyfont (you may need to turn on the option to view file name extensions)
  9. Test the font in Bitsy and make corrections as needed

and ta-da~! That's how I make the fonts. :D

If you have any questions or suggestions, or would like me to go into more detail, please leave a comment! I know I have blind spots where I assume familiarity with the programs and/or the process, and I'd like to make this guide more accessible.

Thank you for your support!

Get custom bitsy fonts

Download NowName your own price

Leave a comment

Log in with itch.io to leave a comment.