u/Ravizorra

▲ 5 r/WiiUHacks+1 crossposts

Wii Fit U fan RU translation

Title: Wii Fit U (0005000010102400) – help identifying JFNT / jIMG font format (adding Cyrillic for a fan translation)

I'm working on a Russian fan translation of Wii Fit U. The text side is solved:
content/EN/Message/message.carc = Yaz0 + U8 -> health_message.bmg (MESGbmg1, UTF-16BE),
edited with Wiimm's wszst/wbmgt and tested on a real Wii U via SDCafiine. Latin text
renders fine; Cyrillic renders blank. So the fonts in content/fonts (*.jfnt) need
Cyrillic glyphs, and I can't figure out the pixel data format.

What I found (all big-endian):

JFNT header
- 0x00 "JFNT", 0x04 u16 = 0x008B (same in all files)
- 0x06 4 bytes ("TB2J", "TB(1", "TBAd", "TBKc", "TB!1" – differs per file, maybe an ID/hash)
- 0x0A u16 (varies per file, unknown), 0x0C u16 = number of ranges
- 0x0E range table, 6 bytes each: u16 first codepoint, u16 last codepoint, u16 first glyph index
(indices run contiguously, e.g. ASCII 0x21-0x7E -> index 0)
- then u16 glyph count, then one width byte per glyph
- then 8 zero bytes and a "jIMG" block

jIMG header (0x20 bytes)
- "jIMG", u32 total size up to end of file, two u16 (e.g. 0x1FF0 / 0x0410 in
style_font_DB_3.jfnt, vary per file, unknown meaning), a format-looking byte
(0x1B in main fonts, 0x1A in style_font_debug.jfnt), u32 = size - 0xE0 (approx.), ...
- pixel data follows after zero padding; file is mostly low-entropy raw data
(zlib compresses it to ~10-16%), so not compressed/encrypted

Cyrillic
- The 4 main fonts (DB_3, DB_3_I, DB_L_3, DB_L_3_I) already have table entries for
U+0401, U+0410-U+044F, U+0451, but every one of these glyphs has the SAME width
(50 / 40 / 65 / 75 depending on the font) -> looks like unused placeholders.
style_font_debug.jfnt has no Cyrillic entries.

What I tried
- Reading the data as 8-bit raster with stride search (best row similarity at
multiples of 64), and as 3-bit packed pixels: no recognisable glyphs.
Probably tiled/swizzled (Wii U GX2-style?) or per-glyph blocks.

Related: textstyle.jarc = "jCMP" wrapper with a zlib stream at 0x14, contains the text styles.

Question: does anyone know the JFNT/jIMG format (Nintendo EAD fonts, maybe also in
Wii Fit U / Wii Sports Resort-era games) or a tool to extract/edit it?
Can post hex dumps of headers on request.

reddit.com
u/Ravizorra — 5 days ago