Skip to content

Instantly share code, notes, and snippets.

@Cat7373
Last active October 7, 2023 02:22
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save Cat7373/78428cc01d9a69a339a955729ec3feae to your computer and use it in GitHub Desktop.
Save Cat7373/78428cc01d9a69a339a955729ec3feae to your computer and use it in GitHub Desktop.
Apple Silicon(M1/M2/M3......) + macOS + MultiMC + Minecraft 1.19 + Native LWJGL

Apple Silicon + MultiMC + Minecraft 1.19 + Native LWJGL

Fork form https://gist.github.com/nikhiljha/7313ac5553aafb1c8596b1fca0f4cdff

Installing Java

If you don't have Homebrew installed already, install Homebrew by following the instructions at brew.sh. Then, just open a Terminal and type...

brew install java

A better launcher than MultiMC

HMCL Launcher Download Page

  1. It natively supports Apple Silicon chips, provide better performance, higher game fps, eliminating the need for complex modifications.
  2. More friendly interface, support more login methods, Mod management, automatic installation of Forge, Fabric, Optifine, etc., and more useful functions waiting for you to discover.
  3. It is mentioned on the download page that it supports Java8-Java10. In fact, Java17 can also be used normally. The downloaded page is not updated in time, so you can use it with confidence.

Installing MultiMC

If you still insist on using MultiMC, read on, be aware that its game fps is usually lower.

Install the latest version of MultiMC from the MultiMC website. Unfortunately, the launcher will have to run with Rosetta. This won't affect game performance.

Using Updated LWJGL

Create a Minecraft 1.19.X instance, right click, edit instance, and go to the versions tab on the left. Click on LWJGL in the list, then click customize on the right. Click edit to open the LWJGL configuration file. Replace the content of the file that opens up with the contents of the file called org.lwjgl3.json that is attached to this gist (see next file).

Launch and Play

Have fun!

Can't Play

