goatcorp/XIVLauncher.Core

Won't launch again with Dalamud enabled

Opened this issue ยท 13 comments

Running xivlauncher on Linux Mint 21.1 with an existing windows based xiv install on a separate drive. Also installed Reshade via reshade-steam-proton but was also able to repro when uninstalled.

Was able to launch with Dalamud once and open the plugin list. After closing out any subsequent launch with Dalamud enabled with any amount of delay would seemingly fail silently when running flatpak run dev.goats.xivlauncher, although once Dalamud threw a missing c++ redistributable error(EDIT: this might have been because I did not specify a d3dcompiler_47 override after uninstalling reshade, I readded that after and the error went away, though still with nothing).

Wasn't sure where else to look but tailing ~/.xlcore/dalamud/Hooks/7.10.1.0/dalamud.injector.log gives this as the latest log:

2023-08-14 22:58:12.907 +10:00 [INF] Dalamud.Injector, (c) 2023 XIVLauncher Contributors
2023-08-14 22:58:12.918 +10:00 [WRN] "--dalamud-dev-plugin-directory=Z:\home\axoletl\.xlcore\devPlugins" is not a valid command line argument, ignoring.
2023-08-14 22:58:13.976 +10:00 [INF] Using start info: {"WorkingDirectory":"Z:\\home\\axoletl\\.xlcore\\dalamud\\Hooks\\7.10.1.0","ConfigurationPath":"Z:\\home\\axoletl\\.xlcore\\dalamudConfig.json","LogPath":"C:\\users\\axoletl\\AppData\\Roaming\\XIVLauncher","LogName":null,"PluginDirectory":"Z:\\home\\axoletl\\.xlcore\\installedPlugins","AssetDirectory":"Z:\\home\\axoletl\\.xlcore\\dalamudAssets\\215","Language":1,"GameVersion":"2023.07.26.0000.0000","TroubleshootingPackData":"{\"When\":\"2023-08-14T22:58:10.0670651+10:00\",\"IsDx11\":true,\"IsAutoLogin\":false,\"IsUidCache\":false,\"DalamudEnabled\":true,\"DalamudLoadMethod\":1,\"DalamudInjectionDelay\":1000.0,\"SteamIntegration\":false,\"EncryptArguments\":true,\"LauncherVersion\":\"1.0.4.0\",\"LauncherHash\":\"f9a40ed\",\"Official\":false,\"DpiAwareness\":0,\"Platform\":2,\"ObservedGameVersion\":\"2023.07.26.0000.0000\",\"ObservedEx1Version\":\"2023.07.26.0000.0000\",\"ObservedEx2Version\":\"2023.06.29.0000.0000\",\"ObservedEx3Version\":\"2023.07.26.0000.0000\",\"ObservedEx4Version\":\"2023.07.26.0000.0000\",\"BckMatch\":true,\"IndexIntegrity\":5}","DelayInitializeMs":1000,"NoLoadPlugins":false,"NoLoadThirdPartyPlugins":false,"BootLogPath":"C:\\users\\axoletl\\AppData\\Roaming\\XIVLauncher\\dalamud.boot.log","BootShowConsole":false,"BootDisableFallbackConsole":false,"BootWaitMessageBox":0,"BootWaitDebugger":false,"BootVehEnabled":true,"BootVehFull":false,"BootEnableEtw":false,"BootDotnetOpenProcessHookMode":0,"BootEnabledGameFixes":["prevent_devicechange_crashes","disable_game_openprocess_access_check","redirect_openprocess","backup_userdata_save","prevent_icmphandle_crashes"],"BootUnhookDlls":null,"CrashHandlerShow":false}

May finally have a resolution to this, seems to be related to file permissions required by some of the plugins, potentially CharacterSync?
Seems to launch now by going into Flatseal and enabling more filesystem access for XIVLauncher, specifically what I'm unsure and likely depends on system.
Would be nice to have been thrown an EACESS error or something, I may have simply missed some other place to get logs out of Dalamud though.
Happy to consider this resolved, if there's no way to action above?

EDIT: still inconsistent with this on further testing, not sure what it could be now.

mnn commented

I'm not sure if this is related to the issue, but I think since the last game update, I've encountered more "frozen at launch" problems. I usually have to kill and restart the game 2 or 3 times until it starts working. I am not using reshade or other modifications except Dalamud (I believe its plugins are initialized after injection, after the game starts showing something, but I might be wrong).

@mnn I haven't gotten this as a clean test since I was poking with the configuration but turning off "Enable Esync" seems to have improved things for me? Will update when I get to play with it further.

@mnn I haven't gotten this as a clean test since I was poking with the configuration but turning off "Enable Esync" seems to have improved things for me? Will update when I get to play with it further.

You will probably want esync or fsync enabled (but not both, although fsync should auto-disable esync if you try). Otherwise, you will run into performance issues as esync/fsync are used to bridge the gap between how the NT kernel works that the Linux kernel does not normally do.

The linux kernel has included esync support for quite a long time, but fsync was also mainlined around 5.16 or so, which means any modern kernel should include it too.

Whatever the underlying cause is and whether its even related to the original issue anymore I don't know enough about to be certain on, but esync now seems to reliably hang the launch with dalamud enabled. Fsync seems to do ok though so will enable that for now.

I am experiencing a similar issue. The game launches reliably:

  • without Dalamud
  • with Dalamud, no esync or fsync

Otherwise, it usually displays an empty/undrawn window and freezes there until I Ctrl-C it. With enough persistence, it will run. Is there a way I can get backtraces to see where it's stuck? Don't know how to use gdb with Flatpak.

Chiming in. Same problem here, though using fsync and Rankyn's custom wine build (https://github.com/rankynbass/wine-ge-xiv/releases) works well enough for me that I find it to be an acceptable workaround for the time being. It will occasionally fail to launch (empty window, as above), but not that often.

Have the same issue, having esync or fysnc on when using Dalamud causing broken launching.

Atm working around by using wine-ge-custom.

Edit: Also had mouse lag issues, so tried the Rankyn's wine build that Ennea mentioned and that seems to have resolved that.

I am experiencing a similar issue. The game launches reliably:

  • without Dalamud
  • with Dalamud, no esync or fsync

Otherwise, it usually displays an empty/undrawn window and freezes there until I Ctrl-C it. With enough persistence, it will run. Is there a way I can get backtraces to see where it's stuck? Don't know how to use gdb with Flatpak.

I've been unable to launch for quite a long time, and this seems to have been what did it for me too. If I disable esync (fsync already disabled), then I can now launch. With esync enabled, I got the undrawn window too.

Does anyone know what the impact of disabling esync would be?

@RobTheFiveNine Rather than disabling esync (which will tank your FPS quite heavily), set the Dalamud method to "Entrypoint" in the settings. Should help.

Esync is also working fine as of our migration to .NET 8. (It did have issues when Dalamud was on .NET 7)

Better, but not completely taken care off with DLL injection as the load method. Using Entrypoint instead helps, though.

@RobTheFiveNine Rather than disabling esync (which will tank your FPS quite heavily), set the Dalamud method to "Entrypoint" in the settings. Should help.

@Ennea thanks for the tip - disabling esync did drop FPS by around 60-70, but reenabling and choosing entrypoint did bring it back up and allow the game to load ๐ŸŽ‰