Hi! What have you been up to? Me? I’ve just been working on a new, “open” AAC spec by reverse engineering FAAD2. Why? Oh, I don’t know. I just have this obsession with documenting multimedia technology. I imagine it could prove useful if someone wished to, for example, implement a fresh AAC decoder.
Category Archives: Open Source Multimedia
Meet mlbms
Janusz Dziemidowicz has been making some nifty progress with his mlbms program for mounting game resource archive format (GRAF) files. Check this out:
$ mlbms bms/alg-lib.bms resource-files/alg-lib/maddog.lib mount/ $ ls -al mount/ total 1 dr-xr-xr-x 2 melanson users 0 Feb 26 23:05 . drwxr-xr-x 7 melanson users 1120 Feb 26 19:07 .. -r--r--r-- 1 melanson users 305172 Feb 26 23:05 alg.mm -r--r--r-- 1 melanson users 24912 Feb 26 23:05 credits.mm -r--r--r-- 1 melanson users 314245 Feb 26 23:05 ibmlogo.mm -r--r--r-- 1 melanson users 338277 Feb 26 23:05 scen110a.mm -r--r--r-- 1 melanson users 278177 Feb 26 23:05 scen112a.mm [... ad nauseum ...]
Slick, huh? I knew you’d think so. This command mounts the LIB GRAF from Mad Dog McCree as part of the normal filesystem.
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 http://multimedia.cx/sdl-corruption/. 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.
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.
AVS Implementation
Thanks to Aurelien Jacobs for implementing a complete FFmpeg playback system for the AVS format. And thanks again to VAG for reverse engineering the system in the first place. It takes dedication to work on such a format that was used in one known game, Creature Shock. Well, more than one if you count the DOS, 3DO, Sega Saturn, and CD-i versions separately, and even more than that if you count the special “director’s” edition (I still need to log that one into MobyGames).
To be fair, the people behind Creature Shock went on to make a few other video games that you likely never heard of, like Alien Odyssey and FX Fighter. Both of these games contained FMV (the former being another FMV-driven game) and the formats are suspected to be influenced by AVS.