zx2psf(1)
π zx2psf β the PSF Tools glow-up page
okay so bestie, welcome to zx2psf(1), part of PSF Tools πΈ β yes the whole dang suite, and yes this page is just about the one little program. sit down, grab a snack, we're converting fonts π
β¨ NAME β¨
zx2psf β she turns a Spectrum font into PSF format. that's the whole job. that's her whole thing. π
π SYNOPSIS π
zx2psf [--rom] [--sna] [--mode=bare] [--mode=merge1] [--mode=latin1]
[--mode=synth1] [--mode=move1] [--graphics=none] [--graphics=block]
[--graphics=udg] [--psf1] [--psf2] [INPUTFILE [OUTPUTFILE]]
likeβ¦ look at all those flags. she's giving options. literally. β¨
π¦ DESCRIPTION π¦
so zx2psf converts a Spectrum font into PSF format, periodt. π
and when we say "a Spectrum font" we mean any one of these three icons:
- a +3DOS file
- a TAP file with one member
- a raw memory dump
ngl that's a lot of ways to be a font and she handles all of them π«Ά
π OPTIONS π
every single one, no skips bestie:
--romβ the file is a Spectrum ROM image, so she reaches in and extracts the font that's embedded in there. it's giving archaeology πβ¨--snaβ the file is a Spectrum SNA snapshot image; if there's a font hiding in it, she'll pull it out. π BUT. this lowkey depends on theCHARSsystem variable having been set up properly, i.e. the game actually outputs using the ROM routines. if the program in the snapshot uses some other form of output, it may just leaveCHARSalone or set it to a random value, and then π good luck. for example, the font in the game2112cannot be found using this method. not her fault, she's just the messenger π--mode=bareβ the Spectrum font gets copied as-is. any character outside the range defined by the Spectrum is set to blank. minimalist queen, no thoughts, empty glyph πΈ--mode=latin1β the Spectrum font gets copied as-is, and characters outside the Spectrum's range get set to the ones inLAT1-01.PSF(which is based on ISO-8859-1, but with extra character shapes). soβ¦ latin1 flavoured but make it β¨extraβ¨--mode=merge1β same energy aslatin1above, but the pound sign, the up arrow and the copyright characters get moved to their correct positions for ISO Latin-1. relocation era π--mode=synth1β likemerge1, except the Latin-1 characters are mostly generated from the Spectrum characters rather than copied fromLAT1-08.PSF. and listen: if you use this one, the font will need manual editing afterwards to make it look better. she said DIY, no cap π§--mode=move1β likebare, but the pound sign and the copyright characters get moved to their correct positions for ISO Latin-1. two guys on the move, that's it π--graphics=noneβ the graphics characters128-159will be blank (with--mode=bare) or those fromLAT1-08.PSF(in the other modes). choose your fighter β¨--graphics=blockβ characters128-143will be the Spectrum block graphics.144-159will be blank (with--mode=bare) or those fromLAT1-08.PSF(in the other modes). half block-y, half mystery π--graphics=udgβ characters128-143will be the Spectrum block graphics. if--snawas present, characters144-159will be the first 16 user-defined graphics; otherwise they'll be copies of"A"to"P". and if--mode=bareis set, characters160-164will be the last five UDGs (if--snais present) or copies of"Q"to"U"(otherwise). it's giving conditional, it's giving nested, it's giving iykyk ππ--psf1β output in the PSF1 format.--psf2β output in the PSF2 format (default). she picked this one for you already π«Ά
π BUGS π
okay so real talk, the whole Latin-1 thing? ugly. no cap, it's ugly, she knows it, we know it, everyone knows it π
fortunately though, zx2psf always puts a correct Unicode directory on the resulting file, so Unicode-aware utilities should always be able to find the correct character. so likeβ¦ the vibe is chaotic but the data is correct. slay? π
π₯ SEE ALSO π₯
psf2zx(1)β the reverse girly. go say hi π
π AUTHOR π
John Elliott <seasip.webmaster@gmail.com> β the main character who made all this happen. we're obsessed, fr fr π
and that's the page bestie!! β¨ Version 1.1.3 β¨ dated 28 April, 2026 β go convert some fonts and hydrate π π¦π
π¦ 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