1 The Wine development release 9.3 is now available.
3 What's new in this release:
4 - Improvements to Internet Proxy support.
5 - New HID pointer device driver.
6 - Timezone database update.
7 - More exception fixes on ARM platforms.
10 The source is available at <https://dl.winehq.org/wine/source/9.x/wine-9.3.tar.xz>
12 Binary packages for various distributions will be available
13 from <https://www.winehq.org/download>
15 You will find documentation on <https://www.winehq.org/documentation>
17 Wine is available thanks to the work of many people.
18 See the file [AUTHORS][1] for the complete list.
20 [1]: https://gitlab.winehq.org/wine/wine/-/raw/wine-9.3/AUTHORS
22 ----------------------------------------------------------------
24 ### Bugs fixed in 9.3 (total 23):
26 - #33050 FDM (Free Download Manager) crashes with page fault when any remote FTP directory opened
27 - #46070 Basemark Web 3.0 Desktop Launcher crashes
28 - #46263 Final Fantasy XI crashes after accepting EULA when using Ashita; World of Warships hangs at login screen
29 - #46839 Happy Foto Designer Font not found "Fehler (Code 1) [Font is not supported: Roboto]"
30 - #50643 IK Product Manager: Unable to download plugins
31 - #51458 Western Digital SSD Dashboard displays black screen
32 - #51599 cmd.exe incorrectly parses an all-whitespace line followed by a closing parenthesis
33 - #51813 python fatal error redirecting stdout to file
34 - #52064 Solidworks 2008 crashes on startup
35 - #52642 Virtual Life 2 freezes
36 - #54794 Autodesk Fusion360: New SSO login will not open web browser
37 - #55282 Flutter SDK can't find "aapt" program (where.exe is a stub)
38 - #55584 Possibly incorrect handling of end_c in ARM64 process_unwind_codes
39 - #55630 DPI_AWARENESS_CONTEXT_PER_MONITOR_AWARE_V2 is not handled in GetAwarenessFromDpiAwarenessContext
40 - #55810 Finding Nemo (Steam): window borders gone missing (virtual desktop)
41 - #55897 cpython 3.12.0 crashes due to unimplemented CopyFile2
42 - #56065 Missing GetAnycastIpAddressTable() implementation
43 - #56139 scrrun: Dictionary does not allow storing at key Undefined
44 - #56222 Microsoft Flight Simulator 2020 (steam) needs unimplemented function GDI32.dll.D3DKMTEnumAdapters2
45 - #56244 SplashTop RMM client for Atera crashes on unimplemented function shcore.dll.RegisterScaleChangeNotifications
46 - #56273 [Sway] winewayland.drv: cursor does not work in Dead Island 2
47 - #56328 LMMS 1.2.2 SF2 soundfonts no longer work in Wine 9.1
48 - #56343 Multiple applications fail to start after de492f9a34
50 ### Changes since 9.2:
53 ntdll: Include alloc_type argument in NtMapViewOfSection(Ex) traces.
54 rpcrt4/tests: Use CRT allocation functions.
55 where: Implement search with default options.
56 include: Annotate NdrGetBuffer with __WINE_(ALLOC_SIZE|MALLOC).
57 wined3d: Use CRT allocation functions.
58 include: Add debugstr_time to wine/strmbase.h.
59 msxml3: Use CRT allocation functions.
60 advapi32/tests: Use CRT allocation functions.
62 Alexandre Julliard (51):
63 ntdll: Implement RtlLookupFunctionTable.
64 ntdll/tests: Don't use x86-64 assembly on ARM64EC.
65 include: Add some public exception handling structures.
66 ntdll: Move RtlLookupFunctionEntry() to the CPU backends.
67 ntdll: Move find_function_info() to the CPU backends.
68 ntdll: Move RtlAddFunctionTable() to the CPU backends.
69 ntdll: Support ARM64EC code in RtlLookupFunctionEntry.
70 ntdll: Make APCs alertable by default on ARM platforms.
71 ntdll: Move exception unwinding code to a separate file.
72 ntdll: Move the dynamic unwind tables to unwind.c.
73 ntdll: Move RtlUnwind to unwind.c.
74 ntdll: Implement RtlVirtualUnwind for ARM64EC.
75 winedump: Add dumping of the save_any_reg ARM64 unwind code.
76 ntdll: Add support for the save_any_reg ARM64 unwind code.
77 ntdll: Ignore end_c when processing ARM64 unwind codes.
78 ntdll: Don't count custom stack frames as part of the prolog on ARM64.
79 rpcrt4/tests: Fix some malloc/HeapAlloc mismatches.
80 ntdll/tests: Simplify testing of unwind register values on ARM64.
81 ntdll: Ignore home parameters saving when unwinding epilog on ARM64.
82 ntdll: Move ARM64 context conversion functions to a new header.
83 ntdll: Implement EC_CONTEXT unwinding operation on ARM64.
84 ntdll: Implement CLEAR_UNWOUND_TO_CALL unwinding operation on ARM64.
85 ntdll: Always set non-volatile pointers for ARM64 unwinding.
86 kernelbase: Update timezone data to version 2024a.
87 faudio: Import upstream release 24.02.
88 mpg123: Import upstream release 1.32.5.
89 png: Import upstream release 1.6.42.
90 jpeg: Import upstream release 9f.
91 zlib: Import upstream release 1.3.1.
92 lcms2: Import upstream release 2.16.
93 ldap: Import upstream release 2.5.17.
94 xslt: Import upstream release 1.1.39.
95 xml2: Import upstream release 2.11.7.
96 zydis: Import upstream release 4.1.0.
97 fluidsynth: Import upstream release 2.3.4.
98 ntdll/tests: Move unwinding tests to a separate file.
99 ntdll/tests: Run dynamic unwind tests on ARM platforms.
100 ntdll/tests: Run RtlVirtualUnwind tests on ARM64EC.
101 ntdll: Default to the SEH channel on x86-64.
102 ntdll: Add a helper macro to dump a register context.
103 ntdll: Share exception dispatch implementation across platforms.
104 include: Add new idl files to the makefile.
105 ntdll: Handle leaf functions in RtlVirtualUnwind on ARM64.
106 ntdll: Handle leaf functions in RtlVirtualUnwind on ARM.
107 ntdll: Handle leaf functions in RtlVirtualUnwind on x86-64.
108 ntdll: Remove support for unwinding ELF dlls on ARM.
109 configure: Stop passing ARM code generation options to winebuild.
110 configure: Require floating point support on ARM targets.
111 winegcc: Stop passing ARM code generation options to winebuild.
112 winebuild: Remove ARM code generation option.
113 ntdll/tests: Fix a test failure when exception information is missing.
116 po: Update Lithuanian translation.
117 po: Update Lithuanian translation.
119 Bernhard Übelacker (4):
120 cmd: Handle lines with just spaces in bracket blocks.
121 cmd: Avoid execution if block misses closing brackets.
122 wininet: Add missing assignment of return value.
123 wininet: Avoid crash in InternetCreateUrl with scheme unknown.
126 include: Add IDirect3DSurface in windows.graphics.directx.direct3d11.idl.
127 include: Add BitmapBuffer runtimeclass in windows.graphics.imaging.idl.
128 include: Add SoftwareBitmap runtimeclass in windows.graphics.imaging.idl.
129 include: Add DetectedFace runtimeclass in windows.media.faceanalysis.idl.
130 include: Add FaceDetector runtimeclass in windows.media.faceanalysis.idl.
133 d2d1/tests: Increase timeout from 1 sec to 5 secs.
136 ntdll: Assume process-private futexes are always present on Linux.
137 ntdll: On x86_64, don't access %gs in signal_start_thread().
140 oleaut32: Handle exponent in VarBstrFromR[48] in non-English locales.
141 oleaut32/tests: Add tests for number of digits.
142 oleaut32: Use scientific notation only for larger numbers in VarBstrFromR[48].
143 include: Add some msvcrt declarations.
144 msvcrt: Use string sort for strncoll/wcsncoll.
145 msvcrt/tests: Include locale in ok message.
146 msvcrt/tests: Add tests for strcoll/wcscoll.
147 msvcrt: Use string sort for strcoll/wcscoll.
150 msi: Avoid leaking stream on DB update.
153 kernel32/tests: Add tests for CreateProcess with invalid handles.
154 kernelbase: Don't use INVALID_HANDLE_VALUE as std handle in CreateProcess.
155 msvcrt/tests: Extend test for invalid std handle on msvcrt init.
156 msvcrt: Don't reset invalid std handle in init.
157 kernel32/tests: Remove todo scaffolding for CreateProcess() tests.
158 winedump: Don't crash on non-effective runtime function entries.
159 kernel32/tests: Check if thread is suspended in debugger attachment tests.
160 winedbg: Use share attributes for opening command file.
161 dbghelp: Implement SymFromIndex().
162 winedump: Don't expect a fixed number of substreams in DBI header (PDB).
163 dbghelp: Don't expected a fixed number of substreams in DBI header (PDB).
166 user32/sysparams: Only allow dpi awareness tests to return invalid on windows.
167 user32/sysparams: Handle more contexts in GetAwarenessFromDpiAwarenessContext.
168 wineoss: Remove superflous check.
169 winealsa: Remove superflous check.
170 mmdevapi/tests: Add test for invalid format with exclusive mode.
173 po: Update Dutch translation.
175 Gabriel Ivăncescu (7):
176 jscript: Add initial implementation of ArrayBuffer.
177 jscript: Add initial implementation of DataView.
178 jscript: Implement DataView setters.
179 jscript: Implement DataView getters.
180 jscript: Implement ArrayBuffer.prototype.slice.
181 kernelbase: Copy the read-only attribute from the source.
182 explorer: Set layered style on systray icons before calling into the driver.
185 include: Add interfaces for ID3D11On12Device1 and ID3D11On12Device2.
188 wbemprox: Protect tables with a critical section.
191 hidclass.sys: Use the correct string for container_id.
192 hidclass.sys: Use HID_DEVICE in the mfg_section to match the recent changes.
195 winebuild: Introduce exports struct.
196 winebuild: Use exports struct for imports handling.
197 winebuild: Use exports struct for 16-bit modules handlign.
198 winebuild: Use exports struct for exports handling.
199 winebuild: Use exports struct in assign_ordinals.
200 winebuild: Use exports struct in assign_names.
201 winebuild: Move target filtering to assign_exports.
204 ntdll: Remove stale comment from set_async_direct_result() documentation.
205 include: Add definition for FILE_STAT_INFORMATION.
206 ntdll/tests: Add tests for NtQueryInformationFile FileStatInformation.
207 ntdll: Implement NtQueryInformationFile FileStatInformation.
208 kernelbase: Replace FileAllInformation with FileStatInformation in GetFileInformationByHandle().
209 kernel32/tests: Fix console test with odd-sized consoles.
211 Kartavya Vashishtha (1):
212 kernelbase: Implement CopyFile2().
214 Krzysztof Bogacki (4):
215 gdi32/tests: Add D3DKMTEnumAdapters2 tests.
216 gdi32: Add D3DKMTEnumAdapters2() stub.
217 win32u: Maintain a list of GPUs in cache.
218 win32u: Implement NtGdiDdDDIEnumAdapters2.
221 imm32: Update spec file.
224 iphlpapi: Implement GetRTTAndHopCount().
225 server: Use __pthread_kill() syscall wrapper.
226 server: Use bootstrap_register2() instead of bootstrap_register().
227 server: Improve formatting in mach init_tracing_mechanism().
230 include: Add windows.security.authentication.onlineid.idl file.
231 windows.security.authentication.onlineid: Add stub DLL.
232 windows.security.authentication.onlineid: Add IOnlineIdSystemAuthenticatorStatics stub interface.
233 windows.security.authentication.onlineid: Add IOnlineIdServiceTicketRequestFactory stub interface.
234 windows.security.authentication.onlineid: Implement IOnlineIdSystemAuthenticatorStatics::get_Default().
236 Nikola Kuburović (1):
237 kernelbase: Reduce FIXME to TRACE if params is null.
240 kernel32/tests: Add tests for critical section debug info presence.
241 strmbase: Force debug info in critical sections.
242 dmime: Force debug info in critical sections.
243 dmsynth: Force debug info in critical sections.
244 mapi32: Force debug info in critical sections.
245 propsys: Force debug info in critical sections.
246 rpcrt4: Force debug info in critical sections.
247 vcomp: Force debug info in critical sections.
248 webservices: Force debug info in critical sections.
249 ntdll: Don't hardcode xstate feature mask.
250 ntdll: Don't hardcode xstate size in syscall frame.
251 ntdll: Don't hardcode xstate size in exception stack layout.
252 powershell: Read input command from stdin.
253 winhttp: Force debug info in critical sections.
254 xaudio2: Force debug info in critical sections.
255 kernelbase: Force debug info in critical sections.
256 combase: Force debug info in critical sections.
257 crypt32: Force debug info in critical sections.
258 winhttp: Mind read size when skipping async read in WinHttpReadData().
259 dinput: Force debug info in critical sections.
260 dplayx: Force debug info in critical sections.
261 dsound: Force debug info in critical sections.
262 dwrite: Force debug info in critical sections.
263 inetcomm: Force debug info in critical sections.
264 mscoree: Force debug info in critical sections.
265 ntdll: Force debug info in critical sections.
266 qmgr: Force debug info in critical sections.
267 windowscodecs: Force debug info in critical sections.
268 wininet: Force debug info in critical sections.
271 wininet: Store proxy type in proxyinfo_t.
272 wininet: Don't allocate global_proxy structure dynamically.
273 wininet: Move reading proxy settings from registry to separate function.
274 wininet: Return process-wide proxy settings from INTERNET_GetProxySettings.
275 wininet: Add support for reading AutoConfigURL from registry.
276 wininet: Store whole ProxyServer string so it's not lost while saving settings to registry.
277 wininet: Set ProxyOverride registry key when saving proxy information.
278 wininet: Set AutoConfigURL registry key when saving proxy information.
279 wininet: Test INTERNET_OPTION_PER_CONNECTION_OPTION on process settings.
280 wininet: Fix buffer size calculation in InternetQueryOption(INTERNET_OPTION_PER_CONNECTION_OPTION).
281 wininet: Use GlobalAlloc in InternetQueryOption(INTERNET_OPTION_PER_CONNECTION_OPTION).
282 wininet/tests: Cleanup INTERNET_OPTION_PER_CONNECTION_OPTION tests.
283 wininet: Add support for writing connection settings binary blobs from registry.
284 wininet: Add support for reading connection settings binary blobs from registry.
285 wininet: Add support for INTERNET_PER_CONN_AUTOCONFIG_URL in InternetSetOption.
286 wininet: Fix INTERNET_PER_CONN_AUTOCONFIG_URL option when quering global proxy settings.
287 wininet: Add support for INTERNET_OPTION_PER_CONNECTION_OPTION option on session handles.
288 wininet/tests: Add more INTERNET_OPTION_PER_CONNECTION_OPTION tests.
289 inetcpl.cpl: Use wininet functions to set proxy settings.
290 wininet/tests: Add initial PAC script tests.
292 Rastislav Stanik (1):
293 iphlpapi: Add stub for GetAnycastIpAddressTable().
296 winex11: Process XInput2 events with QS_INPUT filter.
297 winex11: Advertise XInput2 version 2.2 support.
298 winex11: Initialize XInput2 extension on every thread.
299 winex11: Always listen to XInput2 device changes events.
300 winex11: Simplify XInput2 device valuator lookup.
301 hidclass: Make HID hardware ids more similar to windows.
302 hidclass: Only access Tail.Overlay.OriginalFileObject when needed.
303 mouhid.sys: Introduce a new HID pointer device driver.
304 mouhid.sys: Request preparsed data and inspect device caps.
305 mouhid.sys: Read reports from the underlying HID device.
306 mouhid.sys: Parse HID reports to track contact points.
307 mfreadwrite/reader: Introduce source_reader_queue_sample helper.
308 mfreadwrite/reader: Pass the transform to source_reader_pull_stream_samples.
309 mfreadwrite/reader: Introduce a new source_reader_allocate_stream_sample helper.
310 mfreadwrite/reader: Introduce new source_reader_(drain|flush)_transform_samples helpers.
311 mfreadwrite/reader: Repeat pushing / pulling samples while it succeeds.
312 winevulkan: Wrap host swapchain handles.
313 winevulkan: Adjust VkSurfaceCapabilitiesKHR image extents with client rect.
314 winewayland: Remove now unnecessary VkSurfaceCapabilitiesKHR fixups.
315 winevulkan: Implement vkGetPhysicalDeviceSurfaceCapabilities2KHR fallback.
316 winevulkan: Remove now unnecessary vkGetPhysicalDeviceSurfaceCapabilities2KHR driver entry.
317 winevulkan: Remove now unnecessary vkGetPhysicalDeviceSurfaceCapabilitiesKHR driver entry.
318 winegstreamer: Use MFCreateVideoMediaTypeFromSubtype in GetInputAvailableType.
319 winegstreamer: Use MFCreateVideoMediaTypeFromSubtype in GetOutputAvailableType.
320 winegstreamer: Remove unnecessary create_output_media_type checks.
321 winegstreamer: Use GUID arrays for H264 decoder media types.
322 winegstreamer: Complete H264 current output type reported attributes.
323 win32u: Deduce monitor device flags from their adapter.
324 win32u: Only consider active monitors for clone detection.
325 win32u: Only consider active monitors for virtual screen rect.
326 win32u: Only consider active monitors in monitor_from_rect.
327 win32u: Don't assume that the primary adapter is always first.
328 winegstreamer: Use MFCalculateImageSize to compute output info size.
329 ir50_32: Use the proper hr value for stream format change.
330 winegstreamer: Use the H264 decoder to implement the IV50 decoder.
331 winegstreamer: Rename struct h264_decoder to struct video_decoder.
332 winevulkan: Handle creation of surfaces with no HWND directly.
333 winex11: Remove now unnecessary create_info HWND checks.
334 winevulkan: Handle invalid window in vkCreateSwapchainKHR.
335 winevulkan: Handle invalid window in vkGetPhysicalDevicePresentRectanglesKHR.
336 winevulkan: Remove now unnecessary vkGetPhysicalDevicePresentRectanglesKHR driver entry.
337 winevulkan: Implement vkGetPhysicalDeviceSurfaceFormats2KHR fallback.
338 winevulkan: Remove now unnecessary vkGetPhysicalDeviceSurfaceFormats2KHR driver entry.
339 winevulkan: Remove now unnecessary vkGetPhysicalDeviceSurfaceFormatsKHR driver entry.
340 server: Use the startup info to connect the process winstation.
343 mlang/tests: Test for GetGlobalFontLinkObject.
344 mlang: Implement GetGlobalFontLinkObject.
345 mlang/tests: Test codepages priority bug in GetStrCodepages.
346 mlang: Fix bug with codepage priority in GetStrCodePages.
347 gdiplus: Replace HDC with GpGraphics in parameters.
348 gdiplus/tests: Add interactive test for font linking.
349 gdiplus: Implement font linking for gdiplus.
352 sapi: Implement ISpeechObjectToken::GetDescription.
353 sapi: Implement ISpeechObjectToken::Invoke.
354 sapi: Implement ISpeechObjectToken::GetIDsOfNames.
355 sapi: Implement ISpeechObjectTokens::get_Count.
356 sapi: Implement IEnumVARIANT::Next for ISpeechObjectTokens.
357 sapi: Implement ISpeechObjectTokens::Invoke.
358 sapi: Free typelib on DLL detach.
359 sapi: Implement ISpeechVoice::Speak.
360 sapi: Handle zero-length attributes correctly in ISpObjectTokenCategory::EnumTokens.
361 sapi: Introduce create_token_category helper in tts.
362 sapi: Implement ISpeechVoice::GetVoices.
363 sapi: Implement ISpeechVoice::GetTypeInfoCount.
364 sapi: Implement ISpeechVoice::GetTypeInfo.
365 sapi: Implement ISpeechVoice::GetIDsOfNames.
366 sapi: Implement ISpeechVoice::Invoke.
368 Vijay Kiran Kamuju (1):
369 include: Add msdelta header file.
372 dmband: Implement getting/setting GUID_BandParam on band tracks.
373 dmime/tests: Add MIDI loading test.
374 dmime: Parse MIDI headers.
375 dmime: Don't skip chunk for MIDI files.
376 dmime: Read through a MIDI file.
377 dmime/tests: Improve error reporting from expect_track.
379 Zebediah Figura (32):
380 urlmon/tests: Add basic tests for CoInternetParseUrl(PARSE_CANONICALIZE).
381 shlwapi/tests: Move the UrlCanonicalize() tests into test_UrlCanonicalizeA().
382 shlwapi/tests: Remove the unused "wszExpectUrl" variable from check_url_canonicalize().
383 shlwapi/tests: Use winetest_push_context() in test_UrlCanonicalizeA().
384 shlwapi/tests: Move UrlCombine() error tests out of the loop.
385 kernelbase: Do not use isalnum() with Unicode characters.
386 kernelbase: Do not canonicalize the relative part in UrlCombine().
387 kernelbase: Reimplement UrlCanonicalize().
388 kernelbase: Use scheme_is_opaque() in UrlIs().
389 shlwapi/tests: Add many more tests for UrlCanonicalize().
390 dinput/tests: Return void from test_winmm_joystick().
391 wined3d: Merge shader_load_constants() into shader_select().
392 wined3d: Introduce a separate vp_disable() method.
393 wined3d: Introduce a separate fp_disable() method.
394 wined3d: Pass a wined3d_state pointer to the vp_enable() and fp_enable() methods.
395 wined3d: Pass a non-const wined3d_context pointer to the FFP *_apply_draw_state() methods.
396 wined3d/arb: Move fragment program compilation from fragment_prog_arbfp() to arbfp_apply_draw_state().
397 wined3d: Set the pipeline key viewport and scissor count at initialization.
398 wined3d: Make the viewport state dynamic.
399 wined3d: Make the scissor state dynamic.
400 wined3d: Enable EXT_extended_dynamic_state.
401 wined3d: Use dynamic state for depth/stencil state if possible.
402 shell32: Remove two unused strings.
403 shell32: Always use IContextMenu::InvokeCommand() when selecting an item from the context menu.
404 shell32: Do not set the default menu item from ShellView_DoContextMenu().
405 shell32: Separate a get_filetype() helper.
406 shell32: Properly implement context menu verbs.
407 wined3d/arb: Move SPECULARENABLE constant loading to arbfp_apply_draw_state().
408 wined3d/arb: Move TEXTUREFACTOR constant loading to arbfp_apply_draw_state().
409 wined3d/arb: Move color key constant loading to arbfp_apply_draw_state().
410 wined3d/arb: Move texture constant loading to arbfp_apply_draw_state().
411 wined3d/arb: Move FFP bumpenv constant loading to arbfp_apply_draw_state().
414 include: Rename DF_WINE_CREATE_DESKTOP to DF_WINE_VIRTUAL_DESKTOP.
415 server: Inherit internal desktop flags when creating desktops.
416 dsound/tests: Test that formats with more than two channels require WAVEFORMATEXTENSIBLE.
417 dsound: Reject WAVEFORMATEX formats with more than two channels.