Hi there,
I would like to use WeMod on Steam Deck and share my current experience. I have read several guides (several long videos, picture series, sharing gigabytes of fully installed file structures on Github), but I don’t feel that the problem is fully understood. It feels like it is more of a guessing game.
-
I created a new “Add Non-Steam Games to a Library” entry and installed “Proton-6.19-GE-2” with ProtonUp-Qt (from the Discover package manager) to extract the file https://api.wemod.com/client/download and changed the Steam compatibility setting to use this version of Proton for the created “Non-Steam Game” entry in the Steam library. Extraction of the files was then successful.
-
I then installed the .NET Framework 4.8 “Free Download Offline Installer (69.4 MB)” from WineHQ - .NET Framework 4.8 successfully (it seems).
-
Then I upgraded to Windows 7 using Protontricks (also from the Discover package manager).
-
Now I changed the Steam entry again, first the link to the created compatdata folder to start “[…path_to_folder…]/pfx/drive_c/users/steameuser/AppData/Local/WeMod” 2> /home/deck/Desktop/WeMod.txt
and secondly to switch to the Proton version “Proton Experimental”. -
I now see error messages on the desktop when I try to start WeMod.
Here are the errors:
[288:1103/173621.995:ERROR:network_change_notifier_win.cc(143)] WSALookupServiceBegin failed with: 0
Fossilize INFO: Overriding serialization path: "/home/deck/.local/share/Steam/steamapps/shadercache/.../fozpipelinesv6/steamapprun_pipeline_cache".
[408:1103/173622.943:ERROR:network_change_notifier_win.cc(143)] WSALookupServiceBegin failed with: 0
Error occurred in handler for 'ACTION_CHECK_FOR_UPDATE': Error: Command failed: 4294967295
System.AggregateException: One or more errors occurred. (The type initializer for 'System.Uri' threw an exception.) ---> System.TypeInitializationException: The type initializer for 'System.Uri' threw an exception. ---> System.TypeInitializationException: The type initializer for 'System.UriParser' threw an exception. ---> System.MissingMethodException: Method not found: bool System.Runtime.Versioning.BinaryCompatibility.get_TargetsAtLeast_Desktop_V4_5()
--- End of inner exception stack trace ---
at (wrapper managed-to-native) System.Object.__icall_wrapper_mono_generic_class_init(intptr)
at System.Uri..cctor () [0x00000] in <f5c1cf7e75a94ccaa98b39898fde8d44>:0
--- End of inner exception stack trace ---
at Squirrel.UpdateManager+CheckForUpdateImpl.CheckForUpdate (Squirrel.UpdaterIntention intention, System.String localReleaseFile, System.String updateUrlOrPath, System.Boolean ignoreDeltaUpdates, System.Action`1[T] progress, Squirrel.IFileDownloader urlDownloader) [0x00159] in <c962294560ee4362aca054b870bed731>:0
at Squirrel.UpdateManager.CheckForUpdate (System.Boolean ignoreDeltaUpdates, System.Action`1[T] progress, Squirrel.UpdaterIntention intention) [0x00107] in <c962294560ee4362aca054b870bed731>:0
at Squirrel.Update.Program.CheckForUpdate (System.String updateUrl, System.String appName) [0x000e7] in <c962294560ee4362aca054b870bed731>:0
--- End of inner exception stack trace ---
at System.Threading.Tasks.Task.ThrowIfExceptional (System.Boolean includeTaskCanceledExceptions) [0x00011] in <69ebfd1fc56040acade074e61bd61307>:0
at System.Threading.Tasks.Task`1[TResult].GetResultCore (System.Boolean waitCompletionNotification) [0x0002b] in <69ebfd1fc56040acade074e61bd61307>:0
at System.Threading.Tasks.Task`1[TResult].get_Result () [0x0000f] in <69ebfd1fc56040acade074e61bd61307>:0
at Squirrel.Update.Program.executeCommandLine (System.String[] args) [0x0018f] in <c962294560ee4362aca054b870bed731>:0
at Squirrel.Update.Program.main (System.String[] args) [0x00113] in <c962294560ee4362aca054b870bed731>:0
at Squirrel.Update.Program.Main (System.String[] args) [0x00006] in <c962294560ee4362aca054b870bed731>:0
---> (Inner Exception #0) System.TypeInitializationException: The type initializer for 'System.Uri' threw an exception. ---> System.TypeInitializationException: The type initializer for 'System.UriParser' threw an exception. ---> System.MissingMethodException: Method not found: bool System.Runtime.Versioning.BinaryCompatibility.get_TargetsAtLeast_Desktop_V4_5()
--- End of inner exception stack trace ---
at (wrapper managed-to-native) System.Object.__icall_wrapper_mono_generic_class_init(intptr)
at System.Uri..cctor () [0x00000] in <f5c1cf7e75a94ccaa98b39898fde8d44>:0
--- End of inner exception stack trace ---
at Squirrel.UpdateManager+CheckForUpdateImpl.CheckForUpdate (Squirrel.UpdaterIntention intention, System.String localReleaseFile, System.String updateUrlOrPath, System.Boolean ignoreDeltaUpdates, System.Action`1[T] progress, Squirrel.IFileDownloader urlDownloader) [0x00159] in <c962294560ee4362aca054b870bed731>:0
at Squirrel.UpdateManager.CheckForUpdate (System.Boolean ignoreDeltaUpdates, System.Action`1[T] progress, Squirrel.UpdaterIntention intention) [0x00107] in <c962294560ee4362aca054b870bed731>:0
at Squirrel.Update.Program.CheckForUpdate (System.String updateUrl, System.String appName) [0x000e7] in <c962294560ee4362aca054b870bed731>:0 <---
at ChildProcess.<anonymous> (C:\users\steamuser\AppData\Local\WeMod\app-8.11.6\resources\app.asar\index.js:1:18426)
at ChildProcess.emit (node:events:513:28)
at ChildProcess._handle.onexit (node:internal/child_process:291:12)
My understanding is that there seem to be problems with the network request ‘ACTION_CHECK_FOR_UPDATE’. According to google (uploaded WeMod.log - how to create these?) this might be some request to “https://api.w_emod.com/client/channels/[channel]” (modified to prevent link clicking)
My understanding is that there are problems with installing dotnet in a wine environment, which Microsoft could fix, but I don’t think they will. Maybe something is missing in the Windows registry after switching from one version of Proton to another.
I was going to suggest using PublishSingleFile to make a “portable” version of WeMod, but I understand that this is not supported in dotnet 4.8, which WeMod uses.
I hope there is another solution, as the alternatives (CE, Memory-Deck) somehow work with SteamTinkerLauncher, but don’t provide the same experience.
Best,