Skip to content
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

Open
wants to merge 2 commits into
base: proton_3.7
Choose a base branch
from
Open

f4sefix from @hdmap #7

wants to merge 2 commits into from

Conversation

ghost
Copy link

@ghost ghost commented Aug 23, 2018

@Rabcor
Copy link

Rabcor commented Oct 14, 2018

Somewhat disappointed this hasn't been applied yet after almost 2 months; I wonder why.

@cjwijtmans
Copy link

maybe because the patches could introduce other problems but i think its worth putting it in a beta and keeping an eye on it.

@Rabcor
Copy link

Rabcor commented Oct 15, 2018

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.

Rabcor referenced this pull request in Rabcor/wine Oct 15, 2018
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
@ghost
Copy link

ghost commented Oct 19, 2018

Hi!
This may sound stupid, but I couldn't find anywhere where your patch "Patch of Exile partial fix" would help this issue.
Is this patch intended, or an accidental addition?

kakra referenced this pull request in kakra/wine-proton Dec 12, 2018
Fixes a regression introduced by 7b583a3.

Should hopefully fix #7.
kakra referenced this pull request in kakra/wine-proton Dec 14, 2018
Fixes a regression introduced by 7b583a3.

Should hopefully fix #7.
kakra referenced this pull request in kakra/wine-proton Dec 15, 2018
Fixes a regression introduced by 7b583a3.

Should hopefully fix #7.
kakra referenced this pull request in kakra/wine-proton Dec 22, 2018
Fixes a regression introduced by 7b583a3.

Should hopefully fix #7.
kakra referenced this pull request in kakra/wine-proton Jan 2, 2019
Fixes a regression introduced by 7b583a3.

Should hopefully fix #7.
@kakra
Copy link
Contributor

kakra commented Jan 5, 2019

Sorry for the noise here, I changed the commit message by @zfigura to reference the correct repo now.

kakra pushed a commit to kakra/wine-proton that referenced this pull request Jan 11, 2019
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>
kakra pushed a commit to kakra/wine-proton that referenced this pull request Jan 19, 2019
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>
kakra pushed a commit to kakra/wine-proton that referenced this pull request Jan 23, 2019
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>
kakra pushed a commit to kakra/wine-proton that referenced this pull request Feb 5, 2019
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>
kakra pushed a commit to kakra/wine-proton that referenced this pull request Feb 23, 2019
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>
kakra pushed a commit to kakra/wine-proton that referenced this pull request Mar 9, 2019
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>
kakra pushed a commit to kakra/wine-proton that referenced this pull request Mar 17, 2019
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>
@hdmap
Copy link

hdmap commented Jun 11, 2019

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.

rbernon pushed a commit to rbernon/wine-proton that referenced this pull request Oct 22, 2019
Fixes a regression introduced by 7b583a3.

Should hopefully fix ValveSoftware#7.
rbernon pushed a commit to rbernon/wine-proton that referenced this pull request Dec 17, 2019
Fixes a regression introduced by 7b583a3.

Should hopefully fix ValveSoftware#7.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants