sonic2kk / steamtinkerlaunch

Linux wrapper tool for use with the Steam client for custom launch options and 3rd party programs
GNU General Public License v3.0
2.16k stars 73 forks source link

Vortex hangs on prepareAllInstalledVortexGames #823

Closed jbbandos closed 1 year ago

jbbandos commented 1 year ago

System Information

Issue Description

Vortex isn't launching. It hangs after "prepareAllInstalledVortexGames - Applying Vortex settings for all games via autogenerated cmd '/dev/shm/steamtinkerlaunch/vortset.cmd" I've tried deleting the prefix dir, installing again, and doing a reset with "steamtinkerlaunch vortex reset", but it still hangs. It has worked a couple of times, without changing anything, which is even more frustrating, and now it just doesn't work at all.

Logs

steamtinkerlaunch.log

installVortex_protonrun.log

sonic2kk commented 1 year ago

I will test when I can but it was working about a week ago on PC and Steam Deck.

How long have you left it for? This process can take a long time, reportedly upwards of 10 minutes (for me it takes ~5 max).

jbbandos commented 1 year ago

I've left it for over one hour, it never passes that point.

sonic2kk commented 1 year ago

The log you have attached is for steamtinkerlaunch version, not for your attempted Vortex launch. Try attaching the log after an execution of i.e. steamtinkerlaunch vortex start.

jbbandos commented 1 year ago

My apologies, I've uploaded the correct log now. Just tried launching vortex again, now exits, and the log doesn't have much. steamtinkerlaunch.log

sonic2kk commented 1 year ago

Just tested and it installed and ran fine for me on my Arch PC, but stupidly I forgot I had the SLR disabled for Vortex... I'll try again with it enabled but I expect the results to be the same. Vortex installed for me with GE-Proton8-4 and I installed Vortex 1.8.4.

An interesting log to check might be /dev/shm/steamtinkerlaunch/vwrun.txt

prepareAllInstalledVortexGames sets some Vortex settings for each game and then runs runVortSetCmd, which is the step it's hanging on in your OP. This part runs vortset.cmd which has information about discovered games and paths. It may be worth checking this file as well, it can be found at /dev/shm/steamtinkerlaunch/vortset.cmd.

When using steamtinkerlaunch vortex reset, it re-runs this function, which is why it may have improved things in the past. I am not sure why it is not working currently, especially when it seems to be working on my end...

I am not sure why this would hang. Since you got as far as you did I would expect the Steam Linux Runtime option was used (an updated log would confirm), and either way, that would not impact this step (it would either fall over before that, or it would fall over when trying to launch Vortex afterwards).

sonic2kk commented 1 year ago

Thanks for the updated log, confirmed you're using the SLR option. I can also see that I was wrong and that I used GE-Proton8-2 to install Vortex, my bad.

I will try a fresh install with the SLR and with GE-Proton8-4. I wonder if for some reason GE-Proton8-4 is incompatible...

jbbandos commented 1 year ago

No idea what changed, but now the "vortex reset" finished after a couple of minutes, but Vortex never showed the interface. The same for the start. Here are the logs for the start vwrun.txt . steamtinkerlaunch.log

jbbandos commented 1 year ago

And here for the reset steamtinkerlaunch.log vwrun.txt vortset.cmd was deleted before I could copy it.

sonic2kk commented 1 year ago

I recall for some odd reason Pikdum had to restart their Steam Deck: https://github.com/sonic2kk/steamtinkerlaunch/issues/806#issuecomment-1565798646

Not sure if you already tried it

jbbandos commented 1 year ago

First thing I did... Turn it off then turn it on. :)

sonic2kk commented 1 year ago

Still works for me on my PC with the Steam Linux Runtime and GE-Proton8-4. I am not sure why it isn't working on your Steam Deck.

I wonder if Vortex is perhaps downloading an out-of-date version for some reason? I think it's highly unlikely but you can check ~/.config/steamtinkerlaunch/downloads/vortex and see which executable got downloaded. An expected version would be Vortex 1.8.0 or higher. If it's 1.7.0, it could be that it still requires dotnet.

Might also be worth trying a fresh prefix again, just in case, and with Steam opened if it isn't/wasn't originally = on Deck, Steam is opened automatically to load input drivers which aren't in the kernel the Deck uses, but it is possible to still close Steam to save on system resources etc so many users do.

I am testing this on a lunch break, but I will look into it more this evening if I run out of time.

Also, as a little aside, the step that hangs for you in prepareAllInstalledVortexGames takes almost exactly 5 minutes total on my PC, looking at the timestamps in the logs, so while the Deck may be slightly slower, 1 hour is definitely not right.

jbbandos commented 1 year ago

