This article is Part 1 in a 1-Part Series.
- Part 1 - This Article
In the first part of this series we will be looking into the data structures of MPQ archives which were originally used to deliver and update World of Warcraft.
In part 1 of this series we will focus on the format of MPQ archives and provide a solid archtectural overview with the goal of enabling us to implement both read and write support for MPQ archives.
While typical archives - such as TAR or ZIP - exist as standalone files, MPQ archives can actually exist as standalone archive and as embedded archive within an executable for easy delivery of updates.
Examples for these types of archives would e.g. be
- the original installation disks: coming with the
Installer Tomearchives, providing the baseline for the World of Warcraft installation
- the update archives shipped as MPQ files that can be applied using
BNUpdateincluded in the games’ later releases.
- the patch files shipped as executable for Windows and macOS, where an executable would have the archive contained within.
Throughout this post we have been relying on two primary resources as reference material for our own implementation: