Wine Announcement

The Wine development release 5.14 is now available.

What's new in this release (see below for details):
  - More restructuration of the console support.
  - Initial version of the Webdings font.
  - Beginnings of PE conversion of the MSVCRT libraries.
  - Various bug fixes.

The source is available from the following locations:

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 5.14 (total 26):

  10106  Changing CursorBlinkRate in the registry has no effect
  19040  AOL 9.0 fails to install
  19775  Largo Winch: crash with hardware vertex shader
  38941  DOSCenter: Text colors are missing
  39721  Listview custom draw in report mode uses wrong background color
  43434  StarCraft: Brood War doesn't run without setting the Windows version to 2003 or Vista
  43949  WINEDEBUG=+relay does not work on armv7l
  44129  Bayonetta: much slower than on Windows
  47161  Star Wars: The Force Unleashed II - Not show cinematics at all
  47501  Toontown Rewritten: Unhandled page fault on read access to 0x00000000 at address 0x1fea2b7 (thread 0064)
  48555  Helm Standalone/VST plugin 32bit version has random content in window, 64bit version works OK
  48856  Renegade Ops needs D3DX10GetImageInfoFromMemory implementation
  48859  PassMark PerformanceTest 10 crashes during start since wine-4.11
  49418 -> Game Center -> starts with the message: Unable to connect to the content service. Please check you internet connection and try again.
  49436  64-bit Diablo III hangs on startup since 5.11
  49474  Chaos Legion does not work with wine quartz.
  49487  ListView control custom draw in report view shows blank item if handler clears uItemState CDIS_SELECTED flag
  49523  Access denied opening c:\windows\system32\cmd.exe\cmd.exe
  49561  After update to wine-5.12 "1c" start crashed with error Unhandled exception: page fault on read access to 0x00000000 in 64-bit code (0x00000000100fb266).
  49562  Godot Engine have broken shadows and doesn't read properly settings file
  49578 wouldn't start
  49581  Disk Genius needs kernel32.SetFirmwareEnvironmentVariable
  49590 Agent.exe hang/crash
  49604  TES4:Oblivion  hang on filter_graph.cs on Wine 5.13
  49620  Tableau Desktop fails to install
  49626  ntdll can be loaded multiple times into the same process


Changes since 5.13:

Alex Henrie (2):
      kernel32: Stub SetFirmwareEnvironmentVariableW.
      ws2_32/tests: Allow ESP and AH protocols to be missing on Windows.

Alexandre Julliard (31):
      ntdll: Fix a memory leak.
      ntdll: Move the LPC port syscall stubs to the Unix library.
      ntdll: Move the token functions to the Unix library.
      ntdll: Move the security system calls to the Unix library.
      ntdll: Move various stub functions to the Unix library.
      ntdll: Move the locale system calls to the Unix library.
      ntdll: Set a better exit status when the main image fails to load.
      ntdll: Map errno to a status also in directory functions.
      ntdll: Implement KiRaiseUserExceptionDispatcher().
      ntdll: Use a syscall thunk for NtClose().
      ntdll: Use a syscall thunk for NtQueryPerformanceCounter().
      ntdll: Avoid private Unix functions in RtlExitUserThread().
      ntdll: Implement NtSetInformationProcess(ProcessThreadStackAllocation).
      ntdll: Avoid private Unix functions in RtlCreateUserStack().
      ntdll: Call virtual_set_large_address_space() directly from the Unix side.
      winegc: Support overriding the default PE file alignment.
      ntdll: Update the TEB and PEB structures for newer Windows versions.
      include: Add 64-bit versions of the TEB and PEB for WoW64 mode.
      ntdll: Store the thread startup info in the ntdll_thread_data structure.
      ntdll: Allocate 64-bit TEB and PEB in WoW64 mode.
      ntdll: Store the filesystem redirection flag in the 64-bit TEB.
      winebuild: Store the syscall frame in the thread data on i386.
      winebuild: Store the syscall frame in the thread data on x86_64.
      winebuild: Store the syscall frame in the thread data on ARM.
      winebuild: Store the syscall frame in the thread data on ARM64.
      ntdll: Use a syscall thunk for NtGetContextThread().
      ntdll: Reimplement RtlRaiseException() to build a correct context on ARM.
      ntdll/tests: Fix vectored exception handler usage.
      ntdll/tests: Enable more exception tests on ARM platforms.
      ntdll/tests: Add tests for RtlCaptureContext() and NtGetContextThread() on x86_64.
      ntdll/tests: Add thread context test for ARM platforms.

