Does SuperLemmini model Amiga physics?

Started by WillLem, April 09, 2020, 11:39:20 PM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

WillLem

I recently learned the 100% solution to Taxing 16 Mary Poppins' Land, a trick which involves
Spoiler
allowing a lemming to walk off the end of a builder bridge and then immediately begin building so that he bumps his head on the original bridge and then turns around almost immediately.

I performed this trick in NeoLemmix, and then decided to see if it was also possible in SuperLemmini. Thankfully, it is, but requires a slight variation due to the movement of the lemmings, i.e. in SuperLemmini, the lemmings are 1 frame ahead of their NeoLemmix counterparts when they step off a builder bridge at the same release rate.

The replays illustrate this better than I've probably explained it.

I then tried the same trick on the Amiga, and discovered that the physics seem to work like they do in SuperLemmini, i.e.
Spoiler
to make this trick work, an extra builder must be placed at the very end of the first builder's bridge, to give the second builder something to bump his head on.

The trick doesn't seem to work at all in Windows Lemmings. :eyeroll:

I've also posted this video to demonstrate the trick on all 4 platforms, so you can see the variations in physics.

Conclusion: SuperLemmini's physics are modelled after Amiga lemmings. Is this correct?

ccexplore

In both Amiga and DOS Lemmings, there is a "floor check" that works exactly like this:  before builder steps onto the 6-pixel build brick it laid down, it first checks the two pixels marked "x" below immediately above the row of 6 pixels that is the build brick.  If either one has ground (ie. not air) then it stops without stepping up and turns around instead.  It's actually an additional check from the "ceiling check" which involves checking a single pixel more or less right above lemming's head.  The obvious intent of the floor check is so that when lemming is on a steep enough upward slope (ie. steeper than the slope of the build bridge), it'd stop properly before the bridge would wind up going into the slope.

.xx...
BBBBBB


(B = pixels of brick laid by builder, x = the 2 pixels checked by floor check, . other pixels ignored by floor check).

NeoLemmix has an even stronger floor check that check for more pixels, so that's why in your NeoLemmix video, the bridges don't even have to really touch each other (the corners of pixels don't count as touching) to turn the builder around.

On DOS and Amiga Lemmings, to turn the second lemming around like in NeoLemmix without using an extra builder like you do, the two bridges must be positioned closer so that they are fully touching one another, so that the right tip of second brick of the left bridge would reach into the left "x" relative to the first brick of the right bridge.  This requires increasing the release rate from the initial 50 so that the second lemming can step off the first lemming's bridge before the second brick of that bridge has been laid down.

Attached is an example of how to set up the crowd-blocking gadget in DOS or Amiga Lemmings using only 5 builders, although 2 lemmings will overtake the workers before the gadget is ready so you'll need to floater those.  You'll need to view the LRB replay file using the old LemmixPlayer (which faithfully replicates nearly all the DOS game's mechanics) as detailed here.  The methods you found for Amiga/SuperLemmini are probably a little easier to execute than this 5-builder method, even if consuming more builders.

When I originally reported a 100% solution for the level on DOS Lemmings, I actually did not rely on this trick at all.  Instead I relied on the thing you observed on the other thread, that involves stacking 2 builders to create steps of height 2 pixels, and then have other lemmings build into such steps to turn around.  I've attached this method for reference in the second LRB replay file.  I suspect this method can even work as-is on NeoLemmix and WinLemm (but have not tested either).

I haven't played WinLemm much so I'm not versed on how its checks differ.  But there has to be some form of floor check in play even if the pixel-precise details may differ; without some kind of a floor check, on a steep enough upward slope the builder would go a bit further into the slope before there are pixels of ground high enough to trigger the ceiling check and stop the builder.

One side effect of the rather lazy checks in the original games, is that there are actually no checks for any of the pixels between the feet (floor check) and head (ceiling check) of the lemming!  That's why on levels like "King of the Castle", if you can get the lemming high enough for its head to protrude above the top of one of those thin platforms, then when you assign it builder it will be able to keep building up uninterrupted until the bricks start touching the bottom of the platform.

ccexplore

Anyway, SuperLemmini was definitely modeled after Amiga, although I don't think it goes so far as replicating all the glitches and/or corner cases.  Also since I think SuperLemmini actually operates the physics in the same higher resolution as the graphics (unlike NeoLemmix, which makes the high resolution only a visual option and does not affect physics), even regular moves and solutions might sometimes still play out subtly different than in the true original Amiga version's lower resolution physics.

namida

SuperLemmini does use Amiga as the main inspiration for its physics, though I don't believe it either is, nor claims to be, an exact replica (even ignoring resolution differences) of Amiga physics.
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)

WillLem

Quote from: ccexplore on April 10, 2020, 05:55:06 AM
In both Amiga and DOS Lemmings, there is a "floor check" that works exactly like this:

Thanks for this explanation, it help to put in perspective what's actually happening in each version. Why is it that the NL/DOS Lemmings move slightly faster though (and therefore step off the bridge earlier)?

Quote from: ccexplore on April 10, 2020, 05:55:06 AM
Attached is an example of how to set up the crowd-blocking gadget in DOS or Amiga Lemmings using only 5 builders... You'll need to view the LRB replay file using the old LemmixPlayer

5 builders? That's incredible! I have Lemmix player installed but, wierdly, it won't accept the level code for Taxing 16. Any chance you can upload a video of these solutions?

Quote from: ccexplore on April 10, 2020, 05:55:06 AM
When I originally reported a 100% solution for the level on DOS Lemmings, I actually did not rely on this trick at all.  Instead I relied on the thing you observed on the other thread, that involves stacking 2 builders to create steps of height 2 pixels, and then have other lemmings build into such steps to turn around.

And this one as well! ;P

Here's my video solving the level 100% on the Amiga.

Quote from: namida on April 10, 2020, 07:10:11 PM
SuperLemmini does use Amiga as the main inspiration for its physics, though I don't believe it either is, nor claims to be, an exact replica (even ignoring resolution differences) of Amiga physics.

I imagine that's the case as well, it seems to be more its own thing than a replica. Kind of in the same way that NeoLemmix developed from a DOS clone into something more unique. Good to know what the original inspirations are though.

ccexplore

For LemmixPlayer, just enter "CHEATCODES" for the level code to activate cheat mode, once activated it will stay so even after you exit and later rerun the program.

With cheat mode activated, you can go to any level by entering the rating and number in place of a level code, like TAXING16.

I don't remember whether LemmixPlayer has its own level code system vs using the same one as one of the official versions of Lemmings.  But anyway, cheat mode's the quickest way to go.

To load a replay file, press L while in the level.  Additional commands are documented here.

WillLem

Quote from: ccexplore on April 11, 2020, 07:16:19 AM
For LemmixPlayer, just enter "CHEATCODES" for the level code to activate cheat mode, once activated it will stay so even after you exit and later rerun the program.

This didn't work either... I am using the very latest Lemmix player that Eric recently uploaded to the forums - could this be why?

namida

Quote from: WillLem on April 11, 2020, 03:28:14 PM
Quote from: ccexplore on April 11, 2020, 07:16:19 AM
For LemmixPlayer, just enter "CHEATCODES" for the level code to activate cheat mode, once activated it will stay so even after you exit and later rerun the program.

This didn't work either... I am using the very latest Lemmix player that Eric recently uploaded to the forums - could this be why?

You'll probably find most people, where using Lemmix, are still using the "classic Lemmix", especially since at this stage (at least to my understanding) it offers a more accurate reproduction of DOS physics. The new one apparently (I haven't actually tried it) gives user-side options as to whether a few things that are objectively "the way DOS actually works" get replicated, and some things aren't replicated at all yet; and it also seems to primarily be aimed at becoming a custom content platform. (I suspect it won't succeed here - there isn't really much untapped market; SuperLemmini catches the few people that NeoLemmix misses.)

