Monthly Archives: January 2007

State of the Blog for 2006

Late, I know. But here goes for a small look-back on 2006 and what I am up to.

Projects

I am rather unhappy about the progress of my personal projects, or rather lack thereof, for 2006. Although there has been a number of achievements, like figuring out the format of Riven’s special effect files, determining the padding on Riven’s audio files and reverse engineering Blizzard’s extended MPQ archive format as well as a working implementation of MPQ digital signature verification with extracted Blizzard public keys, Riven X is still a far way from being done and I still don’t have released 1.0 versions of my 2 basic MPQ tools (DropMPQ and MPQ Extractor).

Nonetheless, work continues 2007 should see progress across the table. Presently, I am investigating a new file flag in Burning Crusade’s MPQ archives (0×04000000), weird Riven X crashes in current seeds of Mac OS X 10.5 (may be related to the inter-thread communication code) and a simple World of Warcraft repair utility (which I may or may not finish). Looking further, I will continue MPQKit’s refactoring and rewriting for support of extended archives and work on making Riven X playable, which immediately implies implementing hotspots and state variables.

I am also declaring MPQDraft End-Of-Life. Too many hoops to jump through on Intel Macs. Besides, currently (very) popular Blizzard games have awesome user modification capabilities. However I may revisit this decision, if only with the goal of providing some manner of legacy support for modifications using MPQDraft (most of them are StarCraft campaigns).

This shall be the year of the 1.0s!

Blog

I obviously need to write more often on this blog. I suppose it’s a matter of self discipline. In any case, here are some topics I want to write about:

  • Multithreaded programming. Mac OS programmers may very well have a head start on this one considering Apple’s hardware history – they’ve been selling MP machines for a while now. Justin Olbrantz has posted a number of them already, and I intend to follow suit and cover algorithms, data structures and best practices for taming MT software engineering.
  • Somewhat related to the above is asynchronous IO on Mac OS X. Specifically, I want to finish and publish a comparison of certain operations in MPQKit done with and without AIO. I originally had planned to post this in December 2006, however the code ended up needing a lot more work.
  • OpenGL and shader programming on Mac OS X. Another topic I particularly like. And who knows, maybe I’ll get crazy and start a project to have a good shader editor on the platform – no offense Apple, but GLSL Editor is still terrible compared to say RenderMonkey.

This concludes this state of the blog for 2006.