Modded Minecraft on SteamDeck

A tale of Java incompatibility with the Direwolf20 1.16 modpack

16 Mar '24

It’s been a while since I played Minecraft. And oh man, there have been some changes. Of course, Microsoft has forced everybody to migrate their accounts. Then there’s drama around Minecraft launchers, with MultiMC being forked as PolyMC, and then PolyMC being forked as Prism Launcher. Anyway, Prism Launcher has a Steam Deck build, so Prism it is.

Instantly, I hit the first issue: The account authentication failed in Prism Launcher. It turns out this is actually a Microsoft issue, because of course it is. It probably uses the same rubbish all Microsoft products use. Their login workflow is legit broken, as we’ll see.

The solution is to enable password-based logins, thank you u/anonymous_3125:

found the problem. That microsoft account was indeed faulty because it somehow didn’t have a password. I didn’t notice this at first, but every timed I tried to sign into the faulty ms account, it sent a code to an email and gave me no other sign in option. With the other ms account, it gave an option to send a code to an email or enter the password.

u/anonymous_3125

Ironically, while trying to do this, I hit the same issue as another Reddit user:

I had to brute force it through the microsoft security page where it keeps reloading and made a password that way.

u/Kqllanxus

When I tried to view the account security page, I got stuck in a redirect/refresh loop. It’s quite unbelievable.

Even when writing this, it’s crap. I have a password manager, so my password is 32 random characters. I have two-factor authentication enabled. But Microsoft still prompts me to “Help keep your account safe and secure”, because “Passwords can be forgotten or stolen.”.


Although I did fire up a Vanilla world, I was quickly craving some mods again - even if it is just for fast leaf decay. For nostalgia reasons, I wanted to play an old Direwolf20 modpack. Somehow, this turned into a bit of a saga.

First, Feed The Beast (FTB) sold out in some capacity to Overwolf, and now requires an ad-infested launcher on Windows. On Linux, it’s some shell-script. No thanks. All of this would be ok, except that FTB “requested” that other launchers like Prism remove FTB modpack downloads (GitHub issue). One solution might be to look for patched Prism Launchers which do enable FTB modpack downloads.

Now, I wanted to play the Direwolf20 1.16 pack, mainly because of Tinkers’ Construct. The 1.20 and 1.19 packs don’t have it. 1.18 would be an option, but for some reason I went with 1.16.

1.16 seems to need Java 8, and somehow Forge breaks with newer Java 8 versions: “Old versions of Forge crash with Java 8u321+. For this reason, using Java 8u312 or lower is recommended”. The symptom for me was some Antlr issue:

[org.antlr.v4.runtime.ConsoleErrorListener:syntaxError:38]: line 13:0 token recognition error at: '`'

Ok, but how to get Java 8u212 on the Steam Deck, into the Prism Launcher flatpak? Github user barraIhsan comes in with the save:

Flatpak Prism stores java in /var/lib/flatpak/app/org.prismlauncher.PrismLauncher/current/active/files/jdk and in prism it will be replaced as /app/jdk/.

barraIhsan

So, browse the Adoptium archives for Java 8, find the closest Java 8u312 build which was jdk8u312-b07/8.0.312+7, and download the Linux x64 Binary JDK (103 MB).

Next, open up Konsole on the Steam Deck in desktop mode. To be able to use sudo on the Steam Deck, it’s necessary to set a password using passwd. Then, simply extract the JDK into the flatpak:

cd /var/lib/flatpak/app/org.prismlauncher.PrismLauncher/current/active/files/jdk
sudo tar xvzf ~/Downloads/OpenJDK8U-jdk_x64_linux_hotspot_8u312b07.tar.gz

This creates a directory named jdk8u312-b07, which has the JDK in. That can be then used in the Prism Launcher as /app/jdk/jdk8u312-b07/bin/java, and finally, everything works!

Linux, Minecraft, Steam Deck

Older