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-…
Resolves these issues:
https://bugs.winehq.org/show_bug.cgi?id=49988https://bugs.winehq.org/show_bug.cgi?id=42999
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/1907
I was unable to write tests for this; it seems it doesn't consistently work on
Windows. However, Rayman 3 seems to rely on it; it maps the same buffer twice
immediately after creation, with DISCARD flags on both maps, and expects the
same address to be returned.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=53752
--
v3: d3d8: Filter out redundant buffer discards.
https://gitlab.winehq.org/wine/wine/-/merge_requests/1884
--
v6: windows.media.speech: Add pausing to the recognition session worker.
windows.media.speech: Add a worker thread to the recognition session.
windows.media.speech/tests: Test starting, stopping, pausing and resuming the recognition session.
windows.media.speech/tests: Test the recognizer state.
windows.media.speech: Return IAsyncAction from session_PauseAsync.
windows.media.speech: Return IAsyncAction from session_StopAsync.
windows.media.speech: Do not force calling convention on internal callbacks.
windows.media.speech: Move constraints vector to the recognition session.
https://gitlab.winehq.org/wine/wine/-/merge_requests/729
This patch series includes an implementation of the long-pending `transpose` intrinsic and the `smoothstep` intrinsic.
While implementing `smoothstep` I realized that some intrinsics have different rules for the allowed data types than expressions:
- Vectors and matrices at the same time are not allowed, regardless of their dimensions. Even if they have the same number of components.
- Any combination of matrices is always allowed, even those when no matrix fits inside another, e.g.:
`float2x3` is compatible with `float3x2`, resulting in `float2x2`.
The common data type is the min on each dimension.
This is the case for `max`, `pow`, `ldexp`, `clamp` and `smoothstep`; which suggest that it is the case for all intrinsics where the operation is applied element-wise. So this was corrected.
A minor fix in `pow`'s type conversion is also included.
--
v3: vkd3d-shader/hlsl: Use add_unary_arithmetic_expr() in intrinsic_pow().
vkd3d-shader/hlsl: Allow elementwise_intrinsic_convert_args() to also convert args to float.
vkd3d-shader/hlsl: Convert elementwise intrinsics args to the proper common type.
tests: Test for common type conversion for element-wise intrinsics.
vkd3d-shader/hlsl: Support smoothstep() intrinsic.
vkd3d-shader/hlsl: Support transpose() intrinsic.
https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/53