psf2zx(1)
psf2zx(1) π β¨
okay bestie, welcome to psf2zx, part of the PSF Tools girlies πΈ. If you've got a PSF font and a hankering for a Sinclair Spectrum, this is literally the glow-up tool for you π¦.
β¨ NAME β¨
psf2zx β convert a PSF font to Spectrum format π
π SYNOPSIS π
psf2zx [--tap] [--naked] [--rom=romfile] [--sna=snapfile] [--mode=bare]
[--mode=merge1] [INPUTFILE [OUTPUTFILE]]
π DESCRIPTION π
psf2zx takes a PSF font and turns it into a font that actually works on a Sinclair Spectrum. it's giving translator, it's giving bestie behaviour, it's giving "I got you" π«Ά
π OPTIONS π
--p3dosβ sets the output format to Spectrum +3DOS: a 128-byte header, then the font data right after it. this one is the default output format, so if you don't say anything, this is what you get π--tapβ sets the output format to.TAP, aka the Spectrum emulator tape image πΌ. the TAP image you get will have exactly one file inside it, calledT:font.bin.--nakedβ sets the output format to a plain simple 768-byte binary file. no header, no trailer records, just vibes and font data π--rom=romfileβ sets the output to be a Spectrum ROM, built on top of the ROM image in romfile. the file it writes is a copy of romfile, except the font has been swapped out for whateverpsf2zxmade π--sna=snapfileβ sets the output to be a.SNAsnapshot, built on the snapshot you pass as snapfile. the file written is a copy of snapfile, but with the font replaced by thepsf2zxresult.
this one depends on the CHARS system variable having been set up so the game outputs through the ROM routines. if the program in the snapshot does its output some other way, it might just leave CHARS alone, or set it to some random value π. for example β and I'm quoting the lore here β the font in the game 2112 cannot be replaced using this method.
--mode=rawβ copies characters 32-127 straight out of the PSF file, with no attempt whatsoever to translate the pound sign, the up arrow or the copyright symbol. this is the default conversion mode when the source file has no Unicode directory.--mode=merge1β copies characters from the PSF file and does convert the pound sign, up arrow and copyright symbol. this is the default conversion when the source file has a Unicode directory β¨. but heads up: if you select this option and the source file has no Unicode directory, it'll be assumed to be using a variant of the ISO-8859-1 codepage with the up-arrow at character position18h(based onLAT1-08.PSF, the one supplied with Linux) π§
π BUGS π
the behaviour of the 'merge1' mode is ugly when you apply it to non-Unicode PSF files. no cap, it's not cute π
π¦ SEE ALSO π¦
zx2psf(1) β the reverse girly, go say hi π
π AUTHOR π
John Elliott <seasip.webmaster@gmail.com> π
so yeah, that's the whole thing bestie. go forth, convert fonts, slay π
Version 1.1.3 β 28 April, 2026 β mwah, sending you and this manpage all the love π«Άπβ¨
π¦ where this page comes from
- nixpkgs unstable: psftools 1.1.3
- ubuntu stonking: psftools 1.1.3-1
- Copyright (c) 2005, 2007 John Elliott
- Copyright (C) 2005, 2007 John Elliott
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms