Difference between revisions of "FONT (File Format)"

From Retro Modding Wiki
Jump to: navigation, search
(Version)
(Header)
Line 25: Line 25:
 
| 0x8
 
| 0x8
 
| 4
 
| 4
| {{unknown|'''Unknown'''}}
+
| '''Unknown Font Metric''' (in points)
 
|-
 
|-
 
| 0xC
 
| 0xC
 
| 4
 
| 4
| {{unknown|'''Unknown'''}}
+
| '''Unknown Font Metric''' (in points)
 
|-
 
|-
 
| 0x10
 
| 0x10
 
| 4
 
| 4
| {{unknown|'''Unknown'''}}
+
| '''Unknown Font Metric''' (in points)
 
|-
 
|-
 
| 0x14
 
| 0x14
 
| 4
 
| 4
| {{unknown|'''Unknown'''}}
+
| '''Unknown Font Metric''' (in points)
 
|-
 
|-
 
| 0x18
 
| 0x18
Line 44: Line 44:
 
|-
 
|-
 
| 0x1C
 
| 0x1C
| 4
+
| 2
 
| {{unknown|'''Unknown'''}}
 
| {{unknown|'''Unknown'''}}
 
|-
 
|-
 
| 0x20
 
| 0x20
 
| 4
 
| 4
| {{unknown|'''Unknown'''}}
+
| '''Font Size''' (in points)
 
|-
 
|-
| 0x24
+
| 0x22
 
| N
 
| N
 
| '''Font name'''; zero-terminated string
 
| '''Font name'''; zero-terminated string
 
|-
 
|-
| 0x24+N
+
| 0x22+N
 
| 4
 
| 4
 
| '''[[TXTR (Metroid Prime)|TXTR]] file ID'''
 
| '''[[TXTR (Metroid Prime)|TXTR]] file ID'''
 
|-
 
|-
| 0x28+N
+
| 0x26+N
 
| 4
 
| 4
 
| {{unknown|'''Unknown'''}}
 
| {{unknown|'''Unknown'''}}
 +
|-
 +
| 0x2A+N
 +
| 4
 +
| '''Glyph Count'''
 +
|-
 +
| 0x2E+N
 +
| 4
 +
| '''Glyphs''' ([[#Glyph Entry (Version 2)|Version 2]], [[#Glyph Entry (Version 4)|Version 4]])
 
|}
 
|}
  
Line 82: Line 90:
 
| Metroid Prime 3/DKCR
 
| Metroid Prime 3/DKCR
 
|}
 
|}
 +
 +
 +
=== Glyph Entry (Version 2) ===
 +
 +
=== Glyph Entry (Version 4) ===
  
 
=== Character Definitions ===
 
=== Character Definitions ===

Revision as of 01:00, 28 February 2015

The FONT format defines fonts that can be used to display text in-game.


GravitySuitIcon.png To do:
Notate differences between different versions of the format. Only Metroid Prime's FONT version is documented at the moment. Character definition structure should be expanded on; there should be a section explaining what each value does, and it should be made more clear which UV coordinate corresponds to which vertex.
Morphball wirerender.png This file format needs more research
There's some unknowns in the header, and some of the values in the character definition structure should be double-checked.

Format

Header

Offset Size Description
0x0 4 "FONT" magic fourCC
0x4 4 Version; see below
0x8 4 Unknown Font Metric (in points)
0xC 4 Unknown Font Metric (in points)
0x10 4 Unknown Font Metric (in points)
0x14 4 Unknown Font Metric (in points)
0x18 4 Unknown
0x1C 2 Unknown
0x20 4 Font Size (in points)
0x22 N Font name; zero-terminated string
0x22+N 4 TXTR file ID
0x26+N 4 Unknown
0x2A+N 4 Glyph Count
0x2E+N 4 Glyphs (Version 2, Version 4)

Version

Version Game
1 Metroid Prime Kiosk Demo
2 Metroid Prime
4 Metroid Prime 2 (and demo), Metroid Prime Wii releases
5 Metroid Prime 3/DKCR


Glyph Entry (Version 2)

Glyph Entry (Version 4)

Character Definitions

This part of the file defines each character of the font. It starts with a 32-bit count value.

Offset Type Size Description
0x0 u16 2 UTF-16 character
0x2 float 4 Left UV coordinate
0x6 float 4 Top UV coordinate
0xA float 4 Right UV coordinate
0xE float 4 Bottom UV coordinate
0x12 u32 4 Glyph left padding
0x16 u32 4 Print head advance
0x1A u32 4 Glyph right padding
0x1E u32 4 Character width
0x22 u32 4 Character height
0x26 u32 4 Kerning index
0x2A End of character definition

Kerning Table

This table is at the end of the file, and defines kerning pairs. It starts with a 32-bit count value and then loops the following structure:

Offset Size Description
0x0 2 Character 1
0x2 2 Character 2
0x4 4 Kerning adjust
0x8 End of entry