[✓][CE] Running CE and NL 12.14 from the same directory

Started by Guigui, November 09, 2025, 11:29:50 PM

Previous topic - Next topic

0 Members and 2 Guests are viewing this topic.

WillLem

Quote from: Guigui on January 23, 2026, 10:20:57 PMYes all works good if the CE is put in its own directory.

OK, I can confirm that running CE from a NL 12.14 directory results in checkmarks not being displayed in the level select menu. It turns out that it's because CE uses larger images (24 x 24 rather than 16 x 16) due to the treeview itself being larger (and having larger clickable areas). I forgot that I'd made this change, and it does result in the checkmarks not being visible if the assets don't match what's expected.

Quote from: Guigui on January 23, 2026, 10:20:57 PMthe text scrolling bar on the main at the bottom of the main page not displaying properly.

And yeah, this is due to the data\title.nxmi file being set up slightly differently to accomodate the CE menu graphics.

Quote from: Guigui on January 23, 2026, 10:20:57 PMAll in all, not sure if this idea of running CE from NL is that good. It looks like it leads to some conflicts and gives you some troubles.

I'd probably have to agree at this point. CE has been created with the sole purpose of being a UI upgrade, but it clearly needs to be able to load its own assets in order to achieve this goal.

It seems that the best thing to do would be to ask CE to check for a subdirectory (we could call it "assets-ce" or something) which contains all the CE-specific graphics, data files, etc required to run CE correctly. Mutual assets (levels, replays, music, etc) and NL-only graphics can be placed in the root directory as usual.

Then, when loading something, CE can check for "assets-ce" before checking the root directory. Anything that's found to be missing (Sleeper sprite) or different (title.nxmi, the checkmark .pngs) can be placed into "assets-ce". (Of course, running CE from its own directory will not require the CE assets folder).

That's something I can certainly look at for the release of 1.1 proper. It may be worth doing an RC-2 to check that it's definitely playing ball, if we decide to go ahead with this.

WillLem

OK, this should be fixed once and for all.

CE will now ship with an "assets-ce" folder which will contain all of the CE-specific graphics, data files, and overrides. CE-only users will actually not need this*, but anyone wanting to run CE and NL side-by-side can do so simply by placing the .exe and the assets-ce folder into the NL root directory.

It works a treat, and is set up for future-proofing should we need to add or update any more assets in CE.

Implemented across commits 8e91234 - 7f0256b.

*On second thoughts, the root folder should be identical to NL 12.14 to keep things as simple as possible. "assets-ce", then, will contain everything CE needs to run, whether in its own directory or an NL one (which will be identical anyway!).

namida

Quote from: WillLem on January 22, 2026, 02:42:32 AMYeah, I'll make sure that CE can read from "sound" as well as "sounds" in 1.1 proper.

Scratch that, I've already done it! In commit 5d091f3, full cross-compatibility with legacy NL directories has been added. This was done after the release of 1.1 RC-1. I don't even remember doing it, but it's there and it works! EDIT: Thinking about it, it was probably done in response to this topic. I've made directory cross-compatibility a fairly high priority in general, since it does make a lot of sense that people would want to run both NL and CE from the same directory.

One thing to note is that some of the sounds themselves may have different names or may use different sounds for the same thing. It's worth combining all sounds from CE and NL into the same directory (whichever one you use) to ensure that both programs can access the sound files that they need. You should only need to do this once, and thereafter add any sound that may later be added to CE (this would need to be done for regular NL anyway).

I would go a step further and say - discontinue support for the alternate "sounds" folder. Otherwise, it could cause problems if people use NLCE when creating their packs, and it works fine there but (due to the different folder name) doesn't work on standard NL.

There's no reason this should ever have been changed in NLCE in the first place. That's an SLX-type change; there's no reason for NLCE to be changing file/folder names or adding alternative options for them (it should only, where necessary, add entirely *new* files, not rename - even as optional things - existing ones), given the goal is data and physics compatibility with 12.14. It's too late to not do it in the first place; best to nuke it now while it's still early days (and might cause issues *once* for people upgrading from an older CE version) than have it become a long-term lingering problem.
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: namida on January 25, 2026, 09:34:18 AMI would go a step further and say - discontinue support for the alternate "sounds" folder. Otherwise, it could cause problems if people use NLCE when creating their packs, and it works fine there but (due to the different folder name) doesn't work on standard NL.

The directories were renamed because every other directory in the tree is named "----s".

"Replay" (with its capital letter - why?) and "sound" seem like they shouldn't be there. It's purely aesthetic and, sure, doesn't really matter, but with CE I felt there was an opportunity to sort that out. But you're probably right, it's likely cause more problems than it's worth in the future, so by all means lets revert those folders back to "sound" and "Replay". CE will internally continue to support the use of "sounds" and "replays" folders for those who wish to name their directories this way (I see no reason not to allow this), but we will ship it with "sound" and "Replay" as the default to minimise issues going forward.

The solution here (regarding CE/NL data compatibility in general) is probably to keep the root directory of CE identical to NL 12.14, and add anything new to the aforementioned "assets-ce" folder (see this post, above). This then becomes a necessary component of CE development which will allow us to update existing graphics and data files without risk of conflicts. CE will prefer this directory when looking for resources, so the rest of the tree can be identical to NL. This will ensure that anyone making content for CE that is then played in NL will add items to the correct relative folders (i.e. nothing should ever need to be added to assets-ce by an author unless it's to mod their own copy).