Monthly Archives: August 2009

Klondike Moon SEQ

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.

Lots of FATE Compiler Maintenance

I was working like a madman on FATE’s compilers tonight. Let’s see:

  • Added gcc 4.3.4 to all of my Linux configurations (x86_32, x86_64, and PPC), decommissioning 4.3.3
  • Added gcc 4.4.1 to Linux/32- and 64-bit x86, decommissioning 4.4.0 (had already done this for PPC some time ago)
  • Upgraded the gcc SVN snapshots for all 3 Linux machines
  • Upgraded the LLVM SVN snapshots for 32- and 64-bit x86 Linux; this does not solve the build problem for 64-bit (remind me again how LLVM will save us from the tyranny of gcc); Update: solved; thanks for the help in the comments
  • Temporarily solved the Intel C Compiler conflict with ccache by disabling ccache when building with icc, thereby crippling build capacity but keeping the builds honest

This all feels like it was way more work than it should have been. Opportunities for improvement abound, starting with my plot for auto-recompiling the gcc and LLVM snapshots and automatically placing the snapshots into service as outlined in a previous post. It should just take an evening if I can get down to it.

I know I have outstanding requests to add LLVM (32- and 64-bit) for Intel Mac. That sounds reasonable, and it would be great to hook up the auto-update script to that LLVM process as well.

Reflections On On2

I read something in the past few months which noted that, in this day and age, the ultimate phase of any tech startup’s business plan is to be purchased by Google. Viewed through that lens, On2 is about to live the dream, even though they existed years before Google, years before most people even knew what a search engine was.


Assorted logos of Duck, On2, and Google

So Google has announced its intention to purchase On2. Wow, it feels like the end of an era. It seems like I’ve had some relationship with On2 for the entire 9 years I’ve been into multimedia hacking. Something that got lost in yesterday’s coverage and commentary was that On2 started life as the Duck Corporation, also a codec company. During this period, they largely focused on gaming applications. But I’m pretty sure that RAD Game Tools kicked them out of that market with their Smacker and Bink technologies. However, files encoded with the Duck’s multimedia codecs were among the first I studied back around 2000-2001. So that always makes me sentimental.

Continue reading

iOpenAppStoreMetaData

For my latest silly little project, I created an offline database containing information about Apple’s iPhone App Store, made it browseable offline with full text search, and even generated some nifty charts and tables about the apps. Wanna see?

Go here for all of the juicy data.

Introduction
Have you ever gotten one little spark of an idea and started to research and prototype it, only to have it snowball into something absolutely unrecognizable in a short period of time? As I write up this idea, I can scarcely remember how I started down the path of creating an offline, web browser-accessible version of Apple’s iPhone App Store. On the way, I learned a bunch about modern web programming and even full text search.

What’s wrong with me anyway? Why can’t I do simple exercises to come up to speed on certain well-established concepts? I think normal people would start out by developing trivial websites showcasing pictures of their cats when trying to get up to speed on modern web development. But no, not me. No, I just have to punish myself by dreaming up the most outlandish scenario in which to learn some technology, purely as an ancillary goal to a bizarre primary focus.

The Pitch
Look, here’s how it happened: Remember, I contribute heavily to this video game database called MobyGames. The database excels in archiving data about arcane systems and obscure, archaic titles. That, and Barbie games, thanks to my tireless efforts. The database has challenges keeping up with all the latest and greatest releases for all kinds of systems. However, this whole iPhone App Store thing is really throwing us a curveball. In just a little over a year, over 13,000 unique titles categorized as “games” have accumulated for the iPhone/iPod Touch system. At the time of this writing, MobyGames has cataloged a meager 111 of these titles.

Continue reading