BCFNT: Difference between revisions
HandsomeMatt (talk | contribs) m remove duplicate cfnt header entry |
|||
(8 intermediate revisions by 3 users not shown) | |||
Line 1: | Line 1: | ||
[[Category:File formats]] | |||
=CTR Font Format= | =CTR Font Format= | ||
[[.bcfnt]] files are bitmap fonts made for the 3ds. The system font uses this format too except the header is changed from CFNT to CFNU and all file offsets are changed to absolute in memory offsets. | [[.bcfnt]] files are bitmap fonts made for the 3ds. The system font uses this format too except the header is changed from CFNT to CFNU and all file offsets are changed to absolute in memory offsets. | ||
Line 12: | Line 13: | ||
| 0x00 | | 0x00 | ||
| 0x04 | | 0x04 | ||
| Magic Header (either CFNT or CFNU) | | Magic Header (either CFNT or CFNU or FFNT) | ||
|- | |- | ||
| 0x04 | | 0x04 | ||
| 0x02 | | 0x02 | ||
| | | Endianness (0xFEFF = little, 0xFFFE = big) | ||
|- | |- | ||
| 0x06 | | 0x06 | ||
Line 24: | Line 25: | ||
| 0x08 | | 0x08 | ||
| 0x04 | | 0x04 | ||
| | | Version (observed to be 0x03000000) | ||
|- | |- | ||
| 0x0C | | 0x0C | ||
Line 36: | Line 37: | ||
=== FINF Header === | === FINF Header === | ||
==== Version 3 (BCFNT) ==== | |||
{| class="wikitable" border="1" | {| class="wikitable" border="1" | ||
Line 97: | Line 100: | ||
| 0x1F | | 0x1F | ||
| 0x01 | | 0x01 | ||
| | | Reserved | ||
|} | |||
==== Version 4 (BFFNT) ==== | |||
{| class="wikitable" border="1" | |||
|- | |||
! Offset | |||
! Size | |||
! Description | |||
|- | |||
| 0x00 | |||
| 0x04 | |||
| Magic Header (FINF) | |||
|- | |||
| 0x04 | |||
| 0x04 | |||
| Section Size | |||
|- | |||
| 0x08 | |||
| 0x01 | |||
| Font Type | |||
|- | |||
| 0x09 | |||
| 0x01 | |||
| Height | |||
|- | |||
| 0x0A | |||
| 0x01 | |||
| Width | |||
|- | |||
| 0x0B | |||
| 0x01 | |||
| Ascent | |||
|- | |||
| 0x0C | |||
| 0x02 | |||
| Line Feed | |||
|- | |||
| 0x0E | |||
| 0x02 | |||
| Alter Char Index | |||
|- | |||
| 0x10 | |||
| 0x03 | |||
| Default Width (3 bytes: Left, Glyph Width, Char Width) | |||
|- | |||
| 0x13 | |||
| 0x01 | |||
| Encoding | |||
|- | |||
| 0x14 | |||
| 0x04 | |||
| TGLP Offset | |||
|- | |||
| 0x18 | |||
| 0x04 | |||
| CWDH Offset | |||
|- | |||
| 0x1C | |||
| 0x04 | |||
| CMAP Offset | |||
|} | |} | ||
=== TGLP Header === | === TGLP Header === | ||
==== Version 3 (BCFNT) ==== | |||
{| class="wikitable" border="1" | {| class="wikitable" border="1" | ||
|- | |- | ||
Line 146: | Line 211: | ||
| 0x14 | | 0x14 | ||
| 0x02 | | 0x02 | ||
| Number of | | Number of columns | ||
|- | |- | ||
| 0x16 | | 0x16 | ||
| 0x02 | | 0x02 | ||
| Number of | | Number of rows | ||
|- | |- | ||
| 0x18 | | 0x18 | ||
Line 165: | Line 230: | ||
|} | |} | ||
=== | ==== Version 4 (BFFNT) ==== | ||
{| class="wikitable" border="1" | {| class="wikitable" border="1" | ||
|- | |- | ||
Line 175: | Line 239: | ||
| 0x00 | | 0x00 | ||
| 0x04 | | 0x04 | ||
| Magic Header ( | | Magic Header (TGLP) | ||
|- | |- | ||
| 0x04 | | 0x04 | ||
Line 183: | Line 247: | ||
| 0x08 | | 0x08 | ||
| 0x01 | | 0x01 | ||
| | | Cell Width | ||
|- | |- | ||
| 0x09 | | 0x09 | ||
| 0x01 | | 0x01 | ||
| | | Cell Height | ||
|- | |- | ||
| 0x0A | | 0x0A | ||
| | | 0x01 | ||
| | | Number of Sheets | ||
|- | |||
| 0x0B | |||
| 0x01 | |||
| Max Character Width | |||
|- | |- | ||
| 0x0C | | 0x0C | ||
| | | 0x04 | ||
| | | Sheet Size | ||
|- | |- | ||
| | | 0x10 | ||
| | | 0x02 | ||
| | | Baseline Position | ||
|- | |- | ||
| | | 0x12 | ||
| | | 0x02 | ||
| | | Sheet Image Format 0-13: (RGBA8, RGB8, RGBA5551, RGB565, RGBA4, LA8, HILO8, L8, A8, LA4, L4, A4, ETC1, ETC1A4) | ||
|- | |- | ||
| 0x14 | | 0x14 | ||
| | | 0x02 | ||
| | | Number of Sheet columns | ||
|- | |||
| 0x16 | |||
| 0x02 | |||
| Number of Sheet rows | |||
|- | |- | ||
| 0x18 | | 0x18 | ||
| | | 0x02 | ||
| | | Sheet Width | ||
|- | |||
| 0x1A | |||
| 0x02 | |||
| Sheet Height | |||
|- | |- | ||
| 0x1C | | 0x1C | ||
| | | 0x04 | ||
| | | Sheet Data Offset | ||
|} | |} | ||
Line 311: | Line 375: | ||
| Char Widths (3 bytes: Left, Glyph Width, Char Width) | | Char Widths (3 bytes: Left, Glyph Width, Char Width) | ||
|} | |} | ||
=Tools= | |||
[https://github.com/ObsidianX/3dstools] - BFFNT Extractor/Creator. Creates PNG files from TGLP atlas data and a JSON manifest. |