Lemmix Player Collection (Current: V29)

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

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

namida

#90
Alright, V27 update is here. Unless bugfixes are needed, this is going to be the last update I make for the traditional Lemmix players.

I'll soon build an update of LPDOS using this finalised version, and then I might look at doing one for LPII as well. (I did actually at one point just consider making the NeoLemmix version of LPII the official one - since that was the original intention anyway - but decided against it; it's a traditional Lemmix pack and it's staying that way.)

Usual download links.

The only changes are support for adjustable-size VGASPECs (which will also be supported in the next NeoLemmix update) and that it now has a proper config screen. Press F4 on the menu screen for the config; as such, dump levels is now F5 and dump images is now F6.

EDIT: Known issue; there's no option on the Config screen to change the mechanics set in CustLemmix. Will upload a fixed version very soon.
EDIT: Done that, also uploaded a fixed version of Flexi that fixed an issue where the assign skill sound wouldn't play in packs with instant bombers.

If anyone else would like to make further modifications to Lemmix, you can get the latest version source code here:
https://www.dropbox.com/s/9mp7fnwe2jlsjfo/PlayerSource_V27.zip

From now on, my Lemmings-related work is focused solely on NeoLemmix.
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

Okay, looks like I did update these one more time. The purpose was to store extra info in the replay files, to make it simpler to add challenge-related info to the Replay Database.

Download links remain the same.
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

Okay, looks like we're gonna need one more update here. Why? Well, a fairly significant physics discrepancy between DOS and Lemmix has been found; specifically, trap animations last one frame less in Lemmix (the first animation frame is skipped for some reason). This affects all versions of Lemmix, whether it's that newest V28, or all the way back to early alpha verisons of the Editor that had playtest built-in.

This also holds true for NeoLemmix, but in that case, with the big rewrite coming up anyway, I probably won't fix it until then - my reasoning being that after such a big rewrite it's probably best that levels are re-tested anyway, at which point such a change can be taken into account. No point doing something that could potentially have a significant effect on existing levels one version before such a rewrite. (It could also be argued that it doesn't matter so much in NeoLemmix, since it doesn't try to match DOS physics; but at any rate that's something that can be discussed in a NeoLemmix topic.)

I'll post again when I get around to doing said update.
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

#93
Okay, said update is done.

Now - one thing I took into account is, given how long Lemmix has been around, there are going to be a lot of levels that have been designed tailored to this incorrect behaviour. As such, rather than outright fix the bug and leave these levels broken, I added an option in the Config screen (or in the INI file, if that's your preferred method of configuring it) to enable or disable this bug. By default, the bug is disabled for the official game players (since those levels obviously were not designed for such a bug), and enabled in Cust / Flexi (where most likely, the levels played will expect this bug to be part of the physics); but in either case it's configurable.

I didn't bother to make a creator-side option for Flexi for this. The reason being that basically, traditional Lemmix flexi isn't exactly very widely used - as far as I'm aware only a single pack has ever been made on it, and that pack hasn't been updated to newer versions anyway. Rather, most traditional Lemmix large packs have been made by simply using LookForLVLFiles together with an official game's player, or in rare cases, compiled from source code.

That aside, I also reverted V28's changes to the replay file, since the replay database never really took off and was eventually taken down. V29 can load replays from V28, but replays it saves will be compatible with all versions (at least where the absence / presence of the trap bug doesn't break them), rather than only self-compatible like V28's were.

Downloads at all the usual places - DropBox, or the NeoLemmix Website (check the Lemmix section on the left).



This shouldn't matter too much for the various challenge solutions, since fixing this bug makes the game more lenient, not less. However, I guess if there's situations where a crowd of lemmings walks past a trap, and a *specific* lemming needs to survive, it could matter... but such setups would need to be very, very specific, and I find it unlikely any have happened. So we can probably assume the challenge solutions are safe.

If anyone is using the source code for anything, the following are the relevant changes from previous code:

Spoiler
LemGame.pas
In TLemmingGame.CheckForInteractiveObjects, the 0..127 branch of the Case statement, the following lines have been put into an IF branch which is conditional on the "Lemmix Trap Bug" option being turned on:
              Inc(Inf.CurrentFrame);
              if Inf.CurrentFrame >= Inf.MetaObj.AnimationFrameCount then
                Inf.CurrentFrame := 0;


If compiling a player from source where you don't want the bug to be present at all (rather than being an option), these lines can simply be commented out rather than put behind an If statement (and the remaining changes in other files can be ignored). I'm really wondering why EricLang put them there in the first place, perhaps it was related to an earlier method of implementing the traps and he forgot to fix it later?

As for reverting the replays, I simply used the V27 code, and in the part that checks the header version, I made it recognize the V28 header version too.

GameControl.pas
The placeholder mo8 option was changed to moLemmixTrapBug (to be more descriptive), and the appropriate property and setter/getter functions added.

GameConfig.pas
A few changes to the building and function of the menu to add the Lemmix Trap Bug option.
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)

The Mole UK

Does Lemmix v29 use a switch in the ini file to load a different set of levels?   I'd like a version of Holiday Lemmings that can use my own LEVEL000.DAT (from DOS).  Or is there a way to convert a .DAT file etc, etc...  It would be nice if the community could make a Holiday Lemmings 2023 and then 2024...

The Mole UK

Quote from: namida on June 23, 2014, 04:55:13 AM
Added an "Extra" player, which contains a lot of the levels that weren't in the DOS version. Most but not all are from the Genesis version. It contains a total of 126 levels, see first post for detailed info. In short, the sources are (all are from versions of Orig, except for one Amiga level that comes from H93/H94):

Genesis version: 105 levels
Master System version: 12 levels
Amiga version: 1 level (H93/H94, not orig)
Amiga special editions: 6 levels
Mac version: 2 levels (1 from the demo, 1 from the normal game)

I added it to the bundle download, but since a lot of you probably already have all the other players that are in it, here's a link for this one by itself:
<a href="http://www.mediafire.com/download/c7iqctlk3qhqc27/LemmixPlayerExtra.zip" class="bbc_link" target="_blank">http://www.mediafire.com/download/c7iqctlk3qhqc27/LemmixPlayerExtra.zip</a>

There's no NeoLemmix version of it yet; there will be with the V1.09n release. Since from V1.09n NeoLemmix is switching to use the (standard) Amiga versions as the level source rather than the DOS versions where applicable, the H93/H94 level in here from Amiga will obviously be replaced with the equivalent from DOS.

NOTE: Although it works, using LookForLVLFiles with this player is probably not the easiest thing to do. The Genesis levels have a hardcoded switch to change their graphic set number (so they use the Genesis ones rather than the DOS ones), not all styles are present (only the ones that are needed for included levels), and there's also one other level that has something hardcoded. I won't say what exactly, but I'm sure it'll be an appreciated detail by those who've played the level in question in its original form. I'd reccomend just use one of the other players for that; up to you though. <img src="http://www.lemmingsforums.com/Smileys/lemmings/tongue.gif" alt=":P" title="Tongue" class="smiley" />


EDIT: If you're getting crashes saying "cannot find vgaspec511.dat" on the 6th and 12th levels in the Sega Master System levels, redownload it, I fixed it. <img src="http://www.lemmingsforums.com/Smileys/lemmings/smiley.gif" alt=":)" title="Smiley" class="smiley" /> I just forgot to turn off a NeoLemmix flag that NeoLemEdit enables by default - this is exactly the thing that the latest CustLemmix update protects against crashes from. xD

Is this a version that is lower than V29? - CRC32: B8470CED
Thanks...