News

Jorsys Jorvik Systems is a site dedicated to modding and reverse engineering WarCraft I, WarCraft II and StarCraft I. The goal is to provide tools, documentation and tutorials to facilitate understanding of what's going on under the hood in these classic games, as well as collections of mods to change them.
mpqcli 0.13.0 released
Posted by Ojan

Thomas Laurenson just made a new release of mpqcli. The release makes the subcommands consistent, with the archive now always being the first argument, and lets the create and extract subcommands work on several files at once. Note that this breaks compatibility with scripts written for earlier versions, as some arguments have moved and a few flags have been removed.

Changes in mpqcli 0.13.0:

Added

  • Accept several files, or a list read from stdin, in create and extract
  • Add a flat option to extract
  • Add short flags -e, -j, -q and -x for the locale, flat, property and print options

Changed

  • Take the archive as the first argument in every subcommand, including create and read
  • Keep folders when extracting named files
  • Rename the create version option to format-version
  • Reject an unknown locale in extract and read instead of using the default locale

Fixed

  • Show the encryption keys of encrypted files listed without their names
  • Accept Windows line endings in paths read from stdin
  • Stop add and create from storing an archive inside itself
  • Leave no archive behind when create cannot add every file

Removed

  • Remove create -o, extract -f and -k, and the -p flag from info, list and verify

Download:

Find version 0.13.0 of mpqcli here.

StarDraft 2, a new map editor for StarCraft: Remastered
Posted by Ojan

Milestone and iDoodler have released the first alpha of StarDraft 2, a new map editor for StarCraft: Remastered on Windows. It can be used for classic maps, but its main focus is EUD maps, with new units, weapons and game rules. Apparently, modding support is on the way.

The name is a homage to the original StarDraft by Camelot Systems from 1998, which pretty much started the StarCraft modding scene and gave modders what they needed to make their creations in the early 2000s. StarDraft 2 aims to be a spiritual successor for StarCraft modders in 2026 and beyond. Just like the original, StarDraft 2 seems to be aiming to be a one-stop-shop for all modding eventually.

EUD mapping has opened up exciting possibilities for StarCraft maps, but getting started can be challenging. Typically, one needs to set up euddraft alongside one or more editors, learn which tool handles what, and switch between them to edit units, triggers and other game data. The goal of StarDraft 2 is to bring all of this together in one place, making EUD mapping more accessible to newcomers while giving experienced mappers a faster and more integrated workflow.

Some of the features:

  • Maps: terrain brushes with symmetry, generated terrain, HD, SD and Carbot graphics, and a town area overlay
  • Classic maps: a classic trigger editor, unit, upgrade and tech settings, and a briefing editor with a preview
  • EUD projects: editing of every .dat file, as well as strings, requirements and button sets, with previews of things such as ranges, images and the command card
  • Triggers: trigger blocks are turned into epScript, a checker finds EUD errors and desyncs, and you can link your own .eps files
  • Debugging: a debug mode, and epTrace profiling that shows which script lines take the most time
  • Building: Ctrl+B builds the playable map, and StarDraft 2 downloads euddraft for you

More features are planned, such as campaign projects and support for mods. The authors update the editor often based on feedback, and the editor checks for updates when it starts. Feedback can be given by right-clicking almost anything and selecting Report feedback, or on the StarDraft 2 Discord.

As this is an alpha, expect bugs and features that are not fully implemented. Save often and keep backups of your maps!

A video showing the editor can be seen here.

Download:

Find the latest version of StarDraft 2 on GitHub.

scmJS, a new StarCraft map editor
Posted by Ojan

jeany55 has been working on scmJS, a new map editor for StarCraft, Brood War and StarCraft: Remastered. It takes inspiration from StarEdit, SCMDraft 2 and StarForge, and runs either directly in the browser or as a desktop app for Windows, macOS and Linux. The editor is still in beta, but it already has an impressive set of features.

scmJS opens and saves .scm and .scx maps as well as bare .chk scenarios. Map sections that the editor does not understand, as well as malformed ones, are written back unchanged when saving, so maps are not damaged by sections the editor does not know about. Backups (.bak) and recovery copies are kept as well.

Some of the features:

  • Classic graphics, or StarCraft: Remastered graphics if you point it to a Remastered installation
  • Real-time collaborative editing, where several people can edit the same map at once through a shared link
  • TrigScript, which lets you write triggers in TypeScript, with a simulator for testing them
  • A Repair plugin for damaged or protected maps, and a Section Explorer that shows the contents of the map file byte by byte
  • Plugins for graphing trigger dependencies, showing walkability (islands, chokepoints and distances), importing terrain from images and recording timelapses as GIF or WebM
  • A stamp library for reusable map pieces, and conversion of doodads to terrain
  • Searching for and opening maps from scmscx.com
  • English and Korean interfaces

No game data is bundled with the editor. On first use, it offers to download the needed files from Blizzard, or you can use the .mpq files from a classic installation.

Try it out:

The editor can be used directly in the browser at scmjs.dev/editor, where the maps stay on your own disk. Desktop builds are available on GitHub, and there is also a Docker container image:

docker run --rm -p 8080:80 ghcr.io/scm-js/scm-js:latest

The documentation, including a user guide, a TrigScript guide, a trigger reference and a reference for the CHK format, is available at docs.scmjs.dev. The source code is available on GitHub under the MIT license.

Finding the last unknown filenames in MPQs
Posted by Ojan

For many years, Blizzard used MPQ files as their archive files for many of their games. MPQ files are basically like ZIP files; they store many other files in a compressed format. One quirk of MPQ files is that they don't contain the filenames of their own content. Some MPQ files contain a listfile consisting of the filenames of their content, but other MPQ files do not. For these, an external listfile is needed. By now, we know the names of nearly all files of these games, but there are a few files whos names are yet to be cracked.

I have made a tool, namebreak-bombe (available on GitHub), which bruteforces filenames on GPUs. By default, it will contact a central server which will assign it a range to search in, thus allowing coordinated efforts where many people simultaneously can look for filenames (though it can also be set to run locally only without talking to servers).

namebreak-bombe

I ask everyone who finds this interesting to join in on the search by running namebreak-bombe on their machines - the more machines that run this, the faster we crack this. The dashboard here shows the current progress on the remaining names.

I have over the past month optimised the client significantly, and me and Heinermann have been testing it together on Linux and Windows 10 over the past few days. Already we have uncovered quite a few names that were previously unknown:

WarCraft II: Battle.net Edition, War2Dat.mpq:

ART\CHAT_BNE_PLAIN.PCX

WarCraft II: Battle.net Edition, Install.exe:

MacFiles\DF.ModuleUniverselUSBHID
MACFILES\DF.PATCH.TXT
MacFiles\RF.ModuleUniverselUSBHID
MACFILES\RF.PATCH.TXT

StarCraft Beta, StarDat.mpq:

GLUE\BATTLE.NET\ICONS\RAD_PRESSED.PCX
GLUE\BATTLE.NET\ICONS\RAD_UNPRESSED.PCX

StarCraft Brazil edition, Install.exe:

CAMPAIGN\EXPTERRAN\TERRAN03\STAREDIT\WAV\T3M02GAL.WAV

Diablo II Mac Installer TOME:

103b\DF.BNUpdate
103b\DF.Diablo II
103b\DF.Storm
103b\RF.BNUpdate
103b\RF.Diablo II
103b\RF.Storm

103c\DF.Diablo II
103c\RF.Diablo II
103c\DF.Storm
103c\RF.Storm
103c\DF.BNUpdate
103c\RF.BNUpdate

DF.InputSprocket Extension
RF.InputSprocket Extension

Again, if you find this interesting, please join the search by running namebreak-bombe on your machine! The dashboard here shows the current progress on the remaining names.

IronGRP 0.6 released
Posted by Ojan

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

IronGRP

I just released IronGRP version 0.6. It mainly focuses on bug-fixes, hardening the program and taking care of corner cases. The command-line interface now uses subcommands, which changes the interface compared to before.

Some of the breaking changes:

The command-line interface uses subcommands instead of --mode, and takes the input and output paths as positional arguments:

  • --mode grp-to-png --input-path X --output-path Y is now grp-to-png X Y
  • --mode png-to-grp --input-path X --output-path Y is now png-to-grp X Y
  • --mode analyse-grp --input-path X is now analyse X (analyse-grp is accepted as an alias)
  • --generate-shell-completions SHELL is now completions SHELL

Some flags are renamed: --pal-path to --palette, --use-transparency to --transparent, --frame-number to --frame, --compression-type to --compression and --analyse-row-number to --row. The old names are still accepted. New short forms: -c for --compression, -f for --frame and -r for --row.

Some other safety features:

  • Existing files are no longer silently overwritten. png-to-grp refuses to overwrite an existing GRP, and grp-to-png refuses to overwrite existing PNGs or to write all frames into a directory that already contains frame PNGs, unless the new --force flag is given.
  • png-to-grp writes the GRP to a temporary file and renames it into place, so a failure no longer leaves a partially written GRP.
  • png-to-grp reports up front when the input path is not a directory.

These are just a few of the many changes. See the full changelog here.

IronGRP is available on GitHub.

mpqcli 0.12.0 released
Posted by Ojan

Thomas Laurenson just made a new release of mpqcli. The release mainly refactors the code, overhauls the install scripts and release artifacts, and makes the program work more in accordance with how terminal programs are expected to behave.

Changes in mpqcli 0.12.0:

Added

  • Stop cleanly on Ctrl-C, leaving no partial archive behind

Changed

  • Ship one static musl Linux binary per architecture, with the release assets renamed by OS and architecture
  • Publish install scripts and a signed checksums file with each release
  • Run the Docker image in /data so mounted paths need no prefix
  • Print progress and warnings on stderr, leaving stdout for results alone
  • Mark an overwritten file as changed rather than added when adding

