Lemmings Forums

NeoLemmix => NeoLemmix Main => Topic started by: namida on May 26, 2019, 01:41:39 AM

Title: WARNING: NXP convertor may not be compatible with future updates to styles.
Post by: namida on May 26, 2019, 01:41:39 AM
Due to the changes to styles with the secondary animations update, the NXP convertor will no longer be compatible with the styles and thus will not be useable after the next major update (ie: V12.4.1 will be fine; V12.5.0 or V13.0.0 will not).

EDIT: The convertor should be fine with V12.4.1's styles. It probably won't work with V12.6.0. I will only offer assistance for further conversions, in the case where people are converting packs from users who are no longer in the community, or where those who have been absent for a long time have returned and wish to update their own content. Those who have simply neglected their existing packs, or continued to create new content on the old versions, you have had plenty of time to switch over - it's been 3 months since this warning was posted, and over a year and a half since NeoLemmix new-formats became stable. You can ask for help and the community may help you if they wish, but the only assistance I will offer is providing a copy of the styles download as at V12.4.1's release: https://www.neolemmix.com/files/styles_12.4.1.zip

We will keep an old copy of the styles available, to use with the convertor; but if you have any remaining unconverted packs, it would be easiest to get them converted now. Don't be discouraged by that you have levels that use radiation or slowfreeze - it's often possible to replicate these solutions quite closely using features that still exist, and where not, see if you can make a new puzzle out of the terrain!

This will not affect opening old single LVL files in NeoLemmix or the editor; it only affects the NXP conversion tool.

Since it's relevant, I'll take this as another time to remind people: You should not still be creating new content for old versions. If you're reading this topic, it should either be an "out of interest" thing or because you have existing content (either your own, or that from no-longer-active authors) that you need to convert. If you have been working on any old-formats content, or have content you still need to convert, ideally look into converting it ASAP because it's going to get harder after the next update.

And just to be clear - if you convert content using the current version, the post-conversion content will work fine with the next version. No features that are needed by older content are being removed; it's simply a matter of changes in the styles and us not being likely to update the conversion tool to account for these.
Title: Re: WARNING: NXP convertor may not be compatible with future updates to styles.
Post by: Strato Incendus on May 26, 2019, 08:33:38 AM
Thanks for the notification! I'll keep a copy of version 12.4.1 around then. I can't convert Lemmings World Tour yet, because I still don't have the translation tables for Gronkling Electric and Digital. As you've said, there needs to be a converted version of all styles used in a pack in order for the pack converter to work.

Whoever converted those styles apparently failed to share the translation tables, unfortunately, despite my repeated requests for them - so apparently I'll have to edit them manually, which is more annoying due to the split-up into two styles in New Formats. Once I've done that, I'll share them here - even though most likely, nobody else except for me used those styles. It's just that creating the tables is considered part of the instructions for appropriately converting a graphic set.
Title: Re: WARNING: NXP convertor may not be compatible with future updates to styles.
Post by: namida on May 26, 2019, 07:50:55 PM
To be specific - it's the old styles you need, not necesserially a copy of an older NL version itself (the convertor doesn't need NL itself - as long as it's got the styles and translation tables). And as mentioned, we'll keep an old copy of the styles available to download (but I will stress VERY hard - this is only for pack conversion purposes, please do not try to use outdated copies of styles in content! Use the old ones to convert only, then the up-to-date-ones to test).

In fact, I'm wondering if it's a good idea to try and compile a list of not-yet-updated packs, categorized by:
a) Cannot be updated without significant changes - obviously, no update here, unless the author themself decides to do a major overhaul
b) Requires no changes (or only very minor tweaks), and the author is still active - I'm inclined to put less priority on these as it should be up to the pack author, although perhaps in the case of a few authors who pretty much pretend their pack doesn't exist anymore once it's been released we might have to just bite the bullet and do it (not referring to you here)
c) Requires no changes (or only very minor tweaks), and the author is no longer active - someone else will need to convert these; I might consider doing a few of them (I already recently did MazuLems and GeoffLems)

Then we can try to get as much as possible converted, so there won't be any need to keep the conversion tools around.
Title: Re: WARNING: NXP convertor may not be compatible with future updates to styles.
Post by: Strato Incendus on May 26, 2019, 09:37:22 PM
I have created the translation tables for grnk6_electric and grnk6_digital today and shared them in the respective thread. Afterwards, I tried to convert Lemmings World Tour - however, some issues still arise with GigaLem's modification of your Desert tileset.

a) The translation table is missing in the "data" folder of the latest complete download of NeoLemmix I could find on my hard drive (many of the updates only include updated players, editors, and styles). GigaLem has sent it to me meanwhile.
b) The translation table, though, refers to an old exit (the one shaped like the exit you used in your original Desert tileset). The converter stops because it can't find it in the "objects" folder, however the translation table is actually looking for it.

So I hope that exit simply gets added back in - the Old-Formats modification of your Desert tileset also offered the choice between two different exits, I see no reason why this should be different in New Formats. ;)
Title: Re: WARNING: NXP convertor may not be compatible with future updates to styles.
Post by: namida on May 27, 2019, 01:47:09 AM
Quote
So I hope that exit simply gets added back in - the Old-Formats modification of your Desert tileset also offered the choice between two different exits, I see no reason why this should be different in New Formats.

I'm pretty sure I've never had two different exits in the Desert tileset. Or if this is something exclusive to GigaLem's conversion, you'll need to ask him about it - I suggest in the meantime, point the translation table towards the one that does exist, then change the exit later if it gets re-added.
Title: Re: WARNING: NXP convertor may not be compatible with future updates to styles.
Post by: Strato Incendus on May 27, 2019, 10:47:31 AM
Yes, you only had the original exit that looked like the one from the Marble tileset in yellow. GigaLem modified that one to a darker shade of yellow (gold-brown-ish) but also added his own custom exit. The custom exit is the one that's still there.

In other words, your exit from the Desert tileset got lost from the modded version in New Formats ;) .

Back 2 topic:

1) So the reason why future updates to the styles won't work with the converter anymore is because, as I understood it, every object is going to get a secondary animation, without exception? i.e. every triggered trap is going to have some ongoing secondary animation?

2) Whatever changes may occur to pieces of any graphic set: Can't we just change that in translation tables, or even easier, since a given object with a secondary animation should replace the object with the same name without a secondary animation, why won't the translation table simply replace an Old Formats object (=without secondary animation) with the New Formats equivalent that does feature a secondary animation? ;)
Title: Re: WARNING: NXP convertor may not be compatible with future updates to styles.
Post by: namida on May 27, 2019, 07:53:31 PM
Quote
1) So the reason why future updates to the styles won't work with the converter anymore is because, as I understood it, every object is going to get a secondary animation, without exception? i.e. every triggered trap is going to have some ongoing secondary animation?

Not necesserially, but rather, some objects have changes to their data file - most notably, one-way arrows - that aren't compatible with the NXP convertor's older code, which is based on the first new-formats release. If we still have the source code for the converter, it would theoretically be possible to update it, but given how long new-formats has been out and how much time people have had to convert their packs, I'm a bit reluctant to make this kind of special effort at this point (especially given that IIRC, the convertor needs to be compiled using a much older version of Delphi than what we're using for NL nowdays) - especially if the levels can be converted using the older copy of the styles, and the post-conversion levels themself work fine on the up-to-date ones (which they do).

The issue is not with the translation table, but with the objects themself - which the converter needs to be able to load too, though I forget exactly why (EDIT: might have been to determine the correct size for resizable objects? But really, I don't remember and don't particularly care to look into it right this second, maybe later). But if you convert a pack using the older styles, then load it in NL 12.5.0 / 13.0.0 (whichever it ends up being), the level itself will work perfectly fine, assuming the usual conditions (ie: no use of now-removed features, etc - and to be 100% clear, the next update is not removing any further features, I'm simply talking about those that were removed during the old-formats to new-formats changeover). Likewise, the same applies to opening an older LVL file directly in NL or the editor - as long as those conditions apply, plus a correct translation table is present, you can still open your old levels that way.

If there's particularly huge demand for a way to convert levels to remain available, I'll look at whether I can rig up some kind of command-line mass conversion feature in NeoLemmix itself - all that would be needed here is to recognize the command line option, and mass-convert the levels according to it - NL already has support for loading old-formats levels (as well as DOS / Lemmix, (Super)Lemmini and Lemmins levels), and any level it can load it can then save back to an NXLV file. It even has support for doing this one level at a time via command line*, just not in bulk. The user would still need to put the converted levels together into a pack manually, though. But even for this, I'm going to need to hear a good reason why (a) there are packs that weren't developed for new-formats (or already converted) in the first place, especially given that new-formats has been out for a couple of years now and we've constantly reminded people that new content shouldn't be made for old versions; and (b) using the existing conversion tool with an older copy of the styles isn't feasible; or some use cases outside of "I didn't update my pack yet" (eg. are there a significant number of Lemmini packs that there's interest in converting? That would justify implementing such a feature; it's zero extra work to support both Lemmini and older-NeoLemmix levels this way compared to supporting just one or the other).

* This feature currently exists primarily for editor use. The editor only has actual support for NXLV levels - all the other supported formats, it first asks NeoLemmix to convert to NXLV.
Title: Re: WARNING: NXP convertor may not be compatible with future updates to styles.
Post by: namida on August 04, 2019, 03:10:58 AM
Just to confirm - the convertor should still work perfectly fine with the styles from the just-released V12.4.1 update. It's not until V12.5.0 (or V13.0.0) that it might break.
Title: Re: WARNING: NXP convertor may not be compatible with future updates to styles.
Post by: namida on August 16, 2019, 03:03:02 AM
Just to make it clear - this now applies as of V12.6.0; I suspect the NXP convertor will no longer work. It might, but I make no promises that it works now, or that it will continue working in the future. If you cannot get it to work, the alternative option is to open and re-save your levels one by one in the editor (which is still supported in V12.6.0); you will need to manually convert non-level content.

You can get a copy of V12.4.1's styles download here: https://www.neolemmix.com/files/styles_12.4.1.zip
You can download NL V12.4.1 itself, including the translation table files, using this permalink: https://www.neolemmix.com/download.php?id=298

Make sure to use this only to convert. Use the up-to-date styles, with the up-to-date version of NL, for testing and fixing of your content after conversion. Under no circumstances should you try to use outdated versions of styles to create new content. Just don't.
Title: Re: WARNING: NXP convertor may not be compatible with future updates to styles.
Post by: namida on August 26, 2019, 09:08:48 PM
In the next major update, I'll be introducing a "Cleanse Levels" feature. This is basically the "Dump All Levels" feature that existed back in the days of NXPs.

This may seem pointless - but a key point is, that this works by loading and re-saving the levels, not just by copying the files verbatim. This means that any level fed into it, will be popped back out in NXLV format. The primary reason for this feature is so that, in the future, if any changes occur to the level format, you can just run levels through this and get the levels in the up-to-date format instantly. However - a useful side effect of this is that it can also be used to mass-convert old-formats levels (or even DOS / Lemmini / Lemmins levels, with a bit of extra work).

EDIT: In fact, a minor example of this already exists. NeoLemmix can understand the keywords "RELEASE_RATE" and "RELEASE_RATE_LOCKED", but officially, the correct keywords are "SPAWN_INTERVAL" and "SPAWN_INTERVAL_LOCKED" (and importantly: the "RELEASE_RATE" keyword gets interpreted as an old formats release rate). Running levels that use this older keyword through the Cleanse Levels feature would give a copy that uses "SPAWN_INTERVAL" and "SPAWN_INTERVAL_LOCKED".

This will be the recommended way to convert any remaining old-formats levels in the future. Graphic sets - if any that aren't converted still exist - should continue to use the graphic set conversion tool.

This will be supported for as long as NeoLemmix keeps support for old-format levels in general. Currently, it is planned to drop this support in V12.10.0, after which the feature will no longer be useable to convert old levels, and there will be no remaining officially-supported way to do so (you would have to use an older version of NL or an obsoleted tool).