F4SE - some plugins breaking
ajventer opened this issue · 12 comments
Installing the auto gamepad switch plugin for F4SE causes it to hang on startuped, Fallout4.exe launches but immediately becomes defunct.
This plugin works fine with Vortex. This appears to be a memory issue introduced with the ModOrganizer support or, potentially, with stock Proton. Let me know if I can send any particular logs - but I looked at them and there are no errors, it just shows the DLL loading and then nothing more.
I can't say how many F4SE plugin mods are affected but I can confirm at least this one is: https://www.nexusmods.com/fallout4/mods/23136?tab=files
You are using a custom Proton with Fallout 4, right? I'll do the necessary modifications for #33 so you can test if stock Proton is the problem.
Custom Proton support was added in 2.5.0. You can update your current installation by removing it in Lutris without removing game files and installing the new version on top of the previous directory.
Custom proton versions should be specified using the arguments setting in Lutris. In order to see all options available use the following command:
$HOME/.local/share/modorganizer2/proton-launcher.sh --help
Hotfix added in 2.5.1
Actually this was with stock proton - I will have to see if proton-GE fixes this, I'll try it with 2.5.1 - I was actually later on using modified versions of the run and download scripts because I personally wanted to remove the restart-pulse option and add the no-esync option (Fallout4 is known to work better if you disable esync) - but it would be beneficial to instead be able to set parameters in lutris anyway.
I'll update it now and see about getting proton-GE working, if that works, I'll test enabling this plugin.
I will add options to override the pulse restart and include no-esync as default for Fallout 4.
Those options appear to also have been reverted in 2.6.2 - since they didn't get applied on my side ?
Either way -by hacking the script locally and applying the search path fix patch myself, I was able to get it to run ProtonGE instead, but right now this doesn't work at all. Using ProtonGE ModOrganizer2 immediately crashes on startup, so I can't test if that fixes the plugin issue.
Debug logs:
DEBUG 2020-05-12 09:21:29,463 [application.launch:379]:Launching MO2FO4 (linux) (140251018754432)
DEBUG 2020-05-12 09:21:29,484 [xrandr._get_vidmodes:16]:Retrieving video modes from XrandR
DEBUG 2020-05-12 09:21:29,546 [game.configure_game:334]:Launching MO2FO4: {'command': ['/games/mo2fo4/run.sh', '--noesync', '--nofsync', '-e', 'DXVK_HUD=fps', '--customver', '5.8']}
DEBUG 2020-05-12 09:21:29,547 [game.configure_game:335]:Game info: {
"command": [
"/games/mo2fo4/run.sh",
"--noesync",
"--nofsync",
"-e",
"DXVK_HUD=fps",
"--customver",
"5.8"
]
}
DEBUG 2020-05-12 09:21:29,550 [command.start:133]:Running /usr/share/lutris/bin/lutris-wrapper MO2FO4 0 0 /games/mo2fo4/run.sh --noesync --nofsync -e DXVK_HUD=fps --customver 5.8
DEBUG 2020-05-12 09:21:29,550 [command.start:135]:ENV: SDL_VIDEO_FULLSCREEN_DISPLAY="off"
DEBUG 2020-05-12 09:21:29,550 [command.start:135]:ENV: STEAM_RUNTIME="/home/metalpoetza/.local/share/lutris/runtime/steam"
DEBUG 2020-05-12 09:21:29,550 [command.start:135]:ENV: LD_LIBRARY_PATH="/usr/lib/libfakeroot:/usr/lib/libupnp-1.8:/usr/lib/openmpi:/usr/lib32:/usr/lib:/usr/lib64:/home/metalpoetza/.local/share/lutris/runtime/Ubuntu-18.04-i686:/home/metalpoetza/.local/share/lutris/runtime/steam/i386/lib/i386-linux-gnu:/home/metalpoetza/.local/share/lutris/runtime/steam/i386/lib:/home/metalpoetza/.local/share/lutris/runtime/steam/i386/usr/lib/i386-linux-gnu:/home/metalpoetza/.local/share/lutris/runtime/steam/i386/usr/lib:/home/metalpoetza/.local/share/lutris/runtime/Ubuntu-18.04-x86_64:/home/metalpoetza/.local/share/lutris/runtime/steam/amd64/lib/x86_64-linux-gnu:/home/metalpoetza/.local/share/lutris/runtime/steam/amd64/lib:/home/metalpoetza/.local/share/lutris/runtime/steam/amd64/usr/lib/x86_64-linux-gnu:/home/metalpoetza/.local/share/lutris/runtime/steam/amd64/usr/lib:$LD_LIBRARY_PATH"
DEBUG 2020-05-12 09:21:29,550 [command.start:135]:ENV: game_name="MO2FO4"
DEBUG 2020-05-12 09:21:29,550 [command.start:135]:ENV: PYTHONPATH="/usr/lib/lutris:/usr/bin:/usr/lib/python38.zip:/usr/lib/python3.8:/usr/lib/python3.8/lib-dynload:/usr/lib/python3.8/site-packages"
lutris-wrapper: MO2FO4
Running /games/mo2fo4/run.sh --noesync --nofsync -e DXVK_HUD=fps --customver 5.8
Initial process has started with pid 144779
Game is considered started.
Searching for game in library '/home/metalpoetza/.steam/steam'
Found game
/home/metalpoetza/.steam/steam/compatibilitytools.d/
++ find /home/metalpoetza/.steam/steam/compatibilitytools.d/ -maxdepth 1 -path '*/5.8'
++ sort -rV
++ head -n 1
-
proton_dir=/home/metalpoetza/.steam/steam/compatibilitytools.d/Proton-5.8-GE-1-MF
-
'[' '!' -d /home/metalpoetza/.steam/steam/compatibilitytools.d/Proton-5.8-GE-1-MF ']'
-
set +x
PATH='/games/Steam/ubuntu12_32/steam-runtime/amd64/usr/bin:/games/Steam/ubuntu12_32/steam-runtime/usr/bin:/home/metalpoetza/.local/bin:/usr/local/bin:/usr/bin:/bin:/usr/local/sbin:/usr/lib/jvm/default/bin:/usr/bin/site_perl:/usr/bin/vendor_perl:/usr/bin/core_perl'
LD_LIBRARY_PATH='/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'
STEAM_COMPAT_DATA_PATH='/home/metalpoetza/.steam/steam/steamapps/compatdata/377160'
SteamGameId=377160
SteamAppId=377160
PROTON_NO_ESYNC=1 PROTON_NO_FSYNC=1 DXVK_HUD=fps
'/home/metalpoetza/.steam/steam/compatibilitytools.d/Proton-5.8-GE-1-MF/proton' run '/games/mo2fo4/ModOrganizer2/ModOrganizer.exe'
Proton: Upgrading prefix from 5.0-1 to 5.8-GE-1-MF (/home/metalpoetza/.steam/steam/steamapps/compatdata/377160/)
Proton: Prefix has an invalid version?! You may want to back up user files and delete this prefix.
wine: configuration in L"/home/metalpoetza/.steam/steam/steamapps/compatdata/377160/pfx" has been updated.
Setting breakpad minidump AppID = 377160
Steam_SetMinidumpSteamID: Caching Steam ID: 76561198118458408 [API loaded no]
wine: Unhandled exception 0x80000003 in thread f0 at address 000000007BCDB688 (thread 00f0), starting debugger...
0x000000007bcdb688: int $3
Modules:
Module Address Debug info Name (99 modules)
PE 220000- 59be000 Deferred qt5webenginecore
PE 59c0000- 5d6e000 Deferred qt5quick
PE 5d70000- 615f000 Deferred qt5qml
PE 6160000- 6173000 Deferred aclui
PE 6180000- 62cd000 Deferred qt5network
PE 62d0000- 6897000 Deferred qt5core
PE 68a0000- 6931000 Deferred msvcp140
PE 6940000- 6959000 Deferred vcruntime140
PE 6960000- 6968000 Deferred api-ms-win-crt-heap-l1-1-0
PE 6970000- 6fa6000 Deferred qt5gui
PE 6fb0000- 6fd1000 Deferred qt5webchannel
PE 6fe0000- 7032000 Deferred qt5positioning
PE 7050000- 7317000 Deferred d3d11
PE 7320000- 7372000 Deferred qt5printsupport
PE 7380000- 78d8000 Deferred qt5widgets
PE 78e0000- 78f6000 Deferred qt5quickwidgets
PE 7900000- 792a000 Deferred qt5websockets
PE 7930000- 7a7a000 Deferred uibase
PE 7a80000- 7b0e000 Deferred qt5winextras
PE 7b10000- 7ccb000 Deferred usvfs_x64
PE 7cd0000- 7cee000 Deferred liblz4
PE 83a0000- 83a8000 Deferred api-ms-win-core-localization-l1-2-1
PE 83b0000- 851f000 Deferred qwindows
PE 8740000- 87d7000 Deferred openvr_api_dxvk
PE 87e0000- 8806000 Deferred qwindowsvistastyle
PE 8a40000- 8d84000 Deferred libcrypto-1_1-x64
PE 8d90000- 8e3b000 Deferred libssl-1_1-x64
PE 8f50000- 8f74000 Deferred msvfw32
PE 61540000- 61548000 Deferred api-ms-win-crt-locale-l1-1-0
PE 61900000- 6192b000 Deferred sechost
PE 61f40000- 61f4d000 Deferred wtsapi32
PE 620c0000- 620c8000 Deferred api-ms-win-crt-filesystem-l1-1-0
PE 62240000- 624c9000 Deferred d3d9
PE 62600000- 6263c000 Deferred usp10
PE 63140000- 63149000 Deferred api-ms-win-crt-runtime-l1-1-0
PE 637c0000- 6387a000 Deferred winmm
PE 638c0000- 638ce000 Deferred dwmapi
PE 64340000- 64380000 Deferred winhttp
PE 64940000- 64959000 Deferred shcore
PE 64b80000- 64b8f000 Deferred hid
PE 64d40000- 64d4f000 Deferred vulkan-1
PE 65000000- 65143000 Deferred ole32
PE 65780000- 6578e000 Deferred version
PE 66200000- 66262000 Deferred dbghelp
PE 67740000- 67779000 Deferred wbemprox
PE 67d00000- 67d0e000 Deferred userenv
PE 68a40000- 68a96000 Deferred shlwapi
PE 68ac0000- 68ac7000 Deferred api-ms-win-crt-time-l1-1-0
PE 69380000- 69389000 Deferred api-ms-win-crt-stdio-l1-1-0
PE 69b80000- 69b87000 Deferred api-ms-win-crt-environment-l1-1-0
PE 6a100000- 6a231000 Deferred oleaut32
PE 6a4c0000- 6a4c8000 Deferred api-ms-win-crt-utility-l1-1-0
PE 6a700000- 6a77e000 Deferred setupapi
PE 6b2c0000- 6b340000 Deferred wininet
PE 6b440000- 6b466000 Deferred browseui
PE 6b6c0000- 6b7c1000 Deferred comdlg32
PE 6b880000- 6b887000 Deferred api-ms-win-core-fibers-l1-1-1
PE 6bec0000- 6bed9000 Deferred imm32
PE 6d580000- 6d589000 Deferred api-ms-win-crt-convert-l1-1-0
PE 6d9c0000- 6d9df000 Deferred mpr
PE 6dd80000- 6dd89000 Deferred api-ms-win-crt-string-l1-1-0
PE 6e280000- 6e28e000 Deferred ncrypt
PE 6e340000- 6e348000 Deferred api-ms-win-core-synch-l1-2-0
PE 6e6c0000- 6e803000 Deferred comctl32
PE 6eb00000- 6eb12000 Deferred wintab32
PE 6fbc0000- 6fc45000 Deferred rpcrt4
PE 6ff40000- 6ff4c000 Deferred vcruntime140_1
PE 70580000- 7058a000 Deferred api-ms-win-crt-math-l1-1-0
PE 70a00000- 70a0c000 Deferred dhcpcsvc
PE 71140000- 711dd000 Deferred urlmon
PE 71240000- 71260000 Deferred jsproxy
PE 7a850000- 7a858000 Deferred opengl32
PE 7b000000- 7b0cb000 Deferred kernelbase
PE 7b410000- 7b5db000 Deferred kernel32
PE 7bc20000- 7bc35000 Deferred ntdll
PE 140000000- 1405e8000 Deferred modorganizer
PE 180000000- 18003f000 Deferred qt5webenginewidgets
PE 7f2e5f1f0000- 7f2e5f1f4000 Deferred kerberos
PE 7f2e60a40000- 7f2e60a45000 Deferred winex11
PE 7f2e60b10000- 7f2e60b15000 Deferred uxtheme
PE 7f2e60b50000- 7f2e60b54000 Deferred dxva2
PE 7f2e60b90000- 7f2e60b97000 Deferred winevulkan
PE 7f2e60bf0000- 7f2e60c00000 Deferred msvcrt
PE 7f2e60ce0000- 7f2e60ce9000 Deferred wined3d
PE 7f2e60e80000- 7f2e60e85000 Deferred dxgi
PE 7f2e60ed0000- 7f2e60ed4000 Deferred dwrite
PE 7f2e60f70000- 7f2e60f74000 Deferred secur32
PE 7f2e60fc0000- 7f2e60fcd000 Deferred winspool
PE 7f2e61020000- 7f2e61025000 Deferred bcrypt
PE 7f2e61050000- 7f2e61097000 Deferred crypt32
PE 7f2e61170000- 7f2e61176000 Deferred dnsapi
PE 7f2e61190000- 7f2e61196000 Deferred ws2_32
PE 7f2e611d0000- 7f2e611d6000 Deferred iphlpapi
PE 7f2e61210000- 7f2e61217000 Deferred netapi32
PE 7f2e61260000- 7f2e61b5b000 Deferred shell32
PE 7f2e61cd0000- 7f2e61cdc000 Deferred gdi32
PE 7f2e61e90000- 7f2e61eae000 Deferred ucrtbase
PE 7f2e61fb0000- 7f2e61fbb000 Deferred advapi32
PE 7f2e62040000- 7f2e62131000 Deferred user32
Threads:
process tid prio (all id:s are in hex)
00000020 steam.exe
["C:\windows\system32\steam.exe" /games/mo2fo4/ModOrganizer2/ModOrganizer.exe]
000000e8 0
00000024 0
00000038 services.exe
[C:\windows\system32\services.exe]
0000009c 0
0000006c 0
0000004c 0
00000040 0
0000003c 0
00000044 plugplay.exe
[C:\windows\system32\plugplay.exe]
0000007c 0
00000060 0
0000005c 0
00000058 0
00000048 0
00000064 winedevice.exe
[C:\windows\system32\winedevice.exe]
00000090 0
0000008c 0
00000088 0
00000078 0
00000074 0
00000070 0
00000068 0
00000094 winedevice.exe
[C:\windows\system32\winedevice.exe]
000000a8 0
000000a4 0
000000a0 0
00000098 0
000000b4 explorer.exe
[C:\windows\system32\explorer.exe /desktop]
000000c8 0
000000c4 0
000000c0 0
000000bc 0
000000b8 0
000000ec (D) Z:\games\mo2fo4\ModOrganizer2\ModOrganizer.exe
["Z:\games\mo2fo4\ModOrganizer2\ModOrganizer.exe"]
0000010c 0
000000f8 0
000000f4 0
000000f0 0 <==
System information:
Wine build: wine-5.8 (Staging)
Platform: x86_64
Version: Windows 10
Host system: Linux
Host version: 5.4.39-1-MANJARO
Game is considered exited.
Initial process has exited.
All monitored processes have exited.
Exit with returncode 0
DEBUG 2020-05-12 09:21:39,675 [command.on_stop:182]:The process has terminated with code 0
DEBUG 2020-05-12 09:21:39,675 [command.stop:266]:Management process looks dead already.
DEBUG 2020-05-12 09:21:39,675 [command.stop:274]:Detaching logger
DEBUG 2020-05-12 09:21:41,570 [game.beat:596]:Game thread stopped
WARNING 2020-05-12 09:21:41,570 [game.on_game_quit:626]:Game still running (state: running)
INFO 2020-05-12 09:21:41,570 [game.stop:611]:Stopping MO2FO4 (linux)
DEBUG 2020-05-12 09:21:41,571 [command.stop:266]:Management process looks dead already.
DEBUG 2020-05-12 09:21:41,571 [command.stop:278]:logger already detached
DEBUG 2020-05-12 09:21:41,579 [game.on_game_quit:645]:MO2FO4 stopped at Tue, 12 May 2020 09:21:41
DEBUG 2020-05-12 09:21:41,579 [game.save:249]:Saving MO2FO4 (linux)
DEBUG 2020-05-12 09:21:41,615 [lutriswindow.on_game_updated:779]:Updating game MO2FO4 (linux)
I checked the release and the master branch and everything is in order. It is likely a cache issue with Lutris once again.
For some reason Lutris caches downloads using the file id in the installer instead of using the download URL. Because of that you always have to clean the cache when updating. You can selectively uncache the dependencies that changed running these commands from inside your cache directory:
cd mod-organizer-2
rm -rf dialog find_library_for_appid gamesinfo nxm_broker nxm_mime_handler proton_launcher wine_launcher
These logs show that GE suffers from the same problem Wine-staging does. Now to completely isolate the issue I need you to manually install the plugin and run FO4 directly from Steam. If it works I'll need you to do the following:
- Exit Steam: Steam > Exit, on the top bar menu;
- Start Steam with a debug environment variable:
PROTON_DUMP_DEBUG_COMMANDS=1 steam
- Start Fallout 4, just starting the launcher is enough;
- Exit Steam;
- Send me the contents of the file "/tmp/proton_${USER}/run";
Then send me the logs from Lutris:
- Start Lutris in a clean terminal;
- Launch Mod Organizer 2;
- Exit Mod Organizer 2 and Lutris;
- Send me the output from the terminal;
With these two I'll be able to point out all differences in how Steam starts the application and how my script is starting it.
Okay, so for now, it's not possible to use GE builds with mo2, that's good to know anyway.
Either way, turns out the same problem affects proton and proton-GE when run from within Steam. But it doesn't affect pure wine when using a windows version of steam inside wine (that's how I was using it with Vortex due to a different issue).
So you can close the ticket on your side - it's a proton bug not a bug in your launcher.
I would like to keep this open because more people may come across the same problem.
Also, if some tweak is found that can fix this issue I would like to implement it.
Not sure if it will help, but I found the plug-in source code here: https://github.com/reg2k/fo4-autoswitch
Given other F4SE plug-ins work fine, I'm guessing something this one does is at least partly responsible for the issue. Maybe someone will recognize it.
Edit: Also, for anyone wanting the functionality of this plug-in on Linux, I've come across AntiMircoX that allows you to use mouse, keyboard, and gamepad simultaneously by mapping gamepad inputs directly to mouse/keyboard inputs. You have to set up the mapping you want and then turn off the controller support in-game for it to work. There are some downsides, mainly that in-game prompts will use the keyboard button instead of the controller and you lose all the context sensitivity of the in-game controller support.
Pretty late but there is another option around the auto switch mod, buffout 4 https://www.nexusmods.com/fallout4/mods/47359
It contains a config file in F4SE/plugins/Buffout4/Config.tolm
Find “InputSwitch = false” and switch to true
Jobs done, also remove auto switch plugin