Vortex is 1.8.4 I'm starting to think of wiping the steamtinkerlaunch install and starting again. Just noticed that launching a game (Fallout New Vegas) and exiting, steam is now still showing it as running (the button has "stop") and when checking the process list, found several entries with vortex - C:\Program Files\Black Tree Gaming Ltd\Vortex\Vortex.exe --type=utility --utility-sub-type=network.mojom.NetworkService --lang=en-US --service-sandbox-type=none --user-data-dir=C:\users\steamuser\AppData\Roaming\Vortex --mojo-platform-channel-handle=980 --field-trial-handle=828,i,12712777374484825044,16980147297510111769,131072 --disable-features=SpareRendererForSitePerProcess,WinRetrieveSuggestionsOnlyOnDemand /prefetch:8 followed by steamtinkerlaunch waiting for FNV:


  72593 ?        S      0:01 bash /home/deck/.local/share/Steam/compatibilitytools.d/SteamTinkerLaunch/steamtinkerlaunch waitforexitandrun /run/media/mmcblk0p1/steamapps/common/Fallout New Vegas/FalloutNVLauncher.exe
  73568 ?        Sl     0:00 /home/deck/stl/deps/usr/bin/yad --image=/home/deck/stl/prefix/misc/steamtinkerlaunch.svg --notification --item-separator=, --menu=Kill Windows game,bash -c killProtonGame ???|Pause/unpause active window in 5 seconds,bash -c PauseGame ???|Shader menu,bash -c TrayShaderMenu ???|Open running game in VR,bash -c TrayVR ???|Pick window name,bash -c TrayPickWin ???|Steam Reset Collections,bash -c TraySRC ???|Update window template,bash -c TrayUWT ???|Launch custom script,bash -c TrayLCS ???|Game files,bash -c TrayGameFiles ???|Refresh Proton list,bash -c TrayProtonList ???|Mod Organizer 2,bash -c TrayMO2 \  ???|Open an Issue,bash -c TrayOpenIssue --text=RMB=Menu, LBM/MMB=Exit
  73572 ?        Ssl    0:00 /home/deck/stl/deps/usr/bin/yad --image=/home/deck/stl/prefix/misc/steamtinkerlaunch.svg --notification --item-separator=, --menu=Kill Windows game,bash -c killProtonGame ???|Pause/unpause active window in 5 seconds,bash -c PauseGame ???|Shader menu,bash -c TrayShaderMenu ???|Open running game in VR,bash -c TrayVR ???|Pick window name,bash -c TrayPickWin ???|Steam Reset Collections,bash -c TraySRC ???|Update window template,bash -c TrayUWT ???|Launch custom script,bash -c TrayLCS ???|Game files,bash -c TrayGameFiles ???|Refresh Proton list,bash -c TrayProtonList ???|Mod Organizer 2,bash -c TrayMO2 \  ???|Open an Issue,bash -c TrayOpenIssue --text=RMB=Menu, LBM/MMB=Exit
sonic2kk commented 1 year ago

I'm starting to think of wiping the steamtinkerlaunch install and starting again.

A handful of users on Steam Deck in the past reported doing this I think (might be able to find it mentioned in the deck support thread, I don't exactly recall where, it was many months ago at this point :-)), it might work.

The output you've shown is certainly strange, too. I am honestly not sure, I have never used Vortex to mod games and don't use mod managers on my Steam Deck (or mods in general on Deck for the most part).

There could be something deeper to this. Removing SteamTinkerLaunch and trying again might help, but I am not positive. It works for me currently, previously worked for a user who tested, and on the Linux Desktop it installed successfully in a recent currently open issue for another user. It is possible there is still some Deck-specific problem, or it could be that something got messed up somewhere along the trail.


It is probably not the case but there were recent changes around how STL handles Reaper. When launching, can you check to make sure there is a "reaper" process? (Unless you have intentionally disabled it, but I didn't see that in the logs and it's a very niche use-case)

sonic2kk commented 1 year ago

Oh also, you should be able to remove SteamTinkerLaunch both manually and from ProtonUp-Qt. And after removing, I would restart/remove /dev/shm/steamtinkerlaunch, just to ensure all lingering temp files are removed :-)

jbbandos commented 1 year ago

I checked now (right now vortex is hanging again after I killed all processes) and reaper only seems to be launched when I launch a game, not with vortex.

sonic2kk commented 1 year ago

I should've been clearer, that's exactly expected behaviour :-) Reaper is launched by Steam with games, but STL has an option to kill it for Proton games or remove it from the incoming launch command for native games. I was worried that change may have broken something here but it appears not.

Thanks for checking that though!

jbbandos commented 1 year ago

One thing I noticed - the git version of steamtinkerlauncher installs vortex 1.8.4, the "stable" (v12.1 in ProtonUp-Qt) tries to install v.1.8.5 but then hangs installing dotnet in that prefix.

jbbandos commented 1 year ago

Clean install, once again stuck at prepareAllInstalledVortexGames, been running for 25 minutes. vwrun.txt

vortset.cmd

steamtinkerlaunch.log

jbbandos commented 1 year ago

I've tested on my MX Linux PC. First difference - I get a dialog letting me choose the proton version to use with Vortex. That dialog is never shown on the deck. And of course, vortex runs always. Seems like this is steam deck specific.

sonic2kk commented 1 year ago

I get a dialog letting me choose the proton version to use with Vortex.

That is odd, I don't think I've seen that - Maybe it shows up if STL can't find download the latest GE or something.

Seems like this is steam deck specific.

I had a feeling but I appreciate you going the extra mile to test. This was tested to work before in the linked issue, and I really don't feel like bloating my Steam Deck to check myself, but I'm not sure why it isn't working now. 20+ minutes is a bit excessive (personally 10 is about the most I would be happy with) so I think it's safe to say it's broken at this step for some reason.

It might be worth trying GE-Proton8-2, as a couple of users have reported general problems/hangs with GE-Proton8-3. Unfortunately regular Valve Proton won't work because (unless they recently updated to include it) it's missing a Wine patch to allow Vortex to work (DiscardVirtualMemory stub is required for newer Chromium builds under Wine, which the version of Electron that Vortex 1.8.0 uses requires). GE-Proton8-2 and above include it, as does Proton-tkg based on Wine Master (available from ProtonUp-Qt), but it's possible GE-Proton8-3 and above are not working with Vortex for some reason, so using GE-Proton8-2 (which was used during testing iirc in #806) may work.

sonic2kk commented 1 year ago

You could also try disabling the SLR, just a weird idea I had... You can disable it on the Global Menu under Vortex options.

sonic2kk commented 1 year ago

Out of curiosity as well, which SteamOS release channel are you on?

jbbandos commented 1 year ago

I'm on the SteamOS beta channel, will probably try going back to the stable to see if it makes any difference. In the meantime, I had a breakthrough of sorts. I started killing Vortex.exe processes, starting from the most recent, and, after killing the second, vortex reset ended, and since then it has been sort of working.

And trying to run NVSE shows me that steamtinkerlaunch and of course vortex is getting different environments when run from the command line or from steam. If launched from steam, either letting everything time out (steamtinkerlaunch has detected nvse and changed the launch command for FNV to use NVSE) or running NVSE from vortex, it shows a terminal screen and exits. The NVSE logs show no errors, all end with "launched" or equivalent. I've added them here. falloutnv_error.log falloutnv_havok.log hr.log nvse_loader.log nvse_steam_loader.log nvse.log

If launched from the command line with "steamtinkerlaunch vortex start", running NVSE from vortex "works", but somehow it can't find FNV install (I included the screen cap showing that). NVSE Screenshot_20230608_073923

And finally, with GE-Proton8-2 vortex still hangs on the "reset", until I kill the last Vortex.exe process (80572 here):


  79445 pts/4    S+     0:00 /home/deck/.local/share/Steam/steamapps/common/SteamLinuxRuntime_sniper/pressure-vessel/bin/pv-bwrap --args 24 /usr/lib/pressure-vessel/from-host/bin/pressure-vessel-adverb --generate-locales --fd 14 --regenerate-ld.so-cache /run/pressure-vessel/ldso --add-ld.so-path /usr/lib/pressure-vessel/overrides/lib/x86_64-linux-gnu --add-ld.so-path /usr/lib/pressure-vessel/overrides/lib/i386-linux-gnu --set-ld-library-path /usr/lib/pressure-vessel/overrides/lib/x86_64-linux-gnu/aliases:/usr/lib/pressure-vessel/overrides/lib/i386-linux-gnu/aliases --exit-with-parent --subreaper --shell=none --terminal=none -- /home/deck/.local/share/Steam/steamapps/common/SteamLinuxRuntime_sniper/pressure-vessel/bin/steam-runtime-launcher-interface-0 container-runtime /home/deck/.config/steamtinkerlaunch/proton/custom/GE-Proton8-2/files/bin/wine /dev/shm/steamtinkerlaunch/vortset.cmd
  79524 ?        Ss     0:00 /usr/lib/pressure-vessel/from-host/bin/pressure-vessel-adverb --generate-locales --fd 14 --regenerate-ld.so-cache /run/pressure-vessel/ldso --add-ld.so-path /usr/lib/pressure-vessel/overrides/lib/x86_64-linux-gnu --add-ld.so-path /usr/lib/pressure-vessel/overrides/lib/i386-linux-gnu --set-ld-library-path /usr/lib/pressure-vessel/overrides/lib/x86_64-linux-gnu/aliases:/usr/lib/pressure-vessel/overrides/lib/i386-linux-gnu/aliases --exit-with-parent --subreaper --shell=none --terminal=none -- /home/deck/.local/share/Steam/steamapps/common/SteamLinuxRuntime_sniper/pressure-vessel/bin/steam-runtime-launcher-interface-0 container-runtime /home/deck/.config/steamtinkerlaunch/proton/custom/GE-Proton8-2/files/bin/wine /dev/shm/steamtinkerlaunch/vortset.cmd
  79550 ?        Ss     0:06 /home/deck/.config/steamtinkerlaunch/proton/custom/GE-Proton8-2/files/bin/wineserver
  80572 ?        S      0:00 C:\Program Files\Black Tree Gaming Ltd\Vortex\Vortex.exe --type=utility --utility-sub-type=network.mojom.NetworkService --lang=en-US --service-sandbox-type=none --user-data-dir=C:\users\steamuser\AppData\Roaming\Vortex --mojo-platform-channel-handle=980 --field-trial-handle=832,i,13606863116037598014,15183846872124892837,131072 --disable-features=SpareRendererForSitePerProcess,WinRetrieveSuggestionsOnlyOnDemand /prefetch:8
