Omni-guides / Wabbajack-Modlist-Linux

A guide to get Wabbajack Modlists running under Linux/Steam Deck.
192 stars 5 forks source link

Games installation path in registry doesn't match the managed gamepath in MO #12

Closed jwlp93 closed 7 months ago

jwlp93 commented 7 months ago

Hello

Trying to follow the general linux guide, using " Aldrnari " modlist. This shouldn't really matter considering the issue I'm facing, as far as I can tell. Just mentioning it incase.

As the title sais, I'm on a not that uncommon popup in MO2. The issue is that it wont change it on it's own, by pressing yes to the prompt, asking if MO2 should change it to match the managed game path.

My current paths bellow from MO2->settings->paths (not using omni as username, just edited to not show my usual username) Base dir: " Z:/home/omni/Games/Skyrim/Aldrnari/Aldrnari " Managed game: " Z:\home\omni\Games\Skyrim\Aldrnari\Aldrnari\Stock Game\SkyrimSE.exe " Don't mind the Aldrnari within itself folder structure. Just me that takes precautions when using copying software Im not used to.

Screenshot of the prompt: Screenshot from 2024-03-15 16-43-51 Nothing happens pretty much. Think some shell opens when yes is pressed but that's about it. Im back at MO2 not having launched anything look after this. (pops up when launching SKSE)

It works to change this on the windows VM I used to run the wabbajack installer. I'm considering this to be a plausible fix, but I'd rather not have to copy the ~350GB again. However it shouldn't be, since all of this should be changed after moving the install to the linux-machine, as far as I'm aware.. And that's about how far my train of thought runs.

New to linux (ubuntu 22 LTS), so dumbing stuff down a bit is very welcome.

Edit: GE-Proton-9.1 is used in Steam, to clarify that I should be using an MO2 2.5.0 compatible Proton version.

Omni-guides commented 7 months ago

Hello!

Thankfully, that pop up is relatively easy to deal with - it comes from an MO2 plugin that does not function via Proton, but isn't needed and is safe to remove.

You can click on either Yes or No (it doesn't matter since the plugin can't handle the registry correctly via Proton) and the game should then continue to launch (unless there is something else wrong). To stop it popping up at all, you can delete the plugin file, e.g:

rm /home/omni/Games/Skyrim/Aldrnari/Aldrnari/plugins/FixGameRegKey.py

This step isn't needed for many modlists, but is actually a step I carry out in the Automation Script.

It sounds like there is something else wrong, however, if the game still doesn't launch after clicking Yes - but it may be easier to troubleshoot via Discord?

Edit: Actually, you just mentioned that you use Ubuntu - this uses a different pathing for Steam games than most other distros, and I'm still working on adding compatibility for that to the automation script (I didn't have a Debian/Ubuntu based system to hand! But maybe by the end of the weekend I will have added support for Ubuntu/Debian systems)

jwlp93 commented 7 months ago

Tried renaming the plugin (added a 1 to the name), the popup is still there. What happens after is that it starts the vfs, some other stuff.. and tries to launch SkyrimSE.exe. This is where it just goes back to doing nothing as if I never pressed launch SKSE. Hard to see all the stuff it does inbetween, since its a fast operation, but you likely know what I'm reffering to, since the process is the same for all MO2 SKSE launches.

Did not use the automationscript. Is it needed? Thought it did what the guides suggested pretty much. If not, does it change anything regarding my choise of distro?

Discord.. not sure if I still have it. So seldom use it that I tend not to have it installed. But can be done if it would be helpful. Guessing Flatpak version is recommended?

Edit: MOinterfacelog might help I belive. mo_interface.log

Omni-guides commented 7 months ago

No pressure to go to Discord - can just be faster sometimes since it's real time - I actually use Vesktop instead of the official client, which i find can be buggy on KDE/Wayland. Either would do.

Anyway, we can try to resolve here. You are correct that the automation script does essentially the same steps as the written guide - however, the 'General Linux Guide' is hard to pinpoint as some individual modlists require a bit more.

