Wine Announcement

The Wine development release 4.18 is now available.

What's new in this release (see below for details):
  - Many new VBScript functions.
  - A number of cleanups and improvements in Quartz.
  - Fixes for several test failures.
  - 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 4.18 (total 38):

  10440  Lego Island 2 has black screen at start (audio but no video, application window loses focus to quartz video window)
  24983  Multiple applications need support for DXTn texture compression in D3DXLoadSurfaceFromMemory() (Space Rangers 2, Memento Mori, fr-043)
  25486  Lego Stunt Rally: 3d scene is black
  32174  Applicaton crashes after paste of the clipboard
  33848  InstallShield fails to install any files on NTFS / FAT32 partitions, while others can...
  35223  King's Bounty Crossworlds crashes in the new campaign when entering the sea tower on the first island
  35585  Castlevania: Lords of Shadow 2 demo endless loading screen without native d3dx9_36 (support for scaling of DXTn textures in d3dx9 missing)
  37883  RebelBetting (.NET 4.5 app) fails to load with Wine-Mono
  38940  RebelBetting 6.x (.NET 4.5 app) crashes on exit (ole32.Context_CC_ContextCallback too stubby)
  40740  Broken Sword: The Angel of Death demo needs IDirectSoundFXI3DL2Reverb interface
  41936  The Witcher 2: Assassins of Kings - menus and subtitles rendered incorrectly (with built-in d3dx9)
  42979  Age of Empires hangs for several seconds between screens when CSMT is enabled
  43497  Grandia II Anniversary Edition - Black screen
  44540  Imperium GBR close unexpectly with native quartz.dll (DirectX9 Feb 2010 redist) and dsound.dll
  46279  Multiple applications need msvcr120.dll.?_Yield@_Context@details@Concurrency@@SAXXZ (Darkest Dungeon, Noita, Amazon Kindle for PC)
  46560  Smoke not rendering properly in Castlevania: Lords of Shadow 2
  47192  Halo 2: PS4 controller no longer registers inputs
  47234  Wine fails to properly parse and import some of the standard root certificates
  47295  Halo 2: Game freezes during startup
  47309  Multiple WinML tools from Windows 10 SDK ( 10.0.17763.x) crash on startup, requiring several api-ms-win-crt-private-l1-1-0.dll._o_* API functions (mlgen, winmdidl)
  47395  Wolf RPG Editor hangs on exit
  47615  _putws outputs NULs, other wchar.h functions don't
  47676  Logos Bible Softare no longer loads due to crash
  47751  x64dbg crashes in get_current_context / InterlockedCompareExchange
  47755  Installation of Atmel Studio 7 crashes with a Program Error
  47764  World of Warcraft - Keyboard troubles
  47782  Segmentation fault and exceptions using ManagementClass
  47813 Warning or error when launching a game (GetFileInformationByHandleEx for FileAttributeTagInfo unimplemented)
  47822  Transcendence crashes on exit
  47833  FindFirstFileExW seems to be missing FILE_OPEN_FOR_BACKUP_INTENT flag to NtOpenFile
  47862  Art of Murder - Cards of Destiny main character and NPCs have texture corruption
  47868  test_notify() dsound:dsound test is unreliable
  47870  dwrite:layout fails in the Arabic locale
  47880  Need for Speed: Carbon - Autosculpt causes geometry corruption and GL_INVALID_OPERATION error
  47886  rpcrt4:server crashes on Windows
  47891  advapi32:services regression
  47911  quartz:vmr9 tests crash on Windows 7
  47918  Blur: cars have no wheels when Wine is compiled with Ryzen optimisations


Changes since 4.17:

Akihiro Sagawa (1):
      ntdll: Add exception handling around DbgBreakPoint.

Alex Henrie (1):
      winex11: Copy icon color table in 256-color mode (Valgrind).