You can grab the classic Lemmix players here: https://www.neolemmix.com/?page=download_list&program=42
DOS level codes won't work in them (that's one thing we never accurately bothered to reproduce because it doesn't really affect gameplay), but the CHEATCODES method ccexplore mentions will. You don't need to type out the full rank names either - you could enter eg. "0225" for Tricky 25.
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)

WillLem

Brilliant, thanks guys. I downloaded one of the older players and thanks to ccexplore's 5-builder-start I managed to save 100% with only 16 builders!

I've attached the files that were generated when I pressed "U" for save replay (thanks, Simon!). One appears to be a text file which details all the moves that were made. Out of interest, what do all the assignments at the start of the level mean, i.e. before the first Builder was assigned?

Also, it appears that the RR could be set as low as 50 in the DOS game, which seems to be what makes the 5-builder setup possible. It's difficult to see exactly what's going on from watching the replay, but I tried to recreate it in NeoLemmix and 6-builders is the minimum I can manage.

namida

The release rate is the same on Amiga and NL, in terms of how many frames between spawning lemmings. It's just represented by a different number - basically, on DOS / Amiga, every two consecutive RR values are identical physics-wise, NL un-duplicates these so there's only one value for each number of frames between lemmings (then uses values below 50, which is equivalent to DOS RR1, to allow even slower RRs).

The difference arises from builder terrain check differences.
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)

ccexplore

Quote from: WillLem on April 12, 2020, 01:54:46 AMOne appears to be a text file which details all the moves that were made. Out of interest, what do all the assignments at the start of the level mean, i.e. before the first Builder was assigned?

B is pause, E is unpause, +/- is changes to release rate, S is selecting a skill.  I don't remember what * is.

WillLem

Quote from: namida on April 12, 2020, 08:10:20 AM
The release rate is the same on Amiga and NL, in terms of how many frames between spawning lemmings. It's just represented by a different number - basically, on DOS / Amiga, every two consecutive RR values are identical physics-wise, NL un-duplicates these so there's only one value for each number of frames between lemmings (then uses values below 50, which is equivalent to DOS RR1, to allow even slower RRs).

The difference arises from builder terrain check differences.

So... RR75 in NL is the same as RR50 in DOS?

Proxima

#12
Yes. One way to think of it is that the distance from either 99 or 100 gets doubled. So, 75 is 25 away from 100; double this is 50; 50 away from 100 is 50; so NL RR 75 = DOS RR 50.

Equally, 75 is 24 away from 99; double this is 48; 48 away from 99 is 51; so NL RR 75 = DOS RR 51. That's not a contradiction, because DOS RR 50 and 51 are the same.

namida

Here's a chart which shows equivalencies between DOS RRs (and by extension, Amiga, Genesis, SNES, and clones that mimic these) and NL RRs.

Each NL RR matches two consecutive DOS values, because under DOS every two consecutive values are identical physics-wise - whereas, as mentioned, in NL every value has a slightly different effect.

(NL also has an option to use a "spawn rate" instead of a "release rate". Conversion is very simple: To convert a spawn rate to a NL release rate or vice versa, subtract it from 103. EG: Let's use RR 90 as an example. 103 - 90 = 13, so RR 90 = SR 13. Or the other way around; SR 40 as an example. 103 - 40 = 73, so SR 40 = RR 73.)

SuperLemmini uses the same RR scale as DOS / Amiga. I'm not sure if it keeps the "each pair of consecutive values are identical" as DOS does, or if higher resolution (and it would also need higher frame rate) makes the odd values slightly different from the paired even value.
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)

WillLem