Wednesday, 5 November 2014

Starting to write tests for 16-bit text mode, including proportional fonts

I have been bashing away at a little test program that demonstrates printing unicode strings using a proportional font.

This involves looking up the glyph in the font, then getting its tile map, and then building the screen lines to draw and several other steps.  While none of these steps are too complicated, it does make for about 1KB of code, including switching screen modes and setting the palette to a grey gradient since I don't have the alpha-blender working yet.

I could have settled for just a simple hard-coded test, but I think it is worth exercising the whole idea of how I intend to draw proportional fonts to make sure that it is feasible.

Anyway, it's got late, and I haven't got the code working yet, but I did spend a few minutes hand picking the necessary tiles and setting the kerning values to narrow the characters down so that it looks half-decent.


The main visual glitch is that single pixel resolution of the kerning is not working for some reason, so the gap between "H" and "e" is one pixel too wide.

Also, the colour cube that the VNC viewer uses butchers the gradient, and so some of the shading looks weird.  On the real screen this looks quite a bit better. Nonetheless, the result is pretty reasonable for a first go at it, and will certainly look nicer once I figure out why it is ignoring the least significant kerning bit so that there is no big gap between "H" and "e".

2 comments:

  1. Oh this made me happy inside, I had to giggle. Yes, the first thing I noticed is that there is a bit of a green cast. The second thing I noticed was that large gap between 'H' and 'e'. I'm glad you say they are because of glitches. Quite cool.

    ReplyDelete
    Replies
    1. Hello Daniel,

      Glad you like my abominable display :)

      Talking of the greenish cast, we are just about at the point where it would be easy to write a pretty nice looking matrix display. Hardware horizontal flipping of glyphs would come in handy there, too.

      Paul.

      Delete