Alexandre Julliard (17):
      kernel32: Add set_ntstatus() helper.
      ntdll: Implement RtlSetSearchPathMode().
      ntdll: Implement RtlGetSearchPath().
      kernel32: Use RtlGetSearchPath() in SearchPathW() implementation.
      kernel32: Move Get/SetDllDirectory() implementation to ntdll.
      kernel32: Move dll path functions to ntdll.
      kernel32: Move exe path functions to ntdll.
      kernel32: Move LoadLibrary functions to kernelbase.
      kernel32: Move SearchPath functions to kernelbase.
      kernel32: Move system locale enumeration functions to kernelbase.
      make_unicode: Avoid duplicate lead bytes.
      winebuild: Add support for excluding a specific CPU architecture.
      ntoskrnl: Export some functions on all architecture except i386.
      msvcrt: Export some functions on all architecture except i386.
      ntdll: Disallow changing DEP flags on 64-bit.
      programs: Make all program entrypoints cdecl.
      libport: Add codepage 28601 (Latin/Thai).

Alistair Leslie-Hughes (17):
      include: Allow building against dmusic.
      dmime: Improved tracing of the DMUS_OBJECTDESC structure.
      dsound/tests: Add some GetStatus checks.
      dmime: Always set a minimum timeout in IDirectMusicPerformance8::SetNotificationHandle.
      dpnet: Report no programs found in IDirectPlay8LobbyClient EnumLocalPrograms.
      dsound/tests: Allow more time for an event to be signalled.
      dmime/tests: Add a notification_type test.
      include: Add space sim direct input defines.
      dmime/tests: Break out of loop if we fail to get segment pointer.
      dinput/tests: Add checks for Acquire/Unacquire.
      dinput: Don't treat Stylus devices as joysticks.
      kernel32: FindFirstFileExW needs to open the directory with FILE_OPEN_FOR_BACKUP_INTENT flag.
      wininet/tests: Add setting Authorization header override tests.
      wshom.ocx: Correct out parameter for _NewEnum.
      include: Add SpSharedRecognizer coclass and support interfaces.
      include: Added sapiaut.idl.
      include: Add COM_DECLSPEC_NOTHROW define.

Andrew Eikum (1):
      xinput: Check for NULL argument in XInputGetState.

Andrey Gusev (1):
      d3dcompiler: Add missing defines, enums and declarations.

Brendan Shanks (4):
      kernel32/tests: Add tests for named pipes in PIPE_NOWAIT mode.
      server: Don't block when reading from named pipes in PIPE_NOWAIT mode.
      server: Don't block when writing to named pipes in PIPE_NOWAIT mode.
      server: Don't block ConnectNamedPipe for pipe in PIPE_NOWAIT mode.

Christian Costa (1):
      d3dx9: Correctly align texture dimensions to block size in D3DXCheckTextureRequirements().

Dmitry Timoshkov (8):
      winspool: Add support for level 1 printer info to GetPrinter.
      wineps: Add version resource.
      wshom.ocx: Actually wait for process termination in IWshShell3::Run().
      ieframe: Implement InternetExplorer typelib methods.
      wininet: Fix off by 1 error when parsing time.
      wineps.drv: Don't clear DM_PAPERWIDTH | DM_PAPERLENGTH flags.
      winspool: Implement IsValidDevmodeW.
      ieframe: Implement InternetExplorer::get_Busy().

Evgeny Litvinenko (1):
      ntdll: Solaris requires sys/regset.h.

Felix Hädicke (1):
      msvcrt: Use memmove() instead of memcpy() puts_clbk_str().

François Gouget (5):
      msg711.acm: Fix the spelling of the copyright notice.
      mshtml: Fix the spelling of some comments.
      mmdevapi/tests: Fix the spelling of ok() messages.
      mfplat/tests: Fix the spelling of a comment.
      winspool.drv/tests: Avoid an unneeded strlen() call.

Gabriel Ivăncescu (3):
      msscript.ocx: Move set_script_state to the top.
      msscript.ocx: Implement IScriptControl::Run.
      msscript.ocx/tests: Add tests for IScriptControl::Run.

