WineHQ

Wine Announcement

The Wine development release 8.18 is now available.

What's new in this release:
  - Bundled FluidSynth library for DirectMusic.
  - More window management in the Wayland driver.
  - More effect support in Direct3D 10.
  - Various bug fixes.

The source is available at:

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

 - #32574  Patrician 4 fails to start (Error in 'App::Initialize')
 - #41645  Unreal Tournament 2004 crashes
 - #43017  Unreal Tournament 2004/UT2004.exe crashes due to "intel_do_flush_locked failed: Cannot allocate memory"
 - #43185  "Battle Bugs" game in unresponsive once game starts
 - #44275  Shadow of Memories demo hangs at graphic setting screen
 - #44276  Poor resolution change handling with Shadow of Memories demo
 - #48905  Inner Chains Launches to Black Screen With Mouse Cursor
 - #52641  Feeding Frenzy 2 crashes while loading
 - #53276  comctl32:edit & user32:edit - test_paste() sometimes fails to access the clipboard on Windows
 - #54069  ddraw:ddraw7 - test_texture_wrong_caps() sometimes fails on Windows 8+
 - #54156  comctl32:edit & user32:edit - test_paste() sometimes gets an empty string on Windows
 - #54420  preloader warning "failed to reserve range" macOS Ventura
 - #54430  user32:menu - test_menu_input()'s test 0 sometimes fails on Windows 7
 - #54441  windows.media.speech:speech - test_Recognition() sometimes gets unexpected recognizer state on Windows 10
 - #54699  Motorola Ready For Assistant does not start, RoOriginateLanguageException in Windows.Networking
 - #54744  explorerframe:taskbarlist - test_ITaskbarList() sometimes gets E_NOTIMPL on Windows
 - #54783  cryptowinrt:crypto - test_Credentials_Statics() sometimes gets unexpectedly high refcount in Wine
 - #54791  explorerframe:nstc - test_events() sometimes gets unexpected events on Windows 7
 - #55108  xaudio2_8:xaudio2 fails on Windows 10+
 - #55211  Print file not truncated before new print job is started with same target file
 - #55236  scrrun:dictionary - The 64-bit test_hash_value() gets bad hashes on Windows
 - #55241  The 64-bit winmm:capture & winmm:wave crash on Windows 8
 - #55245  ntdll:om - The 32-bit test_all_kernel_objects() gets an access violation on the w8 VM
 - #55272  The 64-bit ntdll:exception crashes on Windows 10 1607 & 1709
 - #55273  ntdll:wow64 - The 64-bit test_cpu_area() gets bad offsets on Windows 10 1607 & 1709
 - #55528  Vitis 2020.1 can't find its libraries (cmd.exe bug with nested one-line if statement that sets PATH)
 - #55606  Finale 27 printing - incorrect linecap
 - #55627  secur32:negotiate & secur32:ntlm crash from a NULL dereference on macOS
 - #55631  ntdll:file - test_file_rename_information fails on Windows 10 1607 and older
 - #55632  ntdll:file - test_file_link_information() fails on Windows 10 1709 and older
 - #55634  Genshin Impact uses very long URLs
 - #55648  ntdll:wow64 - test_peb_teb() crashes on macOS
 - #55652  A FindResourceW() call prevents windows.applicationmodel:model from running on Windows 8
 - #55656  user32:dialog - test_IsDialogMessage() fails in the hi-u8 and mx-MX locales on Windows
 - #55658  msinfo32 fails to start on macOS / wow64 (was psapi:psapi_main - test_EnumProcessModules*() fails on macOS)
 - #55670  Wordpad is no longer able to print multiple copies of a page
 - #55674  64-bit wineserver/wine-preloader hangs on macOS 14.
 - #55686  msvcr120:msvcr120 - test_StructuredTaskCollection() sometimes fails in Wine
 - #55696  msvfw32:mciwnd - The 64-bit test_MCIWndCreate() crashes in Wine
 - #55701  Sniper Elite 5 launcher opens Wine Internet Explorer instead of Options window
 - #55708  cpython 3.12.0 fails to run on wine, needs unimplemented function propsys.dll.VariantToString
 - #55713  mspaint.exe crashes with:  Unhandled exception: unimplemented function propsys.dll.PropVariantToUInt32WithDefault
 - #55732  kernel32:loader - The 64-bit test_import_resolution() fails in Wine
 - #55733  ntdll:file - test_file_rename_information_ex() fails on Windows 10 1607 & 1709

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

