Wednesday, September 3, 2008

Hack week project

This hack week I choosed to do an ansi art viewing tool. Called M-Draw.

Back in the 90' I had an own bbs system running and ansi art was used for the menus. There were some ansi art groups like ACiD or iCE who made an art out of textmode drawings.

I made an tool to load and convert different formats. During the years many formats were invented. I tried to make load/save routines for all these formats.
During the hack week I had support for following formats:
  • ANSI - this is the standard format
  • AVATAR - this is a format for making the images very small
  • PCBoard - this format was used by a BBS system (link)
  • BIN - standard binary format (just like saving the screen buffer memory to a file)
  • ASCII - plain, colorless format
First I tried to make a console application (with editing capabilities).
But this was more complicated than excepted and I switched to a GTK interface (without editing capabilities).
The GUI is able to load & save all formats above.

It is possible to view and edit the meta data information (SAUCE) of the files. One of the nice things is that it's possible to load fonts from TheDraw. TheDraw was one of the most widespread ansi creating tools and it made a format for ANSI art fonts. No other editor was able to load&use the proprietary TheDraw font files.
In the 90' I re-engineered the TheDraw font routines and now I've rewritten them in C#.

Still to do:
  • Adding more formats: X-Bin and Wildcat! BBS (these two are not really important)
  • Support for animation
  • Adding editing capabilities
One of the problems with the console gui was that the old ansi files require the old dos font and the linux fonts are a bit different. Using a custom gtk widget and an old dos font file is much easier and looks better than using the linux console directly. The widget could be extended with zooming support, but for now it does it's job.