For some reason NosTale is checking memory regions preventing it's own logic from calling system memory. It checks if the code is called under "0x70000000" range, but for some reason "user32.dll" is placed below this region (by Wine) causing mouse bug, graphical glitches and other memory-access related errors. This pull-request fixes the bug, because I wanted to be sure I tested it on two Linux machines, Steam Deck and one macOS device. Everything just works fine.
Not sure if we should set only this dll base address or (according to reference image) set it for other dll libraries too. Also under Windows (I tested it too) it's randomized by ALSR - maybe we should do it the same way (and place library between range "0x70000000" - 0x80000000" for example).
Reference: https://user-images.githubusercontent.com/21007545/210278824-29f42d90-aca4-4...
Resolves these issues: https://bugs.winehq.org/show_bug.cgi?id=49988
From: PSzczepanski1996 p.szczepanski996@gmail.com
Reference: https://user-images.githubusercontent.com/21007545/210278824-29f42d90-aca4-4...
Resolves these issues: https://bugs.winehq.org/show_bug.cgi?id=49988 https://bugs.winehq.org/show_bug.cgi?id=42999 --- dlls/user32/Makefile.in | 1 + 1 file changed, 1 insertion(+)
diff --git a/dlls/user32/Makefile.in b/dlls/user32/Makefile.in index 112afa4c9a0..4f759414aa9 100644 --- a/dlls/user32/Makefile.in +++ b/dlls/user32/Makefile.in @@ -4,6 +4,7 @@ IMPORTLIB = user32 IMPORTS = $(PNG_PE_LIBS) gdi32 version sechost advapi32 kernelbase win32u EXTRAINCL = $(PNG_PE_CFLAGS) DELAYIMPORTS = setupapi imm32 +i386_EXTRADLLFLAGS = -Wl,--image-base,0x7e410000
C_SRCS = \ button.c \