|
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+ | Image | Width | Height | Frames | Bit Depth | 0x0000 | 0x000000 | Right-Facing Walker | 16 | 10 | 8 | 2 | 0x0140 | 0x000BE0 | Right-Facing Jumper | 16 | 10 | 1 | 2 | 0x0168 | 0x000D5C | Left-Facing Walker | 16 | 10 | 8 | 2 | 0x02A8 | 0x00193C | Left-Facing Jumper | 16 | 10 | 1 | 2 | 0x02D0 | 0x001AB8 | Digger | 16 | 14 | 16 | 3 | 0x0810 | 0x003BF8 | Right-Facing Climber | 16 | 12 | 8 | 2 | 0x0990 | 0x004A38 | Left-Facing Climber | 16 | 12 | 8 | 2 | 0x0B10 | 0x005878 | Drowner | 16 | 10 | 16 | 2 | 0x0D90 | 0x007038 | Right-Facing Hoister | 16 | 12 | 8 | 2 | 0x0F10 | 0x007E78 | Left-Facing Hoister | 16 | 12 | 8 | 2 | 0x1090 | 0x008CB8 | Right-Facing Builder / Stacker | 16 | 13 | 16 | 3 | 0x1570 | 0x00AB98 | Left-Facing Builder / Stacker | 16 | 13 | 16 | 3 | 0x1A50 | 0x00CA78 | Right-Facing Basher | 16 | 10 | 32 | 3 | 0x21D0 | 0x00F9F8 | Left-Facing Basher | 16 | 10 | 32 | 3 | 0x2950 | 0x012978 | Right-Facing Miner | 16 | 13 | 24 | 3 | 0x30A0 | 0x0157C8 | Left-Facing Miner | 16 | 13 | 24 | 3 | 0x37F0 | 0x018618 | Right-Facing Faller | 16 | 10 | 4 | 2 | 0x3890 | 0x018C08 | Left-Facing Faller | 16 | 10 | 4 | 2 | 0x3930 | 0x0191F8 | Right-Facing Pre-Floater | 16 | 16 | 4 | 3 | 0x3AB0 | 0x019B78 | Right-Facing Floater | 16 | 16 | 4 | 3 | 0x3C30 | 0x01A4F8 | Left-Facing Pre-Floater | 16 | 16 | 4 | 3 | 0x3DB0 | 0x01AE78 | Left-Facing Floater | 16 | 16 | 4 | 3 | 0x3F30 | 0x01B7F8 | Splatter | 16 | 10 | 16 | 2 | 0x41B0 | 0x01CFB8 | Exiter | 16 | 13 | 8 | 2 | 0x4350 | 0x01DF28 | Fire Death Animation | 16 | 14 | 14 | 4 | 0x4970 | 0x01FC40 | Blocker | 16 | 10 | 16 | 2 | 0x4BF0 | 0x021400 | Right-Facing Shrugger | 16 | 10 | 8 | 2 | 0x4D30 | 0x021FE0 | Left-Facing Shrugger | 16 | 10 | 8 | 2 | 0x4E70 | 0x022BC0 | OhNo-er | 16 | 10 | 16 | 2 | 0x50F0 | 0x024380 | Bomber Explosion | 32 | 32 | 1 | 3 | 0x5270 | 0x024D00 | Right-Facing Platformer | 16 | 14 | 16 | 3 | 0x57B0 | 0x026E40 | Left-Facing Platformer | 16 | 14 | 16 | 3 | 0x5CF0 | 0x028F80 | Stoner Explosion | 32 | 32 | 1 | 3 | 0x5E70 | 0x029900 | Stoner Terrain Image | 16 | 11 | 1 | 3 | 0x5EB2 | 0x029AA2 | Right-Facing Swimmer | 16 | 10 | 8 | 2 | 0x5FF2 | 0x02A682 | Left-Facing Swimmer | 16 | 10 | 8 | 2 | 0x6132 | 0x02B262 | Right-Facing Pre-Glider | 16 | 16 | 4 | 3 | 0x62B2 | 0x02BBE2 | Right-Facing Glider | 16 | 16 | 4 | 3 | 0x6432 | 0x02C562 | Left-Facing Pre-Glider | 16 | 16 | 4 | 3 | 0x65B2 | 0x02CEE2 | Left-Facing Glider | 16 | 16 | 4 | 3 | 0x6732 | 0x02D862 | Mechanic | 16 | 14 | 16 | 2 |
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+ | Image | Width | Height | Frames | Bit Depth | 0x0000 | 0x0000 | Right-Facing Basher Mask | 16 | 10 | 4 | 1 | 0x0050 | 0x05F0 | Left-Facing Basher Mask | 16 | 10 | 4 | 1 | 0x00A0 | 0x0BE0 | Right-Facing Miner Mask | 16 | 13 | 2 | 1 | 0x00D4 | 0x0FBC | Left-Facing Miner Mask | 16 | 13 | 2 | 1 | 0x0108 | 0x1398 | Bomber
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. | 16 | 22 | 1 | 1 | 0x0134 | 0x16DC | Countdown digits. This includes a 0 even though this is never used. | 8 | 8 | 10 | 1 | 0x0214 | 0x1CCC | Highlight Lemming Arrow | 8 | 8 | 1 | 1 |
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+ | Image | Width | Height | Frames | Bit Depth | 0x1900 | 0x0000 | Skill
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. | 8 | 8 | 20 | 1 | 0x19A0 | 0x0BE0 | Infinity symbol. | 8 | 8 | 1 | 1 |
Section 4 The fourth section contains some of the title screen graphics.
Offset V1.28n- | Offset V1.29n+ | Image | Width | Height | Frames | Bit Depth | 0x0000 | 0x000000 | Menu Background | 320 | 104 | 1 | 2 | 0x2080 | 0x0134C0 | "Lemmings" Logo | 632 | 94 | 1 | 4 | 0x9488 | 0x035BE6 | Menu
signs. One of these is currently unused in NeoLemmix, except in
NeoCustLemmix where it's used for the "Load Single Level" sign. | 120 | 61 | 6 | 4 | 0xEA50 | 0x04F35C | Sound option icons. These are unused in NeoLemmix. | 64 | 31 | 2 | 4 |
Section 5 The fifth section contains more title screen graphics.
Offset V1.28n- | Offset V1.29n+ | Image | Width | Height | Frames | Bit Depth | 0x0000 | 0x000000 | Lemming blink animations. 7 animations of 8 frames each. Unused in NeoLemmix. | 32 | 12 | 56 | 4 | 0x2A00 | 0x00C780 | Left-side lemming on the main menu scrolling text. | 48 | 16 | 16 | 4 | 0x4200 | 0x013980 | Right-side lemming on the main menu scrolling text. | 48 | 16 | 16 | 4 | 0x5A00 | 0x01AB80 | Scroller section graphic. | 16 | 16 | 1 | 4 | 0x5A80 | 0x01ADE0 | Menu font. Contains 94 different characters. | 16 | 16 | 94 | 3 |
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+ | Image | Width | Height | Frames | Bit Depth | 0x0000 | 0x0000 | Rank Sign Images | 72 | 27 | 15 | 4 |
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+ | Image | Width | Height | Frames | Bit Depth | 0x0000 | 0x0000 | Skill
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. | 320 | 40 | 1 | 4 | 0x1900 | 0x76C0 | In-Game Font. Contains 38 different characters. | 8 | 16 | 38 | 3 | 0x2020 | 0xA3E0 | Skill
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. | 16 | 23 | 16 | 4 |
|