WineHQ

Wine Announcement

The Wine development release 8.19 is now available.

What's new in this release:
  - Mono engine updated to version 8.1.0.
  - More DirectMusic implementation.
  - Various bug fixes.

The source is available at:

  https://dl.winehq.org/wine/source/8.x/wine-8.19.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.19 (total 44):

 - #8174   Ares P2P 2.x embedded media player fails to play .mpg files
 - #9027   No sound for rise of nations - all versions
 - #23489  Buccaneer: quits silently when entering the Tavern
 - #32395  Neverwinter Nights 2 : Broken sky with anti-aliasing turned on
 - #32896  Serious Sam: The Random Encounter has no sound
 - #34751  Aura: Fate of the Ages: sounds aren't played, but music works fine
 - #43372  valgrind shows a definite leak in dlls/d3dx9_36/tests/texture.c
 - #45072  Enabling csmt causes 100% CPU use in MikuMikuDance
 - #45135  Black Rockman Shooter has no sound
 - #45144  GED Keeper 2 (.NET 2.x based genealogical database app) fails to run with Wine-Mono
 - #45893  Midtown Madness: Extremely Slow with csmt on
 - #47767  Airport Mania First Flight - Very long loading times and awful performance
 - #49731  Shtriga: Summer Camp freezes with a black screen (PE-build only)
 - #49804  Multiple WPF 4.5+ .NET applications fail to run with Wine-Mono due to missing support of Ribbon control 'System.Windows.Controls.Ribbon' (OpenGL Extensions Viewer 6.1.2, CapFrameX v1.6.0)
 - #52014  Memento Mori freezes on launch
 - #52396  Stack overflows when running any 64-bit .Net 6 (.Net Core) program
 - #53264  mmdevapi:capture - test_audioclient() fails systematically on Windows 10 1909+
 - #54704  Black screen with Dungeon Keeper 2 and Wine v8.4
 - #55223  d3dx10_34:d3dx10, d3dx10_35:d3dx10, d3dx10_39:d3dx10 & d3dx10_42:d3dx10 sometimes fail on w11pro64-amd
 - #55228  kernel32:loader - test_ResolveDelayLoadedAPI() fails on Windows 10+
 - #55267  gdi32:font - The 64-bit test_RealizationInfo() gets invalid parameter errors on Windows 8+
 - #55269  ntdll:info - The 32-bit test_query_process_debug_port() gets a bad len on Windows 8 64-bit
 - #55555  secur32:secur32 - test_ticket_cache() crashes when Kerberos support is missing
 - #55560  The 64-bit dbghelp:dbghelp times out in Wine
 - #55577  advapi32:registry - The 64-bit test_performance_keys() sometimes crashes on Windows 10
 - #55580  The 32-bit uiautomationcore:uiautomation sometimes times out in Wine
 - #55605  winmm:mci sometimes gets an assertion in GitLab CI's Wine tests
 - #55650  dbghelp:dbghelp fails on macOS
 - #55654  Multiple Direct3D 8/9 applications have increased memory usage / run out of memory since Wine 8.14
 - #55688  dmusic:dmusic - test_default_gm_collection() crashes on macOS
 - #55718  Word 2007 is not able to print multiple copies of a page
 - #55720  msxml3:domdoc - test_domnode() fails in Wine
 - #55722  dmime:dmime - test_band_track_play() fails on macOS
 - #55725  The 32-bit amstream:amstream gets an assert and times out on the GitLab CI
 - #55744  psapi:psapi_main fails in Wine
 - #55745  tasklist.exe:tasklist - test_filter() fails to list ntdll.dll in Wine
 - #55746  wscript.exe:run - Dispatch_Invoke() gets wrong WScript.FullName in Wine
 - #55771  uxtheme:system - test_ShouldSystemUseDarkMode() fails on Windows 7 to 10 1909
 - #55772  uxtheme:system - test_EnableThemeDialogTexture() fails on Windows 7
 - #55777  user32:win - test_GetWindowModuleFileName() sometimes unexpectedly gets a filename on Windows 7
 - #55790  Unreal II The Awakening: general protection fault when loading a level
 - #55792  Tron 2.0 crashes before the menu appears
 - #55808  Catalan translation inserted twice in wine.desktop
 - #55817  Myst V (GOG.com, demo): access violation when NPC begins to talk