If you still can't play, it may be that you need to delete the old lib file:

  1. Open Finder.
  2. Press the Cmd + Shift + G key combination.
  3. Paste /Applications/MultiMC.app/Data/libraries/org.
  4. Press Enter.
  5. Delete the lwjgl folder.
  6. Try launching the game again.
  1. XJCraft Minecraft Server(China): Join QQ group 225962968 for details.
{
"formatVersion": 1,
"libraries": [
{
"downloads": {
"artifact": {
"sha1": "cbac1b8d30cb4795149c1ef540f912671a8616d0",
"size": 128801,
"url": "https://libraries.minecraft.net/org/lwjgl/lwjgl-glfw/3.3.1/lwjgl-glfw-3.3.1.jar"
}
},
"name": "org.lwjgl:lwjgl-glfw:3.3.1"
},
{
"downloads": {
"artifact": {
"sha1": "cbac1b8d30cb4795149c1ef540f912671a8616d0",
"size": 128801,
"url": "https://libraries.minecraft.net/org/lwjgl/lwjgl-glfw/3.3.1/lwjgl-glfw-3.3.1.jar"
},
"classifiers": {
"natives-linux": {
"sha1": "81716978214ecbda15050ca394b06ef61501a49e",
"size": 119817,
"url": "https://libraries.minecraft.net/org/lwjgl/lwjgl-glfw/3.3.1/lwjgl-glfw-3.3.1-natives-linux.jar"
},
"natives-macos": {
"sha1": "cac0d3f712a3da7641fa174735a5f315de7ffe0a",
"size": 129077,
"url": "https://libraries.minecraft.net/org/lwjgl/lwjgl-glfw/3.3.1/lwjgl-glfw-3.3.1-natives-macos-arm64.jar"
},
"natives-windows": {
"sha1": "ed892f945cf7e79c8756796f32d00fa4ceaf573b",
"size": 145512,
"url": "https://libraries.minecraft.net/org/lwjgl/lwjgl-glfw/3.3.1/lwjgl-glfw-3.3.1-natives-windows.jar"
}
}
},
"name": "org.lwjgl:lwjgl-glfw:3.3.1",
"natives": {
"linux": "natives-linux",
"osx": "natives-macos",
"windows": "natives-windows"
}
},
{
"downloads": {
"artifact": {
"sha1": "a817bcf213db49f710603677457567c37d53e103",
"size": 36601,
"url": "https://libraries.minecraft.net/org/lwjgl/lwjgl-jemalloc/3.3.1/lwjgl-jemalloc-3.3.1.jar"
}
},
"name": "org.lwjgl:lwjgl-jemalloc:3.3.1"
},
{
"downloads": {
"artifact": {
"sha1": "a817bcf213db49f710603677457567c37d53e103",
"size": 36601,
"url": "https://libraries.minecraft.net/org/lwjgl/lwjgl-jemalloc/3.3.1/lwjgl-jemalloc-3.3.1.jar"
},
"classifiers": {
"natives-linux": {
"sha1": "33dbb017b6ed6b25f993ad9d56741a49e7937718",
"size": 166524,
"url": "https://libraries.minecraft.net/org/lwjgl/lwjgl-jemalloc/3.3.1/lwjgl-jemalloc-3.3.1-natives-linux.jar"
},
"natives-macos": {
"sha1": "e577b87d8ad2ade361aaea2fcf226c660b15dee8",
"size": 103475,
"url": "https://libraries.minecraft.net/org/lwjgl/lwjgl-jemalloc/3.3.1/lwjgl-jemalloc-3.3.1-natives-macos-arm64.jar"
},
"natives-windows": {
"sha1": "948a89b76a16aa324b046ae9308891216ffce5f9",
"size": 135585,
"url": "https://libraries.minecraft.net/org/lwjgl/lwjgl-jemalloc/3.3.1/lwjgl-jemalloc-3.3.1-natives-windows.jar"
}
}
},
"name": "org.lwjgl:lwjgl-jemalloc:3.3.1",
"natives": {
"linux": "natives-linux",
"osx": "natives-macos",
"windows": "natives-windows"
}
},
{
"downloads": {
"artifact": {
"sha1": "2623a6b8ae1dfcd880738656a9f0243d2e6840bd",
"size": 88237,
"url": "https://libraries.minecraft.net/org/lwjgl/lwjgl-openal/3.3.1/lwjgl-openal-3.3.1.jar"
}
},
"name": "org.lwjgl:lwjgl-openal:3.3.1"
},
{
"downloads": {
"artifact": {
"sha1": "2623a6b8ae1dfcd880738656a9f0243d2e6840bd",
"size": 88237,
"url": "https://libraries.minecraft.net/org/lwjgl/lwjgl-openal/3.3.1/lwjgl-openal-3.3.1.jar"
},
"classifiers": {
"natives-linux": {
"sha1": "f906b6439f6daa66001182ea7727e3467a93681b",
"size": 476825,
"url": "https://libraries.minecraft.net/org/lwjgl/lwjgl-openal/3.3.1/lwjgl-openal-3.3.1-natives-linux.jar"
},
"natives-macos": {
"sha1": "23d55e7490b57495320f6c9e1936d78fd72c4ef8",
"size": 346125,
"url": "https://libraries.minecraft.net/org/lwjgl/lwjgl-openal/3.3.1/lwjgl-openal-3.3.1-natives-macos-arm64.jar"
},
"natives-windows": {
"sha1": "30a474d0e57193d7bc128849a3ab66bc9316fdb1",
"size": 576872,
"url": "https://libraries.minecraft.net/org/lwjgl/lwjgl-openal/3.3.1/lwjgl-openal-3.3.1-natives-windows.jar"
}
}
},
"name": "org.lwjgl:lwjgl-openal:3.3.1",
"natives": {
"linux": "natives-linux",
"osx": "natives-macos",
"windows": "natives-windows"
}
},
{
"downloads": {
"artifact": {
"sha1": "831a5533a21a5f4f81bbc51bb13e9899319b5411",
"size": 921563,
"url": "https://libraries.minecraft.net/org/lwjgl/lwjgl-opengl/3.3.1/lwjgl-opengl-3.3.1.jar"
}
},
"name": "org.lwjgl:lwjgl-opengl:3.3.1"
},
{
"downloads": {
"artifact": {
"sha1": "831a5533a21a5f4f81bbc51bb13e9899319b5411",
"size": 921563,
"url": "https://libraries.minecraft.net/org/lwjgl/lwjgl-opengl/3.3.1/lwjgl-opengl-3.3.1.jar"
},
"classifiers": {
"natives-linux": {
"sha1": "ab9ab6fde3743e3550fa5d46d785ecb45b047d99",
"size": 79125,
"url": "https://libraries.minecraft.net/org/lwjgl/lwjgl-opengl/3.3.1/lwjgl-opengl-3.3.1-natives-linux.jar"
},
"natives-macos": {
"sha1": "eafe34b871d966292e8db0f1f3d6b8b110d4e91d",
"size": 41665,
"url": "https://libraries.minecraft.net/org/lwjgl/lwjgl-opengl/3.3.1/lwjgl-opengl-3.3.1-natives-macos-arm64.jar"
},
"natives-windows": {
"sha1": "c1807e9bd571402787d7e37e3029776ae2513bb8",
"size": 100205,
"url": "https://libraries.minecraft.net/org/lwjgl/lwjgl-opengl/3.3.1/lwjgl-opengl-3.3.1-natives-windows.jar"
}
}
},
"name": "org.lwjgl:lwjgl-opengl:3.3.1",
"natives": {
"linux": "natives-linux",
"osx": "natives-macos",
"windows": "natives-windows"
}
},
{
"downloads": {
"artifact": {
"sha1": "b119297cf8ed01f247abe8685857f8e7fcf5980f",
"size": 112380,
"url": "https://libraries.minecraft.net/org/lwjgl/lwjgl-stb/3.3.1/lwjgl-stb-3.3.1.jar"
}
},
"name": "org.lwjgl:lwjgl-stb:3.3.1"
},
{
"downloads": {
"artifact": {
"sha1": "b119297cf8ed01f247abe8685857f8e7fcf5980f",
"size": 112380,
"url": "https://libraries.minecraft.net/org/lwjgl/lwjgl-stb/3.3.1/lwjgl-stb-3.3.1.jar"
},
"classifiers": {
"natives-linux": {
"sha1": "3ee7aec8686e52867677110415566a5342a80230",
"size": 227237,
"url": "https://libraries.minecraft.net/org/lwjgl/lwjgl-stb/3.3.1/lwjgl-stb-3.3.1-natives-linux.jar"
},
"natives-macos": {
"sha1": "fcf073ed911752abdca5f0b00a53cfdf17ff8e8b",
"size": 178408,
"url": "https://libraries.minecraft.net/org/lwjgl/lwjgl-stb/3.3.1/lwjgl-stb-3.3.1-natives-macos-arm64.jar"
},
"natives-windows": {
"sha1": "86315914ac119efdb02dc9e8e978ade84f1702af",
"size": 256301,
"url": "https://libraries.minecraft.net/org/lwjgl/lwjgl-stb/3.3.1/lwjgl-stb-3.3.1-natives-windows.jar"
}
}
},
"name": "org.lwjgl:lwjgl-stb:3.3.1",
"natives": {
"linux": "natives-linux",
"osx": "natives-macos",
"windows": "natives-windows"
}
},
{
"downloads": {
"artifact": {
"sha1": "0ff1914111ef2e3e0110ef2dabc8d8cdaad82347",
"size": 6767,
"url": "https://libraries.minecraft.net/org/lwjgl/lwjgl-tinyfd/3.3.1/lwjgl-tinyfd-3.3.1.jar"
}
},
"name": "org.lwjgl:lwjgl-tinyfd:3.3.1"
},
{
"downloads": {
"artifact": {
"sha1": "0ff1914111ef2e3e0110ef2dabc8d8cdaad82347",
"size": 6767,
"url": "https://libraries.minecraft.net/org/lwjgl/lwjgl-tinyfd/3.3.1/lwjgl-tinyfd-3.3.1.jar"
},
"classifiers": {
"natives-linux": {
"sha1": "a35110b9471bea8cde826ab297550ee8c22f5035",
"size": 45389,
"url": "https://libraries.minecraft.net/org/lwjgl/lwjgl-tinyfd/3.3.1/lwjgl-tinyfd-3.3.1-natives-linux.jar"
},
"natives-macos": {
"sha1": "972ecc17bad3571e81162153077b4d47b7b9eaa9",
"size": 41380,
"url": "https://libraries.minecraft.net/org/lwjgl/lwjgl-tinyfd/3.3.1/lwjgl-tinyfd-3.3.1-natives-macos-arm64.jar"
},
"natives-windows": {
"sha1": "a5d830475ec0958d9fdba1559efa99aef211e6ff",
"size": 127930,
"url": "https://libraries.minecraft.net/org/lwjgl/lwjgl-tinyfd/3.3.1/lwjgl-tinyfd-3.3.1-natives-windows.jar"
}
}
},
"name": "org.lwjgl:lwjgl-tinyfd:3.3.1",
"natives": {
"linux": "natives-linux",
"osx": "natives-macos",
"windows": "natives-windows"
}
},
{
"downloads": {
"artifact": {
"sha1": "ae58664f88e18a9bb2c77b063833ca7aaec484cb",
"size": 724243,
"url": "https://libraries.minecraft.net/org/lwjgl/lwjgl/3.3.1/lwjgl-3.3.1.jar"
}
},
"name": "org.lwjgl:lwjgl:3.3.1"
},
{
"downloads": {
"artifact": {
"sha1": "ae58664f88e18a9bb2c77b063833ca7aaec484cb",
"size": 724243,
"url": "https://libraries.minecraft.net/org/lwjgl/lwjgl/3.3.1/lwjgl-3.3.1.jar"
},
"classifiers": {
"natives-linux": {
"sha1": "1de885aba434f934201b99f2f1afb142036ac189",
"size": 110704,
"url": "https://libraries.minecraft.net/org/lwjgl/lwjgl/3.3.1/lwjgl-3.3.1-natives-linux.jar"
},
"natives-macos": {
"sha1": "71d0d5e469c9c95351eb949064497e3391616ac9",
"size": 42693,
"url": "https://libraries.minecraft.net/org/lwjgl/lwjgl/3.3.1/lwjgl-3.3.1-natives-macos-arm64.jar"
},
"natives-windows": {
"sha1": "0036c37f16ab611b3aa11f3bcf80b1d509b4ce6b",
"size": 159361,
"url": "https://libraries.minecraft.net/org/lwjgl/lwjgl/3.3.1/lwjgl-3.3.1-natives-windows.jar"
}
}
},
"name": "org.lwjgl:lwjgl:3.3.1",
"natives": {
"linux": "natives-linux",
"osx": "natives-macos",
"windows": "natives-windows"
}
}
],
"name": "LWJGL 3",
"releaseTime": "2022-05-04T14:41:35+00:00",
"type": "release",
"uid": "org.lwjgl3",
"version": "3.3.1",
"volatile": true
}
@tresf
Copy link

tresf commented Jan 25, 2023

The M1 issues are largely resolved by the native launcher since Microsoft has already released a native M1 version, but thanks for the JSON. Why did you tag everyone though? 🤔

@Cat7373
Copy link
Author

Cat7373 commented Jan 25, 2023

@tresf
I didn't have enough time to troubleshoot this problem for more than half a year, so I haven't played Minecraft on Mac during this time;
The developers of MultiMC said that this is not their problem, and closed my Issue directly, and most of the above Issues also have the same treatment;
Tag them here because I tried to reply under their Issue and tell them how to solve it to run the game normally, but the reply was deleted by the developer;
Considering that I haven't played in the past six months, they probably have similar experiences, and I hope to help them solve their problems;
After all, running Minecraft on top of Rosetta, would cause further loss of frame rate, and possibly negatively impact other Java-dependent applications on their computer.

@JJTech0130
Copy link

JJTech0130 commented Jan 25, 2023

Prism Launcher (a community-driven fork on MultiMC) supports M1 natively, not to mention that I had closed that issue due to fixing it myself.

@tresf
Copy link

tresf commented Jan 25, 2023

@Cat7373 thanks for the explanation. Yes, I too agree that they were very quick to close issues because "M1" was mentioned.
@JJTech0130 thanks for the link!