For example, I'd imagine that Aldrnari comes with ENB - so you will likely need to include some additional Wine Components installed via protontricks for that to work, some guidance on that here, but i'll give you the full command below.

Some lists, but not many, also require dotnet6 and/or dotnet7 installed in the same way - they are relatively small, in the grand scheme of the modlist size, so I just tend to go with "better to have it and not need it, than need it and not have it" approach, where I think it is safe to do so.

So, as a next step, I'd try installing the following, in the same way the guide installs xact/xact_x64, e.g:

APPID=`protontricks -l | grep -i "Skyrim - AVO" | awk {'print $NF'} | sed 's:^.\(.*\).$:\1:'` ; protontricks --no-bwrap $APPID d3dx11_43 d3dcompiler_47 d3dcompiler_43 dotnet6 dotnet7

obviously replacing "Skyrim - AVO" with whatever you called the Steam Game entry. Or you can select them to install manuall via protontricks --gui.

Let's see where those additions get you, and take it from there.

jwlp93 commented 7 months ago

No difference sadly. Not sure if it installs correctly since it sais things like:

002c:fixme:winediag:loader_init Please mention your exact version when filing bug reports on winehq.org. 0070:err:wineusb:DriverEntry Failed to initialize Unix library, status 0xc0000135. 0070:err:ntoskrnl:ZwLoadDriver failed to create driver L"\\Registry\\Machine\\System\\CurrentControlSet\\Services\\wineusb": c0000135 0034:fixme:service:scmdatabase_autostart_services Auto-start service L"wineusb" failed to start: 126 0090:fixme:hid:handle_IRP_MN_QUERY_ID Unhandled type 00000005

0130:fixme:oleacc:find_class_data unhandled window class: L"Static"

But the install window pops up and seems to do what it's meant to. This is jibberjabber to me but figured it might mean something.

Do check my prior comment though, specifically the edit at the bottom with the MO2Log file. I think that might get you some insight. There are errors there. but incase you preffer i ctrl-v: (still editing out my username) [2024-03-15 19:38:41.461 D] command line: '"Z:\home\omni\Games\Skyrim\Aldrnari\Aldrnari\ModOrganizer.exe"' [2024-03-15 19:38:41.461 I] starting Mod Organizer version 2.4.4 revision 1df1ea5e in Z:/home/omni/Games/Skyrim/Aldrnari/Aldrnari, usvfs: 0.5.6.0 [2024-03-15 19:38:41.461 I] data path: Z:/home//Games/Skyrim/Aldrnari/Aldrnari [2024-03-15 19:38:41.461 I] working directory: Z:/home//Games/Skyrim/Aldrnari/Aldrnari [2024-03-15 19:38:41.461 D] timing: MOApplication setup() 0 ms [2024-03-15 19:38:41.489 W] 'Z:/home//Games/Skyrim/Aldrnari/Aldrnari/loot/loot.dll' seems to be missing, an antivirus may have deleted it [2024-03-15 19:38:41.489 W] 'Z:/home//Games/Skyrim/Aldrnari/Aldrnari/loot/lootcli.exe' seems to be missing, an antivirus may have deleted it [2024-03-15 19:38:41.795 E] [error.cpp:24] Failed to read steam library from "{'path': 'Z:\\home\\omni\\.local\\share\\Steam'}", TypeError('expected str, bytes or os.PathLike object, not dict') [2024-03-15 19:38:41.795 E] [error.cpp:24] Failed to read steam library from "{'path': 'Z:\\home\\ \\.local\\share\\Steam'}", TypeError('expected str, bytes or os.PathLike object, not dict') [2024-03-15 19:38:42.055 I] using game plugin 'Skyrim Special Edition' ('SkyrimSE', variant (none), steam id '489830') at Z:/home//Games/Skyrim/Aldrnari/Aldrnari/Stock Game [2024-03-15 19:38:43.278 E] EnableNonClientDpiScaling() failed for HWND 0x100a2 (120) (Call not implemented.) [2024-03-15 19:38:43.792 E] EnableNonClientDpiScaling() failed for HWND 0x100d4 (120) (Call not implemented.) [2024-03-15 19:38:44.191 I] update available: 2.4.4 -> 2.5.0 [2024-03-15 19:38:44.852 E] EnableNonClientDpiScaling() failed for HWND 0x800aa (120) (Call not implemented.) [2024-03-15 19:38:47.890 E] EnableNonClientDpiScaling() failed for HWND 0x900aa (120) (Call not implemented.) [2024-03-15 19:38:51.048 E] EnableNonClientDpiScaling() failed for HWND 0x800b6 (120) (Call not implemented.) [2024-03-15 19:38:54.224 E] EnableNonClientDpiScaling() failed for HWND 0x900b6 (120) (Call not implemented.)

