Lemmings Revolution file formats

Started by ccexplore, January 08, 2012, 02:13:09 PM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

ccexplore

[edit: here, I updated two punctuations in my reply above, may be that better portraits my confusion after reading your post.  If that's still "trolling" then whatever]

ccexplore

Sure.  I didn't for a minute think that you wasted my time on purpose.  All I was expressing was that time was wasted when I tried in vain to figure out what subtle errors need to be addressed in the original post.  This is why it was only a  http://www.lemmingsforums.com/Smileys/lemmings/undecided.gif" alt=":-\" title="Undecided" class="smiley" /> response and not a  http://www.lemmingsforums.com/Smileys/lemmings/angry.gif" alt=">:(" title="Angry" class="smiley" /> response.  I mistakenly thought something needs to be fixed in my original post when you mentioned you have revisions.  Clearly this wastes your time too so sorry about that.

GuyPerfect

While exporting all of the .BMP files to, well, real .bmp files, one of them came back with an error: TEXTURES\MODELS\TELEPORT_FX\~SHAFT.BMP

Upon investigation, I found that it had a 3 for that mysterious value in the chunk header, unlike all the other files which had a 4. When it was 3, the chunk was uncompressed, meaning the chunk data in total was 5 bytes larger than the data it was representing.

No other values appeared in that field across all the .BMP files in the game. Additionally, all of the .BMP files are encoded in the chunked format; none of them are already Windows Bitmap files.

Here is the new document to reflect this:

Code: [Select]
Lemmings Revolution .BMP File format
  -Decompressed data represents a Windows Bitmap file

File
=============================================================================
ChunkNum        UInt8      The number of chunks in the file
Chunks          Chunk[]    The data chunks
=============================================================================

Chunk
=============================================================================
Header          ChunkHeader    Describes how the chunk is encoded
RawData         Byte[]         Only if Compression = 3 -- UnpackedSize bytes
Stream          ROLZStream     Only if Compression = 4
=============================================================================

ChunkHeader
=============================================================================
PackedSize      UInt16     The total size of this chunk, including the header
UnpackedSize    UInt16     The size of the data that this chunk represents
Compression     UInt8      Compression type: 3 = none, 4 = ROLZ, else = bad
=============================================================================

ROLZStream
=============================================================================
RawTree         BinTree    Binary tree for raw byte counts
LengthTree      BinTree    Binary tree for distance/length lengths
DistanceTree    BinTree    Binary tree for distance/length distances
BitStream       Byte[]     Remainder of chunk
=============================================================================

BinTree
=============================================================================
The lower 4 bits of the first byte indicates how many additional values need
to be read from the input. If the value is 0, no additional input is needed
as the binary tree will not be used. If it's greater than 0, then add 2 to it
and read that many more values.

The values themselves are in 4-bit increments starting with the high bits of
the byte that contained the count, followed by however many bytes are
necessary to encode the remaining 4-bit values. For each byte, the lower 4
bits are read first, followed by the higher 4 bits.

The last byte may have 4 bits of padding so that the next data begins on a
byte boundary.
=============================================================================

GuyPerfect

I went looking in that old demo of undisclosed origin, where the default language is German and only has one level: Feeling Gravity's Pull. The "email.box" file there has the Playstation button icons, the fully-translated .LTX files that made it into the final game and, get this: the LEVELMAP.DAT file is identical to the one in the final game. All level names are there--all 103 of them. This was the oldest build of the game I've come across--it doesn't have any music even--and at that point in time apparently all of the levels were already done.

There's no telling how this all happened. They obviously had a lot of work done on it before even submitting a build as a demo. I expect it went something like this:
  • Sony/Psygnosis commissions a new 3D-graphics Lemmings game for Playstation.
  • Take-Two Interactive takes the job, or possibly pitched the publisher the idea. One or the other.
  • Lemmings Revolution is completed or nearly completed as a Playstation title.
  • Sony, being scumbags as they are, decides the game isn't worth publishing. I mean, it's not exactly exceptional.
  • Take-Two reworks the game for Microsoft Windows 95.
  • Sony/Psygnosis releases a demo on their web site to see what kind of appeal the game has.
  • Sony decides the game still isn't worth publishing, even for Windows.
  • Take-Two Interactive contacts Talonsoft to publish it instead.

mobius

interesting. Except I read on lemmings encyclopedia that Talonsoft was a company that was bought out by Take Two during the production. In any case, I'm glad the game ended up on the PC and not Play Station for my sake.

I really don't understand why the game had so much trouble getting published and why it still has so little appeal. I guess we're just different in liking it so much.  http://www.lemmingsforums.com/Smileys/lemmings/undecided.gif" alt=":-\" title="Undecided" class="smiley" />
everything by me: https://www.lemmingsforums.net/index.php?topic=5982.msg96035#msg96035

"Not knowing how near the truth is, we seek it far away."
-Hakuin Ekaku

"I have seen a heap of trouble in my life, and most of it has never come to pass" - Mark Twain