Changes since 8.17:

Alex Henrie (14):
      http: Use the strdup function instead of reimplementing it.
      riched20: Use CRT allocation functions.
      mfplat: Rename debugstr_fourcc to mf_debugstr_fourcc.
      winecoreaudio: Rename wine_dbgstr_fourcc to coreaudio_dbgstr_fourcc.
      include: Introduce wine_dbgstr_fourcc and debugstr_fourcc.
      comctl32: Use the debugstr_fourcc function instead of reimplementing it.
      ddraw: Use the debugstr_fourcc function instead of reimplementing it.
      mciavi32: Use the debugstr_fourcc function instead of reimplementing it.
      mscms: Use the debugstr_fourcc function instead of reimplementing it.
      msvfw32: Use the debugstr_fourcc function instead of reimplementing it.
      cmd: Reset ignoreBracket when moving to the next line.
      uninstaller: Don't overallocate in FetchFromRootKey.
      msvcrt/tests: Check errno after strdup(NULL).
      msvcrt/tests: Add tests for wcsdup.

Alexandre Julliard (34):
      nls: Update character tables to Unicode 15.1.0.
      mpg123: Import upstream release 1.32.2.
      tiff: Import upstream release 4.6.0.
      zlib: Import upstream release 1.3.
      xml2: Import upstream release 2.11.5.
      ldap: Import upstream release 2.5.16.
      faudio: Import upstream release 23.10.
      kernel32/tests: Add some dynamic base tests.
      kernel32/tests: Delete the correct manifest file.
      ntdll: Do an explicit mmap address search for any range not covering the entire address space.
      ntdll: Add a helper to find a mapping address for a PE image.
      ntdll: Always allocate dynamically relocatable dlls top-down.
      ntdll: Fix relocation of the 32-bit ntdll.
      ntdll: Move the module relocation support to virtual.c.
      ntdll: Support relocating the main exe.
      server: Set the dynamically relocated flag when relocations are present.
      server: Assign a system-wide mapping address for dynamic base modules.
      ntdll: Relocate dynamic base modules when mapping them.
      winegcc: Enable dynamic base by default.
      server: Remove some leftover code from a failed rebase.
      ntdll: Only create the main module on the 32-bit side for wow64.
      ntdll: Add a separate helper to build the main module on Wow64.
      ws2_32: Make htonl/htons/ntohl/ntohs proper functions.
      include: Stop pretending to support big-endian.
      winebuild: Add a helper to output an asm function header.
      ntdll: Use the standard syscall calling convention for NtFlushProcessWriteBuffers.
      makefiles: Remove unnecessary imports of version.dll.
      makefiles: Remove unnecessary imports of usp10.dll.
      makefiles: Always use the global SOURCES variable for .mc files.
      makefiles: Always use the global SOURCES variable for .po files.
      makefiles: Always use the global SOURCES variable for .m files.
      makefiles: Always use the global SOURCES variable for .sfd files.
      makefiles: Always use the global SOURCES variable for .in files.
      ntdll: Move LdrInitializeThunk to the CPU backends.

Alexandros Frantzis (7):
      winewayland.drv: Respect the compositor requested surface config.
      winewayland.drv: Handle xdg_toplevel tiled states.
      winewayland.drv: Store and use the latest window config for a wayland_surface.
      winewayland.drv: Handle application-initiated fullscreen state.
      winewayland.drv: Use surface geometry to satisfy state size constraints.
      winewayland.drv: Rename wayland_surface_configure_is_compatible for consistency.
      winewayland.drv: Avoid resizing fullscreen windows.

