MPQKit

News

January 9, 2008
MPQFS has been updated to version 0.3.3. See the MPQFS 0.3.3 release blog post for all the details.

October 31, 2007
mpqfs has been updated to version 0.3.1. This new release fixes various issues with Leopard and requires MacFUSE 1.0, which itself brings an enormous amount of enhancements to all FUSE filesystems on Mac OS X. See the sidebar for a download link. As an additional reminder, mpqfs is also open-source and part of the MPQKit project.

August 13, 2007
MPQKit 1.0b2 has been available since June (announcement blog entry). It contains a number of bug fixes, code architecture changes, updated documentation and support for 64-bit architectures.

April 2, 2007
MPQKit 1.0b1 is now available. There are no release notes, but the changes are extensive since the last release. New HTML documentation has also been generated.

MPQKit 1.0b1 also marks the end of my support for Mac OS X 10.3. Indeed, MPQKit now makes full use of NSError, NSLocale and many other methods and classes introduced in Mac OS X 10.4.

March 21, 2007
The MPQKit refactor effort is nearly complete. Documentation has been improved, NSError variants of most methods are available, version 1 archive support is complete, and much more. Once this is complete, there will also be updates to the MPQ specification concerning various topics such as the new MPQ0xB shunt mechanism and new file flags.

January 27, 2007
The MPQKit Trac development wiki has a detailed specification page on the MPQ format where you can find the details of the structures and algorithms used in MPQs since Diablo up to Burning Crusade.

Speaking of which, MPQKit was the first third-party MPQ library to properly read the new extended archive format introduced by Burning Crusade (it may still be the only one, but I don’t know that for a fact), and recently gained the ability to compute and verify the two kinds of digital signatures known to exist. Justin Olbrantz and I also managed to extract most (if not all) of Blizzard’s in-use public RSA keys in order to verify archives they sign.

Finally, there is an on-going effort to refactor MPQKit to offer better interfaces, more performance and support for writing extended archives.

September 25, 2006
Revision 22 has some important fixes for Intel Macs and archives with offset adjusted encryption keys.

September 2, 2006
I have just brought online a Trac wiki for MPQKit, which outside of the obvious development tools it provides will also be used to document the MPQ format. Already, Quantam has posted his latest MPQ specification text file, which covers modifications to the MPQ format made in the upcoming World of Warcraft: The Burning Crusade expansion to the popular MMORPG. New code should hit the repository soon to support those additions to the format.

I will also be receiving my Mac Pro at the end of September (finally an Intel Mac for me), which will allow me to do proper testing of MPQKit on that architecture. Once that’s done, expect a binary distribution of the framework.

January 20, 2006
Updated MPQKit to require Mac OS X 10.3.9 on PowerPC architectures and Mac OS X 10.4 on the Intel architecture. Previous universal binary releases required 10.4 on all architectures due to limitations (or lack of knowledge on my part) in the Xcode build system.

October 30, 2005
Well, we’re a month late, but MPQKit’s source code is finally available to the public. It didn’t take long at all to clean it up, but I couldn’t spare the time until this weekend. In addition to the Subversion repository, I will soon bring online a Trac wiki to handle bug reports and other such items.

A new binary build is also available, which contains an important bug fix concerning compressed fragmented files. You can grab 0.1.1 (r17) from the sidebar.

August 23, 2005
This page is still under construction for the most part, but I wanted to put the framework and documentation online as soon as possible. I’ll have some much better content coming in the near feature, including some design discussion, sample code, etc. In addition, I’ll open source MPQKit in September after I’ve cleaned up the code and documentation.

Summary

MPQKit is an object oriented Foundation-based framework for interacting with MoPaQ archives, the data storage brainchild of Blizzard Entertainment Inc. It supports a number of operations such as file extraction, addition and listing spread across 2 principal classes, MPQArchive and MPQFile.

MPQKit is universal and is tested on both PowerPC and Intel hardware.

The MoPaQ archive specification

MoPaQ archives are fairly complex. Justin Olbrantz, one of the pioneers of MPQ editing, has written a fairly comprehensive and accurate specification of the structures and algorithms used in MoPaQ archives.

Minimum Requirements

  • Mac OS X 10.4

Download MPQKit
Version 1.0b2 (v169) - 287 KB - Universal
Download mpqfs
Version 0.3.3 (v233) - 1.95 MB - Universal

MPQKit is open source. Visit the MPQKit in Launchpad site, where you can consult and file bug reports, browse the source code, and get documentation on both the framework and on the MPQ format. To checkout or branch MPQKit, you will need to install the Bazaar distributed version control system.