-
Notifications
You must be signed in to change notification settings - Fork 1.1k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Skyrim Script Extender (365720) #170
Comments
This Patch can be used to fix SKSE and F4SE |
How do we use that patch, @9ParsonsB? If you'll excuse my ignorance... |
If this is about SKSE for original Skyrim and not SKSE64 for SkyrimSE, my patches shouldn't be necessary. To my knowledge SKSE works fine under normal wine. |
Yes. SKSE runs perfectly fine when you Wine Steam and such. However, if you try the installer, archive, or the Steam mod, under the native linux steam with proton, it simply will not start. You open up the SKSE loader and it immediately crashes. |
Hello, I have a work around which partially works...
|
@malahx I've not had a chance to play around much with this yet, but based on my research there should be an executable called proton_run created in /tmp that could potentially be used to run skse without needing to rename files. Here's the info (found through Shenmue): https://www.shenmuedojo.com/forum/index.php?threads/request-shenmue-1-ii-for-linux-steam-install-guide-request-even-if-you-dont-use-linux-so-that-linux-users-can-play-the-game-as-well.399/ specifically the steps:
Looking forward to trying it out when I get a chance myself, just too much going on for me right now to start playing skyrim again. |
Skyrim (72850) Script Extender (SKSE) (365720) fail to load Issue transferred from #1654. Compatibility Report
System Information
I confirm:
There are compatibility reports for both apps, but no one mention this specific issue. SymptomsAt a glance symptoms looks very similar to https://bugs.winehq.org/show_bug.cgi?id=43844 - any chance this year-old change wasn't merged to Proton yet? ReproductionInstall (using Steam) Skyrim, Skyrim Script Extender. Then manually install SkyUI mod from https://www.nexusmods.com/skyrim/mods/3863 by copying SkyUI.bsa and SkyUI.esp files into steamapps/common/Skyrim/Data/. Now start Skyrim, start new game, and you'll see error from SkyUI about absent Skyrim Script Externder (SKSE). |
I've fixed issue with SKSE by changing kernel from 4.9.74 with GrSecurity/PaX to 4.14.65 without GrSecurity/PaX (more details at #460 (comment)). |
$ ./winedbg_run
|
Using these patches I was able to get SKSE working with Proton 3.16-5: https://github.com/hdmap/wine-hackery/tree/master/f4se. I built wine with the patches and then copied ntdll.dll.so into the existing proton directory. Now it works. I don't know if this needs to be submitted as a request for the wine team or the proton team, but somehow these patches need to become more readily available to the end user. |
@Lyle-Tafoya what version of wine did you use? |
I did a git clone of proton and used whichever version of wine it uses. I ran the git submodule update --init and then I applied the patches to the wine directory before building. However, I found a post on reddit indicating that it is possible to perform a binary patch against ntdll.dll.so instead of having to build it from source. I have not tried that method, but it's probably faster and easier. You can read more about that here: https://www.reddit.com/r/wine_gaming/comments/9uk36c/fallout_4_how_to_get_fallout_4_script_extender/ I am able to run getskseversion from the console in skyrim and get a version string (which I was unable to do before) and the skse log seems to indicate normal behavior, although I'll admit I haven't yet found a mod which works correctly with skse under proton. |
I just realized that the above comments already discussed this. I didn't realize this was an issue specific to special edition. It looks like this doesn't apply here. My apologies. |
These are patches to get Fallout 4 Script Extender working in wine. f4se allocates memory for trampolines in the spaces before the Fallout4 exe image and the f4se dll image. These patches: 1. Fix VirtualQuery rejecting any blocks before the image as already allocated (it looks like get_free_mem_state_callback sees blocks before the exe base address as overlapping the exe base from calculating the block end address as block start address + size, ie a 256 byte block starting at 0x100 would "end" at 0x200). 2. Switches dlls not loaded at their preferred address to be loaded at high addresses rather than low ones to work around code in f4se that gives up allocating the trampolines (it compares the address being queried to a lowest acceptable address computed by subtracting 0x78000000 from the module address, which will wrap around and fail with lower addresses even if there's free space). Apparently these patches also get SkyrimSE script extender working, but I don't own that so I can't test that. Github-Link: https://github.com/hdmap/wine-hackery/tree/master/f4se Github-Link: ValveSoftware#7 Github-Link: ValveSoftware/Proton#170 Signed-off-by: Kai Krakow <kai@kaishome.de>
Feature Request + Modding Report: The Elder Scrolls V: Skyrim Special Edition (489830) Issue transferred from #2216. Feature RequestIntegrate patch found here: https://github.com/hdmap/wine-hackery/tree/master/f4se They were originally done for Fallout 4/F4SE but also works for SKSE64. I confirm:
DescriptionNon-SKSE64 mods are working. You can either manually drop them in the Data folder and edit your loadorder.txt and plugins.txt files, or you can install a mod manager (I'm using Nexus' Vortex currently) via Wine or Proton. I have played a few hours now with several mods, both plugins and loose files/texture and audio replacers. SKSE64 however does not work. It silently fails and just goes on to load Skyrim without hooking in. I've been doing some digging and it's a difference in how it loads into memory compared to SKSE for Skyrim Legendary Edition (72850). There are patches for Wine that address the same issue with F4SE for Fallout 4, and because SKSE64 works in the same way this fixes the problem. Justification [optional]This would open up Skyrim SE and Fallout 4 modding without needing to jump through hoops or compile their own versions of Proton and/or Wine. They still would need to get a mod manager working on their own if they want to use one, but having SKSE64 or F4SE working without hassle would eliminate a major roadblock. Combined with the FAudio patches which seem to be already being worked on, this could help make both Skyrim Special Edition and Fallout 4 candidates for whitelisting. Risks [optional]None known. References [optional] |
These are patches to get Fallout 4 Script Extender working in wine. f4se allocates memory for trampolines in the spaces before the Fallout4 exe image and the f4se dll image. These patches: 1. Fix VirtualQuery rejecting any blocks before the image as already allocated (it looks like get_free_mem_state_callback sees blocks before the exe base address as overlapping the exe base from calculating the block end address as block start address + size, ie a 256 byte block starting at 0x100 would "end" at 0x200). 2. Switches dlls not loaded at their preferred address to be loaded at high addresses rather than low ones to work around code in f4se that gives up allocating the trampolines (it compares the address being queried to a lowest acceptable address computed by subtracting 0x78000000 from the module address, which will wrap around and fail with lower addresses even if there's free space). Apparently these patches also get SkyrimSE script extender working, but I don't own that so I can't test that. Github-Link: https://github.com/hdmap/wine-hackery/tree/master/f4se Github-Link: ValveSoftware#7 Github-Link: ValveSoftware/Proton#170 Signed-off-by: Kai Krakow <kai@kaishome.de>
These are patches to get Fallout 4 Script Extender working in wine. f4se allocates memory for trampolines in the spaces before the Fallout4 exe image and the f4se dll image. These patches: 1. Fix VirtualQuery rejecting any blocks before the image as already allocated (it looks like get_free_mem_state_callback sees blocks before the exe base address as overlapping the exe base from calculating the block end address as block start address + size, ie a 256 byte block starting at 0x100 would "end" at 0x200). 2. Switches dlls not loaded at their preferred address to be loaded at high addresses rather than low ones to work around code in f4se that gives up allocating the trampolines (it compares the address being queried to a lowest acceptable address computed by subtracting 0x78000000 from the module address, which will wrap around and fail with lower addresses even if there's free space). Apparently these patches also get SkyrimSE script extender working, but I don't own that so I can't test that. Github-Link: https://github.com/hdmap/wine-hackery/tree/master/f4se Github-Link: ValveSoftware#7 Github-Link: ValveSoftware/Proton#170 Signed-off-by: Kai Krakow <kai@kaishome.de>
These are patches to get Fallout 4 Script Extender working in wine. f4se allocates memory for trampolines in the spaces before the Fallout4 exe image and the f4se dll image. These patches: 1. Fix VirtualQuery rejecting any blocks before the image as already allocated (it looks like get_free_mem_state_callback sees blocks before the exe base address as overlapping the exe base from calculating the block end address as block start address + size, ie a 256 byte block starting at 0x100 would "end" at 0x200). 2. Switches dlls not loaded at their preferred address to be loaded at high addresses rather than low ones to work around code in f4se that gives up allocating the trampolines (it compares the address being queried to a lowest acceptable address computed by subtracting 0x78000000 from the module address, which will wrap around and fail with lower addresses even if there's free space). Apparently these patches also get SkyrimSE script extender working, but I don't own that so I can't test that. Github-Link: https://github.com/hdmap/wine-hackery/tree/master/f4se Github-Link: ValveSoftware#7 Github-Link: ValveSoftware/Proton#170 Signed-off-by: Kai Krakow <kai@kaishome.de>
These are patches to get Fallout 4 Script Extender working in wine. f4se allocates memory for trampolines in the spaces before the Fallout4 exe image and the f4se dll image. These patches: 1. Fix VirtualQuery rejecting any blocks before the image as already allocated (it looks like get_free_mem_state_callback sees blocks before the exe base address as overlapping the exe base from calculating the block end address as block start address + size, ie a 256 byte block starting at 0x100 would "end" at 0x200). 2. Switches dlls not loaded at their preferred address to be loaded at high addresses rather than low ones to work around code in f4se that gives up allocating the trampolines (it compares the address being queried to a lowest acceptable address computed by subtracting 0x78000000 from the module address, which will wrap around and fail with lower addresses even if there's free space). Apparently these patches also get SkyrimSE script extender working, but I don't own that so I can't test that. Github-Link: https://github.com/hdmap/wine-hackery/tree/master/f4se Github-Link: ValveSoftware#7 Github-Link: ValveSoftware/Proton#170 Signed-off-by: Kai Krakow <kai@kaishome.de>
These are patches to get Fallout 4 Script Extender working in wine. f4se allocates memory for trampolines in the spaces before the Fallout4 exe image and the f4se dll image. These patches: 1. Fix VirtualQuery rejecting any blocks before the image as already allocated (it looks like get_free_mem_state_callback sees blocks before the exe base address as overlapping the exe base from calculating the block end address as block start address + size, ie a 256 byte block starting at 0x100 would "end" at 0x200). 2. Switches dlls not loaded at their preferred address to be loaded at high addresses rather than low ones to work around code in f4se that gives up allocating the trampolines (it compares the address being queried to a lowest acceptable address computed by subtracting 0x78000000 from the module address, which will wrap around and fail with lower addresses even if there's free space). Apparently these patches also get SkyrimSE script extender working, but I don't own that so I can't test that. Github-Link: https://github.com/hdmap/wine-hackery/tree/master/f4se Github-Link: ValveSoftware#7 Github-Link: ValveSoftware/Proton#170 Signed-off-by: Kai Krakow <kai@kaishome.de>
These are patches to get Fallout 4 Script Extender working in wine. f4se allocates memory for trampolines in the spaces before the Fallout4 exe image and the f4se dll image. These patches: 1. Fix VirtualQuery rejecting any blocks before the image as already allocated (it looks like get_free_mem_state_callback sees blocks before the exe base address as overlapping the exe base from calculating the block end address as block start address + size, ie a 256 byte block starting at 0x100 would "end" at 0x200). 2. Switches dlls not loaded at their preferred address to be loaded at high addresses rather than low ones to work around code in f4se that gives up allocating the trampolines (it compares the address being queried to a lowest acceptable address computed by subtracting 0x78000000 from the module address, which will wrap around and fail with lower addresses even if there's free space). Apparently these patches also get SkyrimSE script extender working, but I don't own that so I can't test that. Github-Link: https://github.com/hdmap/wine-hackery/tree/master/f4se Github-Link: ValveSoftware#7 Github-Link: ValveSoftware/Proton#170 Signed-off-by: Kai Krakow <kai@kaishome.de>
At times it happens that Skyrim doesn’t launch. It gets caught in a small loading screen or nothing occurs when you try to open the executable. This problem has been there since the nemesis of the game and irritates users often. We will let you know that how can you fix it without wasting your time. 1- Refreshing Steam Entirely: Let it confirm that you backup your data and have the credentials. You have to change the essential Steam installation files and try not to get your downloaded game data removed. You are supposed to fix the Steam library files and if that doesn’t work then refresh the app on your own. 2- Checking Installed Mods: In case you are utilizing numerous mods to alter the game play or add some features, then you should disable these mods and start the game. Mods alter the main files of the game and twist the behavior. In case there is some mod which is conflicting with the settings, it is better to delete that mod and try to start the game. For more methods open https://appuals.com/fix-skyrim-not-launching/ 3- Checking SKSE: Skyrim Script Extender is utilized for broad mod programs and for handling them. It has been observed that although SKSE has a huge follower base, it is still under development and encounter periodic updates. This mod manager deal all the mods that are working at the moment on your system, there are higher possibilities that it might cause issue to the game. |
Just tried it with Proton 4.2-2 & no response from SKSE, shame as a lot of mods need it to work. |
It compiles, and works. Trying with latest "skse64_2_00_19.7z" Maybe somebody should push this to community_patches, I created an issue here Frogging-Family/community-patches#38 |
I don't know if anyone's recently read the bug report comment here: https://bugs.winehq.org/show_bug.cgi?id=44893#c17 But the author of SKSE admitted a bug in skse and and fixed it upstream in skse: --- quote --- This has since been fixed here: However a new version of SKSE has not been released yet so the fix is not in it. The fix was added Dec 28 but the current SKSE build available at https://skse.silverlock.org/ is from August. I've recompiled it and supplied it here (with sources) until the Author releases a new version: https://drive.google.com/file/d/1I6tgvZDaSs2JPXkHdWJwuZVwzF0OSpzz/view?usp=sharing Seems to work for me. Game launches and my mods work. If a specific mod doesn't work but others do it's likely an issue with that mod specifically more so than SKSE. Please note I'm providing this to get mods working for the majority of people without needing patching, and -not- responsible if any specific single mod does not work. The latest version of SkyUI seems to work here for me. |
Much obliged, (I had already read the bug report, and I couldn't wait for it to be compiled. Didn't know "ianpatts github", and that it had had such easy steps) Will try to recompile that (or maybe use your binary) thanks |
fwiw i had to compile it on windows, install visual studio community edition, and had install the 2015 files/mfc140 files. after that his readme instructions worked |
Hi, Since I don't have a Windows installation to do it, would you mind also compiling sksevr with this fixed patch? |
…e_DYNAMIC_BASE patchset from qsniyg - ValveSoftware/Proton#170 (comment) Thanks to @ManuLinares for pointing it out.
The source for sksevr does not have cmake files and is not hosted anywhere unfortunately. I'm not sure how to compile it with VS. |
> amdgpu-pro-vulkan-only: 20.45-1188099 > amdvlk-opt: 2021.Q1.2 > community-patches: linux511-tkg: Update bluetooth-next (#43) > community-patches: futex2: Simplify a futex2 check and make style more consistent with surrounding lines. (#42) > community-patches: wine-tkg-git: fix missing fclose() (#41) > community-patches: wine-tkg-git: when using futex2, let the user know (#40) > community-patches: linux511-tkg: Fix futex2_interface so it actually compiles, by updating it again apparently (#39) > community-patches: linux510/511-tkg: Update readme > community-patches: Update fsync_futex2 patchset from proton 5.13 experimental - https://github.com/ValveSoftware/wine/commits/experimental_5.13 > community-patches: linux510/511-tkg: Update futex2_interface patchsets - https://gitlab.collabora.com/tonyk/linux/-/tree/futex2-dev > community-patches: wine-tkg-git: Update ntdll_Map_top-down_if_dll_characteristics_include_DYNAMIC_BASE patchset from qsniyg - ValveSoftware/Proton#170 (comment) > dxvk-tools: Detect patches with extension substring instead of full extension. This is a followup to Frogging-Family/wine-tkg-git@c1b235b > linux-tkg: install.sh: unified linux git folder across kernel versions (#127) > linux-tkg: linux510-tkg: Revert upstream patch "cpufreq: Avoid configuring old governors as default with intel_pstate" > linux-tkg: linux511-rc-tkg: RC6 > linux-tkg: 5.4.94, 5.10.12 > linux-tkg: Simplify cpu opts code path and enable them for LLVM (#169) > nvidia-all: 455.50.05 > nvidia-all: 5.11 patch not needed on 460.39 anymore (#28) > nvidia-all: 455.50.04 > wine-tkg-git: Proton-tkg: Fix disabling futex2. We need to explicitly have WINEFSYNC_FUTEX2=0 in env to disable futex2. > wine-tkg-git: Update proton-cpu-topology-overrides patch for 44699c3 and move previous version to legacy > wine-tkg-git: Update esync/fsync -unix patchsets for 44699c3 and move previous versions to legacy > wine-tkg-git: Squash wmpdecoder support using jxrlib patches from Proton 5.13 > wine-tkg-git: PRoton-tkg: Add explicit support for futex2 fsync, disabled by default. > wine-tkg-git: Update proton-cpu-topology-overrides patchset for 7999af8 and move previous version to legacy > wine-tkg-git: Update proton-tkg meta patchsets for d4bb0c4 and move previous versions to legacy > wine-tkg-git: Update esync/fsync -unix patchsets for 2b6426d and move previous versions to legacy > wine-tkg-git: Hotfixer: Revert 1fceb121 and use Derek's implementation instead to fix a regression leading to crashes in some mfplat games. > wine-tkg-git: Add a fix for legacy trees when using autoconf 2.70+ > wine-tkg-git: Cover more cases regarding ntdll-NtAlertThreadByThreadId staging patchset skip > wine-tkg-git: Fix wrong legacy proton-vr-bff6bc6 name > wine-tkg-git: Proton-tkg: Update lsteamclient_disable_SteamController007_if_no_controller. Thanks @GloriousEggroll > wine-tkg-git: Update proton-sdl-joy patchset for e4fbae8 and move previous version to legacy. (#279) > wine-tkg-git: Move `ntdll: Use clock_gettime64 if supported.` to the use_clock_monotonic patchset > wine-tkg-git: Small cherry picks from Proton 5.13 experimental > wine-tkg-git: Import ValveSoftware/wine@1777861 to proton-tkg meta patchsets > wine-tkg-git: Update/Fix esync and fsync -unix-mainline patchsets for c1a042ce and move previous versions to legacy. > wine-tkg-git: Proton-tkg: Fix the dvxk userpatch extension to respect our readme > wine-tkg-git: Fix conhost.exe taking 100% cpu with fsync. (#276) > wine-tkg-git: Skip disabling ntdll-NtAlertThreadByThreadId staging patchset on trees older than b8ca0eae (staging). > wine-tkg-git: Fix wrong target commit for latest fsync-unix-staging patchset > wine-tkg-git: Update fsync-unix-staging patchset for c1a042c and move previous version to legacy.
Possibly you could rob the cmake files from the normal SKSE version and hope for the best? :) (with minor edits) |
I compiled it with the current sksevr source. It was easy to do. I just opened the project as it is in the 7z with visual studio and it just compiled. No need for the cmake scripts: My first test with skyuiVR was sucessful 👍 |
This is GREAT. Thank you very much. More people need to know that! |
Thank you very much from me as well. I can confirm that all my mods work fine using latest Proton experimental and @Aligators build. |
I was able to test it using the same setup as @frostworx, works flawlessly! |
I wonder if Mod Organzier 2 works with proton experimental, will have to give it a go. There has been common issues with its file system virtualisation. |
Wasn't MO2 discontinued in favor of Vortex? |
No its in full development still and picked up by a different team. I didn't like vortex as there is too much section switching and such, plus different way of displaying info and handling mods. Latest: https://github.com/ModOrganizer2/modorganizer/releases |
Oh, good to know. Thanks for heads up and the url! |
Does someone have a link to the recompiled version, maybe a git repo, not hosted on Google. Trying to avoid relentless hardware fingerprinting and tracking a bit more these days. |
Hello, I am still getting this:
Regardless of what proton version I select to use. Is this still a common problem or did I just screw things up somewhere? |
And your using this one?: https://drive.google.com/file/d/1I6tgvZDaSs2JPXkHdWJwuZVwzF0OSpzz/view |
The most recent version of Script extender 2.0.19 isn't working in Proton at all, make sure you're using 2.0.17, the one jarrad listed above my comment is the one that 100% works, SkyUI & every other mod that need skse will run just fine for now with that version, SkyUI complained about the version the first time I ran the game but after that it purrs along like a contented Tiger. |
Thanks, SKSE seems to load, It says (SKSE) now in the settings menu. Although I'm still unable to get SkyUI to load. |
You may need a specific version of SkyUI, there is also a older version that is sometimes recommended. I remember having issues with it in the day even on windows; but as with all things, I forgot what I did to resolve the issue. I'm waiting for Decagear to arrive to use skyrimvr which I don't think uses SkyUI at all. Also keep in mind there are other UI mods for skyrimSE now that may be better and more up to date. I'd test a more obvious SKSE requiring mod to ensure it works correctly. |
Ah I knew there was something I'd forgotten, you'll need SkyUI 5.1 it's the previous version as well, apologies for my terrible memory. |
Good news, SKSE was recently updated to v2.00.20 & everything now works as it should, including SkyUI 5.2. |
#170 (comment) is recompiled and thus does not work with the new ESL plugin. I have solved this (for me) by hexediting the (proton offset) fix into the original dll, but this is not a good solution. |
https://gitlab.winehq.org/wine/wine/-/commit/25db1c5d49dc339e9b5a25514c198a524bd05484 should in theory fix the issue. |
Could you share how to apply this fix? I’m losing my mind trying to figure out why some mod lists work for me and others don’t. I saw your post, checked it out, and it just so happens that the ones that don’t work are those that use ESL. |
@Kierek I literally replaced the relevant branch in the script extender binary with the other path in the hex editor. unless you want me to share a skse binary which works in exactly the opposite cases (it will break horrible on normal windows and probably on new wine versions), it would be much easier to get @ianpatt to simply merge in the shared code from sse-skse and push the release button for the vr script extender. |
When trying to launch SKSE Steam just terminates the application immediately.
I'm unsure if this is because it created its own Wine prefix, and it cannot find the Skyrim executable, or something else.
Skyrim (regular 2011 edition without any DLC) is running fine by itself.
The text was updated successfully, but these errors were encountered: