1 The Wine development release 9.8 is now available.
3 What's new in this release:
4 - Mono engine updated to version 9.1.0.
5 - IDL-generated files use fully interpreted stubs.
6 - Improved RPC/COM support on ARM platforms.
9 The source is available at <https://dl.winehq.org/wine/source/9.x/wine-9.8.tar.xz>
11 Binary packages for various distributions will be available
12 from <https://www.winehq.org/download>
14 You will find documentation on <https://www.winehq.org/documentation>
16 Wine is available thanks to the work of many people.
17 See the file [AUTHORS][1] for the complete list.
19 [1]: https://gitlab.winehq.org/wine/wine/-/raw/wine-9.8/AUTHORS
21 ----------------------------------------------------------------
23 ### Bugs fixed in 9.8 (total 22):
25 - #3689 Microsoft Office 97 installer depends on stdole32.tlb be in v1 (SLTG) format
26 - #33270 Cursor disappears during Installshield install
27 - #37885 Battle.net launcher fails to set permissions on WoW files
28 - #38142 Approach fields box only show 3/4 of one line
29 - #44388 gldriverquery.exe crash on wineboot and company of heroes says no 3d
30 - #45035 Buttons of the Radiosure program are missing
31 - #46455 Desktop syncing app for Remarkable devices crashes on startup
32 - #47741 Lotus Approach: Initial "Welcome" dialog not shown on startup
33 - #51361 SimSig with Wine 6.18 breaks after upgrading from libxml2 2.9.10 to 2.9.12
34 - #54997 msys2: gpg.exe fails because "NtSetInformationFile Unsupported class (65)" / FileRenameInformationEx
35 - #55736 Solid Edge crashes after a couple of minutes
36 - #55844 Paper tray options missing. Landscape orientation is ignored
37 - #56041 iZotope Product Portal crashes
38 - #56248 VTFEdit: Exception When Loading .VTF Files
39 - #56309 Across Lite doesn't show the letters properly when typing
40 - #56324 Falcon BMS launcher fails to start (native .Net 4.6.1 needed)
41 - #56407 SaveToGame hangs during DWM initialization
42 - #56472 Recettear opening movie blackscreen in Wine 9.5
43 - #56581 Corsair iCUE 4: needs unimplemented function SHELL32.dll.SHAssocEnumHandlersForProtocolByApplication
44 - #56598 Calling [vararg] method via ITypeLib without arguments via IDispatch fails
45 - #56599 HWMonitor 1.53 needs unimplemented function pdh.dll.PdhConnectMachineA
46 - #56609 vcrun2008 fails to install
48 ### Changes since 9.7:
51 msvcp140_atomic_wait: Implement __std_*_crt().
54 quartz/tests: Add tests to reject unsupported contents for MPEG splitter.
55 winegstreamer: Reject unexpected formats on init.
56 winegstreamer: Implement input media type enumeration in MPEG splitter.
59 setupapi: Don't set RequiredSize when SetupDiGetClassDescription* fails.
60 shell32: Add SHAssocEnumHandlersForProtocolByApplication stub.
61 pdh: Add PdhConnectMachineA stub.
63 Alexandre Julliard (57):
64 include: Update a couple of RPC structures.
65 rpcrt4: Add a wrapper for client calls from stubless proxies.
66 rpcrt4: Move the FPU register conversion to the stubless proxy wrapper.
67 rpcrt4: Remap registers to the stack for stubless proxies on ARM platforms.
68 rpcrt4: Stop passing the actual FPU regs pointer to client call functions.
69 rpcrt4: Remove obsolete version comments from spec file.
70 rpcrt4: Fix stack alignment and by-value parameters for typelibs on ARM platforms.
71 rpcrt4: Generate the parameter extension data for typelibs on ARM platforms.
72 rpcrt4: Extend 8- and 16-bit parameters on ARM.
73 oleaut32: Extend 8- and 16-bit parameters on ARM.
74 rpcrt4: Use fully interpreted IDL stubs.
75 rpcrt4/tests: Use fully interpreted IDL stubs.
76 schedsvc: Use fully interpreted IDL stubs.
77 schedsvc/tests: Use fully interpreted IDL stubs.
78 sechost: Use fully interpreted IDL stubs.
79 taskschd: Use fully interpreted IDL stubs.
80 ntoskrnl.exe: Use fully interpreted IDL stubs.
81 plugplay: Use fully interpreted IDL stubs.
82 rpcss: Use fully interpreted IDL stubs.
83 services: Use fully interpreted IDL stubs.
84 ntdll/tests: Remove unnecessary shared header.
85 dbghelp: Ignore a couple of Dwarf-3 opcodes.
86 oleaut32: Fix IDispatch::Invoke for vararg functions with empty varargs.
87 systeminfo: Pass proper Unicode strings to fwprintf.
88 avifil32: Use fully interpreted IDL stubs.
89 combase: Use fully interpreted IDL stubs.
90 dispex: Use fully interpreted IDL stubs.
91 ia2comproxy: Use fully interpreted IDL stubs.
92 ieproxy: Use fully interpreted IDL stubs.
93 mscftp: Use fully interpreted IDL stubs.
94 makefiles: Support building files for x86-64 architecture on ARM64EC.
95 rpcrt4: Move the stubless client thunks to a separate file.
96 rpcrt4: Move the stubless delegating thunks to a separate file.
97 rpcrt4: Move call_server_func() to a separate file.
98 msdaps: Use fully interpreted IDL stubs.
99 msi: Use fully interpreted IDL stubs.
100 mstask: Use fully interpreted IDL stubs.
101 netapi32: Use fully interpreted IDL stubs.
102 oleacc: Use fully interpreted IDL stubs.
103 sti: Use fully interpreted IDL stubs.
104 urlmon: Use fully interpreted IDL stubs.
105 windowscodecs: Use fully interpreted IDL stubs.
106 actxprxy: Use fully interpreted IDL stubs.
107 ole32: Use fully interpreted IDL stubs.
108 oleaut32: Use fully interpreted IDL stubs.
109 qmgrprxy: Use fully interpreted IDL stubs.
110 quartz: Use fully interpreted IDL stubs.
111 widl: Fix correlation offset for unencapsulated unions in interpreted mode.
112 widl: Default to fully interpreted stubs mode.
113 oleaut32: Move the call_method thunk to a separate file.
114 vcomp: Move the fork wrapper to a separate file.
115 vcomp: Fix stack alignment in the fork wrapper on ARM.
116 ntdll: Build __chkstk as x86-64 code on ARM64EC.
117 ntdll: Generate stub entry points as x86-64 code on ARM64EC.
118 faudio: Import upstream release 24.05.
119 fluidsynth: Import upstream release 2.3.5.
120 png: Import upstream release 1.6.43.
122 Alexandros Frantzis (9):
123 winex11.drv: Rename wgl_pixel_format to glx_pixel_format.
124 opengl32: Implement wglDescribePixelFormat using new driver API get_pixel_formats.
125 opengl32: Cache driver pixel format information.
126 winewayland.drv: Enable wglDescribePixelFormat through p_get_pixel_formats.
127 winex11.drv: Enable wglDescribePixelFormat through p_get_pixel_formats.
128 winex11.drv: Remove unnecessary parameter from describe_pixel_format.
129 winemac.drv: Enable wglDescribePixelFormat through p_get_pixel_formats.
130 wineandroid.drv: Rename wgl_pixel_format to avoid name conflicts.
131 wineandroid.drv: Enable wglDescribePixelFormat through p_get_pixel_formats.
134 include: Use the correct GUID for DXFILEOBJ_PatchMesh.
136 Alistair Leslie-Hughes (2):
137 include: Add atldef.h.
138 windowscodecs: Avoid implicit cast changing value.
141 user32/tests: Test that display settings are restored on process exit.
142 winex11.drv: Process RRNotify events in xrandr14_get_id.
143 explorer: Restore display settings on process exit.
146 winevulkan: Allocate commited memory for placed mappings.
149 winegstreamer: Pass uri to wg_parser when available.
150 winegstreamer: Respond to the URI query.
151 winegstreamer: Fix wow64 support for wg_parser_connect.
152 winegstreamer: Log query after setting the URI.
155 widl: Use hardcoded build time in TLB custom data.
156 winemac.drv: Fix use-after-free in macdrv_copy_pasteboard_types.
159 mfreadwrite: Store result of object activation in stream transform.
161 Dmitry Timoshkov (11):
162 widl: Make automatic dispid generation scheme better match what midl does.
163 widl: Create library block index right after the CompObj one.
164 widl: Set the lowest bit in the param name to indicate whether type description follows the name.
165 widl: Add support for function parameter flags to SLTG typelib generator.
166 widl: Fix calculation of the SLTG library block size.
167 stdole32.tlb: Generate typelib in SLTG format.
168 include: Add _Inout_cap_c_(count) macro.
169 include: Move InterlockedExchangeAdd64() definition before its first usage.
170 dssenh: Add CPSetKeyParam() stub implementation.
171 rsaenh: Validate pbData in CPSetKeyParam().
172 advapi32: CryptSetKeyParam() should accept NULL pbData.
175 mscoree: Update Wine Mono to 9.1.0.
176 user32/tests: Add a flag for messages incorrectly sent by Wine.
177 user32/tests: Remove a no-longer needed optional flag.
178 windowscodecs: Check for overflow in jpeg_decoder_initialize.
180 Etaash Mathamsetty (2):
181 user32: Fake success from RegisterTouchWindow.
182 user32: Fake success from UnregisterTouchWindow.
185 user32/tests: Check RegisterRawInputDevices RIDDEV_DEVNOTIFY posted messages.
186 win32u: Post device arrival messages in NtUserRegisterRawInputDevices.
189 winewayland.drv: Set wayland app-id from the process name.
190 winewayland.drv: Implement SetWindowText.
193 wintrust: Add support for the PE image hash in CryptCATAdminCalcHashFromFileHandle().
194 msi: Install global assemblies after install custom actions and before commit custom actions.
197 wined3d: Pass a shader_glsl_priv structure to shader_glsl_generate_fragment_shader().
198 wined3d: Pass a shader_glsl_priv structure to shader_glsl_generate_compute_shader().
199 wined3d: Introduce the "glsl-vkd3d" shader backend.
202 mshtml: Move iface_wrapper_t IUnknown implementation to htmlobject.c.
205 ntdll: Use termios2 for serial when possible.
208 wined3d: Rename WINED3DUSAGE_PRIVATE to WINED3DUSAGE_CS.
209 d3d9: Don't do instanced draws in DrawPrimitive() and DrawPrimitiveUP().
210 wined3d: Don't skip FFP projection transform update.
211 wined3d: Don't override texture parameters for COND_NP2 on multisample textures.
212 d3d9/tests: Skip test_sample_attached_rendertarget() without pixel shaders support.
213 wined3d: Conditionally support WINED3D_FRAGMENT_CAP_SRGB_WRITE on the ffp fragment pipe.
214 wined3d: Conditionally allow sRGB writes with the 'none' shader backend.
215 d3d9/tests: Don't create a vertex shader in test_desktop_window() when unsupported.
216 d3d9/tests: Test creating a texture on a NULL HWND device.
219 shell32/shellpath: Fix UserPinned and QuickLaunch KnownFolderPaths.
222 d2d1: Update to ID2D1Factory7.
223 d2d1: Update to ID2D1DeviceContext6.
224 d2d1: Update to ID2D1Device6.
225 d2d1: Implement newer CreateDeviceContext() methods.
228 ntdll: Remove entries from queue in RtlWakeAddressAll().
229 ntdll: Pre-check entry->addr before taking a spin lock in RtlWaitOnAddress().
230 crypt32: Mind constructor tag in CRYPT_AsnDecodeOCSPSignatureInfoCertEncoded().
231 cryptnet: Do not use InternetCombineUrlW() in build_request_url().
232 ntdll/tests: Add tests for CONTEXT_EXCEPTION_REQUEST.
233 ntdll: Set exception reporting flags in NtGetContextThread().
234 ntdll: Store exception reporting flags in server context.
235 ntdll: Store exception reporting flags on suspend.
236 ntdll: Store exception reporting flags for debug events.
237 winex11.drv: Support _SHIFT_ARB attributes in X11DRV_wglGetPixelFormatAttribivARB().
238 ntdll: Implement NtQuerySystemInformation(SystemProcessIdInformation).
239 msvcrt: Implement _mbsncpy_s[_l]().
242 wined3d: Added missing GTX 3080 & 1070M.
245 windowscodecs: Support 32-bit ABGR bitfields bitmaps.
246 winhttp: Fix parameters validation in WinHttpGetProxyForUrl.
247 msvcr80/tests: Fix errno access in tests.
248 winhttp: Use GlobalAlloc to allocate lpszProxy in WinHttpGetProxyForUrl.
251 wined3d: Added missing GTX 1650.
254 mfreadwrite/tests: Do not accept MFVideoFormat_RGB32 in the test transform.
255 mfreadwrite/tests: Avoid using MFCreateMediaBufferFromMediaType.
256 mfreadwrite/tests: Shutdown the test stream event queues on source shutdown.
257 mfreadwrite/reader: Avoid leaking the stream transform service MFT.
258 win32u: Introduce a distinct vulkan interface between win32u and the user drivers.
259 win32u: Introduce a new VkSurfaceKHR wrapping structure.
260 winevulkan: Pass win32u surface wrappers for each vkQueuePresent swapchain.
261 win32u: Rename vulkan surface creation/destroy driver callbacks.
262 win32u: Pass HWND directly to vulkan surface creation driver callback.
263 win32u: Move host surface destruction out of the drivers.
264 win32u: Destroy thread windows before calling driver ThreadDetach.
265 winegstreamer: Set other aperture attributes on video media types.
266 winegstreamer: Always set aperture attributes on video decoder output types.
267 winegstreamer: Introduce a new wg_transform_create_quartz helper.
268 winegstreamer: Use DMO_MEDIA_TYPE in the WMV decoder.
269 mf/tests: Use a separate field for buffer_desc image size and compare rect.
270 evr/tests: Sync compare_rgb32 / dump_rgb32 helpers with mf tests.
271 mfmediaengine/tests: Sync compare_rgb32 / dump_rgb32 helpers with mf tests.
272 winegstreamer/video_processor: Allow clearing input / output types.
273 mf/tests: Move the video processor input bitmap names to the test list.
274 mf/tests: Add more video processor tests with aperture changes.
275 mf/session: Introduce new (allocate|release)_output_samples helpers.
276 mf/session: Get session topo_node from their IMFTopologyNode directly.
277 mf/session: Introduce new session_get_topo_node_output helper.
278 mf/session: Introduce new session_get_topo_node_input helper.
279 mf/session: Wrap samples in IMFMediaEvent list instead of IMFSample list.
280 mf/session: Handle transform format changes and update downstream media types.
281 winex11: Report all sources as detached in virtual desktop mode.
282 win32u: Don't force refresh the display cache on thread desktop change.
283 winex11: Let win32u decide when to force update the display cache.
284 win32u: Introduce a new add_virtual_modes helper.
285 win32u: Return the host surface directly from vulkan_surface_create.
286 winewayland: Get rid of the now unnecessary surface wrapper.
287 win32u: Introduce a per-window vulkan surface list.
288 win32u: Move thread detach from winex11.
289 winex11: Remove now unnecessary surface wrapper struct.
290 win32u: Fix list corruption in vulkan_detach_surfaces.
291 win32u: Remove now unnecessary rawinput_device_get_usages.
292 win32u: Use find_device_from_handle in process_rawinput_message.
293 win32u: Move rawinput device cache ticks check to rawinput_update_device_list.
294 winex11: Don't call x11drv_xinput2_disable for foreign windows.
295 winex11: Remove duplicated foreign window class string constant.
296 winex11: Avoid leaking foreign window data if it was already created.
297 mfreawrite/tests: Allow MF_E_SHUTDOWN result in test stream RequestSample.
298 mf/tests: Add broken result for older Windows.
301 setupapi/tests: Add tests for reading INF class with %strkey% tokens.
302 setupapi: Use INF parser to read class GUID and class name.
305 shell32: Fix a trace log message.
306 shell32: Use full path to current directory for finding executables.
307 shell32: Restore the ability of running native unix programs with ShellExecute.
310 kernelbase: Do not start the debugger if SEM_NOGPFAULTERRORBOX is set.
313 win32u: Set the virtual desktop display frequency to 60Hz.
316 winegstreamer: Merge video_cinepak into video field.
317 winegstreamer: Merge video_h264 into video field.
318 winegstreamer: Merge video_wmv into video field.
319 winegstreamer: Merge video_indeo into video field.
320 winegstreamer: Merge video_mpeg1 into video field.
321 winegstreamer: Implement mf_media_type_to_wg_format_video_wmv.
322 winegstreamer/video_decoder: Set input/output infos in h264_decoder_create.
323 winegstreamer/video_decoder: Change decoder attributes.
324 winegstreamer/video_decoder: Add wg_transform_attrs member.
325 winegstreamer/video_decoder: Support aggregation.
326 winegstreamer/video_decoder: Use video_decoder to implement wmv decoder.