goatcorp / Dalamud

FFXIV plugin framework and API
GNU Affero General Public License v3.0
970 stars 250 forks source link

Dalamud.Boot doesn't support UNC paths #743

Open rreminy opened 2 years ago

rreminy commented 2 years ago

FFXIV is installed inside a VeraCrypt volume and apparently Dalamud.Boot doesn't work properly with this fact. This in turn causes XIVLauncher to display this error and not inject Dalamud on game load (I been injecting manually for the past few months).

image

So far I figured out the following:

Moving it out of the VeraCrypt volume resolves the issue. I do not know if this applies for all types of virtual volumes but would be something take a further look into. This did not use to happen before around 6.0.0.0.

(My VeraCrypt version is 1.24 in case that matter)

Soreepeong commented 2 years ago

I remember that I had to convert NT path to DOS path in boot because Reloaded tripped on NT paths when I tried it last time, but if it's working for you by manual injection, then I'll try removing DOS path conversion later.

On a side note, does it work if you use Legacy as injection method instead of New?

rreminy commented 2 years ago

Yes, it works if I inject manually afterwards after the error message with the game running

No I don't know the Legacy and New injection methods, I only followed what the code was doing via debug and those were my findings

edit to add: I been using Dalamud.Injector.exe to inject manually

Soreepeong commented 2 years ago

Try the "Legacy" one - it's basically CreateRemoteThread(LoadLibrary). I don't think there would be a reason this would not work, so meanwhile I figure ntpath with reloaded out, using Legacy should work.

rreminy commented 2 years ago

I found the setting, the Legacy method works fine