Withdrawn: Skyrim Journey - Omni-guides/Wabbajack-Modlist-Linux GitHub Wiki
[![Star!]https://github.com/Omni-guides/Wabbajack-Modlist-Linux" data-icon="octicon-star" data-size="large" data-show-count="true" aria-label="Star Omni-guides/Wabbajack-Modlist-Linux on GitHub">Star
Instructions
These steps will need to be carried out in Desktop mode, but once complete you will be able to launch the Modlist and play the game from Game Mode. Journey is designed and made for Skyrim: Special Edition with full support for players with only the free Creation Club content or those who have the full Anniversary Edition content. If you wish to use the full Anniversary contant, then you will need to have launched the vanilla Skyrim game and download the Creation Club content.
Step 1 - Create the directory
Once Wabbajack has successfully completed the download and installation of the Modlist on your Windows system, create a new directory on the SteamDeck to house the required files - this can either be on the internal storage, or with the use of a specific launch parameter described below, can live on the SD Card. Open up Konsole and run only one of the following, depending on where you want to store the Modlist:
Create Directory on Internal Storage:
mkdir -p /home/deck/Games/Skyrim/Journey
OR
Create Directory on SD Card:
mkdir -p /run/media/mmcblk0p1/Games/Skyrim/Journey
(Note: Valve plan to change the default mount point of SD Cards within SteamOS soon, I'll update this guide once that chance is in place)
Copy the Modlist directory from Windows into this newly created directory. There are many ways to do this. I chose to enable ssh on my Deck, and then use rsync to transfer. There are too many options to discuss here, but it should be relatively easy to search for methods. I copied the Modlist directory to /home/deck/Games/Skyrim/Journey/Journey-WJ - the reason for this folder structure is to assist in having multiple Modlists installed at the same time. Do not include any spaces in the directory path at this level - it does not play well with the Proton/mo-redirect/MO2 combination even with the spaces being escaped, for whatever reason..
Finally for this step, it's best to make sure that the newly copied files have sufficient permissions for your user. Run only one of the following for each action (owner and permissions), depending on where you want to store the Modlist:
Change the owner and permissions of the directory on Internal Storage:
sudo chown -R deck:deck /home/deck/Games/Skyrim/Journey/Journey-WJ
sudo chmod -R 755 /home/deck/Games/Skyrim/Journey/Journey-WJ
OR
Change the owner and permissions of the directory on SD Card:
sudo chown -R deck:deck /run/media/mmcblk0p1/Games/Skyrim/Journey/Journey-WJ
sudo chmod -R 755 /run/media/mmcblk0p1/Games/Skyrim/Journey/Journey-WJ
Step 2 - Steam Redirector
Next we need a nifty little program called steam-redirector. Information about this program can be found on the github page for the more general Linux Mod Organizer 2 installation by rockerbacon. You can download a version I have pre-compiled from here (tested on Arch and Fedora but should work on others) using one of the commands below. If you prefer, you can choose to build from source yourself following the instructions provided on the on the steam-redirector github page.
To download the version I have pre-built, run only one of the following commands in Konsole, depending on your storage location.
Download the pre-built mo-redirect.exe to Internal Storage:
wget https://github.com/Omni-guides/Wabbajack-Modlist-Linux/raw/main/mo-redirect.exe -O /home/deck/Games/Skyrim/Journey/mo-redirect.exe
OR
Download the pre-built mo-redirect.exe to SDCard:
wget https://github.com/Omni-guides/Wabbajack-Modlist-Linux/raw/main/mo-redirect.exe -O /run/media/mmcblk0p1/Games/Skyrim/Journey/mo-redirect.exe
This mo-redirect.exe is a wrapper app that basically points to the real location of your Modlist's ModOrganizer.exe and nxmhandler.exe. It does this based on the contents of two files that have to live inside a specific directory called modorganizer2. This directory has to exist in the same directory mo-redirect.exe lives. So we need to create a directory, and then create the two files mo-redirect.exe is expecting.
Run only one of the following commands in Konsole, depending on where you are storing the Modlist.
Create the Directory on Internal Storage:
mkdir /home/deck/Games/Skyrim/Journey/modorganizer2
OR
Create the Directory on SD Card:
mkdir /run/media/mmcblk0p1/Games/Skyrim/Journey/modorganizer2
Create the two required files, firstly ModOrganizer.exe. Run only one of the following:
Internal Storage:
echo "/home/deck/Games/Skyrim/Journey/Journey-WJ/ModOrganizer.exe" > /home/deck/Games/Skyrim/Journey/modorganizer2/instance_path.txt
OR
SD Card:
echo "/run/media/mmcblk0p1/Games/Skyrim/Journey/Journey-WJ/ModOrganizer.exe" > /run/media/mmcblk0p1/Games/Skyrim/Journey/modorganizer2/instance_path.txt
and then nxmhandler.exe. Again, only run one of the following:
Internal Storage:
echo "/home/deck/Games/Skyrim/Journey/Journey-WJ/nxmhandler.exe" > /home/deck/Games/Skyrim/Journey/modorganizer2/instance_download_path.txt
OR
SD Card:
echo "/run/media/mmcblk0p1/Games/Skyrim/Journey/Journey-WJ/nxmhandler.exe" > /run/media/mmcblk0p1/Games/Skyrim/Journey/modorganizer2/instance_download_path.txt
At this stage, the /home/deck/Games/Skyrim/Journey directory (or SD Card equivalent) should contain the following two directories and one .exe file:
modorganizer2 mo-redirect.exe Journey-WJ
with the modorganizer2 directory containing the two created files:
instance_path.txt
instance_download_path.txt
Step 3 - Add the redirector as a Non-Steam Game
Next step is to add mo-redirect.exe to Steam as a non-steam game. Once added, edit the properties of the new mo-redirect.exe entry. You can give it a more sensible name - I used "Skyrim - Journey" for example, and then in the Compatibility tab tick the box for 'Force the use of a specific Steam Play compatibility tool', then select the Proton version - I chose Proton 7.0-4 which was the latest stable Proton version at time of writing..
IMPORTANT FOR SD CARD USERS - You must add the following to the Launch Options for the mo-redirect.exe Non-Steam game, otherwise the Proton environment won't have access to your SD Card contents:
STEAM_COMPAT_MOUNTS=/run/media/mmcblk0p1 %command%
Like so:
Step 4 - Start and Configure ModOrganizer2
Click play on this new entry "Skyrim - Journey" (or whatever you renamed it to) in Steam, and all being well, a little terminal window will appear - this is the steam-redirector doing it's job. If the terminal window just pops up for a second and vanishes, double check the contents of the instance_path.txt and instance_download_path.txt files as above, and that they are present in the correct directory - e.g. /home/deck/Games/Skyrim/Journey/modorganizer2/instances_path.txt, or check that the Proton version you have selected is 7.0-4 (or whatever the latest Steam-supplied stable version is).
Depending on the path on Windows that you copied the ModList files from, you may see an error pop-up about your account lacking permission:
To fix this, we just need to strip the now incorrect download directory from the ModOrganizer.ini file:
sed -i "/download_directory/c\download_directory =" /home/deck/Games/Skyrim/Journey/Journey-WJ/ModOrganizer.ini
If you had this error, fix as above and then re-run "Skyrim - Journey" from Steam.
Another error box will appear, complaining that it "Cannot open instance 'Portable'. This is because we copied the Modlist directory (inclusive of the built-in MO2) from Windows, so the path has changed:
To fix this, we need to point MO2 to our new location. Click OK, and then Browse:
A GUI file browser will appear, and we need to expand the directories path to reveal the 'Root Game' directory:
With that done, the custom Modlist splashscreen for MO2 should appear, followed by ModOrganizer2 itself.
You may also get a pop-up asking if you want to Register for handling nxm links, like so:
I usually just hit "No, don't ask again" as I wont be downloading any new mods via this version of MO2.
Getting close now. Next, we have to ensure that ModOrganizer2 is pointing to the correct new location for the required executable. In MO2, click the little two-cog icon at the top, which will bring up the Modify Executables window (please note that this icon may differ for some Modlists that use custom icon sets):
For Journey, the executable that needs edited will be simply 'Journey' if you do not have the Anniversary Edition, and 'Journey - Anniversary' if you do have the Anniversary Edition. We need to change the "Binary" and "Start In" locations to point to the directory inside our Journey-WJ directory that houses the skse64_loader.exe application. Due to running this through proton, it will be referenced by being the Z: drive location. So for example, the executable paths we need for the Journey entry should be:
'Binary' path:
Z:\home\deck\Games\Skyrim\Journey\Journey-WJ\Stock Game\skse64_loader.exe
and a 'Start In' path of:
Z:\home\deck\Games\Skyrim\Journey\Journey-WJ\Stock Game\
You can copy and paste the path, or use the three dots beside the "Binary" and "Start In" entries to manually locate via GUI.
Step 5 - Disable ENB
Depending on the Modlist you are trying to run, the method for disabling ENB will differ. While ENB can work under Linux, it is likely going to badly impact performance on the Deck, so I would advise you to disable it. To do that for Journey, we just need to rename the ENB .dll file:
TODO ENB RENAME
disable the 'ENB - Binaries' entry in MO2
Step 6 - Required Fixes
Now on to required fixes. The following have been required for each of the Modlists I have managed to get running. There is an issue with missing NPC Voices - apparently this is an issue with Proton, so it may ultimately be resolved in time with a newer version of Proton without needing these steps. For now though, we need to install xact and xact_x64 to the Wine/Proton environment Steam created for our "Skyrim - Journey" (mo-redirect.exe) entry. The easiest way to accomplish this is to use ProtonTricks. This can be installed via the Discover store on the Deck:
To enable the use of protontricks via the command line, open Konsole if it isn't open already, and run the following command to add an alias:
echo "alias protontricks='flatpak run com.github.Matoking.protontricks'" >> ~/.bashrc
then close and reopen Konsole. We can now invoke protontricks from the command line.
Adding the required packages can be done via the ProtonTricks gui, but perhaps the easiest way is via command line. You can run the following one-liner to do it for you, or if you prefer, you can manually run the individual steps noted below (replace "Journey" with the name of your Non-steam game entry, if you called it something else):
APPID=`protontricks -l | grep "Journey" | awk {'print $NF'} | sed 's:^.\(.*\).$:\1:'` ; echo $APPID ; protontricks $APPID xact xact_x64
If you prefer to run this manually, first find the AppID of the Non-Steam Game we added for mo-redirect.exe. In a terminal run(replace "Journey" with the name of your Non-steam game entry, if you called it something else):
protontricks -l | grep "Journey"
The output should look something like below, though your AppID will differ from mine:
Non-Steam shortcut: Skyrim - Journey (3595949753)
With the AppID now known, install the required xact and xact_x64 packages into this Proton environment (use your own AppID from the command above):
protontricks 3595949753 xact xact_x64
This may take a little time to complete, but just let it run the course.
Step 7 - Modlist Specific Steps - Journey TO DELETE?
At this stage, the steps required may differ depending on the Modlist you have chosen, and the mods that the Modlist includes. For Septimus 4, we should only need to install vcredist2022. Unfortunately this isn't available directly through protontricks, so we will have to install it manually. The following one-liner should do everything you need (replace "Septimus" with the name of your Non-steam game entry, if you called it something else):
APPID=`protontricks -l | grep "Septimus" | awk {'print $NF'} | sed 's:^.\(.*\).$:\1:' | tail -1` ; wget https://aka.ms/vs/17/release/vc_redist.x64.exe -O '/home/deck/.local/share/Steam/steamapps/compatdata/'"$APPID"'/pfx/dosdevices/c:/vc_redist.x64.exe' ; protontricks -c 'wine /home/deck/.local/share/Steam/steamapps/compatdata/'"$APPID"'/pfx/dosdevices/c:/vc_redist.x64.exe' $APPID
However, if you aren't keen on that giant command, or just want to do the steps one by one, you can do the following. Firstly, we need to download the vc_redist.x64.exe installer inside the Proton prefix. Run the following command, replacing my Game ID (3595949753) with your own which you can get by running protontricks -l in Konsole:
wget https://aka.ms/vs/17/release/vc_redist.x64.exe -O /home/deck/.local/share/Steam/steamapps/compatdata/3595949753/pfx/drive_c/vc_redist.x64.exe
Then we can enter the shell of our Proton environment:
protontricks 3595949753 shell
If successful, it should display a little C: prompt in your terminal window. Your terminal may misbehave after running the wine command - you can regain control by typing 'reset', even if you can't see the characters as you type.
Finally, run the installer:
wine vc_redist.x64.exe
Check the box to agree, and then click install. It should complete quickly.
Step 8 - Optional: Increase SteamDeck Swap Space, Swappiness and adjust SteamDeck VRAM
This may be optional, but there have been reports of far better stability and performance after increasing the swap space available to the deck when running Modlists. This is an optional step, but if you are experiencing stability issues, it might be worth investigating. How to do so is outside the scope of this guide, but there is plenty of information available elsewhere on how to do it - CryoByte33 has an excellent set of utilities available on github that can take care of this, and more!
TODO - Add links for Deck Swap Size Guide
Conclusion
At last!
If you've read this far, then well done! I'd appreciate a Star for this guide, just to show if I'm on the right track. I'm also open to any feedback, positive or negative.
With NPC Voices fixed, we should now be ready! Click the Play button in Mod Organizer, and wait. This takes quite a bit of time to start. So long, in fact, that I thought it had crashed and I started killing processes etc. But just wait... It took my SteamDeck approximately 3 minutes and 45 seconds before I could interact with the in-game menu. Once it had loaded though, performance was as expected in the menus.
On SteamDeck, I limit FPS and Refresh rate to 40, and it does a pretty good job at maintaining that in the Journey Modlist, though I am still testing more performance tweaks. Other lists may vary, and I do plan to test more as my time allows. I would love to hear your feedback on performance of various lists, and any tweaks that you made!
Once you have started a new game, please follow any additional steps that the wiki for your chosen Modlist asks you to carry out, in terms of mod configuration from inside the game.
As an addition to the disclaimer at the top of this guide, I have no visibility of longer term stability, so save often, and maybe even make backups of your save-games, just in case ;)
If you need help with any of the above, or better yet have another fix, tweak or workaround to help get these Modlists running on Linux, then please do stop by the channel on the Wabbajack Discord, I should be around so just @ me (@omni) on the Wabbajack Discord.
Enjoy!