NeoLemmix MAIN.DAT Format

MAIN.DAT consists of planar bitmap images. For those who aren't aware, unlike a normal bitmap in which each pixel is stored in order, in a planar bitmap, the first byte contains the lowest bit of the first 8 pixels (in the usual left-to-right, top-to-bottom order), the next byte contains the lowest bit of the next 8 pixels, and so on. Once all pixels are covered, the next byte contains the second-lowest bit. This is repeated until every bit is covered. If the image has more than one frame, each frame is stored as a seperate image, so after the highest bits of the first frame, the next bytes are the lowest bits of the second frame, and so on. The images in MAIN.DAT vary as to their bit depth, so pay careful attention to this.

A MAIN.DAT file contains 7 sections, each with different images. The menu palette or in-level palette should be used as appropriate; these palettes are identical to those from regular Lemmings. In the case of masks, an active bit means a pixel where the mask is applied to, and an inactive bit is one where it is not. Non-mask 1-bit images are usually black (or transparent) for an off bit, and white for an on bit.

There are some images (which LemMain will pick up on, and are listed here) that remain in NeoLemmix MAIN.DATs but are not actually used by NeoLemmix. It is not a problem if a MAIN.DAT is missing these images; just fill them in with blanks (if they are at the end of a section, make sure you at least include a blank image; do not just end the file without them).

Note that V1.29n and onwards use different offsets, do not contain blank spaces at the start of some sections, and all images have a bit depth of 19. This is read, as with all 19-bit images, as the lowest 6 bits being blue, the next 6 green, the next 6 red, and the last one a transparency bit (although the transparency bit may be ignored on certain images, it is still present in the data).

Please note that NeoLemmix V1.29n+ cannot load MAIN.DAT files from NeoLemmix V1.28n and earlier.

Section 1
The first section contains the lemming images.
Offset V1.28n-Offset V1.29n+ImageWidthHeightFramesBit Depth
0x00000x000000Right-Facing Walker161082
0x01400x000BE0Right-Facing Jumper161012
0x01680x000D5CLeft-Facing Walker161082
0x02A80x00193CLeft-Facing Jumper161012
0x02D00x001AB8Digger1614163
0x08100x003BF8Right-Facing Climber161282
0x09900x004A38Left-Facing Climber161282
0x0B100x005878Drowner1610162
0x0D900x007038Right-Facing Hoister161282
0x0F100x007E78Left-Facing Hoister161282
0x10900x008CB8Right-Facing Builder / Stacker1613163
0x15700x00AB98Left-Facing Builder / Stacker1613163
0x1A500x00CA78Right-Facing Basher1610323
0x21D00x00F9F8Left-Facing Basher1610323
0x29500x012978Right-Facing Miner1613243
0x30A00x0157C8Left-Facing Miner1613243
0x37F00x018618Right-Facing Faller161042
0x38900x018C08Left-Facing Faller161042
0x39300x0191F8Right-Facing Pre-Floater161643
0x3AB00x019B78Right-Facing Floater161643
0x3C300x01A4F8Left-Facing Pre-Floater161643
0x3DB00x01AE78Left-Facing Floater161643
0x3F300x01B7F8Splatter1610162
0x41B00x01CFB8Exiter161382
0x43500x01DF28Fire Death Animation1614144
0x49700x01FC40Blocker1610162
0x4BF00x021400Right-Facing Shrugger161082
0x4D300x021FE0Left-Facing Shrugger161082
0x4E700x022BC0OhNo-er1610162
0x50F00x024380Bomber Explosion323213
0x52700x024D00Right-Facing Platformer1614163
0x57B00x026E40Left-Facing Platformer1614163
0x5CF00x028F80Stoner Explosion323213
0x5E700x029900Stoner Terrain Image161113
0x5EB20x029AA2Right-Facing Swimmer161082
0x5FF20x02A682Left-Facing Swimmer161082
0x61320x02B262Right-Facing Pre-Glider161643
0x62B20x02BBE2Right-Facing Glider161643
0x64320x02C562Left-Facing Pre-Glider161643
0x65B20x02CEE2Left-Facing Glider161643
0x67320x02D862Mechanic1614162