@Cat7373
Copy link
Author

Cat7373 commented Jan 25, 2023

@JJTech0130 wow, that looks beautiful, i'll try it sometime
@tresf I don't really understand why developers are so resistant to M1/arm64 related topics

@JJTech0130
Copy link

The MultiMC developer doesn't like other projects being associated with MultiMC, which is honestly a fair point, considering how much of a project is user support.

Originally, he was rather supportive of the idea of running it on ARM, especially the Raspberry Pi: MultiMC/Launcher#2133. However, people kept asking for help with unsupported hacks in MultiMC's name, til the point at which he eventually banned the topic.

Hence, ManyMC → became PolyMC → became Prism Launcher adding ARM support and other community-requested features, with all association removed

@Cat7373
Copy link
Author

Cat7373 commented Jan 25, 2023

@JJTech0130
This article was originally about how to run minecraft based on arm64 jdk on MultiMC, but then the developer's attitude made me pessimistic, and considering the ease of use for non-technical users, I finally added the part recommending HMCL to replace MultiMC.
In addition to the need to start it through the command line, it is really easy to use, and without any additional configuration, it started successfully on my arm64-based openjdk.

@tresf
Copy link

tresf commented Jan 25, 2023

@tresf I don't really understand why developers are so resistant to M1/arm64 related topics

