About ReShade for OpenMW on Linux

Learn about OpenMW mod compatibility, check for problematic mods, discuss issues, and give us feedback about your experience with modded OpenMW.
Post Reply
Nyghriiph
Posts: 1
Joined: 02 Sep 2020, 15:32

About ReShade for OpenMW on Linux

Post by Nyghriiph » 05 Sep 2020, 02:18

Here's how to do it for Linux

If you don't know what Reshade is:
Reshade is used to run on top of your games, to ..well "reshade" your game, which will makes it looks cool!
It uses a way of injecting information to your game through DLLs.

It is also very good at replacing MGE XE for OpenMW, and you can already find presets next to some lighting enhancement mods on Nexus (such as Di.Still.Ed).

Obviously this is really easy to install on Windows, as an installer will do everything for you. But what about Linux?


Here's what's required:
- OpenMW or tes3mp for win64 available on their respective Github pages
- Wine. It's version should be higher than 4.3
- (highly recommended) using proprietary GPU Driver (if you're using Nvidia)

(note: apparently wine also runs on Mac, so i guess this way should works for Mac too)

Step By Step:

1- Create a folder and extract your OpenMW, install if needed (using wine) .

2- Try to start it (after importing your Morrowind.ini file or tinkering your openmw.cfg) again with wine. Normally this should work minus the mouse sensitivity that will be lightning speed, which can be changed on settings.

3- Normally, you would just download extract reshade.exe , but i did the package, with everything needed inside, so download this : https://firobe.fr/files/reshade.7z (do it yourself if you don't trust it). Extract the package in your OpenMW/tes3mp folder.

4- When this is done, you'll have to add some DLL overrides in Wine. Launch winecfg, go to "Library" tab and add the following overrides:
- opengl (native, builtin)
- opengl32 (native, builtin) (if wine doesn't naturally find it , don't worry, and register them)
- d3d9 (native, builtin)
- d3d8 (native, builtin)
- d3dcompiler_47 (native)
(this will inform wine to read Reshade's DLLs with your game.)

5- Start your game. If it works you should have the grey bar on top of your screen that tells you that reshade is indeed here.

6- Go further into the game until you can actually play, then try shift+F2 to open reshade menu.
When this is opened, change the settings so that the shaders can be found on the reshade-shaders/Shaders and the textures on reshade-shaders/Textures. So you have to write the full path to those folders in the two "Search Path" sections.

(On the package i gifted two presets. One goes well with the mod Di.Still.ed (DefaultPreset.ini) (you can find it on nexus) and one is Darkshade Reshade from SilentNight)

7- Congrats! You're done.

Example without Reshade:
Spoiler: Show
Now With Reshade:
Spoiler: Show

If you have problems to fix, take a look below vvvvv

Lets now talk about wine pros and cons:

PROS:
Strangely enough i only found a single con, and its not a problem, really.
It works better than on native linux install, don't ask me why , i don't know. it works.
It improved the physics engine running, without having to add Physics FPS limitations.

Its really beautiful you'll see the difference, and again surprisingly enough, even with 100+ big mods, normal maps mod and a 2K textures, I still reach 60FPS a bit everywhere. The lowest I reach is 30FPS , (however 60 doesnt mean it can't go higher, but i just capped my FPS to 60)

CONS:
It works well, but you will probably have (with reshade) the need to restart the app once or twice, as reshade will sometimes take time to load, and crash before having the time to load.
Iif you happen to have this problem follow this :
- when you select your preset.ini, or your custom config, take a screenshot of the Reshade menu, so that you can actually see your exact list of .fx you're using.
- then just make a "Backup" folder and put every shaders (.fx files) into this folder except the ones that your preset is using and every .fxh as they are needed by Reshade.
- this way, Reshade will take less time to load and so, and it'll have less chance to crash

Another problem is that tabbing out with reshade is a 90% of crashing. I recommend finding a way to go around that. It has less chances to crash if you do the steps for the previous problem.

Each time you load a big area you will lag just so that the rendering can be done . It's alright though.

The X server can sometimes take the cursor for both screens, but that can be fixed easily by just pressing ESC twice on the game.

Also with XFCE I also have a little problem in dual screen, that when you use reshade menu, the cursor doesn't want to go back inside the game as view camera.
However its easy enough to repair. Left click anywhere on the secondary display, (normally the game shouldn't tab-out) then left click on main display again (on your game)

If you have any lag, don't forget that if you press F3 on openmw or tes3mp, you will have access to the FPS display. Its useful to know where you're having problem in game, you will see drops of frames when you'll load a huge exterior cells, waiting some seconds will fix it , you will see it fixed with the fps display , as it will eventually come back to normal

Anyway, i hope this will help some of you. I know its quite long, but its totally worth it!

User avatar
lysol
Posts: 1445
Joined: 26 Mar 2013, 01:48
Location: Sweden

Re: About ReShade for OpenMW on Linux

Post by lysol » 05 Sep 2020, 17:13

Thanks a bunch, I bet a lot of people will find this very helpful. I'll sticky this so that people can easily find it. I think I'll move it to "Mod Compatibility" too, unless someone has an issue with that.
Normal mapped texture replacers, exclusive for OpenMW:
My Nexus page

User avatar
psi29a
Posts: 4917
Joined: 29 Sep 2011, 10:13
Location: Belgium
Gitlab profile: https://gitlab.com/psi29a/
Contact:

Re: About ReShade for OpenMW on Linux

Post by psi29a » 07 Sep 2020, 08:34

In case anyone is interested, there is a native linux vulkan reshade like thingy called vkBasalt.

https://github.com/DadSchoorse/vkBasalt
So is vkBasalt just a reshade port for linux?
Not really, most of the code was written from scratch. vkBasalt directly uses reshade source code for the shader compiler (thanks @crosire), but that's about it.

Post Reply