Alistair Leslie-Hughes (6):
      d3dxof: Remove DECLSPEC_HIDDEN usage.
      msxml3: IXMLDOMElement::selectSingleNode always assign a value to the output parameter.
      wpcap: Return NULL on error in get_broadcast.
      msado15: Move to newly created row in Recordset::AddNew.
      msado15: Show fixme only if field_list needs to be used in Recordset::AddNew.
      d3dx9: Support empty mesh in D3DXLoadMeshHierarchyFromXInMemory().

Ally Sommers (1):
      server: Move getpeername() implementation from ntdll/unix.

Arkadiusz Hiler (1):
      xinput1_3: Hold module reference while the hid thread is running.

Aurimas Fišeras (1):
      po: Update Lithuanian translation.

Brendan Shanks (7):
      configure: Don't use -Wl,-z,defs if it causes link errors with 'environ'.
      winemac.drv: Use @autoreleasepool instead of NSAutoreleasePool.
      winemac.drv: Simplify control flow where possible after the removal of NSAutoreleasePool.
      winemac.drv: Use ObjC literals.
      wow64cpu: Use RTL_CONSTANT_STRING.
      cfgmgr32: Add stub for CM_Get_Device_Interface_PropertyW.
      winemac.drv: Fix redundant calls to [NSCursor set].

Connor McAdams (17):
      uiautomationcore/tests: Add another test for IProxyProviderWinEventHandler child HWND scope checking.
      uiautomationcore: Introduce uia_event_for_each function for iterating through registered events.
      uiautomationcore: Check if we should try to invoke IProxyProviderWinEventHandler::RespondToWinEvent for registered UIA events.
      uiautomationcore: Create HUIANODE for WinEvents that should invoke IProxyProviderWinEventHandler::RespondToWinEvent.
      uiautomationcore: Add support for ignoring ProviderOptions_UseComThreading when creating an HUIANODE.
      uiautomationcore: Add support for marking the root IAccessible as known on non-root IAccessibles upon proxy provider creation.
      uiautomationcore: Pass WinEvent data to IProxyProviderWinEventHandler::RespondToWinEvent.
      uiautomationcore: Add support for raising events passed to our IProxyProviderWinEventSink interface.
      uiautomationcore/tests: Add tests for COM event handler event advisement.
      uiautomationcore: Add support for passing WinEvents to the COM API.
      uiautomationcore: Separate checking if a node is within the scope of a registered event from event invocation.
      uiautomationcore: Use EVENT_OBJECT_SHOW to advise providers of events being listened for in the COM API.
      win32u: Fix NtUserIsCurrent{Process/Thread}Window enum typo.
      uiautomationcore/tests: Add tests for IUIAutomationFocusChangedEventHandler event advisement behavior.
      uiautomationcore: Query EVENT_OBJECT_FOCUS HWND for a serverside provider if there is a registered focus change event handler.
      uiautomationcore: Use EVENT_OBJECT_FOCUS to advise HWND providers of focus change events in the COM API.
      uiautomationcore: Use EVENT_OBJECT_DESTROY to remove HWNDs from the COM API focus change HWND map.

Daniel Lehman (5):
      advapi32/tests: Add ReadEventLogW tests for EventLogStarted.
      advapi32/tests: Add ReadEventLogA tests for EventlogStarted.
      msxml4/tests: Copy namespaces as attributes tests.
      msxml6/tests: Copy namespaces as attributes tests.
      advapi32/tests: Skip ReadEventLog on failure to open System log.

Eric Pouech (6):
      winemac.drv: Use NtCallbackReturn to send back app's icons to unixlib.
      msvfw32: Correctly store internal pointer.
      dbghelp: Simplify allocation code.
      dbghelp: Read debuggee environment by page.
      winedbg: Set first LDT entry value as ntdll does.
      winedbg: Correctly read LDT entries for wow64 debuggee.

Esme Povirk (1):
      user32/tests: Print regions in test_hvredraw failure case.

