1 The Wine development release 8.18 is now available.
3 What's new in this release:
4 - Bundled FluidSynth library for DirectMusic.
5 - More window management in the Wayland driver.
6 - More effect support in Direct3D 10.
9 The source is available at:
11 https://dl.winehq.org/wine/source/8.x/wine-8.18.tar.xz
13 Binary packages for various distributions will be available from:
15 https://www.winehq.org/download
17 You will find documentation on https://www.winehq.org/documentation
19 You can also get the current source directly from the git
20 repository. Check https://www.winehq.org/git for details.
22 Wine is available thanks to the work of many people. See the file
23 AUTHORS in the distribution for the complete list.
25 ----------------------------------------------------------------
27 Bugs fixed in 8.18 (total 44):
29 - #32574 Patrician 4 fails to start (Error in 'App::Initialize')
30 - #41645 Unreal Tournament 2004 crashes
31 - #43017 Unreal Tournament 2004/UT2004.exe crashes due to "intel_do_flush_locked failed: Cannot allocate memory"
32 - #43185 "Battle Bugs" game in unresponsive once game starts
33 - #44275 Shadow of Memories demo hangs at graphic setting screen
34 - #44276 Poor resolution change handling with Shadow of Memories demo
35 - #48905 Inner Chains Launches to Black Screen With Mouse Cursor
36 - #52641 Feeding Frenzy 2 crashes while loading
37 - #53276 comctl32:edit & user32:edit - test_paste() sometimes fails to access the clipboard on Windows
38 - #54069 ddraw:ddraw7 - test_texture_wrong_caps() sometimes fails on Windows 8+
39 - #54156 comctl32:edit & user32:edit - test_paste() sometimes gets an empty string on Windows
40 - #54420 preloader warning "failed to reserve range" macOS Ventura
41 - #54430 user32:menu - test_menu_input()'s test 0 sometimes fails on Windows 7
42 - #54441 windows.media.speech:speech - test_Recognition() sometimes gets unexpected recognizer state on Windows 10
43 - #54699 Motorola Ready For Assistant does not start, RoOriginateLanguageException in Windows.Networking
44 - #54744 explorerframe:taskbarlist - test_ITaskbarList() sometimes gets E_NOTIMPL on Windows
45 - #54783 cryptowinrt:crypto - test_Credentials_Statics() sometimes gets unexpectedly high refcount in Wine
46 - #54791 explorerframe:nstc - test_events() sometimes gets unexpected events on Windows 7
47 - #55108 xaudio2_8:xaudio2 fails on Windows 10+
48 - #55211 Print file not truncated before new print job is started with same target file
49 - #55236 scrrun:dictionary - The 64-bit test_hash_value() gets bad hashes on Windows
50 - #55241 The 64-bit winmm:capture & winmm:wave crash on Windows 8
51 - #55245 ntdll:om - The 32-bit test_all_kernel_objects() gets an access violation on the w8 VM
52 - #55272 The 64-bit ntdll:exception crashes on Windows 10 1607 & 1709
53 - #55273 ntdll:wow64 - The 64-bit test_cpu_area() gets bad offsets on Windows 10 1607 & 1709
54 - #55528 Vitis 2020.1 can't find its libraries (cmd.exe bug with nested one-line if statement that sets PATH)
55 - #55606 Finale 27 printing - incorrect linecap
56 - #55627 secur32:negotiate & secur32:ntlm crash from a NULL dereference on macOS
57 - #55631 ntdll:file - test_file_rename_information fails on Windows 10 1607 and older
58 - #55632 ntdll:file - test_file_link_information() fails on Windows 10 1709 and older
59 - #55634 Genshin Impact uses very long URLs
60 - #55648 ntdll:wow64 - test_peb_teb() crashes on macOS
61 - #55652 A FindResourceW() call prevents windows.applicationmodel:model from running on Windows 8
62 - #55656 user32:dialog - test_IsDialogMessage() fails in the hi-u8 and mx-MX locales on Windows
63 - #55658 msinfo32 fails to start on macOS / wow64 (was psapi:psapi_main - test_EnumProcessModules*() fails on macOS)
64 - #55670 Wordpad is no longer able to print multiple copies of a page
65 - #55674 64-bit wineserver/wine-preloader hangs on macOS 14.
66 - #55686 msvcr120:msvcr120 - test_StructuredTaskCollection() sometimes fails in Wine
67 - #55696 msvfw32:mciwnd - The 64-bit test_MCIWndCreate() crashes in Wine
68 - #55701 Sniper Elite 5 launcher opens Wine Internet Explorer instead of Options window
69 - #55708 cpython 3.12.0 fails to run on wine, needs unimplemented function propsys.dll.VariantToString
70 - #55713 mspaint.exe crashes with: Unhandled exception: unimplemented function propsys.dll.PropVariantToUInt32WithDefault
71 - #55732 kernel32:loader - The 64-bit test_import_resolution() fails in Wine
72 - #55733 ntdll:file - test_file_rename_information_ex() fails on Windows 10 1607 & 1709
74 ----------------------------------------------------------------
79 http: Use the strdup function instead of reimplementing it.
80 riched20: Use CRT allocation functions.
81 mfplat: Rename debugstr_fourcc to mf_debugstr_fourcc.
82 winecoreaudio: Rename wine_dbgstr_fourcc to coreaudio_dbgstr_fourcc.
83 include: Introduce wine_dbgstr_fourcc and debugstr_fourcc.
84 comctl32: Use the debugstr_fourcc function instead of reimplementing it.
85 ddraw: Use the debugstr_fourcc function instead of reimplementing it.
86 mciavi32: Use the debugstr_fourcc function instead of reimplementing it.
87 mscms: Use the debugstr_fourcc function instead of reimplementing it.
88 msvfw32: Use the debugstr_fourcc function instead of reimplementing it.
89 cmd: Reset ignoreBracket when moving to the next line.
90 uninstaller: Don't overallocate in FetchFromRootKey.
91 msvcrt/tests: Check errno after strdup(NULL).
92 msvcrt/tests: Add tests for wcsdup.
94 Alexandre Julliard (34):
95 nls: Update character tables to Unicode 15.1.0.
96 mpg123: Import upstream release 1.32.2.
97 tiff: Import upstream release 4.6.0.
98 zlib: Import upstream release 1.3.
99 xml2: Import upstream release 2.11.5.
100 ldap: Import upstream release 2.5.16.
101 faudio: Import upstream release 23.10.
102 kernel32/tests: Add some dynamic base tests.
103 kernel32/tests: Delete the correct manifest file.
104 ntdll: Do an explicit mmap address search for any range not covering the entire address space.
105 ntdll: Add a helper to find a mapping address for a PE image.
106 ntdll: Always allocate dynamically relocatable dlls top-down.
107 ntdll: Fix relocation of the 32-bit ntdll.
108 ntdll: Move the module relocation support to virtual.c.
109 ntdll: Support relocating the main exe.
110 server: Set the dynamically relocated flag when relocations are present.
111 server: Assign a system-wide mapping address for dynamic base modules.
112 ntdll: Relocate dynamic base modules when mapping them.
113 winegcc: Enable dynamic base by default.
114 server: Remove some leftover code from a failed rebase.
115 ntdll: Only create the main module on the 32-bit side for wow64.
116 ntdll: Add a separate helper to build the main module on Wow64.
117 ws2_32: Make htonl/htons/ntohl/ntohs proper functions.
118 include: Stop pretending to support big-endian.
119 winebuild: Add a helper to output an asm function header.
120 ntdll: Use the standard syscall calling convention for NtFlushProcessWriteBuffers.
121 makefiles: Remove unnecessary imports of version.dll.
122 makefiles: Remove unnecessary imports of usp10.dll.
123 makefiles: Always use the global SOURCES variable for .mc files.
124 makefiles: Always use the global SOURCES variable for .po files.
125 makefiles: Always use the global SOURCES variable for .m files.
126 makefiles: Always use the global SOURCES variable for .sfd files.
127 makefiles: Always use the global SOURCES variable for .in files.
128 ntdll: Move LdrInitializeThunk to the CPU backends.
130 Alexandros Frantzis (7):
131 winewayland.drv: Respect the compositor requested surface config.
132 winewayland.drv: Handle xdg_toplevel tiled states.
133 winewayland.drv: Store and use the latest window config for a wayland_surface.
134 winewayland.drv: Handle application-initiated fullscreen state.
135 winewayland.drv: Use surface geometry to satisfy state size constraints.
136 winewayland.drv: Rename wayland_surface_configure_is_compatible for consistency.
137 winewayland.drv: Avoid resizing fullscreen windows.
139 Alistair Leslie-Hughes (6):
140 d3dxof: Remove DECLSPEC_HIDDEN usage.
141 msxml3: IXMLDOMElement::selectSingleNode always assign a value to the output parameter.
142 wpcap: Return NULL on error in get_broadcast.
143 msado15: Move to newly created row in Recordset::AddNew.
144 msado15: Show fixme only if field_list needs to be used in Recordset::AddNew.
145 d3dx9: Support empty mesh in D3DXLoadMeshHierarchyFromXInMemory().
148 server: Move getpeername() implementation from ntdll/unix.
151 xinput1_3: Hold module reference while the hid thread is running.
154 po: Update Lithuanian translation.
157 configure: Don't use -Wl,-z,defs if it causes link errors with 'environ'.
158 winemac.drv: Use @autoreleasepool instead of NSAutoreleasePool.
159 winemac.drv: Simplify control flow where possible after the removal of NSAutoreleasePool.
160 winemac.drv: Use ObjC literals.
161 wow64cpu: Use RTL_CONSTANT_STRING.
162 cfgmgr32: Add stub for CM_Get_Device_Interface_PropertyW.
163 winemac.drv: Fix redundant calls to [NSCursor set].
166 uiautomationcore/tests: Add another test for IProxyProviderWinEventHandler child HWND scope checking.
167 uiautomationcore: Introduce uia_event_for_each function for iterating through registered events.
168 uiautomationcore: Check if we should try to invoke IProxyProviderWinEventHandler::RespondToWinEvent for registered UIA events.
169 uiautomationcore: Create HUIANODE for WinEvents that should invoke IProxyProviderWinEventHandler::RespondToWinEvent.
170 uiautomationcore: Add support for ignoring ProviderOptions_UseComThreading when creating an HUIANODE.
171 uiautomationcore: Add support for marking the root IAccessible as known on non-root IAccessibles upon proxy provider creation.
172 uiautomationcore: Pass WinEvent data to IProxyProviderWinEventHandler::RespondToWinEvent.
173 uiautomationcore: Add support for raising events passed to our IProxyProviderWinEventSink interface.
174 uiautomationcore/tests: Add tests for COM event handler event advisement.
175 uiautomationcore: Add support for passing WinEvents to the COM API.
176 uiautomationcore: Separate checking if a node is within the scope of a registered event from event invocation.
177 uiautomationcore: Use EVENT_OBJECT_SHOW to advise providers of events being listened for in the COM API.
178 win32u: Fix NtUserIsCurrent{Process/Thread}Window enum typo.
179 uiautomationcore/tests: Add tests for IUIAutomationFocusChangedEventHandler event advisement behavior.
180 uiautomationcore: Query EVENT_OBJECT_FOCUS HWND for a serverside provider if there is a registered focus change event handler.
181 uiautomationcore: Use EVENT_OBJECT_FOCUS to advise HWND providers of focus change events in the COM API.
182 uiautomationcore: Use EVENT_OBJECT_DESTROY to remove HWNDs from the COM API focus change HWND map.
185 advapi32/tests: Add ReadEventLogW tests for EventLogStarted.
186 advapi32/tests: Add ReadEventLogA tests for EventlogStarted.
187 msxml4/tests: Copy namespaces as attributes tests.
188 msxml6/tests: Copy namespaces as attributes tests.
189 advapi32/tests: Skip ReadEventLog on failure to open System log.
192 winemac.drv: Use NtCallbackReturn to send back app's icons to unixlib.
193 msvfw32: Correctly store internal pointer.
194 dbghelp: Simplify allocation code.
195 dbghelp: Read debuggee environment by page.
196 winedbg: Set first LDT entry value as ntdll does.
197 winedbg: Correctly read LDT entries for wow64 debuggee.
200 user32/tests: Print regions in test_hvredraw failure case.
202 Etaash Mathamsetty (1):
203 gdi32: Add stub for D3DKMTQueryAdapterInfo.
206 propsys: Implement PropVariantToUInt32WithDefault.
209 winewayland.drv: Add a trailing linefeed to a TRACE() message.
210 dmsynth: Add a trailing linefeed to TRACE() messages.
211 nsiproxy.sys: Add a trailing linefeed to a TRACE() message.
212 secur32/tests: Skip the tests instead of crashing if Kerberos is not supported.
213 user32/tests: Don't test GetWindowModuleFileName() on windows belonging to another process.
214 advapi32/tests: Better identify OpenEventLogA() failures.
215 advapi32/tests: Add the read_write info to the failures context.
216 advapi32/tests: Avoid unneeded reallocations of the ReadEventLog() buffer.
217 advapi32/tests: Don't check the content of the buffer if ReadEventLog() fails.
219 Gabriel Ivăncescu (11):
220 mshtml: Call handle_event on the proper dispex object.
221 mshtml: Remove unused IUnknown_iface in func_disp_t.
222 mshtml: Traverse EventTarget listeners.
223 mshtml: Implement SuperNavigate undocumented flag 2.
224 shdoclc: Add a basic generic html page for navigation errors.
225 ieframe: Implement IEHTMLWindow2_get_document.
226 ieframe: Navigate to a basic error page on failed navigation.
227 ieframe: Use the original URL for error pages' address bar.
228 ieframe: Send the original URL for error pages in FireNavigationComplete2 notification.
229 ieframe: Send the original URL for error pages in FireDocumentComplete notification.
230 ieframe: Implement DocObjectService_IsErrorUrl.
233 winevulkan: Update to VK spec version 1.3.267.
236 mmdevapi/tests: Don't initialize the audio client twice.
237 mmdevapi/tests: Relax a capture test.
240 nsiproxy.sys: Implement ipv6_forward_enumerate_all.
241 winecfg: Change system theme alongside app theme.
242 uxtheme: Add ShouldSystemUseDarkMode.
245 user32: Add more builtin string resources.
248 ntdll: Initial implementation of FileRenameInformationEx.
249 ntdll: Initial implementation of FileLinkInformationEx.
250 ntdll/tests: Add tests for FILE_RENAME_IGNORE_READONLY_ATTRIBUTE.
251 ntdll/tests: Add tests for FILE_LINK_IGNORE_READONLY_ATTRIBUTE.
252 server: Don't allow read-only files to be replaced by File{Rename,Link}Information{,Ex}.
253 ntdll: Add support for FILE_{RENAME,LINK}_IGNORE_READONLY_ATTRIBUTE.
254 ntdll/tests: Fix FILE_RENAME_INFORMATION_EX test failures on Windows 10 1607 & 1709.
257 user32/tests: Use correct size to LoadStringW.
260 configure: Fix restoring CFLAGS after the test for -Wl,-z,defs.
263 d3dx9/tests: Get rid of unnecessary branches in D3DXLoadMeshTest().
266 windows.storage.applicationdata: Add stub DLL.
267 windows.storage.applicationdata: Add IApplicationDataStatics stub interface.
268 windows.storage.applicationdata/tests: Add IApplicationDataStatics::get_Current() tests.
269 windows.storage.applicationdata: Implement IApplicationDataStatics::get_Current().
270 include: Add ISystemMediaTransportControls interface definition.
271 windows.media.mediacontrol: Add stub DLL.
272 include: Add systemmediatransportcontrolsinterop.idl file.
273 windows.media.mediacontrol: Add ISystemMediaTransportControlsInterop stub interface.
274 windows.media.mediacontrol/tests: Add ISystemMediaTransportControlsInterop::GetForWindow() tests.
275 windows.media.mediacontrol: Implement ISystemMediaTransportControlsInterop::GetForWindow().
276 windows.media.mediacontrol/tests: Add some ISystemMediaTransportControls properties tests.
277 windows.media.mediacontrol: Implement some ISystemMediaTransportControls properties.
278 include: Add windows.security.credentials.ui.idl file.
279 windows.security.credentials.ui.userconsentverifier: Add stub DLL.
280 windows.security.credentials.ui.userconsentverifier: Add IUserConsentVerifierStatics stub interface.
281 windows.security.credentials.ui.userconsentverifier: Implement IUserConsentVerifierStatics::CheckAvailabilityAsync().
282 windows.security.credentials.ui.userconsentverifier/tests: Add IUserConsentVerifierStatics::CheckAvailabilityAsync() tests.
285 d3d10/effect: Add support for 'buge'/'bult' instructions.
286 d3d10/tests: Compact returned arrays checks.
287 d3d10/effect: Add support for 'ceil' instruction.
288 d3d10/effect: Add support for 'floor' instruction.
289 d3d10/effect: Add support for 'dot' instruction.
290 propsys: Partially implement VariantToString().
291 propsys: Handle VT_I4 type in VariantToString().
292 d3d10/effect: Add support for 'imul' instruction.
293 d3d10/tests: Use vector helpers in more places.
294 d3d10/effect: Add support for 'sqrt' instruction.
295 d3d10/effect: Add support for 'rsq' instruction.
296 d3d10/effect: Add support for 'log' instruction.
297 d3d10/effect: Add support for 'exp' instruction.
298 d3d10/effect: Add support for 'not' instruction.
299 d3d10/effect: Add support for 'or' instruction.
300 d3d10/effect: Add support for shift instructions.
301 d3d10/tests: Add a test for log2/log10/exp2 functions in expressions.
302 gdi32/emf: Fix miter limit serialization.
303 gdi32/tests: Add some tests for SetMiterLimit() argument validation.
304 gdi32: Reject invalid values in SetMiterLimit().
305 gdi32/emf: Add SetMetaRgn() recording.
306 winedump/emf: Add EMR_SETMITERLIMIT record dumping.
307 gdi32/emf: Add SetBrushOrgEx() recording.
308 gdi32/tests: Add some tests for FixBrushOrgEx().
309 d3dx9: Check for tx_1_0 blob magic earlier in D3DXCreateTextureShader().
312 secur32: Synchronize access to schannel handle table.
313 server: Hold socket reference in sock_poll_event().
314 ntdll: Map EDESTADDRREQ to STATUS_INVALID_CONNECTION.
315 imagehlp: Import functions instead of forwarding.
316 ntdll: Implement NtQueryValueKey(KeyValuePartialInformationAlign64).
319 msvcr110: Reset chore task_collection earlier to prevent occasional test failure.
320 gdi32: Pass default DEVMODE to winspool in CreateDC.
321 gdi32: Add partial support for creating EMREXTCREATEPEN records.
322 wineps: Add support for EMR_EXTCREATEPEN record playback.
323 localspl: Add ResetPrinter implementation.
324 winspool.drv: Add ResetPrinterW implementation.
325 gdi32: Update printer DEVMODE in ResetDCW.
326 gdi32: Fix METADC handling in PlayMetaFile.
327 gdi32: Test PlayMetaFile on METADC.
328 include: Add winppi.h header.
329 gdi32: Add GdiGetSpoolFileHandle stub.
330 gdi32: Add GdiDeleteSpoolFileHandle stub.
331 gdi32: Add GdiGetDevmodeForPage stub.
332 gdi32: Add GdiGetDevmodeForPage implementation.
333 wineps.drv: Use first page DEVMODE to determine number of copies and collation.
334 localspl: Truncate output file when printing to file.
337 dmime: Rename DirectMusicSegmentState8 method prefix to segment_state.
338 dmime: Get rid of the IDirectMusicSegmentState8Impl typedef.
339 dmime: Implement some segment state default values.
340 dmime: Redirect IDirectMusicPerformance_PlaySegment to PlaySegmentEx.
341 dmime: Introduce a new segment_state_create constructor.
342 dmime/tests: Tests interaction between CloseDown and notifications.
343 dmime: Keep messages with the same time ordered.
344 dmime: Free all pending messages after CloseDown.
345 dmime: Send DMUS_PMSGT_DIRTY messages from the performance.
346 dmime: Send DMUS_PMSGT_NOTIFICATION messages from the performance.
347 dmime: Implement IDirectMusicPerformance_GetNotificationPMsg.
348 dmime: Call IDirectMusicTrack_(Init|End)Play from the segment state.
349 include: Avoid narrowing warning in wine_dbgstr_fourcc.
350 dmime/tests: Queue the message before calling SendPMsg twice.
351 dmsynth: Import and use FluidSynth 2.3.3.
352 fluidsynth: Use Wine debugging facility for traces.
353 dmsynth: Simplify IDirectMusicSynth8_Open checks.
354 dmsynth: Create a fluid_synth instance on Open.
355 dmsynth: Create and register a fluid_sfont instance.
356 server: Send WM_WINE_SETCURSOR with the thread input cursor handle.
357 dmime: Get rid of the IDirectMusicWaveTrack typedef.
358 dmime: Include dmobject.h in dmime_private.h.
359 dmusic: Split wave entry points to dmusic_wave.h.
360 dmime: Create a wave track when loading a segment from a .wav.
361 dmime: Implement GUID_(Download|Unload)FromAudioPath for wave track.
362 dmime: Implement IDirectMusicTrack_Play for the wave track.
363 dmime: Play direct sound buffer from DMUS_PMSGT_WAVE message.
364 dmsynth: Fix synth download of articulations list.
365 dmsynth: Improve debug traces of DLS2 connections.
366 dmsynth: Guard synth members with a CS.
367 dmsynth: Parse MIDI events in IDirectMusicSynth_PlayBuffer.
368 dmsynth: Play some MIDI events in IDirectMusicSynth_Render.
369 dmsynth: Create fluid_preset and fluid_voice from instrument.
370 dmband: Download / unload bands when initializing / ending band track.
371 dmime: Implement sequence track IDirectMusicTrack_Play.
372 dmime: Implement band track IDirectMusicTrack_Play.
373 dmime: Output DMUS_MIDI_PMSG into a music buffer on the port.
374 dmime: Translate DMUS_PMSGT_NOTE to DMUS_PMSGT_MIDI messages.
375 dmime: Translate DMUS_PMSGT_PATCH to DMUS_PMSGT_MIDI messages.
376 winex11: Forcefully unmap the clipping window when it loses focus.
379 wined3d: Reference the push constant buffers.
381 Zebediah Figura (15):
382 objsel: Remove unnecessary includes.
383 objsel: Remove DLL refcount tracking.
384 objsel: Merge factory.c into objsel.c.
385 objsel: Do not check for a NULL interface in COM methods.
386 objsel: Do not create an object from IClassFactory::QueryInterface().
387 wined3d: Rename WINED3D_MAX_TEXTURES to WINED3D_MAX_FFP_TEXTURES.
388 wined3d: Rename the "textures" field of struct wined3d_gl_limits to "ffp_textures".
389 wined3d: Rename the "MaxSimultaneousTextures" field of struct fragment_caps to "max_textures".
390 wined3d: Rename the "MaxTextureBlendStages" field of struct fragment_caps to "max_blend_stages".
391 wined3d: Store the "wined3d_caps" field of struct fragment_caps as separate bool flags.
392 wined3d: Store a fragment_caps structure in struct wined3d_d3d_info.
393 shell32: Fix parsing empty arguments in parse_dde_command().
394 ddraw: Do not check for DDRAW_NO3D in wined3d_resource_desc_from_ddraw().
395 ddraw: Refactor how bind flags are computed.
396 ddraw: Always create surfaces with WINED3D_BIND_SHADER_RESOURCE if possible.
399 mf: Avoid a double free of presentation clock timers.
400 winex11.drv: Set _NET_WM_FULLSCREEN_MONITORS only when necessary.