Skyrim Script Extender (365720)
valeth opened this issue ยท 108 comments
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.
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...
- I manually installed SKSE
- I renamed SkyrimLauncher.exe to SkyrimLauncher.exe.backup
- I renamed skse_loader.exe to SkyrimLauncher.exe
And it works, but mods which save data will have issue (I think the same issue with the workshops ... can't write to the directory).
@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:
- Run the game it will probably fail but will create an important file named proton_run
- Open File explorer then Press CTRL + L write /temp
- Go to /tmp
- Locate file called proton_run inside tmp
- Copy the file proton_run, paste it in another location, I put mine inside a folder named proton in my desktop.
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.
@powerman posted on 2018-09-30T20:12:48:
Compatibility Report
- Name of the game with compatibility issues: Skyrim with Skyrim Script Extender
- Steam AppID of the game: 72850 + 365720
System Information
- GPU: GTX 560 Ti
- Driver/LLVM version: mesa-18.1.9, nvidia-drivers-390.87
- Kernel version: 4.9.74-unofficial+grsec
- Link to full system information report as Gist: https://gist.github.com/powerman/b5175e19343dc63389ba1bad8c5e5173
- Proton version: 3.7-6, 3.7-7 Beta
I confirm:
- that I haven't found an existing compatibility report for this game.
- that I have checked whether there are updates for my system available.
There are compatibility reports for both apps, but no one mention this specific issue.
Symptoms
At 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?
Reproduction
Install (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
WineDbg starting on pid 0028
0x000000007b462bab start_process+0xeb in kernel32: movl 0xffffff24(%ebp),%esi
Wine-dbg>
Wine-dbg>next
Invalid address (0x000000007b462bc6 start_process+0x106) for breakpoint 0, disabling it
Process of pid=0028 has terminated
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.
Feature Request + Modding Report: The Elder Scrolls V: Skyrim Special Edition (489830)
Issue transferred from #2216.
@8BitCerberus posted on 2019-01-14T09:10:13:
Feature Request
Integrate 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:
- that I haven't found another request for this feature.
- that I have checked whether there are updates for my system available that
contain this feature already.
Description
Non-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]
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.
SKSE
SKSE64
F4SE
FO76SE
These are all separate injectors, atm only SKSE (oldrim) works. There is a fix for 64bit versions of SKSE but nobody has merged the work around for it because 'reasons'.
It would be nice if somebody merged the 64bit fix sometime! until then its a matter of manually compiling wine and copying its files into proton, quite a bother for 99% of people out there!
Is anyone more knowledgable could clarify situation?
- SKS64 is only version that works for Special Edition, right?
- What is current best approach for launching SKSE64? Select Proton 3.7 in Skyrim properies and apply binary path from reddit? Or it could work for 3.16 too? If not, should I install xact via protontricks since there is no faudio in Proton 3.7?
- Is it possible to launch SKSE64 in the same way as it was described for SKSE in ProtonDB? ("Rename skse_loader.exe to SkyrimLauncher.exe")
-
Yes
-
I have renamed the skyrim launcher exe with a copy of the skse64.exe and so whenever I launch skyrim se it just loads the script extender, seems to work well. (after you mount the files correctly)
-
As above. But keep in mind that proton has not got the skse64 patch (single line code fix) last time I checked. I might have been pushed to latest version of wine staging however, can't be sure.
The best solution is to create your own proton prefix which you can update and use from within steam yourself (there is a proton guide on howto add your own proton versions to steam in the drop down list).
Is proton 3.7 the latest?
@hdmap Have you (or anyone else) shared your patches with the Wine devs? It would be nice to have a link here so people can follow the status of any upstream developments.
Wine devs know, and this is not needed for FO4 anymore. Untested on SkyrimSE, shrug.
Most wine devs are not generally interested in supporting game mod tools/utilities, which is why most of them have issues.
Its also a problem when windows does fundamental updates to their core system that force all these tools to upgrade to something that is 100% not in wines scope (1803/1903 rocked the boat lots).
The best solution is to create your own proton prefix which you can update and use from within steam yourself (there is a proton guide on howto add your own proton versions to steam in the drop down list).
Did you compiled it? If possible, could you share your build?
The best solution is to create your own proton prefix which you can update and use from within steam yourself (there is a proton guide on howto add your own proton versions to steam in the drop down list).
Did you compiled it? If possible, could you share your build?
One option is using this: https://github.com/GloriousEggroll/proton-ge-custom/releases
Wine devs know, and this is not needed for FO4 anymore. Untested on SkyrimSE, shrug.
SKSE64 2.0.16 works out of the box with Skyrim: Special Edition and Proton 4.11-2
Workaround suggested at #2340 (comment).
SKSE64 2.0.16 works out of the box with Skyrim: Special Edition and Proton 4.11-2
I tried SkyUI SE and the effect HUD icons don't show up, I do see the timer bars and everything else in SkyUI SE appears to work. Are you seeing the same result?
Skyrim SE 1.5.80.08
SkyUI_5_2_SE-12604-5-2SE
Skyrim Script Extender 64 v2.0.16 beta
modslist: https://pastebin.com/UHvZMaXS
screenshot: https://i.imgur.com/P6NOJBc.png (effect status time in top right)
@FreeLikeGNU Yes, this happens for me as well with SkyUI. Is this broken for Windows users as well?
It might already be knows, but a simple way to test if SKSE64 work for SkyrimSE is by using the console (ingame, with ~ or ยฒ button on your keyboard) and typing
getskseversion
it should display something relevant if it worked, as the name suggest.
I noticed i'm facing the same problem with latest Proton version (at the time of writing) but only when i'm using it in ModOrganizer (it work without it from my own experience).
@Nanodragon999 That command doesn't indicate whether SKSE64 was installed completely/correctly. If a user forgets to copy the contents of the folder ../Data/Scripts, getskseversion will still output the version number correctly; indicating nothing is wrong. Yet SKSE64 will not have any functionality. This only shows that the .dll files and .exe were copied correctly. To quote the SKSE install instructions:
Copy the .dll and .exe files to your Skyrim SE directory. This is usually in your Program Files folder under Steam\SteamApps\common\Skyrim Special Edition. If you see files named SkyrimSE and SkyrimSELauncher, this is the correct folder. Do not copy these files to the Data folder as with a normal mod. The "src" folder is only useful for programmers, most users can ignore it.
Copy the .pex files in Data\Scripts\ into the Data\Scripts\ folder of your installation. The .pex files are needed by all users of SKSE.
Your command does nothing to verify step 2 was performed properly; it only verifies step 1.
You're right, i was under the impression it was common sense to copy everything to the indicated path, my bad :) @Myrddin-Wyllt
I guess there was a test mod on nexusmods to see if skse was working currently (i recall it was also doing batch tests etc) can't recall the name of the mod but it might be useful in this case.
Has anyone been able to load SkyUI properly? I have SKSE64 (supposedly, lower left Esc menu says it is) running, but I have no MCM to load SkyUI and the UI is the normal one, albeit blown up because I have an Ultrawide monitor and I can't see proper menus. Also I can't pass ~ to open the console and run getskseversion
because it's a known 7 year old regression no one has fixed yet.
@Lahvuun How? I followed everything to the letter, Data/Scripts copied to the SkyrimSE folder, use a launch variable to make Steam launch skse_loader.exe instead of the default Skyrim loader and the mod just won't load.
@lavadrop at ~/.local/share/Steam/steamapps/compatdata/489830/pfx/drive_c/users/steamuser/Local\ Settings/Application\ Data/Skyrim\ Special\ Edition
there is supposed to be a file called plugins.txt
or Plugins.txt
. Try putting *SkyUI_SE.esp
in it before you start the game.
OMG that actually worked. I would kiss you if I weren't an avatar for my Lord... bleep, bloop.
How is this not documented anywhere on any modding site?
Because that file is not intended to be edited by hand, as the header at the top says. Usually it's managed by either the game (by going to the "mods" option in the main menu, and then "load order"), or your mod manager of choice.
Enabling it through the main menu doesn't work for whatever reason, so editing that file manually or using a mod manager are the only working options for now.
Funny thing is I have Vortex running on Lutris...
Tried to use Vortex a while ago and parts of it didn't work, it was also somewhat confusing as it didn't have grouping.
Because that file is not intended to be edited by hand, as the header at the top says. Usually it's managed by either the game (by going to the "mods" option in the main menu, and then "load order"), or your mod manager of choice.
Enabling it through the main menu doesn't work for whatever reason, so editing that file manually or using a mod manager are the only working options for now.
this is because the .esp
file doesnt have a "master file" set, which is usually used to tell the game that this esp
(elder scrolls plugin, afaik), depends on these other files to work correctly.
most mods have just the skyrim.esm
set as master, so just skyrim as dependency, but other mods that are compatibility patches for example may refer to other master files.
for some reason the author of skyui hasnt set any master files on his mod and even with reports on the nexus, etc, he hasnt fixed it, but is usually also not a problem, because most players will probably use a mod manager, that manipulates the plugins.txt
file directly.
this also wasnt an issue on the normal / legendary edition of skyrim, because skyrims mod menu didnt really care about that much, but with the special edition, the ingame mod loader will refuse to load esp
files that are missing a master file.
tl;dr: this isnt an issue with skyrim running on wine, but just a mod author being a bit lazy
Issues with SKSE64 in Skyrim SE (489830)
Issue transferred from #3665.
@TheChriZ posted on 2020-03-20T14:11:06:
Since Proton 5.x.x (also GE Versions) SKSE either crashes after failing to load certain plugins (Engine Fixes, RaceMenu, etc) or if I disable certain plugins the starts I load a save and after the loading screen I just get a black screen. The music still plays, but my system locks up and I have to do a hard reset. When using Proton 4.11 everything works thing with all of my mods, using the known fAudio fix and sometimes having to Alt F4 when the game freezes when exiting (but this are known issues which should have been fixed in newer Proton Versions).
I'm not sure of how much help this will be but the wine update that caused the regression was 4.16. Any proton variants up to this point work flawlessly (Official Valve releases, Glorious Eggroll's, etc)
SKSE64
Issue transferred from #3801.
@Desulate posted on 2020-04-25T22:31:45:
All version of proton past 4.15 break SKSE64 and SKSE compatibility, Mods will fail to run with the script engine. The script engine provides performance improvements in addition to enabling mod functionality.
The fallout 4 script extender functions similarly.
@ppkovachev For me, from versions above 4.15 the lighting engine stops working - all world lighting doesn't seem to work (all black) but can see UI & hands/weapons.
Using SKSE64
When trying to launch SKSE Steam just terminates the application immediately.
@kisak-valve Could you please remove the offtopic video that this post links to? Thanks.
This also happens with SKSE VR for Skyrim VR. It seems it is unable to find a gap in memory to inject itself into the game. From skse.log:
SKSEVR runtime: initialize (version = 2.0.11 010400F1 01D64866E6D5F2FA, os = 6.1 (7601))
imagebase = 0000000140000000
reloc mgr imagebase = 0000000140000000
couldn't allocate trampoline, no free space before image
couldn't create codegen buffer. this is fatal. skipping remainder of init process.
I emailed the developer of SKSE VR and he said that:
"This is a WINE/proton issue. Either there are no gaps in memory before the image base, or VirtualQuery is not implemented correctly."
I read the comments on this thread and it's said that this problem was introduced in Wine 4.16, but I reverted to Proton 4.11-13 (which is before wine's 4.16 changes have been integrated) and skse still fails to load with the same message. Also tried 4.2-9 but this way the game does not start.
Any advice on what to do to get SKSE VR working? It works with DLL injection, does DLL injection works on wine/proton? Also, should I open a separate ticket for that one in Skyrim VR (611670)?
I have made a proton-5.0-9 build that allows SKSE to be run, it's documented here: https://www.gamingonlinux.com/forum/topic/4456
Currently implementing full seamless support for Vortex into my steamtinkerlaunch
Would be nice if the additional implementation of the automatic script extender exes launch would actually work.
The issue has its 2nd birthday in a about week btw!
Thank you @Patola :)
Just released v.1.3.5 with Vortex support: https://github.com/frostworx/steamtinkerlaunch/releases/tag/v1.3.5
https://github.com/frostworx/steamtinkerlaunch#Vortex
unfortunately Skyrim/Fallout (flavours) Script Extender doesn't work with default proton since some time. As many mods depend on "SE" I added a function which renames the "SE" exe when found in the gamedir, to ensure that Vortex knows it is uninstalled and would complain if a mod depends on it. To enable that function just set BUG170=170 somewhere (f.e. global.conf
I'm not sure how you are doing it, but if you need other builds of my proton patches, I am keeping them here https://github.com/Patola/wine/releases
Thank you, good to know. To be honest I haven't done very much with Vortex yet, I just though it would be a nice feature to have :)
Vortex itself is using system wine installation for now using its own WINEPREFIX - and as it depends on bloated dotnet48 it doesn't make much sense to start it within the game WINEPREFIX.
Won't be @home for a few days, but I'll check if I could implement at least a suggestion pointing to your proton releases when a SE exe with an incompatible (upstream) proton is found
happy birthday!
For later wine versions (based on 5.19-git), try the following patch:
diff --git a/dlls/ntdll/loader.c b/dlls/ntdll/loader.c
index 8374dd97326..89b72486789 100644
--- a/dlls/ntdll/loader.c
+++ b/dlls/ntdll/loader.c
@@ -2288,7 +2288,7 @@ static NTSTATUS open_dll_file( UNICODE_STRING *nt_name, WINE_MODREF **pwm, void
}
NtQuerySection( mapping, SectionImageInformation, image_info, sizeof(*image_info), NULL );
status = NtMapViewOfSection( mapping, NtCurrentProcess(), module, 0, 0, NULL, &len,
- ViewShare, 0, PAGE_EXECUTE_READ );
+ ViewShare, MEM_TOP_DOWN, PAGE_EXECUTE_READ );
if (status == STATUS_IMAGE_NOT_AT_BASE) status = STATUS_SUCCESS;
NtClose( mapping );
}
diff --git a/dlls/ntdll/unix/loader.c b/dlls/ntdll/unix/loader.c
index c2b6ea603e3..34915d5c6e7 100644
--- a/dlls/ntdll/unix/loader.c
+++ b/dlls/ntdll/unix/loader.c
@@ -1187,7 +1187,7 @@ static NTSTATUS open_dll_file( const char *name, void **module, SECTION_IMAGE_IN
}
NtQuerySection( mapping, SectionImageInformation, image_info, sizeof(*image_info), NULL );
status = NtMapViewOfSection( mapping, NtCurrentProcess(), module, 0, 0, NULL, &len,
- ViewShare, 0, PAGE_EXECUTE_READ );
+ ViewShare, MEM_TOP_DOWN, PAGE_EXECUTE_READ );
if (status == STATUS_IMAGE_NOT_AT_BASE) status = STATUS_SUCCESS;
NtClose( mapping );
if (status) return status;
Relevant wine bugs:
https://bugs.winehq.org/show_bug.cgi?id=48641
https://bugs.winehq.org/show_bug.cgi?id=44893
Edit: Sent a better version upstream: https://source.winehq.org/patches/data/194530
Would like to see this merged into the main branch.
For later wine versions (based on 5.19-git), try the following patch:
diff --git a/dlls/ntdll/loader.c b/dlls/ntdll/loader.c index 8374dd97326..89b72486789 100644 --- a/dlls/ntdll/loader.c +++ b/dlls/ntdll/loader.c @@ -2288,7 +2288,7 @@ static NTSTATUS open_dll_file( UNICODE_STRING *nt_name, WINE_MODREF **pwm, void } NtQuerySection( mapping, SectionImageInformation, image_info, sizeof(*image_info), NULL ); status = NtMapViewOfSection( mapping, NtCurrentProcess(), module, 0, 0, NULL, &len, - ViewShare, 0, PAGE_EXECUTE_READ ); + ViewShare, MEM_TOP_DOWN, PAGE_EXECUTE_READ ); if (status == STATUS_IMAGE_NOT_AT_BASE) status = STATUS_SUCCESS; NtClose( mapping ); } diff --git a/dlls/ntdll/unix/loader.c b/dlls/ntdll/unix/loader.c index c2b6ea603e3..34915d5c6e7 100644 --- a/dlls/ntdll/unix/loader.c +++ b/dlls/ntdll/unix/loader.c @@ -1187,7 +1187,7 @@ static NTSTATUS open_dll_file( const char *name, void **module, SECTION_IMAGE_IN } NtQuerySection( mapping, SectionImageInformation, image_info, sizeof(*image_info), NULL ); status = NtMapViewOfSection( mapping, NtCurrentProcess(), module, 0, 0, NULL, &len, - ViewShare, 0, PAGE_EXECUTE_READ ); + ViewShare, MEM_TOP_DOWN, PAGE_EXECUTE_READ ); if (status == STATUS_IMAGE_NOT_AT_BASE) status = STATUS_SUCCESS; NtClose( mapping ); if (status) return status;
Relevant wine bugs:
https://bugs.winehq.org/show_bug.cgi?id=48641
https://bugs.winehq.org/show_bug.cgi?id=44893
Edit: Sent a better version upstream: https://source.winehq.org/patches/data/194530
This patch doesn't apply in the latest proton 5.13's wine, though. Instead of starting at line 2288, open_dll_file starts much later at 2428 and loader.c doesn't even have any mention to NtMapViewOfSection. As I don't see any references on the method to top_down or bottom_up, doesn't seem it incorporates fixes for the problem.
@Patola Try replacing virtual_map_section instead for both loader files, like this:
status = unix_funcs->virtual_map_section( mapping, module, 0, 0, NULL, &len,
0, PAGE_EXECUTE_READ, image_info );
to:
status = unix_funcs->virtual_map_section( mapping, module, 0, 0, NULL, &len,
MEM_TOP_DOWN, PAGE_EXECUTE_READ, image_info );
(I haven't tested this, but in theory it should work)
I'll test it, thanks.
For later wine versions (based on 5.19-git), try the following patch:
diff --git a/dlls/ntdll/loader.c b/dlls/ntdll/loader.c index 8374dd97326..89b72486789 100644 --- a/dlls/ntdll/loader.c +++ b/dlls/ntdll/loader.c @@ -2288,7 +2288,7 @@ static NTSTATUS open_dll_file( UNICODE_STRING *nt_name, WINE_MODREF **pwm, void } NtQuerySection( mapping, SectionImageInformation, image_info, sizeof(*image_info), NULL ); status = NtMapViewOfSection( mapping, NtCurrentProcess(), module, 0, 0, NULL, &len, - ViewShare, 0, PAGE_EXECUTE_READ ); + ViewShare, MEM_TOP_DOWN, PAGE_EXECUTE_READ ); if (status == STATUS_IMAGE_NOT_AT_BASE) status = STATUS_SUCCESS; NtClose( mapping ); } diff --git a/dlls/ntdll/unix/loader.c b/dlls/ntdll/unix/loader.c index c2b6ea603e3..34915d5c6e7 100644 --- a/dlls/ntdll/unix/loader.c +++ b/dlls/ntdll/unix/loader.c @@ -1187,7 +1187,7 @@ static NTSTATUS open_dll_file( const char *name, void **module, SECTION_IMAGE_IN } NtQuerySection( mapping, SectionImageInformation, image_info, sizeof(*image_info), NULL ); status = NtMapViewOfSection( mapping, NtCurrentProcess(), module, 0, 0, NULL, &len, - ViewShare, 0, PAGE_EXECUTE_READ ); + ViewShare, MEM_TOP_DOWN, PAGE_EXECUTE_READ ); if (status == STATUS_IMAGE_NOT_AT_BASE) status = STATUS_SUCCESS; NtClose( mapping ); if (status) return status;
Relevant wine bugs:
https://bugs.winehq.org/show_bug.cgi?id=48641
https://bugs.winehq.org/show_bug.cgi?id=44893
Edit: Sent a better version upstream: https://source.winehq.org/patches/data/194530
Sorry, but I am relatively new to linux and wine thingy, and except the part of gamming, i've been enjoying linux so far... But! How to I use your patch? I really want to play with skse T-T
Hey, @marcospdsf
If you want to use a newer wine version you need to apply the patch to the wine source code and then compile your own custom wine. If an older proton version is fine for you as well, @patolas latest protola
should still work fine with skse
Hey, @marcospdsf
If you want to use a newer wine version you need to apply the patch to the wine source code and then compile your own custom wine. If an older proton version is fine for you as well, @patolas latest protola
should still work fine with skse
I have downloaded it just right now, but I dont know how to use it to run a game, I tried ./proton but no luck :P I really suck at this....
Only running it returns me this message: "Proton: No compat data path?"
The easiest way is to add protola as a compatibility tool in your Steam setup.
(Skyrim doesn't work without Steam anyway, does it?)
The easiest way is to add protola as a compatibility tool in your Steam setup.
(Skyrim doesn't work without Steam anyway, does it?)
Mine it does indeed... I download a crack (I do it for all my games) since opening steam annoys me, and leaving it on the background consumes ram :( .... Yeah, yeah, yeah, I know, piracy is bad and all, but I do own the game.
So the only way is running it trough steam?
I understand that there can be valid reasons to legally(!) use a cracked exe to get a game working,
but I'm sure you understand that this is nothing which should be supported in here.
What you can do is run skyrim from steam with the PROTON_DUMP_DEBUG_COMMANDS
option (see here) and change the resulting script to your needs.
Yeah, I got this bad habit way back when we had to use CDs to play, and those got little cracks on the middle from the constant removing from the case...
Well, I will give the steam thingy a try... Thank you
Haven't tried 5.0-9.1 yet (just learned it exists), but 5.0-9 stopped working 1-2 weeks ago. Just black screen instead of main menu. Maybe caused by some wine's system dependencies updates, I cannot imagine any other reason. Still, with unpached 5.13-1 both main menu and game itself do load but "couldn't allocate trampoline" bug is there.
Yeah, I couldn't yet make it work with newer versions of proton. I have tried @qsniyg 's suggestion but it seems it is not working -- although it applied cleanly. As I an in the middle of a lot of work, I haven't been having enough free time to experiment with this.
@Patola Which version did you try applying it to? It should likely only work for newer wine versions, after ntdll was turned PE. I've tried with wine-tkg 5.21 and it worked without issue for me (it's in the community-patches repo, so just set _community_patches="ntdll_Map_top-down_if_dll_characteristics_include_DYNAMIC_BASE.mypatch"
in customization.cfg).
I've successfully compiled 5.13-b1 with the SKSE patch today, works fine for me. If you are unable to compile it yourself, I've uploaded it here
If you should have problems with downloading from github, here's a mirror on google drive.
@smirgol could you upload it on google or so, I have less than 1 kb/s from github
@FairyTail2000 german telekom?
(https://telekomhilft.telekom.de/t5/Telefonie-Internet/Amazon-AWS-S3-Github-downloads-sehr-langsam-nicht-nutzbar/td-p/4910937/page)
You can workaround this with a vpn
@frostworx of course german telekom and the support cannot do anything about it, I don't have a vpn and I don't want to get a free one for privacy reasons, but if I don't I can't get the patched version
That's kind of an issue
Thanks for the link but I've already read it
@FairyTail2000
yeah it is really annoying - I hope this will be fixed soon. Good decision not to use a free vpn generally,
but probably not too much a problem with just one github download.
edit:
simply using a webproxy works as well, just pasted the download url into https://www.hidemyass.com
and it downloads with full speed
I don't know if you (or others) are also germans, here is an article explaining the situation: https://www.golem.de/news/deutsche-telekom-peering-zu-us-servern-scheint-langsam-zu-sein-2012-152982.amp.html
I will look which vpn should work
in case you missed my edit above:
simply using a webproxy works as well, just pasted the download url into https://www.hidemyass.com
and it downloads with full speed
edit: and thanks for the article url :)
Yes I've missed it, thanks for the link ๐
I've successfully compiled 5.13-b1 with the SKSE patch today, works fine for me. If you are unable to compile it yourself, I've uploaded it here
If you should have problems with downloading from github, here's a mirror on google drive.
You are a lifesaver, thank you.
@Patola Which version did you try applying it to? It should likely only work for newer wine versions, after ntdll was turned PE. I've tried with wine-tkg 5.21 and it worked without issue for me (it's in the community-patches repo, so just set
_community_patches="ntdll_Map_top-down_if_dll_characteristics_include_DYNAMIC_BASE.mypatch"
in customization.cfg).
I'm building this "https://github.com/Frogging-Family/wine-tkg-git/tree/master/wine-tkg-git" and in "customization.cfg" last line added this _community_patches="ntdll_Map_top-down_if_dll_characteristics_include_DYNAMIC_BASE.mypatch"
It failed :(
Applying your own patch ntdll_Map_top-down_if_dll_characteristics_include_DYNAMIC_BASE.mypatch
patching file dlls/ntdll/loader.c
Hunk #1 FAILED at 2230.
Hunk #2 FAILED at 2287.
2 out of 2 hunks FAILED -- saving rejects to file dlls/ntdll/loader.c.rej
patching file dlls/ntdll/unix/loader.c
Hunk #1 FAILED at 1142.
Hunk #2 FAILED at 1186.
2 out of 2 hunks FAILED -- saving rejects to file dlls/ntdll/unix/loader.c.rej
attached rej and original
loader.c.txt
loader.c.rej.txt
unix_loader.c.orig.txt
unix_loader.c.rej.txt
@ManuLinares I don't yet have a chance to test it, but see if this works:
diff --git a/dlls/ntdll/loader.c b/dlls/ntdll/loader.c
index 6a90770b3b4..b85e7497e04 100644
--- a/dlls/ntdll/loader.c
+++ b/dlls/ntdll/loader.c
@@ -2321,8 +2321,9 @@ static NTSTATUS load_native_dll( LPCWSTR load_path, const UNICODE_STRING *nt_nam
{
void *module = NULL;
SIZE_T len = 0;
+ ULONG alloc_type = (image_info->DllCharacteristics & IMAGE_DLLCHARACTERISTICS_DYNAMIC_BASE) ? MEM_TOP_DOWN : 0;
NTSTATUS status = NtMapViewOfSection( mapping, NtCurrentProcess(), &module, 0, 0, NULL, &len,
- ViewShare, 0, PAGE_EXECUTE_READ );
+ ViewShare, alloc_type, PAGE_EXECUTE_READ );
if (status == STATUS_IMAGE_NOT_AT_BASE) status = STATUS_SUCCESS;
#ifdef _WIN64
diff --git a/dlls/ntdll/unix/loader.c b/dlls/ntdll/unix/loader.c
index 8caddb19abf..e9398225e23 100644
--- a/dlls/ntdll/unix/loader.c
+++ b/dlls/ntdll/unix/loader.c
@@ -1287,10 +1287,12 @@ static NTSTATUS map_builtin_module( HANDLE mapping, void **module, struct stat *
{
NTSTATUS status;
SIZE_T len = 0;
+ ULONG alloc_type;
*module = NULL;
+ alloc_type = (image_info->DllCharacteristics & IMAGE_DLLCHARACTERISTICS_DYNAMIC_BASE) ? MEM_TOP_DOWN : 0;
status = NtMapViewOfSection( mapping, NtCurrentProcess(), module, 0, 0, NULL, &len,
- ViewShare, 0, PAGE_EXECUTE_READ );
+ ViewShare, alloc_type, PAGE_EXECUTE_READ );
if (status == STATUS_IMAGE_NOT_AT_BASE) status = STATUS_SUCCESS;
if (!status)
@ManuLinares I don't yet have a chance to test it, but see if this works:
diff --git a/dlls/ntdll/loader.c b/dlls/ntdll/loader.c index 6a90770b3b4..b85e7497e04 100644 --- a/dlls/ntdll/loader.c +++ b/dlls/ntdll/loader.c @@ -2321,8 +2321,9 @@ static NTSTATUS load_native_dll( LPCWSTR load_path, const UNICODE_STRING *nt_nam {...
Sadly, it didn't compile.
gcc -m64 -c -o dlls/ntdll/unix/loader.o ../wine-mirror-git/dlls/ntdll/unix/loader.c -Idlls/ntdll \
-I../wine-mirror-git/dlls/ntdll -Iinclude -I../wine-mirror-git/include -D__WINESRC__ -D_NTSYSTEM_ \
-D_ACRTIMP= -DWINBASEAPI= -D_MSVCR_VER=0 -DBINDIR=\"/usr/bin\" -DDLL_TO_BINDIR=\"`./tools/makedep -R \
/usr/lib/wine /usr/bin`\" -DBIN_TO_DATADIR=\"`./tools/makedep -R /usr/bin /usr/share/wine`\" \
-DWINE_UNIX_LIB -D_REENTRANT -fPIC -fasynchronous-unwind-tables -Wall -pipe -fcf-protection=none \
-fno-stack-protector -fno-strict-aliasing -Wdeclaration-after-statement -Wempty-body \
-Wignored-qualifiers -Wno-packed-not-aligned -Wshift-overflow=2 -Wstrict-prototypes -Wtype-limits \
-Wunused-but-set-parameter -Wvla -Wwrite-strings -Wpointer-arith -Wlogical-op -D_FORTIFY_SOURCE=2 \
-O2 -ftree-vectorize -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=0
gcc -m64 -c -o dlls/ntdll/unix/process.o ../wine-mirror-git/dlls/ntdll/unix/process.c -Idlls/ntdll \
-I../wine-mirror-git/dlls/ntdll -Iinclude -I../wine-mirror-git/include -D__WINESRC__ -D_NTSYSTEM_ \
-D_ACRTIMP= -DWINBASEAPI= -D_MSVCR_VER=0 -DWINE_UNIX_LIB -D_REENTRANT -fPIC \
-fasynchronous-unwind-tables -Wall -pipe -fcf-protection=none -fno-stack-protector \
-fno-strict-aliasing -Wdeclaration-after-statement -Wempty-body -Wignored-qualifiers \
-Wno-packed-not-aligned -Wshift-overflow=2 -Wstrict-prototypes -Wtype-limits \
-Wunused-but-set-parameter -Wvla -Wwrite-strings -Wpointer-arith -Wlogical-op -D_FORTIFY_SOURCE=2 \
-O2 -ftree-vectorize -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=0
../wine-mirror-git/dlls/ntdll/unix/loader.c: In function โmap_builtin_moduleโ:
../wine-mirror-git/dlls/ntdll/unix/loader.c:1295:19: error: โimage_infoโ undeclared (first use in this function)
1295 | alloc_type = (image_info->DllCharacteristics & IMAGE_DLLCHARACTERISTICS_DYNAMIC_BASE) ? MEM_TOP_DOWN : 0;
| ^~~~~~~~~~
../wine-mirror-git/dlls/ntdll/unix/loader.c:1295:19: note: each undeclared identifier is reported only once for each function it appears in
make: *** [Makefile:157462: dlls/ntdll/unix/loader.o] Error 1
make: *** Waiting for unfinished jobs....
==> ERROR: A failure occurred in build().
For the moment, how about just:
diff --git a/dlls/ntdll/loader.c b/dlls/ntdll/loader.c
index 6a90770b3b4..b85e7497e04 100644
--- a/dlls/ntdll/loader.c
+++ b/dlls/ntdll/loader.c
@@ -2321,8 +2321,9 @@ static NTSTATUS load_native_dll( LPCWSTR load_path, const UNICODE_STRING *nt_nam
{
void *module = NULL;
SIZE_T len = 0;
+ ULONG alloc_type = (image_info->DllCharacteristics & IMAGE_DLLCHARACTERISTICS_DYNAMIC_BASE) ? MEM_TOP_DOWN : 0;
NTSTATUS status = NtMapViewOfSection( mapping, NtCurrentProcess(), &module, 0, 0, NULL, &len,
- ViewShare, 0, PAGE_EXECUTE_READ );
+ ViewShare, alloc_type, PAGE_EXECUTE_READ );
if (status == STATUS_IMAGE_NOT_AT_BASE) status = STATUS_SUCCESS;
#ifdef _WIN64
I really doubt the unix portion is relevant for skse. I think the reason I added it originally was just for completeness for the wine patch.
For the moment, how about just:
diff --git a/dlls/ntdll/loader.c b/dlls/ntdll/loader.c index 6a90770b3b4..b85e7497e04 100644 --- a/dlls/ntdll/loader.c +++ b/dlls/ntdll/loader.c @@ -2321,8 +2321,9 @@ static NTSTATUS load_native_dll( LPCWSTR load_path, const UNICODE_STRING *nt_nam { void *module = NULL; SIZE_T len = 0; + ULONG alloc_type = (image_info->DllCharacteristics & IMAGE_DLLCHARACTERISTICS_DYNAMIC_BASE) ? MEM_TOP_DOWN : 0; NTSTATUS status = NtMapViewOfSection( mapping, NtCurrentProcess(), &module, 0, 0, NULL, &len, - ViewShare, 0, PAGE_EXECUTE_READ ); + ViewShare, alloc_type, PAGE_EXECUTE_READ ); if (status == STATUS_IMAGE_NOT_AT_BASE) status = STATUS_SUCCESS; #ifdef _WIN64
I really doubt the unix portion is relevant for skse. I think the reason I added it originally was just for completeness for the wine patch.
It compiles, and works. Trying with latest "skse64_2_00_19.7z"
all working well.
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 ---
I reached out to the SKSE team about this and Ian Patterson confirmed that there
had been a bug with calculating the minimum safe address and corrected it in
F4SE, but somehow it was not corrected for 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
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
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 ---
I reached out to the SKSE team about this and Ian Patterson confirmed that there
had been a bug with calculating the minimum safe address and corrected it in
F4SE, but somehow it was not corrected for 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.
Hi,
Since I don't have a Windows installation to do it, would you mind also compiling sksevr with this fixed patch?
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 ---
I reached out to the SKSE team about this and Ian Patterson confirmed that there
had been a bug with calculating the minimum safe address and corrected it in
F4SE, but somehow it was not corrected for SKSE.
--- quote ---
This has since been fixed here:
ianpatt/skse64@4a1e121
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.Hi,
Since I don't have a Windows installation to do it, would you mind also compiling sksevr with this fixed patch?
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.
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:
https://drive.google.com/file/d/1SBzd-yIGHA0dnQEWqkSt-sbzNyGJna_R/view?usp=sharing
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?
(edit: yes it was - sorry wasn't sure)
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!
Edit: Just gave MO2 a (very quick) try using both the latest proton and wine-6.5, and it doesn't seem to work at all (probably this wine bug being the main reason)
Edit2: Looks like the issue was this regression. MO2 seems to work and lists my Wabbajack modlist.
For general modding I'll stick with Vortex which works better for me.
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:
SKSE64 runtime: initialize (version = 2.0.19 01050610 01D79AF8DE425EF9, os = 6.2 (9200)) imagebase = 0000000140000000 reloc mgr imagebase = 0000000140000000 couldn't allocate trampoline, no free space before image couldn't create codegen buffer. this is fatal. skipping remainder of init process.
Regardless of what proton version I select to use. Is this still a common problem or did I just screw things up somewhere?
Hello, I am still getting this:
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.