sonic2kk commented 1 year ago

running NVSE from vortex "works", but somehow it can't find FNV install

This is expected, Vortex and New Vegas have independent prefixes.

I don't use Vortex so maybe I'm understanding wrong, but doesn't Vortex work like this?

Not sure why the Vortex process is starting with the game.

You could try disabling the Steam Linux Runtime for both New Vegas and Vortex to see if it helps but I honestly have no idea, sorry about that.

jbbandos commented 1 year ago

Supposedly, you can launch FNV from vortex, launching NVSE from the tools menu. And when launching a game from steam, using steamtinkerlaunch, you're asked if you want to run vortex, and again, you can finally run the game from the vortex tools menu. So, something like this for your 4th step:

jbbandos commented 1 year ago
  • Fails deploying some mods, in particular NVSE. It renames the existing files to vortex_backup but then complains of file conflicts. - Identified this one, vortex is unable to create the links, even if they are in the same "drive" and filesystem.

The autodetected VORTEXSTAGELIST, as well as the suggested, was on "Z:\run\media\mmcblk0p1\Vortex Mods\", and the game is in "Z:\run\media\mmcblk0p1\steamapps\common\". Apparently both are the same "drive" and both are in the same filesystem, the SD card. However, changing the VORTEXSTAGELIST to "Z:\run\media\mmcblk0p1\steamapps\common\Vortex Mods\" allowed Vortex to finally mod the game FNV. SHould I open another issue on this one? No idea why Vortex fails to create links on the first structure and works on the second.

sonic2kk commented 1 year ago

Oh this is quite interesting! Talk about serendipity:

The autodetected VORTEXSTAGELIST, as well as the suggested, was on "Z:\run\media\mmcblk0p1\Vortex Mods", and the game is in "Z:\run\media\mmcblk0p1\steamapps\common".

However, changing the VORTEXSTAGELIST to "Z:\run\media\mmcblk0p1\steamapps\common\Vortex Mods" allowed Vortex to finally mod the game FNV

If I'm understanding correctly, Vortex and STL expect the path to be Z:\run\media\mmcblk0p1\Vortex\Mods (or in STLs case the posix equivalent) but that folder doesn't exist, it's actually at Z:\run\media\mmcblk0p1\steamapps\common\Vortex\Mods.

