Oblivion:Linux

This page provides information on how to run Oblivion and the expansions in Linux.

While PC release of Oblivion was intended to be played only on PCs that run Microsoft Windows, it is possible to run it GNU+Linux. This is possible mainly due to a compatibility layer called WINE. It's been possible to have a great Oblivion play experience in Wine since version 0.9.29.  The Oblivion core game, along with all of the official plug-ins (including both Knights of the Nine, Shivering Isles, and the minor add-ons) are known to work.  Most unofficial mods also work without any problems.  Given your hardware you should be able to have the same performance as Windows, and the same experience except where noted below. The TES Construction Set also works, though there are several obvious and not-so-obvious ways to make it crash.

Overview of related technologies

Linux is a free (libre) and open source operating system. It is usually obtained in a form of Linux distribution. This article assumes that you are familiar with the basics of how Linux works.

WINE is a free and open source compatibility layer that allows software intended to be run on Microsoft Windows to work on Linux (and on OSX and BSD systems). Wine can almost always be found in distribution's repository and can therefore be easily installed with a package manager that distribution provides.

WINE STAGING is a version of wine with some bleeding edge patches that aren't included in  mainline WINE. It's considered an integral part of the WINE project. WIne Staging is the recommended way to play Oblivion on Unix systems. Wine Staging can be often found in the distribution's repository.

Wine-Tkg is a version wine or wine-staging with a lot of possible patches to be chosen during build as FSYNC. It uses a polymorphic build system that allows custom configuration and possibility to choose external community or user provided patches. Community patches can be found in the Community Patches repo. It also offers a custom Proton build
  
 Gallium Nine Standalone is a D3D9 replacement for WINE based products, that allow Directx9 programs to be run on the Gallium9 driver backend instead of the default OpenGL backend. As Gallium9 aimed to be an FOSS reimplemantation of a DX9 state tracker, it has lower cpu overhead, causing some games to have a better performance or more consistent FPS. It's only compatible with MESA open source driver. Can be installed using winetricks. Replace old wine-nine and wine-staging-nine packages. 

DXVK is a DirectX (9,10,11) replacement using Vulkan for Wine and derivative products.  It's compatible with all driver for modern video cards, and can actually perform better then the original OpenGL backend. Can also be used on Windows.

Proton is a variation of WINE developed by Valve that is used as a compatibility layer in Steam, allowing many of the games to be played despite them lacking native Linux release. Certain games perform better when ran with Proton compared to regular WINE as there are some additional performance-improving technologies integrated into it. Most reports state that Oblivion runs very well with Proton.    

Lutris is a free and open source game manager. It allows easy installation and management of various games and software required to run games. Games can either be installed by the use of community-made installers or by making Lutris run them from their already existing installations. The entry for Oblivion is already in the Lutris library.  

PlayOnLinux is a graphical interface for installing and configuring certain games and other software in WINE. As Lutris offers all the advantages of PoL, there are not many cases where using PoL would be required. Note that PoL wine versions aren't self contained, and may break during a system update. 

winetricks is a helper script that automates installing and configuring various redistributable runtime libraries and other software needed to run some programs in WINE.

NOTE: Play on Linux, Lutris, Proton, and Wine-TKG aren't supported by Wine developers. Don't open bug reports on the wine official bug tracker, if using them. 
Users of Wine/wine-staging with Gallium Nine Standalone or DXVK should report bug on the official bug tracker only if the bug is reproducible without it activated. Report the Bug to Nine or DXVK bug tracker if the bug happen only with it active.

Specific system requirements

Aside of the normal Oblivion system requirements, you need to make sure you have up-to-date OpenGL drivers with GLSL support.

If you have a card allegedly supported by Oblivion and up-to-date, properly installed drivers, you probably shouldn't have any problems.

Required dependencies

You need to install the Gstreamer package and the gstreamer-plugins-good, gstreamer-plugins-bad, and gstreamer-plugins-ugly 32bit versions (ALL THREE) otherwise Oblivion WILL crash when playing music.

It is also good to have mpg123 installed.

Examples

    Debian or Ubuntu / Mint : apt-get install gstreamer1.0-plugins-good:i386
    Fedora : dnf install gstreamer1-plugins-good.i686
    32-bit SUSE : zypper install gstreamer-plugins-good
    64-bit SUSE : zypper install gstreamer-plugins-good-32bit

Possible installation methods

