Release 1.9.5

Wine Staging Team - Tue, 8 Mar 2016

Time for another release - Wine Staging 1.9.5 is now available. This version improves the compatibility with MSYS and with various older games.

In continuation of our effort in the last version, this Wine Staging release adds a bunch of improvements mainly useful for older games and applications. Although probably not interesting for everyone, we improved the compatibility with Windows 95/98/ME in order to run software targeting these Windows versions. This includes miming the behavior of older Windows versions more correctly when selecting them in winecfg. So don't forget to alter the settings accordingly before trying out older games.

Besides some improvements for MSYS, this release also implements various additional functions in Wines setupapi.dll. Various fixes in preparation for loading multiple drivers into a single process, a ntoskrnl.exe bug which has been in Wine for a very long time, have already been accepted upstream and are not separately listed below. This is ongoing work though, so hopefully the next release will support loading multiple drivers into the same address space, making it possible to implement layered drivers as a next step.

Here is a list of all changes, without those which already have been accepted upstream:

  • Return ERROR_FILE_NOT_FOUND for Win 9X when a file was not found in GetFileVersionInfoSizeEx (DAO 3.5)
  • Correctly return VFF_CURNEDEST flag in VerFindFileA (JCS: IAF)
  • Fix parsing of inf files containing garbage at the beginning of file (DAO 3.5)
  • Properly set ddsOldCaps field in ddraw7_GetCaps
  • Fix handling of DDL_DRIVES flag in user.exe16.DlgDirList (Wine Bug #18734)
  • Do not reassign default handles after they got closed (Mordor, Wine Bug #19184)
  • setupapi DelReg should recursively delete registry keys (Wine Bug #13548)
  • Add implementation for setupapi.SetupAddToDiskSpaceListA/W (DAO 3.5)
  • Add implementation for setupapi.SetupQueryDrivesInDiskSpaceListA/W (DAO 3.5)
  • Add implementation for setupapi.SetupAdd{Install}SectionToDiskSpaceListA/W (DAO 3.5)
  • Avoid generating Makefiles for disabled rules (Wine Bug #40253)
  • Assign random name when trying to create Window Station without name (MSYS)
  • Translate all invalid console handles into usable DOS handles (NFS3 autorun, Wine Bug #7106)
  • Reserve some more stack space in call_thread_func_wrapper (Wine Bug #40068)
  • Fix implementation of compobj.dll16.StringFromGUID2 function
  • Accept d3d1 and d3d2 versions of D3DFINDDEVICERESULT in IDirect3D_FindDevice (Carmageddon 2)
  • Do not crash in Win 9X mode when an invalid device ptr is passed to MCI_OPEN
  • Set ERROR_DLL_NOT_FOUND as error code for Win 9X instead of ERROR_MOD_NOT_FOUND in load_library (The Fifth Element)
  • Replicate Windows behavior of WM_SETTEXT handler regarding WM_CTLCOLOR* messages (SonicStage 3/4, Wine Bug #25790)
  • Fix handling of WM_NOTIFY messages in PostThreadMessage (Wine Bug #40244)
  • Announce WMP 12 as installed Windows feature (iCloud)
  • Check for invalid filename pointers in CreateFileA in Win 9x mode (Test Drive 5)
  • Add missing resources for IE6 buttons (Wine Bug #40236)
  • Fix multiple issues in mmsystem.dll16 when translating MIDI messages (Prosound, Wine Bug #40024)
  • Implement emulation of GDT and LDT access in Win98 mode (Nuclear Strike, Wine Bug #30237)
  • Set DSCAPS_CERTIFIED flags in dsound (Small Soldiers)