makamys/Neodymium

Incompatibility with Optifine D6 + LWJGL3ify

Closed this issue · 8 comments

Mixin apply failed neodymium.mixin.json:MixinGameSettings_OptiFine -> net.minecraft.client.settings.GameSettings: org.spongepowered.asm.mixin.transformer.throwables.InvalidMixinException @Shadow field ofFogType was not located in the target class net.minecraft.client.settings.GameSettings. Using refmap neodymium.mixin.refmap.json

Using neodymium-1.7.10-0.1.6-8-g74c216c+nomixin (works with E7)

Can't reproduce, please post a full fml-client-latest.log.

Also, can you check if the same error happens with 0.1.6 release?

0.1.6 fails too. It seems incidentally related to a partial incompatibility with lwjgl3ify/java 19.

D6 has the problem that it loads but doesn't show any video options, but it otherwise runs normally. I guess that neodymium tries to access that part and failing.

So I guess it's not a specific issue of Neodymium.

I see. I could just add a fallback that makes it assume OF's fog is enabled if it can't find the field if no better solution is found.

mcmso commented

I've tested a bunch of different mod combinations with a few players. The best mod combo for performance is' fastcraft125+optifine e7 '

I've tested a bunch of different mod combinations with a few players. The best mod combo for performance is' fastcraft125+optifine e7 '

I thought we debunked this months ago, did anything happen specifically with neodymium's updates to change the golden ratio of D6+.23?

Maybe it depends on the modpack? Though to be fair, Neodymium wasn't even released yet when you made that benchmark.

Shoot, was it last year already ⏳
Still, IIRC .25 is supposed to be gutted to hell and back because stuff broke with optifine Player just wanted to have the mod actually running and get it over and done with, while E7 is just OF with shaders support and the immense amount of fixes that had to come with that feature, so under the hood they're supposed to both be "it just werks" versions.
That said, we also have notfine now technically and I haven't checked anything with it yet 🤷

I looked into this, and OptiFine D6 isn't even functional with LWJGL3ify (1.2.2). OptiFine's name does show up in the F3 overlay, but that's where its functionality ends. Its class transformer fails to load, rendering the mod useless. So there's no reason to add compatibility with it - you may as well remove the mod.

[15:00:19] [main/INFO] [LaunchWrapper/]: Calling tweak class optifine.OptiFineForgeTweaker
[15:00:19] [main/INFO] [STDOUT/]: [optifine.OptiFineForgeTweaker:dbg:56]: OptiFineForgeTweaker: acceptOptions
[15:00:19] [main/INFO] [STDOUT/]: [optifine.OptiFineForgeTweaker:dbg:56]: OptiFineForgeTweaker: injectIntoClassLoader
[15:00:19] [main/INFO] [STDERR/]: [java.lang.Throwable$WrappedPrintStream:println:785]: java.lang.ClassCastException: class jdk.internal.loader.ClassLoaders$AppClassLoader cannot be cast to class java.net.URLClassLoader (jdk.internal.loader.ClassLoaders$AppClassLoader and java.net.URLClassLoader are in module java.base of loader 'bootstrap')
[15:00:19] [main/INFO] [STDERR/]: [java.lang.Throwable$WrappedPrintStream:println:785]: 	at optifine.OptiFineClassTransformer.<init>(OptiFineClassTransformer.java:40)
[15:00:19] [main/INFO] [STDERR/]: [java.lang.Throwable$WrappedPrintStream:println:785]: 	at java.base/jdk.internal.reflect.DirectConstructorHandleAccessor.newInstance(DirectConstructorHandleAccessor.java:67)
[15:00:19] [main/INFO] [STDERR/]: [java.lang.Throwable$WrappedPrintStream:println:785]: 	at java.base/java.lang.reflect.Constructor.newInstanceWithCaller(Constructor.java:500)
[15:00:19] [main/INFO] [STDERR/]: [java.lang.Throwable$WrappedPrintStream:println:785]: 	at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:484)
[15:00:19] [main/INFO] [STDERR/]: [java.lang.Throwable$WrappedPrintStream:println:785]: 	at net.minecraft.launchwrapper.LaunchClassLoader.registerTransformer(LaunchClassLoader.java:94)
[15:00:19] [main/INFO] [STDERR/]: [java.lang.Throwable$WrappedPrintStream:println:785]: 	at optifine.OptiFineForgeTweaker.injectIntoClassLoader(OptiFineForgeTweaker.java:38)
[15:00:19] [main/INFO] [STDERR/]: [java.lang.Throwable$WrappedPrintStream:println:785]: 	at net.minecraft.launchwrapper.Launch.launch(Launch.java:145)
[15:00:19] [main/INFO] [STDERR/]: [java.lang.Throwable$WrappedPrintStream:println:785]: 	at net.minecraft.launchwrapper.Launch.main(Launch.java:29)
[15:00:19] [main/INFO] [STDERR/]: [java.lang.Throwable$WrappedPrintStream:println:785]: 	at org.prismlauncher.launcher.impl.StandardLauncher.launch(StandardLauncher.java:88)
[15:00:19] [main/INFO] [STDERR/]: [java.lang.Throwable$WrappedPrintStream:println:785]: 	at org.prismlauncher.EntryPoint.listen(EntryPoint.java:126)
[15:00:19] [main/INFO] [STDERR/]: [java.lang.Throwable$WrappedPrintStream:println:785]: 	at org.prismlauncher.EntryPoint.main(EntryPoint.java:71)
[15:00:19] [main/INFO] [STDOUT/]: [optifine.OptiFineClassTransformer:dbg:266]: *** Can not find the OptiFine JAR in the classpath ***
[15:00:19] [main/INFO] [STDOUT/]: [optifine.OptiFineClassTransformer:dbg:266]: *** OptiFine will not be loaded! ***

Edit: I reported the issue here: GTNewHorizons/lwjgl3ify#47