The Elder Scrolls IV: Oblivion Game of the Year Edition (2009)

The Elder Scrolls IV: Oblivion Game of the Year Edition (2009)

Not enough ratings
How to fix stuck animations (aka the A-bomb bug) on Linux
By Angry_Goose
This guide details how to run the OAF (Oblivion Animation Fixer) mod under a Proton prefix in Linux to fix savegame files affected by the A-bomb bug. These instructions can also be generalized for any other executable you wish to run in the prefix.
   
Award
Favorite
Favorited
Unfavorite
What is the A-bomb bug?
Due to some sort of memory or tick count issue, Oblivion save games that have > 200 hours of playtime, or over a thousand saves on one character, or a significant number of items that have been stored in chests/etc, or some combination of these will end up running certain animations at an extremely low framerate. The most obvious example is doors taking several minutes to open, but it also impacts spell animations, fires, custom scripted door animations like the sealed portal in Anvil, and the animation that plays after taking the sigil stone from an Oblivion gate. Once the issue appears it will never go away, and reloading an old save will work only until the counter ticks over to the problem area again.

This bug is referred to as the stuck animations bug or the A-bomb bug. The Oblivion Animation Fixer mod on nexusmods will fix this issue, but we need to run it on our save file from within our Proton prefix.
Set up the Oblivion Animation Fixer (OAF) mod
Download the mod
Just like on Windows, we need to download the Oblivion Animation Fixer mod and put it in our save game folder. Download version 1.2 of the mod here and extract it. We'll come back to this.
https://www.nexusmods.com/oblivion/mods/5127

Steam Client Install Path
Determine where Steam is installed on your system. Unless you customized it, your path will likely be one of these two:
~/.steam/steam
or
~/.local/share/Steam

This guide will use ~/.steam/steam for the path. Substitute as needed.

Steam Compat Data Path (i.e. where the Oblivion game data is)
Steam creates a tiny, isolated facsimile of the Windows folder structure for each game that you run via proton - this is the proton prefix directory. For Oblivion, it is located under:
~/.steam/steam/steamapps/compatdata/22330/

Note: '22330' is the unique Steam app id for Oblivion.

Move OAF into save games directory
At this point we can move the OAF_v1_2 directory into the save game directory. That path will look something like:
~/.steam/steam/steamapps/compatdata/22330/pfx/drive_c/users/steamuser/Documents/my\ games/oblivion/saves/OAF_v1_2

Proton Path
Steam treats each Proton version like a game application. Each version has its own directory under ~/.steam/steam/steamapps/common/ just like every other installed game title.

Find the path for the same proton version that you use to launch Oblivion - for instance, if you use Proton 6.3, the path to proton will be:
~/.steam/steam/steamapps/common/Proton\ 6.3/proton

Run the OAF executable in the Oblivion Proton prefix via the appropriate Proton version
Now that we know where everything is, we can put it all together into one command and invoke proton run with the OAF executable. This is basically what the Steam launcher does with the game executable when you launch it under Proton, but it also supplies a couple of paths automatically that we don't have here. Since we're invoking directly, we need to provide the environment variables for STEAM_COMPAT_CLIENT_INSTALL and STEAM_COMPAT_DATA_PATH, which we figured out above.

Command structure:
env STEAM_COMPAT_CLIENT_INSTALL_PATH=yourSteamClientPath STEAM_COMPAT_DATA_PATH=yourOblivionDataPath yourPathToProton/proton run yourPathToOAF/OAF.exe

Plugging in our respective environment variables and paths, we get the following command:

env STEAM_COMPAT_CLIENT_INSTALL_PATH=~/.steam/steam STEAM_COMPAT_DATA_PATH=~/.steam/steam/steamapps/compatdata/22330/ ~/.steam/steam/steamapps/common/Proton\ 6.3/proton run ~/.steam/steam/steamapps/compatdata/22330/pfx/drive_c/users/steamuser/Documents/my\ games/oblivion/saves/OAF_v1_2/OAF.exe

Run it and the OAF.exe window should open. From here you can navigate to your save files and select one to fix just like you would on Windows. Apply the fix and get back into the game!