Omni-guides commented 7 months ago

Yes, there is a whooooole lot of jibberjabber when it comes to running things via Proton/Wine. It's not always easy to decipher what is a 'normal' or 'okay' error and what isn't...

The mo2 log and output from the command both look 'normal', from what I've seen, mostly to do with a font MO2 is trying to use. Wouldn't be causing the issue you are seeing.

A couple of things:

/home/user/Games/Skyrim/Aldrnari/Aldrnari

and the Executable path set in MO2 is set to:

Z:\home\user\Games\Skyrim\Aldrnari\Aldrnari\Stock Game\skse64_loader.exe
/home/user/Games/Skyrim/Aldrnari/Aldrnari/ModOrganizer.exe

If all of the above checks out, let's see if anything is logged.

The modlist may come with Crashlogger, in which case you can likely find a crashlog file in something like:

/home/deck/SteamLibrary/steamapps/compatdata/3743981985/pfx/drive_c/users/steamuser/My Documents/My Games/Skyrim Special Edition/SKSE/crash-$DATE.log

Though as mentioned, Ubuntu stores it's steam data in a different path - maybe /home/user/.steam ? for the above path, $APPID will by the APPID of Aldrnari (you can get this from protontricks -l) and $DATE will be the date and time of the crash.

You could try adding the following to the launch commands for the Aldrnari entry in steam - this enables Proton Logging - it's not always that useful, but you never know:

PROTON_LOG=1 %command%

This will generate a log file in your user home directory called steam-.log where will be a number of characters..

The crashlog generated by Crashlogger would be far more useful, but if the process isn't even getting far enough to load Crashlogger, then nothing may be generated..

jwlp93 commented 7 months ago

/home/ /.local/share/Steam/steamapps/compatdata/3718127855/pfx/drive_c/users/steamuser/Documents/My Games/Skyrim Special Edition/SKSE Hosts 2 files named " skse_loader.log " and " skse_steam_loader.log " Neither seem to have useful info. So.. guessing I do not have that one. But I'll try to figure out how to generate one..

The latter log you had me make: steam-15969237539605184512.log

Edit: Cannot find any log created from installing " Trainwreck - A Crash Logger " into the modlist. So.. think that may be a lost cause. Edit2: Want me to up the logging in MO2? That is an option. No clue if it's helpful but it's an idea.

Omni-guides commented 7 months ago

As I expected, the Proton log isn't very helpful, and it's unfortunate that there's no crashlog genereated.

However, I had a quick look - as I said, Aldrnari isn't one I've tried yet..

But the github for the modlist does say:

"If when doing the above instructions; MO2 locks itself then unlocks itself after a few seconds, this means you have not downloaded the .NET 5.0 as instructed above. So please ensure you have .NET v5.0 installed (even if you have .NET v6.X!!)."

Which is interesting. You could try installing dotnet 5 just like we did with dotnet 6 and 7 earlier?

jwlp93 commented 7 months ago

Command exectuted and it's output bellow. Already installed is how I interpret it. But I may be wrong.

APPID=protontricks -l | grep -i "Skyrim - Aldrnari" | awk {'print $NF'} | sed 's:^.\(.*\).$:\1:' ; protontricks --no-bwrap $APPID d3dx11_43 d3dcompiler_47 d3dcompiler_43 dotnet5 Using winetricks 20230212-next (protontricks) - sha256sum: 0101cf7982b23c0a25f615de9f33a5d8c7928addbf2f391c2fc6ee690634861e with wine-9.0 (Staging) and WINEARCH=win64 Executing w_do_call d3dx11_43 d3dx11_43 already installed, skipping Executing w_do_call d3dcompiler_47 d3dcompiler_47 already installed, skipping Executing w_do_call d3dcompiler_43 d3dcompiler_43 already installed, skipping Unknown arg dotnet5 Usage: /app/bin/winetricks [options] [command|verb|path-to-verb] ... Executes given verbs. Each verb installs an application or changes a setting.

Options: --country=CC Set country code to CC and don't detect your IP address -f, --force Don't check whether packages were already installed --gui Show gui diagnostics even when driven by commandline --gui=OPT Set OPT to kdialog or zenity to override GUI engine --isolate Install each app or game in its own bottle (WINEPREFIX) --self-update Update this application to the last version --update-rollback Rollback the last self update -k, --keep_isos Cache isos (allows later installation without disc) --no-clean Don't delete temp directories (useful during debugging) --optin Opt in to reporting which verbs you use to the Winetricks maintainers --optout Opt out of reporting which verbs you use to the Winetricks maintainers -q, --unattended Don't ask any questions, just install automatically -r, --ddrescue Retry hard when caching scratched discs -t --torify Run downloads under torify, if available --verify Run (automated) GUI tests for verbs, if available -v, --verbose Echo all commands as they are executed -h, --help Display this message and exit -V, --version Display version and exit

Commands: list list categories list-all list all categories and their verbs apps list list verbs in category 'applications' benchmarks list list verbs in category 'benchmarks' dlls list list verbs in category 'dlls' fonts list list verbs in category 'fonts' settings list list verbs in category 'settings' list-cached list cached-and-ready-to-install verbs list-download list verbs which download automatically list-manual-download list verbs which download with some help from the user list-installed list already-installed verbs arch=32|64 create wineprefix with 32 or 64 bit, this option must be given before prefix=foobar and will not work in case of the default wineprefix. prefix=foobar select WINEPREFIX=/home/ /.var/app/com.github.Matoking.protontricks/data/wineprefixes/foobar annihilate Delete ALL DATA AND APPLICATIONS INSIDE THIS WINEPREFIX

Omni-guides commented 7 months ago

It didn't understand dotnet5:

"Unknown arg dotnet5"

Unfortunately, it doesn't look like you can install dotnet5 directly from protontricks for whatever reason (it jumps from 4.8 to 6)

It's an oddly specific version requirement for a list. Let me see if I can work out a way of installing dotnet 5.

jwlp93 commented 7 months ago

Ahh, I see now. Only option then, I presume, would be to do what protontricks does manually. Which I have no clue how to do.

Yeah, and the fact that the author wants both versions to be installed.. But I've seen that before. Think I've used mods that require it aswell, when doing the modding myself.

Thank you for taking your time to deal with this. And making the guide ofcourse.

Another option I guess would be to try to figure out how to do all this with Lutris/Bottles. But I think that might force me to redo the whole process, and plausibly figure everything out on my own..

Omni-guides commented 7 months ago

Alright, this is a semi-manual way, and a bit of a hastily thrown-together couple of commands, but here goes. There are two requirements according to the modlist wiki, the "Run Console Apps" and "Run Desktop Apps", both should be covered by the following commands:

