In this gist, you can find the steps to run Minecraft 1.16.4 natively on Apple Silicon (AS), without needing Rosetta 2 translation of the dependencies (mainly LWJGL and related libraries).
While it's possible to use a launcher like MultiMC to have a prettier way to run the game on AS, it requires installing even more dependencies (like QT) which take time and are difficult to distribute. Therefore, I've put together a command line-based launcher tool using a couple shell & Python scripts.
To get up and running quickly, follow the steps below. Otherwise, for more detail, watch my YouTube video.
To begin, download the Minecraft on Apple Silicon package I've already put together, containing some pre-compiled core dependencies like LWJGL and a convenient set of setup & launcher scripts. Unzip the file, and navigate to it in your terminal. Then follow the next steps.
cd libraries
sh download.sh
cd ..
python3 downloadassets.py
Note: Replace
email@address.com
andpassword
with your actual username & password for Minecraft, but keep them enclosed in single quotes. This data is only used to communicate with Mojang's authentication servers and is never stored. The file containing your authtoken is deleted after the game launches.
sh launch.sh 'email@address.com' 'password'
This worked pretty well for me except there is one very annoying issue: when you open any inventory, cursor is stuck at the center of the screen for ~1 second before you can move it. This is an issue in lwjgl3 itself and it was fixed somewhere in 3.3.x. So I made a nightly 3.3 build of lwjglfat and natives and it works perfect now.
Sharing in case anyone wants it as well:
https://www.mediafire.com/file/obfwvvc5uacwy91/m1_lwjgl_330_nightly.zip/file
Minor changes in code I made to make this work described here: LWJGL/lwjgl3#695
Submodule jars packed into single "fat jar" using JarSplice 0.40