New Fonts for Graphics

Posted on
  • I have added some new fonts and improved the Font Module page to accurately show what characters (and where!) they are:

    http://www.espruino.com/Fonts#font-modules

    These new fonts are based on some X11 fonts, and while they use up a bit more space, you can (finally) get good support for international (non-english) characters that are in the 128-255 character code range as well as some more professional looking characters.


    1 Attachment

    • Screenshot at 2018-12-05 16-55-34.png
  • This this fantastic, Thanks!

    I want to create even some larger font and experimented with
    espruino_scripts. Result is not too bad just needs some pixel work.


    2 Attachments

    • Sample_f20num_and_double.jpg
    • f20num.jpg
  • first line: FontHaxorNarrow7x17
    second line: double FontHaxorNarrow7x17

    See source for details.


    1 Attachment

    • Sample_HN7x17_and_double.jpg
  • Inspired by this I had to try out something that's been knocking around my mind since I got it - I had to return to my roots and try out the Sinclair font on my Pixl.js. It's too big to be practical, in reality, but if anybody has any interest I'll tidy it up and share it.


    1 Attachment

    • IMG_20181206_174751217.jpg
  • Is that the zx80 font? My first computer!

  • It's the ZX81 (at least the uppercase is) and Spectrum font, so from a year down the line. Almost all the characters are in a 6x6 grid in the centre of an 8x8 character; IIRC the ZX80 font was more like a 7x7 grid.

  • That's fantastic!

    The STM32s can do TV out (http://www.espruino.com/Television) so you could end up making something that looks very familiar!

    I'm not sure how you're making the font, but potentially you could make it variable width (this script will do that: https://github.com/espruino/Espruino/blob/master/scripts/create_custom_font.js) which might make it a bit more useful on the Pixl.

    I'd love to have it in Espruino, but actually I'm a little unsure whether I'd be legally ok given the copyright on it :( I guess if it was a "sinclair-style" font that's been made to look like the original without actually copying the ROM then it'd all be fine?

  • The copyright on the Spectrum ROM (and by extension its font) is a gloriously complicated affair :)

    In 1999 Amstrad clarified the issue as best they could at the time; the ROM image itself is distributable without issue provided an Amstrad copyright notice is attached and there's no financial gain. Since then, Amstrad has become part of Sky, and they've taken the same stance but have also clarified commercial usage - if you want to include the ROM as part of a product, especially if you use the Sinclair and/or Spectrum trademarks, you need to license it (which involves payments to a charity of their choosing). If it's something that can be downloaded onto flash memory for use, the copyright notice is all that's needed. In short, this is why the ZX Uno can exist as a wholly open source device, while the ZX Spectrum Next project is making payment to Great Ormond Street Hospital.

    TL;DR - provided there's a copyright acknowledgement it's OK :)

    I think later on I'll be getting an original Espruino hooked up to a monitor to satisfy that itch!

  • That's perfect then - thanks for looking into it! I'll just make sure the copyright is mentioned where the font is listed.

    All you need then is the code from http://www.espruino.com/Espruino+Home+Computer :)

  • Here's the font!

    https://gist.github.com/IrregularShed/38f91e1bd53152681957f701454cc391

    The 'raw' js URL that Github creates is far too long for Espruino so I tested it using require('https://goo.gl/JTR7Gc').add(Graphics); - it looks wonderful on a TV! I'll bodge together a VGA connector next to try that out...

    The Home Computer project is on a list of things I want to try already, but I'd really like to try and get a PS/2 keyboard to work so that I could use that. Membrane keyboards are so ZX81... ;)

  • Thanks! Just stuck it in GitHub, so it should be live next time I update the site :)

    I haven't actually come up with a PS/2 module yet, but the data argument of setWatch was made for exactly this sort of thing. If you setWatch on the PS/2 clock, with data as the data line then you should be able to receive the PS/2 data pretty well.

  • Looks like I've got (yet another) project to try and squeeze into the Christmas break!

  • Post a reply
    • Bold
    • Italics
    • Link
    • Image
    • List
    • Quote
    • code
    • Preview
About

New Fonts for Graphics

Posted by Avatar for Gordon @Gordon

Actions