Gijs Vermeulen (8):
      kernel32/tests: Fix some console tests on newer Win10.
      msvcp110: Add more exports.
      scrrun/tests: Make test_clone more descriptive.
      scrrun/tests: Fix DriveCollection clone tests when there's only one drive.
      msvcrt: Add Concurrency::details::_Context::_Yield stub.
      advapi32/tests: Fix test_process_security with non-English locale.
      wined3d: Add default case in wined3d_calculate_fog_factor.
      mscoree: Support loading assemblies from path specified in config file.

Hans Leidekker (8):
      bcrypt: Implement BCryptEnumAlgorithms.
      wbemprox: Implement Win32_QuickFixEngineering.
      bcrypt: Avoid recreating the hash on every iteration in BCryptDeriveKeyPBKDF2.
      winhttp/tests: Fix some test failures.
      winhttp: Propagate request errors in request_wait.
      winhttp/tests: Fix more test failures.
      secur32/tests: Fix test failures.
      wininet/tests: Fix FTP test failures.

Huw D. M. Davies (1):
      winegcc: Add a missing break.

Jacek Caban (41):
      scrrun: Add support for TristateUseDefault text stream format.
      vbscript: Add Day function implementation.
      vbscript: Add Month function implementation.
      vbscript: Add Year function implementation.
      vbscript: Add Hour function implementation.
      vbscript: Add Minute function implementation.
      vbscript: Add Second function implementation.
      vbscript: Store entire EXCEPINFO in script context.
      vbscript: Add err.description implementation.
      vbscript: Add err.source implementation.
      vbscript: Add err.helpfile and err.helpcontext implementation.
      vbscript: Add err.raise function implementation.
      vbscript/tests: Add err.raise tests.
      vbscript: Move OnEnterScript/OnLeaveScript calls to exec_script.
      vbscript: Call OnScriptError for runtime errors.
      vbscript: Call OnScriptError for compile errors.
      vbscript/tests: Add more tests.
      ucrtbase: Use -norelay for __stdio_common_vsprintf.
      msvcr: Use -norelay for _vsnprintf.
      server: Reselect read queue before write queue in pipe_end_write.
      kernel32/tests: Add message mode non-blocking pipe test.
      kernelbase: Update SetNamedPipeHandleState debug trace.
      vbscript: Factor out invoke_vbdisp.
      vbscript: Don't use IDispatchEx for internal calls.
      vbscript: Create class description for procedure object in compiler.
      vbscript: Introduce new type for object with builtin functions.
      vbscript: Factor out detach_global_objects.
      vbscript: Introduce get_builtin_id.
      vbscript: Use separated IDispatch implementation for objects exposing builtin functions.
      vbscript: Don't use ITypeInfo for builtin function dispids.
      vbscript: Get rid of no longer needed ITypeInfo in BuiltinDisp.
      vbscript/tests: Added Err object IDispatch tests.
      vbscript: Use global object property to expose Err object.
      vbscript: Fix NULL IDispatch handling in get_disp_value.
      vbscript: Create script context in CreateInstance.
      vbscript: Store safety options only in script context.
      vbscript: Store lcid only in script context.
      vbscript: Store script site only in script context.
      vbscript: Move create_script_disp call to SetScriptSite.
      vbscript: Move init_global call to CreateInstance.
      vbscript/tests: Add more named items tests.

Jeff Smith (3):
      crypt32/tests: Tidy up unexpected length failure messages in base64.
      crypt32: Fix CryptBinaryToString return value on short base64 buffer.
      crypt32: Make CryptBinaryToStringA fill short base64 buffer correctly.

Joseph Kogut (8):
      ncrypt: Add NCryptEnumAlgorithms stub.
      ncrypt: Add NCryptEnumKeys stub.
      ncrypt: Add NCryptFreeBuffer stub.
      ncrypt: Add NCrypt{Get,Set}Property stubs.
      ncrypt: Add NCryptImportKey stub.
      ncrypt: Add NCryptDeleteKey stub.
      ncrypt: Add NCryptIsAlgSupported stub.
      iphlpapi: Report success in NotifyIpInterfaceChange.

João Diogo Ferreira (1):
      winnls.h: Add element GEOCLASS_ALL to enum SYSGEOCLASS.

