Breaking Eggs And Making Omelettes

Topics On Multimedia Technology and Reverse Engineering


Klondike Moon SEQ

August 19th, 2009 by Multimedia Mike

I played an old DOS game a few months ago by the title of Klondike Moon. I really didn’t comprehend it at all. The gameplay dealt with outerspace mining while the storyline was something about paying off your debt with the proceeds of your labor while also actively thwarting your opponents from making good on theirs. That struck me as odd– it wasn’t about stealing what they had, it was merely a scorched earth matter to ensure that they couldn’t prosper.

Klondike Moon Title

But taking a second look at it recently, I noticed that the CD-ROM has a VIDEOS/ subdirectory. Clearly, this directory holds the FMV for the game. Each FMV is actually spread across 3 files: A .VID file (I’m presuming this is the video data), a .SFX file (looks to be raw, unsigned, 8-bit PCM), and a small .SEQ file (I suspect this ties all the data together). There are 23 .SEQ files which are either 26, 37, 103, 114, 158, 312, or 1280 bytes large. These numbers all happen to be divisible by 11 if 15 is first subtracted away which leads me to believe that each contains a 15-byte header followed by a series of 11-byte records.

Meanwhile, the .VID files clearly begin with 768-byte palette. I don’t think that the frames are uncompressed, paletted images, or else the frames are not a common width.

I’m trying to remember a formula — I seem to recall something from the discrete math branch of mathematics — for doing remainder math, something involving an operator that looks like an equal sign but with 3 bars instead of the customary 2. It turns out that the concept I am searching for is modular arithmetic. I was hoping that this could lead me to a formula that would show me possible frame dimensions given the size of the files, but I’m too tired to figure it out right now. You’re welcome to study the files and their sizes, though.

MultimediaWiki page and samples, as is customary.

Posted in Game Hacking | 2 Comments »

2 Responses

  1. Reimar Says:

    Well, gzip tells me it is uncompressed (it compresses to 65% of the original size – I think the only “compressed” format that allows for that is DV with pcm audio).

  2. Reimar Says:

    And as you can see by looking at the beginning with the many 0 in-between, the width quite clearly is 320 (compare how similar e.g. the data at offset 0x55f0 and 0x5730 is, those are obviously adjacent lines).
    I have to somewhat correct myself. Use gimp, select “Raw image data” as format and open the file.
    In the preview select “Indexed”, “offset 768”, “width 320” and if you want the palette and you see the first image (size 320×200).
    Obviously the rest is indeed in some way munged…