Skip to content

Modding research

Tools

Everything on this site was produced with a set of purpose-built tools. They are open source.

Open source

The research and the tooling are in jake-bliss/lords-of-magic-modding, MIT licensed. The graphics layer of the HD mod is a fork of cnc-ddraw at jake-bliss/cnc-ddraw.

Everything released is original work — parsers, writers, patches and analysis. No game data, artwork, audio or archive contents are distributed from here: the HD mod builds its art from each player's own copy of the game.

What exists, for context

So that the findings elsewhere on this site are readable as claims someone could check: the work is backed by a native parser and writer for the map, sprite, image, audio, savegame and archive formats; an experimental interpreter for the game's scripting language; a disassembly harness used to read the game's own code; and a small map editor that has had the game load what it wrote.

There is a mod build pipeline. A mod source tree goes through static validation, a deterministic repack into a real game archive, a structural comparison against the original, and an install step that refuses to run while the game is open and can be rolled back to a verified pristine copy. Across four attended sittings the game has loaded archives it produced and shown the change on screen or played it aloud — covering all five of the archives the game ships, both of the storage classes they use, edits that change a member's size, several members changed in one build, and a member added to an archive that never had it.

A member added to an archive is read, not merely tolerated: a probe added a sprite under a name no shipped archive contains, a script asked for that name, and the game drew it. The same pipeline has had the game load a savegame it wrote, and read a field authored inside it.

What that does not amount to: there is no replacement game engine, and no large mod has been built or run. The biggest build so far changed four members across two archives, and every save put in front of the game kept its exact size.

On the community's existing tools

The long-standing community sprite editor writes no placement data, which is why art edited through it drifts a few pixels out of position and cannot be corrected by re-cropping. That is a description of a limitation, not a complaint: it was written without any of the information on the sprite format page, and it did far more good than harm.

A more recent community tool is described by its author as preserving that data. That claim has not been verified here.