1 The Wine development release 9.9 is now available.
3 What's new in this release:
4 - Support for new Wow64 mode in ODBC.
5 - Improved CPU detection on ARM platforms.
6 - Removal of a number of obsolete features in WineD3D.
9 The source is available at <https://dl.winehq.org/wine/source/9.x/wine-9.9.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.9/AUTHORS
21 ----------------------------------------------------------------
23 ### Bugs fixed in 9.9 (total 38):
25 - #25009 Password Memory 2010 - Titlebar color rendering error
26 - #26407 Shadowgrounds Survivor crashes after viewing the map
27 - #26545 Crysis2: Red color on highlights of Bumpmap/Specular Highlights
28 - #27745 Racer is unplayable
29 - #28192 regedit: The usage message arrives too late in the wine console
30 - #29417 Mouse pointer laggy/slow in Dweebs and Dweebs 2 when virtual desktop mode is enabled
31 - #31665 Femap unexpected crash on rebuild database (or any command that involves it i.e. import)
32 - #32346 Window is too large with Batman and Head Over Heels remakes
33 - #39532 Assassin's Creed Unity doesn't run
34 - #40248 Some .NET applications throw unhandled exception: System.NotImplementedException: 'System.Management.ManagementObjectSearcher.Get' when using Wine-Mono
35 - #44009 Syberia Gog version: crash after cinematics
36 - #44625 Cybernoid 2 exits but x window drawing updates are frozen
37 - #44863 Performance regression in Prince of Persia 3D
38 - #45358 Assassin's Creed Syndicate (AC Unity; AC Odyssey) broken graphics
39 - #49674 Feature Request: Restoring previous resolution upon an app crashing
40 - #51200 High repaint label volume causes freezing
41 - #53197 Total War: Shogun 2 crashes on unimplemented function d3dx11_42.dll.D3DX11LoadTextureFromTexture
42 - #55513 Paint.NET 3.5.11 runs unstable on Wine 8.x (and later) because of a bug in Mono
43 - #55939 Moorhuhn Director's Cut crashes after going in-game
44 - #56000 Window title is not set with winewayland
45 - #56422 Exact Audio Copy installer crashes
46 - #56429 Applications crash with BadWindow X error
47 - #56483 ShellExecute changes in Wine 9.5 broke 64-bit Winelib loading in WoW64 builds
48 - #56485 Visual novel RE:D Cherish! displays white screen instead of logo video
49 - #56492 Opentrack/TrackIR head tracking broken
50 - #56498 Incorrect substring expansion for magic variables
51 - #56506 strmbase TRACEs occasionally fail to print floats
52 - #56527 Final Fantasy XI Online: Opening movie triggers a 'GStreamer-Video-CRITICAL'.
53 - #56579 Setupapi fails to read correct class GUID and name from INF file containing %strkey% tokens
54 - #56588 FlatOut 1 display resolution options limited to current desktop resolution using old wow64
55 - #56595 Fallout 3 is slow
56 - #56607 steam: no tray icon starting with wine 9.2
57 - #56615 Spelunky won't start (GLSL version 1.20 is too low; 1.20 is required)
58 - #56653 GetLogicalProcessorInformation can be missing Cache information
59 - #56655 X11 Driver fails to load
60 - #56661 Project Diablo 2 crashes
61 - #56671 Disney Ratatouille demo renders upside down on Intel graphics
62 - #56682 msvcrt:locale prevents the msvcrt:* tests from running on Windows 7
64 ### Changes since 9.8:
67 quartz/tests: Test read position after MPEG splitter connection.
68 winegstreamer: Seek to the end after MPEG splitter connection.
71 dinput: Don't include every version of DirectInputCreate in every DLL.
73 Alexandre Julliard (38):
74 nls: Update locale data to CLDR version 45.
75 winedump: Dump registry scripts resources as text.
76 winedump: Dump typelib resources in structured format.
77 atl: Remove empty clsid registration.
78 dhtmled.ocx: Remove empty clsid registration.
79 widl: Don't generate empty interface registrations.
80 ntdll: Use null-terminated strings instead of explicit lengths to build SMBIOS data.
81 ntdll: Cache the generated SMBIOS data.
82 ntdll: Build the SMBIOS table incrementally.
83 ntdll: Generate dummy SMBIOS data on non-supported platforms.
84 ntdll: Store the CPU vendor and id during detection.
85 ntdll: Add processor information to the SMBIOS data.
86 configure: Restore warning for missing PE compiler.
87 ntdll: Report the correct processor details on ARM platforms.
88 ntdll: Update PROCESSOR_ARCHITECTURE variable correctly for ARM platforms.
89 wineboot: Create CPU environment keys together with other hardware keys.
90 wineboot: Get the CPU model details with NtQuerySystemInformation(SystemCpuInformation).
91 wineboot: Report the correct model number on ARM platforms.
92 wineboot: Support multiple SMBIOS entries of the same type.
93 wineboot: Retrieve CPU details through the SMBIOS table.
94 winemac.drv: Remove some no longer used code.
95 wbemprox: Get the processor caption from the registry.
96 wbemprox: Support multiple SMBIOS entries of the same type.
97 wbemprox: Get the processor manufacturer from the SMBIOS table.
98 wbemprox: Get the processor name from the SMBIOS table.
99 wbemprox: Get the processor count from the SMBIOS table.
100 wbemprox: Get the processor id from the SMBIOS table.
101 wbemprox: Get a few more processor details from the SMBIOS table.
102 wbemprox: Get the processor type and model with SystemCpuInformation.
103 wbemprox: Use RtlGetNativeSystemInformation directly to get the correct info on ARM platforms.
104 msvcrt/tests: Don't link to _setmaxstdio.
105 msvcrt: Update some mangled names on ARM.
106 ntdll: Add default values for cache parameters.
107 msvcrt: Resync cxx.h with msvcp90.
108 msvcrt: Unify __CppXcptFilter implementations.
109 msvcrt: Unify __CxxQueryExceptionSize implementations.
110 msvcrt: Unify __CxxDetectRethrow implementations.
111 msvcrt: Unify checks for valid C++ exception.
113 Alexandros Frantzis (3):
114 win32u: Enable dibdrv wglDescribePixelFormat through p_get_pixel_formats.
115 user32/tests: Skip affected keyboard tests if a spurious layout change is detected.
116 user32/tests: Remove workaround for SendInput keyboard tests on zh_CN.
118 Alistair Leslie-Hughes (1):
119 include: Add some D3D12_FEATURE_DATA_D3D12_OPTIONS* types.
122 winegstreamer: Recognize MFAudioFormat_MPEG and MFAudioFormat_MP3.
123 winegstreamer: Add missing format fields to WMA support check.
126 ntdll: Allocate wow64 environment block within the 32-bit address space.
127 ntdll: Don't restore PC from LR after unwinding through frame switches.
130 include: Avoid a C++ keyword.
133 winex11.drv: Increment mode_idx in {xrandr10,xf86vm}_get_modes.
134 winegstreamer: Pass filename to wg_parser when available.
135 mplat/tests: Test Media Source is freed if immediately released.
138 winemac.drv: Fix warning in macdrv_get_pixel_formats.
141 d3dx9/tests: Add a test for negative values in the source rectangle passed to D3DXLoadSurfaceFromMemory.
142 d3dx9/tests: Add a new compressed surface loading test.
143 d3dx9: Only do direct copies of full blocks for compressed formats.
144 d3dx9: Fix destination rectangles passed from D3DXLoadSurfaceFromMemory() to d3dx_load_image_from_memory().
147 msvcrt/tests: Add result for Turkish_Türkiye.1254.
148 msvcrt/tests: Add tests for _wcsicmp_l.
150 Dmitry Timoshkov (2):
151 kernelbase: Add support for FileDispositionInfoEx to SetFileInformationByHandle().
152 user32/tests: Offset child CS_PARENTDC window from parent to make more bugs visible.
154 Elizabeth Figura (38):
155 wined3d: Retrieve the VkCommandBuffer from wined3d_context_vk after executing RTV barriers.
156 wined3d: Submit command buffers after 512 draw or dispatch commands.
157 ddraw: Use system memory for version 4 vertex buffers.
158 ddraw: Upload only the used range of indices in d3d_device7_DrawIndexedPrimitive().
159 ddraw/tests: Test GetVertexBufferDesc().
160 wined3d: Fix GLSL version comparison.
161 maintainers: Change the full form of my name.
162 wined3d: Remove the offscreen_rendering_mode setting.
163 wined3d: Use wined3d_resource_is_offscreen() directly in ffp_blitter_clear_rendertargets().
164 wined3d: Remove no longer used support for drawing to an onscreen render target.
165 wined3d: Remove the no longer used render_offscreen field from struct ds_compile_args.
166 wined3d: Remove the no longer used Y correction variable.
167 d3d9/tests: Clarify and expand point size tests.
168 d3d9/tests: Expand test_color_vertex().
169 d3d9/tests: Add some tests for default diffuse values.
170 d3d9/tests: Test default attribute components.
171 wined3d: Remove the GL FFP vertex pipeline.
172 wined3d: Remove the GL FFP fragment pipeline.
173 wined3d: Remove the NV_register_combiners fragment pipeline.
174 wined3d: Remove the ATI_fragment_shader fragment pipeline.
175 wined3d: Remove the ARB_fragment_program blitter.
176 wined3d: Remove the ARB fragment pipeline.
177 wined3d: Remove the ARB shader backend.
178 amstream: Link to msvcrt instead of ucrtbase.
179 evr: Link to msvcrt instead of ucrtbase.
180 qasf: Link to msvcrt instead of ucrtbase.
181 qcap: Link to msvcrt instead of ucrtbase.
182 qdvd: Link to msvcrt instead of ucrtbase.
183 qedit: Link to msvcrt instead of ucrtbase.
184 quartz: Link to msvcrt instead of ucrtbase.
185 winegstreamer: Link to msvcrt instead of ucrtbase.
186 wined3d: Remove no longer used support for emulated non-power-of-two textures.
187 wined3d: Remove no longer used support for rectangle textures.
188 wined3d: Remove texture non-power-of-two fixup.
189 wined3d: Remove the last vestiges of ARB_texture_rectangle support.
190 wined3d: Collapse together NPOT d3d_info flags.
191 wined3d: Remove the redundant "pow2_width" and "pow2_height" fields.
192 wined3d: Fix inversion in shader_get_position_fixup().
195 cmd/tests: Test using %%0-%%9 as loop variables.
196 cmd/tests: Test nested loop variables expansion.
197 cmd/tests: Test delayed expansion with spaces in IF and FOR.
198 cmd/tests: Test calling batch files named as builtin commands.
199 cmd/tests: Test success/failure of commands.
200 cmd: Consistenly use the same variable to identify current command.
201 cmd: No longer keep track of last element in command list.
202 cmd: Introduce xrealloc helper.
203 cmd: Use CRT's popen instead of rewriting it.
204 cmd: Remove malloc attribute from xrealloc.
205 cmd: Introduce CMD_NODE structure.
206 cmd: Add helpers to handle list in degenerated binary tree.
207 cmd: Move operator from CMD_COMMAND to CMD_NODE.
208 msvcrt: Demangle std::nullptr_t datatype.
209 winedump: Demangle std::nullptr_t datatype.
210 msvcrt: Don't consider end of list encoding as real data types.
211 winedump: Don't consider end of list encoding as real data types.
212 msvcrt: Correctly unmangle qualified pointer to function/method.
213 winedump: Correctly unmangle qualified pointer to function/method.
216 gdiplus: Add a function to bracket HDC use.
217 gdiplus: Bracket HDC use in gdi_alpha_blend.
218 gdiplus: Bracket HDC use in alpha_blend_pixels_hrgn.
219 gdiplus: Bracket hdc use in brush_fill_path.
220 gdiplus: Bracket HDC use in draw_cap.
221 gdiplus: Bracket HDC use in draw_poly.
222 gdiplus: Bracket HDC use in trace_path.
223 gdiplus: Do not use hdc directly in get_graphics_bounds.
224 gdiplus: Accept an HDC in get_gdi_transform.
225 gdiplus: Fix background key.
226 gdiplus: Bitmap stride is ignored when Scan0 is non-NULL.
227 gdiplus: Support anchors on thin paths.
228 gdiplus: Remove unnecessary math in add_anchor.
229 gdiplus: Fix signs on custom line cap rotation in add_anchor.
230 gdiplus: Reorder filled arrow cap points to match native.
231 gdiplus: Add a test for GdipWidenPath with Custom linecaps.
232 gdiplus: Do not create gdi32 objects for Bitmap objects.
233 gdiplus: Bracket HDC use in GdipDrawImagePointsRect.
234 gdiplus: Bracket HDC use in GDI32_GdipFillPath.
235 gdiplus: Bracket HDC use in GDI32_GdipFillRegion.
238 win32u: Factor out scroll timer handling.
239 win32u: Only set scroll timer if it's not running.
241 Fotios Valasiadis (1):
242 ntdll/unix: Fix building on musl by explicitly including asm/ioctls.h.
245 winevulkan: Update to VK spec version 1.3.285.
248 odbc32: Forward SQLDataSourcesA() to SQLDataSources() and GetDiagRecA() to GetDiagRec().
249 odbc32: Make Unix call parameters Wow64 compatible.
250 odbc32: Load_odbc() returns NTSTATUS.
251 odbc32: Move replication of ODBC settings to the Unix lib.
252 odbc32: Add Wow64 thunks.
253 include: Add missing Unicode SQL function declarations.
254 odbc32: Don't load libodbc.so dynamically.
255 odbc32/tests: Add tests.
258 po: Add a missing \t in the Simplified Chinese translation.
260 Huw D. M. Davies (3):
261 nsi/tests: Use NSI_IP_COMPARTMENT_TABLE instead of hard coding the integer.
262 mmdevapi: Remove unused ACImpl typedef.
263 maintainers: Remove Andrew Eikum.
266 winecrt0: Support __os_arm64x_dispatch_call symbol on ARM64EC.
267 d3dx9/tests: Remove xfile dumping functionality.
268 mshtml: Introduce DISPEX_IDISPATCH_IMPL.
269 mshtml: Use DISPEX_IDISPATCH_IMPL macro in htmlnode.c.
270 mshtml: Use DISPEX_IDISPATCH_IMPL macro in htmlbody.c.
271 mshtml: Use DISPEX_IDISPATCH_IMPL in htmlanchor.c.
272 mshtml: Use DISPEX_IDISPATCH_IMPL in htmlarea.c.
273 mshtml: Use DISPEX_IDISPATCH_IMPL in htmlattribute.c.
274 mshtml: Use DISPEX_IDISPATCH_IMPL in htmlcomment.c.
275 mshtml: Use DISPEX_IDISPATCH_IMPL in htmlcurstyle.c.
276 mshtml: Use DISPEX_IDISPATCH_IMPL for DocumentType object implementation.
277 winebuild: Use .drectve section for exports on ARM64EC.
278 mshtml: Use DISPEX_IDISPATCH_IMPL for HTMLElement object implementation.
279 mshtml: Use DISPEX_IDISPATCH_IMPL macro in htmlelem.c.
280 mshtml: Use DISPEX_IDISPATCH_IMPL macro in htmlelemcol.c.
281 mshtml: Use DISPEX_IDISPATCH_IMPL for HTMLEventObj object implementation.
282 mshtml: Use DISPEX_IDISPATCH_IMPL macro in htmlevent.c.
283 mshtml: Use DISPEX_IDISPATCH_IMPL macro in htmlform.c.
284 mshtml: Use DISPEX_IDISPATCH_IMPL macro in htmlframe.c.
285 mshtml: Use DISPEX_IDISPATCH_IMPL macro in htmlgeneric.c.
286 mshtml: Use DISPEX_IDISPATCH_IMPL macro in htmlhead.c.
287 mshtml: Use DISPEX_IDISPATCH_IMPL macro in htmlimg.c.
288 mshtml: Use DISPEX_IDISPATCH_IMPL macro in htmlinput.c.
289 mshtml: Use DISPEX_IDISPATCH_IMPL macro in htmllink.c.
290 mshtml: Use DISPEX_IDISPATCH_IMPL macro in htmllocation.c.
293 d2d1/tests: Add a test for effect output image interface query.
294 d2d1/effect: Fix GetImageLocalBounds() prototype.
295 d2d1/tests: Add some vertex buffer tests.
296 d2d1/effect: Use more generic naming for loaded shaders array.
297 d2d1/effect: Add a stub vertex buffer object.
298 d2d1/effect: Implement SetPassthroughGraph().
299 d2d1/effect: Implement ConnectNode().
302 xaudio2: Use FAudioVoice_DestroyVoiceSafeEXT() in destroy_voice().
303 bcrypt: Support RSA/PKCS1 signatures with unspecified hash algorithm.
304 win32u: Update last message time in NtUserGetRawInputBuffer().
305 ntdll: Allocate crit section debug info by default for Windows versions before 8.
306 opengl32: Prefer formats with depth if unspecified in wglChoosePixelFormat().
307 xaudio2/tests: Fix test failures with xaudio2_8 in test_submix().
308 nsiproxy.sys: Return success and zero count from ipv6_forward_enumerate_all() if IPV6 is unsupported.
311 ucrtbase: Handle empty list in variadic template.
312 winedump: Handle empty list in variadic template.
313 msvcrt/tests: Don't link to _wcsicmp_l and _create_locale.
314 ntdll: Don't use gmtime concurrently.
317 winex11: Only request display modes driver data when needed.
318 win32u: Read / write source modes as a single registry blob.
319 win32u: Remove now unnecessary reset_display_manager_ctx.
320 win32u: Use struct pci_id in struct gdi_gpu.
321 win32u: Remove driver-specific id from struct gdi_gpu.
322 win32u: Pass gdi_gpu structure members as add_gpu parameters.
323 win32u: Return STATUS_ALREADY_COMPLETE from UpdateDisplayDevices.
324 mfreadwrite/tests: Add some source reader D3D11 awareness tests.
325 mf/tests: Test video processor D3D11 awareness.
326 winegstreamer/video_processor: Implement D3D awareness.
327 mfreadwrite/reader: Pass the device manager to the stream transforms.
328 winegstreamer: Introduce a new wg_transform_create_mf helper.
329 winegstreamer: Introduce a new check_audio_transform_support helper.
330 winegstreamer: Introduce a new check_video_transform_support helper.
331 mfplat: Fix MFCreateMFVideoFormatFromMFMediaType videoInfo.VideoFlags masks.
332 mfplat: Use IMFMediaType_GetBlobSize instead of IMFMediaType_GetBlob.
333 mfplat: Introduce a new init_video_info_header helper.
334 mfplat: Use media_type_get_uint32 in more places.
335 mfplat: Factor AM_MEDIA_TYPE video format allocation.
336 mfplat: Set AM_MEDIA_TYPE bTemporalCompression and bFixedSizeSamples.
337 mfplat: Implement FORMAT_MPEGVideo for MFInitAMMediaTypeFromMFMediaType.
338 mfplat: Implement FORMAT_MPEG2Video for MFInitAMMediaTypeFromMFMediaType.
339 mfplat: Implement MFInitMediaTypeFromMPEG1VideoInfo.
340 mfplat: Implement MFInitMediaTypeFromMPEG2VideoInfo.
341 mfplat: Implement MFCreateVideoMediaType.
342 winebus: Don't advertise hidraw devices as XInput compatible.
343 winebus: Report whether devices are connected over bluetooth.
344 winebus: Move Sony controllers report fixups to PE side.
345 mfreadwrite/reader: Shutdown the queue when public ref is released.
346 mfplat: Add MFVideoFormat_ABGR32 format information.
347 mf/tests: Add video processor tests with MFVideoFormat_ABGR32 format.
348 mfreadwrite/tests: Add tests with MFVideoFormat_ABGR32 output format.
349 winegstreamer: Support MFVideoFormat_ABGR32 output in the video processor.
350 mfreadwrite/reader: Fixup MFVideoFormat_ABGR32 subtype to enumerate the video processor.
351 win32u: Set DEVMODEW dmSize field.
352 wineandroid: Set DEVMODEW dmSize field.
353 winemac: Set DEVMODEW dmSize field.
356 mountmgr.sys: Do not create drive letters or volumes for unbrowsable macOS volumes.
357 mountmgr.sys: Do not add drive letters or volumes for macOS volumes without mount paths.
358 winemac.drv: Document mode_is_preferred.
359 winemac.drv: Prefer display modes that are marked as usable for desktop.
360 winemac.drv: Do not consider the "valid" and "safe" flags as making a display mode unique.
361 Revert "winemac.drv: Hide app's dock icon when it wouldn't have a taskbar item on Windows.".
362 winemac.drv: Exclude dictation when looking for input methods.
365 rtworkq: Avoid use-after-free.
366 mfplat/tests: Validate MFCancelWorkItem releases the callback.
367 rtworkq: Release cancelled work items.
370 winegstreamer/video_decoder: Make output_plane_align specific to h264.