Wine Announcement

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:

Binary packages for various distributions will be available from:

You will find documentation on

You can also get the current source directly from the git
repository. Check 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.
      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
      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
      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).