Etaash Mathamsetty (1):
      gdi32: Add stub for D3DKMTQueryAdapterInfo.

Fabian Maurer (1):
      propsys: Implement PropVariantToUInt32WithDefault.

François Gouget (9):
      winewayland.drv: Add a trailing linefeed to a TRACE() message.
      dmsynth: Add a trailing linefeed to TRACE() messages.
      nsiproxy.sys: Add a trailing linefeed to a TRACE() message.
      secur32/tests: Skip the tests instead of crashing if Kerberos is not supported.
      user32/tests: Don't test GetWindowModuleFileName() on windows belonging to another process.
      advapi32/tests: Better identify OpenEventLogA() failures.
      advapi32/tests: Add the read_write info to the failures context.
      advapi32/tests: Avoid unneeded reallocations of the ReadEventLog() buffer.
      advapi32/tests: Don't check the content of the buffer if ReadEventLog() fails.

Gabriel Ivăncescu (11):
      mshtml: Call handle_event on the proper dispex object.
      mshtml: Remove unused IUnknown_iface in func_disp_t.
      mshtml: Traverse EventTarget listeners.
      mshtml: Implement SuperNavigate undocumented flag 2.
      shdoclc: Add a basic generic html page for navigation errors.
      ieframe: Implement IEHTMLWindow2_get_document.
      ieframe: Navigate to a basic error page on failed navigation.
      ieframe: Use the original URL for error pages' address bar.
      ieframe: Send the original URL for error pages in FireNavigationComplete2 notification.
      ieframe: Send the original URL for error pages in FireDocumentComplete notification.
      ieframe: Implement DocObjectService_IsErrorUrl.

Georg Lehmann (1):
      winevulkan: Update to VK spec version 1.3.267.

Hans Leidekker (2):
      mmdevapi/tests: Don't initialize the audio client twice.
      mmdevapi/tests: Relax a capture test.

Helix Graziani (3):
      nsiproxy.sys: Implement ipv6_forward_enumerate_all.
      winecfg: Change system theme alongside app theme.
      uxtheme: Add ShouldSystemUseDarkMode.

Jactry Zeng (1):
      user32: Add more builtin string resources.

Joel Holdsworth (7):
      ntdll: Initial implementation of FileRenameInformationEx.
      ntdll: Initial implementation of FileLinkInformationEx.
      ntdll/tests: Add tests for FILE_RENAME_IGNORE_READONLY_ATTRIBUTE.
      ntdll/tests: Add tests for FILE_LINK_IGNORE_READONLY_ATTRIBUTE.
      server: Don't allow read-only files to be replaced by File{Rename,Link}Information{,Ex}.
      ntdll: Add support for FILE_{RENAME,LINK}_IGNORE_READONLY_ATTRIBUTE.
      ntdll/tests: Fix FILE_RENAME_INFORMATION_EX test failures on Windows 10 1607 & 1709.

Marcus Meissner (1):
      user32/tests: Use correct size to LoadStringW.

Martin Storsjö (1):
      configure: Fix restoring CFLAGS after the test for -Wl,-z,defs.

Matteo Bruni (1):
      d3dx9/tests: Get rid of unnecessary branches in D3DXLoadMeshTest().

Mohamad Al-Jaf (17):
      windows.storage.applicationdata: Add stub DLL.
      windows.storage.applicationdata: Add IApplicationDataStatics stub interface.
      windows.storage.applicationdata/tests: Add IApplicationDataStatics::get_Current() tests.
      windows.storage.applicationdata: Implement IApplicationDataStatics::get_Current().
      include: Add ISystemMediaTransportControls interface definition.
      windows.media.mediacontrol: Add stub DLL.
      include: Add systemmediatransportcontrolsinterop.idl file.
      windows.media.mediacontrol: Add ISystemMediaTransportControlsInterop stub interface.
      windows.media.mediacontrol/tests: Add ISystemMediaTransportControlsInterop::GetForWindow() tests.
      windows.media.mediacontrol: Implement ISystemMediaTransportControlsInterop::GetForWindow().
      windows.media.mediacontrol/tests: Add some ISystemMediaTransportControls properties tests.
      windows.media.mediacontrol: Implement some ISystemMediaTransportControls properties.
      include: Add windows.security.credentials.ui.idl file.
      windows.security.credentials.ui.userconsentverifier: Add stub DLL.
      windows.security.credentials.ui.userconsentverifier: Add IUserConsentVerifierStatics stub interface.
      windows.security.credentials.ui.userconsentverifier: Implement IUserConsentVerifierStatics::CheckAvailabilityAsync().
      windows.security.credentials.ui.userconsentverifier/tests: Add IUserConsentVerifierStatics::CheckAvailabilityAsync() tests.

