Author Topic: Monochrome Font Editor  (Read 2113 times)

0 Members and 1 Guest are viewing this topic.

Offline DrDnar

  • LV7 Elite (Next: 700)
  • *******
  • Posts: 546
  • Rating: +97/-1
    • View Profile
Monochrome Font Editor
« on: June 25, 2013, 08:16:04 pm »
For years I've been generating my own fonts for various projects using a font editor I made as one of my first desktop applications. Recently 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 Zeda uses. It's easy to add new formats, and I'd like to add .FON support sometime. However, because this program is also the final project for a class assignment, the source will not be available until later this summer.

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

EDIT: After 13 downloads, I've created an updated version; see post below.
« Last Edit: June 26, 2013, 05:33:15 am by DrDnar »
"No tools will make a man a skilled workman, or master of defense, nor be of any use to him who has not learned how to handle them, and has never bestowed any attention upon them. . . . Yes, [] the tools which would teach men their own use would be beyond price."—Plato's The Republic, circa 380 BC

Offline DJ Omnimaga

  • Now active at https://codewalr.us
  • CoT Emeritus
  • LV15 Omnimagician (Next: --)
  • *
  • Posts: 55821
  • Rating: +3151/-232
  • CodeWalrus founder & retired Omnimaga founder
    • View Profile
    • DJ Omnimaga Music
Re: Monochrome Font Editor
« Reply #1 on: June 25, 2013, 08:19:38 pm »
Nice DrDnar. I have been using Yuki's font editor for a while (I think it was on-calc), but it was for Omnicalc and I wondered when there would be one for ZStart fonts. Does it edit Batlib fonts too?
« Last Edit: June 25, 2013, 08:22:59 pm by DJ Omnimaga »
In case you are wondering where I went, I left Omni back in 2015 to form CodeWalrus due to various reasons explained back then, but I stopped calc dev in 2016 and am now mostly active on the CW Discord server at https://discord.gg/cuZcfcF


Bandcamp|Reverbnation|Facebook|Youtube|Twitter

Offline DrDnar

  • LV7 Elite (Next: 700)
  • *******
  • Posts: 546
  • Rating: +97/-1
    • View Profile
Re: Monochrome Font Editor
« Reply #2 on: June 25, 2013, 09:01:51 pm »
I forgot to upload screen shots.

Also, here are the basic features:
  • 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.
« Last Edit: June 26, 2013, 04:24:08 am by DrDnar »
"No tools will make a man a skilled workman, or master of defense, nor be of any use to him who has not learned how to handle them, and has never bestowed any attention upon them. . . . Yes, [] the tools which would teach men their own use would be beyond price."—Plato's The Republic, circa 380 BC

Offline DJ Omnimaga

  • Now active at https://codewalr.us
  • CoT Emeritus
  • LV15 Omnimagician (Next: --)
  • *
  • Posts: 55821
  • Rating: +3151/-232
  • CodeWalrus founder & retired Omnimaga founder
    • View Profile
    • DJ Omnimaga Music
Re: Monochrome Font Editor
« Reply #3 on: June 25, 2013, 09:10:10 pm »
This looks very nice. As mentionned on IRC, though, the Exports window throws the following Unhandled exception error under Windows 7 64 bits:


Code: [Select]
See the end of this message for details on invoking
just-in-time (JIT) debugging instead of this dialog box.