Fixed

  • Fail with a non-zero exit code on an unknown subcommand, a missing argument or an internal error
  • Fail with a non-zero exit code when closing, signing, listing or printing a signature fails
  • Complete every locale, game profile and archive path in the zsh, fish and PowerShell scripts

Removed

  • Remove the install scripts from the repository; each release now carries its own

Download:

Find version 0.12.0 of mpqcli here.

PudForge and RuneFoundry
Posted by Ojan

Recently, milestone started working on some tools for Warcraft II: PudForge and RuneFoundry.

PudForge is a very competent map editor. The map format is the same in the original DOS versions of Warcraft II as well as the Battle.net Edition and the more recent Remastered version. PudForge thus works for all of them. The author, milestone, has made a video showing the features, and it has some really nice capabilities. I was especially impressed with the terrain editing, as the editor supports copying and pasting terrain, replacing a given terrain type with other types, generating maps, drawing symmetrical shapes and much more.

RuneFoundry is a set of mod tools for Warcraft II Remastered only — not the DOS originals or Battle.net Edition. It has two programs, a mod launcher and an editor. A video showing its features is available here along with a video of an example campaign which plays through a campaign made with RuneFoundry. It can edit things like the campaign, AI-scripts, sprites and unit and weapon properties.

It is fantastic to see such feature rich and capable tools still being put out! Hats off to milestone for the efforts!

Find PudForge here and RuneFoundry here.

mpqcli 0.11.0 released
Posted by Ojan

I just saw that Thomas Laurenson made a new release of mpqcli earlier this week. Many of the changes are things I contributed a while back, that has now made it into release 0.11.0. mpqcli is a command-line tool to create, add and remove files from MPQ archives. MPQ archives were used for many years by Blizzard games such as StarCraft I and Warcraft II, and contain the game assets that game modifications change.

I'd like to highlight a few of the changes that I contributed to this release:

  • A rename subcommand has been added, which allows you to rename a file inside an archive without having to remove and re-add it.

  • The logic for updating files in an archive has been improved. When working on archives containing the (attributes) file, mpqcli will now — if the --update flag is given — compare timestamps and checksums in addition to just file size when deciding whether to update a file. This means that it will much more quickly decide whether a file needs to be updated or not, and will avoid unnecessary writes to the archive. This was quite an extensive change, that also involved me making some contributions to StormLib, the MPQ library that mpqcli uses to read and write MPQ archives.

Changes in mpqcli 0.11.0:

Added

  • Add rename subcommand to rename a file inside an archive

Changed

  • Compare timestamps and checksums when updating files, not size alone
  • Accept the --update flag for single files as well as directories
  • Reject the --update and --overwrite flags on add when both are given

Fixed

  • Report filesystem errors instead of aborting when a path cannot be resolved
  • Add to and create archives on volumes that cannot report real paths
  • Block path traversal in extract before anything is written to disk

Updated

  • Update StormLib for a variety of fixes
  • Add hash-library as a submodule dependency
  • Build with StormLib's bundled compression libraries instead of system packages
  • Require CMake 3.25 or later

Download:

Find version 0.11.0 of mpqcli here.

Chkdraft 2.15 released
Posted by Ojan

Yesterday, TheNitesWhoSay released version 2.15 of the StarCraft I map editor Chkdraft.

It is a smaller release with three changes:

  • The submenu tools/scripts now has a script to downgrade maps from remastered
  • Support for new cosmonarchy weapon limits
  • Better logging/debugging/browsing when dat file loading has issues

Version 2.15 is available here.

BlizzCon 2026
Posted by Ojan

I am probably the last person interested in Blizzard games to hear this, but BlizzCon 2026 wrapped up a week ago. It was last held in 2023, so it's been a while.

There are some announcements for the Warcraft and StarCraft franchises:

  • Warcraft III gets its first new campaign in over 20 years: "Return to the Last Days of Lordaeron to experience the fall of one great city and play a part in the founding of another". Blizzard released a Launch Trailer, which seems pretty close to the original intro of Warcraft III from back in the days: two armies clash in futile strife, as the real threat appears from above. A gameplay trailer can be seen here. It is already available from Blizzard.

  • Blizzard is working on a new StarCraft game! It is an open world, first person shooter that is apparently single player and character focused. The Announce Cinematic is pretty gorgeous, but there seems to be no gameplay footage available, and the game is set to be released in 2030; offering "plenty of time for delays". For a deeper dive into what the game might be like, I enjoyed GameDad VII's analysis.

Still from the StarCraft trailer

For me, it certainly sparks excitement to experience the StarCraft universe from this angle. Of course, Warcraft III from 2002 and the new upcomming StarCraft game of 2030 are both much to new for this site; Jorvik Systems is dedicated to Warcraft I, Warcraft II and StarCraft from the good ole nineties so don't expect much coverage on this site — but it's not every day that 23 year old games get a new campaign and the StarCraft universe expand into new types of games.

Jorsys news