At line 1 changed one line |
JNCM Files (jnlib character map) store character mapping information for fonts. These provide the mapping information required to map character code points to glyphs in a [BNFR File Format File|BNFR File Format]. |
BNCMP Files (jnlib character map) store character mapping information for fonts. These provide the mapping information required to map character code points to glyphs in a [BNFR File|BNFR File Format]. |
At line 3 changed one line |
!! Version 1.2 |
!! Version 1.1 |
At line 5 changed one line |
Version 1.2 is the version of the file format that is used in the DS firmware program. The header takes on the following structure: |
Version 1.1 predates version 1.2. Its header takes on the following structure: |
At line 9 changed one line |
| 0x04 | u16 | Version ({{{0x0102}}} for 1.2) |
| 0x04 | u16 | Version ({{{0x0101}}} for 1.1) |
At line 12 changed one line |
Following the file header is the character mapping info: |
Following the header is a direct mapping block. This consists of a sorted (ascending) array of code points as {{{u16}}}. A code point at index ''n'' will be mapped to a glyph index ''n'' in its accompanying BNFR. The length of this array is the number of code points specified in the header. |
At line 14 added 4 lines |
!! Version 1.2 |
|
Version 1.2 is the version of the file format that is used in the DS firmware program. Its header is identical in structure to that of version 1.1, but with the version field of the header updated to 1.2 ({{{0x0102}}}). Following the file header is the character mapping info: |
|
At line 29 changed one line |
The file format includes a mechanism for specifying individual code points. These are specified in the direct code point block. |
The direct mapping block takes on the following structure: |
At line 35 changed 3 lines |
Code points are mapped to glyph indices sequentially starting in the continuous mapping blocks, then the direct mapping block. |
|
|
The direct mapping block here lists code points in ascending order. Code points are mapped to glyphs by first checking the continuous mapping blocks, then checking the direct mapping block. If there are 50 code points mapped in continuous mapping blocks, for example, then the direct mapping block lists code points assigned to glyph indices 50 and above. |