Just for some context for you or anyone reading in future: The Z drive in Wine is mapped to / by default where C is the actual prefix, Z is the equivalent of accessing your entire filesystem, so any path outside of the prefix usually starts with Z. There are cases where other drives may be mapped too (I've heard cases where Proton sometimes maps the SD card to E, or where Steam Flatpak maps the steamapps folder to S}.

So normally, STL creates the Vortex mod staging folder at /path/to/mount point/Vortex/mods. But yesterday when I was investigating https://github.com/sonic2kk/steamtinkerlaunch/commit/d57e57243e3ea37a52eb0fa6b5c7ceef82f01fad, I noticed that if STL can't write to the root of the mount point (in this case, if it can't create /run/media/mmcblk0p1/Vortex/Mods) it will fall back to creating it in the steamapps/common folder of that drive/partition (or in this case, microSD card heh). This is because it's expected that we can write here since Steam should always be able to write here as well to install games.

However, I have never once seen Vortex do this, so it is possible that there were changes/unaccounted for cases where even though the staging folder is created here, it just doesn't work.

It would be interesting if you could check ~/.config/steamtinkerlaunch/Vortex/stages.txt (I think that's the path)and send the contents. Also, if you could screenshot the contents of thesteamapps/common/Vortex/mods` folder (Spectacle allows you to take screenshots in Desktop Mode), it should have subfolders named after the games that Vortex has seen on your SD card if memory serves.

So back to this:

The autodetected VORTEXSTAGELIST

If the paths in the stages text file say that the path should be on the root mount point, but it was actually created in the steamapps folde, try:

  1. First, setting the staging folder path inside Vortex back to what it was
  2. Moving the Vortex folder from steamapps to /run/media/mmcblk0p1

Vortex might complain that your install is corrupted, but things should be fine (it likes to yell sometimes for no reason...)


Nice investigation! I don't think another issue is necessary, we can keep discussing here. If moving that folder works then we can take it from there :-)

It is very possible that not being able to find the mod staging folder is what's causing the prepareAllInstalledVortexGames to hang. If an invalid path is passed to Vortex there could be a hang. I'll have to test this myself later too! If so there'll need to be stricter checks around whether files and folders exist!

jbbandos commented 1 year ago

I think I didn't explain myself well... Vortex and STL expect the path to be Z:\run\media\mmcblk0p1\Vortex Mods. It is suggested there by vortex as a "fix" to allow creation of links. The folder is created there, and the mods are placed there. However, and this might be somehow connected to the issue you've found of STL being unable to write to the root of the mount point, when that path is used for the mods, attempts by vortex to create the links to the game path fail. When I change the path and move the mods to Z:\run\media\mmcblk0p1\steamapps\common\Vortex Mods, then vortex is able to deploy the mods. This is the error when the mods are in a path directly at the root of the mount point: warn: failed to link link=Textures\landscape\lod\wastelandnv\diffuse\wastelandnv.n.level4.x12.y8.dds, source=NMCs Textures NV LARGE Pack Part 2 of 3 FOR NMM -43135-1-0, error=EXDEV: cross-device link not permitted, link 'Z:\run\media\mmcblk0p1\Vortex Mods\falloutnv\NMCs Textures NV LARGE Pack Part 2 of 3 FOR NMM -43135-1-0\Textures\landscape\lod\wastelandnv\diffuse\wastelandnv.n.level4.x12.y8.dds' -> 'Z:\run\media\mmcblk0p1\steamapps\common\Fallout New Vegas\Data\Textures\landscape\lod\wastelandnv\diffuse\wastelandnv.n.level4.x12.y8.dds' This is no longer an issue with the mods placed under Z:\run\media\mmcblk0p1\steamapps\common\Vortex Mods It has a subfolder for the game (falloutnv).

Drive mapping - on my case, the sdcard is mapped to D:, but using that instead of 'Z:\run\media\mmcblk0p1' wasn't working, in the vortex logs I could see it going back to Z:... somehow.

sonic2kk commented 1 year ago

That is quite interesting. Are there any permissions issues that you can see on the root mount point? Can you write to the Vortex Mods folder directly on the SD card (not the one in steamapps/common)?

I did a quick Google search and found a couple of people complaining about EXDEV: cross-device link not permitted. I'll have to investigate more when I have some time, but I have a feeling this could be the root issue.

It might also be worth trying the following:

  1. Rename the Vortex folder at the SD card mount point (mmcblk0p1\Vortex Mods) (don't delete in case you need to revert the next step)
  2. Symlink the Vortex Mods folder at steamapps/common to the SD card mount point
  3. Try your mods again and hope for profit!

Interestingly, the folder probably shouldn't be named Vortex Mods. On my PC the hardlink staging dirs are named Vortex/Mods.

Also, if you can, I'm very interested to see the contents of ~/.config/steamtinkerlaunch/vortex/stages.txt (I think that's the path) :-)

jbbandos commented 1 year ago

BTW, it still will not start under steam. Now NVSE sees all the patches, seems it installs everything, and then silently exits again. ReShade.log ui_organizer.log SUPNVSE.log ShowOffNVSE.log NVTF.log nvse.log nvse_steam_loader.log mcm.log falloutnv_havok.log falloutnv_error.log ClimateControl.log AnhNVSE.log nvse_loader.log kNVSE.log JohnnyGuitarNVSE.log jip_ln_nvse.log ImprovedConsole.log hr.log

jbbandos commented 1 year ago

Starting from the last:

$ cat ~/.config/steamtinkerlaunch/vortex/stages.txt
/home/deck/.config/steamtinkerlaunch/vortex/staging

I see nothing particular on the root of the sdcard. Vortex could write to the folder, in fact, I moved the whole folder to steamapps/common/ with all the mods already expanded there. It was just failing to link from it.

I tried moving the folder back to /run/media/mmcblk0p1 and linking it to /run/media/mmcblk0p1/steamapps/common, and vortex fails again with the same EXDEV error. It seems that proton/wine consider the root of the SD to be in a different filesystem from the steamapps/common, even as it is the same.

sonic2kk commented 1 year ago

Starting from the last:

This is not good, it looks like the Vortex staging folders are not being set up correctly on your Steam Deck. It hasn't seen a staging folder correctly on your microSD. Even though one does exist. However the name of the modding folder in steamapps/common does not follow the convention of how STL creates the staging folders.

It seems that proton/wine consider the root of the SD to be in a different filesystem from the steamapps/common, even as it is the same.

It's been a while since I had a look, but I think the Steam Deck might have some specific Wine mappings? I recall something about this on I think the Resident Evil 4 HD modding guide for Steam Deck. This could be messing things up and would explain why things work as expected on your PC but not your Steam Deck - though it doesn't explain why Vortex worked for other users, but the missing staging path may be to blame.

seems that proton/wine consider the root of the SD to be in a different filesystem from the steamapps/common, even as it is the same.

I'll keep this in mind when searching for solutions to this link issue.

jbbandos commented 1 year ago

Another issue I just noticed. If I launch vortex via steam (launch fallout NV, ignore steamtinkerlaunch popup, click to launch vortex on the next popup), then the EXDEV link error appears again, even with the mods dir in steamapps/common. Can't deploy any mod at all. Could be because of the different prefix, I don't know.

sonic2kk commented 1 year ago

You could try removing all your mods, removing the Vortex Mods folder, any other mod folders you can think of, and then entirely removing the Vortex installation from the STL config dir (the whole steamtinkerlaunch/vortex dir).

Optional Quest: before installing Vortex again, in the Global Menu Vortex settings, there should be a checkbox for setting up the staging dirs/game detection. You can try turning this off and seeing if Vortex at least launches. This means your games won't have any setup configured as far as I know (I hate Nexusmods so I don't have much understanding of how Vortex works for setting up mods).

If that isn't desirable, just try a regular install again and then if/when it hangs on the preparing step mentioned in this issue, check to see if you have a "Vortex/Mods" folder created by STL on your SD card root, or if you incorrectly have a "Vortex Mods" folder created somehow. You can once again check the STL stages file.

It would be worth as well checking through the steps in the logs to see if STL complains about not being able to set up a staging folder on the SD card or something.

Sorry I can't really be of more help.

sonic2kk commented 1 year ago

According to #828, the Steam Linux Runtime seems to cause issues when linking. This user appeared to have no issues with the step you mentioned, but I am not sure where their games are installed etc.

Either way, it seems the SLR is a lead here. If a fresh Vortex install doesn't work, enable the "Disable autostages" checkbox and try again. If/when you get Vortex running successfully, try deploying mods with the Steam Linux Runtime disabled.

sonic2kk commented 1 year ago

A new branch has been pushed, vortex-runtime-pain. Feel free to download and try it. You can install it from ProtonUp-Qt by choosing SteamTinkerLaunch-git, and choosing that branch name from the "Version" dropdown.

This likely won't solve the issue of Vortex hanging, but it might solve the deployment link issue.

sonic2kk commented 1 year ago

To echo what I've said in #828, I am done with Vortex support for now, so if you get a chance to test that branch I will use that to either merge #829 or close the PR if it doesn't work.

I am unable to give further support for a piece of software I do not use nor like, so going forward I will only accept Vortex issues if they are enhancements detailing how to fix an issue with Vortex. This is not a slight against you, I am just exhausted dealing with Vortex. Long before I even knew about SteamTinkerLaunch, I always advised people I knew to stay away from Vortex (and even back then it was Nexus Mod Manager) and just mod manually.

I am not able to help users who have issues with Vortex any longer, as installation works on my Linux PC, and I am unwilling to bloat my Steam Deck with any kind of mods beyond simple game patches, so I cannot and will not test Vortex on my Steam Deck.

Vortex support is better handled by someone who is interested in Vortex, and that is not me unfortunately. I appreciate all of the discussion here, but due to my lack of knowledge and interest in Vortex, I am unable to give any further help. In future, Vortex support may be removed entirely from SteamTinkerLaunch, for the reasons here. Steam Deck has continually been draining my motivation to work on SteamTinkerLaunch in general, the issues with tinkering on the platform are becoming very apparent (which is why I had the foresight to avoid jumping on the Steam Deck modding train) and generally speaking, the audience that adopted it turned out to be general gamers who are new to Linux and not Linux enthusiasts, so they don't have the experience to do any of the investigation that has been done in this issue for example. The attitudes of these kinds of users and the unhelpful issue reports (i.e. blank, abandoned, no knowledge to do further troubleshooting) has had a massive toll on me.

After you have had a chance to test, I will close this issue.

jbbandos commented 1 year ago

Fair enough. My interest in Vortex was only because I wanted to install a collection of patches for FNV. And since I don't use my desktop for gaming, the deck seemed like the ideal system, and SteamTinkerLaunch seemed made to order. I do understand your point - but I am hoping we manage to find the issues and fixes now. Last case, I just need to find a few extra hours in the day and start looking at SteamTinkerLaunch architecture and code (which I admit I haven't done yet). I'll test the pain branch asap, probably tomorrow at the end of the day.

sonic2kk commented 1 year ago

No hurry to test, I appreciate it. I usually close issues after around 7-10 days of zero activity, so just chime in if you're still interested in testing but haven't gotten around to it yet - we all have personal lives, and some silly bash script is not anyone's top priority heh.