Alistair Leslie-Hughes (1):
      ws2_32: Correct returned error code for an invalid socket.

Anton Baskanov (6):
      amstream/tests: Fix AMMultiMediaStream::OpenFile test.
      amstream/tests: Fix file rendering test.
      amstream/tests: Add a test AVI file.
      amstream/tests: Move the testfilter code above to use it in SetState tests.
      amstream: Return S_OK from AMMultiMediaStream::SetState when IMediaControl::Run succeeds.
      amstream: Start the stream when AMMSF_RUN is passed to AMMultiMediaStream::OpenFile.

Brendan Shanks (6):
      bcrypt: Improve BCryptSecretAgreement/BCryptDestroySecret/BCryptDeriveKey stubs.
      bcrypt: Add tests for BCryptSecretAgreement/BCryptDestroySecret/BCryptDeriveKey.
      winemac.drv: Build cocoa_window.m with GL_SILENCE_DEPRECATION.
      winemac.drv: Fix warnings for constants deprecated by macOS 10.14.
      winevulkan: Update Vulkan XML URL to use
      winemac.drv: Fix warnings for constants deprecated by macOS 10.12.

Daniel Lehman (1):
      msvcp140_1: Add stub msvcp140_1.

Derek Lesho (1):
      mountmgr.sys: Use SystemBuffer output for IOCTL_STORAGE_QUERY_PROPERTY.

Dmitry Kislyuk (1):
      vbscript: Implement case insensitive comparison.

Dmitry Timoshkov (8):
      usp10: Don't specify ETO_GLYPH_INDEX for bitmap fonts.
      ieframe: Implement IOleObject::GetUserClassID().
      ieframe: Implement IOleObject::Advise().
      ieframe: Implement IOleObject::Unadvise().
      ieframe: Implement IOleObject::EnumAdvise().
      ieframe: IOleObject::Close() should notify OnClose() advise sink.
      ieframe/tests: Add some tests for IOleObject::Advise(), IOleObject::Unadvise() and IOleObject::EnumAdvise().
      fonts: Add initial version of Webdings font.

François Gouget (2):
      tests: Trace elapsed time when $WINETEST_TIME is set.
      winex11.drv: Fix the spelling of a comment.

Gabriel Ivăncescu (3):
      ddraw/tests: Test non-primary video memory surface in test_lost_device().
      ddraw: Return DDERR_WRONGMODE when attempting to restore surfaces of a lost device.
      ddraw: Check the foreground window in addition to the device state in ddraw_update_lost_surfaces().

Georg Lehmann (1):
      winevulkan: Avoid returning 0 for swapchain maxImageCount.

Gerald Pfeifer (1):
      ntdll: Include <signal.h> for sigset_t.

Gijs Vermeulen (13):
      qcap/tests: Avoid test failures in test_seeking().
      wbemprox/tests: Fix test failures.
      wbemprox/tests: Add a test for Win32_PhysicalMemory.ConfiguredClockSpeed.
      amstream: Accept more media subtypes in AMVideoStream::ReceiveConnection().
      wbemprox/tests: Add IEnumWbemClassObject::Next() tests.
      wbemprox: Support retrieving more than one object in IEnumWbemClassObject::Next().
      qdvd: Add a stub IDvdInfo2 interface.
      amstream: Increase parent IAMMediaStream refcount in IAudioMediaStream::CreateSample().
      amstream: Increase IAudioData refcount in IAudioMediaStream::CreateSample().
      amstream: Implement IAudioStreamSample::GetMediaStream().
      amstream: Implement IAudioStreamSample::GetAudioData().
      amstream: Get rid of the IAudioStreamSampleImpl typedef.
      amstream: Return correct media type info when enumerating AMAudioStream media types.