If you own Oblivion on Steam, you can enable Proton and run Oblivion directly from Steam client.

If you own Oblivion on GOG or are in possession of GOG release of Oblivion, then Lutris can be used to get it working easily.

If you have physical release of Oblivion, then you can either set it up to work with Lutris or install and run it directly with WINE.


Running from Steam

This section assumes that you have Oblivion in your games library on Steam.

To enable Proton, open your Steam client and in the top left corner click on "Steam" and then select "Settings". In the newly opened window select the "Steam Play" section in the menu on the left.

Firstly tick the "Enable Steam Play for supported titles" in the "Steam Play Settings" section, and after that also tick the "Enable Steam Play for all other titles". Below that you have an option to select which version of Proton you wish to use. It is recommended that you use the latest versions (indicated by the highest release number), as it includes the most up-to-date release of WINE and most additional technologies that can improve performance.

After pressing "OK" you will be asked to restart Steam. When Steam starts again, it will allow you to download Oblivion and it will start downloading the Proton release that you selected. To install Oblivion, either open its store page and click the "Play Now" button or make your library switch the view from "SteamOS + Linux" to "Games", select Oblivion and click the "Install" button.

After the installation is completed, click "Play" button to start playing.

Running from Lutris

Lutris allows easy installation of Oblivion and provides an interface for very in-depth configuration of various systems that affect the way game is executed and how it performs.

It is also possible to make Lutris use an existing installation of Oblivion and run it under a different configuration.

Getting Lutris

On most Linux distributions it is possible to install Lutris directly from the package manager. More information can be found on the official download page.

While Lutris provides many variations of WINE as possible runners, you are still required to install WINE on your system in order to provide some dependencies that Lutris does not provide. The instructions for installing WINE are located under "Installing WINE" section of this article.

Installing GOG release

The library entry for Oblivion can be found here.

On the list of possible installation options find the one marked with "GOG version" tag and click on its "Install" button. That will start a dialog which will guide you through the installation.

First thing you will see is an already filtered list of installers, showing you just the "GOG" option. Click on the "Install" button to continue.

Next you will be asked to select an installation directory. This is a directory where everything required to run Oblivion will be located after installation is complete. That includes game data and wineprefix configuration. The directory will get created if it does not exist already.

After that you will be asked to provide a location of the game installer. Click "Browse..." and navigate to the installer file and then click "Continue".

Lutris will set up the required environment and the installer will start. Proceed with the installation like you would on Windows.

After the process is completed the GOG installer will provide you an option to start the Oblivion launcher. Click "Launch", so that the Oblivion launcher sets up the initial configuration.

Then click on "Exit" in Oblivion launcher, as Lutris still has some things to automatically install and configure, but it can not until Oblivion launcher is still running.

When that is done the installation is fully complete and Lutris will allow you to start the game.

You can now find Oblivion in the main Lutris window. Note that it skips the launcher and starts the Oblivion.exe directly.

If you want to start the Oblivion launcher again, right-click on the Oblivion in Lutris and select "Run EXE inside wine prefix". In the newly opened window navigate to "drive_c/game/OblivionLauncher.exe" and select it.

Importing game manually

In Lutris it is possible to manually import and configure games.

In order to import already installed instance of Oblivion, click on the + button that is located in the upper left corner of Lutris window and then select "Import Game". Or if you have Lutris account and have Oblivion added to your Lutris library, then finding the discolored Oblivion entry in Lutris window, selecting it and clicking on "Add installed game" will start the dialog with images, name, and identifier already filled in.

In either case, first thing you need to do is select WINE as the runner to be used. After that switch to the "Game Options" tab.

For "Executable" provide a path that points to Oblivion.exe or OblivionLauncher.exe, whichever you prefer.

You can leave Arguments empty. For "Working Directory" it is best if you provide a path to the directory where Oblivion.exe is located.

You can leave "Wine prefix" empty if you wish to have Oblivion started with a WINE configuration that is also used for running other WINE applications on your system.
Otherwise you provide a path to either existing WINE prefix or to a directory that will be created in order to house the new WINE prefix.

"Prefix architecture" can be left on "Auto (default)". 

You can now click "Save" in order to finish importing game or you can go make additional changes to configuration under "Runner Options" and "System Options".

The newly added Oblivion will now show up in main Lutris window and can be started from there.

Running directly with WINE

Installing Wine

