Minecraft Running (Barely)

I have managed to get Minecraft running on my Unmatched (Ubuntu), although running is a probably not the best word for this. It took about 20 minutes to get to the main menu, took about an hour to generate and load a new game, and took about 8 minutes to load into the game the second time. With all settings at the lowest and a render distance at 3 chunks, it still only manages 1-2 fps at best even while running at 1.5GHz. Also, sound is not working at the moment due to an OpenAL error that I haven’t looked into yet. As you can see in the image, I’m using MulitMC to run version 1.12.1.

The general process I used to get it running was as follows.

  1. Compile MultiMC. This is the launcher that I managed to get running. I was using openjdk-11-jdk when this was compiled. Also, this took a very long time to complete, as in an hour or longer.
  2. Launch MultiMC and log in with your Mojang account.
  3. Add an instance of Minecraft. I tried both 1.12.1 and 1.17.1, but settled on 1.12.1 because the version of lwjgl I managed to acquire work for this version. Note this will fail to launch, but will put the needed files and folders in the right location.
  4. Install the liblwjgl-java-jni package. This gives you a RISC-V compiled version of liblwjgl.so which is need for the graphics backend. APT says this is version 2.9.3 if I’m not mistaken.
  5. Edit your Minecraft instance to use version 2.9.3. Not sure if this is completely necessary.
  6. Find the jar file for lwjgl. Mine was located at
  7. Update the jar file to use the new version liblwjgl.so located at /lib/jni/liblwjgl.so
    zip -d name.jar file_to_delete ← this can be used to delete a file from a jar file
    jar uf name.jar file_to_add ← this can be used to add a file to a jar file
  8. From MultiMC, launch Minecraft in offline mode and it should load to the main menu in about 20 minutes. Note: specifically launch Minecraft in offline mode because if you launch it normally, it will just redownload the lwjgl jar from the servers again and undo what you did in step 6.

Additionally, I update the jinput jar to use the one from /lib/jni/ as well, but I’m not sure if this is necessary as the game got to the initial screen that says Mojang without changing the jar.

And lastly, I got this running over the course of several days of troubleshooting, so I probably missed something in my process listed above. I’ll be doing a fresh install of the OS in a day or 2 in order to do a step by step guide if anyone is interested.

1 Like

As promised, an exact step by step guide to get where I’m at. This guide starts after installing XFCE on a fresh install of Ubuntu 21.04 and I’ll be including all commands for completeness. Also the cd commands are written to be run in order, ie the paths are relative to the last cd command. Important filepaths are listed at the end.

  1. Install dependencies for building MultiMC.
sudo apt-get install build-essential cmake qtbase5-dev zlib1g-dev libgl1-mesa-dev openjdk-11-jdk git
  1. Compile MultiMC, took around 33 minutes running at 1.5 GHz.
mkdir ~/MultiMC && cd ~/MultiMC
mkdir build
mkdir install
git clone --recursive https://github.com/MultiMC/MultiMC5.git src
cd build
cmake -DCMAKE_INSTALL_PREFIX=../install ../src
make -j4 install
  1. Run MultiMC, located in the install folder
cd ../install
  1. Add your Mojang account under Settings → Accounts

  2. Add an instance using the add instance button. Currently, only up to version 1.12.2 will run because they use LWJGL 2. 1.13 uses LWJGL 3 of which I have not yet been able to get a RISC-V version of. Version 1.0 has had the smallest load times of the versions I’ve test (about 3-4 minutes to get to the main menu and about 40 minutes to generate a new map), but still suffers from the low fps.

  3. Right-click on the new instance and click Edit Instance. Then go to the version tab and click the Download All button. After this, MultiMC can be closed for the time being.

  4. Get a RISC-V version of LWJGL and jinput. This gives version 2.9.3 of LWJGL.

sudo apt install liblwjgl-java-jni libjinput-jni
  1. Update the LWJGL jar file with the RISC-V version of the library.
cd libraries/org/lwjgl/lwjgl/lwjgl-platform/2.9.4-nightly-20150209/
cp /lib/jni/liblwjgl.so .
jar uf lwjgl-platform-2.9.4-nightly-20150209-natives-linux.jar liblwjgl.so
  1. Update the jinput jar file with the RISC-V version of the library. Note the filename change as the one in the jar file is named this way.
cd ../../../../../net/java/jinput/jinput-platform/2.0.5/
cp /lib/jni/libjinput.so libjinput-linux64.so
jar uf jinput-platform-2.0.5-natives-linux.jar libjinput-linux64.so
  1. Reopen MultiMC and launch offline the instance you set up earlier. Remember to launch offline and not regular launch because it will redownload and overwrite the jar file you just fixed.

This will get you to where I am at right now, however the performance is not playable (0-1 fps and really long load times). Also, I recommend making a copy of the updated jar files in case you accidentally click regular launch or download a new instance to test. And lastly, here are the filepaths to the jar files and executable.

Executable - ~/MultiMC/install/MultiMC
LWJGL - ~/MultiMC/install/libraries/org/lwjgl/lwjgl/lwjgl-platform/2.9.4-nightly-20150209/lwjgl-platform-2.9.4-nightly-20150209-natives-linux.jar
jinput - ~/MultiMC/install/libraries/net/java/jinput/jinput-platform/2.0.5/jinput-platform-2.0.5-natives-linux.jar

I welcome any suggestions for troubleshooting the low performance. I believe we should be getting at least some additional performance because the raspberry pi 2 can run Minecraft at around 15 fps and my understanding is our CPU is in same ballpark, give or take, as the rpi2/rpi3.