June 2025 - News archive

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.