I've had mixed success, personally, see:

I believe that many open source projects do not want to support Apple due to the walled-garden and when a new architecture arrives it floods them with requests that the developers do not have time or money to fix, so they eventually just start mass closing issues. Maintaining an open source can be rewarding, but it can also be very tiring and stressful. Generally, most people are quick to ask questions and file bug reports, but not as quick to offer detailed workarounds and writes as you have. This means that the people willing to help are often silenced due to the developer's reaction to those that are not willing to help. "Throw the baby out with the bathwater" euphemism.

I was very fortunate to be part of the Apple DTS. I am a software developer and I have been trying very hard to use an M1 mac as my daily machine because it is faster and uses less power than my older Intel computers, so it is overall a much better machine for daily use. I hope that someday the M1 technology makes it to the Linux and Windows computers too, perhaps then these projects would be a bit more receptive. ❤️

@Cat7373
Copy link
Author

Cat7373 commented Jan 25, 2023

@tresf

Wow, thank you and the community for your efforts. I also use Apple M1 for daily work. Take minecraft as an example. From the beginning, it was completely unavailable, and now I use MultiMC + hack json (although I can’t find 3.3.1 json on the Internet. Most people may not be able to make it themselves), or HMCL works out of the box, and a lot of efforts from Apple and the community must be indispensable;

As far as work is concerned, it is much better than my previous Macbook Air, and the battery life is much longer, and the compatibility problems encountered when I first started using it are expected, I am also a software developer, most of them All resolved by themselves;

In the past half a year, I haven’t felt any compatibility issues at all in my work, and I haven’t bothered to solve them. Maybe there are still a few applications running on Rosetta, which is harmless. Until today, I just wanted to try to play MC 😀

@JJTech0130
Copy link

although I can’t find 3.3.1 json on the Internet

https://github.com/PrismLauncher/meta-launcher/blob/master/org.lwjgl3/3.3.1.json
you might have to modify it a bit to make it work on original MultiMC, not sure if Prism tweaked the format.

@tresf
Copy link

tresf commented Jan 25, 2023

@Cat7373 Well, it's nice to e-meet you. I hope we cross paths again soon. I also was once highly involved in LMMS (which also needs an M1 port) 🤦 :)

@Cat7373
Copy link
Author

Cat7373 commented Feb 6, 2023

@tresf The following text is from Google Translate:

In fact, from the user's point of view, the demand has always existed and needs to be met;

At first, Minecraft did not officially support Apple Silicon, and MultiMC chose to follow up and did not support it, but users have a need to play Minecraft on Apple Silicon;

Now, or a little earlier, Minecraft official has been able to directly support Apple Silicon, MultiMC still decided not to support;

At least as of today, users who install Java with arm64 architecture cannot use it out of the box, and users who install Java with x86 architecture will lose a lot of fps;

Today, users still need to use Apple Silicon out of the box and play Minecraft with high fps;

Users have needs, and the needs of users need to be met. If you do not accept or recognize the needs of users, it is not beneficial to your own competition, and it will only squeeze users to places that can meet their needs;

This is why at the beginning I was writing how to solve MultiMC using arm64 Java on Apple Silicon, and proposed an Issue to the project to recommend a solution;

Later, because of the developer's handling method and attitude, I was also squeezed to its competitors, that is, the reason for recommending HMCL;

After all, for users, the problem of playing Minecraft can be solved through complex (and possibly untrustworthy) configurations, and the problem of playing Minecraft can also be solved by changing the launcher. From the user's point of view, there is no difference. Maybe HMCL instead more useful;

This is its choice, and it will bear all the consequences of its choice, whether it is good or bad;

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment