Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Scripted FOMODs not working correctly #23

Closed
ajventer opened this issue May 2, 2020 · 42 comments
Closed

Scripted FOMODs not working correctly #23

ajventer opened this issue May 2, 2020 · 42 comments
Labels
bug Something isn't working pure-wine Only applicable to pure Wine installations

Comments

@ajventer
Copy link

ajventer commented May 2, 2020

This problem is subtle and easy to miss- but FOMOD based mods with menus do not work with Vortex as set up by this script.
No menu shows up - and the mod ends up merely getting extracted instead of allowing the user to select components. The trouble is that this places the component directories into the game- which are not in a functional install and the mod simply will not work like this as the files are all in the wrong paths.

This type of mod is especially common with the previous generation Bethesda games (Oblivion, New Vegas, Fallout 3) - and those games are essentially unmoddable with vortex unless FOMODs and OMODS work correctly.
There are a number of additional requirements that the tool used for installing these mods needs - including winetricks windowscodecs, though I haven't been able to compile a full and accurate list.

The problem also affects MO2, which prints the command it's trying to run into the logs, by then tryning to run this manually and analysing the errors you should be able to get a complete list of dependencies.
Note: these work correctly under windows, the failure appears to be specific to wine and is resolvable with the correct set of dependencies identified and included.

@rockerbacon
Copy link
Owner

rockerbacon commented May 4, 2020

Everything is working fine on my end. Could you give me some information:

  1. What distro are you using?
  2. What version of Wine?
  3. What version of Vortex?
  4. Could you point out a mod which is giving you problems? Preferably one for Skyrim, Skyrim SE or Fallout New Vegas
  5. What is the output of the logs you mentioned?

@rockerbacon rockerbacon added the question Further information is requested label May 4, 2020
@ajventer
Copy link
Author

ajventer commented May 4, 2020

  1. I am using Manjaro
  2. The version installed by this script in lutris - 5.6.2 I think ?
  3. Latest from this script 1.15 I believe - I reinstalled it just a few days ago.
  4. I have never encountered this issue with any mods on Skyrim or SkyrimSE - I believe the issue is limited to Oblivion and possibly Fallout3/NV - and may even be specific to OMOD formats in Vortex (it's definitely more widespread in MO2).
  5. I'm afraid I no longer have a copy of those logs, I ended up redoing my New Vegas using FOMM because I couldn't get a stable setup. I am busy reinstalling Oblivion at the moment, once it's there I'll run through a modlist I know contains mods that caused the issue, and check the content of each installed mod. If I am able to reproduce the issue I will reply to this with the name of an affected mod, otherwise I will close the issue as fixed/a former problem on my side.

@ajventer
Copy link
Author

ajventer commented May 4, 2020

Unfortunately the bug still exists.
Here is an example of an affected mod: https://www.nexusmods.com/oblivion/mods/26389?tab=files
The mod is supposed to show a menu so the user can select which theme to install, instead it simply gets extracted without ever showing the menu creating a broken install.

@rockerbacon
Copy link
Owner

The version installed by this script in lutris - 5.6.2 I think ?

Make sure it's using lutris-5.2-x86_64 by right clicking on it in Lutris > Configure > Runner Options. There are known problems with Wine versions above 5.2.

I have never encountered this issue with any mods on Skyrim or SkyrimSE - I believe the issue is limited to Oblivion and possibly Fallout3/NV - and may even be specific to OMOD formats in Vortex (it's definitely more widespread in MO2).

Might be specific to OMODs indeed, I've never used Vortex too heavily on anything other than Skyrim Special Edition.

My focus is currently on Mod Organizer, for now. I will have a nearly flawless release of it today for Skyrim and adapting to other games would take no more than a few minutes (if nothing weird happens). Maybe you want to wait a little longer to see if the problem is resolved in this new release.

@ajventer
Copy link
Author

ajventer commented May 4, 2020

I checked, that is indeed the version it is using.

It's fine if you want to rather focus on MO2 - ultmately it's the nicer one to have, though I would be pleasantly surprised if you can solve the issue of using MO2 with Proton-games without having to install a crack.
That said - the issue seems to affect MO2 as well, where I also definitely had issues with scripted FOMODS. MO2 has two FOMOD plugins, one is internal and only handles XML FOMODS, the other is external and actually calls out to the commandline version of Nexus Mod Manager (it's called NCC) and THAT is what handles the C-sharp scripted FOMODs and OMODs in MO2 - that did not work on my last MO2 setup without a lot of tweaking to find dependencies.

So if you are focussing on MO2, maybe make a point of testing some. I definitely had the issue with New Vegas mods on MO2.

@rockerbacon
Copy link
Owner

I would be pleasantly surprised if you can solve the issue of using MO2 with Proton-games without having to install a crack.

That is already solved, you can check #24 for more details.

So if you are focussing on MO2, maybe make a point of testing some. I definitely had the issue with New Vegas mods on MO2.

I'm planning a new Skyrim playthrough so I'll definitely be testing a lot of FOMODs in the following days. I'll also see if I can get my hands on some problematic New Vegas OMODs, if you find any please do send them my way.

@ajventer
Copy link
Author

ajventer commented May 5, 2020

I read through #24 - still not sure how you solved the DRM when launching proton outside steam but I'll take your word for it :)

BTW: on the Nexus Links issue there are three possible ways you can approach it, I'll share what I know, see what fits your design best.

  • Use one ModOrganizer instead of multiple. MO2 is able ot handle multiple games and keep everything separate (not compatible with the Portable method).
  • (What I did back when MO1 was current): let your nxm handler launch a script which then pops up a dropdown menu using zenity. This menu lists all the games that are known to have MO installs for, and the user can select one and this gets launched.
  • The actual executable that you need to associate for MO2 - nxmhandler.exe - if you run it by itself with no parameters will pop up a form where you can associate particular games with particular executables. That is to say, it ID's the game from the nexus link and passes the download to MO2 based on this registered executable. You could use this to point nxmhandler to different portable MO2 installs - but I think this one would require them all to share one prefix.

@rockerbacon
Copy link
Owner

I read through #24 - still not sure how you solved the DRM when launching proton outside steam but I'll take your word for it :)

I am still using Steam, Proton itself calls Steam internally. All I did was provide Proton with a few environment variables which are normally only available when it is called by the Steam Client.

The problem you're mentioning might have been caused by attempting to bypass the original entry point and using Proton's Wine implementation directly.

  • (What I did back when MO1 was current): let your nxm handler launch a script which then pops up a dropdown menu using zenity. This menu lists all the games that are known to have MO installs for, and the user can select one and this gets launched.

I appreciate the suggestion. I already had something similar in mind but with an automated redirection, just finished testing the implementation.

If you have other suggestions feel free to leave o comment on #24.

@rockerbacon
Copy link
Owner

@ajventer I've made a pre-release with an MO2 installer for Fallout New Vegas. Could you check later if your issues are resolved with this new installer? I would like to solve your issue before moving on to the Oblivion and Fallout 3 installers.

GitHub is going through some technical difficulties as of writing this so you may have to give it a little time before you can get things to download.

@ajventer
Copy link
Author

ajventer commented May 8, 2020

Hi,
I'll be able to test it out tomorrow, but I'll try out some mods that failed before on a clean install with it and let you know the results.

:)

@ajventer
Copy link
Author

ajventer commented May 8, 2020

Hi, I had a moment so I read your README for the FNV thing so long, I can't do this test for you I'm afraid - I don't own a STEAM version of F:NV - I got mine from GOG.
If/When you get to a GOG installer for F:NV+MO2 I'll be happy to test it for you though.

It does change some big things - for one, I have no idea how to get it to run with PROTON (I know you CAN run third-party games with PROTON but I've never managed to get it to work), which is pretty key to how that setup is done.

I do own OBLIVION on steam though - which is effectively the same engine/era so if you do an Oblivion version of the same I'd gladly test that for you.

@rockerbacon
Copy link
Owner

@ajventer Support for Oblivion was added in #28, with a release in 2.3.0.

I've adjusted the installer to make it easier to add pure Wine support later. For now selecting the Wine option will just raise an error.

My next objective is to get Wine working so you'll be able to use your GOG games. I'll make sure to update this issue when I get it done.

@ajventer
Copy link
Author

ajventer commented May 10, 2020

Okay, so I installed it for Oblivion from 2.3.0.
Some notes:

  1. It would be useful to rename the menu entry in Lutris to match the GAME, likewise perhaps even the install path, rather than MO2. Since your setup requires a different MO2 for any managed game, and most people will be playing more than one game - that will work a lot better.
  • Likewise the launcher script you installe for the NXM handler is MO2 generic, I already overwrite it on my system with my own script so I can just launch into yours but as you prepare to support multiple games either that script must be multi-game capable, or you need to rename it for each game.
  1. MO2 shows a bunch of errrors in the log on startup, I'll paste them below.
  2. MO2 reports an out of date MenuQue plugin included with OBSE.

Log errors:
[2020-05-10 08:38:30.968 I] starting Mod Organizer version 2.2.2.1 revision 6c6734fc in Z:/games/mod-organizer-2/ModOrganizer2, usvfs: 0.4.4.6
[2020-05-10 08:38:31.116 I] data path: Z:/games/mod-organizer-2/ModOrganizer2
[2020-05-10 08:38:31.116 D] this is a portable instance
[2020-05-10 08:38:31.117 I] working directory: Z:/games/mod-organizer-2
[2020-05-10 08:38:31.122 E] locator->ConnectServer() failed for namespace 'root\SecurityCenter2', 0x8004100e
[2020-05-10 08:38:31.125 E] locator->ConnectServer() failed for namespace 'root\SecurityCenter', 0x8004100e
[2020-05-10 08:38:31.136 E] get_FirewallEnabled failed, 0x80004001
[2020-05-10 08:38:31.155 E] GetFileVersionInfoSizeW() failed on 'C:\windows\system32\kernelbase.dll', Resource data not found. (0x714)
[2020-05-10 08:38:31.321 E] GetFileVersionInfoSizeW() failed on 'C:\windows\system32\sechost.dll', Resource data not found. (0x714)
[2020-05-10 08:38:31.331 E] GetFileVersionInfoSizeW() failed on 'C:\windows\system32\shcore.dll', Resource data not found. (0x714)
[2020-05-10 08:38:31.347 E] GetFileVersionInfoSizeW() failed on 'C:\windows\system32\NETAPI32.dll', Resource data not found. (0x714)
[2020-05-10 08:38:31.349 E] GetFileVersionInfoSizeW() failed on 'C:\windows\system32\USERENV.dll', Resource data not found. (0x714)
[2020-05-10 08:38:31.350 E] GetFileVersionInfoSizeW() failed on 'C:\windows\system32\WINMM.dll', Resource data not found. (0x714)
[2020-05-10 08:38:31.350 E] GetFileVersionInfoSizeW() failed on 'C:\windows\system32\msacm32.dll', Resource data not found. (0x714)
[2020-05-10 08:38:31.352 E] GetFileVersionInfoSizeW() failed on 'C:\windows\system32\api-ms-win-crt-runtime-l1-1-0.dll', Resource data not found. (0x714)
[2020-05-10 08:38:31.353 E] GetFileVersionInfoSizeW() failed on 'C:\windows\system32\api-ms-win-crt-heap-l1-1-0.dll', Resource data not found. (0x714)
[2020-05-10 08:38:31.353 E] GetFileVersionInfoSizeW() failed on 'C:\windows\system32\api-ms-win-crt-string-l1-1-0.dll', Resource data not found. (0x714)
[2020-05-10 08:38:31.353 E] GetFileVersionInfoSizeW() failed on 'C:\windows\system32\api-ms-win-crt-stdio-l1-1-0.dll', Resource data not found. (0x714)
[2020-05-10 08:38:31.353 E] GetFileVersionInfoSizeW() failed on 'C:\windows\system32\api-ms-win-crt-convert-l1-1-0.dll', Resource data not found. (0x714)
[2020-05-10 08:38:31.354 E] GetFileVersionInfoSizeW() failed on 'C:\windows\system32\api-ms-win-crt-locale-l1-1-0.dll', Resource data not found. (0x714)
[2020-05-10 08:38:31.355 E] GetFileVersionInfoSizeW() failed on 'C:\windows\system32\api-ms-win-crt-filesystem-l1-1-0.dll', Resource data not found. (0x714)
[2020-05-10 08:38:31.355 E] GetFileVersionInfoSizeW() failed on 'C:\windows\system32\api-ms-win-crt-time-l1-1-0.dll', Resource data not found. (0x714)
[2020-05-10 08:38:31.355 E] GetFileVersionInfoSizeW() failed on 'C:\windows\system32\api-ms-win-crt-environment-l1-1-0.dll', Resource data not found. (0x714)
[2020-05-10 08:38:31.355 E] GetFileVersionInfoSizeW() failed on 'C:\windows\system32\api-ms-win-crt-math-l1-1-0.dll', Resource data not found. (0x714)
[2020-05-10 08:38:31.356 E] GetFileVersionInfoSizeW() failed on 'C:\windows\system32\api-ms-win-crt-utility-l1-1-0.dll', Resource data not found. (0x714)
[2020-05-10 08:38:31.373 E] GetFileVersionInfoSizeW() failed on 'C:\windows\system32\usp10.dll', Resource data not found. (0x714)
[2020-05-10 08:38:31.375 E] GetFileVersionInfoSizeW() failed on 'C:\windows\system32\dhcpcsvc.DLL', Resource data not found. (0x714)
[2020-05-10 08:38:31.375 E] GetFileVersionInfoSizeW() failed on 'C:\windows\system32\ncrypt.dll', Resource data not found. (0x714)
[2020-05-10 08:38:31.376 E] GetFileVersionInfoSizeW() failed on 'C:\windows\system32\Secur32.dll', Resource data not found. (0x714)
[2020-05-10 08:38:31.379 E] GetFileVersionInfoSizeW() failed on 'C:\windows\system32\jsproxy.dll', Resource data not found. (0x714)
[2020-05-10 08:38:31.380 E] GetFileVersionInfoSizeW() failed on 'C:\windows\system32\DWrite.dll', Resource data not found. (0x714)
[2020-05-10 08:38:31.383 E] GetFileVersionInfoSizeW() failed on 'C:\windows\system32\dxva2.dll', Resource data not found. (0x714)
[2020-05-10 08:38:31.383 E] GetFileVersionInfoSizeW() failed on 'C:\windows\system32\WTSAPI32.dll', Resource data not found. (0x714)
[2020-05-10 08:38:31.406 E] GetFileVersionInfoSizeW() failed on 'C:\windows\system32\api-ms-win-core-synch-l1-2-0.dll', Resource data not found. (0x714)
[2020-05-10 08:38:31.406 E] GetFileVersionInfoSizeW() failed on 'C:\windows\system32\api-ms-win-core-fibers-l1-1-1.dll', Resource data not found. (0x714)
[2020-05-10 08:38:31.407 E] GetFileVersionInfoSizeW() failed on 'C:\windows\system32\setupapi.dll', Resource data not found. (0x714)
[2020-05-10 08:38:31.408 E] GetFileVersionInfoSizeW() failed on 'C:\windows\system32\Kerberos.dll', Resource data not found. (0x714)
[2020-05-10 08:38:31.408 E] GetFileVersionInfoSizeW() failed on 'C:\windows\system32\api-ms-win-core-localization-l1-2-1.dll', Resource data not found. (0x714)
[2020-05-10 08:38:31.411 E] GetFileVersionInfoSizeW() failed on 'C:\windows\system32\wintab32.dll', Resource data not found. (0x714)
[2020-05-10 08:38:31.429 E] GetFileVersionInfoSizeW() failed on 'C:\windows\system32\wbem\wbemprox.dll', Resource data not found. (0x714)
[2020-05-10 08:38:31.429 E] GetFileVersionInfoSizeW() failed on 'C:\windows\system32\hnetcfg.dll', Resource data not found. (0x714)
[2020-05-10 08:38:31.472 E] GetFileVersionInfoSizeW() failed on 'Z:\games\mod-organizer-2\ModOrganizer2\dlls\archive.dll', Resource data not found. (0x714)
[2020-05-10 08:38:31.476 E] GetFileVersionInfoSizeW() failed on 'C:\windows\system32\api-ms-win-core-string-l1-1-0.dll', Resource data not found. (0x714)
[2020-05-10 08:38:31.476 E] GetFileVersionInfoSizeW() failed on 'C:\windows\system32\api-ms-win-core-datetime-l1-1-1.dll', Resource data not found. (0x714)
[2020-05-10 08:38:31.477 E] GetFileVersionInfoSizeW() failed on 'C:\windows\system32\api-ms-win-core-localization-obsolete-l1-2-0.dll', Resource data not found. (0x714)
[2020-05-10 08:38:31.771 E] GetFileVersionInfoSizeW() failed on 'Z:\games\mod-organizer-2\ModOrganizer2\plugins\bsa_extractor.dll', Resource data not found. (0x714)
[2020-05-10 08:38:31.773 E] GetFileVersionInfoSizeW() failed on 'Z:\games\mod-organizer-2\ModOrganizer2\dlls\LIBBSARCH.dll', Resource data not found. (0x714)
[2020-05-10 08:38:31.777 E] GetFileVersionInfoSizeW() failed on 'Z:\games\mod-organizer-2\ModOrganizer2\plugins\bsa_packer.dll', Resource data not found. (0x714)
[2020-05-10 08:38:31.779 E] GetFileVersionInfoSizeW() failed on 'Z:\games\mod-organizer-2\ModOrganizer2\plugins\check_fnis.dll', Resource data not found. (0x714)
[2020-05-10 08:38:31.779 E] GetFileVersionInfoSizeW() failed on 'Z:\games\mod-organizer-2\ModOrganizer2\plugins\diagnose_basic.dll', Resource data not found. (0x714)
[2020-05-10 08:38:31.780 E] GetFileVersionInfoSizeW() failed on 'Z:\games\mod-organizer-2\ModOrganizer2\plugins\game_enderal.dll', Resource data not found. (0x714)
[2020-05-10 08:38:31.781 E] GetFileVersionInfoSizeW() failed on 'Z:\games\mod-organizer-2\ModOrganizer2\plugins\game_fallout3.dll', Resource data not found. (0x714)
[2020-05-10 08:38:31.782 E] GetFileVersionInfoSizeW() failed on 'Z:\games\mod-organizer-2\ModOrganizer2\plugins\game_fallout4.dll', Resource data not found. (0x714)
[2020-05-10 08:38:31.782 E] GetFileVersionInfoSizeW() failed on 'Z:\games\mod-organizer-2\ModOrganizer2\plugins\game_fallout4vr.dll', Resource data not found. (0x714)
[2020-05-10 08:38:31.783 E] GetFileVersionInfoSizeW() failed on 'Z:\games\mod-organizer-2\ModOrganizer2\plugins\game_falloutNV.dll', Resource data not found. (0x714)
[2020-05-10 08:38:31.784 E] GetFileVersionInfoSizeW() failed on 'Z:\games\mod-organizer-2\ModOrganizer2\plugins\game_morrowind.dll', Resource data not found. (0x714)
[2020-05-10 08:38:31.785 E] GetFileVersionInfoSizeW() failed on 'Z:\games\mod-organizer-2\ModOrganizer2\plugins\game_oblivion.dll', Resource data not found. (0x714)
[2020-05-10 08:38:31.786 E] GetFileVersionInfoSizeW() failed on 'Z:\games\mod-organizer-2\ModOrganizer2\plugins\game_skyrim.dll', Resource data not found. (0x714)
[2020-05-10 08:38:31.787 E] GetFileVersionInfoSizeW() failed on 'Z:\games\mod-organizer-2\ModOrganizer2\plugins\game_skyrimse.dll', Resource data not found. (0x714)
[2020-05-10 08:38:31.788 E] GetFileVersionInfoSizeW() failed on 'Z:\games\mod-organizer-2\ModOrganizer2\plugins\game_skyrimvr.dll', Resource data not found. (0x714)
[2020-05-10 08:38:31.788 E] GetFileVersionInfoSizeW() failed on 'Z:\games\mod-organizer-2\ModOrganizer2\plugins\game_ttw.dll', Resource data not found. (0x714)
[2020-05-10 08:38:31.789 E] GetFileVersionInfoSizeW() failed on 'Z:\games\mod-organizer-2\ModOrganizer2\plugins\inibakery.dll', Resource data not found. (0x714)
[2020-05-10 08:38:31.790 E] GetFileVersionInfoSizeW() failed on 'Z:\games\mod-organizer-2\ModOrganizer2\plugins\inieditor.dll', Resource data not found. (0x714)
[2020-05-10 08:38:31.790 E] GetFileVersionInfoSizeW() failed on 'Z:\games\mod-organizer-2\ModOrganizer2\plugins\installer_bain.dll', Resource data not found. (0x714)
[2020-05-10 08:38:31.791 E] GetFileVersionInfoSizeW() failed on 'Z:\games\mod-organizer-2\ModOrganizer2\plugins\installer_bundle.dll', Resource data not found. (0x714)
[2020-05-10 08:38:31.791 E] GetFileVersionInfoSizeW() failed on 'Z:\games\mod-organizer-2\ModOrganizer2\plugins\installer_fomod.dll', Resource data not found. (0x714)
[2020-05-10 08:38:31.792 E] GetFileVersionInfoSizeW() failed on 'Z:\games\mod-organizer-2\ModOrganizer2\plugins\installer_manual.dll', Resource data not found. (0x714)
[2020-05-10 08:38:31.793 E] GetFileVersionInfoSizeW() failed on 'Z:\games\mod-organizer-2\ModOrganizer2\plugins\installer_ncc.dll', Resource data not found. (0x714)
[2020-05-10 08:38:31.793 E] GetFileVersionInfoSizeW() failed on 'Z:\games\mod-organizer-2\ModOrganizer2\plugins\installer_quick.dll', Resource data not found. (0x714)
[2020-05-10 08:38:31.794 E] GetFileVersionInfoSizeW() failed on 'Z:\games\mod-organizer-2\ModOrganizer2\plugins\plugin_python.dll', Resource data not found. (0x714)
[2020-05-10 08:38:31.794 E] GetFileVersionInfoSizeW() failed on 'C:\windows\system32\api-ms-win-crt-process-l1-1-0.dll', Resource data not found. (0x714)
[2020-05-10 08:38:31.795 E] GetFileVersionInfoSizeW() failed on 'C:\windows\system32\api-ms-win-crt-conio-l1-1-0.dll', Resource data not found. (0x714)
[2020-05-10 08:38:31.803 E] GetFileVersionInfoSizeW() failed on 'Z:\games\mod-organizer-2\ModOrganizer2\boost_python37-vc142-mt-x64-1_71.dll', Resource data not found. (0x714)
[2020-05-10 08:38:31.804 E] GetFileVersionInfoSizeW() failed on 'Z:\games\mod-organizer-2\ModOrganizer2\plugins\data\pythonRunner.dll', Resource data not found. (0x714)
[2020-05-10 08:38:31.808 E] GetFileVersionInfoSizeW() failed on 'C:\windows\system32\api-ms-win-core-path-l1-1-0.dll', Resource data not found. (0x714)
[2020-05-10 08:38:31.808 E] GetFileVersionInfoSizeW() failed on 'Z:\games\mod-organizer-2\ModOrganizer2\plugins\data\PyQt5\sip.pyd', Resource data not found. (0x714)
[2020-05-10 08:38:31.809 E] GetFileVersionInfoSizeW() failed on 'Z:\games\mod-organizer-2\ModOrganizer2\plugins\data\PyQt5\QtCore.pyd', Resource data not found. (0x714)
[2020-05-10 08:38:31.813 E] GetFileVersionInfoSizeW() failed on 'Z:\games\mod-organizer-2\ModOrganizer2\plugins\data\PyQt5\QtGui.pyd', Resource data not found. (0x714)
[2020-05-10 08:38:31.818 E] GetFileVersionInfoSizeW() failed on 'Z:\games\mod-organizer-2\ModOrganizer2\plugins\data\PyQt5\QtWidgets.pyd', Resource data not found. (0x714)
[2020-05-10 08:38:31.826 E] GetFileVersionInfoSizeW() failed on 'Z:\games\mod-organizer-2\ModOrganizer2\plugins\preview_base.dll', Resource data not found. (0x714)
[2020-05-10 08:38:34.978 I] using game plugin 'Oblivion' ('Oblivion', steam id '22330') at Z:/games/steamapps/common/Oblivion
[2020-05-10 08:38:36.574 E] GetFileVersionInfoSizeW() failed on 'C:\windows\system32\mmdevapi.dll', Resource data not found. (0x714)
[2020-05-10 08:38:36.588 E] GetFileVersionInfoSizeW() failed on 'C:\windows\system32\winepulse.drv', Resource data not found. (0x714)
[2020-05-10 08:38:36.602 E] GetFileVersionInfoSizeW() failed on 'C:\windows\system32\CFGMGR32.dll', Resource data not found. (0x714)
[2020-05-10 08:38:36.633 E] GetFileVersionInfoSizeW() failed on 'C:\windows\system32\winealsa.drv', Resource data not found. (0x714)
[2020-05-10 08:38:36.648 E] GetFileVersionInfoSizeW() failed on 'C:\windows\system32\propsys.dll', Resource data not found. (0x714)
[2020-05-10 08:38:36.663 E] GetFileVersionInfoSizeW() failed on 'C:\windows\system32\rtworkq.dll', Resource data not found. (0x714)
[2020-05-10 08:38:36.679 E] GetFileVersionInfoSizeW() failed on 'C:\windows\system32\mfplat.dll', Resource data not found. (0x714)
[2020-05-10 08:38:36.695 E] GetFileVersionInfoSizeW() failed on 'C:\windows\system32\mf.dll', Resource data not found. (0x714)
[2020-05-10 08:38:36.710 E] GetFileVersionInfoSizeW() failed on 'C:\windows\system32\mfreadwrite.dll', Resource data not found. (0x714)
[2020-05-10 08:38:38.189 E] QPixmap::fromWinHICON(), failed to GetIconInfo() (Invalid cursor handle.)
[2020-05-10 08:38:38.205 E] QPixmap::fromWinHICON(), failed to GetIconInfo() (Invalid cursor handle.)
[2020-05-10 08:38:38.221 E] QPixmap::fromWinHICON(), failed to GetIconInfo() (Invalid cursor handle.)

@ajventer
Copy link
Author

On the plus side: the built-in LOOT sorter works, that has NEVER worked for me before, I've had to use external loot installs up to now, it even shows the report so you can see any warnings from LOOT.

I'll proceed to test some mod installers that were broken before.

@ajventer
Copy link
Author

Okay - so first test failed. Can't install the DarnifiedUI plugin.
But, it turns out, this is not in fact a problem you can fix - MO2 itself lacks OMOD support.
ModOrganizer2/modorganizer#848

So, on to test some others:
FOMODS - all working, this is the modern format used by Skyrim, and it seems to be working fine now.
BAIN - working - this actually makes up about 90% of mods that were problematic for the Oblviion/FO3/FNV era - so this working is a major step forward.

But the game doesn't run. At least, not with teh script extended. Launching OblivionLauncher.exe from MO2 works. But trying to launch the OBSE_Loader fails with a complaint that you have to launch it from steam for a steam version of oblivion.
I've seen this before. There is a binhack somewhere online (just google) to make it work - specifically for playing modded oblivion on Linux actually - which you may want to incorporate into your installer. Alternatively - GloriousEggroll's proton version can actually launch the script extender seperately , and that actually works as it sees it as having been launch from steam. That won't work with your MO2 setup however, but perhaps you can use his code to make it work ?

@ajventer
Copy link
Author

Update: I found the binhack, it's in the third comment on this link: https://steamcommunity.com/app/22330/discussions/0/1734342161864893103/

And tested it - works perfectly with your MO2 setup and makes Obvlivion moddable and playable with MO2.

You should consider adding the hack to your installer for oblivion though.

@rockerbacon
Copy link
Owner

  1. It would be useful to rename the menu entry in Lutris to match the GAME, likewise perhaps even the install path, rather than MO2. Since your setup requires a different MO2 for any managed game, and most people will be playing more than one game - that will work a lot better.

I have already checked the possibility. Lutris has no option to do that in the installer.

  • The custom-game directive only accepts static information.
  • Lutris stores the game name in a SqLite database, located in $HOME/.local/share/lutris/pga.db but the entry is only created after the installer finishes.

I could do something very hacky and start a subprocess that waits a little and then edits the SQLite DB. I thought that was a little too intrusive and error prone and opted instead to simply instruct the user to change the name at the end of the installation.

  • Likewise the launcher script you installe for the NXM handler is MO2 generic, I already overwrite it on my system with my own script so I can just launch into yours but as you prepare to support multiple games either that script must be multi-game capable, or you need to rename it for each game.

It works with multiple games. Make sure you're reading the correct script located at $HOME/.local/bin/modorganizer2-nxm-broker.sh. The architecture for the handler was described briefely in #27.

  1. MO2 shows a bunch of errrors in the log on startup, I'll paste them below.

I am aware of those. The biggest offender, GetFileVersionInfoSizeW(), is part of user32.dll which is already part of Wine/Proton. Whatever is causing this error requires a little more than a quick investigation. Since these errors do not seem to cause any real problems I'll leave them as is for now. There are still other features I could work on that would have a greater impact than fixing this.

Update: I found the binhack, it's in the third comment on this link: https://steamcommunity.com/app/22330/discussions/0/1734342161864893103/

And tested it - works perfectly with your MO2 setup and makes Obvlivion moddable and playable with MO2.

You should consider adding the hack to your installer for oblivion though.

Thanks a lot! That is extremely helpful. Would you be able to check something for me? See if just the first patch is enough to get things working:

printf '\x90\x90\x90' | dd conv=notrunc of=obse_loader.exe bs=1 seek=$((0x14cb))

The problem with the second one is that Steam will revert the patch if it ever checks the integrity of the game files.

@ajventer
Copy link
Author

ajventer commented May 10, 2020

I have already checked the possibility. Lutris has no option to do that in the installer.

Oh, that's a pity - I agree though that, this being the case, it's best to just show a message.

The architecture for the handler was described briefely in #27.

That makes sense now - cool :)

I am aware of those.

That's fine then. I hope I'm not coming across as ungrateful - I've actually been where you are, I'm the original creator of movfs4l.py - the way people used MO2 on Linux for a long time, and a much hackier option at that. I was really glad to see wine start supporting it, and hated how it was still well beyond most people's abilities to get going - and integrate well. Heck, I hadn't even managed it - and I certainly have the skills, I just haven't had the time to figure out a very complicated and mostly undocumented integration process.
So, I'm a big fan of what you're achieving here, and just hoping to assist with useful feedback, specifically of a game that's marked as "untested".

The problem with the second one is that Steam will revert the patch if it ever checks the integrity of the game files.

True, though, to be fair -that affects almost all bethesda modding. For a start you almost always want to use xEdit to clean the official DLCs - and steam will revert those if you do an integrity check - and with Skyrim and Fallout4 you actually want to save copies of the main executables because Bethesda hasn't figured out how to update the creation club store without modifying the executable in ways that break the script extender and all plugins. But only patching the script extender is almost certainly beneficial when you AREN'T launching from steam and having to go via the launcher.
So - I tested it, I resotred a backup copy of OblivionLauncher.exe, and installed the OBSE_Tester mod to cover more ground, then launched OBSE from MO2 - and the tests all passed.
As far as I can tell - you only need to do the patch for obse_loader.exe - the other one is only needed when launching from inside steam.

@rockerbacon
Copy link
Owner

Don't worry, you're not sounding ungrateful. You're being extremely helpful and I'm very grateful for what you're doing for me here.

I just try to answer everything that comes up as it serves for present and future reference to what was checked, tried, works and doesn't. When I tell I won't be working on something I'm also hopeful someone might pick it up :)

I'm making good progress with the Wine implementation. If you could help me with one more thing, I need the paths for all relevant GOG games you may have so I can get autodetection working without relying too much on people opening issues later on. Paths should be found in drive_c/GOG Games inside the game's wineprefix.

@ajventer
Copy link
Author

MMm, I've never actually used a path like that - but then I typically do custom path installs for everything anyway. So mine would typically be under prefix/drives/FNV or such.

You could actually just check the registry to get the real install path - but I would suggest even going one step further. If the user chooses teh GOG version of the game - have them browse to the INSTALL file, and actually install the game as part of your installer, along with a pop up asking them to please use the default path in teh game installer.
That way if somebody is wanting to use your MO2 version to mod a game from GOG - that game will end up contained in the same prefix as it's related MO2, and you can do the wine setups based on known-good setups for the game in question (i.e. probably not launching with proton at all).

That said, I'ts almost 2am here, I need to go to bed - but I'll do a clean install tomorrow from FNV (I have the install files already downloaded and on my drive as I used them to do a TTW setup a few weeks ago) - and I'll send you the paths, for one where I didn't modify it.

This was referenced May 11, 2020
@rockerbacon
Copy link
Owner

I've made a pre-release with Wine support. The problem is that I could not get Wine to run MO2 (more details in #30).

Later I'll test if using the Wine version in Proton solves the issue.

@ajventer
Copy link
Author

This could be down to a patch that Proton has and mainline wine hasn't. I'm assuming you have tested wine-staging already ?
Alternatively I would suggest looking at TKG's protonified build -which is as close as you can get to proton without steam.
As a last resort, you could actually keep using proton. Proton can run non-steam games as well, you'd just want to create your own prefix - and you already wrote the code to run proton from outside steam. The only downside is that it means people who don't use steam would have to install it to use your MO2 builds (at least until it works in wine again). But it's worth considering, even if just as a last resort.

@ajventer
Copy link
Author

Aside: I notice your scripts all restart pulseaudio - this should not be needed, using system FAudio works much better. Xaudio hacks for wine simply can't match a solid local FAudio with with all codecs installed for stability.

@rockerbacon
Copy link
Owner

I've tested both Wine-staging and TKG's. I'll do some more tests today with Proton and GloriousEggroll's protonified.

I include the Pulseaudio restart because I've had problems in Skyrim SE even with FAudio. That was back when Wine was still at 4.2, though. Your recommendation would be to simply remove the restart flag and keep everything else as is or are any more steps necessary?

@rockerbacon
Copy link
Owner

After testing some more I found the problem. Wine Staging 5.7 seems to not yet fully support Visual C++ 2019. Support for VC2019 is fairly new so these kinds of bugs should have been expected in the first place.

The options are:

  1. Distribute another version of the installer which installs Mod Organizer 2 v2.2.0, which does not use VC2019;
  2. Use Wine from Proton 5.0 by default, with no option to select a Wine version during installation;

For now I'll go with option 2, since I don't want to maintain 2 installers and users can still use other versions of Wine by doing the following:

  1. Extract contents from an older MO2 version on top of the installation;
  2. Add arguments to Lutris to force use of a desired Wine version;

I also expect it won't take long for Wine to iron these bugs out.

@rockerbacon
Copy link
Owner

rockerbacon commented May 11, 2020

Version 2.6.0 was released.

This should allow you to play New Vegas with MO2, try it out. If there are no problems and you don't care for using Vortex anymore feel free to close this issue.

And if you have any more suggestions, please do open more issues. I cannot thank you enough for your help!

@ajventer
Copy link
Author

I don't need the restart at all, as long as my FAudio is compiled with all codex it works. With Proton though, you want to go into the dist/lib64 directory and remove the libFAudio it ships as it doesn't have all codecs, and symlink the system libFAudio in instead.

@ajventer
Copy link
Author

Unfortunately I am unable to get the install to work. I'm not sure if the pure wine version is meant to also run the game installer ? I could easily do it myself if not, but either way, it's breaking before that point - I think during the vcrun2019 phase, when selecting pure wine in order to do FNV.
Please find complete log attached.

fnv.log

@ajventer
Copy link
Author

On another note: as just an idea - which may just make your life a bit easier over-all, and solve a bunch of annoying problems in one go.
What if you take your current installer, strip out the game selection part. Then turn it into a simple template for something like jinja2 or such, and just have a little build script which, using that templated, produces individual installers for each supported game by just looping through the list and running the template.
That way you don't need to have the user rename the installation, you don't need to download EVERY script extender but can limit it to the one matching the game, and you aren't maintaining any more than now since you can do all the work centrally in the template. You are merely creating multiple installers as outputs from the same source ?

@rockerbacon
Copy link
Owner

From the logs it looks like Lutris is using outdated cached dependencies. Just delete the cache and it should work.

The template idea is actually pretty awesome. I'll open an issue for an enhancement. But now I think I should start updating the readme, it's so outdated I don't think it even fully applies to Vortex.

@ajventer
Copy link
Author

I'm a devops developer in my dayjob - automating code and infrastructure creation stuff with templates is sort of my thing :)

The outdated cache makes sense, odd it didn't affect the FO4 update - probably because that prefix already existed and contained vcrun2019. I'm trying with the cache wiped.

@ajventer
Copy link
Author

Right, so you may want to add $WINEPREFIX/drive_c/Fallout New Vegas' to the default search path - since that's the path where the official Lutris install script for the GOG version installs to (and it can't be altered). After that the installer seems to work fine, but so far, I can't get MO2 to run - keep hitting this error:
LD_LIBRARY_PATH='/home/metalpoetza/.steam/steam/steamapps/common/Proton 5.0/lib64:/home/metalpoetza/.steam/steam/steamapps/common/Proton 5.0/lib:/games/Steam/ubuntu12_32/steam-runtime/pinned_libs_32:/games/Steam/ubuntu12_32/steam-runtime/pinned_libs_64:/usr/lib/libfakeroot:/usr/lib32:/usr/lib/libupnp-1.8:/usr/lib/openmpi:/usr/lib:/games/Steam/ubuntu12_32/steam-runtime/i386/lib/i368-linux-gnu:/games/Steam/ubuntu12_32/steam-runtime/i386/lib:/games/Steam/ubuntu12_32/steam-runtime/i386/usr/lib/i386-linux-gnu:/games/Steam/ubuntu12_32/steam-runtime/i386/usr/lib:/games/Steam/ubuntu12_32/steam-runtime/amd64/lib/x86_64-linux-gnu:/games/Steam/ubuntu12_32/steam-runtime/amd64/lib:/games/Steam/ubuntu12_32/steam-runtime/amd64/usr/lib/x86_64-linux-gnu:/games/Steam/ubuntu12_32/steam-runtime/amd64/usr/lib'

WINEPREFIX='/games/FNV'

'/home/metalpoetza/.steam/steam/steamapps/common/Proton 5.0/dist/bin/wine' '/games/mo2fnv/ModOrganizer2/ModOrganizer.exe'

wineserver: using server-side synchronization.
wine client error:0: version mismatch 621/597.
Your wine binary was not upgraded correctly,
or you have an older one somewhere in your PATH.
Or maybe the wrong wineserver is still running?
Game is considered exited.
Initial process has exited.
All children have exited.
Exit with returncode 256

Usually that would just mean find and kill a stale wineserver from a different wine version - but I can't find one.

@ajventer
Copy link
Author

Nevermind that error - it seems to have fixed itself once I completely restarted lutris, at least - if I call the run.sh script directly.

@ajventer
Copy link
Author

Okay, I can now confirm that, at least some, FOMOD scripted mods for New Vegas definitely are not working.
Specifically I have found:
https://www.nexusmods.com/newvegas/mods/56671?tab=files&file_id=1000055622&nmm=1
and Fallout Character Overhaul do not show their menus and are installed in a broken state.

@ajventer ajventer reopened this May 16, 2020
@rockerbacon
Copy link
Owner

Interesting, I get the menu just fine for the mod you linked. However, looking at the menu interface and at the contents of the downloaded .zip it looks like a completely custom installer and not an actual FOMOD. MO2 says it's running a custom installer based on NMM instead of saying it's running a FOMOD like it does for other FOMODs.

Set the log level to debug in MO2 > Preferences > Diagnostics and make sure to run Lutris on a terminal to also get the logs from Wine. Most probably there's a system library or some other resource missing and an error complaining about something like that should show up in one of these two logs.

@ajventer
Copy link
Author

Wait, the menus work for you ?
Because I just found yet another affected mod: Project Nevada.

I'm guessing - the difference here is that my Fallout New Vegas is also a pure wine setup. Despite that using Proton to execute, the bottle setup isn't the same. I'm running the requested test setup now. Will post any logs I find.

@ajventer
Copy link
Author

@rockerbacon
Copy link
Owner

After a quick look at the logs I couldn't find anything obvious. This one may be a little trickier to track down.

What distro are you using?

Just a wild guess: can you see if installing corefonts on the wine prefix does anything?

@ajventer
Copy link
Author

I'm using Manjaro.
Corefonts did not help.

However I may have an idea about what is happening. MO2's own fomod installer plugin only handles a subset of FOMODS - those using only XML files. FOMODs with other scripts like C# are passed to a different plugin. in MO2's plugin list it's called FOMOD external.
FOMOD external is actually the commandline version of the Nexus Mod Manager - which MO2 includes under the NCC subdirectory.

That command is written in pure dotnet. Now, as it happens, everytime I run a pure-wine MO2 - I get the attached error popping up when it starts. Clicking OK makes the program start just fine, but it IS claiming that the dotnet framework isn't starting correctly.
Most likely then - this is an issue with installing dotnet correctly when using Proton on a non-Steam winebottle as the pure-wine setup does.
I'm not sure how best to address it but it looks like the low hanging fruit. Figure out how to fix the dotnet install - and chances are it fixes the FOMODs too.
rundll_error

@rockerbacon
Copy link
Owner

Interesting. I didn't worry too much about .NET because Steam already includes it in the prefixes it creates so I just added dotnet40 to the wine installer, which seemed to be enough for MO2.

I'll see later if I can reproduce the issue using the Wine installer and if using a newer version of dotnet is enough to fix the issue.

@ajventer
Copy link
Author

I manually did a winetricks dotnet46 into the bottle - it didn't fix the above but it brought us a bit closer, sufficiently to get a new error.
It now actually TRIES to run the external installer and then says "parameter invalid" - and the log contains the command it's trying to run.
mo_interface.log

That command should be runnable in wine within the prefix, add it's requirements, and we should be able to completely close this ticket finally :)

@rockerbacon
Copy link
Owner

Two additional things to try:

  • If you use winetricks provided by Lutris in $HOME/.local/share/lutris/runtime/winetricks/winetricks, you'll be able to get dotnet48;
  • mono is another alternative to get .NET working;

@rockerbacon rockerbacon added bug Something isn't working pure-wine Only applicable to pure Wine installations and removed question Further information is requested labels May 30, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working pure-wine Only applicable to pure Wine installations
Projects
None yet
Development

No branches or pull requests

2 participants