News

Attempting to get MPQs to work
Posted by Ojan

Many Blizzard games used MPQ archives to store their game data, StarCraft I and WarCraft II: Battle.net Edition included. The MPQ files can be compared to ZIP files; they contain many other files and compress them. The MPQ format has evolved over the years, with libraries and tools such as StormLib keeping up to the changes.

I've spent some time trying to make custom MPQs that run with StarCraft I on Linux using Wine. I am able to load up 20 year old MPQ files that I have laying around. However, when I attempt to create new MPQs and load them, the game crashes. I am unsure what the cause is. I have used tools both new and old without success. The investigation continues...

Release of mpqcli 0.9.3
Posted by Ojan

mpqcli, a command line tool to create, add, remove, list, extract, read, and verify MPQ archives has just released version 0.9.3. The tool makes it easy to work with MPQs from the command line, while powered by the well-maintained StormLib library under the hood.

Version 0.9.3 comes with two changes:

  • Added support for add subcommand to have path inside MPQ archive.
  • Fixed bug in add subcommand when exceeding max file count.

Thomas Laurenson, the author of the tool, is hard at work pushing the tool to version 1.0. To follow the progress, see the issues page on GitHub.

Added TBL and SPK specs
Posted by Ojan

The specs for TBL files and SPK files are now available on the formats page.

TBL files are lists of strings, containing things such as unit names and stats, dialog and game texts, file paths to resources such as graphics or sounds, etc. TBL files are used in StarCraft and WarCraft II.

SPK files are the star parallax background of the Space tileset in StarCraft I.

See the formats page for all specs currently available.

Site auto-deployment
Posted by Ojan

I have made some site maintenance over the past few days. The DNS records are updated and should be in order, and I have made some minor fixes to the site, such as making images more web-friendly, adding a favicon and 404-page, and doing some tweaking.

I have also made some updates to Incunable — the templating engine that generates this site. Together with some GitHub webhooks, this site will now automatically deploy whenever I push updates to its GitHub repo.

All of this leading to a faster and smoother process to go live with content.

News archive and news feed
Posted by Ojan

I hacked together a script for the site that will automatically take all news items, divide them by year and month and create a news archive. It will also put the news items into an RSS feed.

The pages are available in the navigation menu, as well as here:

Powering this site is Incunable — a hackish templating engine for static site generation that I started a few years back. I have also made some updates to it the past few days, so that is at least indirectly related to this site.

Things are a bit slower now compared to a few months ago. I have an extended, long trip coming up, for which planning has taken a lot of time. And right now I'm in my home town where I try to meet friends and family, leaving limited time to work on Jorsys.

Format specs live
Posted by Ojan

Some format specifications have been published, from the Camelot Systems site. For now, it is only four DAT files from StarCraft, and the Unit data DAT file from WarCraft II.

The plan is to let the collection of formats grow, hopefully to be of pretty much all modding-relevant files. The specifications are available on the Format specifications page.

Camelot System downloads
Posted by Ojan

Digging through my files, I found some modding software from the old Camelot Systems days, some 25 years ago. While CamSys was mainly focused on StarCraft and WarCraft II, they also made some software for other, non-Blizzard games:

Camelot Systems

While these are not games I myself ever played, I suppose they might as well be uploaded here as they once briefly were on the CamSys website. The respective modding communities of these games (of which I know nothing) have presumably long since superceded these with other tools, but I thought it would be fun to upload these here anyway as a little digital library.

IronTBL 1.0
Posted by Ojan

I finally made some finishing touches on IronTBL, the TBL to TXT converter, so I decided to release it as version 1.0.

IronTBL

Not much has changed since the last release (apart from some logging improvements), it mostly has some external integrations: comes with ImHex pattern language definitions and yazi integration, and it can now generate shell completions.

IronTBL is available on GitHub.

IronGRP 0.5
Posted by Ojan

IronGRP is a GRP to PNG converter for WarCraft I, WarCraft II and StarCraft.

IronGRP

IronGRP version 0.5 was just released with the following features:

  • Added ImHex pattern language definitions for Normal GRPs, Uncompressed GRPs and WarCraft I style GRPs.
  • Added yazi integration.
  • Included fallback greyscale palette.
  • Added a Readme file.
  • Added a logo.
  • Moved the PNG handling to an external library, palpngrs.
  • Better logging: Introduced logging library and the log level 'trace'.
  • Removed some Optimisation schemes from CompressionType Optimised. This makes it slightly less optimised but identical to how Blizzard did it, and the code is less complex.

IronGRP is available on GitHub.

IronImage
Posted by Ojan

After creating palpngrs (GitHub) out of code from IronGRP, I decided to create a little utility that can convert between Palettized images and PNGs. I called it IronImage.

It can convert between PNGs and Palettized images from WarCraft I and WarCraft II. It can also convert between PNGs and the cursor format of WarCraft I and WarCraft II (which has the identical format to Palettized images, but with two extra bytes in the header — one for the x-hotspot and one for the y-hotspot).

IronImage

The code is available at GitHub.

I would like to add support for PCX images, which are used in StarCraft. Image support in palpngrs is provided by image-rs, and there seems to be an experimental image-rs module, image-extras where PCX support is being considered (see discussion here). However, it does not yet seem to be in a stable state, and GIMP supports the PCX format anyway. I will probably revisit PCX support at a later time. For now, IMG and Cursor support will have to do.

Jorsys news