yusefnapora / m1-multimc-hack

A quick & dirty way to get Minecraft running via MultiMC on the Apple M1 with native performance
265 stars 47 forks source link

Alternative Method For Native Perfomance #32

Open mjwells2002 opened 2 years ago

mjwells2002 commented 2 years ago

alternatively you can replace the use of the wrapper command with a replacement jwjgl native json file

in order to do this in the version tab of multimc select lwjgl 3 and click customize then click edit replace the content of the file it opens with the following https://gist.github.com/mjwells2002/417e1f673794b14c188b6138afb92bd9

then select a arm64 JRE for the instance like one from the following link https://www.azul.com/downloads/?os=macos&architecture=arm-64-bit&package=jre

launch the game and everything should work normally

Priultimus commented 2 years ago

Can't full screen, can you?

theramzay commented 2 years ago

Thanks! Works fine with 1.18!

aheze commented 2 years ago

Amazing, thanks! 1.18 wasn't working for me before this. Just make sure to set the java version to the one that says java in the path.

Screen Shot 2021-12-26 at 11 01 15 PM

theramzay commented 2 years ago

@aheze I'm using just unzipped folder with java and all works fine. (I have no any installed java on system level)

image
ghostseven commented 2 years ago

Fantastic, this is an excellent method. Thank you!

aquaface commented 2 years ago

Is there a way to make this work for Minecraft 1.16.1? I was able to get it working with 1.18, but with 1.16, I get this error:

GLFW error 65548: Cocoa: Regular windows do not have icons on macOS.

The reason I'm asking is because LWJGL 3.3.0 patched this issue, but I can't seem to get a working Apple Silicon fix for it in 1.16; someone in the report I linked did provide an Intel fix for it that worked for me though.

mezz commented 2 years ago

Fullscreen and Narrator on Mac depend on the Java-Objective-C-Bridge library, which needs a new release to support M1: https://github.com/shannah/Java-Objective-C-Bridge/issues/43 Once it's released, we can add it to the native.json file to update it as well and everything should work.

mezz commented 2 years ago

Java-Objective-C-Bridge has been updated to 1.1, so it can be included here in the native.json in order to fully support the Narrator and Fullscreen on M1 mac :)

thw0rted commented 2 years ago

I just started reading up on this stuff today, so I'm still getting spun up. The native.json file -- is that part of LWJGL, part of core Minecraft, or part of MultiMC? Whichever one it is, would your edits be appropriate to submit as a PR to that project upstream?

(I guess if it ships with Minecraft they're unlikely to take a community submission, but hopefully they're working on supporting this out of the box already -- I saw on the LWJGL tracker that there was a MS rep actively involved, and the issue is now resolved/closed...)

codewisdom commented 2 years ago

I'm roughly in the same boat as @thw0rted. Setting up Minecraft on a M1 Mac to play with my daughter occasionally. Since @mezz has indicated 1.1 of the bridge has been released (1.1), the JSON config can be updated to get everything working https://gist.github.com/mjwells2002/417e1f673794b14c188b6138afb92bd9. Using Minecraft Fullscreen causes a crash for me, even with this wrapper hack. Same for everyone else I assume or am I doing something wrong with this?

thw0rted commented 2 years ago

@codewisdom I had one fullscreen crash on first run, before trying any kind of fixes, but it hasn't happened again since. (The computer was a few hours old, and I'm not a Mac Person, so it was really fun trying to figure out how to handle a fullscreen "brick effect" texture that prevented us from seeing any applications -- including the Force Quit dialog! -- or the top menu bar. If it ever happens to you: CMD+Shift+Q prompts you to log out the current user.)

One other option you should be aware of: I believe that just installing an aarm JRE (I used Azul, I think?) then using ManyMC should Just Work. MultiMC has declined to incorporate these fixes -- they don't want to be on the hook for maintaining them, which is certainly fair. As I understand it, ManyMC is a fork of MultiMC, focused specifically on the Apple Silicon platform. Seemed to work well for me.

AndriiBarabash commented 2 years ago

Maybe it's too late, but I've tried updating the version of the Java-Objective-C-Bridge library in the MultiMC and it works with full-screen! Check my gist: https://gist.github.com/AndreyBar/a15a919345e0deb67b2d26b69d538173

CC: @codewisdom @thw0rted