Monthly Archives: January 2006

A tiny library for BLP textures

Update 2009-03-18: Changed the source code paragraph to point to Launchpad.

This doesn’t have a project page yet, but I thought I’d post it anyways.

libblp is a small software library designed to read and output BLizzard Picture (BLP) texture files. This format was first introduced in Warcraft 3 and has been updated to version 2 in World of Warcraft.

libblp currently only supports BLPv1, but I am working on BLPv2 and should hopefully be done with that in a few months at most.

I should also point out that libblp is fully cross-platform and compiles on both Mac OS X and Linux. I’ve tested on little endian and big endian architectures as well.

You can get the source for libblp on Launchpad.

The MPQDraft project

MPQDraft has to be the most crazy project I’ve ever done, short of the oldest (that goes to MPQ2K). I assume most people don’t know or care about MPQDraft, so in a nutshell it is a program originally written by Justin Olbrantz to support the fan-driven StarCraft modding community. I subsequently wrote a Mac program that did the same and simply called it “MPQDraft Mac Edition”, or just MPQDraft to me.

As stated above, MPQDraft came about in the golden age of StarCraft modifications. It was designed to make it easy to load additional data into Blizzard games for modification assets (graphics, sounds, movies, maps, etc.). However, it eventually evolved into a generic framework for loading code modules inside target applications, one of those modules being the venerable MPQ loading plug-in. That made it a much more capable piece of technology which allowed fairly interesting hacks to be developed, such as MP3 playback in StarCraft (yes, that wasn’t a built-in feature of games back then).

On the Mac, this puts us in the Mac OS 9 era, and consequently in a time and age where CFM ruled the land, Warcraft 3 was pure hype and Mac OS X didn’t exist in the collective consciousness. And consequently the first MPQDraft Mac Edition version was designed to meet those conditions. This was only the beginning of a true software hacking saga.

Indeed, I think I must have re-written the program at least 5 times. Once to support Warcraft 3, which introduced a static Storm library model (Storm is Blizzard’s all-purpose utility and porting library. It was a shared library with StarCraft, Diablo 2 and early Warcraft 3 versions, but became static with later Warcraft 3 versions and The Frozen Throne). A second time to support Mac OS X. Yet another to introduce a new way of distributing patches. And so forth. I suppose that’s what you can expect with hacks.

In any case, MPQDraft is pretty much a dead project now, because the world’s attention is riveted on World of Warcraft, which has a thriving and officially supported modding community.

Nevertheless, I have created an MPQDraft project page in order to eventually distribute a final binary build for PowerPC, give more insights into this rather complex program, make the source code available to the world, and distribute the whitepaper I wrote on its methods and designs for WWDC 2005.

Feel free to browse.

A new pebble on the road of life

I am now installed in the basement of a young couple and their 10 years old daughter somewhere in a suburb of Ottawa. They’re nice people and everything would have been fine had it not been for the lack of a high speed Internet connection. I don’t know what they have, but it’s not high speed even though it comes out of a coaxial cable. However, it’s been agreed that this should be resolved as soon as possible, so I’m not overly concerned of being cutoff from resources I depend upon. There isn’t a Wi-Fi network either, but that’s easily resolved.

One may wonder why I would sacrifice the conforms of my home, the power of my desktop computer (which I could not bring with me) and the freedom of my unlimited high speed Internet connection for this internship. First of all, why do an internship during the winter semester (that isn’t a typical behavior), and second of all why so far? The answer is 4 letters long: WWDC.

The biggest one ever

It’s pretty easy to see that WWDC 2006 will be hugely important for Mac developers. It will be the first WWDC with retail Intel-based Macs in existence. Mac OS X 10.5 will be discussed in details. The very future of Mac OS X will be debated in bars and pubs after long days of learning and exchanging with fellow developers. It will be like a huge. And I certainly don’t want to miss out.

It takes dollars, among other things

Of course, going to WWDC isn’t free. Let’s make a small list of expected fees:

  • Plane ticket, Quebec City to San Francisco and San Francisco to Quebec City: ~ $760 CD
  • WWDC early registration badge: ~ $1300 USD -> $1534 CD
  • ADC Student membership: $99 USD -> $116.82 CD
  • One week lodging, shared: ~ $400 USD -> $472 CD

And the total comes at ~ $2882.82 CD. That’s a lot of money, and I was very conservative in my estimates for lodging, not to mention I completely excluded “operational fees” like food. Without being irrational, the total cost of going to WWDC is close to $3000 CD. That’s even more a lot of money.

Start early

Consequently, I decided to do a paid internship during the winter semester to insure my participation in the most important event of the year on my calendar. However, I took that decision relatively late into the fall semester, which limited my choices. Short of doing Windows MFC programming and condemning my soul to eternal damnation in a special hell, I hit the road to Ottawa.

Let go of reality

With my current situation explained, it’s time to leave the globe of Real Life behind for some time and concentrate on entries more relevant to the nature of this blog. Unafraid to repeat myself, I therefore sign off with the prospects of some much-awaited entries on Riven X and other ongoing programming efforts.

Updated vCard

I have update my vCard to contain my internship housing address and my mobile number. You can download it from the About Jean-Francois Roy page.

In other news, I’m currently planning my move to WordPress 2.0 in addition to a brand new theme, which hopefully will be more unique and distinguishing than what I presently have.

Things are obviously going to be pretty hectic in the coming days as I settle in my new residence, so regular posting will probably have to wait until mid-next week.