Author Topic: NeoLemmix (Player: V1.26n-C | Editor: V1.26n-B)  (Read 124656 times)

0 Members and 3 Guests are viewing this topic.

Offline namida

  • Administrator
  • Posts: 12414
    • View Profile
    • NeoLemmix Website
Re: NeoLemmix (Player: V1.14n | Editor: V1.06n-B)
« Reply #210 on: August 10, 2014, 03:51:51 PM »
Here we go, NeoLemmix V1.14n!

NeoLemmix V1.14n changelog
-----------------------------------
*  Added support for "pick-and-choose" gimmick combinations, rather than
   being restricted to a preset selection.
*  Added support for Oddtable-style levels directly encoded in the level
   file, rather than requiring a hardcoded redirection list and an actual
   Oddtable file.
*  Cheat codes can now be done using the rank number instead of the rank
   name, for example for Fun 14, you can enter "0114" instead of "FUN14".
   The rank number must be entered as two digits.
*  Cheat codes now work for any level number (at least as high as the
   players actually support); previously they would not work for levels
   beyond Level 99 of a rank.
*  NeoCustLemmix will now load an external MAIN.DAT if one is present. (Must
   be a NeoLemmix-style MAIN.DAT file; Orig and OhNo style ones are not
   supported.)
*  NeoCustLemmix can now load external music files if they are present.
*  Added a new player called "Flexi". This one is similar to CustLemmix but
   more customizable, it's designed for entire games rather than just small
   levelpacks. See its readme file for more info.


Downloads are here.

I'll release an editor update over the next few days to support the two new features in levels. If you want to use either of them urgently and have enough knowledge to do stuff with a hex editor, I can explain the format if you want. I haven't uploaded either the Flexi player or the all-players-in-one-zip yet (the latter being due to wanting to include the Flexi player in it); this is only because I still need to write the readme file for it. It'll be added within half an hour or so.


Note that the maximum scores have not been adjusted, nor does LPII use any of the remastered styles yet (as that's waiting until they're all complete).
My Lemmings 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)

Offline namida

  • Administrator
  • Posts: 12414
    • View Profile
    • NeoLemmix Website
Re: NeoLemmix (Player: V1.14n | Editor: V1.06n-B)
« Reply #211 on: August 10, 2014, 04:11:15 PM »
Flexi player has now been uploaded, enjoy! :D Am currently uploading the all-in-one zip (may take a few minutes since it's a very large file).

NOTE - there is a mistake in the included info on SYSTEM.DAT format. There is *NOT* a 16th rank name slot that should be left blank; only include 15 rank names (or rank-name-sized blank spaces as applicable).

As mentioned in the readme - you do NOT need to include style files with custom packs, as long as they're using the NeoCustLemmix numbering system. (You do need to include VGASPECs though.) Obviously this only applies to the styles that also exist in NeoCustLemmix, ie: the styles from the official games, the LPII and LPIII styles, and the Sega style.


And rather than wait for someone to ask, here's how to implement the two new features with a hex editor:

"Oddtabling"
1) Change the byte at 0x0C, turn the 5th bit on (in other words, add 0x10 to it)
2) Change the byte at 0x10 to the section number of the level to copy from (zero-based, so the first rank is 00, second is 01, etc)
3) Change the byte at 0x12 to the level number to copy from (also zero-based, so level 1 is 00, level 2 is 01, etc)

Custom gimmick combinations
1) Change the byte at 0x0C, turn the 6th bit on (in other words, add 0x20 to it)
2) Treating the bytes at 0x08, 0x0A, 0x0C and 0x0E as if they were a single 4-byte value (with 0x0E being the least significant byte), toggle the following bits on to add the corresponding gimmick. These are also listed from the least significant bit first:
Bit 0: SuperLemming
Bit 1: Frenzy
Bit 2: Reverse Skill Count
Bit 3: Karoshi
Bit 4: Unalterable Terrain
Bit 5: Skill Count Overflow
Bit 6: No Gravity
Bit 7: Hardworkers
Bit 8: Backwards Walkers
Bit 9: Lazy Lemmings
Bit 10: Exhaustion
Bit 11: Non-Fatal Bombers
Bit 12: Invincible Lemmings
Bit 13: One Skill Per Lemming

Note that if a custom gimmick combination is in effect, the standard gimmick code will be ignored; they do not combine. And note that combinations that directly contradict each other (for example, Hardworkers + Lazy Lemmings) may have weird or unpredictable results, though they aren't likely to cause crashes.
My Lemmings 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)

Offline exit

  • Posts: 197
    • View Profile
The memory lek messages come up also on Eric's Lemmix editor(I'm not sure about NeoLemmix, but I believe it's the same). To prevent these memory leks, you can close the level(File>Close Level), and then close the editor. If you have a bigger level(more information in it), the lek will be bigger.
You could try this and see if it works.

Offline mobius

  • Posts: 2759
  • relax.
    • View Profile
