java.lang.UnsatisfiedLinkError: /private/var/folders/_d/skfz5x_n55vg51zpd3rytkbw0000gn/T/jogamp_0000/file_cache/jln7067984779505716289/jln2214937736967459327/natives/macosx-universal/libgluegen_rt.dylib: dlopen(/private/var/folders/_d/skfz5x_n55vg51zpd3rytkbw0000gn/T/jogamp_0000/file_cache/jln7067984779505716289/jln2214937736967459327/natives/macosx-universal/libgluegen_rt.dylib, 0x0001): tried: '/private/var/folders/_d/skfz5x_n55vg51zpd3rytkbw0000gn/T/jogamp_0000/file_cache/jln7067984779505716289/jln2214937736967459327/natives/macosx-universal/libgluegen_rt.dylib' (mach-o file, but is an incompatible architecture (have 'x86_64', need 'arm64')), '/System/Volumes/Preboot/Cryptexes/OS/private/var/folders/_d/skfz5x_n55vg51zpd3rytkbw0000gn/T/jogamp_0000/file_cache/jln7067984779505716289/jln2214937736967459327/natives/macosx-universal/libgluegen_rt.dylib' (no such file), '/private/var/folders/_d/skfz5x_n55vg51zpd3rytkbw0000gn/T/jogamp_0000/file_cache/jln7067984779505716289/jln2214937736967459327/natives/macosx-universal/libgluegen_rt.dylib' (ma
at java.base/jdk.internal.loader.NativeLibraries.load(Native Method)
at java.base/jdk.internal.loader.NativeLibraries$NativeLibraryImpl.open(NativeLibraries.java:331)
at java.base/jdk.internal.loader.NativeLibraries.loadLibrary(NativeLibraries.java:197)
at java.base/jdk.internal.loader.NativeLibraries.loadLibrary(NativeLibraries.java:139)
at java.base/java.lang.ClassLoader.loadLibrary(ClassLoader.java:2418)
at java.base/java.lang.Runtime.load0(Runtime.java:852)
at java.base/java.lang.System.load(System.java:2021)
at com.jogamp.common.jvm.JNILibLoaderBase.loadLibraryInternal(JNILibLoaderBase.java:604)
at com.jogamp.common.jvm.JNILibLoaderBase.access$000(JNILibLoaderBase.java:64)
at com.jogamp.common.jvm.JNILibLoaderBase$DefaultAction.loadLibrary(JNILibLoaderBase.java:107)
at com.jogamp.common.jvm.JNILibLoaderBase.loadLibrary(JNILibLoaderBase.java:488)
at com.jogamp.common.os.DynamicLibraryBundle$GlueJNILibLoader.loadLibrary(DynamicLibraryBundle.java:427)
at com.jogamp.common.os.Platform$1.run(Platform.java:321)
at java.base/java.security.AccessController.doPrivileged(AccessController.java:319)
at com.jogamp.common.os.Platform.<clinit>(Platform.java:290)
at com.jogamp.opengl.GLProfile.<clinit>(GLProfile.java:154)
at haven.JOGLPanel.mkcaps(JOGLPanel.java:67)
at haven.JOGLPanel.<init>(JOGLPanel.java:87)
at haven.MainFrame.renderer(MainFrame.java:176)
at haven.MainFrame.<init>(MainFrame.java:195)
at haven.MainFrame.main2(MainFrame.java:431)
at haven.MainFrame.lambda$main$0(MainFrame.java:458)
at java.base/java.lang.Thread.run(Thread.java:1583)
If someone out there can help me translate this in an actionable solution would be greatly appreciated.
The JOGL library which the game uses does not support M1, that is why you're getting the error.
In theory, it should work if you install the x64 JDK instead and run it via Rosetta.
There is also an experimental LWJGL branch (which does support M1), but that would require you to checkout the branch and build the client yourself.
Ah, that's neat. Although the LWJGL version crashes on Mac with "-[NSOpenGLContext setView:] must be called from the main thread.".
But I can confirm that the standard client works fine with Rosetta. When using the Oracle Java installer, one needs to make sure the installer itself also runs with Rosetta, otherwise it will refuse to install. This can be done with (after mounting the .dmg file):
I haven't checked with the default client yet, but with custom clients I get the same error. But if I update jogamp to the newest version, it's all good. I suggest investigating if that works for the default client too, as it's as easy as copying jar files to the lib/ext/jogl/.
I confirm default client launches if I replace gluegen-rt.jar, jogl-all.jar and their corresponding natives jars with those from version 2.5.0 of jogl.
Screenshot 2024-08-25 at 14.26.23.jpg
You do not have the required permissions to view the files attached to this post.
The reason I haven't updated the default client to JOGL 2.5.0 is because they dropped 32-bit Windows JVM support, which a lot of people still use. There's talk about them bringing that back in 2.6.0 though, which hasn't been released yet.
The Steam client does use 2.5.0, however, since it ships with its own JVM and therefore 32-bit JVMs aren't an issue, so it should work on OSC out of the box.
"Object-oriented design is the roman numerals of computing." -- Rob Pike