Ken Thomases (1):
      winemac: Fix redirection of OpenGL extension functions.

Kevin Puetz (1):
      msvcp: Use fput[w]c in basic_filebuf_char_overflow.

Martin Storsjo (1):
      msvcrt: Fix the layout of threadlocaleinfostruct for ucrt.

Matteo Bruni (7):
      d3dx9: WARN when the file doesn't exist in D3DXCreateTextureFromFileExW().
      d3dx9: Add a trace to D3DXCreateBuffer.
      user32: Don't go past the end of the animated cursor data.
      d3d11: Set context to NULL in CreateDeferredContext() stub.
      include: Get rid of raster caps bits not available in the SDK version of d3d9caps.h.
      maintainers: Drop Sebastian Lackner as a maintainer.
      d3dx9: Fix pitch passed to DXTn [de]compression functions.

Nikita Morozkin (1):
      advapi32: Stub SetPrivateObjectSecurityEx().

Nikolay Sivov (36):
      include: Add Media Session capabilities flags definition.
      wined3d: Fail UAV creation for resources without corresponding bind flag.
      mf: Partially implement topology cloning.
      mf: Implement initial support for starting media sources within a session.
      include: Add IDWriteFontSet3 definition.
      include: Move DWRITE_GLYPH_IMAGE_FORMATS definition to dcommon.h.
      mf: Subscribe to media stream events for current presentation.
      mfplat: Unify event method traces format.
      mfplat: Remove unnecessary typedef.
      mfreadwrite: Remove unnecessary typedef.
      mf: Keep media source state based on raised events.
      mf: Add async command for session pause.
      mf: Add async command for stopping the session.
      mf: Unify trace formats for session methods.
      mf: Rearrange topology queueing logic to simplify status notifications.
      mf: Send MF_TOPOSTATUS_STARTED_SOURCE status notification after all sources were started successfully.
      mf: Set presentation clock for sinks, subscribe to sink events.
      mf: Return earlier for clock state change calls when time source is not set.
      mf: Add IMFLocalMFTRegistration stub.
      mfplat: Add MFTRegisterLocalByCLSID() stub.
      mf: Add RegisterMFTs() implementation.
      mf: Clone node connections when cloning topology.
      mf: Add IMFMediaSourceTopologyProvider for sequencer source stub.
      dwrite/tests: Remove test failing on RTL locales.
      dwrite: Add a stub for IDWriteTextFormat3.
      dwrite: Update to IDWriteFontCollection3.
      dwrite: Update to IDWriteFontFamily2.
      mf/tests: Use separate session instance for events tests.
      mf: Copy preferred types when cloning nodes.
      mf: Adjust sample grabber sink flags in rateless mode.
      mf/tests: Add a test for SAR time source.
      dwrite: Update to IDWriteFontFaceReference1.
      dwrite: Update to IDWriteFontFallback1.
      dwrite: Update matches list to IDWriteFontList2.
      dwrite: Update font family object to use IDWriteFontList2.
      include: Add some more MF reader/writer API definitions.

Owen Rudge (1):
      wininet/tests: Fix http tests to reflect current state of winehq test server.

Paul Gofman (5):
      wined3d: Support zero row pitch in wined3d_texture_gl_upload_data().
      gdi32: Collapse relative paths inside true type fonts file names in registry.
      wined3d: Factor out wined3d_texture_gl_upload_bo() function.
      wined3d: Pass correct map size in wined3d_texture_gl_upload_data().
      wined3d: Upload 3d GL textures per-slice when conversion is involved.

Piotr Caban (10):
      kernel32: Don't use uninitialized ofs->szPathName in OpenFile.
      msvcrt: Fix _putws implementation.
      msvcrt: Don't write past buffer in strftime.
      msvcrt: Add wcrtomb_s implementation.
      msvcrt: Add wcrtomb_s tests.
      winebus.sys: Make device_id string more similar to native.
      ntdll: Try to handle write watches while we're on the signal stack (x86_64).
      kernel32: Add write watch test on OVERLAPPED structure.
      msvcrt/tests: Add overlapped memory move sprintf test.
      msvcrt: Return time since CRT initialization in clock function.

