Font Conversion & Repair

From The DarkMod Wiki
Revision as of 02:00, 5 March 2024 by Geep (talk | contribs) (Start of redo. Break out Q3Font info into separate article)
Jump to navigationJump to search


As of 2024, there are four tools for TDM font conversion and repair:

Fidcal's Original Take

These are some rough notes about converting ttf fonts to doom3 and repairing if necessary.

My understanding is that ExportFontToDoom is more suitable than Q3Font for converting. It is what I used to convert a lot of TTF fonts. See notes with that tool as to how use it. But be aware of copyright issues if converting TTF fonts.

With ExportFontToDoom there were quite a few spacing errors. Q3Font I found a bit puzzling so never did any conversions (it may be better for all I know.) BUT it can convert the dat files to readables for editing and back again so I used Q3Font to fix the errors.

Doom fonts have multiple dat files for each size. However, only the following are loaded by the code:

  • fontImage_12.dat
  • fontImage_24.dat
  • fontImage_48.dat

The size 24 is used mostly by readables, while the menu uses 48 (the big headlines and the main menu) and 24 (settings and other headlines).

This means it is not necessary to create other sizes, as these will be ignored, anyway.

Further Thoughts and Updates

  • Usage of font sizes. Some readables, like those with the Stone font, use 48 pt for titles. The subtitle system (as of TDM 2.12) uses Stone 24 pt, with (at render time) horizontal compression.
  • Q3Font is where you can find updated info about using this Windows utility program, including Fidcal's simple example. (Some of this info used to be here in Font Conversion & Repair.).
  • Refont describes this command-line program, that handles some of Q3font's functionality, but is easier to use. This new article has a detailed comparison.
  • ExportFontToDoom (ARTICLE COMING SOON)
  • Font Patcher has details about the font_patcher.pl utility, which is a preferred method (over Q3font) to fix and change fonts.
  • I18N (Internationalization). If you convert a Russian font, you need to move the character 0xFF to 0xB6, otherwise it will not show in the GUI or readables. See I18N - Charset for details.

Weblinks