-
Notifications
You must be signed in to change notification settings - Fork 256
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
f4sefix from @hdmap #7
base: proton_3.7
Are you sure you want to change the base?
Conversation
Somewhat disappointed this hasn't been applied yet after almost 2 months; I wonder why. |
maybe because the patches could introduce other problems but i think its worth putting it in a beta and keeping an eye on it. |
Well, there's no reason to think it will break anything else, but there's also no reason thinking it wouldn't. For all we know it might fix a bunch of other things unexpectedly with no downsides, who knows how many games would benefit from being able to do, well, these things https://github.com/hdmap/wine-hackery/tree/master/f4se . It's exactly why we have a beta right? Personally I have a suspicion that anything negatively affected would be legacy software from the pre-XP era of windows. I wonder though, if there's a possibility they could make it possible to create unique wine environments with these kinds of fixes only applied on a per-game basis, so that if oblivion/skyrim/skyrimse/fallout3/falloutnv/fallout4 are installed, it would use one patched version of wine but use an unpatched version for other ones? I suppose the tricky part might be doing it without using too much space as those sorts of things might add up a bit eventually. In this case for example, all it would probably require is a patched ntdll.dll; it shouldn't be that hard to store this patched ntdll.dll somewhere in proton and use it only in prefixes for games that need it. |
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 (Source of patch https://github.com/hdmap/wine-hackery/tree/master/f4se ) This change would be the more important one of two changes which would solve the following issue for proton: ValveSoftware/Proton#1069
Hi! |
Sorry for the noise here, I changed the commit message by @zfigura to reference the correct repo now. |
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>
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>
The get_free_mem_state_callback patch is merged into Wine as of 4.5 and the other patch is only required for older versions of f4se/skse64. After Protons Wine is synced to mainline Wine again this should be fixed. |
Fixes a regression introduced by 7b583a3. Should hopefully fix ValveSoftware#7.
Fixes a regression introduced by 7b583a3. Should hopefully fix ValveSoftware#7.
This fixes ValveSoftware/Proton#170