Rafał Mużyło (1):
      x3daudio: Fix lib exports.

Rémi Bernon (1):
      wined3d: Add GPU information for Intel UHD Graphics 620.

Sven Baars (14):
      msi/tests: Fix a test failure on Windows XP.
      kernel32/tests: Fix a test failure on Windows XP.
      wbemprox/tests: Fix a memory leak (Valgrind).
      wbemprox: Fix a string leak (Valgrind).
      wbemprox/tests: Remove some unused variables.
      wbemprox: Fix a leak on error path (Coverity).
      wbemprox: Fix multiple leaks in parse_path (Coverity).
      scrrun/tests: Fix some test failures on Windows 2003.
      comctl32/tests: Prevent some test failures by moving the cursor away from the window.
      ucrtbase: Don't differentiate for 64-bit in __fpe_flt_rounds.
      advapi32/tests: Remove a superfluous CloseServiceHandle call (Coverity).
      kernel32/tests: Skip some tests when NtSetInformationProcess is denied access.
      kernel32/tests: Remove a test that shows inconsistent results.
      ddraw/tests: Fix some test failures on 64-bit Windows.

Vijay Kiran Kamuju (8):
      msvcrt: Implement %R format for strftime.
      msvcrt: Implement %D format for strftime.
      msvcrt: Implement %F format for strftime.
      msvcrt: Implement %C format for strftime.
      msvcrt: Implement %e format for strftime.
      msvcrt: Implement %h format for strftime.
      msvcrt: Implement %n and %t formats for strftime.
      msvcrt: Implement %u format for strftime.

