fnts2fon(1)

πŸ“¦
version 1.1.3 Β· 2 versions
, in nixpkgs unstable, ubuntu stonking

okay bestie, sit down, hydrate, and let me tell you about fnts2fon πŸ’– β€” it's a section 1 command from PSF Tools, and it's the little gremlin that smooshes a bunch of Windows .FNT files into one single .FON file. Yes. That's the whole job. Let's get into it 🫢


✨ NAME ✨

fnts2fon β€” Construct a Windows .FON file from one or more .FNT files πŸŽ€

Like, that's literally the entire elevator pitch. One .FON, many .FNT, chaos assembled. Obsessed.


🌸 SYNOPSIS 🌸

fnts2fon [--fontid=IDSTRING] [--winver=MAJOR.MINOR] [other options...]
INPUTFILE [INPUTFILE ...]  OUTPUTFILE

So you hand it as many INPUTFILEs as your heart desires, then one OUTPUTFILE at the end, and it does the thing πŸ’…


πŸ¦‹ DESCRIPTION πŸ¦‹

So fnts2fon attempts to combine one or more Windows FNT files into a FON file. And here's the tea: this procedure is shrouded in darkness and mystery 😭 β€” dimly illuminated only by the Microsoft Knowledge Base article at http://support.microsoft.com/support/kb/articles/Q76/5/35.ASP and by the NE file format. That's it. That's the flashlight. We're all just vibing in the dark here πŸ™ˆ

Heads up if you're on Cygwin: you will need to grant execute permission to the resulting .FON file using chmod(1) before Windows can use it. Skincare routine but for permissions. Don't skip it πŸ’…

πŸ’– OPTIONS πŸ’–

Real talk first, bestie: apart from --fontid and possibly --winver, the other options should not be necessary unless you are trying to produce output byte-by-byte identical to an existing Windows font. So if you're just here for a normal conversion, you can absolutely scroll past the rest like it's a story you've already seen 😌

  • --fontid="string" β€” Sets the font resolution / description string. This is normally formed "FONTRES nn,nn,nn : Description". And it must begin FONTRES for Windows 3.x and 9x to recognise the font β€” that part is not optional, it's the whole vibe check. By default the string used is "FONTRES 200,96,48 : <fontname> ".
    • Under MS-DOS, use underlines to represent spaces β€” for example, --fontid=FONTRES_83,60,72_:_Times_Roman 🩷
  • --winver=MAJOR.MINOR β€” Sets the Windows version required in the output file. The MAJOR and MINOR are treated as separate numbers, so --winver=3.1 and --winver=3.01 are the same, but --winver=3.1 and --winver=3.10 are different 🫠 (yes, math is mathing, don't fight it). Windows 2.x and 3.0 still load fonts marked as for version 3.1, so this option may not have much practical use.
  • --checksum16=nnn and --checksum32=nnn β€” Set the 16-bit checksum in the DOS header, and the 32-bit checksum in the Windows header. Windows does not appear to check these πŸ‘€ so do with that information what you will.
  • --dosmsg β€” Sets the message to display if the font is renamed to .EXE and run from DOS. Sneaky behaviour. Honestly iconic.
  • --idbase=nnn β€” Sets the resource ID to allocate to the first font.
  • --idstep=nnn β€” Sets the increment to add to the resource ID.
  • --linkver=MAJOR.MINOR β€” Set the version of the linker that supposedly created this file. The same caveats apply as for --winver ✨
  • --modname=NAME β€” Set the name of the program that was supposedly assembled to make this file. "Supposedly" doing a Lot of heavy lifting in these two options ngl.
  • --mzextra=NNN β€” Sets the value in word 2 of the 'MZ' file header.
  • --stub=nnn β€” Set the DOS stub to use. They all do exactly the same thing, but in slightly different ways 😭 which is the most Unix thing I've ever heard.
  • --sysfont=nnn β€” Mark font nnn as a system font. πŸ‘‘

πŸ’€ BUGS πŸ’€

Does not appear to work with vector .FNT files, only raster ones. So if your font is vectors, this is not the tool, bestie, and no amount of manifesting will fix it πŸ™ˆ


🌈 SEE ALSO 🌈

cpi2psf(1), cpicomp(1), cpidcomp(1)

The whole friend group. Go say hi 🫢


πŸ‘‘ AUTHOR πŸ‘‘

John Elliott <seasip.webmaster@gmail.com>. The main character who made all of this happen. Respect πŸŽ€


and that's the whole page, bestie β€” you're officially literate in fnts2fon now, no cap ✨ Version 1.1.3, dated 28 April, 2026 β€” go forth and smoosh those fonts together πŸ’–πŸŒΈπŸ¦‹

πŸ“¦ where this page comes from