The Wine development release 9.3 is now available.
What's new in this release: - Improvements to Internet Proxy support. - New HID pointer device driver. - Timezone database update. - More exception fixes on ARM platforms. - Various bug fixes.
The source is available at https://dl.winehq.org/wine/source/9.x/wine-9.3.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
Wine is available thanks to the work of many people. See the file [AUTHORS][1] for the complete list.
[1]: https://gitlab.winehq.org/wine/wine/-/raw/wine-9.3/AUTHORS
----------------------------------------------------------------
### Bugs fixed in 9.3 (total 23):
- #33050 FDM (Free Download Manager) crashes with page fault when any remote FTP directory opened - #46070 Basemark Web 3.0 Desktop Launcher crashes - #46263 Final Fantasy XI crashes after accepting EULA when using Ashita; World of Warships hangs at login screen - #46839 Happy Foto Designer Font not found "Fehler (Code 1) [Font is not supported: Roboto]" - #50643 IK Product Manager: Unable to download plugins - #51458 Western Digital SSD Dashboard displays black screen - #51599 cmd.exe incorrectly parses an all-whitespace line followed by a closing parenthesis - #51813 python fatal error redirecting stdout to file - #52064 Solidworks 2008 crashes on startup - #52642 Virtual Life 2 freezes - #54794 Autodesk Fusion360: New SSO login will not open web browser - #55282 Flutter SDK can't find "aapt" program (where.exe is a stub) - #55584 Possibly incorrect handling of end_c in ARM64 process_unwind_codes - #55630 DPI_AWARENESS_CONTEXT_PER_MONITOR_AWARE_V2 is not handled in GetAwarenessFromDpiAwarenessContext - #55810 Finding Nemo (Steam): window borders gone missing (virtual desktop) - #55897 cpython 3.12.0 crashes due to unimplemented CopyFile2 - #56065 Missing GetAnycastIpAddressTable() implementation - #56139 scrrun: Dictionary does not allow storing at key Undefined - #56222 Microsoft Flight Simulator 2020 (steam) needs unimplemented function GDI32.dll.D3DKMTEnumAdapters2 - #56244 SplashTop RMM client for Atera crashes on unimplemented function shcore.dll.RegisterScaleChangeNotifications - #56273 [Sway] winewayland.drv: cursor does not work in Dead Island 2 - #56328 LMMS 1.2.2 SF2 soundfonts no longer work in Wine 9.1 - #56343 Multiple applications fail to start after de492f9a34
### Changes since 9.2: ``` Alex Henrie (8): ntdll: Include alloc_type argument in NtMapViewOfSection(Ex) traces. rpcrt4/tests: Use CRT allocation functions. where: Implement search with default options. include: Annotate NdrGetBuffer with __WINE_(ALLOC_SIZE|MALLOC). wined3d: Use CRT allocation functions. include: Add debugstr_time to wine/strmbase.h. msxml3: Use CRT allocation functions. advapi32/tests: Use CRT allocation functions.
Alexandre Julliard (51): ntdll: Implement RtlLookupFunctionTable. ntdll/tests: Don't use x86-64 assembly on ARM64EC. include: Add some public exception handling structures. ntdll: Move RtlLookupFunctionEntry() to the CPU backends. ntdll: Move find_function_info() to the CPU backends. ntdll: Move RtlAddFunctionTable() to the CPU backends. ntdll: Support ARM64EC code in RtlLookupFunctionEntry. ntdll: Make APCs alertable by default on ARM platforms. ntdll: Move exception unwinding code to a separate file. ntdll: Move the dynamic unwind tables to unwind.c. ntdll: Move RtlUnwind to unwind.c. ntdll: Implement RtlVirtualUnwind for ARM64EC. winedump: Add dumping of the save_any_reg ARM64 unwind code. ntdll: Add support for the save_any_reg ARM64 unwind code. ntdll: Ignore end_c when processing ARM64 unwind codes. ntdll: Don't count custom stack frames as part of the prolog on ARM64. rpcrt4/tests: Fix some malloc/HeapAlloc mismatches. ntdll/tests: Simplify testing of unwind register values on ARM64. ntdll: Ignore home parameters saving when unwinding epilog on ARM64. ntdll: Move ARM64 context conversion functions to a new header. ntdll: Implement EC_CONTEXT unwinding operation on ARM64. ntdll: Implement CLEAR_UNWOUND_TO_CALL unwinding operation on ARM64. ntdll: Always set non-volatile pointers for ARM64 unwinding. kernelbase: Update timezone data to version 2024a. faudio: Import upstream release 24.02. mpg123: Import upstream release 1.32.5. png: Import upstream release 1.6.42. jpeg: Import upstream release 9f. zlib: Import upstream release 1.3.1. lcms2: Import upstream release 2.16. ldap: Import upstream release 2.5.17. xslt: Import upstream release 1.1.39. xml2: Import upstream release 2.11.7. zydis: Import upstream release 4.1.0. fluidsynth: Import upstream release 2.3.4. ntdll/tests: Move unwinding tests to a separate file. ntdll/tests: Run dynamic unwind tests on ARM platforms. ntdll/tests: Run RtlVirtualUnwind tests on ARM64EC. ntdll: Default to the SEH channel on x86-64. ntdll: Add a helper macro to dump a register context. ntdll: Share exception dispatch implementation across platforms. include: Add new idl files to the makefile. ntdll: Handle leaf functions in RtlVirtualUnwind on ARM64. ntdll: Handle leaf functions in RtlVirtualUnwind on ARM. ntdll: Handle leaf functions in RtlVirtualUnwind on x86-64. ntdll: Remove support for unwinding ELF dlls on ARM. configure: Stop passing ARM code generation options to winebuild. configure: Require floating point support on ARM targets. winegcc: Stop passing ARM code generation options to winebuild. winebuild: Remove ARM code generation option. ntdll/tests: Fix a test failure when exception information is missing.
Aurimas Fišeras (2): po: Update Lithuanian translation. po: Update Lithuanian translation.
Bernhard Übelacker (4): cmd: Handle lines with just spaces in bracket blocks. cmd: Avoid execution if block misses closing brackets. wininet: Add missing assignment of return value. wininet: Avoid crash in InternetCreateUrl with scheme unknown.
Biswapriyo Nath (5): include: Add IDirect3DSurface in windows.graphics.directx.direct3d11.idl. include: Add BitmapBuffer runtimeclass in windows.graphics.imaging.idl. include: Add SoftwareBitmap runtimeclass in windows.graphics.imaging.idl. include: Add DetectedFace runtimeclass in windows.media.faceanalysis.idl. include: Add FaceDetector runtimeclass in windows.media.faceanalysis.idl.
Brendan McGrath (1): d2d1/tests: Increase timeout from 1 sec to 5 secs.
Brendan Shanks (2): ntdll: Assume process-private futexes are always present on Linux. ntdll: On x86_64, don't access %gs in signal_start_thread().
Daniel Lehman (8): oleaut32: Handle exponent in VarBstrFromR[48] in non-English locales. oleaut32/tests: Add tests for number of digits. oleaut32: Use scientific notation only for larger numbers in VarBstrFromR[48]. include: Add some msvcrt declarations. msvcrt: Use string sort for strncoll/wcsncoll. msvcrt/tests: Include locale in ok message. msvcrt/tests: Add tests for strcoll/wcscoll. msvcrt: Use string sort for strcoll/wcscoll.
David Kahurani (1): msi: Avoid leaking stream on DB update.
Eric Pouech (11): kernel32/tests: Add tests for CreateProcess with invalid handles. kernelbase: Don't use INVALID_HANDLE_VALUE as std handle in CreateProcess. msvcrt/tests: Extend test for invalid std handle on msvcrt init. msvcrt: Don't reset invalid std handle in init. kernel32/tests: Remove todo scaffolding for CreateProcess() tests. winedump: Don't crash on non-effective runtime function entries. kernel32/tests: Check if thread is suspended in debugger attachment tests. winedbg: Use share attributes for opening command file. dbghelp: Implement SymFromIndex(). winedump: Don't expect a fixed number of substreams in DBI header (PDB). dbghelp: Don't expected a fixed number of substreams in DBI header (PDB).
Fabian Maurer (5): user32/sysparams: Only allow dpi awareness tests to return invalid on windows. user32/sysparams: Handle more contexts in GetAwarenessFromDpiAwarenessContext. wineoss: Remove superflous check. winealsa: Remove superflous check. mmdevapi/tests: Add test for invalid format with exclusive mode.
Floris Renaud (1): po: Update Dutch translation.
Gabriel Ivăncescu (7): jscript: Add initial implementation of ArrayBuffer. jscript: Add initial implementation of DataView. jscript: Implement DataView setters. jscript: Implement DataView getters. jscript: Implement ArrayBuffer.prototype.slice. kernelbase: Copy the read-only attribute from the source. explorer: Set layered style on systray icons before calling into the driver.
Geoffrey McRae (1): include: Add interfaces for ID3D11On12Device1 and ID3D11On12Device2.
Hans Leidekker (1): wbemprox: Protect tables with a critical section.
Ivo Ivanov (2): hidclass.sys: Use the correct string for container_id. hidclass.sys: Use HID_DEVICE in the mfg_section to match the recent changes.
Jacek Caban (7): winebuild: Introduce exports struct. winebuild: Use exports struct for imports handling. winebuild: Use exports struct for 16-bit modules handlign. winebuild: Use exports struct for exports handling. winebuild: Use exports struct in assign_ordinals. winebuild: Use exports struct in assign_names. winebuild: Move target filtering to assign_exports.
Jinoh Kang (6): ntdll: Remove stale comment from set_async_direct_result() documentation. include: Add definition for FILE_STAT_INFORMATION. ntdll/tests: Add tests for NtQueryInformationFile FileStatInformation. ntdll: Implement NtQueryInformationFile FileStatInformation. kernelbase: Replace FileAllInformation with FileStatInformation in GetFileInformationByHandle(). kernel32/tests: Fix console test with odd-sized consoles.
Kartavya Vashishtha (1): kernelbase: Implement CopyFile2().
Krzysztof Bogacki (4): gdi32/tests: Add D3DKMTEnumAdapters2 tests. gdi32: Add D3DKMTEnumAdapters2() stub. win32u: Maintain a list of GPUs in cache. win32u: Implement NtGdiDdDDIEnumAdapters2.
Louis Lenders (1): imm32: Update spec file.
Marc-Aurel Zent (4): iphlpapi: Implement GetRTTAndHopCount(). server: Use __pthread_kill() syscall wrapper. server: Use bootstrap_register2() instead of bootstrap_register(). server: Improve formatting in mach init_tracing_mechanism().
Mohamad Al-Jaf (5): include: Add windows.security.authentication.onlineid.idl file. windows.security.authentication.onlineid: Add stub DLL. windows.security.authentication.onlineid: Add IOnlineIdSystemAuthenticatorStatics stub interface. windows.security.authentication.onlineid: Add IOnlineIdServiceTicketRequestFactory stub interface. windows.security.authentication.onlineid: Implement IOnlineIdSystemAuthenticatorStatics::get_Default().
Nikola Kuburović (1): kernelbase: Reduce FIXME to TRACE if params is null.
Paul Gofman (29): kernel32/tests: Add tests for critical section debug info presence. strmbase: Force debug info in critical sections. dmime: Force debug info in critical sections. dmsynth: Force debug info in critical sections. mapi32: Force debug info in critical sections. propsys: Force debug info in critical sections. rpcrt4: Force debug info in critical sections. vcomp: Force debug info in critical sections. webservices: Force debug info in critical sections. ntdll: Don't hardcode xstate feature mask. ntdll: Don't hardcode xstate size in syscall frame. ntdll: Don't hardcode xstate size in exception stack layout. powershell: Read input command from stdin. winhttp: Force debug info in critical sections. xaudio2: Force debug info in critical sections. kernelbase: Force debug info in critical sections. combase: Force debug info in critical sections. crypt32: Force debug info in critical sections. winhttp: Mind read size when skipping async read in WinHttpReadData(). dinput: Force debug info in critical sections. dplayx: Force debug info in critical sections. dsound: Force debug info in critical sections. dwrite: Force debug info in critical sections. inetcomm: Force debug info in critical sections. mscoree: Force debug info in critical sections. ntdll: Force debug info in critical sections. qmgr: Force debug info in critical sections. windowscodecs: Force debug info in critical sections. wininet: Force debug info in critical sections.
Piotr Caban (20): wininet: Store proxy type in proxyinfo_t. wininet: Don't allocate global_proxy structure dynamically. wininet: Move reading proxy settings from registry to separate function. wininet: Return process-wide proxy settings from INTERNET_GetProxySettings. wininet: Add support for reading AutoConfigURL from registry. wininet: Store whole ProxyServer string so it's not lost while saving settings to registry. wininet: Set ProxyOverride registry key when saving proxy information. wininet: Set AutoConfigURL registry key when saving proxy information. wininet: Test INTERNET_OPTION_PER_CONNECTION_OPTION on process settings. wininet: Fix buffer size calculation in InternetQueryOption(INTERNET_OPTION_PER_CONNECTION_OPTION). wininet: Use GlobalAlloc in InternetQueryOption(INTERNET_OPTION_PER_CONNECTION_OPTION). wininet/tests: Cleanup INTERNET_OPTION_PER_CONNECTION_OPTION tests. wininet: Add support for writing connection settings binary blobs from registry. wininet: Add support for reading connection settings binary blobs from registry. wininet: Add support for INTERNET_PER_CONN_AUTOCONFIG_URL in InternetSetOption. wininet: Fix INTERNET_PER_CONN_AUTOCONFIG_URL option when quering global proxy settings. wininet: Add support for INTERNET_OPTION_PER_CONNECTION_OPTION option on session handles. wininet/tests: Add more INTERNET_OPTION_PER_CONNECTION_OPTION tests. inetcpl.cpl: Use wininet functions to set proxy settings. wininet/tests: Add initial PAC script tests.
Rastislav Stanik (1): iphlpapi: Add stub for GetAnycastIpAddressTable().
Rémi Bernon (45): winex11: Process XInput2 events with QS_INPUT filter. winex11: Advertise XInput2 version 2.2 support. winex11: Initialize XInput2 extension on every thread. winex11: Always listen to XInput2 device changes events. winex11: Simplify XInput2 device valuator lookup. hidclass: Make HID hardware ids more similar to windows. hidclass: Only access Tail.Overlay.OriginalFileObject when needed. mouhid.sys: Introduce a new HID pointer device driver. mouhid.sys: Request preparsed data and inspect device caps. mouhid.sys: Read reports from the underlying HID device. mouhid.sys: Parse HID reports to track contact points. mfreadwrite/reader: Introduce source_reader_queue_sample helper. mfreadwrite/reader: Pass the transform to source_reader_pull_stream_samples. mfreadwrite/reader: Introduce a new source_reader_allocate_stream_sample helper. mfreadwrite/reader: Introduce new source_reader_(drain|flush)_transform_samples helpers. mfreadwrite/reader: Repeat pushing / pulling samples while it succeeds. winevulkan: Wrap host swapchain handles. winevulkan: Adjust VkSurfaceCapabilitiesKHR image extents with client rect. winewayland: Remove now unnecessary VkSurfaceCapabilitiesKHR fixups. winevulkan: Implement vkGetPhysicalDeviceSurfaceCapabilities2KHR fallback. winevulkan: Remove now unnecessary vkGetPhysicalDeviceSurfaceCapabilities2KHR driver entry. winevulkan: Remove now unnecessary vkGetPhysicalDeviceSurfaceCapabilitiesKHR driver entry. winegstreamer: Use MFCreateVideoMediaTypeFromSubtype in GetInputAvailableType. winegstreamer: Use MFCreateVideoMediaTypeFromSubtype in GetOutputAvailableType. winegstreamer: Remove unnecessary create_output_media_type checks. winegstreamer: Use GUID arrays for H264 decoder media types. winegstreamer: Complete H264 current output type reported attributes. win32u: Deduce monitor device flags from their adapter. win32u: Only consider active monitors for clone detection. win32u: Only consider active monitors for virtual screen rect. win32u: Only consider active monitors in monitor_from_rect. win32u: Don't assume that the primary adapter is always first. winegstreamer: Use MFCalculateImageSize to compute output info size. ir50_32: Use the proper hr value for stream format change. winegstreamer: Use the H264 decoder to implement the IV50 decoder. winegstreamer: Rename struct h264_decoder to struct video_decoder. winevulkan: Handle creation of surfaces with no HWND directly. winex11: Remove now unnecessary create_info HWND checks. winevulkan: Handle invalid window in vkCreateSwapchainKHR. winevulkan: Handle invalid window in vkGetPhysicalDevicePresentRectanglesKHR. winevulkan: Remove now unnecessary vkGetPhysicalDevicePresentRectanglesKHR driver entry. winevulkan: Implement vkGetPhysicalDeviceSurfaceFormats2KHR fallback. winevulkan: Remove now unnecessary vkGetPhysicalDeviceSurfaceFormats2KHR driver entry. winevulkan: Remove now unnecessary vkGetPhysicalDeviceSurfaceFormatsKHR driver entry. server: Use the startup info to connect the process winstation.
Santino Mazza (7): mlang/tests: Test for GetGlobalFontLinkObject. mlang: Implement GetGlobalFontLinkObject. mlang/tests: Test codepages priority bug in GetStrCodepages. mlang: Fix bug with codepage priority in GetStrCodePages. gdiplus: Replace HDC with GpGraphics in parameters. gdiplus/tests: Add interactive test for font linking. gdiplus: Implement font linking for gdiplus.
Shaun Ren (15): sapi: Implement ISpeechObjectToken::GetDescription. sapi: Implement ISpeechObjectToken::Invoke. sapi: Implement ISpeechObjectToken::GetIDsOfNames. sapi: Implement ISpeechObjectTokens::get_Count. sapi: Implement IEnumVARIANT::Next for ISpeechObjectTokens. sapi: Implement ISpeechObjectTokens::Invoke. sapi: Free typelib on DLL detach. sapi: Implement ISpeechVoice::Speak. sapi: Handle zero-length attributes correctly in ISpObjectTokenCategory::EnumTokens. sapi: Introduce create_token_category helper in tts. sapi: Implement ISpeechVoice::GetVoices. sapi: Implement ISpeechVoice::GetTypeInfoCount. sapi: Implement ISpeechVoice::GetTypeInfo. sapi: Implement ISpeechVoice::GetIDsOfNames. sapi: Implement ISpeechVoice::Invoke.
Vijay Kiran Kamuju (1): include: Add msdelta header file.
Yuxuan Shui (6): dmband: Implement getting/setting GUID_BandParam on band tracks. dmime/tests: Add MIDI loading test. dmime: Parse MIDI headers. dmime: Don't skip chunk for MIDI files. dmime: Read through a MIDI file. dmime/tests: Improve error reporting from expect_track.
Zebediah Figura (32): urlmon/tests: Add basic tests for CoInternetParseUrl(PARSE_CANONICALIZE). shlwapi/tests: Move the UrlCanonicalize() tests into test_UrlCanonicalizeA(). shlwapi/tests: Remove the unused "wszExpectUrl" variable from check_url_canonicalize(). shlwapi/tests: Use winetest_push_context() in test_UrlCanonicalizeA(). shlwapi/tests: Move UrlCombine() error tests out of the loop. kernelbase: Do not use isalnum() with Unicode characters. kernelbase: Do not canonicalize the relative part in UrlCombine(). kernelbase: Reimplement UrlCanonicalize(). kernelbase: Use scheme_is_opaque() in UrlIs(). shlwapi/tests: Add many more tests for UrlCanonicalize(). dinput/tests: Return void from test_winmm_joystick(). wined3d: Merge shader_load_constants() into shader_select(). wined3d: Introduce a separate vp_disable() method. wined3d: Introduce a separate fp_disable() method. wined3d: Pass a wined3d_state pointer to the vp_enable() and fp_enable() methods. wined3d: Pass a non-const wined3d_context pointer to the FFP *_apply_draw_state() methods. wined3d/arb: Move fragment program compilation from fragment_prog_arbfp() to arbfp_apply_draw_state(). wined3d: Set the pipeline key viewport and scissor count at initialization. wined3d: Make the viewport state dynamic. wined3d: Make the scissor state dynamic. wined3d: Enable EXT_extended_dynamic_state. wined3d: Use dynamic state for depth/stencil state if possible. shell32: Remove two unused strings. shell32: Always use IContextMenu::InvokeCommand() when selecting an item from the context menu. shell32: Do not set the default menu item from ShellView_DoContextMenu(). shell32: Separate a get_filetype() helper. shell32: Properly implement context menu verbs. wined3d/arb: Move SPECULARENABLE constant loading to arbfp_apply_draw_state(). wined3d/arb: Move TEXTUREFACTOR constant loading to arbfp_apply_draw_state(). wined3d/arb: Move color key constant loading to arbfp_apply_draw_state(). wined3d/arb: Move texture constant loading to arbfp_apply_draw_state(). wined3d/arb: Move FFP bumpenv constant loading to arbfp_apply_draw_state().
Zhiyi Zhang (4): include: Rename DF_WINE_CREATE_DESKTOP to DF_WINE_VIRTUAL_DESKTOP. server: Inherit internal desktop flags when creating desktops. dsound/tests: Test that formats with more than two channels require WAVEFORMATEXTENSIBLE. dsound: Reject WAVEFORMATEX formats with more than two channels. ```