NOTE: This topic is no longer being updated. New versions will be posted in topics relating to releases of new NeoLemmix versions.
So, here's a tool that greatly simplifies the creation of custom games on NeoLemmix. Instead of the runaround with manually gathering files, using a resource hacker to put them into an EXE, and so on that was previously nessecary, this tool does pretty much everything for you except creating the levels! :P
Current Tool version: V1.02
Included NeoLemmix player version: V1.35n-C
Download: NeoLemmix Website (http://www.neolemmix.com/old/neolemmix/FlexiTool.zip)
Tutorial: Part 1 (Beginner) (http://www.neolemmix.com/old/flexitutorial.html) | Part 2 (Intermediate) (http://www.neolemmix.com/old/flexitutorial2.html) | Part 3 (Advanced) (http://www.neolemmix.com/old/flexitutorial3.html)
Source Code: In the tool sources (https://www.dropbox.com/sh/0cbgp0a1jo2kurn/AAAQAztW7FNllSmF4XSVallPa) folder on my DropBox
NOTE: The "Build EXE" function uses Windows API calls that do not exist prior to Windows 2000 as far as I can tell, so most likely the "Build EXE" function will not work on Windows 95 / 98 / ME (though is anyone really still using those?). It has been tested and works under WINE. The rest of the app should work properly in any, though.
So, as anyone who's tried (or at least read about it) is probably aware, the current version of the Flexi Toolkit isn't overly easy to use. So, I'm planning to replace it with an improved tool that can both:
- more conveniently manage the data files, rather than having to do it manually (whether simply for preparing to build an EXE, or for use with the non-toolkit Flexi player)
- build the all-in-one EXE without the need for Resource Hacker
On top of that, it'll also contain a mini SYSTEM.DAT editor. This won't be fully-featured like the one in the NeoLemmix Editor (but you can always import a SYSTEM.DAT file created with that), but will just contain the most important options for quick access; any options outside these will be limited to preserving them and having a "reset to default" button.
This tool will not be able to do anything that existing tools can't already do, it'll just make it a lot easier to do. :)
So far, the mini- SYSTEM.DAT editor and the Levels tab are fully functional (the levels tab allows for reordering levels / ranks, and adding / removing / extracting levels). The other tabs are just blank at the moment. Most should be self-explanatory what they're planned to do, the "Other Data" one is mostly for MAIN.DAT and TALISMAN.DAT. (It'll most likely be limited to import/export of files, and not have any actual editor for them).
EDIT: I'll get screenshots up tomorrow, but the Graphics Sets tabs is almost complete (just need to decide if I'll add support for mapping numbers to graphic sets - probably unnessecary since the editor has used graphic set names rather than numbers for AGES now; and if I do do so, do it - if I don't, it can still be done via the NeoLemmix Editor's SYSTEM.DAT editor and preserved by this tool, so it won't be an impossible-to-do thing), and I've started on the Musics tab. Going to add support for actually previewing the musics in the tool, since unlike graphic sets, they don't actually have names.
(If you're wondering why the screenshots show the data for GigaLems, it's because I happened to have a non-compiled copy of it handy from when GigaLem was asking me some questions about how to use the Flexi Toolkit, so I figured it made sense to use what's already there rather than try and create entirely new data just for the purpose of testing it. My own level packs are compiled from source rather than using Flexi, so using one of those wasn't an option.)
Okay so, building an all-in-one EXE aside, the initial development of this is complete. It does need some further testing before I make the EXE building part; but at the moment it's pretty much a complete tool for (non-all-in-one) Flexi packs. No special formats here - it just loads and saves the same set of files that the external-file-based Flexi player uses.
Of course, the major draw will be once it can build the EXE...
This is looking extremely promising. I should have the new, much more user-friendly toolkit out VERY soon.
Please note that it uses some Windows API calls when building the EXE, and as such I can't guarantee it'll work properly under WINE.
EDIT: Okay, here you go. Anyone trying to build a custom level pack (or who has a bit of spare time to test this), give this a try:
https://www.dropbox.com/s/tbf4h1l3yiz8had/FlexiToolkit.exe
Make sure you use a dedicated folder for each project. If you don't want to use the editor's built-in menu, you can just copy your files manually into that folder. Do not put any DAT, IT, OGG or TXT files in the project folder, except those that are actually part of the project.
DO NOT SAVE INTO A FOLDER THAT ALREADY CONTAINS FILES (unless you loaded from that folder). DO NOT COPY ANY DAT, IT, OGG OR TXT FILES INTO THE FOLDER MANUALLY WHILE THE APP IS RUNNING (close it first, copy the files, then reopen). DO NOT ASK FOR HELP IF YOU LOST DATA BECAUSE YOU IGNORED THESE WARNINGS. I'll improve things in the future to make this less of a hassle, but in the meantime... you have been warned. And, it is safe to have LVL files and EXE files in the project folder (in case you're using LookForLVLFiles while designing your levels).
And yes - it can build the all-in-one EXEs for you. :) MUCH simpler than the runaround in the previous Flexi Toolkit. This version builds EXEs based on NeoLemmix V1.35n, and you do not have to supply a copy of the Flexi Player (it has a copy embedded, which it then modifies to include your data).
For the moment, I've left the "classic" Flexi Toolkit up as well, since this is still somewhat experimental while the old one, while possibly the least user-friendly thing in Lemmings history, 100% definitely works. Also because this one doesn't really offer any obvious way to make a music pack (it can be done, but it's a very roundabout way of doing it); that'll be fixed in an update.
I'll write up a decent tutorial for this within the next day or so. (One tip: You can set preview/postview texts for a level within this tool. Just double-click the level in the level listing.)
I do not plan to make a traditional Lemmix version, so don't ask. However, I'll be making this open source in the near-future, so if anyone wants to modify it to work with traditional Lemmix they'll be able to.
Some bugs have been identified:
> The "Title" box (and possibly some other non-numeric input boxes), it's impossible to place a space at the end. You have to put a non-space character at the end, add the spaces before that, then delete the final character. This is of course not intended, and will be fixed when I update it. The workaround for now is, of course, exactly what I described (or alternatively, use NeoLemmix Editor's SYSTEM.DAT Editor then import the system.dat file into this tool).
> The Graphic Set menu seems to be broken. Although it will list graphic sets, the Add button doesn't work properly. Workaround: Save the project, close the tool, then copy the graphic sets into the folder manually. You can then reopen the tool.
And not a bug but obviously needs fixing:
> Currently levels can only be added one at a time. I'll make sure to allow multiple additions at once when I update it. (Probably do the same for graphic sets and musics too.)
Plus one feature I realised is missing, and if possible I'll do in the update (but it may take a bit longer, so won't guarantee this one):
> There's no way to edit the icon for the output EXE.
There's a lot of SYSTEM.DAT settings that can't be set in this tool, but that's intentional. If you want full control over the SYSTEM.DAT, use the NeoLemmix Editor's SYSTEM.DAT tool (under the "Tools" menu) to create a SYSTEM.DAT file, then import that into this tool (or just place it in the project directory while this tool is not open). This tool's settings editor is just meant to give quick access to the most important options (in fact, it's arguable whether the "Timed Bombers" option should really be in there, as its use is something I try to discourage with NeoLemmix).
Looked into the issues, haven't looked into adding some way to modify the icon yet.
Fixed the spaces at end of text input one.
The graphic set one - it was actually adding them, but with a blank name, which made it *look* like it wasn't adding them - and definitely would've caused issues when attempting to save. Fixed it, as well as a couple of other issues I noticed with the Graphics Sets panel.
And yes - adding multiple levels, graphic sets or musics at once is now possible. (With the graphic sets ones, yes, you can select graphic sets and VGASPECs in the same "Add" click).
V0.91
-----
> It is no longer impossible to have spaces at the start or end of text inputs
> Adding multiple files at a time is now possible in the Levels, Graphics and
Musics tab (for Musics, only possible with "Add", not "Replace")
> Fixed the bug where graphic sets would have a blank name (thus also wouldn't
save properly) when added via the Graphic Sets tab.
> Fixed the bug where it was impossible to select graphic sets / vgaspecs
from the lists for deletion
> Fixed the bug where regular graphic sets may be attempted to be saved as
VGASPECs and vice versa.
https://www.dropbox.com/s/tbf4h1l3yiz8had/FlexiToolkit.exe (Same link as above)
As far as the icon issue goes - I'm probably not going to offer any kind of icon editor, even a rudimentary "import and convert" feature, so importing them will probably end up working in a similar way to MAIN.DAT and TALISMAN.DAT currently.
(Also - please note, having a TALISMAN.DAT file is completely optional! If you're not using talismans, you don't need to include a blank TALISMAN.DAT file; just don't have one at all.)
All previous warnings still apply, ie:
- Use a dedicated folder for every project.
- Do not place any DAT, OGG, IT or TXT files in the project folder, aside from those that are part of the project's data. EXE and LVL files are safe.
- You can manually manipulate files in the folder rather than doing it through the tool, but don't do so while the project is opened in the tool (close it first). Otherwise, when you save your project, these newly-added/modified files will be overwritten or deleted.
I'm working on a tutorial for this tool, as well as an official release version (got a few very helpful features I want to add first). If there's anything you've found confusing and think should be mentioned in the tutorial, let me know.
V0.92 is here, as is the first part of the tutorial. :) As of now, this tool is officially replacing the old, cumbersome Flexi Toolkit. :)
V0.92
-----
> Official release version! :)
> If adding a graphic set with the same name as an existing one, it will overwrite
it rather than result in a duplication with unpredictable results when saving
> All default graphic sets are now included and can be added to a project without
needing a copy of the files. The same goes for musics, and a default MAIN.DAT.
> Fixed the bug where the default Code Seed value would follow a predictable pattern
rather than being truly random each time a new pack is created.
> The tool now has its own icon.
Download: NeoLemmix Website (http://www.neolemmix.com/old/neolemmix/FlexiTool.zip)
Got the custom icon feature implemented for the next update. Aside from that, I've also added a warning message when attempting to use the Build EXE function on Windows versions that don't support the API calls it uses (even though I doubt those versions are still in use, but never hurts to have it - just for the record, this is 95 / 98 / ME only; it'll work fine on XP, and even 2000), and I'll also look at doing something for music packs rather than delaying that until yet another update.
Icon support will require an actual ICO file; I haven't written code to convert from other formats. I may look into that further down the line.
Music pack support is added. I split the list on the Musics panel into two lists; the first one acts just like the existing one does now. The second one mirrors the first in terms of what's listed, but the contents of it are used to build a music pack instead of built into the EXE (if any track doesn't have a music pack version, the music pack will just use the standard version).
All functionality relating to this (including previewing music pack tracks in the tool) is implemented, but there's still a few aesthetic things to tidy up relating to it. (EDIT: Or maybe not; encountering some bugs with creating the music pack... Fixed.)
Three known bugs I've identified that are also fixed for the next update:
- Clicking "Move Up" in the musics panel actually moves the track down, even though the selection is still moved upwards (ie: it swaps the selected track with the one after it, but still moves the selection indicator in such a way that it would appear it functioned correctly)
- If the Frenzy music is an OGG and the Gimmick music is an IT (or vice versa), the gimmick music's file will have the wrong extension when saved
- When building an EXE, if you don't actually specify an EXE file extension, it'll save the EXE without any extension
V0.99 released (yeah, I skipped a few numbers, since this is pretty much a case of "only not V1.00 in case anything important to fix comes up"). This adds support for music packs and custom icons, plus fixes a fair few bugs.
V0.99
-----
> Can now create a music pack in addition to the standard built-in musics
> Now supports adding a custom icon to built EXEs
> Will give a warning when attempting to build an EXE on a version of Windows that doesn't
support the nessecary API calls
> Music numbers for levels can be edited in the same popup window as pre/postview texts
> Fixed the bug where .EXE extension was not automatically appended to the EXE filename
if no extension is specified
> Fixed the bug where the "Move Up" button on the Musics panel moved the track down instead
> Fixed the bug where the Gimmick music would be saved with the same filename extension as
the Frenzy music, even if they were different formats
> Fixed the bug where some save file popup boxes may have an extension but no filename set
as a default value
> Fixed the name of the edit pre/postview texts popup box
> Fixed various issues relating to pre/postview texts
Download links are as usual, see the start of the first post. :) Tutorials have also been updated to reflect the new features.
Uploaded V1.00 update (yep, already, but part of the reason is because of a new NeoLemmix player version).
Aside from including the new NeoLemmix version, it also has the fixed-exit-trigger-area version of the Martian graphic set, and fixes one bug relating to loading projects when there's a music pack in the folder.
V1.00
-----
> Updated the contained NeoLemmix player to V1.35n-B
> Built-in copy of Martian graphic set has been updated to fix the exit's trigger area
> Fixed the bug where if a music pack was present in the project folder, it would get
loaded among the graphic sets
A bug has been discovered with the Flexi player (but therefore relevant to the toolkit). Flexi-based packs will crash if any of the rank names have spaces or commas in them. It's possible some other special characters may cause this issue too, but those are the only two that I can confirm do so. (I can also confirm that apostrophes, exclamation marks and dashes do not cause any problems.)
I don't think it's worth making an update just to fix this one issue, but it will of course be fixed in the next general update.
Discovered a potentially project-corrupting glitch with the "Save" option in the menu. This does not affect the "Save As" option, so use that one in the meantime. Of course I'll fix this in the next update.
It can also occur when building an EXE. However, it won't happen if, before building an EXE, you save the project (via "Save As", not "Save"), or if you build the EXE immediately after opening a project (without changing anything). As far as I can tell, it's even fine to change things as long as you haven't imported any external files since the last time you saved (in fact, it's a bit more complex than this - in many cases importing an external file won't cause issues, but it can, so I figure it's better to just say "save it if you've imported files" rather than trying to detail what will or won't cause it).
Also discovered an equally-risky glitch with the music tab. Until an update is released, please don't add or delete tracks via this menu (replacing them, or listening to them, is fine). Instead, save the project, then copy the tracks into the project folder, then re-open the project.
On the last rank, if there is only one level and I press left or right, sometimes it winds up at Level 0 or Level 2, then the player freezes.
That'll be an issue with the player, not the toolkit; and probably isn't limited to Flexi, but just hasn't been noticed elsewhere because no other players have a rank with only one level (though it might possibly happen in a secret rank where only one level has been unlocked EDIT: no, I don't think it would happen there, since the only difference between a secret rank and a normal rank is that the first level doesn't automatically unlock in secret ranks; and no such issue seems to exist with normal ranks while only one level is unlocked).
I'll add it to the player bugs list, and make sure to sort it next time I update the player.
Released an update which fixes those issues, and a few other (less major) ones:
V1.01
-----
> Music packs will no longer be deleted when saving a project; only when building an EXE (and
even then, only if overwriting it with one being made during the build process)
> Gives a warning when attempting to build an EXE with a rank name that contains characters
NeoLemmix currently cannot handle in rank names
> Fixes an issue with the Musics panel which may cause failure to save level packs
> Fixes an issue where the "Save" option (as opposed to Save As) may corrupt level packs
> Fixes an issue where building an EXE may corrupt level packs, unless the EXE is built
immediately after either opening the pack or saving via the Save As function
> Fixes an issue where trying to play the Frenzy music in the toolkit would play the
Gimmick music instead (this does not affect the actual project; only which track
you hear upon clicking the "Play" button in the editor)
There's no fix yet for the issue of players crashing if rank names contain spaces or commas; that's an issue with the player, not the toolkit, so it won't be fixed until the next player update (which I'll probably get onto very soon). In the meantime, the toolkit simply won't build an EXE if crash-causing rank names are present; it will tell you exactly which name is problematic (and why).
For the record - if you've successfully built a pack with a previous version, there's no need to download this new version and rebuild your pack with that; the output won't be any different. But if you plan on making further changes and/or building another new pack, I highly recommend upgrading.
I have a really pesky error that has to do with musics.
In the Musics tab, when I add all the default Orig and ONML default tracks to the Built-In, and set the reset standard rotation after track 23, then compile the EXE, an error occurs whenever I play any level after the first level of a rank:
Bestand "track_XX.it" staat niet in archief. (with XX being the track number).
where is it?
DynaLem: I've had no problem with this myself, but I'll look into it. If you could send me a ZIP of your project folder (feel free to make a "dummy" project that just contains filler levels if you can recreate the problem, and don't want to disclose anything about your actual project) that'd help. :) Just to double-check; which version of the tool are you using? And do you have any music pack present? I have attempted to recreate this problem, but haven't managed to do so.
GigaLem: Are you referring to this tool itself? There's a download link in the very first post of this topic. There's also a download link on the NeoLemmix website, and a download link is included with the links every time there's a NeoLemmix update. If that's not what you meant, what *are* you asking where to find?
nevermind i didn't see the first page
Thanks for helping me with fixing the music issue in the Flexi Player!
The Cheapo player is now all ready. The download link for that can be found in the NeoLemmix website.
Note that some levels use gravity changers and upside-down entrances; I intentionally did that for completeness purposes; anyway, the level can be skipped by pressing left/right on the preview screen, as I had all levels unlocked from the start.
I'll be converting a lot more Cheapo levels.
Testing something else. I'd like to use the Acorn Music, but all I have is the MOD format of them. Also:
QuoteLike with graphic sets, you may want to add your own custom musics. Two formats are supported; IT or OGG. Formats similar to IT should also work, such as MOD or XM. Like with graphic sets, you can use the "Add" button here (or "Replace" in the case of wanting to replace an existing or placeholder track) to add them. When adding (but not when replacing), you can select multiple tracks at a time.
However, it won't let me add the MOD files, even if the files are in the same folder. There is no option to display them via "Files of type" in the "Open file" dialog box.
Rename them to have an IT extension, then import them. Formats other than IT aren't officially supported, but work via that workaround. (I plan to support them better in V2.00n, don't worry about that.)
Addition for the next update - a "Check for issues" option on the "Other" tab. This will try to detect some common problems that occur:
- Invalid / corrupt MAIN.DAT file
- Levels in outdated formats (anything that isn't either 10KB format with a style name (not just a style number), or variable-sized format)
- Levels that refer to non-existant graphic sets
- Levels that refer to non-existant music files
Also, I added a "Replace" button on the Levels tab. Currently it only has "Add" and "Delete", so if you wanted to replace a level, you'd have to delete the old copy, add the new one, then move it to the correct position in the list.
Got quite a few fixes for the next update. Note that unlike with the player, it isn't too critical to find every bug before the next update; the toolkit can be updated independantly of the player.
Some of the issues that have been fixed (and this somewhat doubles as "list of issues to be aware of"):
> the Load / Save buttons for TALISMAN.DAT can corrupt the pack's MAIN.DAT file (and often don't work)
> "Replace With Default" on the Musics tab doesn't work properly when used on blank slots; the files are lost when the pack is saved
> "Replace" (from file) on the Musics tab doesn't work properly with the Frenzy (non-music-pack) slot
V1.02 update is here. Most important points are that it has NeoLemmix V1.35n-C, it has updated versions of graphic sets (and a handy "Refresh" button on the graphic sets tab to auto-update the copies in existing projects), and an Issue Checker on the "Other" tab that should detect some of the most common issues packs might have.
V1.02
-----
> Contains NeoLemmix V1.35n-C player
> Contains updated versions of graphic sets; to facilitate updating to these, a "Refresh" button
has been added to the graphic sets tab which updates to the new versions
> Fixed a bug which may cause MAIN.DAT corruption when importing or exporting TALISMAN.DAT file
> Fixed various bugs on the Musics panel
> Added an "Issue Checker" on the Other panel; this will check for common problems with the pack,
such as missing musics / graphic sets. It is NOT a comprehensive test of every possible issue;
it just spots some of the most common and easily-overlooked matters.
Please be aware - levels in the 10KB format should be upgraded to the newer variable-sized format. This is required if they pre-date the graphic-set-by-name feature; otherwise it's just recommended. The Issue Checker will let you know if there's any levels which need to be upgraded (but, IIRC, it doesn't point out those that are merely recommended to update).
Found a bug; replay checks don't work properly on Flexi-packs.
What's actually happening here is, there's an option (not listed in the Flexi Toolkit, but it's available by modifying the SYSTEM.DAT file through the NeoLemmix Editor's SYSTEM.DAT editor) to enable or disable the replay checks. The Toolkit always sets this object on. However, the player interprets it as the opposite of whatever it's set to - so the option works, but it's treated as "off" when it's on, or "on" when it's off. So, all that's needed to fix this is change the name of it (in the editor's SYSTEM.DAT menu) to "Disable replay checks", and set the default to off instead of on. In the meantime, to get replay checks working for custom packs, simply use the NeoLemmix Editor's SYSTEM.DAT editor and turn that option *off*.
Out of interest - has anyone tried using this on Linux under WINE, and if so, does the Build EXE option work properly? (I would be surprised if any other part doesn't.)
Already reported in IRC: namida has sent me his raw data for the NL introduction pack. Flexi imports this, and builds an executable that runs in Wine. First level plays with music and everything.
Building an empty project produces an executable too, which unhandled-pagefaults upon running.
-- Simon