VGA library - now with TV output

I have been working on drawing bitmapped graphics with this library using a couple of techniques:

8-bit, 256 colour PNG images converted to unsigned char arrays of pixels

I have written a utility in Ruby that I'm finalising, which will convert 8-bit PNGs for display using Due VGA. It references a colour-palette PNG image that contains all the displayable colours on the Due, re-ordered so that they are correctly converted to their binary value.

8-bit, 16 colour PNG images converted to one-pixel-per-nibble unsigned char arrays

I have written a utility which, when given a 16-colour index palette, will produce an image at half the storage size. You will only have access to 15 actual colours, as index 0 is reserved for transparency.

Both of these things are in my GitHub and are highly experimental and very unfinished; https://github.com/Gadgetoid/Due-Megadrive-Controller/tree/Tinkering

See the Tools and MDC_VGA folders.

I have also produce an 8-bit palette which can be used with Adobe products (and possibly others) for compressing images for optimal display, see Tools/8bit-truecolor-palette.act

And, finally, a couple of photos to show what you can achieve with these tools:


UPDATE: I have now migrated the Arduino Due VGA specific stuff to a new repository, it was getting cluttered in with my MegaDrive controller library: GitHub - Gadgetoid/Arduino-DueVGA-Tools: Tools and code examples for converting/displaying bitmapped graphics on the Arduino Due using the DueVGA library.

And I've also thrown together a colour table which you can see here: http://pi.gadgetoid.com/arduino-due/DueVGA-colour-table

UPDATE 2: From an idea I had this morning. HSV to RRRGGGBB conversion: Arduino-DueVGA-Tools/DueVGA_HSV.ino at master · Gadgetoid/Arduino-DueVGA-Tools · GitHub

@Stimmer this code could be dropped straight into a SetPixelHSV function.