Monochrome map (Worms 2)

From Worms Knowledge Base

Revision as of 21:43, 12 April 2009 by Muzer (Talk | contribs)

Jump to: navigation, search
(Up to File formats)

Worms 2 maps (monochrome maps) are gzipped binary files, in most cases with invalid CRCs (so gzip itself cannot be used to extract them). After a header containing the map parameters, the map data follows as a 1-bit-per-pixel bitmap. This will convert the data into a .bmp: http://dump.thecybershadow.net/6c2fbb5e21fd07834c9ed7dd839fe9e8/draw.dpr

The header has been partially reversed. This has not been tested on too many levels, so it should be taken with a pinch of salt:

0x00 and 0x01 are both 0x01 if open, and 0x02 if cavern. If it is set to <random>, it goes 0x00 0x01.

Next four bytes (0x02 to 0x05) are unknown, probably the terrain generation seed in hex, little-endian.

0x06 to 0x09 is the object generation seed in hex, little-endian (so if the code in game is 05437645, this will read 45764305)

0x0A to 0x11 are unknown, but at least 0x0E appears to change, and 0x0A might. The rest appear to just be 0x00

0x12 is the object count, a value from 0x00 (min) to 0x64 (max)

0x13 to 0x15 are unknown, presumed always 0x00

There are 5 slots for Pascal-style ASCII (TODO: Find out which type) strings (length first, then the string). The first one starts at 0x16. After the 3rd one, there is an 0x01 (?, more investigation required). After the 5th one, there is an 0x80 0x07 0xB8 0x02 (again, more investigation required).

The string slots go as follows:

Unknown (probably the terrain seed)

Object generation seed, if it cannot be represented in 4 hex bytes. If it can be represented in 4 hex bytes, this is empty (length byte is 0x00 and it goes straight onto the next string). It is unknown whether this is converted into the hex using some algorithm, or if the hex is completely ignored if this is present, though I suspect it is the former, since the hex changes.

Name of level. In most cases, this will be the same as the filename but without the .lev suffix. Next comes 0x01, as mentioned above.

The name of the level style. As displayed in the drop-down

The name of the water colour, with an initial captital letter, and the rest lower case. They can be: Red, Blue, Green, Purple, Yellow.

And those "magic bytes" above.

Then the data.

If the terrain is purely seeded, then after the last string, there is a lot more data, and there isn't the last 4 magic bytes before the data. Also, the byte after the 3rd string is 0x00, not 0x01. What the rest of the data is is unknown.


Personal tools