Skip to content
BossCrafty edited this page Nov 8, 2023 · 2 revisions

Every font used in-game is saved in the Fonts directory. Each font is represented by two files:

  • The .png file contains each letter's appearance.
  • The .yml file contains each letter's width in pixels

0: 2
1: 2
2: 3
3: 2
4: 5
5: 9
6: 7
7: 2
8: 3
etc, etc...
  • 0.png is the main font
  • 1.png is the Mr. Saturn font
  • 2.png is the flyover/coffee break font
  • 3.png is used in the HP/PP name cards
  • 4.png is used at the tops of certain windows (for example, the windows in battle display character names)
  • credits.png is used in the end credits (it doesn't have a .yml file because it's monospace)

Adding New Characters

You may notice that there are 32 blank characters at the end of each font (excluding the credits font). This is because CoilSnake has expanded the fonts for you; you now have access to 32 more characters than EarthBound originally supported in each font. This feature should prove invaluable to you if you are writing the text of your hack in a language with more letters than in the English alphabet.

Since CoilSnake doesn't know what kind of letters or symbols you're going to be using these new characters for, you'll have to use them in CCScript and CoilSnake by specifying their hexidecimal values. The new characters go from 0xB0 to 0xCF. To use these special values in your text, simply put them between brackets like a control code.

For example, let's say you want your new game's main character to be composed of the first five of the 32 extra letters. In dont_care_names.yml, you would specify his default name like this:

0:
  Name 1: [B0][B1][B2][B3][B4]
  Name 2: Alec
  Name 3: Roger
  Name 4: Will
  Name 5: Brian
  Name 6: Tyler
  Name 7: Lane

In CCScript, you could write his name out like this:

test_npc:
    "@Oh, hello [B0][B1][B2][B3][B4]!" end

Getting the Widths Right

When printing text, EarthBound does not naturally put a space between letters, instead this space is part of each letter itself. So if you want a custom character to display right when printed out without getting smushed against other letters, make the width 1 pixel more than the character is actually wide. So if your new character is 6 pixels wide, you would put 7 into widths.yml.

Adding these new characters to the naming keyboard

By default, the only way for custom characters to be used is in the Don't Care names and in ccscript. If you want players to be able to choose these characters themselves when naming the party or the player, you can use the Extended Naming Screen Character Table created by PhoenixBound & ShadowOne333 to modify the naming keyboard.

Clone this wiki locally