Recent posts

#41
Hello again WillLem,

Sorry for bombarding the forum board lately, but I got a new bug report.
Below I am attaching the .NET Framework error pop-up. The log file doesn't have anything up to date.
This happened after I turned my monitor off for an hour (at least this is what I am suspecting of what caused it).
When I turned it back on these errors were popped up;

Instead of this dialog box, JIT debugging would be invoked
For more details, see the end of this message.

************** Exception Text **************
System.InvalidOperationException: Bitmap region is already locked.
at: System.Drawing.Bitmap.LockBits(Rectangle rect, ImageLockMode flags, PixelFormat format, BitmapData bitmapData)
at: System.Drawing.Bitmap.LockBits(Rectangle rect, ImageLockMode flags, PixelFormat format)
at: SLXEditor.BmpModify.DrawOn(Bitmap origBmp, Bitmap newBmp, Point pos, Func`3 doDrawThisPixel, Byte alpha)
at: SLXEditor.BmpModify.DrawOn(Bitmap origBmp, Bitmap newBmp)
at: SLXEditor.Renderer.CreateLevelImageFromLayers(String dragNewPieceKey)
at: SLXEditor.Renderer.CombineLayers(String dragNewPieceKey)
at: SLXEditor.SLXEditForm.ResetLevelImage()
at: SLXEditor.SLXEditForm.NLEditForm_Resize(Object sender, EventArgs e)
at: System.EventHandler.Invoke(Object sender, EventArgs e)
at: System.Windows.Forms.Control.OnResize(EventArgs e)
at: System.Windows.Forms.Form.OnResize(EventArgs e)
at: System.Windows.Forms.Control.OnSizeChanged(EventArgs e)
at: System.Windows.Forms.Control.UpdateBounds(Int32 x, Int32 y, Int32 width, Int32 height, Int32 clientWidth, Int32 clientHeight)
at: System.Windows.Forms.Control.UpdateBounds()
at: System.Windows.Forms.Control.WmWindowPosChanged(Message& m)
at: System.Windows.Forms.Control.WndProc(Message& m)
at: System.Windows.Forms.ScrollableControl.WndProc(Message& m)
at: System.Windows.Forms.ContainerControl.WndProc(Message& m)
at: System.Windows.Forms.Form.WmWindowPosChanged(Message& m)
at: System.Windows.Forms.Form.WndProc(Message& m)
at: System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
at: System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
at: System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)

************** Loaded Assemblies **************
mscorlib
Assembly Version: 4.0.0.0
Win32 Version: 4.8.4515.0 built by: NET48REL1LAST_C
CodeBase: file:///C:/Windows/Microsoft.NET/Framework/v4.0.30319/mscorlib.dll

SLXEditor
Assembly Version: 3.0.3.0
Win32 Version: 3.0.3.0
CodeBase: file:///X:/YEKELEMELER/OYUN/Lemmings/NeoLemmix_V12.14.0/SuperLemmix%203.0.2/SLXEditor.exe

System.Windows.Forms
Assembly Version: 4.0.0.0
Win32 Version: 4.8.4550.0 built by: NET48REL1LAST_C
CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System.Windows.Forms/v4.0_4.0.0.0__b77a5c561934e089/System.Windows.Forms.dll

System
Assembly Version: 4.0.0.0
Win32 Version: 4.8.4536.0 built by: NET48REL1LAST_C
CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System/v4.0_4.0.0.0__b77a5c561934e089/System.dll

System.Drawing
Assembly Version: 4.0.0.0
Win32 Version: 4.8.4390.0 built by: NET48REL1LAST_C
CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System.Drawing/v4.0_4.0.0.0__b03f5f7f11d50a3a/System.Drawing.dll

System.Core
Assembly Version: 4.0.0.0
Win32 Version: 4.8.4590.0 built by: NET48REL1LAST_B
CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System.Core/v4.0_4.0.0.0__b77a5c561934e089/System.Core.dll

System.Configuration
Assembly Version: 4.0.0.0
Win32 Version: 4.8.4190.0 built by: NET48REL1LAST_B
CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System.Configuration/v4.0_4.0.0.0__b03f5f7f11d50a3a/System.Configuration.dll

System.Xml
Assembly Version: 4.0.0.0
Win32 Version: 4.8.4084.0 built by: NET48REL1
CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System.Xml/v4.0_4.0.0.0__b77a5c561934e089/System.Xml.dll

Accessibility
Assembly Version: 4.0.0.0
Win32 Version: 4.8.4084.0 built by: NET48REL1
CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/Accessibility/v4.0_4.0.0.0__b03f5f7f11d50a3a/Accessibility.dll

mscorlib.resources
Assembly Version: 4.0.0.0
Win32 Version: 4.8.4084.0 built by: NET48REL1
CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/mscorlib.resources/v4.0_4.0.0.0_tr_b77a5c561934e089/mscorlib.resources.dll

System.Drawing.resources
Assembly Version: 4.0.0.0
Win32 Version: 4.8.4084.0 built by: NET48REL1
CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System.Drawing.resources/v4.0_4.0.0.0_tr_b03f5f7f11d50a3a/System.Drawing.resources.dll

System.Windows.Forms.resources
Assembly Version: 4.0.0.0
Win32 Version: 4.8.4084.0 built by: NET48REL1
CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System.Windows.Forms.resources/v4.0_4.0.0.0_tr_b77a5c561934e089/System.Windows.Forms.resources.dll

************** JIT Debugging **************
To enable JIT debugging, the jitDebugging value must be set in the
system.windows.forms section of the application's or machine's (machine.config)
.config file. The application must also be compiled with debugging
enabled.

For example:
<configuration> <system.windows.forms jitDebugging="true" /> </configuration>

When JIT debugging is enabled, any unhandled exception
will be sent to the JIT debugger registered on the computer
rather than being handled in this dialog box.

Luckily the editor DID allow me to save the map before exiting.
The reason I'm suspecting the monitor is due to the fact that I am using displayport for connection and I believe this connection causes resolution change during turn off and wake up.
#42
SuperLemmix Bugs & Suggestions / Re: [+][SUG][ED] Create more w...
Last post by WillLem - April 07, 2026, 03:51:52 AM
The buttons now work.

The list is pretty much done. Adding/removing/selecting pieces syncs perfectly between level and list. It's necessary to manually refresh the list (by simply re-focusing the window) after making changes to the level, but this is acceptable. It would be better to have action-by-action updates, but my attempts to implement this resulted in messy circular logic, so I decided to refresh on focus instead. Let's see how we get on with that.

Preview


Implemented in SLXEditor commit f90a6d8.
#43
In Development / Cheapo Copycat Lemmings (NL re...
Last post by Proxima - April 07, 2026, 12:25:58 AM
This is something we've talked about for a long time, but thanks to kaywhyn's videos, it's finally time to get started.

For those who don't know, Cheapo (by Peter "Essman" Spada) was one of the main engines for custom levels in the forum's early days (around 2005 when I joined). Although its place in Lemmings history was mainly as a platform for usermade content, it came with its own set of levels, which kaywhyn is playing through on video, and I'm using those as a basis for remaking the levels in NeoLemmix.

The zip currently contains Levels 1-10 of Fun, which isn't much, but it's a start  :P
#44
NeoLemmix Levels / Re: MASTER-88 (Amiga Classic) ...
Last post by Guigui - April 06, 2026, 03:43:28 PM
Path of the Evil Twins

30 to be saved, 15 in each exit, symmetrical (?) level, 10 builders.

I can solve the right side of the level by sending 15 to the exit with 5 builders. Looks like I should do the same with the left side to complete the level.

However, there is this little pixel in the chain of the right part that helps me get high enough with the builders, but this little pixel is not here in the left side, and I cannot get high enough.

I'm joining my replay, getting as close as I can to clear, only missing this little pixel. Can anyone tell me if I'm on the correct track to the solution ?
#45
SuperLemmix Bugs & Suggestions / Re: [+][SUG][ED] Create more w...
Last post by WillLem - April 06, 2026, 02:36:10 PM
Taken the first step with the "Pieces List". So far, we have 2 list views for each of Terrain and Objects. This lists the pieces by index, and shows the name, type and draw mode. Here's a preview:

Pieces List Preview


As shown in the screenshot, it's possible to select a piece in the list and have it select that piece in the level arranger (multi-select is also possible). The buttons on the right don't do anything yet, but that's probably the next step.

I'll report here once more has been done.
#46
SuperLemmix Bugs & Suggestions / Re: [+][SUG][ED] Create more w...
Last post by roltemurto - April 06, 2026, 12:54:46 AM
Quote from: WillLem on April 03, 2026, 11:07:24 PMAdded menu item and customisable hotkey (Ctrl + F2 by default) for Show/Hide Steel.
Implemented in SLXEditor commit 9ea1149.
Great news, can't wait for the full release!
Quote from: WillLem on April 03, 2026, 11:07:24 PMI've also fixed a bug with this: the hotkey would only work if there was no currently-selected piece under the cursor. This has now been fixed, so the hotkey will always cause the selection to re-trigger.
Fixed in SLXEditor commit 83d622d.
So that's why it was inconsistent! Great catch and awesome news!
Quote from: WillLem on April 03, 2026, 11:07:24 PMA hotkey to rotate through the pile is all that's needed, then. This has also been added: holding Shift whilst clicking LMB cycles selection through all pieces within 16px of the cursor (from lowest-highest).
Implemented in SLXEditor commit 8a1ce87
This is gonna be so useful
Quote from: WillLem on April 03, 2026, 11:07:24 PMAh, OK! In that case I've added this one to the to-do list. This one will likely take a bit longer, I'll post progress updates into this topic.
Thank you so much for getting into this, everyone will benefit from this.
Quote from: WillLem on April 03, 2026, 11:07:24 PMSelecting the piece from within the proposed asset list should be sufficient here. Showing each individual piece as its own "layer" could be done, but let's see if we need it first. That might be a good next step once the asset list (which I'll probably call the 'Pieces List' to keep it consistent with existing UI) is complete and working.
You're the owner/designer/coder, I'm sure whichever path you choose to take from here will be the most suiting one.
Quote from: WillLem on April 03, 2026, 11:07:24 PMThat's good to know, thanks for reporting back on this! :)
My pleasure!  :)  :thumbsup:
#47
In Development / Re: Revenge of the Lemmings - ...
Last post by WillLem - April 05, 2026, 11:51:40 PM
Quote from: Proxima on April 04, 2026, 04:46:47 PMI am completely against changing levels just to make 100% possible. That you can't save 100% on every level has always been part of the game. "Betcha can't save" is designed so that saving even one is difficult, and that shouldn't be messed with.

Agreed.
#48
SuperLemmix Bugs & Suggestions / Re: [+][SUG][ED] Create more w...
Last post by WillLem - April 05, 2026, 11:45:08 PM
Quote from: roltemurto on April 04, 2026, 07:42:07 PM
Quote from: WillLem on April 03, 2026, 11:07:24 PMGood shout. I'll add Show/Hide Steel in the next update for sure.
Such a relief to hear this is possible. Thank you.

Added menu item and customisable hotkey (Ctrl + F2 by default) for Show/Hide Steel.

Implemented in SLXEditor commit 9ea1149.

Quote from: roltemurto on April 04, 2026, 07:42:07 PM"Grab lowest" toggle would certainly be useful I think.

After some investigation, it turns out that this is in fact what the "select piece below" (Alt + LMB) actually does: given a pile of pieces under the cursor, it will grab the lowest (give it a try!).

I've also fixed a bug with this: the hotkey would only work if there was no currently-selected piece under the cursor. This has now been fixed, so the hotkey will always cause the selection to re-trigger.

Fixed in SLXEditor commit 83d622d.

A hotkey to cycle through the pile is all that's needed, then. This has also been added: holding Shift whilst clicking LMB cycles selection through all pieces within 16px of the cursor (from lowest-highest).

Implemented in SLXEditor commit 2c6d3f2

Quote from: roltemurto on April 04, 2026, 07:42:07 PMAn "asset list" was exactly what I was trying to describe.

Ah, OK! In that case I've added this one to the to-do list. This one will likely take a bit longer, I'll post progress updates into this topic.

Quote from: roltemurto on April 04, 2026, 07:42:07 PMAt this point I'm not sure if show/hide option next to the layer counts as changing the layer system, but if that can also work, that would be a perfect UI in my humble opinion.

Selecting the piece from within the proposed asset list should be sufficient here. Showing each individual piece as its own "layer" could be done, but let's see if we need it first. That might be a good next step once the asset list (which I'll probably call the 'Pieces List' to keep it consistent with existing UI) is complete and working.

Quote from: roltemurto on April 04, 2026, 07:42:07 PMRest assured, the message bar pops up as intended, I haven't tried the buttons so I can't speak for sure for it's functions, but don't worry the bar and the message is there.

That's good to know, thanks for reporting back on this! :)
#49
Lemmini / Re: [RetroLemmini] NepsterLems...
Last post by WillLem - April 05, 2026, 08:32:00 PM
Version 1.7 Uploaded

:lemming: Black Hole 18 Lemming Mayhem - changed fall distance to default of 126

Also includes a fully verified set of replays by ericderkovits.

Get the latest version here.
#50
SuperLemmix Bugs & Suggestions / Re: [+][SUG][ED] Create more w...
Last post by roltemurto - April 04, 2026, 07:42:07 PM
Quote from: WillLem on April 03, 2026, 11:07:24 PMThe "select pieces below" hotkey (Alt + LMB by default) does work some of the time, but becomes difficult or impossible to use properly when there are multiple overlaying pieces.
I must admit I may have mixed ALT with CTRL, so I may have not fully utilized this properly but as you mentioned, when multiple pieces collide on top of each other this option unfortunately is not enough to solve it.

Quote from: WillLem on April 03, 2026, 11:07:24 PMGood shout. I'll add Show/Hide Steel in the next update for sure.
Such a relief to hear this is possible. Thank you.

Quote from: WillLem on April 03, 2026, 11:07:24 PM...not trivial to implement by any means, and still doesn't always guarantee selectability...
As you point out, it is of small importance and doesn't solve every selection problem. But an outline of the exact piece could be a great helper.
I don't think bypassing the alpha  would render the rectangle redundant though; you can still see it total boundaries while being able to select something visible behind.

Quote from: WillLem on April 03, 2026, 11:07:24 PM'Grab lowest' and 'grab highest' could also be done.
"Grab lowest" toggle would certainly be useful I think.

Quote from: WillLem on April 03, 2026, 11:07:24 PM...It just about works for image editing...
...
...Conversely, the "asset list" you've hinted at is an interesting idea that could work perfectly alongside what's already there. We could have a pop-up list (which can be closed or opened at any time) which simply lists every piece active in the level, in index order and with details such as location, render layer, whether it's an eraser piece, etc. Clicking a piece on the list could then select it in the level arranger (and vice versa). This could work, for sure, and would be much simpler to implement and maintain than a layers system. "Move Up", "Move Down" and "Delete" buttons could also be added for convenience.
An "asset list" was exactly what I was trying to describe. Yes I was thinking of image editor UI's but I haven't even thought about changing the rendering frame work etc.
I believe a simple "asset list" is all what it takes. If move up/down could also be implemented; that is exactly the thing I was suggesting. At this point I'm not sure if show/hide option next to the layer counts as changing the layer system, but if that can also work, that would be a perfect UI in my humble opinion.   

Furthermore, if an asset list were to be added, all of the above and other mentioned things become extra and/or secondary priority; because you'd be able to select what ever you want anyways.

Quote from: WillLem on April 03, 2026, 11:07:24 PMNot so. Missing pieces can be deleted by simply opening a level that contains missing pieces; the Editor will identify them, and they can then be deleted by choosing "Delete Missing Pieces" from the status bar menu. If you're not seeing the status bar message when you open a level with missing pieces, then this could be a bug.

Rest assured, the message bar pops up as intended, I haven't tried the buttons so I can't speak for sure for it's functions, but don't worry the bar and the message is there.
The moment I saw it the first time, I just re-added the recently deleted piece.
While researching the "depricated" flag I assumed that it was still a thing with the engine and the editor,
without realizing the editor could already clean them properly, that's my bad, sorry.

Quote from: WillLem on April 03, 2026, 11:07:24 PMAbsolutely, and it's something that I too struggle with now and again. You've given me a nudge to finally do something about it!
I am so glad that we are on the same page. Sometimes it takes a second person to point out the issues we delay in things.
I truly believe it would be a well worth investment of time for the editor, because afterwards it permenantly makes the life much easier for everyone.
And perhaps even trigger people's creativity even further.
Thanks again for everything.