----------------------------------------------------------------

Changes since 8.18:

Akihiro Sagawa (1):
      cmd: Reset totals after trailer output.

Alex Henrie (13):
      evr: Use debugstr_fourcc instead of debugstr_an.
      iccvid: Use debugstr_fourcc instead of debugstr_an.
      d3d10: Use debugstr_fourcc instead of debugstr_an.
      dwrite: Use the debugstr_fourcc function instead of reimplementing it.
      d3dx9_36: Use debugstr_fourcc instead of debugstr_an.
      d3dcompiler_43: Use debugstr_fourcc instead of debugstr_an.
      loader: Associate Wine with batch files.
      winemenubuilder: Disallow desktop integration for batch files.
      loader: Translate wine.desktop to Catalan.
      loader: Add separating dash to Spanish translation of wine.desktop.
      win32u: Use debugstr_fourcc instead of debugstr_an.
      wined3d: Use debugstr_fourcc instead of debugstr_an.
      commdlg: Set lCustData the same in GetSaveFileName as GetOpenFileName.

Alexandre Julliard (20):
      makefiles: Always use the global SOURCES variable for .man.in files.
      makefiles: Always use the global SOURCES variable for .svg files.
      makefiles: Always use the global SOURCES variable for .l files.
      makefiles: Always use the global SOURCES variable for .y files.
      ntdll: Move the relay trace on thread startup to LdrInitializeThunk().
      ntdll: Move RtlUserThreadStart implementation to the CPU backends.
      ntdll: Use .seh handler in RtlUserThreadStart on ARM64.
      ntdll: Also send segment registers to the server on suspend.
      zydis: Disable assertions.
      dbghelp: Fix a compiler warning on ARM64.
      Revert "loader: Translate wine.desktop to Catalan".
      ntdll: Simplify platform checks for exception handling functions.
      msvcrt: Simplify platform checks for exception handling functions.
      msvcrt: Export more exception handling functions on ARM platforms.
      kernel32: Export the Ums functions on ARM64.
      kernelbase: Export the extended context functions on all platforms.
      ntdll: Export RtlCopyMemory on ARM platforms.
      vcruntime140_1: Only build for x86-64.
      winebuild: Always use .balign for alignment.
      shlwapi: Remove unneeded UNALIGNED attributes.

Alexandros Frantzis (2):
      winewayland.drv: Ensure outputs can access xdg information robustly.
      winewayland.drv: Ensure the logical output dimensions have sane values.

Alistair Leslie-Hughes (4):
      msxml: Always increase error count when detected.
      msxml3: Don't call qsort if we have no data (Coverity).
      msxml3: Move tid_NULL out of possible enum values.
      msxml3: Do not leak bind context on error paths (Coverity).

Arkadiusz Hiler (1):
      winex11.drv: Send missed KEYUP events on KeymapNotify.

Bartosz Kosiorek (4):
      gdiplus: Optimize GDI32_GdipDrawPath (via prepare_dc function).
      gdiplus: Improve performance of units_to_pixels by not using division.
      gdiplus/tests: Add test for GdipIsOutlineVisiblePathPoint.
      gdiplus: Fix transformation in GdipIsOutlineVisiblePathPoint.

Brendan Shanks (9):
      configure: Only build Wayland if linux/input.h is present.
      winemac.drv: Replace sprintf with snprintf to avoid deprecation warnings.
      makedep: Replace sprintf with snprintf to avoid a deprecation warning on macOS.
      ctapi32: Ensure unixlib function tables and enum stay in sync.
      dnsapi: Ensure unixlib function tables and enum stay in sync.
      wpcap: Ensure unixlib function tables and enum stay in sync.
      winscard: Ensure unixlib function tables and enum stay in sync.
      winemac.drv: Disable declaration-after-statement warnings in ObjC files.
      winemac.drv: Fix minimizing windows when Stage Manager is enabled.

Connor McAdams (15):
      uiautomationcore: Release node lresult upon failure to allocate a node in uia_node_from_lresult().
      uiautomationcore/tests: Add tests for COM API EVENT_OBJECT_FOCUS translation.
      uiautomationcore: Potentially raise focus event for serverside providers in response to EVENT_OBJECT_FOCUS.
      uiautomationcore: Potentially raise focus event on the currently focused serverside provider in response to EVENT_OBJECT_FOCUS.
      uiautomationcore: Add support for translating EVENT_OBJECT_FOCUS for native MSAA IAccessibles.
      uiautomationcore/tests: Add tests for cached value helper functions in the COM API.
      uiautomationcore: Implement IUIAutomationElement::get_CachedControlType.
      uiautomationcore: Implement IUIAutomationElement::get_CachedHasKeyboardFocus.
      uiautomationcore: Implement IUIAutomationElement::get_CachedIsKeyboardFocusable.
      uiautomationcore: Implement IUIAutomationElement::get_CachedName.
      uiautomationcore: Implement IUIAutomationElement::get_CachedBoundingRectangle.
      uiautomationcore: Remove accidentally leftover FIXME.
      uiautomationcore: Only print FIXME messages for missing default clientside providers once.
      uiautomationcore/tests: Fix test failure on Win10v1709.
      uiautomationcore: Don't return failure from ::get_FragmentRoot stub on the default BaseHwnd provider.

Daniel Lehman (1):
      advapi32/tests: Add ReadEventLogW tests for direction.

Dmitry Timoshkov (4):
      crypt32: Avoid truncating unicode chars.
      crypt32/tests: Add some tests for quoted RDN values.
      crypt32: Add support for CERT_NAME_STR_NO_QUOTING_FLAG to CertNameToStr().
      cryptui: Use CertNameToStr(CERT_NAME_STR_NO_QUOTING_FLAG) to disable quoting.

Eric Pouech (9):
      wbemprox: Use correct string id.
      dsound: Forward error code when device cannot be found.
      quartz: Return correct error when no audio devices are present.
      mmdevapi: Don't fail when no audio backends are present.
      dbghelp: Rename internal field (system -> host).
      dbghelp: Use is_host_64bit for handling bitness of mach-o libs.
      dbghelp: Set the machine type for mach-O modules.
      dbghelp: Simplified module_find_by_addr().
      dbghelp: Remove unneeded parameter to pe_map_file.

Esme Povirk (2):
      user32/tests: Reduce size demand in test_hvredraw.
      mscoree: Update Wine Mono to 8.1.0.

Fabian Maurer (2):
      mf/tests: Increase buffer to prevent stack corruption.
      ntdll: Add WinSqmSetIfMaxDWORD stub.

Gabriel Ivăncescu (4):
      jscript: Fix Array.map when last element doesn't exist.
      jscript: Fix Array.reduce when last element doesn't exist.
      mshtml: Set outer window to uninitialized page when document obj is released.
      mshtml: Return proper errors when navigating with no browser.

Gerald Pfeifer (1):
      readme: Update FreeBSD information.

Hans Leidekker (3):
      kernelbase: Trace global memory counters in decimal.
      advapi32/tests: Get rid of workarounds for old Windows versions.
      advapi32/tests: Skip WoW64 registry tests on 32-bit.

Helix Graziani (1):
      uxtheme/tests: Skip the test if the SystemUsesLightTheme value isn't found.

Jacek Caban (9):
      dwrite: Use DWRITE_FONT_FEATURE_TAG for tags argument type in shape_get_typographic_features.
      dwrite/tests: Avoid implicit DWRITE_RENDERING_MODE to DWRITE_RENDERING_MODE1 casts.
      dwrite: Avoid implicit casts between DWRITE_RENDERING_MODE and DWRITE_RENDERING_MODE1.
      d2d1/tests: Use D2D1_INTERPOLATION_MODE constants in DrawImage calls.
      d2d1: Pass interpolation mode as D2D1_INTERPOLATION_MODE to d2d_device_context_draw_bitmap.
      d2d1: Don't cast D2D1_THREADING_MODE to D2D1_FACTORY_TYPE in D2D1CreateDevice.
      wined3d: Use return type to return result from read_dword.
      wined3d: Remove unused parallel_point_count variable.
      wined3d: Use unsigned type for res_type bit field.

Jeff Smith (4):
      gdiplus/tests: Add tests related to setting the page tranform.
      gdiplus: Implement GdipResetPageTransform.
      gdiplus: Fix a GdipSetPageScale return status.
      gdiplus: Fix GdipSetPageUnit parameter validation.

Jinoh Kang (1):
      ntdll/tests: Use win_skip() for missing APIs in test_query_process_debug_port_custom_dacl.