Most Linux distributions already provide WINE from their repository and therefore WINE can be easily installed by the use of provided package manager. Additional information about downloading WINE can be found here

Installing Oblivion

If you are using very old version of WINE then refer to older version of this installation guide for potentially useful information.

Official installer
Oblivion will install successfully using the official installer. Note that the installer copy d3dx9_27.dll in the system32/syswow64 folder for the selected wineprefix.  
There is nothing to this one, you just click and go.  The only thing that might bite you is if you see the error 'out of disk space', and you know you have enough space.  If you see this you might want to map another drive in Wine to the partition you're installing on.  For example, you could map G: to your /opt partition.  After this Wine will see the correct disk space for /opt on the G: drive.
 # Use /media/cdrom or whatever your mount point is here.
 cd /media/cdrom
 wine setup.exe

Shivering isle and the others official DLCs can also be installed using the installers.

Note:  When using some Window managers or some Xorg versions the Install Shield installer (SI and DLCs) can experience some glitches.

without installer - unshield

To circumvent the retail disk installer one can use unshield[
  will extract the game files.

First run
Copying the Oblivion icon on your desktop to your Windows/Desktop is recommended.  Go ahead and run the icon or OblivionLaucher.exe directly once.  Set the general options you want, and exit.

Wine specific  Oblivion.ini tweaks

 SIntroSequence=     //to avoid unskippable intro video
 bUseJoystick=0       //to avoid that the game make use of a "ghost" joystick

OBSE users may need to apply the following INI changes to be able to properly use mods that use OBSE keypresses functions (not needed with xOBSE above xOBSE 22.2):

 bBackground Keyboard=1  
 bBackground Mouse=1


There exist numerous other possible ini tweaks. Please refer to a good and well-tested guide (as Alenet Oblivion.ini tweaks).

Playing with WINE
Now you can finally play the game.  Remember that if you have installed Oblivion from DVD, then you must have the disc or the iso for Oblivion mounted and setup as CDROM device in Wine to play. Disabling all the debug spew improves performance. The following shell script can be used to start the game. Open up a text editor and save the text below to Oblivion.sh. Change the OBLIVION_DIR to be your install directory, and set the permissions of execute bit on the script. You can do this by right clicking on the file, click the Permissions tab, and checking the Execute box. Also the command 'chmod +x Oblivion.sh' in a terminal works as well.
 #!/bin/sh
 # This script disables all the text output for Wine
 # debugging for improved performance.
 export WINEDEBUG=fixme-all,err-all,warn-all,trace-all
 OBLIVION_DIR=/opt/games/Windows/Oblivion
 cd "${OBLIVION_DIR}"
 wine OblivionLauncher.exe

You can either run the shell script from a terminal or make a menu entry / desktop shortcut.
 # Command for use in terminal
 sh Oblivion.sh

To optionally make a menu entry:
# Open the menu editor from the main panel: System > Preferences > Menu Layout
# Select the Games menu.
# Click the New Item button.
# Select the icon you want to use.
# Type in a name, for example: "The Elder Scrolls: Oblivion."
# Browse for Oblivion.sh using the Browse button and dialog.
#* You may need to add the 'sh ' in the Command textbox, e.g.:  
# Click OK button.
Now you should see the new menu entry under Applications > Games. Now it's just click and go. Normally you could just use the desktop icon Oblivion made during install, but then you'd still have all the debug output turned on.


Known issues and Troubleshooting

 
 
This section contain descriptions of possible issues that could be encountered with older versions of WINE.  You should visit Wine AppDB page for the most up-to-date bug reports.

Incorrect reported VRAM

Sometimes wine can fail to properly detect how much VRAM is available. 

It's possible to use winetricks to properly set the VRAM amount.

Crashes

Crash after 2-3 minutes when wine has no mpg123 support

When using a version of Wine compiled without mpg123, after about 2-3 minutes of in-game time, the game will crash with the error:

 err:winediag:FILE_CreateFile Too many open files, ulimit -n probably needs to be increased

Raising the ulimit would only postpone the crash, since it's apparently opening files constantly.  For more information, see: 

Additionally, performance is impacted somewhat by not having mpg123, and no background music will play, though those are less dire than the crashing behavior.

As MPEG patents expired, most non discontinued distributions should have Wine compiled with mpg123 support.

 
Hangs and freezes

Some people get a freeze starting the battle with the Emperor's assassins

 ; Disable music in the Oblivion.ini if setting FBO doesn't help.
 ; This has been known to resolve the issue for everyone so far.
 bMusicEnabled=0

Rendering errors

Only HUD is visible

Happens when game is started before OblivionLauncher.exe was ran and automatic configuration was completed.

To resolve this issue, close the game, run OblivionLauncher.exe and then start the game again.

Sound errors

No sound at all
Pulseaudio backend should work Out Of the Box in most mainstream distributions.
If your distribution still use ALSA as default, there may be a misconfiguration in the ALSA backend.
Try to adjust your ALSA confiugration, or try installing Pulseaudio.

Control problems

The hotkey menu will not disappear

This can be caused by a USB gamepad or joystick plugged in before starting the game.  Unplug the controller and reload the game.
Note: true for the macbook pro's with motion sensors at least, remember that if you use the applesmc driver, this will be recognized as a joystick!

Emulated desktop steals mouse when game is full screen

When the game is in full-screen mode and wine is running with the emulated desktop, you may run into an issue where the mouse refuses to leave the window, which can be problematic in some cases, such as a program that you need to respond to.  (author's note: or if you're a heavy multi-tasker and have a web browser with oblivion-related websites opened on a second monitor)

However, there is a simple workaround.  Keep a program window minimized while the game is running, and make sure that window, when restored, will fully or partially cover the game window.  When you need to do something outside of Oblivion's window, you just pause the game, and then press alt-tab to make the window manager bring that minimized window, which will cause the mouse's focus to be released.

Another workaround involving alt+tab is holding the two keys to take the mouse's focus away and moving it off of the game screen. This method requires less preparation than covering the Oblivion window partially.

Mods and Tools Issues

OBSE doesn't load 
Sometimes OBSE can fail to load when using the Steam version of Oblivion. 
There are actually two separate issue here. The first affect Proton users, and consist in the Steam Linux client being unable to load the obse_steam_loader.dll.
The second affect all users that use the Windows Steam client (on Linux or on Windows) where the loader fail to be laoded properly for not fully know reasons. 

The workaround require xOBSE from version 21.8 or higher. xOBSE from this version allow the steam version to be loaded from the obse_loader.exe.
After backupping the OblivionLauncher.exe rename the obse_loader.exe to OblivionLauncher.exe. Now when you start Oblivion from inside Steam, Proton should succesfully load OBSE.

Wrye Bash crash when Drag and Dropping mods in the load order table
A Wine deficiency cause this crash, and it's related to an old bug in wxWidgets. If WB ever update their wxWidgets version then the bug should be fixed automatically, but for now it require a patch.
There are 2 different patches for fixing this bug:
 "kernel32-implement-Windows-NT-style-GMEM_MOVEABLE-LM-no-staging.mypatch" from the Community Patches repo. It does properly fix the bug, but breaks dotnet40 installation.
 "0001-Allow-RtlSizeHeap-to-check-pointers-from-GlobalLock-.mypatch" from the Community Patches repo. It doesn't breaks dotnet40 installation, but it's incompatible with Proton_LFH patchset

Wrye Bash may not fully install mods using BAIN installers
Wine Shell32 has some longstanding issues in its implementation that can cause issues in some corner case for WB installer.
There are two patches from  the Community Patches repo that can improve the File move operations:
shell32-Move-file-SHFileOperation-allow-from-wildchar-move.mypatch
Shell32-CreateDirectoryInDestinationInFileOp-Move-multiop.mypatch

Other Mods 
An Oblivion specific solution for using Mods written for use under the Microsoft Windows OS, with the Linux kernel instead.

Potential future methods
There exists a branch of OpenMW that is able to load assets from Oblivion's data files.

External links
There is a Wine AppDB contains bug and status reports for playing Oblivion under the current version of Wine.
There is a popular ubuntuforums thread that deals with troubleshooting Oblivion in Ubuntu.  The first post is the basis for this wiki entry.
Screenshot of Oblivion in action in Wine 0.9.29.
Screenshot of Oblivion in Wine 0.9.32.  Note the lighting improvements and higher resolution on the same hardware.
CodeWeavers' CrossOver - contains bug and status reports for playing Oblivion under the current version of CrossOver.
TransGaming Technologies' Cedega - Members Only Area
Oblivion on Wine - A new series of blog posts that reports Oblivion's functionality under Wine and Arch Linux, starting with version 1.1.23.

References