LibCaCa is lgpl'd software, so in order to follow the licensing terms,
I have to publish any changes I've made.

So.

LibCaCa can be acquired from:
http://sam.zoy.org/projects/libcaca/

The LibCaCa dll was compiled using libcaca source release 0.9 and 
the provided vc6 project files. Additionally, two lines were added 
in graphics.c:

		_caca_width = 80;
		_caca_height = 50;

right after 

        _caca_height = csbi.srWindow.Bottom - csbi.srWindow.Top + 1;

to force the use of 80x50 mode.

LibCaCa 0.9:s console output code is rather slow (40-80(!)ms on my PC), 
so I replaced it with the code from Textfx4 (which is less than 1ms):

-- 8< -- 8< --
		/* Convert textmode screen map to CHAR_INFO array */
		CHAR_INFO *ci;
		COORD max, src;
		SMALL_RECT outrect;
		unsigned int i;
		ci = malloc(_caca_width * _caca_height * sizeof(CHAR_INFO));
		for (i = 0; i < _caca_width * _caca_height; i++)
		{
			ci[i].Char.AsciiChar = *(win32_char + i);
			ci[i].Attributes = win32_fg_palette[*(win32_attr + i) & 0xf] | win32_bg_palette[*(win32_attr + i) >> 4];
		}
		// set up size structs
		max.X = _caca_width;
		max.Y = _caca_height;
		src.X = 0;
		src.Y = 0;
		outrect.Top = 0;
		outrect.Left = 0;
		outrect.Right = _caca_width - 1;
		outrect.Bottom = _caca_height - 1;     
		/* write result to the console */
		WriteConsoleOutput(win32_front, ci, max, src, &outrect);
		free(ci);
-- 8< -- 8< --
