# December 2025 - News archive
{{begin-newsitem |time=2025-12-24T02:10:42Z |title=Happy Yule holidays |resources=Midvinterblot_Carl_Larsson.jpg |author=Ojan |categories=site |summary=Happy holidays}}

I want to wish everyone happy [Yule](https://en.wikipedia.org/wiki/Yule) festivities! Midwinter in the northern hemisphere has passed, the days are now slowly becoming longer.

Whether you celebrate something or not, I wish you all happy holidays and end of the year.

{{img |file=Midvinterblot_Carl_Larsson.jpg |title=Midvinterblot, by Carl Larsson}}
{{end-newsitem}}



{{begin-newsitem |time=2025-12-23T22:01:47Z |title=mpqcli 0.9.6 released |author=Ojan |categories=StarCraft I, WarCraft II, modding, tools |summary=mpqcli 0.9.6 released, with support for locales and MPQ signature bugfix}}

Just a little while ago, {{highlight |text=Thomas Laurenson}} released [version 0.9.6 of mpqcli](https://github.com/TheGrayDot/mpqcli/releases/tag/v0.9.6). The main highlight is a bugfix for MPQ signatures by him, and support for locales added by me.

MPQ archives uniquely identifies files by hashes of their file names, locale and platform (only one platform has ever been observed and the platform is thus usually ignored). With this release, {{highlight |text=mpqcli}} has support for listing, adding and removing files with different locales.
{{end-newsitem}}



{{begin-newsitem |time=2025-12-22T23:11:49Z |title=MPQDraft 2025-12-22 beta released, plus dedicated page |resources=mpqdraft.svg |author=Ojan |categories=StarCraft I, WarCraft II, modding, tools, site |summary=MPQDraft 2025-12-22 beta released with CLI updates. Also added a page about the tool here on Jorsys}}

I have just released {{highlight |text=MPQDraft}} 2025-12-22 beta, with a CLI interface that has feature-parity with the GUI (with the exception that plugins cannot be configured from the CLI {{dash}} use the GUI once to configure any plugins, and then the plugin should have the same settings saved for later when you run it through the CLI).

I was a bit worried that the CLI would turn into an overly complex beast, but I decided to use [CLI11](https://github.com/CLIUtils/CLI11) which made things very smooth. I am reluctant to bring in any third-party dependencies, but this one is a single C++ header to include, so I figured the trade-off was well worth it.

{{img |file=mpqdraft.svg |title=MPQDraft logo}}

In other news, I have made a dedicated [MPQDraft page](../common/software/mpqdraft.html) with a description of the program and a download link. So, find a download link to the binaries at the [MPQDraft page](../common/software/mpqdraft.html) and as always, find the source on [GitHub](https://github.com/sjoblomj/MPQDraft).
{{end-newsitem}}



{{begin-newsitem |time=2025-12-18T19:29:21Z |title=MpqFileLister 1.1 released |author=Ojan |resources=MpqFileLister.png |categories=StarCraft I, WarCraft II, modding, tools |summary=MpqFileLister 1.1 released, an MPQDraft plugin to intercept Storm.dll calls to open game assets}}

As I wrote [the other day](../archive/december_2025.html#newsitem_2025-12-13T12:31:02Z), I have created a little plugin for {{highlight |text=MPQDraft}} called {{highlight |text=MpqFileLister}}.

Games that use MPQ archives use a library called Storm.dll to access the files inside those archives. A peculiarity of MPQs are that they don't contain the file names of the files inside, but when Storm.dll opens files it does so using the file names. {{highlight |text=MpqFileLister}} allows you listen in to those calls from Storm.dll, and the plugin creates a list of all files that are being accessed.

As I wrote in the previous post about it, the plugin was not working flawlessly, and only listed a subset of game assets. I reached out to {{highlight |text=ShadowFlare}} about it, and after she saw my e-mail a few days later she kindly pointed me in the right direction: I had only been hooking into the `SFileOpenFileEx` calls of Storm.dll, but not the `SFileOpenFile` calls. By intercepting both calls, the asset lists are now complete (at least so it seems to me).

{{img |file=MpqFileLister.png |title=MpqFileLister configuration dialog}}

So, I just released [MpqFileLister 1.1](https://github.com/sjoblomj/MpqFileLister). Changes since 1.0:

- Can now intercept calls to `SFileOpenFile`.
- Support for Diablo I (untested though).
- Support for logging timestamps, in the form of milliseconds since epoch.
- Some UI improvements:
  * More logically grouped controls.
  * Descriptive labels.
  * Keyboard shortcuts.

{{end-newsitem}}



{{begin-newsitem |time=2025-12-15T02:03:05Z |title=MPQDraft 2025-12-15 beta released |author=Ojan |resources=mpqdraft-sempq.png |categories=StarCraft I, WarCraft II, modding, tools |summary=Beta-release of MPQDraft with new GUI}}

I today release [MPQDraft 2025-12-15 beta](https://github.com/sjoblomj/MPQDraft/releases/tag/2025-12-15-beta). {{highlight |text=MPQDraft}} is used to load mods and plugins, with built in support for Diablo I, Diablo I: Hellfire, Diablo II, StarCraft I + StarEdit, WarCraft II: Battle.net Edition, WarCraft III + WorldEdit, WarCraft III: The Frozen Throne and Lords of Magic SE.

{{highlight |text=MPQDraft}}, originally released in 2002 by {{highlight |text=Quantam}} (Justin Olbrantz), immediately became the goto-tool for modding the Blizzard classics.

The beta release contains a completely rewritten GUI using Qt, and the code base has been refactored and modernised. Oddities have been fixed and all [MFC](https://en.wikipedia.org/wiki/Microsoft_Foundation_Class_Library) code, which previously prevented cross-compiling has been replaced. The code can now be compiled from a Linux system with MinGW-w64 to produce a Windows executable. The GUI can be compiled natively under Linux, but not the underlying program as that code is very tied to the Windows platform (and it is 32-bit only!)

{{img |file=mpqdraft-sempq.png |title=MPQDraft SEMPQ Creation screen. Graphics by Joel Steudler.}}

I will try to make some tests to verify that this all works before making a full release. It must be said that there has been some opportunity for bugs to creep in. For example, the original code has around 100 lines of assembly code that it injects, and my AI assistant has translated it for cross-compiling reasons. It is not at all obvious to me from reading the assembly, that it is bug-free. So far it seems to work, and if compiling on a Windows system, the original battle-proven assembly is used, though.
{{end-newsitem}}



{{begin-newsitem |time=2025-12-13T12:31:02Z |title=MPQDraft filelister plugin |author=Ojan |categories=StarCraft I, WarCraft II, tools, modding |summary=Wrote a small test plugin}}

I spent some time last week writing an {{highlight |text=MPQDraft}} plugin, called {{highlight |text=MpqFileLister}}. Games that use MPQ archives use a library called Storm.dll to access the files inside those archives. A peculiarity of MPQs are that they don't contain the file names of the files inside. But when accessing them, the game will call the `SFileOpenFileEx` function in Storm.dll to open those files, and by hooking into that call, we can intercept the file it is attempting to open, thus construct a list of all files that are accessed.

The {{highlight |text=MpqFileLister}} plugin does just that; it hooks into the `SFileOpenFileEx` function call and constructs a list of the accessed files. While the community has long since made complete file lists of all files that are accessed from the MPQs, I still found it interesting to make. It serves as a nice example of how to make an {{highlight |text=MPQDraft}} plugin; it can teach us when files are accessed and from which archive; and it can serve as an example of how to access and poke around in the Storm function calls.

The main reason I wrote it was to test that my {{highlight |text=MPQDraft}} refactoring and modernising did not break the plugin functionality, or the ability to configure plugins. I thus needed a plugin to test with, and it just seemed easier to make one myself than scour the Internet for something.

The plugin is not working flawlessly, unfortunately. In StarCraft, I do get file lists of many game assets from it, but it does not list GRPs (graphics files) nor music files. It must mean the game loads them in some different fashion, but I'm not sure why or how. I reached out to {{highlight |text=ShadowFlare}} with an inquiry about it since she has written similar plugins back in the day and is very knowledgeable in the ins and outs of MPQs, but she has not replied yet. Presumably she is no longer using her hotmail account from twenty five years ago that [her website](https://sfsrealm.hopto.org/) lists, and I have no other means of contacting her.

The plugin is available [here](https://github.com/sjoblomj/MpqFileLister).
{{end-newsitem}}



{{begin-newsitem |time=2025-12-10T11:24:48Z |title=WarCraft II stories |author=Ojan |resources=Warcraft-2-Screenshot.jpg, teamcanada.gif |categories=WarCraft II |summary=The thread on Hacker News spawned some discussions}}

After publishing my text on the [30 year anniversary of WarCraft II: Tides of Darkness](../archive/december_2025.html#newsitem_2025-12-09T07:42:19Z) and [posting about it on Hacker News](https://news.ycombinator.com/item?id=46202921), I'm proud and humbled to see that it has now stayed on the front page for around 24 hours. Many people shared stories and memories in the thread:

{{img |file=Warcraft-2-Screenshot.jpg |title=WarCraft II Screenshot}}

{{beginquote |quote-source=mock-possum}}
my sister and I opened it Xmas morning, then had to wait all day agonizingly to be able to play jt because we hosted the family holiday, we were supposed to be socializing with relatives, not playing computer games upstairs.

We had to wait until after mom and dad went to sleep that night, then snuck up the hall to install it and play it as quietly as possible.
{{endquote}}

---

{{beginquote |quote-source=yoavm}}
This was the first game I was really obsessed with. I remember having one floppy disc and I wanted to copy the game from a friend, so we split the game to ~10 parts, and for a whole weekend I was going back and forth between our houses, "downloading" those 10mb.
{{endquote}}

---

{{beginquote |quote-source=bigstrat2003}}
I love Warcraft II. My first ever RTS, and one of the all time greats even now. The game just has soul oozing out of every pore; you can feel the excitement of the Blizzard guys for the game as you play it. The expansion was great too.
{{endquote}}

---

{{beginquote |quote-source=bfors}}
This game lead me down a path that resulted in me becoming a software engineer. Good game.
{{endquote}}

---

{{beginquote |quote-source=jquery}}
I know the game was horribly unbalanced against humans once bloodlust showed up, but I still quit after they "patched" bloodlust years later in Battle.net. Felt sacrilege, like patching the queen in chess. Yeah, the queen is imba, but that's chess. Beating an orc player as a human was a fun flex.
{{endquote}}

---

{{beginquote |quote-source=Tiktaalik}}
One thing that was delightful about this game was how the community discovered that Farms made for better walls than the actual walls, and so an enormous variety of strategies developed around this. As players developed knowledge of how units were pushed out of buildings, walling off buildings to push units past forest was another strategy that developed from this, creating the potential for sneaky tricks.
{{endquote}}

---

{{beginquote |quote-source=TacticalCoder}}
Back then we were playing WarCraft II over a LAN with... The neighbors. We managed, as teenagers, to snatch some old 10BASE2 "ethernet over coax" gear: cables, BNC connectors and terminators, and most of all ethernet adapter cards.

We weren't fully geared though, so we'd assemble the cables manually, using whatever we could find to attach the connectors.

Then we'd use a long piece of string with something attached to it that we'd throw, from the 2nd or 3rd floor of the house, to the neighbor's house. And then we'd use the string to pull up the coax cable.

And then humans and little orcs would transit through the coax cables.

Oh the memories.
{{endquote}}

---

{{beginquote |quote-source=josh2600}}
You cannot imagine the lengths we had to go to play this game in our home. We were lucky enough to have two apple computers and so my brother and I would play each other using the battle net technology over appletalk. The thing was, the only appletalk cable in our house was barely long enough to make it between the two bedrooms, so when we wanted to play the cable would hang in the air stretched across the hallway where the slightest tug would rip it out of the port killing the match.

The number of times that cable got unplugged mid-game and the inter-household rancor that would ensue is the stuff of legends. I honestly remember the fits we had about whose fault it was that the cord got unplugged more than I remember any specific aspect of those Warcraft games.

It just goes to show, networking topography matters.

WCII ToD is absolutely one of the most insane games to ever be birthed unto the world. It was so brain breaking compared to everything else we were playing at the. time. Just a real quantum leap in terms of dopeness.
{{endquote}}

---

{{beginquote |quote-source=tarsinge}}
I was 10 a the time and yes I’m not sure people realize how magical it felt at the time. When I got it in Christmas 96 on a 68k Mac it felt like it really opened a parallel universe compared to other games.

The graphics (looked like a high res SNES game, which at the time was quite unique on PC), the CD quality soundtrack, the booklet concept art, the unit voices and buildings sounds… as a kid discovering Fantasy it had everything.

And the attention to details, like Christmas string lights on building or a snowman when the map was in winter may seem insignificant, but as a kid it was wonderful.

Even my dad who was not into video games but had played tabletop war games in the past and got hooked and spent a few nights on it to complete a solo campaign.

This is by far the retro game I have the most nostalgia for.
{{endquote}}

---

{{img |file=teamcanada.gif |title=What grunts do in their spare time, by Cyberkarkas}}


A special thanks also to {{highlight |text=barfoure}} who pointed out that "*you can find the War 2 for [PSX](https://en.wikipedia.org/wiki/PSX_(digital_video_recorder)) source on Archive. It has all the Windows stuff commented out. It might be possible to uncomment and compile with something like Borland C or Watcom C or whatever they used*" (they used Watcom C). It seems that [this item on Archive](https://archive.org/details/warcraftIIsourcecodePSX) is what is being referred to, but it appears to no longer be up. I would venture to guess that it can still be found on the deeper parts on the Internet, though. **Edit**: [Here](https://archive.thedatadungeon.com/warcraft_ii_the_dark_saga_1997.html)
{{end-newsitem}}



{{begin-newsitem |time=2025-12-09T07:42:19Z |title=30 year anniversary of WarCraft II: Tides of Darkness |author=Ojan |resources=war2tod.jpg |categories=WarCraft II |summary=It is today 30 years ago since WarCraft II: Tides of Darkness was released}}

It has now been 30 years since WarCraft II: Tides of Darkness was released. After the great response to Warcraft: Orcs and Humans, released in November 1994, Blizzard began working on Warcraft II: Tides of Darkness. Development stared in the first months of 1995, and the game was released in North America and Australia on December 9, 1995.

While WarCraft: Orcs and Humans had laid the foundations of the series {{dash}} arguably even for the RTS genre at a whole {{dash}} it was really WarCraft II that took things to new heights. More units could be selected at once, the player could right-click to issue commands, naval and aerial combat was introduced, and buildings and units could be upgraded. The graphics were more vivid and visually appealing, and features like the Fog of War was introduced, where you could only see in the vicinity of your own units {{dash}} unlike in the first game, where you could indefinitely see any area you had previously visited, you now had to continuously scout the map.

{{img |file=war2tod.jpg |title=WarCraft II: Tides of Darkness}}

Many things still resembled the first game. The two factions {{dash}} the Humans and the Orcs {{dash}} were balanced through their similarites. For every unit and building of one faction, the other had one that was functionally equivalent, and so the sides largely mirrored each other. The only real differences lay in the spells available to their higher-level units. In that regard, the clear winners were the Orcs, who had a tremendous advantage thanks to the incredibly powerful and unbalanced Bloodlust spell of the Ogre-Magi.

It is quite impressive that Blizzard managed to release a title of such quality in such a short span of time, especially considering that the overall design and gameplay evolved during development. Originally, Blizzard’s concept blended modern and fantasy elements, such as fighter pilots being ambushed by a fire-breathing dragon. In the Alpha version (it is still probably floating around somewhere on the Internet) which was given to magazines for review shortly before the game's release, players could, for example, mine rocks which acted as an additional required resource.

Several versions and bundles of WarCraft II were released over the years:

- WarCraft II: Tides of Darkness, originally written for DOS, though it had a Windows launch screen and ran well under Windows 95. A Macintosh version was also released. The DOS version supported multiplayer games via null modem cable, modem, or IPX, while Mac players could also play via TCP/IP or AppleTalk.
- WarCraft II: Beyond the Dark Portal, the expansion, released in April 1996.
- WarCraft: Battle Chest, released in 1996, was a bundle which included WarCraft: Orcs and Humans, WarCraft II: Tides of Darkness, and WarCraft II: Beyond the Dark Portal.
- WarCraft II: The Dark Saga, released in 1997, was a port for the Sega Saturn and PlayStation consoles by Electronic Arts, including the campaigns from both Tides of Darkness and Beyond the Dark Portal.
- WarCraft II: Battle.net Edition, released in 1999, ported the game's code to Microsoft Windows, fixed some minor bugs, and enabled multiplayer support via Blizzard's online service, Battle.net.
- WarCraft II Battle Chest, released in 1999, included the Battle.net Edition and its official strategy guide.
- WarCraft II: Remastered, released in November 2024, is modern remaster of Tides of Darkness and Beyond the Dark Portal, with improved graphics and updated controls.

WarCraft II: Tides of Darkness received enthusiastic reviews, elevating Blizzard to the top ranks alongside Westwood Studios, id Software, and LucasArts. The rivalry between Blizzard's series and Westwood Studios' Command and Conquer series helped fuel the RTS boom of the late 1990s. PC Gamer US named WarCraft II the best game of 1995, calling it an "easy" choice and writing that "Warcraft II stand[s] out {{dash}} way out {{dash}} as the most impressive, most entertaining, game of 1995". The editors also awarded it Best Multi-Player Game of 1995.

WarCraft II was notable for the large number of third-party utilities created for it. Quickly, {{highlight |text=Daniel Lemberg}} reverse-engineered and published the map file (*.pud) format and wrote the first third-party map editor, {{highlight |text=War2xEd}}, which could do multiple things that the bundled map editor could not, such as editing unit attributes. Blizzard apparently began using {{highlight |text=War2xEd}} internally, and it influenced their decision to later ship a feature-rich map editor with StarCraft.

Next, {{highlight |text=Alexander Cech}} and {{highlight |text=Daniel Lemberg}} reverse-engineered the game data format, the WAR archives. {{highlight |text=Alexander Cech}} went on to make a hugely important tool called {{highlight |text=Wardraft}}, which allowed users to browse and modify the contents of the WAR archives. This enabled extensive game modifications, known as "Total Conversions". Many such projects gained popularity and remained in development for a long time, notable examples being {{highlight |text=DeathCraft: Twilight of Demons}}, {{highlight |text=War of the Ring}}, {{highlight |text=Editor's Total Conversion}}, {{highlight |text=Funcraft}} and {{highlight |text=Rituals of Rebirth}}.

Most of these utilities and conversions have long since faded into obscurity, but their legacy lives on. They impacted Blizzard's decision to bundle ever more powerful editors and trigger systems into StarCraft and later WarCraft III, which in turn later spawned entire games such as Dota (which began as a WarCraft III map). Hopefully, someday (soon?) we can host some of the Total Conversions here at {{highlight |text=Jorvik Systems}}.

---

As a personal anecdote, I vividly remember two defining moments related to the game. I was young when it came out, and my dad's friend had pirated it; somehow the game ended up on our computer. I was too young to speak English at the time, and the interface was confusing to me, so a relative helped me understand the basics {{dash}} how to make peons construct buildings, how to control units, and how to navigate around the map. I hadn't played computer games much before then, but from that moment on, I was arguably obsessed.

A second strong memory came a few months later, at my friend {{highlight |text=Erik}}'s house, on his Intel 486 PC. He was experimenting with the WarCraft II map editor, which I hadn't known existed, and I was blown away. I simply could not believe that Blizzard would ship such a tool with the game; to me, it meant that people could essentially create their own games by designing entirely new scenarios. It is quite possible that my fascination with modding was born in that very moment. We probably went outside to play shortly afterward, which I found incredibly lame {{dash}} we had at our disposal the most powerful tool I could imagine, so why were we not inside using it?

---

**Edit 2025-12-10 00:10:30 UTC**: [Hacker News discussion about this news post](https://news.ycombinator.com/item?id=46202921)
{{end-newsitem}}



{{begin-newsitem |time=2025-12-01T16:30:43Z |title=MPQ compatibility matrix shared |author=Ojan |categories=StarCraft I, WarCraft II, modding, tools, site |summary=Ladik has shared the rules gouverning how different files in different games are handled by default}}

In [early November](../archive/november_2025.html#newsitem_2025-11-08T10:45:08Z), I wrote about how different games use different compression algorithms in the MPQ files. So to make your own MPQ files with mods, you need your files to be compressed with the right compression method for the right game.

Ladislav Zezula, the author of [StormLib](https://github.com/ladislav-zezula/StormLib) has kindly [shared](https://github.com/ladislav-zezula/StormLib/issues/406#issuecomment-3591766421) a compatibility matrix of what different games expect by default.

When I find the time, I will use this data to update the [MPQ format specs](../formats/mpq.html) and make a PR for [mpqcli](https://github.com/TheGrayDot/mpqcli). I'm envisioning that you should be able to pass in a parameter with which game to target the MPQ for, and {{highlight |text=mpqcli}} will handle the rest.
{{end-newsitem}}



