History

When Diablo I was released, many people were looking for a way how to play the music
and sounds from the game. Soon, tools started to appear, that used Storm.dll library
(shipped with the game) for reading data from the game MPQs. Blizzard was aware of that
and since version 1.04 of Diablo, Storm.dll contained tricks to prevent people
from using it to read game archives. Althought these tricks can be overcame, people
started to look for an alternative how to read (and also to write) MPQ archives without
relying on Blizzard library.

The first library that was able to write MPQ archives was LMPQAPI, created by Russian
programmer Andrej Lelikov. The library utilized StarEdit.exe
and allowed to call internal functions that were able to create MPQs and add files to them.

Tom Amigo was the first guy who released
a Stormless MPQ Editor,
which was able to read (and also write later) MPQ archives without using Storm.dll.
At about the same time, (year 2000), I started to reverse Storm.dll in order to
get a working, public C++ code that is able to read MPQ archives. As a result,
StormLib v 1.0 was released. As of today (year 2010), StormLib is still being maintained and
is currently able to read files and add files to MPQ archives.

The StormLib library

The StormLib library is a pack of modules, written in C++, which are able to read and also to write
files from/to the MPQ archives. The original version was written for the Win32 platform. There is also
a Linux port, made by Marko Friedemann
and a Mac port, made by Sam Wilkins.
The library is free, no license is needed to use it in your projects. You can download it
from the Downloads section. Should you find any problems
or or malfunctions, please, let me know and also send me the MPQ archive that caused the problem.

StormLib funtions

All StormLib functions are defined in StormLib.h header file. You can also
download the entire documentation for offline browsing.