Crane's ideas about porting NL to Unix-likes

Started by Simon, May 21, 2024, 09:17:17 PM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

Simon

In Future of NeoLemmix development, Crane wrote:

Quote from: Crane on March 06, 2024, 04:07:59 PM
One thing I would like to do one day is get NeoLemmix working on the Raspberry Pi.

It is a bit of an undertaking though because besides porting the source code over to the Free Pascal Compiler, [...]

That's interesting -- I've always thought that NL builds (1) only on Windows, (2) only for Windows, and (3) only with certain compilers/IDEs. You sound like none of these 3 restrictions need be set in stone, and removing the 3 restrictions is a medium-scope project for an experienced Pascal/Delphi developer.

Background: I spent one night on installing a Delphi toolchain in Wine on Linux and failed because the graphical IDE wouldn't run. I wouldn't mind trying again, and trying it with different versions of the Microsoft toolkits that the IDE needed.

But even better would be to build NL on Linux from the command line without installing any fat IDEs.

It's okay if it generates Windows binaries (i.e., we crossbuild from Linux to Windows) because the Windows binaries run well in Wine. Linux binaires would of course be nice, but they aren't essential yet. It's also okay if I can't change the GUI dialogs without installing an IDE or a graphical GUI editor.

-- Simon

namida

NL is written for and tested on said configuration. I know it doesn't work out of the box with Lazarus / FPC; but there IS a lot of overlap and it is likely realistic to port it to Lazarus. That appears to be what Crane is attempting (and based on what he's said on Discord, making fairly significant progress towards).

The biggest obstacle is GR32 not being optimized on non-x86 hardware (resulting in poor performance), but I believe Crane has been working on that. This is less of a concern for simply "build on/for Windows in Lazarus" or even for "build for Linux".
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)

Simon

Sounds great. I'll happily try the Lazarus build. Crane, let me know when you have something to test.

The GR32 port wouldn't be urgent for me. Everything here runs on x86_64.

-- Simon

namida

QuoteThe GR32 port wouldn't be urgent for me. Everything here runs on x86_64.

x86_64 is included in this case if NeoLemmix is compiled as a 64-bit app. Maybe GR32v3 addresses this; but one of the biggest reasons NL remained a 32-bit app is due to GR32 not having the same optimizations in 64-bit.
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)

Simon

I'll be happy enough if NL compiles as 32-bit, which runs fine on x64_64.

-- Simon