Louis Lenders (1):
      uxtheme: Add ShouldAppsUseDarkMode.

Matteo Bruni (5):
      wined3d: Fix handling of system-memory GL vertex buffers.
      wined3d: Handle NULL push constant buffers with the ARB shader backend.
      wined3d: Allow FFP blits to non-render targets with the 'none' shader backend.
      wined3d: Implement shadow sampling for the ARB shader backend.
      wined3d: Don't skip setting clip planes if the view transform state is dirty.

Mohamad Al-Jaf (16):
      windows.media.mediacontrol/tests: Remove flakey ref count test.
      include: Add ISystemMediaTransportControlsDisplayUpdater interface definition.
      windows.media.mediacontrol: Implement ISystemMediaTransportControls::get_DisplayUpdater().
      windows.media.mediacontrol/tests: Add ISystemMediaTransportControlsDisplayUpdater::get/put_Type() tests.
      windows.media.mediacontrol: Implement ISystemMediaTransportControlsDisplayUpdater::get/put_Type().
      include: Add IMusicDisplayProperties interface definition.
      windows.media.mediacontrol: Implement ISystemMediaTransportControlsDisplayUpdater::get_MusicProperties().
      windows.media.mediacontrol/tests: Add IMusicDisplayProperties::get/put_Title() tests.
      windows.media.mediacontrol: Implement IMusicDisplayProperties::get/put_Title().
      windows.media.mediacontrol/tests: Add IMusicDisplayProperties::get/put_Artist() tests.
      windows.media.mediacontrol: Implement IMusicDisplayProperties::get/put_Artist().
      include: Add IMusicDisplayProperties2 interface definition.
      windows.media.mediacontrol: Add IMusicDisplayProperties2 stub interface.
      windows.media.mediacontrol/tests: Add IMusicDisplayProperties2::get/put_AlbumTitle() tests.
      windows.media.mediacontrol: Implement IMusicDisplayProperties2::get/put_AlbumTitle().
      windows.media.mediacontrol: Return success in ISystemMediaTransportControlsDisplayUpdater::Update().

Nikolay Sivov (7):
      mfmediaengine/tests: Use a single helper to create engine instances.
      include: Add IMFMediaEngineAudioEndpointId definition.
      mfmediaengine: Keep engine extension pointer.
      mfmediaengine: Use extension object in CanPlayType().
      maintainers: Add EVR to the Media Foundation section.
      mfmediaengine: Mask some source flags returned from GetResourceCharacteristics().
      d3d10_1/tests: Add some more tests for fx_4_1 blend states.

Paul Gofman (8):
      ntdll: Use .seh handler instead of __TRY in RtlUserThreadStart() on x64.
      ntdll: Set EH_NESTED_CALL flag in call_stack_handlers() on x64.
      ntdll: Use .seh handler in call_handler() on x64.
      ntdll/tests: Add test for collided unwind.
      ntdll: Use .seh handler in call_unwind_handler() on x64.
      winegstreamer: Add AVDecVideoAcceleration_H264 attribute for h264 decoder MFT.
      ntdll: Define heap block's BLOCK_FLAG_LFH as 0x80.
      shell32: Use SearchPathW() for %l/%L in SHELL_ArgifyW().

Piotr Caban (1):
      gdi32: Fix leak in GdiDeleteSpoolFileHandle.

