The Wine development release 6.14 is now available. What's new in this release (see below for details): - Mono engine updated to version 6.3.0, with upstream updates. - 32->64-bit thunks implemented in WOW64 dll. - More preparation work for the GDI syscall interface. - Various bug fixes. The source is available from the following locations: https://dl.winehq.org/wine/source/6.x/wine-6.14.tar.xz http://mirrors.ibiblio.org/wine/source/6.x/wine-6.14.tar.xz Binary packages for various distributions will be available from: https://www.winehq.org/download You will find documentation on https://www.winehq.org/documentation You can also get the current source directly from the git repository. Check https://www.winehq.org/git for details. Wine is available thanks to the work of many people. See the file AUTHORS in the distribution for the complete list. ---------------------------------------------------------------- Bugs fixed in 6.14 (total 30): 22120 CTL3D help file is mostly scrunched to the left 22572 Managed C++ assemblies don't work in Wine + Mono 25167 Multiple .NET applications crash with unimplemented System.Security.Principal.WindowsIdentity.get_User (Eraser 6.0, Chocolatey package manager, WinAuth 3.6.x) when using Wine-Mono 28605 BurnPlot (VB6 app) fails to start 32316 Autodesk 3ds Max 9 32-bit exits silently or crashes on startup with Wine-Mono 41636 Multiple DirectX 11 games need ID3D11Device1::CreateDeferredContext1 implementation (WWE 2K15, Dishonored: Death of the Outsider, Pro Evolution Soccer 2019, Shantae and the Pirate's Curse, Space Engineers) 46014 Estlcam 11.x (.NET 4.x app) crashes on startup with Wine-Mono 48996 GRID Autosport hangs while loading 50962 reg.exe does not implement '/reg:32' and '/reg:64' command line switches 51126 Multiple games play truncated audio (Evil Twin in-game dialog, Fallout: New Vegas radio tracks) 51137 Construction Set for TES4 Oblivion missing or broken text in some places 51185 Windows fails to load the minimal PE image in kernel32:loader 51196 ntdll:om has a timing-related failure in Wine 51213 GZDoom Builder 2.3 r2787 fails with IdentityNotMappedException 51284 shell32:shellpath fails on Windows when there is more than one CD drive 51306 Wine-Mono doesn't show Japanese text (DllImport issue?). 51319 Star Citizen, WoW causes 100% CPU usage in wineserver 51334 Microsoft Xbox Live Developer Tool XblTestAccountGui crashes 51346 x264guiEx partly shows square characters when using Wine-Mono (default encoding issue with C++/CLI). 51410 mlang:mlang fails on the Hindi test configuration 51435 iostream float formatting broken since Wine 5.12-170-g1bc6f0c8617 51439 Grand Theft Auto V fails to save progress on game exit: "Save failed. Are you sure you want to quit now?" 51440 Sea of Thieves hangs on loading into the game 51450 oleaut32:varformat fails in Wine when the currency sign follows the amount 51453 oleaut32:vartype and oleaut32:vartest fail on Windows 10 1909+ 51465 EVE Online launcher crashes 51485 Dead Rising crashes on launch 51493 WXDrive.exe from WeCom failed to startup. 51505 MIDISelector's MIDI mapper configuration doesn't take effect 51506 Disabled controls are not greyed out when theming is active ---------------------------------------------------------------- Changes since 6.13: Aaron Hill (1): crypt32: Add missing 'break' to X509_ECC_SIGNATURE case. Akihiro Sagawa (3): include: Fix a typo in _tcsxfrm_l. midimap: Switch to the midi debug channel. midimap: Introduce XP form and prefer it. Alexandre Julliard (53): ntdll/tests: Add tests for Wow64SystemServiceEx(). ntdll: Load wow64.dll in 64-bit Wow64 processes. wow64: Add stubs for Wow64LdrpInitialize() and Wow64SystemServiceEx(). wow64: Load the backend cpu dll at process init. wow64: Add support for setting up the syscall table. wow64: Add thunks for a few simple syscalls. wow64: Add thunks for the atom syscalls. ntdll: Always clear the returned handle in Nt object functions. wow64: Add thunks for the event syscalls. wow64: Add thunks for the mutant syscalls. wow64: Add thunks for the semaphore syscalls. wow64: Add a stub for Wow64ApcRoutine(). wow64: Add thunks for the timer syscalls. wow64: Add thunks for the keyed event syscalls. wow64: Add thunks for the directory object syscalls. wow64: Add thunks for the debug object syscalls. wow64: Add thunks for the I/O completion syscalls. wow64: Add thunks for the job object syscalls. wow64: Add thunks for the symbolic link object syscalls. wow64: Add thunks for some general synchronization syscalls. Revert "winegcc: Support -Wl,foo=... style linker options." wow64: Add thunks for the section object syscalls. wow64: Add thunks for the generic object syscalls. wow64: Add thunks for the local port syscalls. wow64: Add thunks for the power request syscalls. wow64: Add thunks for the registry key syscalls. wow64: Add thunks for the registry value syscalls. wow64: Add thunks for the registry I/O syscalls. wow64: Add thunks for the virtual memory syscalls. wow64: Add thunks for the memory mapping syscalls. wow64: Add thunks for the write watch syscalls. wow64: Add a thunk for the NtQueryVirtualMemory syscall. wow64: Add thunks for the Wow64-specific virtual memory syscalls. ntdll/tests: Add a test for a Wow64-only syscall. ntdll: Rename the SYSTEM_MODULE and SYSTEM_MODULE_INFORMATION structures. wow64: Implement Wow64AllocateTemp(). wow64: Add thunks for the file creation syscalls. wow64: Add thunks for the file I/O syscalls. wow64: Add thunks for the file query information syscalls. wow64: Add thunks for the file set information syscalls. wow64: Add thunks for the file async I/O syscalls. wow64: Add thunks for some misc file creation syscalls. wow64: Add support for file system redirection. wow64: Add thunks for the process/thread creation syscalls. wow64: Add thunks for the process/thread control syscalls. wow64: Add thunks for the process/thread query information syscalls. wow64: Add thunks for the process/thread set information syscalls. wow64: Add thunks for the registry notification syscalls. wow64: Add thunks for a number of security syscalls. server: Store the entry point as image-relative in pe_image_info_t. wow64: Add thunks for the token query/set information syscalls. wow64: Add thunks for the job object query/set information syscalls. wow64: Add thunks for a number of system syscalls. André Zwing (1): maintainers: Change my name. Anton Baskanov (4): winedbg: Report library load/unload events to GDB. winegstreamer: Inline query_duration() into wg_parser_connect(). winegstreamer: Always wait for duration-changed when querying for duration. winegstreamer: Continue polling if duration is unavailable after duration-changed. Biswapriyo Nath (1): include: Add structure padding for aarch64 in dbghelp.h. Daniel Lehman (2): gdi32/tests: Add a test for double-free on repeated calls to Delete[Enh]MetaFile. include: Add _tcsxfrm_l declaration. Derek Lesho (2): winevulkan: Support use of extensions which mustn't be exposed. vulkan-1/tests: Add tests for VK_KHR_external_memory_win32. Dmitry Timoshkov (1): shell32: Implement SHBindToObject. Esme Povirk (1): mscoree: Update Wine Mono to 6.3.0. François Gouget (11): oleaut32/tests: Remove unneeded casts in vartest. oleaut32/tests: Fix the Swiss franc and Moroccan dirham tests. oleaut32: Setting sThousand to a non-breaking space also matches regular spaces. oleaut32: VarParseNumFromStr() does not allow leading thousands separators. oleaut32: Fix VarParseNumFromStr()'s support for trailing thousands separator spaces. oleaut32/tests: Show the input string when VarFormatCurrency() fails. riched20: Tweak the wording of a comment. winetest: Fix handling of relative -d directories. oleaut32/tests: Use NUMPRS_HEX_OCT instead of hardcoding its value. oleaut32/tests: Test VarParseNumFromStr()'s handling of LOCALE_SMON*. oleaut32/tests: Add more VarParseNumFromStr() hexadecimal/octal tests. Gerald Pfeifer (1): nsiproxy: Include sys/socket.h. Haoyang Chen (1): winhttp: Handle headers with '\r' line breaks. Hugh McMaster (6): kernel32/tests: Test whether console color attributes are copied to the new screen buffer. kernel32/tests: Test whether font information and window size are copied to the new screen buffer. conhost: Copy Character Attributes (colors) to the new screen buffer. reg/tests: Test use of registry views when copying registry data. conhost: Popup Attributes should match Character Attributes when creating a new screen buffer. reg: Support use of registry views in the 'copy' operation. Huw D. M. Davies (4): iphlpapi: Implement GetIpAddrTable() on top of nsi. iphlpapi: Implement AllocateAndGetIpAddrTableFromStack() on top of GetIpAddrTable(). iphlpapi: Retrieve the IPv4 addresses using an export rather than a helper. include: Add IN6_IS_ADDR_LINKLOCAL() and IN6_IS_ADDR_SITELOCAL(). Jacek Caban (73): gdi32/tests: Silence noisy traces. gdi32: Handle EMFs recording directly in LineTo implementation. gdi32: Use DC_ATTR for GetCurrentPositionEx implementation. gdi32: Handle EMFs directly in MoveToEx. gdi32: Store graphics mode in DC_ATTR. gdi32: Handle EMFs directly in arc functions. gdi32: Use NtGdiEllipse for Ellipse implementation. gdi32: Use NtGdiRoundRect for RoundRect implementation. gdi32: Use NtGdiRectangle for Rectangle implementation. gdi32: Use NtGdiAngleArc for AngleArc implementation. advapi32: Link to msvcrt.dll. gdi32: Use free_gdi_handle directly for NtGdiDeleteClientObj. gdi32: Use NtGdiPolyPolyDraw for PolyPolygon implementation. winex11: Don't use pPolygon graphics driver entry point. gdi32: Use NtGdiPolyPolyDraw for Polygon implementation. gdi32: Use NtGdiPolyPolyDraw for PolyPolyline implementation. gdi32: Use NtGdiPolyPolyDraw for Polyline implementation. gdi32: Remove no longer used Polygon and Polyline driver entry points. gdi32: Use NtGdiPolyPolyDraw for PolyBezier implementation. gdi32: Use NtGdiPolyPolyDraw for PolylineTo implementation. gdi32: Use NtGdiPolyPolyDraw for PolyBezierTo implementation. gdi32: Use NtGdiPolyDraw for PolyDraw implementation. gdi32: Use NtGdiPolyPolyDraw for CreatePolyPolygonRgn implementation. gdi32: Store text alignment in DC_ATTR. gdi32: Use NtGdiExtTextOutW for ExtTextOutW implementation. gdi32: Use NtGdiCloseFigure for CloseFigure implementation. gdi32: Use ntgdi interface for path functions. gdi32: Remove no longer used EMF path driver. gdi32: Use NtGdiSetPixel for SetPixel implementation. gdi32: Use SetPixel for SetPixelV implementation. gdi32: Use ntgdi name for GetPixel. gdi32: Use NtGdiSetPixelFormat for GdiSetPixelFormat implementation. gdi32: Use ntgdi names for stubs in painting.c. gdi32: Use NtGdiFillRgn for FillRgn implementation. gdi32: Use NtGdiFillRgn for PaintRgn implementation. gdi32: Use NtGdiFrameRgn for FrameRgn implementation. gdi32: Use NtGdiInvertRgn for InvertRgn implementation. gdi32: Use NtGdiExtFloodFill for ExtFloodFill implementation. gdi32: Use META_EXTFLOODFILL records for ExtFloodFill. gdi32: Use NtGdiGradientFill for GdiGradientFill implementation. gdi32: Use get_dc_attr in SetTextAlign. gdi32: Move background mode to DC_ATTR. gdi32: Use get_dc_attr in SetBkMode. gdi32: Move disabled flag to DC_ATTR. gdi32: Move ROP mode to DC_ATTR. gdi32: Use get_dc_attr in SetROP2. gdi32: Move layout to DC_ATTR. gdi32: Move background color to DC_ATTR. gdi32: Use get_dc_attr in GetGraphicsMode. gdi32: Remove no longer used driver entry points. gdi32: Store text color in DC_ATTR. gdi32: Store arc direction in DC_ATTR. include: Introduce combaseapi.h. combase: Add CoDecodeProxy stub. gdi32: Use get_dc_attr in SetArcDirection. gdi32: Move color space stubs to objects.c. gdi32: Store rel abs mode in DC_ATTR. gdi32: Use get_dc_attr in SetRelAbs. gdi32: Store poly fill mode in DC_ATTR. gdi32: Use get_dc_attr in SetPolyFillMode. gdi32: Store stretch_blt_mode in DC_ATTR. gdi32: Use get_dc_attr in SetStretchBltMode. gdi32: Store map mode in DC_ATTR. gdi32: Remove no longer used driver entry points. gdi32: Store DC brush color in DC_ATTR. gdi32: Store DC pen color in DC_ATTR. gdi32: Store miter limit in DC_ATTR. gdi32: Use get_dc_attr in SetMiterLimit. gdi32: Move more functions from dc.c. gdi32: Use NtGdiSaveDC for SaveDC implementation. gdi32: Don't use driver entry point for NtGdiSaveDC implementation. gdi32: Use ntgdi name for CreateCompatibleDC. gdi32: Use NtGdiGetDeviceCaps for GetDeviceCaps implementation. Jan Sikorski (2): wined3d: Track queries started inside/outside of a render pass separately. wined3d: Do not request device local memory if we also want it to be host visible. Julien Loir (1): secur32: Ignore attribute when searching for buffer type. Lauri Kenttä (1): po: Update Finnish translation. Martin Storsjo (10): ntdll: Fix arm64 call_user_exception_dispatcher with kernel stack for syscalls. msvcrt: Make the coshf function NAN preserving. msvcrt: Make the sinhf function NAN preserving. msvcrt: Make the tanhf function NAN preserving. msvcrt: Make the cosh function NAN preserving. msvcrt: Make the sinh function NAN preserving. msvcrt: Make the tanh function NAN preserving. msvcrt: Add hyperbolic functions NAN tests. msvcrt: Fix strtof() error reporting for values out of float range. msvcrt: Convert double (numerically) to UINT64 via INT64, fixing pow() on arm. Michael Stefaniuc (1): dinput: Use SUCCEEDED instead of !FAILED. Nikolay Sivov (6): mf/session: Add a helper to send events while completing commands. mf/session: Fail start requests when no topology was set. mfmediaengine: Handle Play() when called before topology is set. mfmediaengine: Handle B8G8R8X8 format for d3d11 texture output. dpnhupnp: Build with msvcrt. mfplat/allocator: Handle D3D11 resource sharing mode configuration attributes. Paul Gofman (10): mshtml: Do not lock document mode in create_document_event(). mshtml: Default to IE11 for Internet URL zone. ole32: Move OLEClipbrd_Initialize() before get_ole_clipbrd(). ole32: Do not link OLE clipboard object lifecycle to OLE initialization state. ntdll: Decrement IO pending count in ioqueue_thread_proc(). ntdll: Only queue IO callback if IO is pending in ioqueue_thread_proc(). ntdll: Clear thread_running flag on exiting ioqueue_thread_proc(). ntdll: Manage TPIO object destruction based on the expected completions. kernelbase: Don't allow converting thread to fiber more than once. jscript: Store the head of statement list instead of the list structure. Piotr Caban (4): msvcrt: Use _MCW_RC rounding mask in fesetround and fegetround. msvcrt: Introduce fenv_decode helper in all runtime versions. msvcrt: Don't set x87 control word in x86_64 fesetenv. msvcrt: Introduce fenv_encode helper in all runtime versions. Zebediah Figura (56): crypt32: Rename "crl" and "cloned" to "dst" and "src" in CRL_clone(). crypt32: Copy the CRL_INFO structure instead of recalculating it. cryptnet: Use RTL_SIZEOF_THROUGH_FIELD. cryptnet/tests: Clean up and expand tests for CertDllVerifyRevocation. cryptnet: Set dwIndex in CertDllVerifyRevocation(). ws2_32/tests: Add more tests for bind() and getsockname(). ws2_32: Validate address length in bind(). ws2_32: Do not translate STATUS_INVALID_PARAMETER to WSAEFAULT. server: Avoid leaking the ifaddrs structure in bind_to_interface(). server: Support passing to bind a zero sin6_scope_id. server: Map ENODEV to STATUS_INVALID_ADDRESS_COMPONENT. winegstreamer: Don't try to convert duration from byte length. quartz/tests: Add more strict tests for accurate duration retrieval. cryptnet: Specify half of the remaining timeout for each CRL if CERT_VERIFY_REV_ACCUMULATIVE_TIMEOUT_FLAG was specified. cryptnet: Respect the timeout also if CERT_VERIFY_REV_ACCUMULATIVE_TIMEOUT_FLAG is not set. cryptnet: Check only the first successfully retrieved CRL in verify_cert_revocation_from_dist_points_ext(). cryptnet: Cache the result of revocation checks on disk. wined3d: Separate a helper to update Vulkan CBV bindings. wined3d: Separate a helper to update Vulkan SRV bindings. wined3d: Separate a helper to update Vulkan UAV bindings. wined3d: Separate a helper to update Vulkan UAV counter bindings. wined3d: Separate a helper to update Vulkan sampler bindings. wined3d: Implement constant buffer offsetting for Vulkan. server: Validate the output size of IOCTL_AFD_BIND against the input address size rather than sizeof(struct sockaddr). server: Do not accept sizeof(struct WS_sockaddr_in6_old). ntdll: Do not accept sizeof(struct WS_sockaddr_in6_old). ws2_32: Do not accept sizeof(struct WS_sockaddr_in6_old). ws2_32: Dump the flow label and scope ID in debugstr_sockaddr(). server: Also return STATUS_PIPE_DISCONNECTED for shutdown nonblocking sockets. server: Separate SD_RECEIVE and hangup conditions. server: Remove the socket from the polling loop if both it and the peer have SHUT_WR. server: Remove the socket from the polling loop if it was aborted. ntdll: Fill the I/O status block with the results of the send_socket call in sock_send(). ntdll: Fill the I/O status block with the results of the recv_socket call in sock_recv(). ws2_32: Move the setsockopt(IP_TTL) implementation to ntdll. ws2_32: Move the setsockopt(IP_UNBLOCK_SOURCE) implementation to ntdll. ws2_32: Move the getsockopt(IP_UNICAST_IF) implementation to ntdll. ws2_32: Move the setsockopt(IP_UNICAST_IF) implementation to ntdll. wined3d: Check for failure from wined3d_device_context_require_space() in wined3d_device_context_emit_unmap(). ws2_32: Move the setsockopt(IPV6_ADD_MEMBERSHIP) implementation to ntdll. ws2_32: Move the getsockopt(IPV6_DONTFRAG) implementation to ntdll. ws2_32: Move the setsockopt(IPV6_DONTFRAG) implementation to ntdll. ws2_32: Move the setsockopt(IPV6_DROP_MEMBERSHIP) implementation to ntdll. ws2_32: Move the getsockopt(IPV6_MULTICAST_HOPS) implementation to ntdll. ws2_32: Move the setsockopt(IPV6_MULTICAST_HOPS) implementation to ntdll. ws2_32: Move the getsockopt(IPV6_MULTICAST_IF) implementation to ntdll. ws2_32: Move the setsockopt(IPV6_MULTICAST_IF) implementation to ntdll. ws2_32: Move the getsockopt(IPV6_MULTICAST_LOOP) implementation to ntdll. ws2_32: Move the setsockopt(IPV6_MULTICAST_LOOP) implementation to ntdll. wined3d: Use a designated initializer to initialize wined3d_settings. ws2_32: Move the getsockopt(IPV6_UNICAST_HOPS) implementation to ntdll. ws2_32: Move the setsockopt(IPV6_UNICAST_HOPS) implementation to ntdll. ws2_32: Move the getsockopt(IPV6_UNICAST_IF) implementation to ntdll. ws2_32: Move the setsockopt(IPV6_UNICAST_IF) implementation to ntdll. ws2_32: Move the getsockopt(IPV6_V6ONLY) implementation to ntdll. ws2_32: Move the setsockopt(IPV6_V6ONLY) implementation to ntdll. Zhiyi Zhang (1): uxtheme: Fix incorrect part IDs in button class map. Ziqing Hui (3): include: Add D2D13DPerspectiveTransform definitions. include: Add D2D1Composite definitions. d2d1/tests: Add tests for standard effect properties. -- Alexandre Julliard julliard@winehq.org