Nikolay Sivov (25):
      d3d10/effect: Add support for 'buge'/'bult' instructions.
      d3d10/tests: Compact returned arrays checks.
      d3d10/effect: Add support for 'ceil' instruction.
      d3d10/effect: Add support for 'floor' instruction.
      d3d10/effect: Add support for 'dot' instruction.
      propsys: Partially implement VariantToString().
      propsys: Handle VT_I4 type in VariantToString().
      d3d10/effect: Add support for 'imul' instruction.
      d3d10/tests: Use vector helpers in more places.
      d3d10/effect: Add support for 'sqrt' instruction.
      d3d10/effect: Add support for 'rsq' instruction.
      d3d10/effect: Add support for 'log' instruction.
      d3d10/effect: Add support for 'exp' instruction.
      d3d10/effect: Add support for 'not' instruction.
      d3d10/effect: Add support for 'or' instruction.
      d3d10/effect: Add support for shift instructions.
      d3d10/tests: Add a test for log2/log10/exp2 functions in expressions.
      gdi32/emf: Fix miter limit serialization.
      gdi32/tests: Add some tests for SetMiterLimit() argument validation.
      gdi32: Reject invalid values in SetMiterLimit().
      gdi32/emf: Add SetMetaRgn() recording.
      winedump/emf: Add EMR_SETMITERLIMIT record dumping.
      gdi32/emf: Add SetBrushOrgEx() recording.
      gdi32/tests: Add some tests for FixBrushOrgEx().
      d3dx9: Check for tx_1_0 blob magic earlier in D3DXCreateTextureShader().

Paul Gofman (5):
      secur32: Synchronize access to schannel handle table.
      server: Hold socket reference in sock_poll_event().
      ntdll: Map EDESTADDRREQ to STATUS_INVALID_CONNECTION.
      imagehlp: Import functions instead of forwarding.
      ntdll: Implement NtQueryValueKey(KeyValuePartialInformationAlign64).

Piotr Caban (16):
      msvcr110: Reset chore task_collection earlier to prevent occasional test failure.
      gdi32: Pass default DEVMODE to winspool in CreateDC.
      gdi32: Add partial support for creating EMREXTCREATEPEN records.
      wineps: Add support for EMR_EXTCREATEPEN record playback.
      localspl: Add ResetPrinter implementation.
      winspool.drv: Add ResetPrinterW implementation.
      gdi32: Update printer DEVMODE in ResetDCW.
      gdi32: Fix METADC handling in PlayMetaFile.
      gdi32: Test PlayMetaFile on METADC.
      include: Add winppi.h header.
      gdi32: Add GdiGetSpoolFileHandle stub.
      gdi32: Add GdiDeleteSpoolFileHandle stub.
      gdi32: Add GdiGetDevmodeForPage stub.
      gdi32: Add GdiGetDevmodeForPage implementation.
      wineps.drv: Use first page DEVMODE to determine number of copies and collation.
      localspl: Truncate output file when printing to file.

