Lemmix Player Collection (Current: V29)

Started by namida, March 16, 2014, 12:05:48 PM

Previous topic - Next topic

0 Members and 2 Guests are viewing this topic.

Zaphod77

version number not updated yet. it stills says v21 (but does play the music)

Another bug. fadein and fadeout should be at lemmings framerate.  compare in dosbox, the fadein and fadeout are slow.

music should also fadeout.

Tsyu

I'll make a note to do that in the next update. On that note, if the algorithm is known, I'd quite like to implement the actual DOS passwords too.

The algorithm is known, and a reasonably accurate documentation of it is in the source file of a program called "Lemmings Code Generator," which you can get from Lemmings Universe http://www.lemmingsuniverse.net/downloads.html#game-tools" class="bbc_link" target="_blank">here. There are some inaccuracies in there, so here are my corrections:

Below is my revised version of the bit table that's in the documentation:
Code: [Select]
nibble 0  | nibble 1 | nibble 2  | nibble 3  | nibble 4  | nibble 5  | nibble 6
-----------|----------|-----------|-----------|-----------|-----------|----------
 3  2  1  0| 3  2 1  0| 3  2  1  0| 3  2  1  0| 3  2  1  0| 3  2  1  0| 3  2 1  0
 8  4  2  1| 8  4 2  1| 8  4  2  1| 8  4  2  1| 8  4  2  1| 8  4  2  1| 8  4 2  1
           |          |           |           |           |           |
L0 %0 F0 S0|S1 L1 0 %1|S2 L2 %2 F1|S4 S3 %3 L3|%4 S5 L4 F2|S6 %5 F3 L5|L7 L6 0 %6
There are two major things to notice here:
  • There are actually eight bits for the level number, not seven, allowing 256 levels to have unique passwords.
  • Some of these bits are labeled with F--these represent the number of times the level was failed. If this number is greater than 15, only the last four bits are used (although Lemmix can alternatively cap that value at 15). Most official versions of Lemmings that use this password system use this feature, but DOS Lemmings does not, although it does accept codes with these bits set. (For some reason, this value is set to 8 upon game startup. It's most likely a bug, so Lemmix doesn't need to replicate this behavior.)

The documentation doesn't mention two-player levels. The codes for these levels are the same as those for the one-player levels, except the level numbers start at 160, and the %, F, and S bits are not set (barring the bug mentioned above regarding F bits).

The seed for the Amiga version of Holiday Lemmings 1993 is actually the same as the one for the original Lemmings: AJHLDHBBCJ.

This isn't part of the original algorithm, but you might want the letters to wrap around in case characters beyond Z are generated, so the first character after Z is A instead of [. (SuperLemmini uses this behavior.)


I think that's it! I might write my own documentation on this in the future, though I make no guarantees.

namida

http://www.lemmingsforums.com/index.php?topic=958.msg22960#msg22960">Quote from: Zaphod77 on 2014-10-08 13:09:04
version number not updated yet. it stills says v21 (but does play the music)

Another bug. fadein and fadeout should be at lemmings framerate.  compare in dosbox, the fadein and fadeout are slow.

music should also fadeout.

Since nothing happens during them, it's not critical, but if you know exactly how many frames it should take (at DOS framerates), I'll look at implementing it correctly.

As for the version number, yep, only the millionth time I've released a Lemmix or NeoLemmix update and forgotten to fix the version number. xD

I'll look at doing the passwords later today.
My projects
2D Lemmings: NeoLemmix (engine) | Lemmings Plus Series (level packs) | Doomsday Lemmings (level pack)
3D Lemmings: Loap (engine) | L3DEdit (level / graphics editor) | L3DUtils (replay / etc utility) | Lemmings Plus 3D (level pack)
Non-Lemmings: Commander Keen: Galaxy Reimagined (a Commander Keen fangame)

Wafflem

There's also the two hidden Fun 31 and Fun 32 levels that are still not in the Extra Player.
YouTube: www.tinyurl.com/YTWafflem
Twitch: www.twitch.tv/Wafflem467

Have level designer's block right now? Have some of my incomplete levels for LOTS of ideas!

Ron_Stard

Are you planning to add PSP levels to the Extra player?

namida