Hans Leidekker (1):
      bcrypt: Allow importing private ECDSA keys.

Jacek Caban (47):
      include: Add missing PROC_THREAD_ATTRIBUTE defines.
      server: Introduce IOCTL_CONDRV_SET_INPUT_INFO ioctl.
      wineconsole: Use IOCTL_CONDRV_SET_INPUT_INFO in WINECON_SetHistorySize.
      wineconsole: Use IOCTL_CONDRV_SET_INPUT_INFO in WINECON_SetHistoryMode.
      wineconsole: Use IOCTL_CONDRV_SET_INPUT_INFO in WINECON_SetEditionMode.
      wineconsole: Use IOCTL_CONDRV_SET_INPUT_INFO to set console window handle.
      server: Remove no longer used code from set_console_input_info.
      server: Introduce IOCTL_CONDRV_SET_TITLE ioctl.
      wineconsole: Use IOCTL_CONDRV_SET_TITLE ioctl.
      server: Allow creating screen buffer using NtCreateFile.
      kernelbase: Use NtCreateFile in CreateConsoleScreenBuffer.
      server: Introduce IOCTL_CONDRV_WRITE_OUTPUT ioctl.
      kernelbase: Use IOCTL_CONDRV_WRITE_OUTPUT in WriteConsoleOutputW.
      kernelbase: Use IOCTL_CONDRV_WRITE_OUTPUT in WriteConsoleOutputAttribute.
      kernelbase: Use IOCTL_CONDRV_WRITE_OUTPUT in WriteConsoleOutputCharacterW.
      kernel32: Use IOCTL_CONDRV_WRITE_OUTPUT in CONSOLE_WriteChars.
      server: Remove no longer used write_console_output request.
      kernel32/tests: Add more console output tests.
      wineconsole: Ignore ERROR_IO_INCOMPLETE error in WINECON_GrabChanges.
      wineconsole: Use ReadConsoleOutputW in WINECON_FetchCells.
      condrv: Rename condrv_write_output_params to condrv_output_params.
      server: Introduce IOCTL_CONDRV_READ_OUTPUT ioctl.
      kernelbase: Use IOCTL_CONDRV_READ_OUTPUT in ReadConsoleOutputCharacterW.
      kernelbase: Use IOCTL_CONDRV_READ_OUTPUT in ReadConsoleOutputAttribute.
      kernelbase: Use IOCTL_CONDRV_READ_OUTPUT in ReadConsoleOutputW.
      server: Remove no longer used read_console_output request.
      kernel32/tests: Add more console output reading tests.
      server: Introduce IOCTL_CONDRV_SCROLL ioctl.
      kernelbase: Use IOCTL_CONDRV_SCROLL in ScrollConsoleScreenBufferW.
      server: Remove no longer used move_console_output request.
      server: Use weak reference between console input and renderer objects.
      server: Allow using console ioctls on renderer object.
      wineconsole: Rename hSynchro to console.
      wineconsole: Use renderer handle instead of hConOut where possible.
      server: Remove no longer needed CONSOLE_RENDERER_ACTIVE_SB_EVENT events.
      server: Remove no longer needed open_console request.
      wineconsole: Use renderer handle instead of hConIn where possible.
      wineconsole: Move WINECON_Spawn call to WINECON_Init.
      wineconsole: Use console in/out handles only in WINECON_Init.
      kernelbase: Lock console critical section when changing current console.
      kernelbase: Fix handling processes using STARTF_USESTDHANDLES when setting standard handles in AllocConsole.
      kernelbase: Close handles allocated by AllocConsole in FreeConsole.
      kernel32/tests: Add more AllocConsole tests.
      kernelbase: Use init_console_std_handles in AttachConsole.
      winegcc: Support file alignment on msvc target.
      winegcc: Try using msvc file align syntax if mingw-style is not supported.
      configure: Use *-windows instead of *-windows-gnu as fallback cross compiler target.

Jactry Zeng (1):
      wininet: Handle empty expires for cookie setting.

Jeff Smith (1):
      usp10: Fix typo in comment about box drawing unicode range.

Jiajin Cui (1):
      gdiplus: Fix crash if failed to create bitmap.

Joshua Ashton (1):
      winevulkan: Implement VK_EXT_calibrated_timestamps.

Kevin Puetz (2):
      jscript: Fix some memory problems in disp_call_value.
      jscript: Fix `this` within IDispatchEx::InvokeEx.

Liam Middlebrook (1):
      winevulkan: Update to VK spec version 1.2.148.

Louis Lenders (1):
      sc.exe: Fake succes for the SdSet argument.

Matteo Bruni (9):
      wined3d: Correctly destroy the adapter on format initialization failure in no3d mode.
      wined3d: Fail adapter creation if driver version info can't be found.
      wined3d: Set proper values for the guard band caps.
      wined3d: Remove some unnecessary "inline" qualifiers.
      wined3d: Get rid of default label in debug_cs_op() switch.
      ntdll: Don't read current CPU frequency on Linux.
      include: Add ID3D10Device1 forward declaration.
      include: Flesh out d3dx10math.h a bit more.
      d3dcompiler: Don't link to dxguid or uuid.

Myah Caron (4):
      include: Add IShellLinkDual interface.
      amstream: Implement IMediaStreamFilter::GetDuration.
      amstream: Implement IAMMultiMediaStream::GetDuration.
      amstream: Implement IMediaStreamFilter::GetStopPosition.

Nikolay Sivov (9):
      comctl32/listview: Do no alter custom draw text colors between notification stages.
      sxs/tests: Use wide string literal constants.
      sxs: Implement surrogate data lookup in SxsLookupClrGuid().
      sxs: Add support for SXS_LOOKUP_CLR_GUID_USE_ACTCTX in SxsLookupClrGuid().
      combase: Move Wdtp* marshalling functions.
      combase: Move HWND marshalling functions.
      combase: Move HDC marshalling functions.
      combase: Move HMENU marshalling functions.
      combase: Move HICON marshalling functions.

Paul Gofman (2):
      kernel32: Zero initialize module data in fetch_module().
      iphlpapi: Fix buffer reallocation in get_pid_map().

Piotr Caban (30):
      comctl32: Fix non printable characters handling in SB_SETTEXT.
      msvcrt: Add _wctype table.
      msvcrt: Export _pwctype table.
      msvcrt: Don't use get_char_typeW in _iswctype_l.
      msvcrt: Copy wcslen implementation from ntdll.
      msvcrt: Copy wcscpy implementation from ntdll.
      msvcrt: Copy wcscat implementation from ntdll.
      msvcrt: Copy wcschr implementation from ntdll.
      msvcrt: Copy wcsrchr implementation from ntdll.
      msvcrt: Don't use wine/unicode.h header.
      msvcrt: Don't use div and ldiv function.
      msvcrt: Copy memchr implementation from ntdll.
      msvcrt: Copy memcmp implementation from ntdll.
      msvcrt: Copy memmove implementation from ntdll.
      msvcrt: Copy memset implementation from ntdll.
      msvcrt: Copy strcat implementation from ntdll.
      msvcrt: Copy strchr implementation from ntdll.
      msvcrt: Copy strlen implementation from ntdll.
      msvcrt: Copy strncat implementation from ntdll.
      msvcrt: Copy strpbrk implementation from ntdll.
      msvcrt: Copy strrchr implementation from ntdll.
      msvcrt: Add __STRINGTOLD_L and _atoldbl_l partial stubs.
      msvcrt: Support arbitrary buffer size in bnum.
      msvcrt: Introduce fpnum structure that can be used to represent 64 and 80-bit double.
      msvcrt: Create 64-bit mantissa in fpnum_parse.
      msvcrt: Don't depend on additional mantissa bits when rounding.
      msvcrt: Don't use strtold in __STRINGTOLD_L.
      msvcrt: Add __STRINGTOLD tests.
      msvcrt: Fix rounding of numbers smaller than minimal subnormal.
      user32: Support undocumented SC_SIZE flag that can be used to move window.

