Oblivion on Linux: Lutris Edition
I love Oblivion. I’ve written before about setting up Oblivion on Linux using the Steam version, Proton and a handful of aliases: Part 1 covers most of the tooling setup, and Part 2 covers some mods I liked. This setup works, though it is a bit of a hassle to manage. It requires running the tools individually through aliases from a terminal, which can be intimidating and unfriendly. It also requires the Steam version of Oblivion.
When I recently decided to return to Cyrodiil and close some gates, I wanted to
review my setup, and also my mod list. I discovered that Wrye Bash now does have
a native Linux application (as does LOOT!). However, I opted to stick with using
Wine and Windows versions of these applications due to a complication of modding
Oblivion in general: the case-sensitive nature of the filesystem. On Linux, the
filesystem is case-sensitive; on Windows, the filesystem is not
case-sensitive. For modding, this means if you extract an archive with a
Data/meshes
folder, but your current setup has a Data/Meshes
directory, on
Linux you’ll end up with two directories: Data/Meshes
and Data/meshes
.
There are solutions to this problem on Linux, namely using an EXT-4 filesystem.
I don’t feel like reformatting my disks, and so I’ll let Wine handle it. It may
mean a slight performance hit, but it’s Oblivion - there are always
performance hits. If there aren’t performance hits, then you haven’t modded the
game enough yet.
Setup: Game
I’ll be using Lutris to handle installing and launching the game. No more terminal aliases! I’m also using the GOG version of Oblivion. Lutris allows you to link your GOG account, and easily install games using Wine (or native versions, if available!). In Lutris, I install the game to my preferred destination, using the default GOG Wine install script. After installation, I launch the game once to generate some initial configuration files, and verify things work as expected. Before the next steps, there is a significant change: the Wine version. In order to use the latest version of Wrye Bash through Lutris, I had to change the Wine version from my Lutris default, wine-ge-8-26, to my latest system version, 9.22. There seems to be a Windows API which Wrye Bash relies upon which isn’t handled well in Wine versions previous to 9.
Lutris can also install from downloaded GOG installers, without having to link
accounts. Make sure to download all the parts (for Oblivion, there are 3: a
small EXE, and two BIN files). When installing, make sure all the downloaded
files are in the same directory. In Lutris, click the +
button to add a new
game, and select “Install a Windows game from an executable.” Name the game as
you wish, and add identifier
the-elder-scrolls-iv-oblivion-game-of-the-year-edition-deluxe
for the GOG
version. It’ll pull down nice looking images. On the next screen, click the
Install
button next to “Setup file”, choose your desired directory, and then
select the EXE downloaded from the three files above. Lutris will create the
Wine prefix, and load the GOG Installer. Make note of the directory you chose
above for installation (default will be in the Lutris game library directory,
Lutris Hamburger Menu
-> Preferences
-> Storage
-> Game Library), and
substitute it accordingly below.
Assuming everything is setup and running, the last step here is to note where
Lutris installed the game. The path to the directory will differ, but the
directory structure should be similar to the below. The Lutris “Directory”
(Right-Click -> Configure) value will bring you to the Wine directory (with
drive_c
), and from there will be the GOG Games
directory (or possibly
renamed; this can be changed during the GOG install process), and then the
Oblivion
directory.
Lutris
|-> gog
|-> the-elder-scrolls-iv-oblivion-game-of-the-year-edition-deluxe
|-> drive_c
|-> GOG Games
|-> Oblivion
|- Data
|- Oblivion.exe
|- ...
xOBSE
The Oblivion Script Extender is required for many mods, and should be considered
essential for anything beyond a strict vanilla playthrough. Download the latest
version, and extract it to the Oblivion
directory. When you launch Wrye Bash
(covered next), in the lower-left corner, on the icon bar, should be a green
checkbox. Hovering over it will notify you that OBSE is enabled. Clicking that
box will toggle OBSE. Generally, make sure it is enabled (checked).
At this point, before any other tools, when you double-click/Play Oblivion, it
will launch the purely vanilla Oblivion that was installed above. To use OBSE,
right-click Oblivion in Lutris, choose Configure, and on the “Game Options”
tab, change the Executable by clicking the button with three dots (labeled
“Select a file”) to obse_loader.exe
. Save the changes, and re-launch.
Pre-Setup: Tools
Before setting up the modding tools, it is required to run Oblivion once. This will generate the INI file.
I also recommend adding the Wrye Bash bash.ini
file detailed below before
running Wrye Bash for the first time. By declaring where the executable for
Oblivion is, Wrye Bash won’t try to automatically find it, which can cause some
troubles or confusion.
Setup: Tools
I’ll be using the following tools. When possible, download the stand-alone
version of the tool. To make things easy, I use the GOG Games
directory for
all the tools.
drive_c
|-> GOG Games
|- BethINI
|- LOOT
|- Mods
|- Mopy
|- Oblivion
|- TES4Edit
Wrye Bash
Mod manager, and everything else launcher in this setup. One of the most
exciting results of this setup is handling almost all modding management through
the Wrye Bash UI. From the Project Link, download the stand-alone executable
from the releases. I extract it to the GOG Games
directory, which will create
a Mopy
directory. Within that will be the executable, Wrye Bash.exe
. Next,
in the Mopy
directory, copy the bash_default.ini
file to bash.ini
. Make
the following changes (or replace bash.ini
with this information):
[General]
; -- Path to mod directory.
; These are relative to the Oblivion directory.
sOblivionMods=..\Mods
sBashModData=..\Mods\Bash Mod Data
sInstallersData=..\Mods\Bash Installers\Bash
; -- Path to the Oblivion directory.
; "C:" here is drive_c on our filesystem.
sOblivionPath=C:\GOG Games\Oblivion
; -- User directory stuff.
; "C:" here is drive_c on our filesystem.
; Make sure to replace YOUR-USERNAME with your username
sUserPath=C:\users\YOUR-USERNAME
sPersonalPath=C:\users\YOUR-USERNAME\Documents
sLocalAppDataPath=C:\users\YOUR-USERNAME\AppData\Local
[Tool Options]
; -- TES4Edit
; Path is relative to the Oblivion directory.
sTes4EditPath=..\TES4Edit\TES4Edit.exe
; -- TES4LODGen
; Path is relative to the Oblivion directory.
sTes4LodGenPath=..\TES4LodGen\Tes4LODGen.exe
; -- LOOT
; Path is relative to the Oblivion directory.
sLOOT=..\LOOT\LOOT.exe
In this configuration, the relative paths are relative to the Oblivion
directory (where the game executable is). For all remaining tool setup, modify
the paths in this configuration to match the paths for the tool executable (or,
rename the tool directories, which is what I prefer).
This is where the magic happens: within Lutris, right-click Oblivion and choose
Configure. On the “Game Options” tab, change the Executable by clicking the
button with three dots (labeled “Select a file”), and choose the Wrye Bash.exe
executable in the Mopy
directory. Save the configuration, and
double-click/Play Oblivion. This time, Wrye Bash will start up (Remember:
This will not work on versions of Wine older than 9!).
At this point, when you want to play Oblivion, you will open Lutris, and launch “Oblivion.” This will launch Wrye Bash. You can then click the Oblivion icon in the lower-left icon bar to launch the game. As additional tools are configured, they will appear in the lower-left icon bar (everything except BethINI). To use the tool, you’ll run it from Wrye Bash.
LOOT
LOOT handles mod load order. Another application with a native Linux version. I
had previous run into some bugs, but everything looks to work as expected now.
Despite that, I still download and use the stand-alone Windows version (the
archive from the releases, not the EXE). I extract it to my GOG Games
directory, and rename the directory (or edit the bash.ini
file) so the
executable is where my Wrye Bash configuration expects it.
If setup properly, when you run Wrye Bash, in the lower-left corner will be a bar full of icons, one of which will be a little treasure chest. Clicking it will launch LOOT. From there, sort the order, and then close LOOT. Wrye Bash will refresh, and you can continue on. LOOT will also notify you of any “dirty” mods, which can be cleaned using TES4Edit (see below).
TES4Edit
I’m still not a mod creator, so my uses of TES4Edit are limited to “quick
cleaning.” From the project page or Nexus, download the latest version, and
extract the archive to the GOG Games
directory. Rename the directory or edit
the bash.ini
file so Wrye Bash can find it; restart Wrye Bash to verify. Wrye
Bash doesn’t include a dedicated short-cut for the “Quick Auto Clean” option,
instead you have to right-click on the TES4Edit short-cut (or the TES4LodGen
short-cut), and choose “Quick Auto Clean”. Choose the mod to clean from the
list, click OK, and let the program do its work.
TES4LODGen
This will generate LOD files ahead of time, allowing for more distant objects to
be shown as you adventure around Cyrodiil. Download the archive, and extract it
to where Wrye Bash expects it, either changing the directory name or updating
the bash.ini
file accordingly. After mod installation is complete, click the
icon from the icon bar to generate the LOD files.
BethINI
BethINI
helps manage the “oblivion.ini” file, providing sane options and a
wizard for configuration. This is the only tool that is not run from Wrye Bash.
However, it’s still pretty easy to work with. Download the stand-alone archive,
extract it to the GOG Games
directory.
To run the tool, in Lutris single-click on Oblivion. A bar should appear with
some additional details about Oblivion, including some buttons: one will say
“Play”, and one will look like a wine glass; each will have a small button with
an up-facing arrow. Click the arrow button next to the wine glass button, and
select “Run EXE inside Wine prefix.” Navigate into drive_c
, then GOG Games
,
and into the directory you just set up for BethINI, and select BethINI.exe
.
Wrye Bash does allow for custom application short-cuts, but it requires creating
a Windows shortcut .lnk
file, and I cannot figure out an easier way to do
that than to just run it from Lutris.
Post-Setup: Tools
Verify each tool runs as expected. Conveniently, all the Bethesda DLCs are “dirty,” so LOOT will notify you, and then you can clean them. Run BethINI, generate LOD files, and run the game from Wrye Bash. Praise Todd.
Mods
Wrye Bash on Windows can install mods from an archive, but with this setup that
functionality is unreliable. Instead, I extract the mod archives manually before
installing them with Wrye Bash. For each mod that I want to use, I’ll create a
directory in the Mods -> Bash Installers
directory, and extract the mod
archive into that directory. Then, within Wrye Bash, on the “Installers” tab, I
can install mods as expected.
For actually using Wrye Bash, I recommend laulajatar’s guide. Obviously, you can skip the installation steps for both Wrye Bash and OBSE. There is also the Wrye Bash Manual.
Lutris Setup: Problems
The significant problem with this setup is no way to alt-tab away from the game. To make things even more inconvenient, playing in a windowed mode also doesn’t work, and shows only a black screen with audio. I haven’t done an exhaustive trial of options and mods yet to try and fix this, because it isn’t a major problem to me.
The second inconvenience is as I mentioned above, with Wrye Bash not installing mods directly from archives. Again, not a major problem to me.
I suspect that both of the problems can be resolved with some Wine tweaks.
Lutris Setup: Benefits
What this setup gets right is ease of use, and ease of replication. All tools (except BethINI, for now) and the game are run from Wrye Bash. No juggling multiple application entries, aliases, or special setups. Plus, all tools, mods, and the game itself are all within the Lutris directory, making multiple setups a breeze: just copy the directory. In Lutris, you can then duplicate the entry (Right-Click -> Duplicate), and edit the executable (Right-Click -> Configure -> “Game options” tab -> Executable) to point to the new directory.
Lutris Setup: Next-Steps
The most useful next step would be automating this process, by building a Lutris install script. Also, resolving the alt-tab and windowed problems above.