Thanks, but I can't read it.
I've made some good progress this morning. I've defined a C structure to contain the .fnt character details, and another one to contain the font data and an array of the character details. I've then created a function which iterates through the string you pass it, converts each character to its ascii value, and looks it up in the font's array of character details. If it finds a match it then draws the character on the screen. If it doesn't find a match, then the user is trying to draw a character which doesn't exist in the font so a generic character is drawn.
This is currently working, but not utilising the actual font at all (currently it just uses ctrulib's existing text drawing routine). The next step will be to use the character details to find the character in the font image data, memcpy it to a separate image, and then draw that image onto the screen at the appropriate location. This shouldn't be too hard to do, and will hopefully result in the text being drawn to the screen in the selected font.
Currently, my C struct contains manually-entered data for just two characters for testing. Once the basic engine is working I'll need to create a script which will take the .fnt file and convert it into C code which I can copy and paste to form a struct containing the full character data. I will also write a small programme to copy just the alpha channel data from the font's png file into a separate bin file. That way the font can be rendered in any colour and the unneeded colour data from the PNG can be discarded, reducing the filesize.