************** Exception Text **************
System.TypeInitializationException: The type initializer for 'Mfe.Exports.FontExporter' threw an exception. ---> System.MissingMethodException: Method not found: 'System.Collections.Generic.IEnumerable`1<System.Reflection.CustomAttributeData> System.Reflection.MemberInfo.get_CustomAttributes()'.
   at Mfe.Exports.FontExporter.Export..ctor(MethodInfo method)
   at Mfe.Exports.FontExporter.GetExportsList()
   at Mfe.Exports.FontExporter..cctor()
   --- End of inner exception stack trace ---
   at Mfe.ExportsWindow..ctor(MasterWindow master)
   at Mfe.MasterWindow.exportCodeToolStripMenuItem_Click(Object sender, EventArgs e)
   at System.Windows.Forms.ToolStripMenuItem.OnClick(EventArgs e)
   at System.Windows.Forms.ToolStripItem.HandleClick(EventArgs e)
   at System.Windows.Forms.ToolStripItem.HandleMouseUp(MouseEventArgs e)
   at System.Windows.Forms.ToolStrip.OnMouseUp(MouseEventArgs mea)
   at System.Windows.Forms.ToolStripDropDown.OnMouseUp(MouseEventArgs mea)
   at System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
   at System.Windows.Forms.Control.WndProc(Message& m)
   at System.Windows.Forms.ToolStrip.WndProc(Message& m)
   at System.Windows.Forms.ToolStripDropDown.WndProc(Message& m)
   at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)


************** Loaded Assemblies **************
mscorlib
    Assembly Version: 4.0.0.0
    Win32 Version: 4.0.30319.296 (RTMGDR.030319-2900)
    CodeBase: file:///C:/Windows/Microsoft.NET/Framework64/v4.0.30319/mscorlib.dll
----------------------------------------
Mfe
    Assembly Version: 1.0.0.0
    Win32 Version: 1.0.0.0
    CodeBase: file:///C:/Users/DJOmnimaga/AppData/Local/Opera/Opera/temporary_downloads/Mfe%20(3).exe
----------------------------------------
System.Windows.Forms
    Assembly Version: 4.0.0.0
    Win32 Version: 4.0.30319.1002 built by: RTMGDR
    CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Windows.Forms/v4.0_4.0.0.0__b77a5c561934e089/System.Windows.Forms.dll
----------------------------------------
System.Drawing
    Assembly Version: 4.0.0.0
    Win32 Version: 4.0.30319.1001 built by: RTMGDR
    CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Drawing/v4.0_4.0.0.0__b03f5f7f11d50a3a/System.Drawing.dll
----------------------------------------
System
    Assembly Version: 4.0.0.0
    Win32 Version: 4.0.30319.1001 built by: RTMGDR
    CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System/v4.0_4.0.0.0__b77a5c561934e089/System.dll
----------------------------------------
System.Core
    Assembly Version: 4.0.0.0
    Win32 Version: 4.0.30319.233 built by: RTMGDR
    CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Core/v4.0_4.0.0.0__b77a5c561934e089/System.Core.dll
----------------------------------------
System.Xml
    Assembly Version: 4.0.0.0
    Win32 Version: 4.0.30319.233 built by: RTMGDR
    CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Xml/v4.0_4.0.0.0__b77a5c561934e089/System.Xml.dll
----------------------------------------

************** JIT Debugging **************
To enable just-in-time (JIT) debugging, the .config file for this
application or computer (machine.config) must have the
jitDebugging value set in the system.windows.forms section.
The application must also be compiled with debugging
enabled.

For example:

<configuration>
    <system.windows.forms jitDebugging="true" />
</configuration>

When JIT debugging is enabled, any unhandled exception
will be sent to the JIT debugger registered on the computer
rather than be handled by this dialog box.



EDIT: Nevermind, it appears that I was one or two .NET versions behind.
« Last Edit: June 25, 2013, 09:29:46 pm by DJ Omnimaga »
In case you are wondering where I went, I left Omni back in 2015 to form CodeWalrus due to various reasons explained back then, but I stopped calc dev in 2016 and am now mostly active on the CW Discord server at https://discord.gg/cuZcfcF


Bandcamp|Reverbnation|Facebook|Youtube|Twitter

Offline TIfanx1999

  • ಠ_ಠ ( ͡° ͜ʖ ͡°)
  • CoT Emeritus
  • LV13 Extreme Addict (Next: 9001)
  • *
  • Posts: 6173
  • Rating: +191/-9
    • View Profile
Re: Monochrome Font Editor
« Reply #4 on: June 25, 2013, 09:22:55 pm »
This looks quite nice. I've made a few custom fonts in my time, but I've just used MS Paint or worked on them on calc. I'll give it a look when I have some time. :)

Offline DrDnar

  • LV7 Elite (Next: 700)
  • *******
  • Posts: 546
  • Rating: +97/-1
    • View Profile
Re: Monochrome Font Editor
« Reply #5 on: June 26, 2013, 04:08:01 am »
You asked for a readme, so I've embedded one within the application. Hopefully, it also clarifies the difference between Width and Data Width.

Edit: After four downloads, I noticed a serious bug. See this new post for the fix.
« Last Edit: June 27, 2013, 03:08:26 pm by DrDnar »
"No tools will make a man a skilled workman, or master of defense, nor be of any use to him who has not learned how to handle them, and has never bestowed any attention upon them. . . . Yes, [] the tools which would teach men their own use would be beyond price."—Plato's The Republic, circa 380 BC

Offline DJ Omnimaga

  • Now active at https://codewalr.us
  • CoT Emeritus
  • LV15 Omnimagician (Next: --)
  • *
  • Posts: 55821
  • Rating: +3151/-232
  • CodeWalrus founder & retired Omnimaga founder
    • View Profile
    • DJ Omnimaga Music
Re: Monochrome Font Editor
« Reply #6 on: June 26, 2013, 04:20:42 am »
Good to hear. I'll check it out the next time I try this app. :)

By the way would it be possible to have a font template, for example if someone doesn't want to redraw every font from scratch? It might be handy if he only plans to change a few characters or do some minor edits. It doesn't really have to be the official TI fonts, though.
« Last Edit: June 26, 2013, 04:29:23 am by DJ Omnimaga »
In case you are wondering where I went, I left Omni back in 2015 to form CodeWalrus due to various reasons explained back then, but I stopped calc dev in 2016 and am now mostly active on the CW Discord server at https://discord.gg/cuZcfcF


Bandcamp|Reverbnation|Facebook|Youtube|Twitter

Offline DrDnar

  • LV7 Elite (Next: 700)
  • *******
  • Posts: 546
  • Rating: +97/-1
    • View Profile
Re: Monochrome Font Editor
« Reply #7 on: June 26, 2013, 04:47:34 am »
It would be possible, but I'm not going to do so. I will, however, post these two files. You can use them as templates, if you really want. The first is a 5x7 font, and the other is the MicrOS CSE 9x14 font.
« Last Edit: June 26, 2013, 04:50:31 am by DrDnar »
"No tools will make a man a skilled workman, or master of defense, nor be of any use to him who has not learned how to handle them, and has never bestowed any attention upon them. . . . Yes, [] the tools which would teach men their own use would be beyond price."—Plato's The Republic, circa 380 BC

Offline Keoni29

  • LV11 Super Veteran (Next: 3000)
  • ***********
  • Posts: 2466
  • Rating: +291/-16
    • View Profile
    • My electronics projects at 8times8
Re: Monochrome Font Editor
« Reply #8 on: June 26, 2013, 09:26:20 am »
I'd be cool if you could make actual .otf fonts with this tool.
If you like my work: why not give me an internet?








Offline Xeda112358

  • they/them
  • Moderator
  • LV12 Extreme Poster (Next: 5000)
  • ************
  • Posts: 4607
  • Rating: +716/-6
  • Calc-u-lator, do doo doo do do do.
    • View Profile
Re: Monochrome Font Editor
« Reply #9 on: June 26, 2013, 10:34:57 am »
I plan to work with this later, thanks! I really need a prettier font :P

Offline DJ Omnimaga

  • Now active at https://codewalr.us
  • CoT Emeritus
  • LV15 Omnimagician (Next: --)
  • *
  • Posts: 55821
  • Rating: +3151/-232
  • CodeWalrus founder & retired Omnimaga founder
    • View Profile
    • DJ Omnimaga Music
Re: Monochrome Font Editor
« Reply #10 on: June 27, 2013, 03:49:03 am »
Ok thanks DrDnar. I don't mind what font it is, if I have at least something to start with. :P