Section 2
The second section contains the countdown digits and destruction skill masks (except digger which doesn't use a mask). Note that in the case of NeoLemmix V1.29n+, for masks, any non-transparent pixel is considered to be part of the mask.
Offset V1.28n-Offset V1.29n+ImageWidthHeightFramesBit Depth
0x00000x0000Right-Facing Basher Mask161041
0x00500x05F0Left-Facing Basher Mask161041
0x00A00x0BE0Right-Facing Miner Mask161321
0x00D40x0FBCLeft-Facing Miner Mask161321
0x01080x1398Bomber Mask. Note that unless the "disable bomber mask adjust" is set (in Flexi players), NeoLemmix only loads the left half of this mask, and creates the right half by duplicating and mirroring the left.162211
0x01340x16DCCountdown digits. This includes a 0 even though this is never used.88101
0x02140x1CCCHighlight Lemming Arrow8811

Section 3
The third section contains skill panel digits. Note that it has a lot of empty space at the start; the standard Lemmings MAIN.DATs contain graphics here that are never used by NeoLemmix and the space has not been re-used for other purposes. (There is also extra at the end in standard Lemmings MAIN.DAT files, but NeoLemmix does not expect anything to be here so it does not need to be filled in with blanks. LemMain will not attempt to load or save either of these parts when handling a NeoLemmix MAIN.DAT, unlike other unused images.)
Offset V1.28n-Offset V1.29n+ImageWidthHeightFramesBit Depth
0x19000x0000Skill panel digits. Each digit has two frames; the first frame contains the image for the tens position and the second contains the image for the ones position.88201
0x19A00x0BE0Infinity symbol.8811

Section 4
The fourth section contains some of the title screen graphics.
Offset V1.28n-Offset V1.29n+ImageWidthHeightFramesBit Depth
0x00000x000000Menu Background32010412
0x20800x0134C0"Lemmings" Logo6329414
0x94880x035BE6Menu signs. One of these is currently unused in NeoLemmix, except in NeoCustLemmix where it's used for the "Load Single Level" sign.1206164
0xEA500x04F35CSound option icons. These are unused in NeoLemmix.643124

Section 5
The fifth section contains more title screen graphics.
Offset V1.28n-Offset V1.29n+ImageWidthHeightFramesBit Depth
0x00000x000000Lemming blink animations. 7 animations of 8 frames each. Unused in NeoLemmix.3212564
0x2A000x00C780Left-side lemming on the main menu scrolling text.4816164
0x42000x013980Right-side lemming on the main menu scrolling text.4816164
0x5A000x01AB80Scroller section graphic.161614
0x5A800x01ADE0Menu font. Contains 94 different characters.1616943

Section 6
The sixth section contains the rank images. All 15 must be present even if some are unused; fill them in with dummy images (LemMain just repeats the last rank image to fill them up, but blank images are fine too). Note that unlike in a standard Lemmings MAIN.DAT, these are not in backwards order.
Offset V1.28n-Offset V1.29n+ImageWidthHeightFramesBit Depth
0x00000x0000Rank Sign Images7227154

Section 7
The final section contains the skill panel graphics and the in-game font (the one used to display lemmings in/out and remaining time).
Offset V1.28n-Offset V1.29n+ImageWidthHeightFramesBit Depth
0x00000x0000Skill Panel. Unlike with standard lemmings, the graphics for the various skills should not be drawn-on; instead the graphic here should have all 8 skill slots as they should appear if there is no skill in them.3204014
0x19000x76C0In-Game Font. Contains 38 different characters.816383
0x20200xA3E0Skill Icons. Contains the graphic for the icon of each skill. The order is Walker, Climber, Swimmer, Floater, Glider, Mechanic, Bomber, Stoner, Blocker, Platformer, Builder, Stacker, Basher, Miner, Digger, Cloner.1623164