(Some of you may have seen this on Omnimaga a few months back.)

For years I've been generating my own fonts for various Z80 projects using a font editor I made as one of my first desktop applications. Over the summer, I decided to rewrite it from scratch, cleaning up its code significantly. This new version lets you generate fonts for zStart and Omnicalc. It can also generate .asm files matching the font format used by MicrOS for the TI-84+CSE, and I threw in three custom formats Xeda uses. The source code is now included, and you can add new export formats without changing the GUI because it uses reflection to find the export functions.

Due to .NET reflection API usage, this requires .NET 4.5 or above and therefore Windows Vista or above.

Here are the basic features:
  • Readme file embedded in the executable file so can't fail to have it. Press F1 to bring up the readme file.
  • Edits monochrome fonts up to 64x64 pixels
  • Each font has exactly 256 glyphs
  • Sports a chart giving an overview of all glyphs
  • Has a text previewer which lets you test how the font will appear with any text
  • Text previewer uses Unicode
  • Each character has an associated Unicode codepoint. The text previewer uses this to select the glyph to display for each character entered. Each font is coded using ASCII by default.
  • You can assign any Unicode codepoint to any glyph. Thus, you can make glyph #0 'Q' if you want. And the text previewer will figure that out automatically.


I've also added a BDF import function and included a package of 77 BDF fonts from the RockBox project. One font has over fifty thousand glyphs, covering the entire Unicode Basic Multilingual Plane.

Screen shots (click to view, please don't murder my bandwidth):


You can download just the executable (123 K), or you can download a ZIP containing the executable, the source, the MicrOS font, and BDF sample fonts (6.1 MB).
This is really great work, DrDnar. My workflow for custom fonts is currently:

(1) Draw out each character in GIMP, one over the other, for 256 (or however many) characters, creating one very tall image.
(2) Run the image through SourceCoder 3
(3) Write a font routine that understands the width/height of characters in the font.

This will certainly save me a good deal of effort for those future projects of mine that require a custom font, especially since I'm weighing whether a future Doors CS for the TI-84+CSE needs a font routine and/or custom font support. Thanks for taking your private tools and rewriting and packaging them for general consumption! If everyone did that, we'd collectively spend a lot less time re-inventing the wheel.
This should remove the need for .NET 4.5:

Code:

public Export(MethodInfo method)
{
    FontExporter fontExporter = (FontExporter)method.GetCustomAttributes(typeof(FontExporter), false).First();
     
    HelpText = fontExporter.HelpText;
    FileTypeExtension = fontExporter.FileTypeExtension;
    FileTypeDescription = fontExporter.FileTypeDescription;
     
    DoExport = (FontExportFunction)Delegate.CreateDelegate(typeof(FontExportFunction), method);
}


And this file, renamed to Mfe.csproj (I dunno why my server is being weird) will let you run it in VS 2010 (this is good for me because I have 2010 pro, but not 2012 pro, and I gots to have my extensions):
http://merthsoft.com/Mfe.txt
Thanks, Merth. I obviously wrote that code because I didn't understand how the GetCustomAttributes() method works. I'll be incorporating your code into the next release and changing the project target to .NET 4.0.

Edit: Forget 4.0. I've gotten it to run on 3.5 Client Profile. Therefore, in the next release (probably Sunday or Monday), anybody with Windows 7/8 will not need to install any updates, and Windows XP and above will be supported with updates.
On September 13, I quietly uploaded the new update; see the links in the original post. The only changes are reducing the .NET requirements to 3.5 Client Profile, word-wrap to the text previewer, and Help now has topics.
Well, I'd love to check it out, but:
staticcling.org is a dynamic DNS service; check to make sure it's not blocking staticcling.org generally. It's probable somebody else's server is at fault.

I'll look into moving MFE to MS's free Team Foundation Service.
  
Register to Join the Conversation
Have your own thoughts to add to this or any other topic? Want to ask a question, offer a suggestion, share your own programs and projects, upload a file to the file archives, get help with calculator and computer programming, or simply chat with like-minded coders and tech and calculator enthusiasts via the site-wide AJAX SAX widget? Registration for a free Cemetech account only takes a minute.

» Go to Registration page
Page 1 of 1
» All times are UTC - 5 Hours
 
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum

 

Advertisement