did you fix the issue with copy/paste? It's incredibly tedious to make a level without this. Btw, cut works fine for some reason. Is no one else having this issue?
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


Offline namida

  • Administrator
  • Posts: 12414
    • View Profile
    • NeoLemmix Website
did you fix the issue with copy/paste? It's incredibly tedious to make a level without this. Btw, cut works fine for some reason. Is no one else having this issue?

I haven't updated the editor yet, only the player. Editor update is coming in the next few days, but yep, I'll have a look at the copy/paste issue.

exit: You say you aren't 100% sure if that helps - do you mean as in that's just a theory? Or you know for sure it helps on the traditional one, and just don't know if it would work for Neo?

Let me know if there's anything I've missed:

> Add support for flexible gimmick editing
> Add support for Oddtabling
> Investigate the copy/paste issue
> Investigate the memory leak on close
> Fix the transparent black bug
> Possibly a SYSTEM.DAT editor, though more likely I'll build this into LemMain Built this one into LemMain
> (Not urgent, will probably wait until the others are fixed first) Investigate the issue with Lemmini styles

The first two and the SYSTEM.DAT are the most urgent, so that the editor is up to date with the player. But depending how difficult they are to fix, the other three will probably be fixed in the same release anyway.
My Lemmings 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)

Offline exit

  • Posts: 197
    • View Profile
I'm not sure if this will work on NeoLemmix Editor(since I don't know how the editor is). I'm sure it will work on the traditional editor, though.

Offline namida

  • Administrator
  • Posts: 12414
    • View Profile
    • NeoLemmix Website
If it will work on the traditional one, it *should* (not definitely though) work on this one too. Thanks for that. The fix *should* hopefully be as simple as checking what exactly the "close level" function does, and making the "exit application" also do the same thing before actually closing.
My Lemmings 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)

Offline namida

  • Administrator
  • Posts: 12414
    • View Profile
    • NeoLemmix Website
I've updated LemMain (the MAIN.DAT tool) to add functionality to generate the SYSTEM.DAT section based on an INI file. The readme contains instructions on how to create the INI file; a sample is also included.

http://www.mediafire.com/download/us62552jbqf152h/LemMain.zip

Note that this is futureproofed by already containing support for the customizable texts that don't yet work in V1.14n, so you won't need to download a new version when V1.15n is released.

There's mention in the SYSTEM.DAT format explanation of an option that says "experiment and see what it does and don't abuse it". Those who figured out what this option does will know exactly why I say "don't abuse it" and why I haven't openly revealed what it does; similarly I haven't documented how to include turning that option on in the INI file (but there is a way). If you really want to know, ask me in PM, or examine the source code to figure it out.


To get the images required to compile a MAIN.DAT, just extract any existing MAIN.DAT file (using Orig or OhNo style as applicable; you then choose NeoLemmix when you rebuild it). Use OhNo style for any MAIN.DAT from a game with 5 ranks (OhNo, CustLemm, LPDOS, LPII), otherwise use Orig. If you're using CustLemm as the source, its file is named "CSTM.DAT", just rename this to "MAIN.DAT" before extracting it.
My Lemmings 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)

Offline exit

  • Posts: 197
    • View Profile
Will the system.dat file work with the customizable player? And also, if you add more ranksign images, will it build into an main file? I'm sorry if I overlooked something in one of your posts or the "usage" file.
I can't see what you're talking about when you're saying that there is an option with the explanation "experiment and see what it does and don't abuse it"(I take it you took that as a direct quote from the file). Am I missing something?

Offline namida

  • Administrator
  • Posts: 12414
    • View Profile
    • NeoLemmix Website
An actual SYSTEM.DAT file (standalone) placed in the folder will not be recognized by the player; it is LemMain that recognizes this file (or a SYSTEM.INI file, which it will generate a SYSTEM.DAT based on), and adds it to the MAIN.DAT it generates. The customizable player does indeed recognize the SYSTEM.DAT when it's inside a MAIN.DAT file; that's how it gets the information on how many ranks, how many levels in each rank, what cheat code to use, how many musics to cycle through, etc.

The number of rank signs LemMain adds depends on which type of MAIN.DAT you choose. It adds four in an Orig style, five in an OhNo style, and fifteen in a NeoLemmix style. As long as at least one rank image (for the first rank) is present, it has its ways of handling any missing files - so if you're only using 5 ranks in a NeoLemmix style one, for example, you don't have to include dummy files for ranksign_06 onwards.

When I released the Flexi player, there wasn't yet anything that could make a SYSTEM.DAT file (LemMain would build it into the MAIN.DAT if there was one present, but it had to already be a SYSTEM.DAT file; it was only more recently that I added the option of using an INI file to generate it). Therefore, with the Flexi player, I included a file with information on how to create a SYSTEM.DAT file using a hex editor. There was one option in here that I didnt' outright say what it does, I just said that it exists and that if the user is interested, they should experiment to find out what it does. That's the option I'm referring to with that comment.
My Lemmings 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)