Rémi Bernon (2):
      winegcc: Align sections in PE files to page size.
      dbghelp: Ignore missing debug info in SymInitializeW.

Serge Gautherie (9):
      winapi_test: Remove leftover PUUID_VECTOR from tests.dat.
      winapi_test: Fix a verifying loop on headers, which never finds any type name.
      winapi_test: Add common headers for rpcrt4 test.
      winapi_test: Remove useless common headers for shlwapi test.
      winapi_test: Remove useless winbase.h for wininet test.
      winapi_test: Add a blank line between common and specific headers.
      winapi_test: Remove MIDL_STUB_MESSAGE field exclusions.
      winapi_test: Fix 'MIXERLINECONTROL[AW]' typos.
      winapi: Update 'perl -w' to 'use warnings 'all''.

Shawn M. Chapla (10):
      gdiplus/tests: Add metafile unknown font deserialize test.
      gdiplus: Use GenericFontFamilySansSerif when missing deserialized font family.
      gdiplus/tests: Add metafile FillRegion test.
      gdiplus: Add FillRegion record deserialization.
      gdiplus: Add FillRegion serialization.
      gdiplus/tests: Add metafile LinearGradient brush test.
      gdiplus: Add LinearGradient brush object serialization.
      gdiplus: Fix LinearGradientBrush deserialization off-by-one errors.
      gdiplus: Use FromRect constructor in LinearGradientBrush deserialization.
      gdiplus/tests: Fix 'LogicalDpiY' typos in metafile tests.

Zebediah Figura (58):
      ntdll/tests: Remove some workarounds for no longer supported versions of Windows.
      ntdll/tests: Remove todo_wine for tests that now succeed.
      ntdll/tests: Return early if ThreadHideFromDebugger isn't supported.
      ntdll/tests: Remove some unnecessary checks in test_query_logicalprocex().
      ntdll/tests: Make info.c less verbose by default.
      quartz/videorenderer: Render preroll samples.
      quartz/vmr9: Render preroll samples.
      quartz/dsoundrender: Reimplement the DirectSound renderer directly on top of the strmbase filter.
      strmbase: Remove some no longer used callbacks.
      strmbase: Get rid of BaseRendererImpl_Receive().
      strmbase: Wait for presentation time after rendering the first sample.
      quartz/vmr9: Signal state change completion only after PresentImage() has been called.
      quartz/tests: Add tests for IMediaSeeking::GetCurrentPosition() and EC_COMPLETE interaction.
      quartz: Return the stop position from GetCurrentPosition() after all filters return EC_COMPLETE.
      wine.inf: Map CursorBlinkRate to the registry.
      wine.inf: Map the Windows section of win.ini to the registry.
      quartz/vmr9: Return E_INVALIDARG if both texture and offscreen flags are passed to AllocateSurfaceHelper().
      qcap/vfwcapture: Return VFW_S_CANT_CUE from GetState(), not Pause().
      winspool: Remove the "force" parameter to WINSPOOL_SetDefaultPrinter().
      winspool: Stop setting the "Devices" key.
      wine.inf: Map the Devices section of win.ini to the registry.
      winspool: Stop modifying the "Devices" profile section.
      quartz: Allow the arguments to IMediaSeeking::GetPositions() to be NULL.
      quartz: Correctly convert reference time to REFTIME in IBasicVideo::get_AvgTimePerFrame().
      winegstreamer: Check for failure from gst_video_info_set_format().
      wine.inf: Map the Desktop section of win.ini to the registry.
      wine.inf: Map the Extensions section of win.ini to the registry.
      wine.inf: Map the PrinterPorts section of win.ini to the registry.
      winspool: Stop setting the PrinterPorts profile section.
      wine.inf: Map the Sounds section of win.ini to the registry.
      winegstreamer: Preserve the frame rate when converting video formats.
      winegstreamer: Release the IAsyncReader on disconnection.
      quartz/dsoundrender: Clear the DirectSound buffer on EOS.
      quartz: Don't pause the graph in IMediaSeeking::SetPositions if it hasn't finished running yet.
      quartz/vmr9: Allow AdviseSurfaceAllocator() to be called multiple times.
      dsound/tests: Link directly to dsound.
      dsound/tests: Rewrite test_effects().
      dsdmo/tests: Add tests for aggregation.
      dsound/tests: Move effect parameter tests to dsdmo.
      dsdmo/tests: Add some tests for media types.
      dsdmo: Add a stub waves reverb effect.
      dsdmo: Stub IMediaObjectInPlace.
      dsdmo: Stub IDirectSoundFXWavesReverb.
      dsdmo: Implement IMediaObject::SetInputType().
      dsdmo: Implement IMediaObject::SetOutputType().
      kernel32/tests: Relax a timing test.
      dsdmo: Add a stub I3DL2 reverb effect.
      dsdmo: Stub IDirectSoundFXI3DL2Reverb.
      dsdmo: Implement IDirectSoundFXI3DL2Reverb parameters methods.
      dsdmo: Add a stub equalizer effect.
      dsdmo: Stub IDirectSoundFXParamEq.
      dsdmo: Implement IDirectSoundFXParamEq parameters methods.
      wpp: Correct the spelling of "ellipsis".
      ntdll: Compare builtins by their device and inode number directly.
      ntdll: Append ntdll.dll to the builtin_modules list.
      ntoskrnl.exe/tests: Add some tests for file names.
      ntdll/tests: Add more tests for object names.
      dbghelp: Replace another usage of GetEnvironmentVariable() with the target process's environment.