The typical Omnicalc font-based game in 2002-04 basically used standard fonts, but some characters that are rarely used in the game would be replaced with sprites, so the game looked like a graph screen game, but with a small gap between each sprite. IIRC End of Forever/Shattered Oasis on MaxCoderz used such technique in its final days.
« Last Edit: June 27, 2013, 03:53:53 am by DJ Omnimaga »
In case you are wondering where I went, I left Omni back in 2015 to form CodeWalrus due to various reasons explained back then, but I stopped calc dev in 2016 and am now mostly active on the CW Discord server at https://discord.gg/cuZcfcF


Bandcamp|Reverbnation|Facebook|Youtube|Twitter

Offline Sorunome

  • Fox Fox Fox Fox Fox Fox Fox!
  • Support Staff
  • LV13 Extreme Addict (Next: 9001)
  • *************
  • Posts: 7917
  • Rating: +373/-13
  • Derpy Hooves
    • View Profile
    • My website! (You might lose the game)
Re: Monochrome Font Editor
« Reply #11 on: June 27, 2013, 07:53:39 am »
This project sounds pretty useful, nice work!
Having each game using its own font would indeed make it more unique :)

THE GAME
Also, check out my website
If OmnomIRC is screwed up, blame me!
Click here to give me an internet!

Offline DJ Omnimaga

  • Now active at https://codewalr.us
  • CoT Emeritus
  • LV15 Omnimagician (Next: --)
  • *
  • Posts: 55821
  • Rating: +3151/-232
  • CodeWalrus founder & retired Omnimaga founder
    • View Profile
    • DJ Omnimaga Music
Re: Monochrome Font Editor
« Reply #12 on: June 27, 2013, 09:42:35 am »
To be honest, if I was gonna make a font for Illusiat series, for example, I would probably try to re-use the same font set for every game to make things easier, unless I really ran out of chars.
In case you are wondering where I went, I left Omni back in 2015 to form CodeWalrus due to various reasons explained back then, but I stopped calc dev in 2016 and am now mostly active on the CW Discord server at https://discord.gg/cuZcfcF


Bandcamp|Reverbnation|Facebook|Youtube|Twitter

Offline DrDnar

  • LV7 Elite (Next: 700)
  • *******
  • Posts: 546
  • Rating: +97/-1
    • View Profile
Re: Monochrome Font Editor
« Reply #13 on: June 27, 2013, 03:02:59 pm »
Clearly, nobody has used this very much or they would have noticed that the last update breaks font loading. (The bug is actually in font saving. If you do happen to have saved a font using the broken version, you can fix it with a hex editor by changing offset 0x31 (49 in decimal) from 04 to 01.)

This update also adds support for the TI-84+CSE's 160x240 mode. ("Double Width" in font properties.)
« Last Edit: June 27, 2013, 03:07:06 pm by DrDnar »
"No tools will make a man a skilled workman, or master of defense, nor be of any use to him who has not learned how to handle them, and has never bestowed any attention upon them. . . . Yes, [] the tools which would teach men their own use would be beyond price."—Plato's The Republic, circa 380 BC

Offline DJ Omnimaga

  • Now active at https://codewalr.us
  • CoT Emeritus
  • LV15 Omnimagician (Next: --)
  • *
  • Posts: 55821
  • Rating: +3151/-232
  • CodeWalrus founder & retired Omnimaga founder
    • View Profile
    • DJ Omnimaga Music
Re: Monochrome Font Editor
« Reply #14 on: June 30, 2013, 05:35:45 pm »
Yeah I was busy with other stuff (such as sleeping) so I didn't have much time yet >.<
In case you are wondering where I went, I left Omni back in 2015 to form CodeWalrus due to various reasons explained back then, but I stopped calc dev in 2016 and am now mostly active on the CW Discord server at https://discord.gg/cuZcfcF


Bandcamp|Reverbnation|Facebook|Youtube|Twitter