Monthly Archives: February 2006

SDL Corruption Corrected

When I do presentations on multimedia technology I make the point that data is more important than code which is to say that understanding data formats is more useful than being able to run binary code. This little exercise is a good illustration of that. Initially, if someone wanted to see the multimedia, they needed access to an original IBM PC to run it as it was originally intended. It is also apparently possible to run it under DOSBox. In that case you are still running the original binary code to interpret the data. Now along comes this third solution which throws out the original code and just interprets the data with portable, open code.

Download Trixter’s original 8088 Corruption package from his site. Download the sdl_corruption.c program and the CGA_FONT.8X8 font file from Make sure you have SDL. Compilation is straightforward on Unix. At the very least, it works on x86 and AMD64 machines running Linux. You are on your own for other platforms.

Corrected Eiffel Breakdancer Image
There, that looks correct, or as correct as it is supposed to look.

I did not bother to add sound output because I was lazy. Hey, I solved the harder problem of rendering the font vectors. I also added a few spiffy features such as allowing the user to seek and pause the video.

SDL Corruption

Pursuant to Alex’s challenge to write a Unix player for Trixter’s 8088 Corruption data file, combined with an interest in re-learning the Simple DirectMedia Layer (SDL) API, I wrote a basic program that takes said data file, a font file, and the hardwired colors in the CGA card and renders the video using SDL. I don’t think the font vectors I scavenged are 100% the same as the ones in Trixter’s IBM model 5150 PC:

Eiffel Tower Breakdancer

In particular, I’m not sure about all of those box characters. I think the box is supposed to be one flat color. Anyway, here is another shot, only from the “Tron light cycles” section of video:

Tron Light Cycles

Followed up in SDL Corruption Corrected.

For The Uninitiated

Upon observing my ‘’ domain name, someone recently inquired what kind of work I do in ‘multimedia’. I responded with a generic explanation of “digital multimedia technology” since multimedia can be kind of a broad field. When pressed to expound upon that term for the benefit of a non-technical person I responded with this:

Digital multimedia technology… you probably know that computers operate in bits– ones and zeros. 8 bits combine to make a byte. Computers store data as bits, retrieve the data as bits, and communicate with each other as bits. My field deals with taking pictures and sounds and converting them into as few bits as possible, and then turning them back into pictures and sounds again.

How’s that? How would you explain “digital multimedia technology” in the simplest terms?


After sorting out Trixter’s 8088 Corruption details sometime ago I started to wonder about FMV on other relatively low-power systems. Let’s consider the Super Nintendo Entertainment System (SNES).

Super Nintendo Entertainment System

The SNES came out quite some time after the original IBM PC (10 years?). Still, the original IBM PC targeted in Trixter’s experiment had several advantages such as more capacity (10 megabytes of HD space), a marginally more powerful CPU (Intel 8088 @ 4.77 MHz), and a pre-defined vector codebook for the FMV hack.

Let’s start with a modest goal: 1 full minute (60 seconds) of full motion video and audio on the regulation Super Nintendo Entertainment System hardware.

Continue reading