Last case, I just need to find a few extra hours in the day and start looking at SteamTinkerLaunch architecture and code (which I admit I haven't done yet).

If you ever decide to take a look I can try to help where I can (feel free to open issues, like #822 - I don't use GitHub Discussions because users incorrectly use it for reporting bugs and I got tired of it). Though if you look at something and think "why the heck is this part implemented like this and not like that", it's potentially an area that can be improved. In other words, there is likely much area for improvement.

Much of the Vortex code is wrapped in a #### VORTEX START: ####, that might help a bit :-)


the deck seemed like the ideal system, and SteamTinkerLaunch seemed made to order.

You aren't the only one, so it isn't any kind of slight against you because in general I need a way to make it clearer to users that SteamTinkerLaunch is primarily a Linux Desktop tool for configuring game launch options and for use on the commandline (I mostly use STL for One-Time Run and to get things like game paths and IDs). I have STL on my Deck and the only things I have really used it for is installing the STEINS;GATE translation patches with One-Time Run.

jbbandos commented 1 year ago

Hi, The "pain" branch seems to have fixed the reset issue:

$ steamtinkerlaunch vortex install
Preparing to install SteamTinkerLaunch on Steam Deck
Downloading latest SteamTinkerLaunch

Dependency 'innoextract' already installed, nothing to do.
Dependency 'cabextract' already installed, nothing to do.
Dependency 'yad' already installed, nothing to do.

Finished installing SteamTinkerLaunch ('v14.0.20230609-1 (vortex-runtime-pain)')!
wineserver: using server-side synchronization.
wine: RLIMIT_NICE is <= 20, unable to use setpriority safely
$ steamtinkerlaunch vortex games
Preparing to install SteamTinkerLaunch on Steam Deck
Downloading latest SteamTinkerLaunch

Dependency 'innoextract' already installed, nothing to do.
Dependency 'cabextract' already installed, nothing to do.
Dependency 'yad' already installed, nothing to do.

Finished installing SteamTinkerLaunch ('v14.0.20230609-1 (vortex-runtime-pain)')!
grep: /dev/shm/steamtinkerlaunch/VGNLIST.txt: No such file or directory
grep: /dev/shm/steamtinkerlaunch/VGNLIST.txt: No such file or directory
grep: /dev/shm/steamtinkerlaunch/VGNLIST.txt: No such file or directory
grep: /dev/shm/steamtinkerlaunch/VGNLIST.txt: No such file or directory
$ steamtinkerlaunch vortex reset
Preparing to install SteamTinkerLaunch on Steam Deck
Downloading latest SteamTinkerLaunch

Dependency 'innoextract' already installed, nothing to do.
Dependency 'cabextract' already installed, nothing to do.
Dependency 'yad' already installed, nothing to do.

Finished installing SteamTinkerLaunch ('v14.0.20230609-1 (vortex-runtime-pain)')!
grep: warning: stray \ before :
sed: -e expression #1, char 0: no previous regular expression
Sat Jun 10 08:35:02 AM CEST 2023 INFO - prepareAllInstalledVortexGames - Preparing all installed games supported by Vortex
Preparing Vortex game 'Kerbal Space Program (220200)' with Nexus GameID 'kerbalspaceprogram'
Preparing Vortex game 'Fallout New Vegas (22380)' with Nexus GameID 'falloutnv'
Preparing Vortex game 'No Man's Sky (275850)' with Nexus GameID 'nomanssky'
Preparing Vortex game 'Fallout 4 (377160)' with Nexus GameID 'fallout4'
Sat Jun 10 08:35:42 AM CEST 2023 INFO - prepareAllInstalledVortexGames - Applying Vortex settings for all games via autogenerated cmd '/dev/shm/steamtinkerlaunch/vortset.cmd'
Sat Jun 10 08:36:32 AM CEST 2023 INFO - prepareAllInstalledVortexGames - Symlinks, registry entries and vortex settings for all found supported games should be ready at this point for Vortex
grep: warning: stray \ before :
Sat Jun 10 08:36:41 AM CEST 2023 INFO - resetVortexSettings - Diff between Vortex settings before and after reset:
--- /dev/shm/steamtinkerlaunch/vortsetbefore.txt        2023-06-10 08:35:02.380298445 +0200
+++ /dev/shm/steamtinkerlaunch/vortsetafter.txt 2023-06-10 08:36:41.222390348 +0200
@@ -2,4 +2,16 @@
 logging started
 info: next step processing=undefined, nextStepId=undefined
 info: next incomplete preset not yet set
-
+settings.downloads.path = "Z:\\home\\deck\\.config\\steamtinkerlaunch\\vortex\\downloads"
+settings.gameMode.discovered.fallout4.environment.SteamAPPId = 377160
+settings.gameMode.discovered.fallout4.hidden = false
+settings.gameMode.discovered.fallout4.path = "Z:\\home\\deck\\.local\\share\\Steam\\steamapps\\common\\Fallout 4"
+settings.gameMode.discovered.fallout4.pathSetManually = true
+settings.gameMode.discovered.nomanssky.environment.SteamAPPId = 275850
+settings.gameMode.discovered.nomanssky.hidden = false
+settings.gameMode.discovered.nomanssky.path = "Z:\\home\\deck\\.local\\share\\Steam\\steamapps\\common\\No Man's Sky"
+settings.gameMode.discovered.nomanssky.pathSetManually = true
+settings.mods.activator.fallout4 = hardlink_activator
+settings.mods.activator.nomanssky = hardlink_activator
+settings.mods.installPath.fallout4 = "Z:\\home\\deck\\.config\\steamtinkerlaunch\\vortex\\staging\\{GAME}\\mods"
+settings.mods.installPath.nomanssky = "Z:\\home\\deck\\.config\\steamtinkerlaunch\\vortex\\staging\\{GAME}\\mods"
$ cat ~/.config/steamtinkerlaunch/vortex/stages.txt
/home/deck/.config/steamtinkerlaunch/vortex/staging

I'm doing a complete "patch from scratch" cycle now, but even if it fails, I think you can close this issue. I had issues with patches not being recognized as installed (and working on my linux desktop), but even if a complete clean start doesn't fix them, they are probably related to vortex/proton/steamOS.

jbbandos commented 1 year ago

Ok, there is something fundamentally broken with regards to patching on the steam deck. I did the following: Installed exactly the same patches collection with Vortex on the deck and on my desktop PC Loading on the deck a game saved on the PC, complained about missing mods, and indeed, there were several issues, including missing textures and fonts Did the brute force approach of rsyinc all the (patched) fallout NV directory from the PC to the deck, exactly the same issues Next step, I can only think I'll need to check the prefix, even going to the windows registry...

sonic2kk commented 1 year ago

Thanks for testing, I just noticed the following from the output you shared:

Finished installing SteamTinkerLaunch ('v14.0.20230609-1 (vortex-runtime-pain)')! grep: warning: stray \ before : sed: -e expression #1, char 0: no previous regular expression

What is this sed issue I wonder...


EDIT: #829 has been merged :-)

sonic2kk commented 1 year ago

I am working on an experiment which will attempt to only use the SLR when installing Vortex and running Vortex for a regular first-run. I suspect the Steam Linux Runtime is causing issues with vortcmd, which would explain why on the branch you were able to run steamtinkerlaunch vortex reset - The reset function (as well as prepareAllInstalledVortexGames) make calls to wineVortexRun which runs Vortex with the SLR based on two conditions:

In the case of a first launch, the SLR would probably be available, but since Vortex didn't install dotnet6, it wouldn't be installed and so STL would run the vortcmd in the Steam Linux Runtime. This may be resulting in errors if Vortex can't access/correctly work with the filesystem when inside of the Steam Linux Runtime (as we saw with #828). I noticed that when running steamtinkerlaunch vortex reset I got the same output you did at these lines:

Sat Jun 10 08:35:42 AM CEST 2023 INFO - prepareAllInstalledVortexGames - Applying Vortex settings for all games via autogenerated cmd '/dev/shm/steamtinkerlaunch/vortset.cmd'
Sat Jun 10 08:36:32 AM CEST 2023 INFO - prepareAllInstalledVortexGames - Symlinks, registry entries and vortex settings for all found supported games should be ready at this point for Vortex

Note specifically, symlinks. Both you and the user in #828 confirmed that there are link errors from Vortex when running inside of the SLR.

So my thinking is that the SLR is the culprit here. I will probably just push the changes directly to master and ask for some testing.

sonic2kk commented 1 year ago

Pushed the change, feel free to try a fresh install :-)

jbbandos commented 1 year ago

Hi, I've done a small detour, trying other solutions to get vortex, and most importantly, patches, to work. I found out https://github.com/pikdum/steam-deck and a small adaptation of his batch (to add support to FNV) worked for me. Main differences are where he installs vortex (at ~/.pikdum/steam-deck-master/vortex/) and that he uses a small .js app to set vortex options (https://github.com/pikdum/vortex-linux). Also, and I think more important in getting patches to work, he has post-deploy scripts that copy loadorder.txt and plugins.txt from the vortex prefix to the game prefix. On the steam deck specific part, he sets up drive letters for the device and uSD steamapps directories, which also helps the end user. In the end of my testing, I've also added a pre-deploy linking of ini files from FNV to vortex prefix, that with pikdum approach won't be easy to set up, but with yours should be ok.

I am thinking that most of that should be "easy" to implement, and if you want I can take a look at your vortex specific code during this week to see if I can do it?

In the meantime, later today or early tomorrow I'll go ahead wiping everything and testing your new branch.

sonic2kk commented 1 year ago

I am thinking that most of that should be "easy" to implement, and if you want I can take a look at your vortex specific code during this week to see if I can do it?

The only part I am not very keen on implementing is mapping the drives in Wine. Apart from that, have at it with whatever improvements you can think of!


If another Vortex project worked, I guess we can close this issue.