Merging fonts, S60 specific glyphs and other stories

superscreenshot0018

Droid Sans with a cut musical note!

Fonts! Yes, one of S60′s oldest mysteries. Why Euro1 firmware phones don’t support asian fonts? It made sense back in the S60v2 times, where memory was scarce. But now there’s plenty of space for just a couple more megabytes that a full unicode font would occupy.

For that, there are alternative fonts, pretty much any .ttf you find, with a little magic, it can be used as a system font. If you want a wider range of characters, you have two options:

heisei

Nokia's own Heisei Kaku Gothic S60

or

arial

Any other unicode font you find, for example, Arial MS Unicode

Thing is, the latin letters from Heisei Kaku are quite ugly, in my opinion. (and I’m not the only one, I’ll add some quotes here later :P). And regular fonts are just too big/wide  for mobile phones, they’re not designed with small UIs in mind. Compare with regular Series S60 Sans.

s60sans

lol blocks

So what could I do to fix that? Enter FontForge! An free multiplatform font editing application. I finally figured out how to “merge” fonts using it.

You can take s60snr.ttf from Z:/System/Fonts and use FontForge to merge any font with japanese characters to it, fontforge will import the characters the original font does not have, so you keep the regular S60 latin letters, adding Japanese support to it.

Open both fonts on fontforge. (it asks me if I want to import bitmap fonts for heisei, I just answered no.)
On the s60***.ttf window, on the menubar, Element > Merge fonts. I get this:

asd

Found on Element > Merge

After it merges (practically instantly), on the S60***.ttf window I go Files > Generate fonts. Uncheck the Validate Before Saving option or else fontforge will complain.

http://www.fwrnando.com/blog/wp-content/uploads/2009/06/Screen-shot-2009-08-02-at-13.05.57.png

Even the font that comes with S60 won't properly validate, so uncheck that.

On the screenshot on the top of the post, however, you see a different font than the standard S60 font. That is Droid Sans (download link), the font used on Google’s Android platform. I got it because I thought it looked kinda neat, as an example for this post. But one thing you don’t have in other fonts, are the characters specific to S60. For example, the space bar symbol, the line break symbol, the cut musical note that indicates the phone’s on silent profile, etc.

picture-1

There they are, hidden in U+F800

Again, you can import those characters with FontForge, so now you can add those UI elements to every font you want to use on your phone.

Now to apply those fonts to your font, you need an application called FontRouter LT to avoid doing the whole renaming and copying procedure font changing used to take, and to make it even more simple, there’s an application called FontRouter Man, so you can turn it on and off with a single menu option.

superscreenshot0020

FontRouter Man's default settings

Now, for the downloads:

Take this post as 10% tip in adding Nokia characters to other fonts, 90% report of my “research”. I’ll try to update it in case I figure out how to add different variants of S60 Sans in FontRouter for the closest default UI look. That or if I figure how to make a lighter mix of the Droid Fonts in order not to crash the phone with arabic.

Update!

So I figured out why modifiying the three variations of S60 Sans wouldn’t please FontRouter.

serifsareforsuckers

Tricky.

Both the regular and the SemiBold version have the same name! That’s why when adding s60snr, s60ssb, and s60tsb to FontRouter, just the regular and the title font would be added.

superscreenshot0021

Notice all three variants: Red uses s60tsb, blue uses s60snr and the list uses s60ssb.

So this puts a conclusion to why I couldn’t use FontRouter to get the closest default UI look. I had to change the fonts the old school way, copying all three modified .ttfs to E:/Resources/Fonts and rebooting. Now I’m considering moving those files to C: (as leaving them on E: breaks mass storage mode (files in use, y’know)). Keep in mind deleting fonts after you added them on E:/Resources/Fonts requires you to boot up without the memory card (to free the files). Hopefully nothing will break, and I’ll be able to have the same fonts as I used to have, with nothing broken, just with added Japanese support.

This entry was posted in Bloggan and tagged , , , , , . Bookmark the permalink. Post a comment or leave a trackback: Trackback URL.

5 Comments

  1. MisterAV
    Posted August 1, 2009 at 2:21 pm | Permalink

    How have you modified the nokia font using fontforge? I tried merging, copy and pasting but everytime it ends with error when saving. Tried with heisei and the normal nokia fonts. I’m using the N95 but the process should be the same….
    Please can you give me an hand? Also the heisei has 3 sizes, which one ot use?

  2. fernando
    Posted August 2, 2009 at 12:07 pm | Permalink

    What error do you get? I’ll edit the post adding my process.

    Ah… now that I’m redoing it, I didn’t mention I unchecked the Validate font option on generating fonts, as even the unmodified s60 sans won’t validate. Maybe that’s the error you got, try unchecking it.

  3. MisterAV
    Posted August 2, 2009 at 4:01 pm | Permalink

    thanks for the reply, i had done this before but it put me an error at the last part of the progress bar when saving. 50 windows of error and after it crashes.
    These are the 3 fonts, can you try, please? http://massmirror.com/d1e81dddffe35cf95dfc9297c207730b.html

  4. konran
    Posted January 25, 2010 at 12:15 pm | Permalink

    I am sorry for posting on the wrong topic, my browser went crazy there! Is there a way you could provide us with the merged files too?
    Thank you!

  5. Totem
    Posted May 4, 2010 at 8:48 am | Permalink

    Have they ported it to Windows yet? IDK how to run that tar.bz2.. I don’t have linux,mac or cygwin.. T_T

Post a Comment

Your email is never published nor shared. Required fields are marked *

*
*

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>