-
Notifications
You must be signed in to change notification settings - Fork 44
Fonts
Every font used in-game is saved in the Fonts directory. Each font is represented by two files:
- The
.pngfile contains each letter's appearance. - The
.ymlfile 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.pngis the main font -
1.pngis the Mr. Saturn font -
2.pngis the flyover/coffee break font -
3.pngis used in the HP/PP name cards -
4.pngis used at the tops of certain windows (for example, the windows in battle display character names) -
credits.pngis used in the end credits (it doesn't have a.ymlfile because it's monospace)
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: LaneThus, keep in mind that whenever you want to use one or more of these extra characters in a .yml file, you will have to surround them in quotes for them to be interpreted correctly (check the example above).
In CCScript, you could write his name out like this:
test_npc:
"@Oh, hello [B0][B1][B2][B3][B4]!" end
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.
The first character in each font corresponds to an hex value of 0x50, which means that every other character is offset by that same amount. This means that, if you wanted to edit one of the extra character's width (for example, 0xB0), you would subtract 0x50 from it (resulting in 0x60 = decimal 96, for the given example), and this is the key you'd search for in x_widths.yml to edit its value.
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.
- Overworld Sprites
- Battle Backgrounds
- Battle Sprites
- Title Screen
- Window Graphics
- Logos
- Fonts
- Layer 3 Animations
- Swirls
- NPCs
- CCScript
- CCScript Command Documentation
- Event Flags
- Playable Characters
- Temporary Party Members
- PSI Abilities