Zebediah Figura (87):
      strmbase: Set the filter debug info only if valid.
      quartz/tests: Add some tests for video renderer pin connection.
      quartz/tests: Add some tests for allocator negotiation on the video renderer filter.
      quartz/tests: Add some tests for video renderer filter states.
      quartz/tests: Add some tests for flushing on the video renderer.
      quartz/tests: Add tests for sample presentation time for the video renderer.
      winegstreamer: Initialize COM on the callback dispatcher thread.
      wined3d: Introduce wined3d_stateblock_set_vs_consts_i().
      d3d9: Handle stateblocks in d3d9_device_SetVertexShaderConstantI().
      wined3d: Introduce wined3d_stateblock_set_vs_consts_b().
      d3d9: Handle stateblocks in d3d9_device_SetVertexShaderConstantB().
      wined3d: Introduce wined3d_stateblock_set_vertex_shader().
      d3d9: Handle stateblocks in d3d9_device_SetVertexShader().
      wined3d: Introduce wined3d_stateblock_set_vertex_declaration().
      d3d9: Handle stateblocks in d3d9_device_SetVertexDeclaration().
      d3d9: Handle stateblocks in d3d9_device_SetFVF().
      d3d8: Handle stateblocks in d3d8_device_SetVertexShader().
      wined3d: Introduce wined3d_stateblock_set_pixel_shader().
      d3d9: Handle stateblocks in d3d9_device_SetPixelShader().
      d3d8: Handle stateblocks in d3d8_device_SetPixelShader().
      wined3d: Introduce wined3d_stateblock_set_ps_consts_f().
      d3d9: Handle stateblocks in d3d9_device_SetPixelShaderConstantF().
      d3d8: Handle stateblocks in d3d8_device_SetPixelShaderConstant().
      quartz/tests: Add some tests for IPin::EndOfStream() on the video renderer.
      strmbase: Don't send EC_COMPLETE in IBaseFilter::Run().
      strmbase: Add a callback to expose renderer pin interfaces.
      quartz/videorenderer: Add a stub IOverlay interface to the sink pin.
      quartz/videorenderer: Implement IOverlay::GetWindowHandle().
      quartz/tests: Add a test for filter graph threading.
      quartz/filtergraph: Create filters on a separate thread if requested.
      strmbase: Send WM_CLOSE instead of calling DestroyWindow() directly.
      quartz/videorenderer: Create the window on the same thread as the filter.
      quartz/vmr9: Create the window on the same thread as the filter.
      wined3d: Introduce wined3d_stateblock_set_ps_consts_i().
      d3d9: Handle stateblocks in d3d9_device_SetPixelShaderConstantI().
      wined3d: Introduce wined3d_stateblock_set_ps_consts_b().
      d3d9: Handle stateblocks in d3d9_device_SetPixelShaderConstantB().
      strmbase: Move tracking of the stream start time to the renderer.
      quartz/tests: Add some tests for VMR7 pin connection.
      quartz/tests: Add some tests for VMR9 pin connection.
      quartz/vmr9: Add a stub IOverlay interface to the sink pin.
      quartz/vmr9: Implement IOverlay::GetWindowHandle().
      advapi32/tests: Use unique service names in test_wow64().
      widl: Write pointer classes for explicitly declared arrays only if they are top-level parameters.
      widl: Also compute buffer size for non-ref arrays.
      strmbase: Introduce a helper to trace reference time.
      strmbase: Introduce a helper to more thoroughly trace media type.
      quartz: Use strmbase_dump_media_type() where appropriate.
      qcap: Use strmbase_dump_media_type() where appropriate.
      winegstreamer: Use strmbase_dump_media_type() where appropriate.
      strmbase: Fix implementation of IVideoWindow::get_Caption().
      quartz/tests: Add tests for IVideoWindow on the video renderer.
      strmbase: IVideoWindow::SetWindowForeground takes OATRUE, not TRUE.
      strmbase: Correctly implement IVideoWindow::put_Owner().
      strmbase: Do not activate the window when changing its position.
      strmbase: IVideoWindow::get_AutoShow() returns OATRUE, not TRUE.
      strmbase: IVideoWindow::get_Visible() returns OATRUE, not TRUE.
      strmbase: Don't move or activate the window in IVideoWindow::put_WindowStyle().
      strmbase: Properly implement IVideoWindow::get_WindowState().
      strmbase: More properly implement IVideoWindow::SetWindowForeground().
      strmbase: Avoid leaking references to the sink's peer in IVideoWindow::SetWindowForeground().
      quartz/tests: Bail out if connecting returns E_FAIL.
      quartz/tests: Filter out extraneous messages in test_video_window_messages().
      quartz/tests: Wait longer in test_render_with_multithread().
      quartz/tests: Increase the timeout in test_media_event().
      quartz/filtergraph: Ensure that the thread has a message queue before posting messages to it.
      include: Add more wininet error codes.
      wininet/tests: Handle ERROR_INTERNET_SEC_CERT_WEAK_SIGNATURE on newer 11.x versions.
      strmbase: Get rid of the unused BaseWindowImpl_GetDefaultRect() function.
      strmbase: Get rid of the "pfnPossiblyEatMessage" callback.
      strmbase: Get rid of BaseWindowImpl_OnReceiveMessage().
      strmbase: Get rid of the "pfnOnReceiveMessage" callback.
      strmbase: Properly implement IVideoWindow::get_WindowStyle().
      gdi32: Implement GetCharWidthFloat().
      strmbase: Get rid of the "pfnGetClassWindowStyles" callback.
      strmbase: Get rid of BaseWindowImpl_OnSize().
      strmbase: Get rid of the unused "hInstance" field of the BaseWindow structure.
      quartz/videorenderer: Get the window DC in VideoRenderer_SendSampleData().
      strmbase: Get rid of the unused "hDC" field of the BaseWindow structure.
      quartz/tests: Relax system clock timing tests a bit.
      qcap/tests: Fix a double Release().
      quartz/videorenderer: Get rid of CreateRenderingSubsystem().
      strmbase: Get rid of the unused "lock" parameter to BaseControlWindow_Init().
      wined3d: Introduce wined3d_stateblock_set_render_state().
      wined3d: Introduce wined3d_stateblock_set_blend_factor().
      d3d9: Handle stateblocks in d3d9_device_SetRenderState().
      d3d8: Handle stateblocks in d3d8_device_SetRenderState().

Alexandre Julliard