The five-rank limit takes a bit of work to bypass, including that a different MAIN.DAT layout is needed (because in a standard MAIN.DAT, there's other data both before and after the rank images). For that reason, adding ranks beyond a 5th one is unlikely in the traditional players. Rather, another suggestion that was made at some point was an "Extra part 2" player, which I'll probably do at some point.
My projects
2D Lemmings: NeoLemmix (engine) | Lemmings Plus Series (level packs) | Doomsday Lemmings (level pack)
3D Lemmings: Loap (engine) | L3DEdit (level / graphics editor) | L3DUtils (replay / etc utility) | Lemmings Plus 3D (level pack)
Non-Lemmings: Commander Keen: Galaxy Reimagined (a Commander Keen fangame)

namida

For the next update - how would people feel about the implementation of some degree of a directional select?

I'll make it clear that I will not make it possible to select a lemming that usually couldn't've been selected. Rather, how this would work is that if you're (for example) selecting Right, and you click somewhere that would've picked a left-facing lemming, the click is simply ignored; this way you still aren't able to do anything that wouldn't be possible under DOS. (I might even extend it to that, if there's a lemming within the cursor that's facing the right direction, and wouldn't be selectable from *that* mouse position but would be from a different position, it'll select him).


Also, the slight issues with looping OGGs will be fixed. (This issue can be fixed simultaneously with NeoLemmix, as the sound/music handling code is the same on both.)
My projects
2D Lemmings: NeoLemmix (engine) | Lemmings Plus Series (level packs) | Doomsday Lemmings (level pack)
3D Lemmings: Loap (engine) | L3DEdit (level / graphics editor) | L3DUtils (replay / etc utility) | Lemmings Plus 3D (level pack)
Non-Lemmings: Commander Keen: Galaxy Reimagined (a Commander Keen fangame)

Zaphod77

Actually i like the second compromise.

The rule should be if the lemming is under the cursor at it's current position, and it can be selected by moving the mouse elsewhere, then it will do it. otherwise it will do nothing.

It does trivialize some levels, but usually, so does frame advance, which we already have, so...

namida

I'll probably do that, then. But I won't be making it to the point of "if you could select this lemming via a glitch, it'll be selected" - only for cases of "if you move the mouse slightly you can select him".
My projects
2D Lemmings: NeoLemmix (engine) | Lemmings Plus Series (level packs) | Doomsday Lemmings (level pack)
3D Lemmings: Loap (engine) | L3DEdit (level / graphics editor) | L3DUtils (replay / etc utility) | Lemmings Plus 3D (level pack)
Non-Lemmings: Commander Keen: Galaxy Reimagined (a Commander Keen fangame)

Zaphod77

THat'a what I meant.

That said, there are two cases i can think of where this matters.

the first case is lemmings milling about in a pit. in this case, you can always select one going the right way by delaying enough.  just repeat the attempt until it works.  If the rule was relaxed here, it would not matter very much.

The second case is selecting a doubled back lemming at 99 release rate. THIS is nearly always truly impossible, because the lemmings going forward will, if it's the initial stream, ALL have greater priority then the ones turned back and there's no space between them.  This is where the selection becomes truly impossible, and any solution requiring that you do this is not valid. Lower release rates can give the same situation, there being no way to avoid a higher priority lemming without also putting another higher priority one under the cursor.


namida

It can sometimes be possible to select such a lemming in RR99 in certian terrain layouts. It's impossible on a flat surface, but on an angled setup can be done in many cases - I believe ccexplore's 98% solution to Tricky 23 relied on this.
My projects
2D Lemmings: NeoLemmix (engine) | Lemmings Plus Series (level packs) | Doomsday Lemmings (level pack)
3D Lemmings: Loap (engine) | L3DEdit (level / graphics editor) | L3DUtils (replay / etc utility) | Lemmings Plus 3D (level pack)
Non-Lemmings: Commander Keen: Galaxy Reimagined (a Commander Keen fangame)

Zaphod77

quite right, but even that is not always a guarantee. if both lemmings are on the same pixel and the higher priority one is facing the other way, there's nothing you can do.


Proxima

I'll make it clear that I will not make it possible to select a lemming that usually couldn't've been selected. Rather, how this would work is that if you're (for example) selecting Right, and you click somewhere that would've picked a left-facing lemming, the click is simply ignored; this way you still aren't able to do anything that wouldn't be possible under DOS.

I really don't get why this is an issue. Adding better control features makes the game easier to play, and doesn't affect challenges since we only track results for actual DOS and accurate emulation. A Lemmix player with directional select would still count as accurate emulation if we agreed not to use directional select when recording replays for challenges. None of the levels are less interesting or enjoyable with directional select, except for All or Nothing, and that was never a very good level anyway.

namida

The whole point of Traditional Lemmix is to keep 100% compatibility with DOS. I don't mind adding easier control features (such as ignoring if the priority lemming is facing the wrong way), but I won't make it possible to do anything that can't be done under DOS. If I was going to start allowing actual gameplay that DOS doesn't allowed (as opposed to simply fine-control features that still stay within DOS's limitations), then I'd see it as having lost it's value, and thus have no point in maintaining it. For things that go outside of DOS's limitations, that's what NeoLemmix is for.

Thus, why I'm fine with a directional select that ignores lemmings facing the wrong way instead of selecting a different one, or even will select a different one provided there is *a* mouse position from which that lemming could usually be selected. But if it'd be impossible to select that lemming no matter what, then I won't allow for it. (On the other hand, the NeoLemmix mechanic is to indeed simply remove wrong-facing lemmings from the hit test entirely, so it's perfectly possible there to select a lemming that you couldn't select without the directional select feature. Maintaining accurate DOS mechanics was never a goal or a concern in NeoLemmix, the intention was simply to be *based* off them to retain the familiar feel.)
My projects
2D Lemmings: NeoLemmix (engine) | Lemmings Plus Series (level packs) | Doomsday Lemmings (level pack)
3D Lemmings: Loap (engine) | L3DEdit (level / graphics editor) | L3DUtils (replay / etc utility) | Lemmings Plus 3D (level pack)
Non-Lemmings: Commander Keen: Galaxy Reimagined (a Commander Keen fangame)

Zaphod77

All or nothing is trivialized by frame advance anyway.

But the case of assigning to a doubled back lemming at high release rate matters.