I'll open this new year with some new topic.

Well, it's not exactly new, but I've never touched upon it here, so here we go...

I've been gaming with Steam on my Gentoo system.

As we may have known, Linux support on Steam keeps on improving day by day. Proton is such a godsend, as it allows Windows games to be played on Linux with little to no extra work. The developers no longer need to port specifically to Linux as the Windows binary would just work. Although in reality this doesn't always go as smoothly as we'd hope, in most case it works flawlessly.

However, since I'm running Gentoo, of course there's extra work for me to do!

I started by creating a Steam account. Then I installed Steam client thru Flatpak. Finally, I bought a game on the Steam store.

The first game I bought was .hack//G.U. Last Recode. I used to play the older version of this game when I was in middle school, and playing some old games with the emulator (topic for another day) made me want to check out the remaster version.

After downloading the game, I tried running it. After it started, it immediately died. After going thru the settings, I realized that I haven't even enabled Proton (called Steam Play in the settings). After enabling it and choosing the latest version (at the time, it was 6-something), it still refused to run. Looking thru the internet, I found that it's better to use the one that doesn't come with the Steam store, and installing it my own.

I then found out Proton is available thru Flatpak. There are two different ones that can be installed: the original one and the GE one. While the original one is developed by Steam themselves, the GE one is a fork made by some guy called Glorious Eggroll. Seems that he made some improvements to it that aren't approved by Steam and he published anyway.

After installing both, I tried the game again. This time, it ran! It's actually playable! I was able to finish playing it with almost no issue, complete with the USB Logitech controller! In the name of science, I switched back and forth between the original and the GE version. There didn't seem to be any difference in performance between the two.

There was some framerate drop during one of the boss battle. I was able to resolve it by decreasing the resolution to 1440p (yes, I was playing in 4K). I ended up keeping it because I honestly couldn't tell the difference.

The next game I played was Cult of The Lamb. This one pretty much worked out of the box!

The one that took me a bit to setup was Stray. Trying to run the game on the latest Proton version was unsuccessful. Running it on the older version worked, but the game controller didn't.

Different approaches to debug this issue was taken. One of which was running Steam from the command line, instead of the usual click on the desktop icon.

Running flatpak run com.valvesoftware.Steam resulted in a lot of output on the terminal, which causes confusion. I later found a method to output the messages from Proton to files instead.

WINEDEBUG="+timestamp,+pid,+tid,+seh,+debugstr,+module" flatpak run com.valvesoftware.Steam

This yields a file under the Steam Flatpak directory with the name of steamlog-<appid>.log where the <appid> is the ID number of the Steam application.

There was some misleading clues, and none of the output from the above commands ended up being useful. After looking up some Gentoo wiki page, I realized I had to recompile media-libs/mesa package with vulkan USE flag. After rebooting (just to be sure), I was able to start Stray with the latest Proton, but the controller wasn't working yet.

As for the controller issue, the solution came in multiple parts.

First was the kernel config for INPUT_UINPUT. I set it as module and rebuilt the kernel.

After booting the new kernel, Steam was unable to connect to the network despite my system being online.

The answer to that was the udev rules. This was fixed by installing games-util/game-device-udev-rules package.

Finally, Steam started like usual. Upon starting Stray, I was able to use my controller. Now I can be a cat!