Rémi Bernon (56):
      include: Fix debugstr_fourcc printf format to print at most 4 chars.
      dmime: Rewrite message thread with a condition variable.
      dmusic: Set synth sink master clock when creating port.
      dmsynth: Do nothing in IDirectMusicSynth_SetMasterClock.
      dmusic: Forward IDirectMusicPort_Activate to synth and sink.
      dmime: Use port latency time for messages with -1 time.
      dmime: Update performance latency time with port latency.
      dmime: Use latency time to decide when to process messages.
      dmsynth: Create a render thread on sink activation.
      dmsynth: Implement sink rendering to DirectSound buffer.
      dmsynth: Correctly lookup instrument from the default drum bank.
      dmsynth: Avoid using fluid_ prefix for internal helpers.
      dmsynth: Fix DLS2 to FluidSynth conversion for CONN_SRC_CCx.
      dmsynth: Fix FluidSynth generators for direct connections.
      dmsynth: Convert modulator values from DLS2 to SF2 convention.
      dmsynth: Set default modulators according to the DLS2 spec.
      dmband: Download segment tracks if performance auto-download is set.
      dmband: Set DMUS_PATCH_PMSG bank LSB/MSB from instrument patch.
      dmime: Only use index if group is set in IDirectMusicSegment_SetParam.
      dmime: Don't interrupt track iteration if SetParam failed.
      dmime: Adjust MIDI message time with DMUS_NOTE_PMSG nOffset.
      dmusic: Use a dmusic_midi.h header for MIDI messages.
      dmime: Translate some DMUS_CURVE_PMSG messages to MIDI.
      dmime: Remove FIXME from methods now mostly implemented.
      dmime: Avoid crashing when purging notification messages.
      dmime: Return S_OK from wave track SetParam GUID_UnloadFromAudioPath.
      dmime: Return hr from wave track SetParam GUID_DownloadToAudioPath.
      dmusic: Implement IDirectMusicObject interface on wave objects.
      dmusic: Use the IDirectMusicObject interface for waves.
      dswave: Use the dmusic wave object implementation.
      dmime: Avoid releasing the newly created graph twice.
      dmime/tests: Remove flaky track playing state test.
      dmime/tests: Avoid checking message segment state reference count.
      dmime/tests: Ignore failure on missing gm.dls in test_band_track_play.
      dmusic/tests: Skip test_default_gm_collection if gm.dls is missing.
      dmsynth: Set loop and sample generators on the fluid_voice.
      dmime: Force recompute MIDI message reference time.
      dmband: Skip band / band track chunk on parsing failure.
      dmime: Skip sequence track chunk on parsing failure.
      dmime: Skip segment chunk on parsing failure (or success).
      dmime: Ignore badly formed wave if format and data have been found.
      dmime: Remove shadowing local hr variable.
      dmusic: Ignore some known wave chunks.
      gitlab: Run tests with LP_NUM_THREADS=4 env var.
      mf/tests: Avoid crashing if MF_BYTESTREAM_EFFECTIVE_URL is missing.
      dmime: Pass IDirectMusicPerformance8 to segment state functions.
      dmime: Pass PlaySegmentEx start time as track time offset.
      dmband: Use time_offset to align track start with music time.
      dmime: Use time_offset to align track start with music time.
      dmime: Use an internal performance message for segment end.
      dmstyle: Rename IDirectMusicStyle8Impl method prefix to style.
      dmstyle: Get rid of the IDirectMusicStyle8Impl typedef.
      dmstyle: Rewrite style part list parsing.
      dmstyle: Rewrite style pref chunk parsing.
      dmstyle: Rename style_motif to style_pattern.
      dmstyle: Rewrite style pttn list parsing.

Sven Baars (2):
      wined3d: Don't override the default renderer in wined3d_dll_init().
      nsiproxy.sys: Return STATUS_SUCCESS from ipv6_forward_enumerate_all() on non-Linux.

Yuxuan Shui (1):
      mfmediaengine: Don't send event notify when engine is shutdown.

Zebediah Figura (18):
      advapi32: GetNamedSecurityInfo() takes a const name argument.
      advapi32/tests: Use StringFromGUID2().
      advapi32: Fix rewinding the last path segment in SetSecurityInfo().
      advapi32/tests: Add more tests for GetSecurityInfo().
      advapi32: Respect object type in GetSecurityInfo().
      advapi32: Respect object type in SetSecurityInfo().
      user32/tests: Add basic tests for GetUserObjectSecurity().
      advapi32: Implement GetSecurityInfo(SE_WINDOW_OBJECT).
      wined3d: Rename buffer dirty ranges fields.
      wined3d: Use wined3d_array_reserve() to pre-allocate the buffer dirty ranges array.
      wined3d: Do not track dirty ranges for buffers without WINED3D_BUFFER_USE_BO.
      d3d10core/tests: Avoid POINT sampling exactly halfway between two mip levels.
      d3d11/tests: Avoid POINT sampling exactly halfway between two mip levels.
      include: Convert d3d10shader.h to an IDL.
      include: Convert d3d10effect.h to an IDL.
      ntdll: Do not reject data directories at the end of a file.
      ws2_32/tests: Make sure that WSARecv() completes synchronously in test_WSARecv().
      ws2_32/tests: Wait for AFD_POLL_RESET in test_get_events_reset().