Minetest and Minecraft on Haiku?

Yes, i am aware that a patched LWJGL library is needed, what I was saying is that its super weird that your installer did not work for me lol

It does work if I use another launcher (such as PolyMC or PrismMC, which both work after minimal patches) and give them a modified manifest for LWJGL which contains downloads for the patched files.

My installer script downloads in single threaded mode and without download error control, so very long and with possible broken files. Maybe that’s the reason. I have no problems with installation on good and fast internet - just checked.

Noted, that is very possible considering I did it over WiFi lol

Anyway, in case it helps anyone, I have attached the LWJGL json definition needed for MC launchers - i mirrored the files over at my web site since it wants the .jar files as normal downloads, rather than a single .zip file.
There are SHA1 checksums in case you want to manually verify the download, however the game launchers should do that for you.
org.lwjgl3.json:

{
    "formatVersion": 1,
    "libraries": [
        {
            "downloads": {
                "artifact": {
                    "sha1": "e42369eff88e5afd3e641e26f73730f9f9e4e31e",
                    "size": 130034,
                    "url": "https://electrode.codes/lwjgl-3.3.2-haiku/lwjgl-glfw.jar"
                }
            },
            "name": "org.lwjgl:lwjgl-glfw:3.3.2-haiku"
        },
        {
            "downloads": {
                "artifact": {
                    "sha1": "2b6af11ea831535a09dfc6152c2d6f0482a140e1",
                    "size": 100010,
                    "url": "https://electrode.codes/lwjgl-3.3.2-haiku/lwjgl-natives-haiku.jar"
                }
            },
            "name": "org.lwjgl:lwjgl-natives-haiku:3.3.2-haiku"
        },
        {
            "downloads": {
                "artifact": {
                    "sha1": "629e0fdf84d2159426ebfd12449b15fa3109542a",
                    "size": 102462,
                    "url": "https://electrode.codes/lwjgl-3.3.2-haiku/lwjgl-openal.jar"
                }
            },
            "name": "org.lwjgl:lwjgl-openal:3.3.2-haiku"
        },
        {
            "downloads": {
                "artifact": {
                    "sha1": "a1ee3d3f73273d96b276d84f9a8e66f3dd887666",
                    "size": 73796,
                    "url": "https://electrode.codes/lwjgl-3.3.2-haiku/lwjgl-opengl-natives-haiku.jar"
                }
            },
            "name": "org.lwjgl:lwjgl-opengl-natives-haiku:3.3.2-haiku"
        },
        {
            "downloads": {
                "artifact": {
                    "sha1": "a6ecd44ae669085f8b15b074ce49afcffa984327",
                    "size": 930868,
                    "url": "https://electrode.codes/lwjgl-3.3.2-haiku/lwjgl-opengl.jar"
                }
            },
            "name": "org.lwjgl:lwjgl-opengl:3.3.2-haiku"
        },
        {
            "downloads": {
                "artifact": {
                    "sha1": "9c1c936a54ad77c79157e3d0eb2c8676481b5dcd",
                    "size": 217971,
                    "url": "https://electrode.codes/lwjgl-3.3.2-haiku/lwjgl-stb-natives-haiku.jar"
                }
            },
            "name": "org.lwjgl:lwjgl-stb-natives-haiku:3.3.2-haiku"
        },
        {
            "downloads": {
                "artifact": {
                    "sha1": "c94ab27eed27fbe6c8e08f5d15fd0be9abafc6b7",
                    "size": 114138,
                    "url": "https://electrode.codes/lwjgl-3.3.2-haiku/lwjgl-stb.jar"
                }
            },
            "name": "org.lwjgl:lwjgl-stb:3.3.2-haiku"
        },
        {
            "downloads": {
                "artifact": {
                    "sha1": "1e2ef41e0ddd39ccb0804cb383a3423dc5866963",
                    "size": 42647,
                    "url": "https://electrode.codes/lwjgl-3.3.2-haiku/lwjgl-tinyfd-natives-haiku.jar"
                }
            },
            "name": "org.lwjgl:lwjgl-tinyfd-natives-haiku:3.3.2-haiku"
        },
        {
            "downloads": {
                "artifact": {
                    "sha1": "53bffe7aa51518b9e3bb6eecdbb0b76fc3b26f88",
                    "size": 7688,
                    "url": "https://electrode.codes/lwjgl-3.3.2-haiku/lwjgl-tinyfd.jar"
                }
            },
            "name": "org.lwjgl:lwjgl-tinyfd:3.3.2-haiku"
        },
        {
            "downloads": {
                "artifact": {
                    "sha1": "ed39abe649193abbba295b3ee3aa5e0d477ebf6b",
                    "size": 851481,
                    "url": "https://electrode.codes/lwjgl-3.3.2-haiku/lwjgl.jar"
                }
            },
            "name": "org.lwjgl:lwjgl:3.3.2-haiku"
        },
        {
            "downloads": {
                "artifact": {
                    "sha1": "a1ee3d3f73273d96b276d84f9a8e66f3dd887666",
                    "size": 73796,
                    "url": "https://electrode.codes/lwjgl-3.3.2-haiku/lwjgl-opengl-natives-haiku.jar"
                }
            },
            "name": "org.lwjgl:lwjgl-opengl-natives-haiku:3.3.2-haiku"
        },
        {
            "downloads": {
                "artifact": {
                    "sha1": "2b6af11ea831535a09dfc6152c2d6f0482a140e1",
                    "size": 100010,
                    "url": "https://electrode.codes/lwjgl-3.3.2-haiku/lwjgl-natives-haiku.jar"
                }
            },
            "name": "org.lwjgl:lwjgl-natives-haiku:3.3.2-haiku"
        }
    ],
    "name": "LWJGL 3",
    "releaseTime": "2023-09-07T12:42:32+00:00",
    "type": "release",
    "uid": "org.lwjgl3",
    "version": "3.3.2-haiku",
    "volatile": true
}