APPID=`protontricks -l | grep -i "Aldrnari" | awk {'print $NF'} | sed 's:^.\(.*\).$:\1:' | tail -1` ; wget https://download.visualstudio.microsoft.com/download/pr/a0832b5a-6900-442b-af79-6ffddddd6ba4/e2df0b25dd851ee0b38a86947dd0e42e/dotnet-runtime-5.0.17-win-x64.exe -O '/home/deck/.local/share/Steam/steamapps/compatdata/'"$APPID"'/pfx/drive_c/dotnet-runtime-5.0.17-win-x64.exe' ; protontricks --no-bwrap -c 'wine /home/deck/.local/share/Steam/steamapps/compatdata/'"$APPID"'/pfx/drive_c/dotnet-runtime-5.0.17-win-x64.exe /Q' $APPID

APPID=`protontricks -l | grep -i "Aldrnari" | awk {'print $NF'} | sed 's:^.\(.*\).$:\1:' | tail -1` ; wget https://download.visualstudio.microsoft.com/download/pr/3aa4e942-42cd-4bf5-afe7-fc23bd9c69c5/64da54c8864e473c19a7d3de15790418/windowsdesktop-runtime-5.0.17-win-x64.exe -O '/home/deck/.local/share/Steam/steamapps/compatdata/'"$APPID"'/pfx/drive_c/windowsdesktop-runtime-5.0.17-win-x64.exe' ; protontricks --no-bwrap -c 'wine /home/deck/.local/share/Steam/steamapps/compatdata/'"$APPID"'/pfx/drive_c/windowsdesktop-runtime-5.0.17-win-x64.exe /Q' $APPID

Sorry they are so big and convoluted.

jwlp93 commented 7 months ago

It launched! After a while. However.. New issue! :D Cant find some esp, is not loaded. and the window is like 1024x850 or something. But the latter is definently on my end due to the VM being that resolution. The esp issue shall be a joy to figure out, considering there are 2011 of them in the list, and might even be one that is merged...

Edit: Nevermind on the esp issue. That was just because I got impatient waiting for the gamewindow to appear, which apparently is bad. Worked on 2nd try. (takes 1min to appear) Just my resolution for it that is an issue which also should be fun to figure out where to edit.

But you have definently found the solution to my issue. Thanks for the help!

Omni-guides commented 7 months ago

The Res and Full Screen can usually be configured via skyrimprefs.ini (in INI Editor in MO2, Tools menu), OR by the SSE Display Tweaks mod - you can check the Eldryn guide for an example of editing this.

I tend to just do both so I know it's set! Some lists seem to favour skyrimprefs.ini, and others SSE Display Tweaks.

As for the ESP issue, I regularly see all sorts of weird issues on first "successful" launch, that never appear again. I can only attribute it to stuff being written to the proton prefix that aren't read correctly until second launch.

jwlp93 commented 7 months ago

It's not there that the list configures it, sadly. But, I'm used to modding skyrim on windows, so should not be that big of a deal. Just a small annoyance, which will occur whenever it isn't your own list.

Yeah I play around with enb.inis and such aswell so.. in due time I shall find where it is. The list uses borderless fullscreen (I think it's called) which iirc should give me a clue on where the resolution is set..

Yeah I think it's that I opened the system monitor to see if the game ran or not, which then made the game not load properly, but might just be Skyrim modding being what it is.

Omni-guides commented 7 months ago

According to Load Order Library, Aldrnari does include SSE Display Tweaks, but it could easily be out of date.

Anyway, it sounds like you're most of the way there. Feel free to let me know if you still have any issues, otherwise close out this Github issue when you are happy.

Glad we worked out the problem - I will use this to add a modlist-specific step (to install dotnet5) in the Automation Script for when Aldrnari is detected as the modlist.

Enjoy!

jwlp93 commented 7 months ago

Yeah, but I preffer to have as little conflicting configuration in the ini-files as I possibly can. However it was me being to hasty looking through skyrimprefs.ini. (thats where it was)

By the way, I do not recommend doing this type of list in a vm. Had 12 cores and 40GB of ram dedicated to it. Took over 25 hours to complete the wabbajack installation, with everything already downloaded. Incase you want to add info regarding the list.

Thanks again, I shall try to figure out how to mark this as solved.