The Wine development release 8.13 is now available. What's new in this release: - Wow64 support in WineGStreamer. - WeakMap support in JScript. - Georgian translation. - Various bug fixes. The source is available at: https://dl.winehq.org/wine/source/8.x/wine-8.13.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 8.13 (total 36): - #24614 Multiple games crash or hang on startup due to D3DXAssembleShader not handling apostrophes in comments (Medieval II: Total War, Yu-Gi-Oh! ONLINE 3 client)('winetricks -q d3dx9_xx' is a workaround) - #35690 Steam network hang ups. - #35701 League of Legends: Right click contextual menu on friends list is invisible - #35866 AvP 2000 game: some ingame text has red boxes around it with built-in d3dx9 libraries - #41466 Steam: Tray icon menu sometimes flickers - #42867 steam store doesnt work - #44223 FrameMaker 7.2/8.0: Console window minimized and not (re)drawn - #44529 [Steam] Process remaining after exiting - #45042 Steam doesn't uninstall applications, gets stuck saying "deleting %game%" and the other popup is barely visible - #45564 Kolab E14 Client installation fails with "Copy failed" - #46221 League of Legends 8.23 crash after champion select - #46888 Office 2007 word does not export to PDF/A - #47328 Steam crashes when loading the Store tab (Assertion Failed: killing unresponsive browser for URL) - #49371 Incorrect output buffer length check in WSAIoctl with SIO_GET_INTERFACE_LIST - #50771 msys2 unlink() fails on read-only files [needs CreateFile(FILE_WRITE_ATTRIBUTES)] - #50868 League of Legends: infinite loading after login - #51383 S.T.A.L.K.E.R.: Call of Pripyat rendering is messed up with Enhanced full dynamic lighting (DX10) - #51950 Iperf 2.0.8 hangs in parallel dual mode on localhost - #51982 When installing Kobo for Desktop, user data meant for AppData\Local\Kobo is instead placed inside an arbitrary folder of the program's installation. - #53446 Total War Shogun 2 crashes on Intel Iris Plus Graphics G4 - #53723 Star Ocean The Last Hope HD exits to desktop on start after NtUserSystemParametersInfo change. - #53890 comctl32:edit - test_ime() fails in Korean on Windows - #54166 Compilation fails with gcc 4.8.4 (error: ‘HTTP_STATUS_CONTINUE’ undeclared) - #54503 d3dx9_36:math - test_D3DXSHMultiply3() fails on Debian Testing - #54609 32-bit Softerra LDAP Administrator crashes due to proxy use-after-free - #54688 ntdll:info - test_query_cpu() fails on Windows 7 - #54871 kernel32:console - testScroll() fails on Windows 10 1909 - #54932 Fallout 3: Black screen when using the experimental wow64 mode - #55032 Multiple games have laggy rendering in DX12 mode (Kena: Bridge of Spirits, Total Conflict: Resistance) - #55078 Powerpoint 2007: "Print to file" broken - #55114 secur32:schannel - The 32-bit test_connection_shutdown() crashes on Windows <= 8 - #55177 Hatching not printed in Framemaker 8 - #55181 Recent versions of chromium broken again, need ProcessPrng - #55187 winedbg --auto crashes if target process terminates after attaching. - #55247 Assertion in riched20 while installing Office 2007 - #55276 Dying Light 2: Stay Human crashes on launch ---------------------------------------------------------------- Changes since 8.12: Alex Henrie (6): webservices: Add missing const to url parameter of WsOpenListener. include: Add WS_STRING_VALUE and WS_XML_STRING_VALUE. webservices/tests: Use WS_STRING_VALUE and WS_XML_STRING_VALUE. include: Annotate IoAllocate functions with __WINE_(ALLOC_SIZE|DEALLOC|MALLOC). shell32: Free item lists with ILFree. include: Annotate SHAlloc with __WINE_(DEALLOC|MALLOC). Alexandre Julliard (101): comctl32: Use nameless unions/structs. comdlg32: Use nameless unions/structs. dinput: Use nameless unions/structs. dplayx: Use nameless unions/structs. riched20: Use nameless unions/structs. urlmon: Use nameless unions/structs. wintrust: Use nameless unions/structs. wow64: Implement backend notification functions. gitlab: Upgrade the Debian image to bookworm. ntdll: Fix returned length for some info classes in NtQueryInformationProcess(). ntdll: Return the 32-bit PEB for NtQueryInformationProcess(ProcessWow64Information). psapi/tests: Use MAX_PATH size for arrays holding file paths. kernelbase: Use ProcessWow64Information to retrieve the 32-bit PEB. wow64: Use ProcessWow64Information to retrieve the 32-bit PEB. ntdll: Implement RtlWow64GetSharedInfoProcess(). adsldp: Use nameless unions/structs. amstream: Use nameless unions/structs. appwiz.cpl: Use nameless unions/structs. cryptdlg: Use nameless unions/structs. cryptnet: Use nameless unions/structs. cryptui: Use nameless unions/structs. dmloader: Use nameless unions/structs. dmsynth: Use nameless unions/structs. dmusic: Use nameless unions/structs. dxdiagn: Use nameless unions/structs. gitlab: Install the gstreamer packages from deb-multimedia.org. d3drm: Use nameless unions/structs. ddraw: Use nameless unions/structs. ddrawex: Use nameless unions/structs. explorerframe: Use nameless unions/structs. fusion: Use nameless unions/structs. gdiplus: Use nameless unions/structs. hhctrl.ocx: Use nameless unions/structs. ieframe: Use nameless unions/structs. inetcomm: Use nameless unions/structs. inetcpl.cpl: Use nameless unions/structs. inetmib1: Use nameless unions/structs. include: Add some new information classes. configure: Always disable winegstreamer if gst/gst.h is broken. mscoree: Use nameless unions/structs. mshtml: Use nameless unions/structs. msi: Use nameless unions/structs. msxml3: Use nameless unions/structs. ndis.sys: Use nameless unions/structs. netio.sys: Use nameless unions/structs. netprofm: Use nameless unions/structs. oledb32: Use nameless unions/structs. oledlg: Use nameless unions/structs. gitlab: Make sure that the tags are fetched before building. pdh: Use nameless unions/structs. prntvpt: Use nameless unions/structs. quartz: Use nameless unions/structs. sane.ds: Use nameless unions/structs. usbd.sys: Use nameless unions/structs. wbemprox: Use nameless unions/structs. wevtapi: Use nameless unions/structs. wined3d: Use nameless unions/structs. wineandroid.drv: Use nameless unions/structs. winemac.drv: Use nameless unions/structs. winex11.drv: Use nameless unions/structs. winhttp: Use nameless unions/structs. wininet: Use nameless unions/structs. winmm: Use nameless unions/structs. winspool.drv: Use nameless unions/structs. strmbase: Use nameless unions/structs. krnl386: Use nameless unions/structs. mmsystem: Use nameless unions/structs. ver: Use nameless unions/structs. comctl32/tests: Use nameless unions/structs. comdlg32/tests: Use nameless unions/structs. compstui/tests: Use nameless unions/structs. crypt32/tests: Use nameless unions/structs. cryptui/tests: Use nameless unions/structs. devenum/tests: Use nameless unions/structs. dmsynth/tests: Use nameless unions/structs. dplayx/tests: Use nameless unions/structs. fusion/tests: Use nameless unions/structs. gdi32/tests: Use nameless unions/structs. gdiplus/tests: Use nameless unions/structs. ieframe/tests: Use nameless unions/structs. imagehlp/tests: Use nameless unions/structs. inetcomm/tests: Use nameless unions/structs. iphlpapi/tests: Use nameless unions/structs. kernel32/tests: Use nameless unions/structs. mfplat/tests: Use nameless unions/structs. mshtml/tests: Use nameless unions/structs. msi/tests: Use nameless unions/structs. ntdll/tests: Use nameless unions/structs. oledb32/tests: Use nameless unions/structs. pdh/tests: Use nameless unions/structs. quartz/tests: Use nameless unions/structs. rpcrt4/tests: Use nameless unions/structs. shlwapi/tests: Use nameless unions/structs. urlmon/tests: Use nameless unions/structs. user32/tests: Use nameless unions/structs. wevtapi/tests: Use nameless unions/structs. windowscodecs/tests: Use nameless unions/structs. wininet/tests: Use nameless unions/structs. winmm/tests: Use nameless unions/structs. winspool.drv/tests: Use nameless unions/structs. wintrust/tests: Use nameless unions/structs. Alistair Leslie-Hughes (37): appwiz: Remove DECLSPEC_HIDDEN usage. sxs: Remove DECLSPEC_HIDDEN usage. netprofm: Remove DECLSPEC_HIDDEN usage. adsldp: Remove DECLSPEC_HIDDEN usage. explorerframe: Remove DECLSPEC_HIDDEN usage. wintab32: Remove DECLSPEC_HIDDEN usage. msdaps: Remove DECLSPEC_HIDDEN usage. mscms: Remove DECLSPEC_HIDDEN usage. shlwapi: Remove DECLSPEC_HIDDEN usage. widl: Remove unnecessary null check (Coverity). windowscodecs: Remove misleading comment. windowscodecs: Remove DECLSPEC_HIDDEN usage. d3d10: Remove DECLSPEC_HIDDEN usage. d3dcompiler_43: Remove DECLSPEC_HIDDEN usage. d3d8: Remove DECLSPEC_HIDDEN usage. d3drm: Remove DECLSPEC_HIDDEN usage. d3d9: Remove DECLSPEC_HIDDEN usage. wbemdisp: Remove DECLSPEC_HIDDEN usage. mf: Remove DECLSPEC_HIDDEN usage. mfreadwrite: Remove DECLSPEC_HIDDEN usage. mfplat: Remove DECLSPEC_HIDDEN usage. kernelbase: Remove DECLSPEC_HIDDEN usage. fusion: Remove DECLSPEC_HIDDEN usage. wnaspi32: Remove DECLSPEC_HIDDEN usage. msctf: Remove DECLSPEC_HIDDEN usage. taskschd: Remove DECLSPEC_HIDDEN usage. msado15: Remove DECLSPEC_HIDDEN usage. twain_32: Remove DECLSPEC_HIDDEN usage. gdiplus: Remove DECLSPEC_HIDDEN usage. d3drm/tests: Show that viewport::render does not clear the background. ddrawex: Remove DECLSPEC_HIDDEN usage. dxgi: Remove DECLSPEC_HIDDEN usage. d3d11: Remove DECLSPEC_HIDDEN usage. d3dx10_43: Remove DECLSPEC_HIDDEN usage. d2d1: Remove DECLSPEC_HIDDEN usage. ddraw: Remove DECLSPEC_HIDDEN usage. d3dx9_36: Remove DECLSPEC_HIDDEN usage. Aurimas Fišeras (1): po: Update Lithuanian translation. Bernhard Kölbl (2): mfmediaengine/tests: Add tests for audio effects. mfmediaengine: Add support for inserting audio effects. Billy Laws (5): wineboot: Always attempt setup for all machine types. ntdll: Fix NtContinue from within exception context on ARM64. ntdll/tests: Test that NtContinue restores all register state on arm64. ntdll: Add aarch64 DWARF register definitions. ntdll: Avoid storing a second ctx copy in the aarch64 raise trampoline. Biswapriyo Nath (5): include: Add ID2D1SpriteBatch in d2d1_3.idl. include: Add ID2D1SvgGlyphStyle in d2d1_3.idl. include: Add ID2D1DeviceContext3 in d2d1_3.idl. include: Add ID2D1DeviceContext4 in d2d1_3.idl. include: Add more CLSIDs in d2d1effects.idl. Brendan Shanks (10): win32u: Set zero_bits correctly for large address aware applications on Wow64. winecoreaudio: Set zero_bits correctly for large address aware applications on Wow64. winealsa: Set zero_bits correctly for large address aware applications on Wow64. wineoss: Set zero_bits correctly for large address aware applications on Wow64. winepulse: Set zero_bits correctly for large address aware applications on Wow64. ntdll: Don't release address space on 64-bit macOS. configure: Only attempt to build macOS preloader on Intel, and remove unnecessary flag checks. loader: On 64-bit macOS, reserve the low 8GB using a zerofill section. loader: In macOS preloader, add __program_vars section. winecoreaudio: Fix missing struct member in get_position() Wow64 thunk. Chris Denton (1): bcryptprimitives: ProcessPrng stub. Connor McAdams (8): uiautomationcore: Allow for refusal of HWND providers on node creation by non-nested node providers. uiautomationcore: Add support for matching serverside events through navigation. ole32/tests: Extend test_marshal_channel_buffer() test to include IRpcProxyBufferWrapper checks. combase: Use correct destination context in CoUnmarshalInterface when using the standard marshaler. uiautomationcore/tests: Add IUIAutomationEventHandler tests. uiautomationcore: Partially implement IUIAutomation::AddAutomationEventHandler. uiautomationcore: Implement IUIAutomation::RemoveAllEventHandlers. uiautomationcore: Implement IUIAutomation::RemoveAutomationEventHandler. David Kahurani (1): gdiplus: Dump both variable address and internal values for matrices. Davide Beatrici (2): mmdevapi: Don't link to uuid. mmdevapi: Implement get_audio_session. Ekaterine Papava (1): po: Add Georgian translation. Eric Pouech (1): conhost: Fix ctrl-c handling. Fabian Maurer (2): geolocation: Rename from windows.devices.geolocation.geolocator. user32/tests: Remove DrawTextEx tests that overrun stack variable. François Gouget (4): user32/tests: Use win_skip() for missing APIs. uxtheme/tests: Use win_skip() for missing APIs. msvcrt/tests: Check that some functions are only available in 32-bit code. riched20/tests: Make the editor paste test failures more informative and unique. Gabriel Ivăncescu (10): mshtml: Grab the binding while aborting it. jscript: Convert unlink_props to a helper that unlinks the entire object. jscript: Implement WeakMap instance stub and constructor. jscript: Implement WeakMap.set(). jscript: Implement WeakMap.get(). jscript: Implement WeakMap.delete(). jscript: Implement WeakMap.clear(). jscript: Implement WeakMap.has(). mshtml/tests: Add tests for WeakMap. jscript: Properly set JS_E_WRONG_THIS as a TypeError. Georg Lehmann (1): winevulkan: Update to VK spec version 1.3.258. Giovanni Mascellani (7): dxgi: Introduce a worker thread for the D3D12 swapchain. dxgi: Move presentation to the worker thread. dxgi: Move buffer resizing to the worker thread. dxgi: Remove the worker event, which is now useless. dxgi: Do not allow vkd3d_acquire_vk_queue() to fail. dxgi: Acquire and release the Vulkan queue inside d3d12_swapchain_queue_present(). dxgi: Wait before acquiring the Vulkan queue for presenting. Hans Lehnert (1): wininet: Handle http headers correctly when length is 0. Hans Leidekker (5): secur32/tests: Fix a test failure and extend tests. include: Add Uri runtime class and related definitions. include: Add ProcessorArchitecture winrt enum. include: Add windows.storage.idl. include: Add windows.applicationmodel.idl. Jacek Caban (12): user32: Return result from dispatch_win_proc_params. win32u: Return result from dispatch_win_proc_params. win32u: Remove no longer needed result pointer from win_proc_params. win32u: Always use result returned directly from call_window_proc. user32: Always use NtCallbackReturn in User32DrawText. wow64win: Define more 32-bit types. wow64win: Support in place conversion in 64to32 struct conversion helpers. wow64win: Convert parameters in place in wow64_NtUserCallWinProc. wow64win: Convert parameters in place in wow64_NtUserCallWindowsHook. user32: Always use NtCallbackReturn to pass result from User32CallWindowsHook. win32u: Pass module name before packed lparam in win_hook_params. win32u/tests: Add tests for handling LPARAM in window procs and hooks. Jacob Czekalla (1): comdlg32: Add parent folder button to IFileDialog. Jeff Smith (10): gdiplus: Dash pattern scaling does not shrink below line width 1.0. gdiplus/tests: Fix mangled test output when dumping data in hex format. gdiplus/tests: Use consistent no-alternate value for image properties. gdiplus/tests: Add GIF to image properties tests. gdiplus/tests: Use test context for test ran in a loop. gdiplus/tests: Pare down image property tests that are not run for Wine. gdiplus: Fix GdipGetPropertySize return value when no properties exist. gdiplus: Fix GdipGetAllPropertyItems return value when no properties exist. windowscodecs: Factor out common GIF palette copying logic. windowscodecs: Allow GIF with no color table. Jinoh Kang (11): riched20: Wrap marked paragraphs at Text Services initialization. riched20/tests: Add tests for change notifications caused by EM_SETSEL{,EX}. riched20: Don't call ME_UpdateRepaint inside set_selection(). ntdll: Fail loudly if RtlActivateActivationContextEx fails to allocate memory. riched20: Factor out device context acquisition from ME_MakeFirstParagraph. riched20: Don't call wrap_marked_paras_dc() before the editor is fully initialized. msi: Fully initialize the control structure in dialog_line_control(). msi: Make insertion order of line controls consistent with other controls. msi: Don't open code dialog_add_control() in dialog_line_control(). ntdll: Fix restoring X16 and X17 in ARM64 syscall dispatcher. winegcc: Enable SafeSEH only on i386. Kurt Kartaltepe (3): winegstreamer: Replace pointers with handles in PE->Unix transition. winegstreamer: Replace ambiguously sized/aligned elements. winegstreamer: Implement Wow64 entrypoints in the Unix library. Maxim Karasev (5): include: Add UNICODE_NULL. include: Update _SECURITY_INTEGER. include: Add missing Kerberos related defines. klist: Add a program that lists Kerberos tickets. include: Add more Kerberos cache info types. Nikolay Sivov (3): d3dcompiler/tests: Add some tests for matrix packing order compile flags. windows.globalization: Use separate AddRef/Release methods for the language factory. d3dcompiler/tests: Add another test for matrix majority flags. Paul Gofman (8): d3d11/tests: Add basic test for shared resources. include: Add initial ioring definitions. kernelbase: Add stub for QueryIoRingCapabilities(). ntdll/tests: Add test for async cancel on pipe's last process handle close. ws2_32/tests: Add test for async cancel on socket's last process handle close. server: Cancel socket asyncs when the last handle in process is closed. server: Cancel pipe asyncs when the last handle in process is closed. user32/tests: Change display mode for correct monitor in check_preferred_mode(). Petrichor Park (1): notepad: Use GetDpiForWindow(). Piotr Caban (6): wineps: Fix SetTextJustification playback with 0 count parameter. wineps: Buffer data sent to printer port. services: Exit early in process_send_start_message if ConnectNamedPipe fails. msvcrt: Pass correct buffer to locale_to_sname helper in create_locinfo. msvcrt: Improve locale_to_sname error handling. msvcrt: Set sname_match in locale_to_sname when returning cached result. Shaun Ren (16): sapi: Invoke AddRef in mmaudio SetObjectToken. sapi: Invoke AddRef in ISpVoice::SetVoice. sapi/tests: Fix intermittent duration test failure in mmaudio. sapi/tests: Fix ISpObjectToken::CreateInstance E_ACCESSDENIED error. include: Fix ISpTTSEngineSite::GetActions return type. sapi: Handle queue not initialized in async_empty_queue. sapi: Reset empty event after queuing a task in async_queue_task. sapi: Implement ISpVoice::Speak SPF_PURGEBEFORESPEAK. sapi: Partially implement ISpVoice::Speak SPF_ASYNC. sapi: Implement synchronous ISpVoice::Speak. sapi: Introduce ISpTTSEngineSite stub. sapi: Implement ISpVoice::Speak speak_proc. sapi: Implement ISpTTSEngineSite::Write. sapi: Implement ISpTTSEngineSite::GetActions/Rate/Volume. sapi: Return wait status in async_wait_queue_empty. sapi: Implement ISpVoice::WaitUntilDone. Sven Baars (6): wow64win: Call NtUserSetClassLongPtr() from wow64_NtUserSetClassLongPtr(). wow64: Return STATUS_NOT_IMPLEMENTED from wow64_NtSetInformationToken(). ntdll: Test against the correct limit in get_extended_params(). ntdll/tests: Update some more todos that succeed with the new wow64 architecture. kernel32/tests: Update a todo that succeeds with the new wow64 architecture. wow64win: Always use NtUserSetWindowLongPtr() for GWLP_HINSTANCE and GWLP_WNDPROC. Tim Clem (4): wow64win: Consistently marshal HINSTANCEs and HMODULEs as pointers. shell32: Don't fall back to $HOME for missing user special folders. wmp: Don't release a NULL typelib. wmp: Release filter graph and interfaces if WMPControls::play fails. Torge Matthies (1): ntdll: Implement efficiency class reporting for Intel hybrid CPUs. Victor Chiletto (9): msvcr110/tests: Add tests for new setlocale behaviors. msvcr120/tests: Check ___lc_locale_name_func with neutral Chinese locales. msvcrt: Use snames instead of LCIDs in create_locinfo. msvcrt: Convert locale_to_LCID to snames. msvcrt: Skip exhaustive locale search with valid snames. msvcrt: Simplify set_lc_locale_name. msvcrt: Remap synonyms to snames. msvcrt: Use GetLocaleInfoEx to compare locale info. user32: Add hotpatch prologue to RegisterRawInputDevices. Yuxuan Shui (1): msvcrt: Fix out-of-bound access in create_locinfo. Zebediah Figura (14): wined3d: Move struct wined3d_device_vk to wined3d_vk.h. wined3d: Move struct wined3d_texture_vk to wined3d_vk.h. wined3d: Move struct wined3d_sampler_vk to wined3d_vk.h. wined3d: Move struct wined3d_buffer_vk to wined3d_vk.h. wined3d: Move struct wined3d_rendertarget_view_vk to wined3d_vk.h. wined3d: Move struct wined3d_shader_resource_view_vk to wined3d_vk.h. opengl32: Copy to the wow64 buffer even for write maps. opengl32: Correctly interpret glMapBuffer() access in wow64 mapping. wined3d: Move struct wined3d_unordered_access_view_vk to wined3d_vk.h. wined3d: Move struct wined3d_swapchain_vk to wined3d_vk.h. wined3d: Move struct wined3d_format_vk to wined3d_vk.h. wined3d: Move remaining wined3d_context_vk functions to wined3d_vk.h. wined3d: Move vk_aspect_mask_from_format() functions to wined3d_vk.h. wined3d: Move the wined3d_vk.h include to individual files. Zhao Yi (2): comctl32/tests: Add a test case to get syslinkid. comctl32/syslink: Check item type before increasing link ID in SYSLINK_LinkAtPt(). Zhiyi Zhang (3): comctl32/tests: Add Korean IME specific test sequences. user32/tests: Add Korean IME specific test sequences. winex11.drv: Move the dummy parent window to (0, 0).