As mentioned in my last post, I recently moved to Linux. For the most part this has been going well and most problems I ran into were expected. Many of my favorite games are native, or work excellent in Proton/Wine. A lot of my programs work, too, and I found alternatives for most of the rest.
And then there is Oblivion.
Truth be told, I avoided installing Oblivion until the last moment. I did about everything else before I started doing that. A bit late spring cleaning. Sorting all my bookmarks of the last 10 years. Painting a kitchen cabinet. Sorting my Dropbox of the last 10 years. But finally, there was almost nothing else left to try to get to work.
As for the reason why I avoided it, I guess I was kinda scared, because the more I liked my new system, the more I feared that my favorite game just wouldn't work like I wanted it.
Now please keep in mind I am a total noob and don't know anything about the inner workings of Linux. Setting up games has pretty much been a case of installing Steam and Lutris and clicking "play". Between people telling me that my PC will blow up and I won't be able to play anything on Linux and instructions telling me that it's easy to fix bug x, just edit wine and compile it yourself, I wanted to write down what worked for me.
Kat's blog has been immensely helpful (and I probably drove them mad with all my dumb questions).
I'm using Manjaro with XFCE and a Nvidia card.
Getting Oblivion to run by itself is easy enough. It works well with Proton. I had to use the launch command PROTON_USE_WINED3D11=1 %command% (might have been a problem with Vulkan on my end) and it had way better performance with Proton 4.11-13 than 5.0-9, which at the time of this post is the most recent one. I didn't want to use the Steam version, though, since from what I've read OBSE is a huge pain in the butt with it, since you need to edit game files directly. OBSE works now.
For the GOG version, I followed Kat's guide, which also worked quite well. I installed the Game, quickly tested it, installed OBSE & the GOG loader normally and instead of OblivionLauncher.exe or Oblivion.exe, I just put obse_loader.exe in all the scripts. The game launched and all was well.
I'm currently using Lutris instead of system wine, because I had some hiccups after updating wine (and with Manjaro being a rolling release, it updates constantly) and because it is very easy to handle additional apps/environmental variables (libstrangle, vkBasalt, etc) with Lutris.
Lutris is a platform similar to PlayOnLinux that allows one-click installs for a lot of games, often with scripts that apply settings that are known to work with that particular game. It has an interface that allows to easily change settings or create shortcuts for installed games and it already comes with DXVK.
I used Lutris with the downloaded offline backup installer from GOG - not the top one that comes with Galaxy. Just point the script to the downloaded exe that's in the same directory as the 2 bin files that came with it. I don't think the Lutris script does anything special other than just installing the game.
After installing libstrangle, Lutris can cap the game's FPS. This is the first time a FPS cap has worked for me in Oblivion!
It is also super easy to add custom versions of wine to single games, which is what I did later.
Didn't try. Tried Wrye Bash, the CS itself now and Tes4Edit.
While I could launch tools on their own by just running them in the same wineprefix as Oblivion, I like the toolbar approach and just launch them via Wrye Bash instead. After all, that's what I did on Windows already. I launch Wrye Bash and used the app shortcuts to launch additional tools & the game. I made notes about a workaround needed to launch some of the tools on the Wrye Bash post.
A note: Whenever available, I chose the manual install for programs, even if they offer an installer, i.e. just downloading the archive and dropping the program into a location of my liking, for example drive_c/tools.
Tools I got to work so far:
Tools work just as well, but are harder and easier to start at the same time, since Lutris runs games with its own runners. Using Lutris' option of launching a program in the wineprefix also didn't work too well for some, which could or could not have been fixed by now. It's worth a try I guess.
Pointing Lutris to Wrye Bash (Standalone Executable) instead of Oblivion.exe and using Wrye Bash as a toolbar to start everything else works fine.
So launching one app with Lutris is easy, switching them around is a bit annoying, hence the toolbar approach.
Another thing I tried getting to work was an ENB. This was not fun (and in the end, not really successful).
I downloaded the files from enbdev, I dropped the d3d9.dll into the Oblivion folder and I went into my Oblivion wine prefix' winecfg and set the override for d3d9 to "native, builtin" just for Oblivion.exe. That's basically the same for all versions, just the wineprefixes are different.
The ENB loads and works and applies its effects, but the performance is abysmal. Not even low fps, but it seems like everything takes ages to load. The first loading screen takes, unmodded, 30 seconds on a ssd and whenever I cross a cell boundary ingame, my frames drop from 120 to 5 as stuff is loaded.
I haven't been able to find a workaround for that yet. Most posts I found (and there aren't that many) are about newer games which combine enboost and enb and offer solutions that can't be applied to Oblivion.
I tried disabling all effects - no luck. Changing random settings around (in enbseries.ini) - no luck. As long as nothing is loading in, performance is excellent, but as soon as anything is loading, it drops. Cell boundaries, menus, spell effects, doesn't matter what.
I deemed it unplayable and dropped it.
I did have some weird happenings when I threw Oblivion Reloaded. I do still use 6.5 though, since I use a mod that isn't compatible with 7+. I did try some 7.x versions, as well as some 8.x versions and had some issues with any of those. I am too lazy to try out 9.x, but I don't think anything changed about my issues.
This is a tool similar to Reshade on Windows. The downside is that - unlike ENB and Oblivion Reloaded - it will also affect the inventory/interface which can look pretty bad. I think there are other alternatives to Reshade, but I use this one because it's pretty easy to add to Steam or Lutris; just drop in a config file and set a variable.
Other alternatives might be closer to true reshade, with better shader compatibility.
I found vkBasalt and a pack of Reshade shaders in the AUR, so I can't tell you how to install those on other distros.
2021-03-06: Fixed some things, added vkBasalt
2021-07-25: Just a bit cleanup.