winconaa

a *color* ASCII-art SDL video driver for the Win32 console

by Jeremy Stanley
December 22, 2003

Download

What?

This is an SDL backend that will make SDL applications draw ASCII art to a console window instead of drawing actual colored pixels.  It's inspired by aalib, but it's in color (but is otherwise nowhere near as advanced as aalib is--no dithering, no gamma, no portability, just a quick hack).

Why?

If you have to ask why, you're not part of the intended audience.  Go play your games with your Radeon 9800XT in 1280x1024 with 4xFSAA and 16xAF instead.

To run a program with the winconaa driver:

  1. Put the modified SDL.DLL somewhere where your program can find it (such as in the same directory as the executable).
  2. Tell SDL to use the winconaa driver instead of a real one. (Even though my modified SDL.DLL supports ASCII art output, it still uses the boring old directx driver by default.)
    set SDL_VIDEODRIVER=winconaa
  3. If your program doesn't run in ASCII-art mode, make sure that it's linking against the correct SDL.dll.  Please note that if an SDL.dll exists in the same directory as the executable, that one will be linked first.
  4. It looks best if you change your console font to 8x8 from the default 8x12. Or, for the full effect, hit Alt+Enter and run in TEXT MODE!
  5. When you're done playing with winconaa and you want to use a real video driver,
    set SDL_VIDEODRIVER=directx.

Software known to work under the winconaa driver

Theoretically, any software rendered (non-GL) SDL app should work, but I've only personally tested these.

Screen Shots

Before
D2X - normal

After
D2X - ASCII


Implementation notes (a.k.a. bugs):

To build SDL 1.2.6 with the winconaa video driver:

  1. Download and extract the SDL 1.2.6 source distribution somewhere.
  2. Switch to the directory where you extracted it.
  3. Apply the patch (e.g., using Cygwin)
    patch -p1 < SDL-1.2.6-src-winconaa-patch
  4. Load the appropriate project workspace for your compiler.
  5. Add the contents of src/winconaa to the project.
  6. Set up a global preprocessor symbol called ENABLE_WINCONAA.
  7. Build!

Links to other similarly demented projects

Contact the author

Message Form