Offline namida

  • Administrator
  • Posts: 12414
    • View Profile
    • NeoLemmix Website
NeoLemmix Editor Updated (V1.14n-A)
-------------------------
* Can now edit customizable gimmick combinations.
* Can now set a level as an "oddtable level".
* Locked exits, unlock buttons, pickup skills and left-facing pre-placed lemmings now display properly in the editor.
* Swapped "Cut" and "Copy" in the menu to the order they're in in most programs.


http://www.mediafire.com/download/q5e8g08qe3b411z/NeoLemmixEditor_V1.14n-A.zip

Regarding the other things mentioned above, I haven't looked at the Lemmini issue, the memory leak or the transparency glitch yet - I thought it was more important to get out a version that supports the new V1.14n features first. As for the copy/paste bug, I did look at it but was unable to reproduce it - copy seemed to work just fine for me. However, while checking this I noticed the odd ordering of those two in the menu so I fixed that.

mobius, could you let me know exactly what you're doing when you have the problem? eg: What kind of piece are you trying to copy? I do find it strange that there's any issue at all, given that the code for Cut is exactly the same as the code for Copy except with an added line to delete the piece; but then again, I've run into weirder issues with Lemmix so I'll reserve my judgement until I know the full details of what's happening. :P

Two issues I'm aware of that mostly relate specifically to the Flexi player:
> I forgot to implement the level-based selection of where secret levels redirect to. >_>
> Secret level triggers that specify an exact level to go to still won't work beyond the 7th rank.

I'll release an update to fix those for the Flexi player and NeoCustLemmix (as the former of those two could affect that too); the other players aren't affected by these so I'll wait for V1.15n to fix anything in those.
My Lemmings 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)

Offline namida

  • Administrator
  • Posts: 12414
    • View Profile
    • NeoLemmix Website
Uploaded the fixed versions of NeoCustLemmix and the Flexi player. All other players will receive these updates in V1.15n, as they're not critical for those ones (really, they aren't *overly* important for these two either, but they're nice to have):

* You can specify in a secret level's file what level it should redirect to afterwards. Just set the target level in the Oddtable targets, but without actually enabling Oddtabling mode for that level.
* Secret level triggers can now target any rank, instead of only the first 7.
* Secret level triggers can now target up to Level 255 of a rank, instead of only up to Level 99.
My Lemmings 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)

Offline namida

  • Administrator
  • Posts: 12414
    • View Profile
    • NeoLemmix Website
Okay, I had a look into the possibility of making players with the data stored internally in the EXE rather than as seperate files, and I came up with a solution. It does require a bit of work, but I included a guide on how to do it - it should be easy enough to follow. So here's the toolkit (it can also be found in the release folder for V1.14n - and of course, any future versions will have an up-to-date copy of it as well):

http://www.mediafire.com/download/y2d87olsc0oqtvc/FlexiTool.zip

Just in case anyone needs them, it contains copies of the styles and music files as well. These might be useful even if you're not building an all-in-one player.

Note that the version of the Flexi player in this toolkit is slightly different from the one in the general release; specifically, it will not load external files. The exception is single LVL files if LookForLVLFiles is enabled by the pack in question, and turned on in the INI file - that still works as normal.

You should also be aware that, while not impossible, it's quite hard to re-extract your data/music files from the EXE once you've built them in. This can be both a good thing (in that people can't mess with them so easily) and a bad (in that if you lose your data, it's a pain to recover it). It isn't entirely impossible - I managed to recover the Lemmings Plus DOS Project data files by extracting them from the EXE - but it is one hell of a pain in the ass.



So... let's see some awesome custom packs taking full advantage of this new tool! :D

By the way, I'm currently working on a non-NeoLemmix version of the Flexi player. Just for the record; it will support 32-color styles just like CustLemmix does, in fact it's being based off the CustLemmix code (and yes, there'll be the three versions just like with CustLemmix). It won't support more than 5 ranks though (less than 5 is fine if you don't want to use the full amount), nor will it support oddtabling or any other NeoLemmix-exclusive features besides the extended palette.
My Lemmings 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)

Offline namida

  • Administrator
  • Posts: 12414
    • View Profile
    • NeoLemmix Website
Finished making the traditional version. However, since it's not NeoLemmix, I won't post about it here - the best place for it, I think, is the CustLemmix topic, so I'll post it there.


By the way, an option I realised I need to add in the next update (for both versions) - using the Xmas palette.
My Lemmings 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)

Offline namida

  • Administrator
  • Posts: 12414
    • View Profile
    • NeoLemmix Website
The Flexi Tool version seems to crash after completing levels, so I've temporarily removed it - I'll look into this. This only affects the NeoLemmix version of Flexi Tool; the traditional version one works fine as far as I can tell.

EDIT: Seems this affects the non-Tool version of Flexi as well. However, I've found a fix - will upload soon. Since it's relatively simple, I'll add support for the custom strings first.
My Lemmings 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)