Zhiyi Zhang (23):
      user32: Trace ChangeDisplaySettingsExW() results.
      user32: Trace EnumDisplaySettingsExW() results.
      user32/tests: Test that EnumDisplayMonitors() doesn't set error codes.
      user32/tests: Add more ChangeDisplaySettings() tests.
      user32: Check invalid device names in ChangeDisplaySettingsExW().
      winex11.drv: Allow reporting a virtual desktop mode with the same width or height as the current mode.
      winex11.drv: Migrate the virtual desktop display settings handler to a new interface.
      winex11.drv: Support virtual desktop display mode enumeration using the new display settings handler interface.
      winex11.drv: Cache display modes for X11DRV_EnumDisplaySettingsEx().
      winex11.drv: Support setting virtual desktop display mode using the new display settings handler interface.
      winex11.drv: Remove the old virtual desktop display settings handler.
      user32: Check invalid device names in EnumDisplaySettingsExW().
      winex11.drv: Sort display modes.
      winex11.drv: Move broken NVIDIA driver detection into a function.
      winex11.drv: Add set_screen_size() helper.
      winex11.drv: Add XRandR 1.4 display settings handler.
      winex11.drv: Remove XRandR 1.2 display settings handler.
      winex11.drv: Support automatic display position adjustment.
      winex11.drv: Support detaching adapters.
      winex11.drv: Migrate XRandR 1.0 display settings handler to a new interface.
      winex11.drv: Migrate XVidMode display settings handler to a new interface.
      winex11.drv: Migrate NoRes display settings handler to a new interface.
      winex11.drv: Remove the old display settings handler interface.

Ziqing Hui (13):
      windowscodecs/tests: Add more RGB images for DDS tests.
      windowscodecs: Add more supported DXGI formats for DDS decoder. And return the actual formats for uncompressed DDS images.
      windowscodecs/tests: Add tests for DDS images with fourCC which are also uncompressed.
      windowscodecs: Introduce is_compressed(). And fix some format checks.
      windowscodecs: Add more formats to get_bytes_per_block_from_format().
      windowscodecs/tests: Add tests for cube maps.
      windowscodecs: Add support for decoding cube maps.
      windowscodecs/tests: Remove the test data in test_dds_decoder_initialize().
      windowscodecs/tests: Simplify init_decoder().
      windowscodecs/tests: Rename test_dds_bgr565 to test_dds_rgb565.
      windowscodecs/tests: Add tests for alpha and luminance image.
      windowscodecs/tests: Add more compressed test DDS images.
      windowscodecs: Fix alpha mode of DXT3 and DXT5 image.

Alexandre Julliard