Rémi Bernon (40):
      dmime: Rename DirectMusicSegmentState8 method prefix to segment_state.
      dmime: Get rid of the IDirectMusicSegmentState8Impl typedef.
      dmime: Implement some segment state default values.
      dmime: Redirect IDirectMusicPerformance_PlaySegment to PlaySegmentEx.
      dmime: Introduce a new segment_state_create constructor.
      dmime/tests: Tests interaction between CloseDown and notifications.
      dmime: Keep messages with the same time ordered.
      dmime: Free all pending messages after CloseDown.
      dmime: Send DMUS_PMSGT_DIRTY messages from the performance.
      dmime: Send DMUS_PMSGT_NOTIFICATION messages from the performance.
      dmime: Implement IDirectMusicPerformance_GetNotificationPMsg.
      dmime: Call IDirectMusicTrack_(Init|End)Play from the segment state.
      include: Avoid narrowing warning in wine_dbgstr_fourcc.
      dmime/tests: Queue the message before calling SendPMsg twice.
      dmsynth: Import and use FluidSynth 2.3.3.
      fluidsynth: Use Wine debugging facility for traces.
      dmsynth: Simplify IDirectMusicSynth8_Open checks.
      dmsynth: Create a fluid_synth instance on Open.
      dmsynth: Create and register a fluid_sfont instance.
      server: Send WM_WINE_SETCURSOR with the thread input cursor handle.
      dmime: Get rid of the IDirectMusicWaveTrack typedef.
      dmime: Include dmobject.h in dmime_private.h.
      dmusic: Split wave entry points to dmusic_wave.h.
      dmime: Create a wave track when loading a segment from a .wav.
      dmime: Implement GUID_(Download|Unload)FromAudioPath for wave track.
      dmime: Implement IDirectMusicTrack_Play for the wave track.
      dmime: Play direct sound buffer from DMUS_PMSGT_WAVE message.
      dmsynth: Fix synth download of articulations list.
      dmsynth: Improve debug traces of DLS2 connections.
      dmsynth: Guard synth members with a CS.
      dmsynth: Parse MIDI events in IDirectMusicSynth_PlayBuffer.
      dmsynth: Play some MIDI events in IDirectMusicSynth_Render.
      dmsynth: Create fluid_preset and fluid_voice from instrument.
      dmband: Download / unload bands when initializing / ending band track.
      dmime: Implement sequence track IDirectMusicTrack_Play.
      dmime: Implement band track IDirectMusicTrack_Play.
      dmime: Output DMUS_MIDI_PMSG into a music buffer on the port.
      dmime: Translate DMUS_PMSGT_NOTE to DMUS_PMSGT_MIDI messages.
      dmime: Translate DMUS_PMSGT_PATCH to DMUS_PMSGT_MIDI messages.
      winex11: Forcefully unmap the clipping window when it loses focus.

Stefan Dösinger (1):
      wined3d: Reference the push constant buffers.

Zebediah Figura (15):
      objsel: Remove unnecessary includes.
      objsel: Remove DLL refcount tracking.
      objsel: Merge factory.c into objsel.c.
      objsel: Do not check for a NULL interface in COM methods.
      objsel: Do not create an object from IClassFactory::QueryInterface().
      wined3d: Rename WINED3D_MAX_TEXTURES to WINED3D_MAX_FFP_TEXTURES.
      wined3d: Rename the "textures" field of struct wined3d_gl_limits to "ffp_textures".
      wined3d: Rename the "MaxSimultaneousTextures" field of struct fragment_caps to "max_textures".
      wined3d: Rename the "MaxTextureBlendStages" field of struct fragment_caps to "max_blend_stages".
      wined3d: Store the "wined3d_caps" field of struct fragment_caps as separate bool flags.
      wined3d: Store a fragment_caps structure in struct wined3d_d3d_info.
      shell32: Fix parsing empty arguments in parse_dde_command().
      ddraw: Do not check for DDRAW_NO3D in wined3d_resource_desc_from_ddraw().
      ddraw: Refactor how bind flags are computed.
      ddraw: Always create surfaces with WINED3D_BIND_SHADER_RESOURCE if possible.

Zhiyi Zhang (2):
      mf: Avoid a double free of presentation clock timers.
      winex11.drv: Set _NET_WM_FULLSCREEN_MONITORS only when necessary.