Arbitrary Font Images

From IPodWizard.net Wiki

Contents

Introduction

This method allows you to insert images into fonts. For example you can;

  • Change the length of a string (Not byte-wise, but in appearance.)
  • Add icons to the menu.
  • Change your iPod string into an image.

The basic idea is to substitute certain characters in the font, and replace them with images.

Prior Reading

  • Basic understanding of character encodings.
  • Good understanding of iPodWizard, including its font and hex string editor.
  • Good understanding of image processing, down to pixel level.

Limitations

  • Maximum height of the images is the height of the font you're editing (typically the main font.)
  • Images will only have the bit depth of the original font (typically 1- to 4-bit gray scale)
  • For every image you put in, you will have to sacrifice real litteral characters (you can't change the length of the font bitmap and just add at the end)
  • To use this technique, you need at least a three byte string, or else you will have to do some major sacrificing of characters, and metrics editing.

Tutorial

This guide was written for the iPod Nano, but it works on any iPod in practice. I will show you how to change the "iPod" string on an iPod nano into an image.

  1. Begin with loading your updater into iPW, and select your firmware.
    Then save the font bitmap and metrics file of the main font (index 29).
    I also advise you to save a backup copy of each. You never know!
  2. The bitmap should be 7600 pixels wide, and 15 pixels tall.
    Here's how the last 200 pixels look:

    Image:lubbi1.gif

    Now we're going to create a 100 pixels wide image at the very end of the file.
    100px because that's about the width that fits in the header of the iPod nano.
    It will cover the "ffl's", the apple, and some of the digits.
    Don't worry, those aren't the normal digits, they are at the front of the bitmap.
    Also, I have never seen the apple or any other of the character at the end used for anything.
    But who knows, they might be.
    This is where the sacrifice comes in, as you will mess up those characters.
    It's all up to you.
    Again, the last 200 pixels of the font bmp, now with my custom 100px iPod string character at the end:

    Image:lubbi2.gif

    Remember that white is transparent.
    Save the image and load it into iPW as the main font.
  3. Now we'll edit the metrics of that character.
    Scroll to the very last character using the Unicode hex code point list (marked in pink below).
    Edit this character, and make it 100 pixels wide.
    Mine looks like this:

    Image:lubbi3.gif

    Save the metrics, and Write the firmware.
    You now have a funky character to insert into your iPod string.
  4. Look up the iPod string in the firmware (picture below).
    Now you will need to change this string to only hold the U+FB04 character we edited.
    First, we convert this Unicode hex code point into the UTF-8 bytes the iPod likes.
    Here's a good tool for that: UTF-8 Tool
    Enter "FB04" as the hex code point, and it will produce the UTF-8 bytes "EF AC 84".
    That's what we need to enter into the iPW hex editor!
    Do NOT use the "Change string" function for this.
    Locate the iPod string in the hex editor.
    It will look like this: "69 50 6F 64"
    You need to change it into: "EF AC 84 00"
    Don't forget to add that extra "00" as padding, since the new string is only three bytes, where the original one was four bytes long.

    Image:lubbi4.gif

    Write the changes to the firmware, downgrade your iPod if possible, and run the updater, and update your iPod.
  5. Enjoy!

    Image:lubbi5.jpg

Original tutorial by lubbi

Pre-Made Themes

iPod Nano

Menu Icons 2.0 by lubbi
Nano Nova by lubbi

5G menu icons by darkmatter

more 5g icons by inferno1158

SourceForge Logo