JNFR Files (jnlib font resource) store font information. These files are present in the DS firmware program and Mario Kart DS's Kiosk Demo. The format is different in the two cases. This page will outline these formats.

!! Format Version 2.0

The version of the format used in Mario Kart DS is 2.0, and makes use of a binary block structure. There is also no need for a supplemental JNCM file for character mapping information. The header of the file takes on the following structure:

||Offset||Type||Meaning
| 0x00  | char[[4]| File signature ({{{"JNFR"}}})
| 0x04  | u16 | Version (0x200)
| 0x06  | u16 | Endianness (0xFEFF in the used endianness)
| 0x08  | u16 | Number of blocks
| 0x0A  | u16 | Reserved (0)

This header is followed by a sequence of binary blocks. Each block begins with a block header with the following structure:

||Offset||Type||Meaning
| 0x00  | char[[4]| Block signature
| 0x04  | u32 | Block size (including this header)

! IMG1 Block

The {{{IMG1}}} block stores font glyph information. It takes on the following structure:
||Offset||Type||Meaning
| 0x08 | u32 | Offset to glyph bitmap
| 0x0C | u8  | Glyph cell width
| 0x0D | u8  | Glyph cell height
| 0x0E | u8  | Pixel info
| 0x0F | u8  | Leading
| 0x10 | u8  | Ascent
| 0x11 | u8  | Descent
| 0x12 | u16 | Index of invalid glyph

! WID1 Block

The {{{WID1}}} block stores font glyph width information.

! CMP1 Block

The {{{CMP1}}} block stores the character mapping information.