EDIT: messed up the URL for the lwjgl tinyfd jar

How can i use this on stable Haiku?

If interested, the patched version of lwjgl for Haiku and the build instructions are here - GitHub - threedeyes/lwjgl3-haiku: LWJGL is a Java library that enables cross-platform access to popular native APIs useful in the development of graphics (OpenGL, Vulkan, bgfx), audio (OpenAL, Opus), parallel computing (OpenCL, CUDA) and XR (OpenVR, LibOVR, OpenXR) applications.

1 Like

would it make sense to have a Haikuports package? Then game launchers could probably be adapted to use a common place for lwjgl, like for example /system/lib/lwjgl/3.1.0/ or something like that

(You’d probably have to seperate versions, as some games need older Lwjgl versions to function properly if I remember correctly)

1 Like

Do you have any plans to upstream some of these changes to LWJGL itself? It would solve the need to keep the lwjgl3-haiku repository up to date (it is 300 commits behind upstream lwjgl at the time of writing this).

1 Like

Hey,
I know necroposting isn’t good practice, however I couldn’t find any other way to contact you about your Minecraft script:

  • The launcher that your script is based off of (https://github.com/alexivkin/minecraft-launcher) supports mod loaders such as Forge and Neoforge. Will support for them be added in the future?
  • The latest version of your launcher only supports Minecraft 1.13.2 to 1.19.4. Do you plan on getting newer versions working?
1 Like

Newer versions of Minecraft require a newer version of java, newer than the one currently ported to haiku.

1 Like

I should have figured, considering that the latest version of OpenJDK ported is 17.

That rules out Neoforge support, since the first Minecraft version to support Neoforge was 1.20, however Forge support should still be possible.

In terms of getting older versions of Minecraft working, we would have to port LWJGL 2 to Haiku, since 1.13 is the oldest version of Minecraft to use LWJGL 3.
I wonder if the changes made to port LWJGL 3 to Haiku can be translated over to LWJGL 2… :thinking:

I recently tried compiling MultiMC for Haiku, everything works and I can run the game (fabric, forge work by the way). There is one problem, for some reason I can’t run version 1.17 and higher, maybe because of the virtual machine, and I would also like to see LWJGL 2 on Haiku to run Minecraft version 1.12.2 and below

4 Likes

yesterday i saw that openjdk 21 appeared for Haiku this means that 1.21.5 is possible on this system only one problem is that for some reason multimc compiled by me tries to use opengl 2 version instead of 3 and i don’t know how to fix it

(log from multimc)

1 Like

I was able to solve the problem with OpenGL 3 and now I can run Minecraft version 1.21.5 on Haiku


9 Likes

Latest lwjgl version: https://haikuware.ru/files/lwjgl3/lwjgl-3.3.6-haiku-minimal-x64.zip
and path for unpacked https://haikuware.ru/files/lwjgl3/lwjgl-3.3.6-haiku-x64/

4 Likes

I wonder if we could get Vintage Story running on Haiku.
Do we have .net 8?

oh thanks it will be convenient to specify a download link in the json file instead of downloading, unpacking, etc. yourself

We do. However, the game is under a non-open restrictive license, isn’t it?

Virtually every game has a restrictive license. As long as you don’t need to port or modify it, it doesn’t really matter.

IIRC prismlauncher, a fork of multimc has a less restrictive take about packaging
and also is more open to patches. Do your patches also work on PrismLauncher?

I haven’t tried it, maybe I’ll try another time.