DxWnd Changelog

What's new in DxWnd 2.06.03 Beta

Mar 10, 2024
  • mod: [advapi.cpp] replaced log text "ERROR_SUCCESS" with "SUCCESS" to simplify the search for errors in the logs
  • add: [comvsound.cpp comvsound.h dsound.cpp ole32.cpp] added BYPASSDSOUND flag for DirectSound bypass feature
  • fix: [createproc.cpp] added missing fake Device handling in CreateProcessA/W wrappers
  • add: [dinput.cpp] added experimental PACKMOUSEDATA flag for DirectInput mouse control
  • fix: [dshow.cpp ole32.cpp] fixed and enhanced DirectShow wrappers
  • fix: [dsound.cpp ole32.cpp] fixed missing DirectSound8 wrappers, optimized logging functions
  • fix: [dumptext.cpp] added filtering for duplicated text dumps
  • add: [dhhook.cpp] added WINAUTOREPAINT flag to keep refreshing the window image. Fixes "Sangokushi Koumeiden".
  • fix: [dxwcore.cpp] avoid erasing WM_QUIT message during Message pump filtering. Needed for "Wacky races"
  • mod: [excepthandler.cpp] added IP register in exception log messages
  • fix: [gdi32.cpp] deleted the SelectClipPath trap wrom the wrapper
  • add: [guids.cpp] added even more GUIDs decoders
  • fix: [kernel32.cpp] fixed original pointers to GetLogicalDrives, GetVolumeInfoA/W, GetLogicalDriveStringsA/W and FindFirst/NextFileA/W functions
  • fix: [kernel32.cpp] added fake implementation of deleted RegisterServiceProcess function. Fixes "Abbie 2.2.0"
  • fix: [mciwrapper.cpp] ignored leading spaces in the MciSendString string argument
  • fix: [msvcrt.cpp] added missing wrappers for __lc_codepage, _mbclen, mblen functions for locale handling
  • add: [user32.cpp] added experimental SetDlgItemTextA/W wrappers for locale handling
  • fix: [user32.cpp] rearranged hook tables to ensure hooking about TEXTDUMP feature
  • add: [user32.cpp xbox2kbd.cpp] added XBOX2KEYBOARD XBox360 to Keyboard mapper
  • fix: [user32.cpp] tentative fix for message processing locale translation. Needed for "Her Knights"
  • fix: [user32.cpp] tentative fix for CreateDialogIndirectParamA and MessageBoxA wrappers
  • fix: [winmm.cpp] handling of NULL lpFileName field in mmioOpenA wrapper. Fixes "First Queen 1"
  • fix: [winmm.cpp] added locale handling to sndPlaySndA wrapper
  • fix: [winproc.cpp CDChargerDialog.cpp] added WM_DEVICECHANGE message in handling of multi-volume fake-CD handling. Needed for "Druuna Morbus Gravis"
  • fix: [wlocale.cpp] fixed handling of WN_CREATE, WM_NCCREATE messages for locale translation
  • add: [TabLocale.cpp] added locale presets
  • fix: [ExportDump.cpp ExportFinder.cpp] fixed ExportDump and ExportFinder tools to consider the added new flags

New in DxWnd 2.06.02 Beta (Jan 23, 2024)

  • Add: [comctl32.cpp] added wrappers for PropertySheetA/W calls to suspend UNNOTIFY on dialogs
  • Add: [dxwcore.cpp dxwcore.hpp GUI] added OUTVGA log topic
  • Fix: [dxwnd.cpp] wixed WindowHook path comparison logic
  • Fix: [excepthandler.cpp] fixed VGA port interrupts
  • Add: [gdi32.cpp] tentative fix for PlayEnhMetaFile wrapper
  • Add: [kernel32.cpp] initial implementation for HIDECDROMREAL flag
  • Fix: [user32.cpp] suspended UNNOTIFY on dialogs
  • Fix: [kernel32.cpp] added tentative path locale handling to _lopen and _lcreat system calls

New in DxWnd 2.06.01 Beta (Jan 8, 2024)

  • fix: [cpulimit.cpp createproc.cpp kernel32.cpp] fixed IgnoreScheduler shim emulation
  • fix: [ddraw.cpp opengl.cpp] fixed hot-patch hooking using a final commit
  • fix: [ddraw.cpp] fixed flipchain handling when backbuffer surfaces are added at later time (fixes "Alchemist")
  • add: [dinput.cpp, GUI] added tracking of dinput mouse position
  • add: [dinput.cpp] added SHAREDMOUSE flaf, needed for "Poska Goola"
  • add: [dxhook.c xbox2kbd] added XBOX2KEYBOARD key remapper
  • add: [dxwcore.cpp] more error logging in mixer emulation
  • add: [kernel32.cpp] added CDHACK flag
  • fix: [hd3d.cpp] proper cursor position scaling in IDirect3DDevice8/9 cursor methods
  • fix: [kernel32.cpp] fixed directory attributes in Win95 emulation
  • fix: [kernel32.cpp] handling of LoadLibrary calls on files in fake devices
  • fix: [kernel32.cpp] fixed bugged DISABLEDELETE flag condition
  • add: [kernel32.cpp] added wrappers for FindFirstFileExA/W calls
  • add: [mciwrapper.cpp] improved logging
  • fix: [mciwrapper.cpp] fixed id reservation for widechar mci calls
  • fix: [mciwrapper.cpp] handling of MCI_WHERE and MCI_PUT messages for video stretching
  • fix: [msvcrt.cpp] fixed bugged log message potentially throwing exceptions
  • add: [msvfw.cpp] added video stretching handling in drawDibDraw wrapper
  • add: [sdl.cpp] added tracing wrappers for SDL_SetWindowGrab SDL_SetWindowResizeable SDL_SetRelativeMouseMode
  • add: [shell32.cpp] added tracing wrappers for IsDirty, Save and SaveCompleted methods
  • fix: [user32.cpp] fixed (again) SetTopWindow wrapper. Needed to run "Monopoly Junior"
  • add: [user32.cpp] added tracing #ifdef-ed wrappers for Get/SetPropA/W calls

New in DxWnd 2.06.00 Beta (Nov 20, 2023)

  • add: [tools/cdinfo] added cdinfo tool
  • fix: [*.cpp] revised logging mechanism, added OLE/COM topic
  • add: [comctl32.cpp dxhelper.cpp] added ifdef-ed tracing wrappers for all FlatSB calls
  • fix: [dibdump.cpp] revised (much faster) DIB dump routine
  • fix: [dinput.cpp] revised error handling in DirectInput SetCooperativeLevel for mause device. Fixes "Gangsters 2"
  • fix: [dshow.cpp] handling of "Stretch movies" option in DirectShow IVideoWindow movies
  • add: [excepthandler.cpp] added run-time DEP suppression in exception handler
  • add: [gdi32] added SwapBuffers and Set/GetBrushOrgEx proxy
  • add: [guids.cpp] added some DirectSound guids
  • add: [int3hdlr.cpp] added Pentium III declaration (FAKEPENTIUM3 flag)
  • add: [kernel32.cpp] added FindFirst/NextFileW wrappers
  • add: [kernel32.cpp] added GetDiskFreeSpaceExA/W wrappers
  • add: [kernel32.cpp] added HIDEDIRECTDRAW handling
  • add: [mciwrapper.cpp] added mcihack handling to mciSendString calls
  • fix: [mciwrapper.cpp] improved movie handling through mciSendString
  • fix: [mciwrapper.cpp] fixed log of returned value for mciSendString "status" command
  • add: [opengl.cpp] added COMPENSATEOGLCOPY flag to compensate double scaling when textures are copied from screen. Fixes "Scratches" gamma ramp option.
  • add: [user32.cpp] added DrawFocusRect and DrawFrameControl wrappers for stretched mode scaling
  • add: [wintrust.cpp] added WinVerifyTrustEx tracing wrapper

New in DxWnd 2.05.99 Beta (Oct 6, 2023)

  • fix: [advapi.cpp] handling of root keys in virtual registry
  • add: [ddraw.cpp] added ZBUFONSYSMEMORY flag
  • fix: [dibdump.cpp] fixed DIB dump routine
  • add: [dinput.cpp] added some log messages
  • add: [dshow.cpp ole32.cpp] added preliminary DirectShow hooking
  • add: [dxwcore.cpp] added FIXMOUSEBIASX/Y flags
  • fix: [gdi32.cpp] fixed ExtTextOutA/W wrappers, needed for MDickie games
  • fix: [gdi32.cpp] suppression of DIB compression if not supported in CreateDIBSection wrapper
  • add: [guids.cpp] added more GUIDs values
  • fix: [mciwrapper.cpp] improved generation of unique mci device Id
  • fix: [mciwrapper.cpp] fix: MCI_SYSINFO message must work also when the mci session is closed
  • add: [opengl.cpp] added more ifdef-ed tracing wrappers
  • fix: [user32.cpp] deleted duplicated hook for SetCursor
  • fix: [user32.cpp] fixed GetTopWindow wrapper
  • fix: [user32.cpp] deleted dangerous log instruction in EndDialog wrapper, potentially crashing the program
  • add: [GUI] fixed tabbed input control

New in DxWnd 2.05.98 Beta (Sep 3, 2023)

  • add: [ddraw.cpp] added LOCKPIXELFORMAT flag, deleted obsolete LOCKCOLORDEPTH and LOCK24BPPDEPTH flags
  • fix: [ddraw.cpp] fixed wrong size in SetDisplayMode wrappers, revised handling of emulated/native pixel formats
  • fix: [ddraw.cpp] fixed SetCooperativeLevel wrapper, added RECOVEREXCLUSIVEERR flag
  • fix: [dinput.cpp] fixed HIDEJOYSTICKS handling
  • add: [dxwwstack.cpp] added ifdef-ed debug traces
  • fix: [dxwwstack.cpp] fixed PutProc routine
  • add: [gdi32.cpp user32.cpp] fixed LOCKPIXELFORMAT handling in GDI video modes
  • fix: [gdi32.cpp] fixed regression bug on NUMCOLORS handling in GetDeviceCaps wrapper
  • fix: [gdi32.cpp] fixed SetDIBitsToDevice wrapper adding FPS limit to slow "Interstate 76" with -gdi option
  • add: [gdi32.cpp, opengl.cpp] revised wrappers for SetPixelFormat, GetPixelFormat, DescribePixelFormat and ChoosePixelFormat calls to merge with with opengl wiggie equivalents
  • fix: [hd3d.cpp] fixed HookDirect3D internal routine to allow hot-patching hook, reverted regression bug introduced in v2.05.97
  • add: [hd3d.cpp] added NOMULTISAMPLE flag in IDIrect3D8/9::CreateDevice wrappers
  • add: [hd3d.cpp] added FORCED3DCHECKOK debug flag
  • add: [hd3d.cpp] added CheckDepthStencilMatch and RegisterSoftwareDevice tracing wrappers
  • add: [hd3d.cpp hd3d7.cpp] added IDirect3D3/7/8/9::CreateVertexBuffer wrappers with FORCEVBUFONSYSMEM flag handling
  • add: [hd3d7.cpp] added FORCEFILTERNEAREST flag handling in SetRenderState wrapper
  • fix: [iatpatch.cpp] improved NextString internal routine to reduce the number of possible exceptions
  • fix: [kernel32.cpp] added fix in GetFullPathNameA wrapper to handle EMULATEWIN95 flag
  • fix: [mciwrapper.cpp] improved handling of movie play for NOMOVIES flag. Fixes the skip of "Half-Life" intro movies
  • fix: [mciwrapper.cpp] fixed handling of mciSendCommand MCI_STATUS_ITEM MCI_STATUS_CURRENT_TRACK in CDA emulation to never return a track number lesser than the first audio track.
  • fix: [sdl.cpp] fixed a log message
  • --- [shell32.cpp] some code cleanup
  • fix: [user32.cpp] in SetWindowPos wrapper: don't trim the window to the desktop size if resolution changes are allowed. Fixes some "Half-Life" screen clipping.
  • fix: [user32.cpp] revised ChangeDisplaySettings/Ex/A/W wrappers.
  • fix: [version.cpp] fixed GetFileVersionInfoA wrapper and added GetFileVersionInfoSizeA wrapper to handle fake devices
  • fix: [safedisk.cpp] improved GUI safedisc detection by analyzing only the first bytes.
  • add: [toolsgetcaps.c] tool to report some of the device capabilities
  • fix: [GUI] fixed "Clear compatibility flags" menu command forcing KEY_WOW64_64KEY

New in DxWnd 2.05.96 Beta (May 29, 2023)

  • fix: [mciwrapper.cpp cdaproxy/mciwrapper.cpp] handling of initial gap (defaulted to 2000 mSec) in milliseconds format
  • fix: [dibemu.cpp gdi32.cpp] fixed DIB palette handling
  • fix: [dinput.cpp] fixed bug in IDirectInput7A hooking
  • fix: [dwflip.cpp] trapped error condition leading to crash. Fixes "Tex Murphy Overseer" in full flip emulation mode
  • fix: [dwhide.cpp] adapted taskbar hiding to the OS versions
  • fix: [dxhook.cpp hexdump.cpp] trapped memory violation in hexdump routines
  • fix: [dxhook.cpp mciwrapper.cpp] added suspension of auto-refresh mode while playing movies with mci
  • add: [guids.cpp] added more dinput GUIDs for better logging
  • add: [mmedia.cpp ole32] added hooking of IMMediaStream interface
  • add: [msvcrt.cpp] added wrapper for _open function
  • add: [ole32.cpp] added hooking of dinput interfaces through OLE
  • add: [user32.cpp] tentative handling of WinHelpA/W functions
  • add: [dshowplay] alternative dxwplay.dll based on DirectShow
  • add: [GUI] dependencies between flags, now bypassed flags are grayed and disabled

New in DxWnd 2.05.95 Beta (Apr 28, 2023)

  • add: [d3dumddi.cpp, ddraw.cpp] added FIXDCPALETTE processing
  • fix: [ddcreates.cpp, dwflip.cpp] fixed primary flipchain handling, mainly for non-emulated modes
  • add: [ddraw.cpp] added tracing wrappers for palette methods GetCaps, GetEntries and Initialize
  • add: [excepthandler.cpp] added handling of some VGA register exceptions
  • add: [excepthandler.cpp] added FORCENOPS flag applied to IDIV exceptions
  • fix: [hd3d.cpp] fixed IDIrect3D8::GetAdapterIdentifier trace
  • add: [mss32.cpp, winmm.cpp] added tracing of some mss32 calls. To be completed.
  • fix [user32.cpp] fixed FillRect/FrameRect wrapper
  • fix [user32.cpp] fixed GetDC wrapper, as found by dippy dipper

New in DxWnd 2.05.94 Beta (Apr 7, 2023)

  • Add: [cdhack] cdhack tool
  • Add: [GUI] moved the "Full RECT blit" option from Debug to DirectX(2) tab
  • Fix: [ddcreates.cpp ddraw.cpp dwflip.cpp dxwstack.cpp] revised flipchain handling for multiple backbuffers and overlays
  • Add: [ddraw.cpp] added UpdateOvelay wrappers
  • Fix: [ddraw.cpp flipoverlay.cpp] fixed Get/SetOverlayPosition wrappers
  • Add: [dxhelper.cpp] added more d3d error codes translations
  • Add: [excepthandler.cpp] added handling of INT 1A timer exception
  • Fix: [fourcc.cpp] fixed crashing bug
  • Fix: [gdi32.cpp] fixed hooking table to avoid duplicate/missing hooks, deleted duplicate SetBkColor wrapper
  • Fix: [kernel32.cpp] fixed DeviceTable table and IOCTL decoding
  • Fix: [mciwrapper.cpp] fixes in MCI_PLAY, MCI_PAUSE, MCI_RESUME handling
  • Fix: [queryint.cpp] fixed QueryInterface wrapper to handle NULL obp value. It crashed "Sorry!" game.
  • Fix: [sdump.cpp] fixed SurfaceDump for NULL surface handle case
  • Fix: [shell32.cpp] fixed ShellExecuteA wrapper to handle absolute path case
  • Add: [smack.cpp] added SmackBufferNewPalette wrapper for tracing
  • Fix: [supmodes.cpp] slightly revised the supported video modes table
  • Add: [user32.cpp] added mouse hysteresis to avoid relative mouse bias
  • Fix: [user32.cpp] fixed custom locale NOSETTEXT flag
  • Fix: [user32.cpp] added ""Smacker Window" class to movies. Useful on "Star Wars Rebellion"
  • Add: [winmm.cpp] added waveOut callback tracing, added more trace messages

New in DxWnd 2.05.92 Beta (Jan 22, 2023)

  • add: [comvjoy.cpp] added emulation of presence of joystick effects, improved logging
  • fix: [dxhelper.cpp, ddraw.cpp, ddcreates.cpp, ddrawex.cpp, dinput.cpp, dxwcore.cpp, ...] improved logging on stack variables vs. static memory
  • fix: [ddraw.cpp] support for GetAttachedSurface on overlay
  • fix: [ddraw.cpp] support of overlay emulation in SetOverlayPosition
  • add: [ddraw.cpp, flipoverlay.cpp] added TRANSPARENTOVERLAY flag
  • fix: [dxhook.cpp] fixed timer reset when logging circular + time
  • add: [dxhook.cpp] added MemoryReserveB0000 tweak
  • add: [dxhook.cpp] logged real window version and parameters
  • add: [dxhook.cpp] added RUNBYDXWND flag
  • fix: [gdi32.cpp] deleted double hooking of SetTextColor
  • fix: [gdi32.cpp] fixed CreateRectRgnIndirect wrapper
  • add: [hd3d8.cpp] added D3DFMT_A4R4G4B4 format in CopyRect wrapper
  • fix: [sdl.cpp] suppressed SDL_DOUBLEBUF. fixes "Spirit Stallion of the Cimarron" in "good" video mode.
  • fix: [sdl.cpp] implemented CONFIRMESCAPE flag in SDL input handling
  • add: [user32.cpp] added Widechar dialog wrappers
  • add: [user32.cpp] added TRIMCHILDWINDOWS tweak. Necessary for "Amy's Fantasies".
  • add: [user32.cpp] added TRIMMAINWINDOW tweak. Required for "Need for Speed SE".
  • fix: [vfilesys.cpp] avoid terminating a folder pathname with a doubled backslash.
  • fix: [winmm.cpp] fixed mciSendStringW wrapper
  • fix: [winmm.cpp] fixed "status" command can return either a string or a DWORD depending on the status specification.
  • add: [GUI] added global flag to preserve or clear the trace+debug flags on profile exports.
  • add: [tools] added Exportdump tool

New in DxWnd 2.05.91 Beta (Dec 30, 2022)

  • fix: [cdaproxymciwrapper.cpp] aligned to mciwrapper.cpp changes
  • add: [d3dumddi.cpp] support to DYNAMICZCLEAN flag through D3DDDI hooking
  • add: [ddcreates.cpp flipoverlay.cpp fourcc.cpp] added EMULATEOVERLAY handling
  • add: [ddraw.cpp hd3d.cpp] HOOKVIDEOADAPTER flag
  • add: [ddraw.cpp forceD3d9oon12.cpp hd3d.cpp] FORCED3D9ON12 tweak
  • add: [dxhook.cpp dxwnd.cpp syscursors.cpp] RECOVERSYSCURSORICONS tweak
  • fix: [Hookmodule.cpp kernel32.cpp] recovered regression bug caused by deletion of HookModule function
  • fix: [dxwcore.cpp] added handling of '?' wildcard for task folder replacement
  • add: [hd3d7.cpp] support for FIXTNLRHW tweak
  • fix: [kernel32.cpp] fixed bug in OpenFileMappingA/W wrappers when called with NULL lpName
  • fix: [mciwrapper.cpp] returning proper MCIERR_OUTOFRANGE error code in MCI_CDA_STATUS_TYPE_TRACK processing. Found in WipeoutXL
  • fix: [sdump17.cpp] debug: suppressed transparency in surface dumps
  • add: [user32.cpp] LOCKSYSCURSORICONS tweak
  • add: [GUI] menu command Tools -> Recover -> System cursors
  • fix: [GUI] some reorganization
  • add: [tools/overlaydemo] added rebuild of Andreas Jönsson overlaydemo.exe

New in DxWnd 2.05.90 Beta (Nov 19, 2022)

  • add: [asyncdc.cpp dxhook.cpp gdi32.cpp user32.cpp] preliminary AsyncDC mode
  • add: [d3dumddi.cpp ddraw.cpp] preliminary W-based fog through OpenAdapter hacking
  • add: [hd3d7.cpp] W-based fog through transformation matrix hack
  • add: [helpmsgs.cpp] added decoding of dialog messages CB_*
  • add: [kernel32.cpp] added wrapper for GetDiskFreeSpaceW
  • fix: [kernel32.cpp] fixed GetDiskFreeSpaceA/W wrappers now returning unaltered values for CD-Rom drives (0 free space in particular)
  • fix: [mciwrapper.cpp] handling of different error code after device MCI_CLOSE
  • fix: [user32.cpp] handling of icon stretching
  • add: [user32.cpp winproc.cpp] added CONFIRMESCAPE tweak
  • fix: [winmm.cpp] fixed handling of stretched timers
  • fix: [CAboutDlg.cpp] fixed the hall-of-fame printout

New in DxWnd 2.05.89 Beta (Oct 19, 2022)

  • add: [cdaproxy] changes to allow multi-program configuration based on task name and custom music folder
  • fix: [cdaproxy] alignment with DxWnd CDA emulation last fixes for MM_MCINOTIFY handling
  • fix: [cdplayer] changed colors to more readable set (red digits over white panel)
  • add: [cdplayer] volume level now saved in cdplayer.ini
  • fix: [dxhelper.cpp] added missing D3DERR_SCENE_NOT_IN_SCENE error code description
  • add: [dxwnd.cpp oglblt.cpp] added interlace/deinterlace filters to opengl blitter
  • fix: [dxwnd.cpp user32.cpp] renamed FULLSCREENONLY option to FORCEWINDOWING for sake of clarity
  • fix: [exceptionhandler.cpp] better (maybe) handling of some specific exceptions
  • fix: [gdi32.cpp] fixed scaling of fonts with declared 0 heigth (use default heigth). Improves scaling of "swirl"
  • add: [kernel32.cpp] better logging in CreateFileA/W wrappers, decoding of disposition flags
  • fix: [mciwrapper.cpp] fixed bug in MapsMsecToTTMMSS procedure to handle milliseconds time format
  • fix: [mciwrapper.cpp] now sending MM_MCINOTIFY message also when target hWnd is NULL
  • add: [mciwrapper.cpp] added (maybe useless) "sound:MCINotifyTopmost" tweak
  • fix: [user32.cpp] added procedure to stretch icons in GDI scaled mode. Improves scaling of "swirl"
  • add: [user32.cpp] added debug highlight handling for scaled icons
  • fix: [dxwplay] better logging with generalized timestamps
  • add: [user32.cpp] added FORCESIMPLEWINDOW tweak

New in DxWnd 2.05.88 Beta (Oct 3, 2022)

  • add: [IBM_PC_8x8.bin] added BIOS ROM for 8x8 font emulation
  • fix: [tools/tail.cpp] fixed wait loop in case of file replacement
  • add: [tools/tail.cpp] added grep/ungrep options
  • add: [tools/glerror.c] added tool for opengl error code translation
  • add: [tools/ddmodes] added tool for ddraw video modes list
  • add: [tools/argdump.cpp] added dump of unparsed command line
  • add: [createproc.cpp hint.cpp] added hint for process creation
  • fix: [d3dtexture.cpp] improved log for texture formats in case of ASCII codecs
  • add: [ddcolor2alpha.cpp, ddraw.cpp, sblit.cpp] added COLORKEYTOALPHA flag.
  • fix: [ddraw.cpp] fixed SetDisplayModes wrapper for situation where all arguments w, h, bpp are set to 0. Fixes "Frogger He's Back".
  • add: [ddraw.cpp] added Lock wrapper protection for unreferenced surfaces (useful?)
  • fix: [ddraw.cpp] recovered the DDERR_NOTLOCKED error code. Recovers "Formula Karts".
  • fix: [ddraw.cpp, ddtexture.cpp] replaced implementation for SPONGEBOBHACK tweak
  • fix: [ddraw.cpp, dxwcore.cpp] custom resolution now not trimmed by HIDEDISPLAYMODES shim
  • fix: [ddtexture.cpp] fixed logs mistakenly attributed to OpenGL
  • fix: [dinput.cpp] added recovery for DDERR_INVALIDPARAMS in creation wrappers
  • add: [dxhook.cpp] added GetCommandLine log
  • add: [dxwcore.cpp, hd3d.cpp, opengl.cpp] added SETFOGCOLOR flag
  • add: [dxwcore.cpp] added FAKEDATE flag
  • add: [excepthandler.cpp] added redirection for forbidden access to BIOS ROM font memory.
  • fix: [gdi32.cpp] fixed BitBlit wrapper in case of BLACKNESS or WHITENESS blit.
  • add: [guids.cpp] added 2 more GUIDs
  • add: [hd3d.cpp] improved logging for CreateDevice wrapper
  • add: [hd3d7.cpp] improved logging for textures
  • add: [hooktable.cpp, shell32.cpp] recovered hook for shell32.dll module. Fixes the son creation suppression for shell commands
  • add: [kernel32.cpp] added GetCommandLineA and GetModuleFileNameA wrappers for EmulateGetCommandLine shim emulation (EMUGETCOMMANDLINE flag)
  • add: [kernel32.cpp] added GetVolumeInformationW wrapper
  • add: [kernel32.cpp, hint.cpp] added HINT_CDCHECK hint
  • add: [kernel32.cpp] added FIXCREATEFILEMAP flag for emulation of EmulateCreateFileMapping shim
  • add: [kernel32.cpp] added EMUGETCOMMANDLINE flag for emulation of EmulateGetCommandLine shim
  • add: [mciwrapper.cpp] added HACKMCIFRAMES feature to query of track position
  • fix: [opengl.cpp] fixed opengl handling of fog color and intensity
  • add: [queryint.cpp] added FORCED3DREFDEVICE flag
  • fix: [shareddc.cpp] fixed FPS control, es. in "Beachhead 2000"
  • fix: [smack.cpp] added missing wrappers hooking for SmackBlitClose and SmackBlitOpen
  • add: [xinput.cpp] better logging for XInputGetState wrapper
  • add: [GUI] added interfaces for fog color and fake date configuration
  • fix: [winmm.dll] winmm Standalone CDA emulator aligned to v2.05.88 last changes

New in DxWnd 2.05.87 Beta (Aug 21, 2022)

  • fix: [cdaproxy] aligned cdaproxy winmm.dll to last mci changes in v2.05.87
  • fix: [ddcreates.cpp, ddraw.cpp, ddrawex.cpp, dinput.cpp, dxwcore.cpp, sblit.cpp] changed logging prefix for ddraw, d3d and dinput methods
  • fix: [ddraw.cpp] palette handling, setting reserved entries accoring to flags value in CreatePalette and ignoring SetEntries.
  • fix: [ddraw.cpp] surface handling, fixed clearing of backbuffers upon primary surface release
  • fix: [ddshot.cpp] screenshots now tried from both primary or backbuffer surfaces
  • add: [dinput.cpp] added separated wrappers for every dinput QueryInterface method
  • add: [dxhook.cpp] added preliminary independent Win9X heap emulation with 9xheap.dll
  • add: [exceptionhandler.cpp] added logging of exception subcode (ExceptionInformation[0])
  • fix: [exceptionhandler.cpp] added EXCEPTION_CONTINUE_SEARCH for exception 0xc000008e: Floating point division by 0. Fixes Jane's Longbow.
  • add: [kernel32.cpp] added CreateFileMappingA/W and OpenFileMappingA/W wrappers
  • fix: [kernel32.cpp] set HOOK_HOT_FORBIDDEN for all heap wrappers to avoid recursion with hot-patched Win9X heap emulation
  • fix: [kernel32.cpp] implemented path correction in Win9X compatibility for FileMapping wrappers
  • add: [hd3d7.cpp] added independent Get/SetMaterial and Get/SetTextureStageState wrappers for IDIrect3D1-7 interfaces
  • add: [hd3d7.cpp] added CULLMODENONE tweak. Fixes some transparent textures in "3D Scooter Racing"
  • fix: [hd3d7.cpp] dxwForceState now returning boolean to recover calling InsertPatchingExecuteBuffer
  • fix: [hd3d7.cpp] better logging of D3DDEVICEDESC structure
  • add: [hd3d7.cpp, queryint.cpp] added RAMP2RGBDEVICE and RAMP2MMXDEVICE tweaks to map a Ramp Device request to RGB or MMX type.
  • fix: [heap.cpp] tentative improvements to SAFEHEAP checks
  • add: [hint.cpp] added hint for detection of IID_Direct3DRampDevice usage
  • fix: [mciwrapper.cpp] fix to allow playing music from Track#1 of Audio CD
  • fix: [mciwrapper.cpp] inserted returns of error code 270 where necessary
  • add: [queryint.cpp] added NOSURFACENEW tweak to remap IID_IDirectDrawSurfaceNew requests to IID_IDirectDrawSurface7
  • fix: [user32.cpp] CreateWindow* wrappers now don't alter window size or style when windowing is not requested
  • fix: [user32.cpp] tentative integration of EmulateDrawText MS shim for Win9X compatibility
  • fix: [user32.cpp] fixed LoadImage wrapper when image is loaded by resource name instead of resource id.
  • fix: [winmm.cpp] tentative bypass of WAVERR_BADFORMAT error. Fixes "The Way Things Work: Pinball Science"
  • add: [GUI] added "Batteryshark" credit
  • add: [GUI] added export profile with relative path mode to strip the local path from saved exports.
  • fix: [tools/reporter.cpp] fixed problems to get better compatibility on different platforms and WinXP OS.

New in DxWnd 2.05.86 Beta (Jul 9, 2022)

  • fix: [ddraw.cpp] enforced DDSCL_NORMAL in ddraw SetCooperativeLevel wrapper
  • add: [dxhook.cpp hint.cpp] added proxy check in hint system
  • fix: [dxhook.cpp] running hint system also in dll dependencies
  • add: [dxwcore.cpp] added tweak for GDIMODE_ASYNCDC mode
  • add: [dxwcore.cpp] log of __COMPAT_LAYER environment variable
  • fix: [excepthandler] continue search for exceptions from 0x80000001 to 0x80000014
  • add: [mciwrapper.cpp] added handling of "stop all" string command
  • fix: [mciplayer.cpp mciwrapper.cpp] major code review for CDA emulation
  • fix: [user32.cpp] enforced modal style on full screen mode
  • add: [dxwndhostView.cpp] the "No SHIMs" flag now clears the compatibility flags of cloned executable from registry

New in DxWnd 2.05.85 Beta (Jun 22, 2022)

  • fix: [ddraw.cpp] the reserved palette entries are cleared also in native fullscreen mode. Fixes palette colors.
  • add: [ddraw.cpp] added FIXFULLWINSTYLE tweak to allows window style fixes also in native fullscreen mode
  • add: [ddraw.cpp, dxwcore.cpp, hidedm.cpp, user32.cpp] added emulation of HideDisplayModes shim
  • fix: [ddraw.cpp] added safeguard check in IDirectDraw::Release reference count
  • fix: [dxhook.cpp] fixed bug preventing hook of ddraw.dll in "Total Annihilation" with community patches
  • add: [dxwcore.cpp, gdi32.cpp, user32.cpp] added experimental async GDI mode for "Mario xP" game
  • fix: [emulateddc.cpp] fixed FORCEHALFTONE setting in emulated DC mode
  • add: [excepthandler.cpp] added exception handler for writes to VGA port 0x389. Fixes palette settings for "Campus Heroes"
  • add: [gdi32.cpp, shareddc.cpp] added FORCEHALFTONETINY tweak
  • add: [mciwrapper.cpp] added emulation for "audio all on/off" command strings and MCI_SET_ON/OFF commands

New in DxWnd 2.05.84 Beta (Jun 1, 2022)

  • add: [dxhook.cpp, GUI] made HOTPATCHALWAYS mode from debug modes available in GUI interface
  • fix: [hdxgi.cpp, dxhook.cpp] fixed bug about hooking optional and missing dxgi interfaces
  • fix: [dxwnd.cpp, winmm.cpp] optimized access to mixer.ini file
  • add: [gdi32.cpp] added FORCEHALFTONE flag to force HALFTONE StretchBlt mode
  • add: [kernel32.cpp] added GetFreeDiskSpaceW wrapper
  • add: [hd3d.cpp] added tracing IDirect3DSurface8/9::GetDesc wrappers
  • fix: [kernel32.cpp] made fake CD drive letter case insensitive
  • add: [kernel32.cpp] emulated GetFreeDiskSpace behavior for MS Win95 shim
  • fix: [GUI] made custom limits configuration in MB units.
  • add: [dxtestrefs, reporter] added preliminary versions of dxtestrefs and reporter tools

New in DxWnd 2.05.83-fx3 Beta (Apr 18, 2022)

  • fix: deleted all references to ACP injection methods to avoid triggering AV suspicions

New in DxWnd 2.05.83 Beta (Apr 16, 2022)

  • fix: [help] fixed help pages
  • fix: [ddraw.cpp] fixed clearing of ddraw resources on primary surface release. Fixes "Patrician III" leakage.
  • add: [ddraw.cpp] added log message to interpret error in DirectDraw::SetCooperativeLevel
  • fix: [dsound.cpp] used dedicated volume slider for DirectSound volume control (see GUI)
  • fix: [dxdiaghook.cpp dxhook.cpp] eliminated dual hook mode recursive/non recursive, now hooking is faster and configuration simpler
  • add: [dxhook.cpp] added debug DISABLEWINHOOK flag
  • fix: [dxhook.cpp] fixed hooking in hot-patch (a.k.a. in-line) mode
  • add: [dxwcore.cpp] added general volume level, currently dedicated to DirectSound volume
  • fix: [dxwnd.cpp] eliminated redundant checks on the inject configuration
  • fix: [Inject.cpp] eliminated free on injected memory block. It must stay in place.
  • fix: [kernel32.cpp] added HOOK_HOT_FORBIDDEN qualifier for calls that should never be hooked in hot-patch mode
  • fix: [kernel32.cpp] fixed hooking about Get/SetCurrentDirectoryA/W wrappers
  • fix: [kernel32.cpp] fixed DuplicateHandle wrapper in case of NULL handle. Avoids crash in "Mars3D"
  • fix: [opengl.cpp] fixed hooking of optional wiggie calls that can be absent. Fixes crash in "GLMars3D"
  • add: [user32.cpp] added MapVirtualKeyW log wrapper
  • fix: [winmm.cpp] fixed auxSetVolume wrapper with proper volume level
  • add: [InjectACP.cpp] added experimental ACP injection mode
  • fix: [GUI] revised Hooks & Sound panels (see help pages)
  • add: [tools/expfinder] added selection of folder to scan

New in DxWnd 2.05.82 Beta (Mar 20, 2022)

  • add: [comdlg32.cpp] added FIXFILEDLG tweak/shim
  • add: [createproc.cpp] added IGNORESCHEDULER tweak/shim
  • fix: [d3d9blit.cpp] fixed D3D9 renderer deadlock condition
  • add: [ddraw.cpp] added configurable limit for VRAM
  • fix: [dxhook.cpp] added HOOK_HOT_FORBIDDEN flag to mark calls that should not be hooked through hot-patch
  • add: [kernel32.cpp gdi32.cpp] added generic EMULATEWIN95 tweak/shim
  • add: [dxwcore.cpp] split volume handling in 3 levels: CDA, midi, wave
  • add: [mididump.cpp] midi messages dump to log routine
  • add: [excepthandler.cpp] added SLOWDOWNEXCEPTIONS tweak
  • fix: [gdi32.cpp] fixed CreateBitmap wrapper for handling virtual 8bpp desktop
  • add: [hd3d.cpp] added configurable limit for texture memory
  • add: [hotpatch.cpp] more info in logs
  • add: [kernel32.cpp] added log wrappers for GlobalHandle, LocalAlloc, LocalFree, VirtualFree, LoadResource, LockResource
  • add: [kernel32.cpp] added wrapper for _hwrite
  • add: [kernel32.cpp] added IGNORESCHEDULER tweak/shim
  • add: [kernel32.cpp] added configurable limit for RAM and HD space
  • add: [kernel32.cpp] added DUPLICATEHANDLEFIX tweak/shim
  • fix: [mciwrapper] added handling of mciSendString with "window" command with replacement of window handle
  • fix: [toggle_fs.cpp] fixed fullscreen toggle mode
  • fix: [user32.cpp] fixed TERMINATEONCLOSE handling
  • add: [winmm.cpp] added midiOutGetDevCapsW wrapper
  • add: [winmm.cpp] added midi and wave emulated volume levels
  • add: [winmm.cpp] added MIDISETINSTRUMENT tweak
  • add: [user32.cpp] added emulation of Microsoft "IgnoreZeroMoveWindow" shim for EmulateWin95 tweak

New in DxWnd 2.05.81 Beta (Feb 1, 2022)

  • add: [d3d9blit.cpp d3d9blit.h d3d9shader.h dxwnd.cpp] added d3d9 renderer, thanks to source code in cnc-ddraw project
  • fix: [ddblit.cpp sblit.cpp] major code reorganization
  • fix: [ddraw.cpp] fixed palette handling to avoid changing static data. Fixed DX-Ball crash
  • fix: [ddraw.cpp] applied SUPPRESSDXERRORS flag to SetClipper wrapper
  • fix: [dibdump.cpp] added dumping of non-empty DIBs declared with 0,0 size
  • fix: [dumptext.cpp] added api name dump, ansi/wide info, catch exceptions, strings with len == -1.
  • fix: [GUI, dxwcore.cpp] decoupling between renderer id and its position in the list, deleted "hybrid" renderer.
  • add: [GUI, dxwcore,cpp] added async blitter mode.
  • add: [dxwnd.cpp oglblt.cpp] added rotation filters in OpenGL renderer
  • add: [gdi32.cpp] added EnumFontFamilies and CreateFontIndirectA tracing wrappers
  • fix: [gdiblit.cpp] added async mode, set halftone as filter (??)
  • fix: [hd3d.cpp] fixed bug in CopyRect wrapper logging. Fixes crash in "Silent Hill 4"
  • add: [msvfw.cpp] tentative handling of MESSAGEPUMP in DrawDibDraw wrapper
  • add: [oglblt.cpp] added sync/async blitter modes
  • add: [user32.cpp] added TEXTDUMP handling in several wrappers
  • fix: [GUI] menu reorganization
  • add: [GUI] added import from log file (OnImportFromLog, ImportFromLog)
  • fix: [GUI] swapped "limit *" flags from Tabs and Tweaks sections, as suggested by beennath58
  • fix: [GUI] "Blur" effect moved from flag to OpenGL filter

New in DxWnd 2.05.80 Beta (Jan 16, 2022)

  • Fix: [CDPlayer/CDAudio.cpp] prevented repetition of mci error dialogs in case of missing CD device
  • Fix: [ddraw.cpp] improvements to MASKCAPS debug functionality
  • Add: [ddraw.cpp kernel32.cpp hd3d.cpp] split LIMITRESOURCES into 4 flags: LIMITVIDEORAM, LIMITFREEDISK, LIMITFREERAM, LIMITTEXTURERAM.
  • Fix: [ddraw.cpp] fix for palette first and last entry when DDPCAPS_ALLOW256 is not set. Fixes "Karma Immortal Wrath" text colors
  • Add: [ddraw.cpp] added FASTPRIMARYUPDATE tweak to bypass FPS limits on FastBlt to primary surface
  • Add: [ddraw.cpp] added debug FILTERCOLORKEY flag to disable custom defined color keys
  • Add: [dxhook.cpp] added SETPRIORITYLOW flag.
  • Add: [hd3d.cpp] added DEFERREDWINPOS flag.
  • Fix: [kernel32.cpp] added SeatchPathA/W wrappers with logic to handle fake drives.
  • Add: [msvfw.cpp] added DISPELTWEAK tweak to make "Dispel" mouse working. Maybe useful in other cases?
  • Fix: [winmm.cpp] fixed wrong log level in waveOutGetPosition wrapper

New in DxWnd 2.05.79 Beta (Dec 31, 2021)

  • add: [cdaproxyOutTrace.cpp] added possibility to insert timestamp in the cdaproxy logs
  • fix: [ddraw.cpp] fix for DDERR_EXCLUSIVEMODEALREADYSET error
  • add: [dumptext.cpp gdi32.cpp user32.cpp] added DUMPTEXT tweak to get a log of USER32/GDI32 text printed to screen
  • fix: [dxhelper.h] fixed output of ExplainStyle helper
  • add: [*.* mciplayer.cpp mciwrapper.cpp dxwplay/*.*] revised CDA emulation adding EMULATEWIN9XMCI, PLAYFROMCD and CDAUTOMATICRIP modes (see help pages)
  • add: [gdi32.cpp] added logging wrapper for GetNearestPaletteIndex call
  • add: [kernel32.cpp] added EMULATEFLOPPYDRIVE tweak to pretend the system has floppy drive units
  • fix: [kernel32.cpp] fixed SetCurrentDirectoryA/W wrappers to check for folder existence and simulate err ERROR_FILE_NOT_FOUND if not found for a fake driver folder
  • fix: [user32.cpp] fixed SetMenuItemInfoA/W wrappers crashing when logging. Fixes "The Princess" japanese menu translation
  • add: [user32.cpp] added CreateMDIWindowA/W logging wrappers
  • fix: [vfilesys.cpp] fixed relative path translation on fake drives. fixes fake CD in "Lords of the Realm".
  • fix: [CAboutDlg.cpp] added more references to thanks list
  • add: [dxTabCtrl.cpp TabSound.cpp TabCDA.cpp] split Sound tab in two parts: Sound and CDADrive
  • add: [dxwndhostView.cpp] added computation of list of available CDROM drives
  • add: [CDRipper/*.*] added CDRipper demo tool

New in DxWnd 2.05.78 Beta (Nov 26, 2021)

  • Fix: [cdaproxy] winmm wrapper aligned to fixes in DxWnd CDA player
  • Add: [advapi.cpp] new FIXMACROMEDIAREG tweak
  • Fix: [advapi.cpp] fixed buffer overflow in logging of very long registry values
  • Fix: [createproc.cpp] fixed entry point search in debug mode hook
  • Fix: [dwhide.cpp] added mutex lock to synchronize hide taskbar activity
  • Fix: [dwhide.cpp] hider window created with WS_EX_TOOLWINDOW flag to eliminate hider icon is toolbar
  • Add: [dxmapping.cpp user32.cpp] added sticky window feature. Fixes win movements in "Barrow Hill".
  • Fix: [mciplayer.cpp] fixed MCI_PLAY with no from/to spec. to resume. Fixes "Frogger 2"
  • Fix: [mciplayer.cpp] fixed MM_MCINOTIFY message processing in mciSendCommand wrapper. Fixes "Frogger 2"
  • Fix: [mciwrapper.cpp] fixed wrong log messages about lpstrAlias field
  • Fix: [mciwrapper.cpp] added IGNOREMCIDEVID processing in mciSendString wrappers. Used in "Frogger He's Back"
  • Fix: [mciwrapper.cpp] fixed mciSendString parser for operations on device drivers. Used in "Frogger He's Back"
  • Fix: [user32.cpp] fix in GetWindowRect wrapper suggested by hdc0
  • Add: [user32.cpp] added EnableMenuItem wrapper to implement LOCKSYSTEMMENU tweak
  • Fix: [winmm.cpp] fixed midiOutGetDevCapsA and midiOutGetNumDevs wrappers
  • Fix: [winproc.cpp] added WM_SYSCOMMAND message interception to unlock window stretch and movement
  • Add: [CoolUtils.cpp] added IsToolbarWndVisible() routine to manage hide toolbar feature

New in DxWnd 2.05.77 Beta (Nov 13, 2021)

  • fix: [ddraw.cpp] better logging ...
  • fix: [dwhide.cpp] now considering HIDETASKBAR in the choice of the blacked area size.
  • fix: [dxwcore.cpp] autometic trimming of VIRTUALCDAUDIO flag when the "Music" folder can't be found.
  • add: [guids.cpp] even more guids ...
  • fix: [mciplayer.cpp, mciwrapper.cpp] fixed handling of MM_MCINOTIFY messages
  • fix: [mciplayer.cpp, mciwrapper.cpp] fixed track resume with MCI_PLAY message. Fixes "Frogger 2 Swampy's Revenge".
  • add: [mciwrapper.cpp] added SLOWCDSTATUS flag to conditionally slow down some mci answers
  • fix: [opengl.cpp] fixed wglGetProcAddress returning NULL pointers
  • add: [winmm.cpp] added waveOutGetDevCapsW and wod32Message wrappers for WAVEOUTUSEPREFDEV flag to emulate WaveOutUsePreferredDevice shim.
  • add: [winproc.cpp] added logging of MM_MCINOTIFY messages with sound trace
  • fix: [dxwndhostView.cpp] fixed double quotes processing in "Launcher" field
  • fix: [dxwndhostView.cpp] recovered and updated the processing of "Launcher" field (see help pages)
  • add: [mcitool.cpp] added handling of MM_MCINOTIFY message

New in DxWnd 2.05.76 Beta (Oct 27, 2021)

  • add: [audiere] audiere proxy to replace legacy audiere.dll with more recent and open-source version
  • fix: [help] fixed many help pages and pictures (unfinished)
  • fix: [proxy] rebuilt dxwnd proxies with updated structures
  • fix: [cvda] bug fix: When MCI_TO is missing, go to the end of the track
  • add: [advapi.cpp] added wrappers for widechar and some ascii calls. Should provide a full operation tracing.
  • fix: [advapi.cpp] fixed prototypes and key logging for widechar type. Fixed string logging.
  • add: [dinput.cpp] added SetCursorPos error message
  • add: [dsound.cpp] added NOSOUNDLOOP flag
  • add: [dxhelper.cpp] added DIERR_OLDDIRECTINPUTVERSION error message decoding
  • add: [dxwcore.cpp dxhook.cpp] added timestretch and heap info in initial logs, added LARGE_INTEGER time stretching function.
  • add: [gdi32.cpp] added FIXEDBITBLT flag. Used in "Mechwarrior 2"
  • add: [guids.cpp] added more guid strings
  • fix: [hd3d.cpp] fixed handling of hDeviceWindow field in D3D8/9 device creation
  • add: [hd3d.cpp] added error decoding in several log messages
  • fix: [heap.cpp heap.h] kernel32 heap wrappers moved to a dedicated source file. Fixed SAFEHEAP logic.
  • fix: [heap.cpp] forced HEAP_NO_SERIALIZE suppression
  • add: [heap.cpp] added HEAPLEAK flag.Added some missing heap wrappers.
  • add: [kernel32.cpp] added FIXWIN16HOOKS tweak.
  • add: [kernel32.cpp] added WIN16CREATEFILE tweak. Simulates the behavior of CreateFile calls on CD files. Needed in "Mechwarrior 2".
  • add: [kernel32.cpp] added STRETCHPERFFREQUENCY flag.
  • add: [kernel32.cpp] added CUSTOMPERFCOUNT flag.
  • add: [kernel32.cpp] added WIN16FINDFILEFIX flag. Fixes the "Mechwarrior 2" mech customization bug
  • fix: [mciwrapper.cpp] fixed handling of CD emulation for MCI_SYSINFO message
  • fix: [mciwrapper.cpp] bug fix: When MCI_TO is missing, go to the end of the track
  • fix: [mciwrapper.cpp] added delay to MCI_STATUS message
  • fix: [msvcrt.cpp] improved SAFEMALLOC handling - added check for length and block termination
  • fix: [user32.cpp] fixed GetKeyNameTextA/W wrappers
  • add: [winmm.cpp] added MIDIBYPASS flag
  • add: [winmm.cpp] added MW2WAVEOUTFIX tweak. Used for "Mechwarrior 2"
  • add: [GUI} "Disable" menu toggle

New in DxWnd 2.05.75 Beta (Sep 16, 2021)

  • fix: [cdaproxy] aligned to last CDA sound fixes
  • fix: [dsound.cpp] keeping track of primary buffer disposal in STOPSOUND flag handling
  • fix: [dxwcore.cpp, kernel32.cpp] recovered WinXP support lost because of references to GetTickCount64 new call
  • fix: [guids.cpp] better support for d3d8, d3d9 and DirectShow GUIDs logging
  • fix: [kernel32] better support for SHAREDHOOK in ShellExecuteA, now available also without SHAREDHOOK
  • fix: [mciwrapper.cpp] better logging for MCI_OPEN command to avoid exceptions
  • fix: [mciwrapper.cpp] handling of MCI_OPEN command with CD drive letter. Fixes "Frogger: He's Back"
  • fix: [mciwrapper.cpp] better handling of STOPSOUND flag while playing. Now the CD status remains "playing" even when paused so that the game won't try to restart the music.
  • fix: [ogltexture.cpp] fixed luminance dumps. Makes "Road Rash" luminance textures visible.
  • fix: [ole32.cpp] better logging for GUIDs for all system calls.
  • fix: [shell32.cpp] code rewrite to eliminate compiler warnings.
  • fix: [user32.cpp] handling of STOPSOUND in DefWindowProc wrappers
  • fix: [winproc.cpp] STOPSOUND handling for DirectSound using Stop/Restore methods instead of SetVolume
  • add: [CAboutDlg.cpp] added some thank references
  • add: [GUI] added striproot feature

New in DxWnd 2.05.74 Beta (Aug 24, 2021)

  • fix: [dxwndhostView.cpp] unified and fixed the handling of deletion of log files: now deletes also numbered dxwnd(x).log files
  • fix: [viewFlagsDialog.cpp] fixed flags view panel in GUI
  • fix: [ddraw.cpp] logging: eliminated clipper log cathegory
  • fix: [mciwrapper.cpp] fix for "War of the Worlds"
  • add: [dsound.cpp] more logging in CreateSoundBuffer wrapper
  • add: [dsound.cpp winproc.cpp] support for STOPSOUND flag
  • add: [shell32.cpp] tentative support for SHAREDHOOK in ShellExecuteA
  • add: [user32.cpp] support for FIXKEYBOARDTYPE flag in GetKeyboardType wrapper
  • add: [user32.cpp] logging wrappers for GetKeyNameTextA/W wrappers
  • fix: [toolsbchunk.cpp] better logic to match .cue to .bin files
  • add: [toolskeymap.cpp] dump keyboard type info

New in DxWnd 2.05.73 Beta (Jul 13, 2021)

  • Fix: [advapi.cpp] in fake registry override mode pretend success when creating a non exixting key
  • Fix: [ddraw.cpp] fix GetPalette wrapper to return the primsry palette attached to backbuffer. Fixes "Premieer Manager 99".
  • Fix: [ddraw.cpp] suppressed improper error message in GetPalette wrapper
  • Fix: [gdi32.cpp] fixed return values of GetDeviceCaps wrapper according to DDRawCompat source, thanks to Narzoul code. Fixes "Premier Manager 97" color issue.
  • Fix: [hd3d.cpp] fixed depth stencil format
  • Fix: [kernel32.cpp] added GetTickCount64 wrapper
  • Fix: [winmm.cpp] added timeGetSystemTime wrapper
  • Add: [dxwcore.cpp kernel32.cpp winmm.cpp] added UPTIMECLEAR and UPTIMESTRESS handling
  • Add: [hd3d7.cpp] added NORAMPDEVICE, NORGBDEVICE and NOMMXDEVICE flags handling

New in DxWnd 2.05.72 Beta (Jun 28, 2021)

  • fix: [winmm.ini] fixed comments and defaults
  • add: [ddraw.cpp] added experimental DISABLECOLORKEY tweak
  • fix: [ddraw.cpp] fixed SetColorKey wrapper log messages
  • fix: [ddraw.cpp] fixed SUPPRESSDXERRORS logic in GetColorKey wrapper - should not hide certain errors
  • add: [dxhook.cpp] added OUTONTEMPFOLDER to direct log messages to a file in a temporary folder
  • add: [dxwcore.cpp, mciwrapper.cpp] added SETCDAUDIOPATH to search ripped CD tracks (the "Music" folder) in a known, fixed location
  • add: [kernel32.cpp] ifdef-ed tracing wrappers for GetDateFormatA/W calls
  • fix: [kernel32.cpp] LoadLibrary wrappers now can search dlls also in remapper system folders (REMAPSYSFOLDERS flag). Allowsusing alternate sys libraries without messing with Windows system folders.
  • fix: [kernel32.cpp] fixed OpenExeFromArguments used in shared hook
  • add: [kernel32.cpp] added exception handling in GlobalFree wrapper
  • add: [mciplayer.cpp] added call to plr_setPath for SETCDAUDIOPATH option
  • fix: [mciwrapper.cpp] tentative add MCI_GETDEVCAPS_HAS_AUDIO capability to emulated device
  • add: [opengl.cpp] added SAMPLE2COVERAGE flag to remap GL_ALPHA_TEST to GL_SAMPLE_ALPHA_TO_COVERAGE
  • add: [shell32.cpp] added ShellExecuteW wrapper and NOSHELLEXECUTE flag handling in ShellExecuteA/W wrappers
  • add: [user32.cpp] added LOCKCURSORICONS flag (in LoadCursorA/W wrappers) to avoid HW cursor changes. Fixes the disappearing cursors in "Stratosphere".
  • add: [dxwplay/player.cpp] added plr_setPath call for SETCDAUDIOPATH flag
  • fix: [toolsbchunkbchunk.cpp] fixed help text and upper/lowercase pathname handling

New in DxWnd 2.05.71 Beta (May 27, 2021)

  • fix: [iatpatch.cpp] tentative try/catch in PE browsing.
  • fix: [kernel32.cpp] CreateFileA/W wrappers fix to handle NULL paths. Fixes Korean game "Zero".
  • fix: [kernel32.cpp] FindFirstFileA wrapper fix in ASCII/WIDE translation. Fixes Korean game "Zero".
  • fix: [kernel32.cpp] CloseHandle wrapper making better control about closing invalid handles. Fixes Korean game "Zero".
  • fix: [kernel32.cpp] Added try/catch in GlobalFree call.
  • fix: [kernel32.cpp] fixed FindResourceA wrapper wrong definition.
  • fix: [kernel32.cpp] fixed FindResourceA wrapper locale setting when parameter is null. Fixes Korean game "Zero" intro movies.
  • fix: [mciwrapper.cpp] fixed mciSendCommand wrapper on MCIERR_CREATEWINDOW error.
  • fix: [mciwrapper.cpp] mciSendString wrapper with MSF default time format ...
  • fix: [bchunk.cpp lame.cpp oggenc.cpp] implemented built-in mp3 and ogg/vorbis format conversion.
  • add: [kernel32.cpp] logging wrapper for FindClose call.
  • add: [kernel32.cpp] added HeapPadSize shim emulation.
  • add: [user32.cpp] added GetSysColor logging wrapper
  • add: [user32.cpp] added log debug information in EnumDisplaySettings/Ex/A/W wrappers.

New in DxWnd 2.05.70 Beta (May 17, 2021)

  • Fix: [dxhook.cpp] replaced SetDllDirectory call with change of "Path" environment to avoid changes in dll search path. Fixes "Max Payne 2".
  • Fix: [gdi32.cpp] fixed SelectPalette wrapper to return always a palette handle in emulation mode. Fixes "Submarine Titans" on certain conditions.
  • Fix: [hd3d8.cpp] fixed D3D8 CopyRect emulation for count==0, copying for min(src, dest) size to avoid crash. fixes "Dirt track racing 2 demo".
  • Fix: [hd3d8.cpp] fixed D3D8 CopyRect emulation now returning D3DERR_INVALIDCALL in case of unsupported pixel formats. Fixes menu texts in "Max Payne 2".
  • Fix: [hd3d8.cpp] fixed D3D8 Present emulation. Fixes the Japanese game "Gun Star".
  • Fix: [kernel32.cpp] fixed CreateSymbolicLinkA/W hooks to recover WinXP support.
  • Fix: [mciwrapper.cpp] fixed handling of CD alias name in case of combined usage in mciSendCommand and mciSendString.
  • Fix: [user32.cpp] added in SetWindowsHookEx wrapper handling of function keys here in case the program starts a KEYBOARD hook.
  • Fix: [user32.cpp] fixed debug DISABLEWINHOOKS flag.
  • Add: [dxhook.cpp] added log line with dump of all flags numeric values
  • Add: [dxwcore.cpp] added frame limitation by either delay (mSec) or frequency (Hz).
  • Add: [gdi32.cpp] in SetROP2 wrapper added flags decoding in log
  • Add: [hd3d.cpp] added D3D9 StretchRect wrapper and "D3D9 Stretch to full rect" flag
  • Add: [hdxgi.cpp] tentatively added hooking to more GUIDs in QueryInterface wrapper
  • Add: [user32.cpp] added "Locale / no window text" flag to suppress window title ANSI/WIDE translation in locale handling
  • Add: [user32.cpp] in GetAsyncKeyState wrapper added handling of FLUSHKEYSTATE flag.
  • Add: [winproc.cpp] improved logging
  • Add: [argdump.cpp] added timestamp and current directory to dumped information

New in DxWnd 2.05.69 Beta (Apr 28, 2021)

  • Fix: [player.cpp] increased pathname length of CD audio files from 80 to MAX_PATH bytes
  • Fix: [kernel32.cpp] enforced the setting of local path "." into dll search path. Defeats Macromedia Projector protection schema.
  • Add: [kernel32.cpp] added wrappers for _hread and CreateSymbolicLinkA/W calls
  • Fix: [user32.cpp] LoadImageA wrapper should not translate to WIDE the pathname when it is an ATOM. Found in "Marisa Matrix".
  • Fix: [user32.cpp] added recusrion block in CallWindowProcA/W wrappers. Fixes "ReWrite" recursion.
  • Fix: [user32.cpp] tentative handling of ASCII/WIDE translation in DefWindowProc wrapper for WM_SETTEXT message
  • Fix: [hd3d.cpp] fixed Direct3D8/9 GetDisplayMode and GetAdapterDisplayMode wrappers to emulate a virtual video mode when emulation is active. Fixes "Seal of Evil" initial controls.
  • Fix: [hd3d.cpp] fixed Direct3D8/9 EnumAdapterModes wrappers to list RGB555 or RGB565 video modes according to the configuration
  • Fix: [hd3d.cpp, hd3d8.cpp] fixed Direct3D8 CopyRects wrapper to manage multiple partial rect areas.
  • Fix: [hd3d.cpp] various improvements in logging
  • Fix: [ddblit.cpp] fixed log message
  • Fix: [ddraw.cpp] handling the possibility that GetSurfaceDesc original pointer is not available
  • Fix: [ddraw.cpp] fix for "Plants vs. Zombies" game: though handling a DirectDrawSurface7 object, in GetSurfaceDesc method the caller can pass a smaller descriptor size!
  • Fix: [gdi32.cpp] in CreateCompatibleBitmap wrapper commented out the scaling operation: the compatible bitmap should not be stretched at this time because it should be stretched later when going to video DC, or not stretched at all if used to build a custom cursor (see "Julia Szalone Lata 20.!")
  • Fix: [hd3d11.cpp] tentative (untested) windowing for D3D11 swap chain in CreateDeviceAndSwapChain wrapper
  • Fix: [hd3d11.cpp] tentative (untested) extension of DXGIFactory wrapping for several queried GUIDs
  • Fix: [mciwrapper.cpp] in mciSendCommand(MCI_PUT) wrapper trim the rect width to 1 pixel less that screen width to avoid strange artifacts on movie rendering (see Julia intro movies).
  • Fix: [player.cpp] fixed player file buffer length
  • Fix: [player.cpp] adapted to more recent drmp3.hpp version
  • Fix: [dxwndhostView.cpp] applied restricted-map solution to SHAREDHOOK configurations
  • Add: [dxhelper.cpp] added several missing GUIDs
  • Add: [user32.cpp] added ifdef-ed tracing wrappers for DestroyCursor and CreateIconIndirect

New in DxWnd 2.05.68 Beta (Mar 31, 2021)

  • fix: [user32.cpp] simulate positive result to SM_MIDEASTENABLED and SM_DBCSENABLED if CUSTOMLOCALE is set. fixes "Dragon Fantasy II".
  • fix: [dinput.cpp] fixed bugged handling of returned data elements in GetDeviceData wrapper. Adapted logic for variable DIDEVICEOBJECTDATA structure for IDirectInput1-7 vs. IDIrectInput8 cases. Fixes many mouse input wild control cases.
  • fix: [dwhide.cpp] tentative handling of sync between main win status and hider background window
  • fix: [user32.cpp] fixed log message in UnregisterClassA wrapper
  • fix: [winmm.cpp] conditioned waveOutGetPosition bypass to new BYPASSWAVEOUTPOS flag. Fixes Russian Neighbours from Hell movies.
  • fix: [GUI] recovered handling of unknown program path with '?' in Path field

New in DxWnd 2.05.67 Beta (Mar 24, 2021)

  • fix: [winexec.cpp] applied correct return codes in WinExec emulator
  • fix: [winmm.cpp] added bypass for faulty waveOutGetPosition. Fixes "Rayman éveil"
  • fix: [winmm.cpp] applied volume lock also in waveOutSetVolume wrapper
  • fix: [gdi32.cpp] applied REFRESHONREALIZE window invalidate also in AnimatePalette wrapper. Fixes "Rayman éveil"
  • fix: [dibdump.cpp] handled case where the program changes its working folder
  • fix: [gdi32.cpp] copied active palette to working DC in SetDIBitsToDevice wrapper. Fixes "Rayman éveil".
  • fix: [ddraw.cpp] added (useless?) wrapper for IDirectDraw3::GetSurfaceFromDC
  • fix: [ddrawex.cpp] fixed (deleted) hooking of ddraw session to recover "Theocracy" crash
  • fix: [ole32.cpp] added special case for IDIrectDraw3 object
  • fix: [user32.cpp] added wrapper to LoadCursorFromFileA/W to handle fake CD/HD. Fixes "Rayman éveil" cursor loaded from fake CD.
  • fix: [user32.cpp] in menu ASCII->WIDE translation, handle the case where lpmii->dwTypeData == NULL. Fixes "The Princess".
  • fix: [blacker.cpp] recompiled to make it work with new data structures
  • add: [GUI] added preliminary copyright notice in Help->About panel
  • add: [lgpl-3.0.txt] added copy of GNU LGPL 3.0 document

New in DxWnd 2.05.66 Beta (Mar 12, 2021)

  • fix: [user32.cpp] added FIXALLWINDOWS tweak to set fixed coordinates for all non-child windows. Fixes the window movement problems in "Aura Journey Beyond".
  • fix: [kernel32.cpp]set multi-process hook mode automatically when hooking child processes. Fixes "Space Clash" problems after release v2.05.40.
  • fix: [dxwnd.cpp] added array bounds check in targetmap access. Fixes GUI crash after 255th configured task.
  • fix: [kernel32.cpp] fixed processing of AppName & CommandLine fields in CreateProcess* wrappers. Required in "Agile Warrior F-111X".
  • fix: [ddraw.cpp] improved logic to detect video mode in case of unsupported legacy ddraw
  • fix: [dxwcore.cpp user32.cpp] fixed window title handling for ANSI vs. UNICODE text
  • fix: [kernel32] added initialization of GetDriveType* original addresses to avoid "Space Clash" crash on Win10.
  • add: [GUI] added the "Additional shims" field to apply Microsoft shims with environment variables
  • add: [kernel32.cpp] added SHAREDHOOK option
  • add: [winexec.cpp] preliminary support for SHAREDHOOK on WinExec

New in DxWnd 2.05.65 Beta (Mar 3, 2021)

  • fix: [sdl.cpp] fixed handling of SDL2 screen refresh
  • fix: [ddraw.cpp] fixed IDirectDrawSurface7::Unlock wrapper. Fixes "Scooby Doo Case File #2" blit errors, thanks to Ewa Ulinska notification.
  • fix: [dxhook.cpp] enhanced SetHook procedure to allow NULL reference to saved original address
  • fix: [dxhelper.cpp] added decoding for D3DRENDERSTATE D3D8 codes
  • fix: [hd3d.cpp] fixed prototype for GetRenderState wrapper
  • fix: [dinput.cpp] bypass of the error in SetProperty if the device is acquired. Fixes "Tytus Romek I A'Tomek".
  • fix: [kernel32.cpp] fixed IsDBCSLeadByte wrapper crashing when IsDBCSLeadByteEx is unhooked.
  • add: [gdi32.cpp user32.cpp] added FIXASPECTRATIO flag. Needed in "Sherlock Holmes - Silver Earring" in widescreen videos
  • add: [flash.cpp] defuse flash timebomb tweak
  • add: [hd3d7.cpp hd3d.cpp] added dynamic fog control
  • add: [kernel32.cpp] log flag to trace file I/O operations

New in DxWnd 2.05.64 Beta (Feb 8, 2021)

  • add: [kernel32.cpp] added wrappers for GetCPInfoExA, GetCPInfoExW, IsDBCSLeadByteEx calls
  • fix: [kernel32.cpp] made call to LCIDToLocaleName dynamic to preserve WinXP compatibility
  • fix: [user32.cpp] added wrappers for LoadMenuA, SetMenuItemInfoA, InsertMenuItemA for codepage support
  • fix: [dxwnd.h] made CodePage and Locale fields of UINT type to fix value overflows
  • fix: [sdl.cpp] partial fix for SDL2 support
  • add: [GUI] bosskey toggle

New in DxWnd 2.05.63 Beta (Feb 1, 2021)

  • fix: [user32] DrawTextA and DrawTextExA wrappers for locale support when string length is passed as argument
  • fix: [user32] DrawText* log messages
  • fix: [user32] SetWindowTextA wrapper in locale support when window is (unexpetedly) ASCII type
  • fix: [gdi32.cpp kernel32.cpp] GetCPInfo wrapper moved from wrong gdi32 to correct kernel32 module
  • fix: [user32.cpp] improved logging for CharNextA and CharPrevA wrappers
  • fix: [kernel32.cpp] fixed CreateProcess* wrappers for extended injection when there are arguments in the argument line
  • add: [gui] Added "patch:FixDCColorDepth" tweak to set FIXDCCOLORDEPTH flag

New in DxWnd 2.05.62 Beta (Jan 26, 2021)

  • fix: [GUI] added codepage selection list, doubleclick event on tweaks lists
  • fix: [dxhook.cpp] improved & fixed hexdump routine
  • fix: [hd3d.cpp] code cleaning
  • fix: [kernel32.cpp] fixed potential recursions on file I/O wrappers
  • fix: [mciwrapper.cpp] added handling of MCI_NOTIFY on MCI_SET command for "Little Witch Parfait".
  • fix: [mciwrapper.cpp] tentative handling of MCI_WHERE with MCI_ANIM_WHERE_SOURCE / MCI_ANIM_WHERE_DESTINATION for "Little Witch Parfait".
  • fix: [user32.cpp] locale handling in DialogBoxParamA and DialogBoxIndirectParamA wrappers.
  • fix: [user32.cpp winmm.cpp] added PATHLOCALE fix to pathnames in LoadImageA and mmioOpenA
  • pathnames
  • fix: [dxhook.cpp] fixed flags dump in logfile header - now prints flags 13 through 16.
  • fix: [user32] fixed string terminator in ASCII->WCHAR conversion for locale settings.
  • fix: [user32.cpp] wrong prototype definition for ChangeDisplaySettingsExW wrapper
  • add: [advapi.cpp] new tweaks
  • add: [dxhook.cpp] new tweaks DISABLEDEP
  • add: [gdi32.cpp] experimental FIXDCCOLORDEPTH flag
  • add: [hd3d.cpp] added wrappers for D3D8/9 CheckDeviceMultiSampleType, CheckDeviceFormat, GetDeviceCaps
  • add: [user32.cpp] debug log wrapper for LoadStringA
  • add: [opengl.cpp] new GLEXTENSIONSTRIM flag
  • add: [user32.cpp] wrapper for EnumDisplaySettingsW call
  • add: [vbasic.cpp] experimental hook to VB6 DllFunctionCall

New in DxWnd 2.05.61 Beta (Jan 7, 2021)

  • fix: [ddraw.cpp] refresh on SetPalette to primary surface. Fixes "Little Ida" Korean game during transitions.
  • fix: [winmm.cpp] separated error codes from mci and mmio calls since ther codes are overlapped
  • fix: [ddraw.cpp] hooked DirectDrawEnumerate* calls also when ddraw hook is "none" to allow HIDEDESKTOPMONITOR feature
  • fix: [ddtexture.cpp] initialization log message issued just once
  • fix: [ddtexture.cpp] handling of Min/MaxTexX/Y values to speed up operations
  • fix: [ogltexture.cpp] completed & fixed texture handling for OpenGL textures
  • fix: [ddtexture.cpp d3dtexture.cpp ogltexture.cpp] full texture handling review
  • fix: [winproc.cpp] bug fix in virtual keys handling causing program crash
  • fix: [GameIcons.cpp] bug fix in icon conversion from hex to binary causing possible crash
  • fix: [hd3d.cpp] fixed log messages for IDirect3DDevice8::GetAvailableTextureMem method
  • add: [opengl.cpp] X-Ray effect for 3D OpenGL rendering
  • add: [kernel32.cpp] PATHLOCALE flag

New in DxWnd 2.05.56 Beta (Oct 2, 2020)

  • Fix: [mciplayer.cpp] integrated with updated dr_mp3.h v0.6
  • Fix: [mciwrapper.cpp] fixed bug that bypasses actual execution of mciSendCommand call!!
  • Fix: [hd3d.cpp] fixed EnumAdapterModes8/9 wrappers returning valid refresh rate for emulated video modes. Fixes "LEGO Star Wars the Complete Saga" with emulated video modes.
  • Fix: [ddraw.cpp] fixed SetClipper wrapper crashing when a surface has no clipper interface. Fixed "Shadow Company".
  • Add: [dsound.cpp] ReplaceDSoundDLL tweak
  • Add: [winmm.cpp] complete debug logging of winmm.dll mixer calls
  • Add: [winmm.cpp] winmm error code logging as string
  • Add: [winmm.cpp dxwcore.cpp dxhook.cpp] new EMULATECDMIXER flag
  • Add: [winmm.cpp] new PLAYSOUNDFIX flag. Fixes "NBA Full Court Press" audio initialization
  • Add: [mmdump.cpp] new mmdump tool

New in DxWnd 2.05.55 Beta (Sep 11, 2020)

  • add: [advapi.cpp] virtual registry dump on dxwnd.log
  • fix: [advapi.cpp] better logging of query results
  • fix: [advapi.cpp] fixed RegCreateKey/Ex wrapper logic not to prevent real key creations. Fixes "Warcrafs II BNE" RIP.
  • add: [ddblit.cpp ddraw.cpp ddtexture.cpp] added SPONGEBOBHACK tweak to make SpongeBob's white textures not transparent
  • add: [hd3d7.cpp] added FORCECOLORKEYOFF tweak
  • fix: [mciwrapper.cpp] fixed handling of MCI_PLAY with no FROM/TO arguments. Fixes "Asghan" track selection
  • fix: [mciwrapper.cpp] fixed handling of MILLISECONDS time format
  • fix: [mciwrapper.cpp] fixed LOCKMCIDEVICEID in case of multiple MCI_OPEN calls
  • fix: [mciwrapper.cpp] fixed default values for MCI_INFO product and identity queries
  • fix: [mciwrapper.cpp] fixed static allocation for strings returned by MCI_INFO product and identity queries
  • fix: [mciwrapper.cpp] fixed MCI_STATUS_START logging
  • fix: [mciwrapper.cpp] better logging
  • fix: [oglblt] cleanup of oglContext structure to avoid possible leakages
  • fix: [user32.cpp] revised wrappers for CallWindowProcA/W to avoid possible recursions

New in DxWnd 2.05.54 Beta (Aug 14, 2020)

  • Fix: [advapi.cpp] added RegEnumKey/Ex wrappers the handling of virtual registry
  • Fix: [advapi.cpp] fixed bug in query virtual registry value when lpcbData is NULL
  • Fix: [advapi.cpp] ignore leading blanks in hex continuation lines of virtual registry
  • Fix: [advapi.cpp] added GetUserNameA wrapper
  • Fix: [mciwrapper.cpp] fixed mciSendString parsing of play command
  • Fix: [mciplayer.cpp mcplayer.h mciwrapper.cpp] handling of different notifications for PLAY/STOP/PAUSE/RESUME commands
  • Fix: [mciwrapper.cpp] wrapper for mciSendCommandW call
  • Fix: [mciwrapper.cpp] mciSendCommand MCI_INFO returning non static informations for identity and product fields
  • Fix: [mciwrapper.cpp] mciSendString path translation for virtual CD/HD in case of double-quoted pathname
  • Fix: [msvfw.cpp] logging of flags captions
  • Add: [opengl.cpp] added GLFIXCLAMP flag. Fixes "Bugdom" textures
  • Add: [kernel32.cpp] ifdefed conditional tracing of thread creations
  • Fix: [kernel32.cpp] proper check for fake CD/HD drive in GetDiskFreeSpace wrapper

New in DxWnd 2.05.53 Beta (Jul 24, 2020)

  • fix: [ddraw.cpp gdi32.cpp] revised palette handling to manage reserved palette entries. Fixes "Baku Baku" etc.
  • fix: [ddraw.cpp] added setting of color depth in status panel for FixPixelFormat routine
  • fix: [kernel32.cpp] fixed dxwTranslatePathW routine. Fixes "Jack Carlton's Soccer Nation" file loading with relative paths
  • fix: [ddraw.cpp] fix IDirectDrawSurface::SetEntries wrapper trimming dwcout > 256. Useful for "Jack Carlton's Soccer Nation" palette.
  • add: [ddraw.cpp gdi32.cpp] added logging of actual palette when actual color depth is 8
  • fix: [dsound.cpp] fix in CreateBuffer wrapper to trim unsupported capabilities. Fixes "KA52 Team Alligator" missing sound.
  • fix: [dsound.cpp] complete #ifdef-ed wrapping of all methods for both primary and secondary buffers.
  • add: [GUI] added handling of program command line, deleted SETCMDLINE flag.
  • fix: [GUI] in "Debugger mode" start, now DxWnd debugger ignores exceptions for the first 5 seconds from program start.
  • fix: [advapi.cpp] implemented "path" and "work" tokens made different. Useful for "Jack Carlton's Soccer Nation" configuration.

New in DxWnd 2.05.52 Beta (Jun 28, 2020)

  • Fix: [kernel32.cpp] fixed missing function pointers initialization
  • Fix: [avifile.cpp] fixed AVIStreamReadFormat wrapper to handle *lpcbFormat==-1. Fixes "Wings of Destiny".
  • Fix: [ddraw.cpp] fixed Set/GetClipList wrappers to make proper regions scaling
  • Fix: [ddraw.cpp] emulated ZBUFFER detach in DeleteAttachedSurface wrapper. Fixes "Jack Charlton's Soccer Nation" termination procedure
  • Fix: [ddraw.cpp] deleted reference counter in DeleteAttachedSurface wrapper detach of backbuffer surface (to be tested)
  • Fix: [ddraw.cpp] fixed SetClipper wrapper for backbuffer clipper set with HWND reference. Fixes "Caponata".
  • Add: [ddraw.cpp] added MAXCLIPPER option. Fixes "Full Pipe".
  • Add: [winmm.cpp] more detailed log in mixerSetControlDetails wrapper
  • Add: [InjectDebug.cpp] trace of debug messages in debug start mode
  • Add: [InjectDebug.cpp] timestamp of log messages for debug start mode
  • Add: [InjectDebug.cpp] fixed InjectDebug for debug start mode
  • Add: [dxwndhost.cpp] added dialog to advertise DxWnd help pages

New in DxWnd 2.05.51 Beta (May 25, 2020)

  • Fix: [user32.cpp] fixed SUPPRESSMENUS tweak, now working with "Bust-a-Move 4" and other fames
  • Fix: [kernel32.cpp] added wrappers for CreateDirectoryA/RemoveDirectoryA
  • Fix: [kernel32.cpp] when dynamically loading an executable file, bypass hooking. Fixes "State of War 2".
  • Fix: [kernel32.cpp] fixed GetVolumeInformationA wrapper in case of NULL path. Fixes "Diggles".
  • Fix: [hooktable.cpp] added DXWHOOK_EXTEND flag to msvfw32.dll to extend GDI stretching. Fixes "Robotron X" movies (and many others, probably)
  • Add: [mciwrapper.cpp] added SUPPRESSCDAUDIO flag
  • Add: [mciwrapper.cpp] added RESERVEMCIDEVICE flag
  • Fix: [GUI] fixed some clipped text strings
  • Fix: [GUI] added warning message when trying to run a second task in single-hook mode

New in DxWnd 2.05.50 Beta (May 4, 2020)

  • fix: [kernel32.cpp] fixed logic of fake CD/HD in GetDriveTypeA/W, SetCurrentDirectoryA/W wrappers
  • fix: [kernel32.cpp] eliminated the "." and ".." files from root fake device in FindFirstFileA wrapper
  • fix: [kernel32.cpp] fixed file attributes in FindFirstFileA / FindNextFileA wrappers when listing files from fake CD folder
  • fix: [winmm.cpp] fixed routing of MCI messages to CD audio emulation, now based on the effective virtual device ID opened by MCI_OPEN and until MCI_CLOSE. Fixes "Gooch Grundy's X-Decathlon".
  • fix: [kernel32.cpp] GetVolumeInformationA wrapper now returns information with precedence for fake drives so that you can define a fake drive also over an existing drive
  • fix: [user32.cpp] fixed GetUpdateRect wrapper to handle possibly NULL lpRect value. Fixes Silent Storm 2 & 3
  • fix: [GUI] fixed flags without initialized value
  • fix: [GUI] added MB_SYSTEMMODAL | MB_TOPMOST to kill process messagebox to make sure it is always visible and clickable

New in DxWnd 2.05.49 Beta (Apr 16, 2020)

  • Fix: [kernel32.cpp] fixed bad test for INJECTSON flag.
  • Fix: [hdxgi.cpp] fixed prototype of CreateDXGIFactory2 method
  • Fix: [hdxgi.cpp] fixed DXGISetFullscreenState wrapper
  • Fix: [sdl.cpp] fixed SDL_PeepEvents wrappers that have different prototypes in SDL and SDL2
  • Add: [dwmapi.cpp] added trace hooks for a few dwmapi calls
  • Add: [dxhelper.cpp] added some IDXGI GUID for tracing
  • Add: [opengl.cpp] added ifdef-ed trace logs for several calls
  • Fix: [GUI] gui dxwnd.log file renamed as dxwnd.gui.log
  • Add: [GUI] added run with autolog mode for non-expert users

New in DxWnd 2.05.48 Beta (Mar 20, 2020)

  • Fix: [GUI] set hscroll to LaunchPath field to allow up to MAX_PATH field length
  • Fix: [ddraw.cpp queryint.cpp] added late Release on backbuffer surfaces. Fixes resource leakage in "Goman"
  • Fix: [dxwcore.cpp] fixed (again) dxwCore::AdjustWindowFrame to propagate clipping style flags. Fixes "C&C Red Alert 2"
  • Fix: [oglblt.cpp] revides condition for ogl context rebuild. Reduces leakage on "Dungeon Keeper 2".
  • Add: [user32.cpp] added DISABLEWINHOOKS debug flag
  • Add: [hdsetup.cpp] added wrapper for dsetup.dll calls. Used for "Starfleet Command III"
  • Add: [advapi.cpp] added wrapper for RegSetValueA call. Used in "Loony Labyrinth Pinball"
  • Add: [ddraw.cpp] added tracing wrappers for RestoreAllSurfaces and GetDeviceIdentifier methods
  • Add: [ddraw.cpp] added tracing log messages for WaitForVerticalBlank method
  • Add: [hd3d7.cpp] added tracing wrappers for Get/SetTextureStageState methods
  • Add: [hd3d7.cpp] added tracing wrappers for AddrRef/Release/QueryInterface texture methods

New in DxWnd 2.05.47 Beta (Mar 2, 2020)

  • fix: [user32.cpp] on window mode, RegisterRawInputDevices wrapper suppresses RIDEV_CAPTUREMOUSE flag
  • fix: [user32.cpp] added handling of WM_ACTIVATE WM_NCACTIVATE messages in DefWindowProc wrappers. Fixes the focus detection in "Screamer 4x4" game.
  • fix: [hd3d.cpp] fixes Adapter value in IDirect3D8/9 GetAdapterCount wrappers to reflect the same adapter used in other calls like EnumAdapterModes. Fixes "Scallywag" (and likely others ...) in multi-monitor configurations.
  • fix: [dxhook.cpp dxwcore.cpp ...] moved GetDeviceGammaRamp call outside form dxwnd.dll DLLMain() call. Fixes hangs of GUI and crashes on Win10 after build 18362.53 (see https://answers.microsoft.com/en-us/insider/forum/all/getdevicegammaramp-api-hangs-in-windows-10-insider/6a5d6719-d2b9-4666-aad7-c94d58d6adeb?auth=1 )
  • fix: [mciwrapper.cpp] in mciSendString wrapper, handling of "open path ..." command strings in case the path refers to a fake device. Fixes movie play in "Goman" with fake CD device.

New in DxWnd 2.05.46 Beta (Feb 20, 2020)

  • Fix: [oglblt.cpp] fixed opengl blitter on window DC invalidation. Fixes "Re-Volt" with OpenGL renderer.
  • Fix: [KillProc.cpp] expanded GUI scans of process list from 250 to 2000 processes maximum. Fixes /r:n option in computers with more than 250 processes.
  • Fix: [dxwcore.cpp] fixed bug in INVERTMOUSEYAXIS option. Fixes "Sherlock Holmes - The Mystery of the Mummy"
  • Add: [dxhook.cpp kernel32.cpp] added SUPPRESSGLIDE flag
  • Add: [GUI] saving a backup file dxwnd.bak before saving changes to dxwnd.ini

New in DxWnd 2.05.45 Beta (Feb 6, 2020)

  • Add: [GUI] lock flag in virtual joystick panel. Enables / disables the use of middle mouse button to lock the virtual joystick.
  • Fix: [dinput.cpp comvjoy.cpp] rewrite of dinput interface for virtual joystick. Fixes "The Hulk"
  • Add: [ddraw.cpp] DUMPBLITSRC debug flag
  • Fix: [hd3d7.cpp] disabled HOT patching on Direct3DCreate and Direct3DCreateDevice API that are called also internally by D3D COM methods with stack corruption. Fixes "WhiteWater Rapids" in D3D 16bit color mode through hot patching.

New in DxWnd 2.05.44 Beta (Jan 30, 2020)

  • add: [ExpFinder.cpp] /p option for existing path matching report
  • fix: [sdl.cpp] preliminary overlay for sdl programs
  • fix: [dxwcore.cpp] deleted unused ANSIWIDE flag
  • fix: [hd3d7.cpp] EnumTextureFormats wrappers
  • fix: [sdl.cpp] Log buffer overflow. Fixes "Blob Wars" crash.
  • fix: [kernel32.cpp] fixed crash when GetDriveType argument is NULL. Fixes "Leadfoot Stadium Off-Road Racing" crash with fake CD.
  • add: [kernel32.cpp] added GetDriveTypeW wrapper.
  • fix: [ole32.cpp] fixed HookOLEClass to avoid possible mis-hooking of known libs. Fixes "Hulk".
  • fix: [comvjoy.cpp] added dinput8 DIPROP_JOYSTICKID handling to GetProperty wrapper. Found in "Hulk".
  • add: [winmm.cpp] wrapper for joySetCapure joyReleaseCapture calls. Fixes virtual joystick for "Agile Warrior F111X".
  • add: [dinput.cpp] fixed handling of virtual joystick in IDirectInputDevice8::GetDeviceStatus wrapper
  • add: [GUI] preliminary configuration for overlay features

New in DxWnd 2.05.43 Beta (Jan 23, 2020)

  • Fix: [dxwcore.cpp] fully revised handling of FPS and time stretching overlays
  • Fix: [ddraw.cpp] fix for DirectDrawEnumerate* callbacks to allow matching for default monitor with GUID==NULL.
  • Fix: [oglblt.cpp] opengl blitter resets the ddraw clipper. Fixes partial screen display for "Age of Empires".
  • Fix: [oglblt.cpp] better criteria for glContext renewal. Fixes "A.M.E.R.I.C.A No peace beyond the line" crashes.
  • Add: [oglblt.cpp] GL_LINEAR filtering conditioned to BILINEARFILTER flag.
  • Add: [oglblt.cpp] Blur effect, thanks to ddhack code.
  • Fix: [oglblt.cpp] FPS/time overlay drawn on top of ddraw surface instead of window DC. Less flickering.
  • Add: [kernel32.cpp] "patch:KillDeadlocks" tweak. Fixes "The Adrenned Offensive" 2004 game.
  • Fix: [GUI] right-click auto-select the item below the cursor.
  • Fix: [GUI] Status panel checking the proper item flags.
  • Add: FPS counters now always measured and showed on status panel.
  • Add: FPS logging.
  • Add: [dxemublt.cpp] Deinterlace_8_to_32 filter. Deinterlaces "Wing Commander III" movies in 8bpp color depth.
  • Fix: [dxwcore.cpp] new experimental FPS overlay with color inversion and quality font
  • Fix: [GUI] stronger handling for kill hotkey
  • New: [GUI] tabbed global configuration panel
  • Add: [GUI] "Hide on ESC key" global configuration flag

New in DxWnd 2.05.42 Beta (Jan 12, 2020)

  • Fix: [dxwcore.cpp] unified and fixed implementation for GUID string conversion sGUID()
  • Add: [ddraw.cpp hd3d.cpp hd3d7.cpp] handling of forced monitor id in ddraw and d3d1-9 sessions in fullscreen mode
  • Fix: [ddrawex.cpp] fixed handling of IDIrectDrawFactory object. Fixes "Stratego"
  • Fix: [ddrawex.cpp] added DirectDrawEx_Object GUID and DIERR_NOTBUFFERED error code
  • Add: [dinput.cpp] more wrapped methods in TRACEALL build, better logging
  • Add: [dinput.cpp] SUPPRESSDIERRORS flag now hides DIERR_UNSUPPORTED case in IDirectInputDevice::SetProperty
  • Fix: [hd3d7.cpp] fixed some log messages in Createdevice wrappers
  • Fix: [mciwrapper.cpp] handling of mciSendString tsmf secret hex format. Fixes "Disney's Hercules" CD sound emulation
  • Fix: [mciwrapper.cpp] handling of mciSendString "status cdaudio ready" command. Fixes "Disney's Hercules" CD sound emulation
  • Fix: [mciwrapper.cpp] handling of mciSendString plain "open cdaudio" command. Fixes "Fighting Force" CD sound emulation

New in DxWnd 2.05.41 Beta (Dec 28, 2019)

  • fix: [ddraw.cpp] now makes default "display" device visible by DirectDrawEnumerate* also with monitor filtering. Fixes "Battle Realms" on secondary monitor.
  • fix: [user32.cpp] fixed the fix in v2.05.40: AdjustWindowFrame replaced by dxw.HookwindowProc to hook the window procedure without altering the window position & style. Fixes "Jane's USAF" client window.
  • fix: [msvcrt.cpp] added wrapper for fopen call for fake CD/HD redirection. Fixes "Iron Storm" DxWnd RIP.
  • fix: [hd3d.cpp] some bad log messages in CreateAdditionalSwapChain & BeginStateBlock8 wrappers.
  • fix: [user32.cpp] added check for ATOM values in KILLBLACKWIN string compare. Added "Curtain" class to WIDECHAR black classes.
  • add: [winproc.cpp] ADAPTMOUSESPEED flag.
  • add: [kernel32.cpp] GetLogicalDriveStringsW wrapper (untested).

New in DxWnd 2.05.40 Beta (Dec 18, 2019)

  • Fix: [ddraw.cpp] restored use of DDLOCK_NOSYSLOCK flag for ddraw surface Lock: required to avoid "Battle Realms" block.
  • Fix: [user32.cpp] added missing AdjustWindowFrame call in CreateWindow* wrappers. Fixes "Loe Runner Online" and possibly other pure-GDI32 games.
  • Fix: [dxwndhostView.cpp] added missing initialization of task index.
  • Fix: [injectSuspended.cpp] in case of injection errors, the GUI now shows only the first error message and skips all following operations.
  • Fix: [dxwnd.cpp] mutex lock now made in a separate and endless thread to avoid losing the DXW_RUNNING state
  • Add: [users32.cpp] experimental SUPPRESSMENUS tweak to bypass the SetMenu call.

New in DxWnd 2.05.39 Beta (Dec 12, 2019)

  • add: [binkw32.cpp] more #ifdef-ed tracing wrappers
  • add: [gdi32.cpp] more #idef-ed tracing wrappers and better tracing
  • add: [kernel32.cpp] added CreateFileW wrapper
  • add: [winmm.cpp] added mmioOpenW wrapper
  • add: [user32.cpp] added #idef-ed tracing wrappers for menu handling calls
  • fix: [dxhook.cpp] fixed window style settings for HD DPI scaling
  • fix: [ole32.cpp] fixed CoUnitialize wrapper log message
  • fix: [dxmapping.cpp, toggle_fs.cpp] using GetMonitorInfo original function pointer
  • fix: [user32.cpp] fixed several #ifdef-ed tracing messages
  • fix: [dxhook.cpp] fixed MESSAGEHOOK processing with repetition of the operation to intercept obfuscated programs. Needed for "Swords Online"
  • fix: [kernel32.cpp] enabled hot patching for GetProcAddress call. Needed for "Swords Online"
  • fix: [user32.cpp] enabled hot patching for GetMessagePos, GetMessageA/W, PeekMessageA/W calls. Needed for "Swords Online"

New in DxWnd 2.05.38 Beta (Dec 4, 2019)

  • Fix: [dsound.cpp] fixed Directsound::SetCooperativeLevel wrapper for "Championship Manager 2006".
  • Fix: [dxhook.cpp] fixed hGet routine buffer initialization. Fixes a crash when compiled in debug mode.
  • Fix: [hd3d.cpp] fixed D3D hook routine for "Hot patch" mode.
  • Fix: [mciplayer.cpp] MCI_NOTIFY message sent on MCI_PAUSE/STOP events only when requested by MCI_NOTIFY
  • Fix: [mciwrapper.cpp] mciSendString "play" and "seek" commands directed to CD emulation only for "cdaudio" device or alias. Fixes "play" command of midi files in "3-D Ultra Pinball Creep Nights".
  • Fix: [user32.cpp] fixed args logging in GetRawInputDeviceInfo wrapper for RIDI_DEVICEINFO / RIM_TYPEMOUSE case.
  • Mod: [bchunk.c] simplified bchunk.exe tool interface - see syntax helper.
  • Add: [dxwndHostView.cpp] added incomplete path marker '?'
  • Add: [gdi32.cpp] #ifdef-ed wrapper for debug tracing of GetObjectW, GetCurrentObject, GetWindowExtEx, SetWindowExtEx
  • Fix: [gdi32.cpp] complete tracing of GetObjectA/W arguments
  • Fix: [dxgi] tracing of all wrappers in D3D logging cathegory (renamed "OutTrace" to "OutTraceD3D").
  • Fix: [kernel32] removed ".dll" suffix in absolute path transformation in LoadLibrary wrapper. Fixes "The Rage".
  • Fix: [kernel32] don't try absolute path transformation on absolute paths in LoadLibrary wrapper

New in DxWnd 2.05.37 Beta (Nov 25, 2019)

  • Add: [ole32.cpp] HookOLEClass routine to hook new dlls imported by CoCreateInstance calls
  • Add: [helpmsgs.cpp] added multimedia MM_* macro translation for logging.
  • Add: [mciwrapper.cpp] added hexdump log for mciSendMessage argument
  • Fix: [mciplayer.cpp] added handling of MCI_NOTIFY request on MCI_PAUSE/STOP events. Fixes "Jimmy Whites 2 Cueball" CD tracks play.

New in DxWnd 2.05.36 Beta (Nov 21, 2019)

  • Fix: [dxhook.cpp] reintroduced (in addition) old hook schema to catch unlinked ddraw/d3d objects.
  • Fix: [dxhook.cpp winmm.cpp] eliminated need for "No zero aux device id" flag.
  • Fix: [mciwrapper.cpp] fixed handling of MCI_SYSINFO message. Fixes CD sound emulation in "Interstate 76" and "Interstate 76 Nitro Pack".
  • Fix: [hd3d.cpp] wrong API name "IDirect3DDevice8::ShowCursor" in logging d3d9 wrapper.
  • Fix: [ole32.cpp] fixed GUID/RIID strings logging.
  • Fix: [ole32.cpp] logging of decoded OLE error 0x80012 .
  • Fix: GUI - changed "Sound" flags layout.
  • Mod: [binkw32.cpp ddblip.cpp ddcreates.cpp ddraw.cpp kernel.cpp queryint.cpp version.cpp xinput.cpp] logging code review.

New in DxWnd 2.05.34 Beta (Nov 5, 2019)

  • Fix: [user32.cpp] fix BeginPaint wrapper rcRect scaling. Fixes "Railroad Tycoon II" partial blits
  • Fix: [gdi32.cpp] CreateICA/W wrappers fixed for tracing only. To be investigated.
  • Add: [user32.cpp] conditional compilation for tracing of rect manipulation functions
  • Add: [user32.cpp] hooking for SetWindowsHook CBT routine with SCALECBTHOOK flag. Fixes many "Spearhead" problems
  • Add: [user32.cpp] added GetMessagePos wrapper with mouse scaling. Fixes unobfuscated versions of "Sword Online" client.
  • Add: [dumphbmp.cpp] added DUMPBITMAP debug option

New in DxWnd 2.05.32 Beta (Oct 28, 2019)

  • Fix: global code restyling for logging in WINMM, DINPUT, DSOUND, ADVAPI
  • Fix: [mciwrapper.cpp] when paused, MCI_PLAY with no track specification is made equivalent to a MCI_RESUME. Fixes "O.D.T. Escape ... or Die Trying" CD sound resume
  • Fix: [user32.cpp gdi32.cpp] complete rewrite of clipper handling routines. Fixes "688(I) Hunter Killer" and possibly much more
  • Fix: [user32.cpp] deleted duplicate entry of ScrollDC wrapper causing recursion with "Hot Patch" hook. Fixes "688(I) Hunter Killer" sonar panel
  • Fix: [advapi.cpp] fixed bug in SeekValueName internal routine that could cause crash in some conditions
  • Fix: [gdi32.cpp user32.cpp] additions and fixes of regions handling. Now "688(I) Hunter Killer" is ok.
  • Fix: help pages
  • Add: [winmm.cpp] wrapper for sndPlaySound and PlaySound calls for virtual CD/HD path.
  • Add: [dsound.cpp] new DSINITVOLUME flag. Fixes "O.D.T. Escape ... or Die Trying" movie sound volume
  • Add: [dxwndhostView.cpp] "View -> log Tail" menu command
  • Add: [dsound.cpp] complete tracing (in TRACEALL build) of IDIrectSound and IDirectSoundBuffer methods
  • Add: opengl lier proxy to trim all OpenGL extension strings

New in DxWnd 2.05.32 Beta (Oct 18, 2019)

  • Fix: [helpmsgs.cpp] added many missing message codes to ExplainWinMessage helper
  • Fix: [gdi32.cpp] complete rewrite of regions handling
  • Fix: [gdi32.cpp] code reorganization: logging with ApiRef tags, #ifdef'ed TRACEALL calls and more ...
  • Fix: [user32] aligned GetUpdateRgn wrapper to new gdi region schema
  • Fix: [dxhook.cpp] NOZEROAUXDEVID fix in fake CD audio initialization. Fixes "Airfix Dogfighter"
  • Fix: [kernel32.cpp] fixed GetLogicalDriveStringsA wrapper causing possible exceptions. Fixes "Nox".
  • Fix: [mciwrapper.cpp] fack CD returns default "fakecd". Fixes "Sentinel Returns" CD audio.
  • Fix: [winmm.cpp] default device id for NOZEROAUXDEVID is now 0xBEEF again.
  • Add: [MousePositionDialog.cpp] "Mouse position" panel now shows 4 different types of mouse position

New in DxWnd 2.05.31 Beta (Oct 15, 2019)

  • Fix: [mciwrapper.cpp] fixed STRETCHMOVIE for mciSendCommand activated movies. Fixes "Three Dirty Dwarves" movie.
  • Add: [InjectProxy.cpp] added INJECTPROXY mode, some code reorganization too.
  • Add: [MousePositionDialog.cpp] added "Mouse position" panel

New in DxWnd 2.05.30 Beta (Oct 8, 2019)

  • Fix: [hdxgi.cpp] fixed window settings to DXGI swap chain
  • Fix: [hdxgi.cpp] apply FORCEWINRESIZE to DXGI swap chain
  • Fix: [hdxgi.cpp] apply NODISABLEPRINT to DXGI swap chain
  • Fix: [hdxgi.cpp] apply frame skip & delay to DXGI Present method
  • Fix: [hdxgi.cpp] fixed method names in log, now using actual Object::Method syntax
  • Fix: [hd3d.cpp] added wrapper for Present method of Swap Chain. Extends FPS control.
  • Fix: [hd3d.cpp] fixed method names in log, now using actual Object::Method syntax
  • Fix: [mciwrapper.cpp] cleared MCI_MCIAVI_PLAY_FULLSCREEN and MCI_MCIAVI_PLAY_FULLBY2 flags in MCI_PLAY in window mode. Fixes "Three Dirty Dwarfs" fullscreen movie.
  • Fix: [user32.cpp] added "DDFullBck" window class to black windows to be suppressed by KILLBLACKWIN flag. Fixes "Three Dirty Dwarfs" START.AVI movie.
  • Fix: [mciwrapper.cpp] fixed prototype of mciSendCommand
  • Fix: [dxwndhostView.cpp] fixed /r:n option
  • Add: [dxhelper.cpp] added MCI_MCIAVI_PLAY* flags to helper
  • Add: [kernel32.cpp] new STRETCHPERFREQUENCY flag. Works for time stretching with "Gun Wings"

New in DxWnd 2.05.29 Beta (Oct 1, 2019)

  • fix: [user32.cpp] NOFILLRECT option made active also with no GDI emulation
  • fix: [iatpatch.cpp] merged log messages in a single line to avoid multiple timestamps in log
  • fix: [opengl.cpp] erased coordinate scaling in glRasterPos* functions since they operate in logical coordinates. Fixes "Nanosaur Extreme"
  • fix: [kernel32.cpp] fixed internal dxwTranslatePathA routine possible exception when mapping == NULL. Fixes "Three Dirty Dwarfs" exception with CD emulation.
  • fix: [kernel32.cpp] aligned WIDECHAR dxwTranslatePathW to ASCII counterpart dxwTranslatePathA
  • fix: [hdxgi.cpp] fixed HookDXGISwapChain hooker for DCGI SwapChain object. Fixes crash in "Varstray"
  • fix: [hdxgi.cpp] fixed DXGI CreateSwapChain wrapper to properly stretch the swap chain to window. Fixes scaling in "Varstray"
  • add: [kernel32.cpp] FAKEGLOBALATOM tweak. Fixes "Three Dirty Dwarfs" bugged protection.
  • add: help page for Locale tab and some more thanks
  • mod: general code change to get rid of empty "if" statements on stream build

New in DxWnd 2.05.28 Beta (Sep 25, 2019)

  • Fix: [excepthandler.cpp] tracing of the whole assembly instruction
  • Fix: [kernel32.cpp] fixed GetLogicalDriveStringsA wrapper in case used with insufficient space. Fixes "Tie Fighter 95" exception.
  • Fix: [hd3d11.cpp] fixed TRACEALL wrapper for D3D11 Device
  • Fix: [hd3d11.cpp] added missing hook to IID_IDXGIFactory1 object in CreateDXGIFactory wrappers
  • Fix: [hd3d7.cpp] split handling of d3dim.dll and d3dim700.dll. To be tested thoroughfully
  • Fix: [hdxgi.cpp] added IID_IDXGIAdaptyer1 trace, added IID_IDXGIFactory1 hook
  • Fix: [binkw32.cpp, bink.h] implementation of SKIPMOVIE for bink player.
  • Add: [hd3d11.cpp] more log info
  • Add: [winmm.cpp] NOZEROAUXDEVID flag. Fixes "Tie Fighter 95" audio
  • Add: [gdi32.cpp] NOSETPIXELFORMAT flag. Fixes "Heretic II" on Wine/Linux
  • Add: [opengl.cpp] GLEXTENSIONSLIE flag. Could fix "Oni".
  • Add: improvements in expfinder tool
  • Add: bink.h file collection for 7 releases

New in DxWnd 2.05.27 Beta (Sep 16, 2019)

  • fix: [kernel32.cpp] check PeekMessageA pointer before using it. Skips a crash in "FIFA 97" window version
  • fix: [ddraw.cpp] deleted duplicated HookLibraryEx call
  • fix: [hd3d.cpp, hooktable.cpp] HookDirect3D function split into two for d3d8 and d3d9 (preliminary ... not working as intended yet)
  • fix: [user32.cpp] improvement in SWALLOWMOUSEMOVE flag suggested by Kayel Gee: use MaxFPS when defined. Improves "Akte Europa".
  • fix: [advapi.cpp] fixed sscanf format in hex value parsing, format must be %x rather than %#x.
  • add: [ddblit.cpp] new functionality suggested by Kayel Gee: flag LIMITFLIPONLY
  • add: [ddraw.cpp, hd3d.cpp, kernel32.cpp] new flag DIRECTXREPLACE

New in DxWnd 2.05.26 Beta (Sep 4, 2019)

  • Fix: [ddraw.cpp] fixed pixel format settings for NOALPHACHANNEL case
  • Fix: [oglblt.cpp] fixed in case the HDC is invalidated. Fixes DK2 intro movies.
  • Fix: [sdl.cpp] on display overlay error because of locked surface, unlock it and retry. Fixes "20000 Leguas de Viaje Submarino" intro movies.
  • Fix: [dinput.cpp] fixed GetDeviceData wrapper crashing when logging read data in debug mode and small DIDEVICEOBJECTDATA array. Fixes "Gilbert Goodmate" demo crash when logging DirectInput operations.
  • Fix: [dinput.cpp] fixed GetDeviceData wrapper to implement EMULATERELMOUSE also in this method. Fixes "Gilbert Goodmate" mouse control.
  • Fix: fixed mci logic: MCI_CLOSE no longer stops playing audio tracks. Fixes "Mad Trax" that issues MCI_PLAY and MCI_CLOSE in sequence.
  • Fix: [winproc.cpp] force release of mouse clipper on Alt-F4 termination.
  • Add: [dinput.cpp] added FORCEABSAXIS and FORCERELAXIS tweaks to force DirectInput axis mode. FORCERELAXIS fixes "Sacked - Your last day" a.k.a. "Gefeuert" mouse control on my portable pc.
  • Add: [kernel32.cpp] more logging on DeviceIoControl wrapper

New in DxWnd 2.05.25 Beta (Aug 17, 2019)

  • add: startup settings, with help
  • add: more GUID identifications in log
  • add: ESC key to minimize DxWnd to icon tray
  • add: check on valid Win32 program header for hooked task
  • fix: mci wrapper using a correct fake device id for CDAudio aux device. Thanks to UCyborg. Fixes "Interstate '76"
  • fix: [oglblt.cpp] added transformation routine for 24 bpp color depth. Fixes "Runaway" movies
  • fix: [queryint.cpp] fixed gamma ramp detour when there's no real primary surface. Fixes "Runaway" with opengl & gdi renderers
  • fix: [gdiblt.cpp] fixed gdi and opengl blitters for source/dest RECT smaller than full surface. Fixes "Runaway" with gdi and opengl renderer
  • fix: [ddraw.cpp] handling of BlrtFast DDBLTFAST_DONOTWAIT flag
  • fix: [init.cpp] added proxy interlock. Now it is possible to copy multiple proxy dlls to the same folder

New in DxWnd 2.05.24 Beta (Jul 29, 2019)

  • fix: [oglblt.cpp] fixed RGB->BGR color conversion in opengl renderer @32 bit color depth. Fixes "Dungeon Keeper 2"
  • fix: [oglblt.cpp] fixed opengl renderer blitting surfaces with backbuffer size different from primary surface size
  • fix: [oglblt.cpp] fixed possible opengl exceptions by means of exception handling. Fixes "Dungeon Keeper II" DKII-DX.exe instability
  • fix: [gdiblt.cpp] fixed gdi renderer blitting surfaces with backbuffer size different from primary surface size
  • fix: [player.cpp] fixed play loop ending for .wav audio format to avoid crash at end of track
  • add: [hd3d7.cpp] more logs in Viewport calls
  • add: [sdl.cpp] SDL_CondWaitTimeout wrapper for time stretching

New in DxWnd 2.05.23 Beta (Jul 23, 2019)

  • Fix: [oglblt.cpp] fixed log message
  • Fix: [dxwndHostView.cpp] fixed handling of gray icons in case of failure. Fixes icon handling on Wine/Linux environment
  • Fix: [opengl.cpp] several fixes to avoid wgl errors when virtualizing & windowing. Fixes "Sid Meier's SimGolf" error message boxes.
  • Fix: [dinput.cpp] keeping track of device type upon QueryInterface remapping (see Dragon Riders)
  • Fix: [opengl.cpp] added internal format GL_LINE_STRIP to opengl texture dumps - reveals SimGolf textures
  • Fix: [opengl.cpp] recovered opengl texture dump pathnames, no "0x" prefixes on file paths.
  • Fix: [kernel32.cpp] fixed fake cd label reading from proxy configuration
  • Fix: [user32.cpp] some log messages
  • Add: [dxwndHostView.cpp ...] add SETCMDLINE option
  • Add: [dxwndhost.cpp, dxwplay.cpp] added dxwplay.dll version on GUI Help -> About ... panel
  • Add: [kernel32.cpp] added log for IOCTL_SCSI_PASS_THROUGH_DIRECT IoControl code - found in "Heaven & Hell" Securom protection.
  • Add: [winmm.cpp] added traces for mixerGetLineControlsA wrapper
  • Add: GUI "View -> DxWnd logs" expert menu command to open the GUI logfile dxwnd.log
  • Add: [opengl.cpp] more opengl trace wrappers in traceall build

New in DxWnd 2.05.22 Beta (Jul 10, 2019)

  • Fix: [GameIcons.cpp] better controls to avoid a GUI crash on Wine/Linux environment
  • Fix: [dxhelper.cpp] added DDSD_FVF flag in ddraw surface trace
  • Fix: [Inject.cpp] fixed bug crash in "Inject suspended" mode caused by early free of path string

New in DxWnd 2.05.21 Beta (Jul 9, 2019)

  • Add: [Inject.cpp & others ...] Injection mode with committed pages. Makes "South Park XP patch" working.
  • Fix: CD player status initialization
  • Fix: rebuilt blacker tool
  • Fix: [dinput.cpp] HIDEJOYSTICKS flag now working also on dinput EnumDevicesA/W methods

New in DxWnd 2.05.20 Beta (Jul 2, 2019)

  • Add: [kernel32.cpp] full DeviceIOControl trace
  • Fix: [ddraw.cpp] rolled back v2.04.95 fix in GetAttachedSurface wrapper. Fixes "Star Wars Rogue Squadron 3D" crash.
  • Fix: [dr_flac.h] included up-to-date dr_flac release v0.11.10 - 2019-06-26
  • Fix: [player.cpp] fixed bug in dxwplay.dll crashing at the end of a flac track play.
  • Fix: [TargetDlg.cpp] defaulting window style to bordered

New in DxWnd 2.05.19 Beta (Jun 18, 2019)

  • fix: [ddraw.cpp] uncommented code block for palette initialization because it was necessary for "Virtua Fighter PC" and "Speedboat Attack" initialization.
  • fix: [kernel32.cpp] CreateFileMappingA wrapper throwing exception while trying to translate a possibly null path.
  • fix: [oglblt.cpp] added DDBLT_COLORFILL processing to opengl blitter
  • fix: [kernel32.cpp] added GetPrivateProfileStringW wrapper
  • fix: [kernel32.cpp] fixed logic for GetPrivateProfile* calls with NULL path
  • fix: [ddraw.cpp] fixed logic to manage the possible virtual screen resolution change by means of RestoreDisplayMode method (ref. Flight Unlimited II)
  • fix: [ddraw.cpp] fixed login in Flip wrapper when the screen resolution is smaller than the backbuffer size (ref. Flight Unlimited II)
  • add: [gdi32.cpp opengl.cpp] experimental: buffer projection facility
  • fix: [advapi.cpp] regression bug on REG_DWORD key parsing - fixed "The Hive" virtual registry settings.
  • fix: [dxhook.cpp] cleared WC_CLIPCHILDREN style flag when INVALIDATECLIENT tweak is set - recovers "Gangsters Organized Crime" menu text visibility.

New in DxWnd 2.05.18 (May 28, 2019)

  • Fix: [oglblt.cpp] added pitch compensation in opengl renderer. Fixes rendering on cases where the blitted surface is not plain memory surface, es. "Emperor Battle for Dune".
  • Fix: [ddraw.cpp] Force_HAL/HEL/NULL flags applied consistently also to DirectDrawCreateEx
  • Fix: [ddraw.cpp] suppressed unsupported DirectDrawSurface::Lock DDLOCK_NOSYSLOCK flag, unsupported Win16 legacy found in "Star Wars X-Wing" Win95 port XWING95.EXE
  • Fix: [player.cpp] support for Linux/Wine 16 bit flac/wav samples, enlarged buffers.
  • Fix: [player.cpp] fflush on logging, no log loss upon crash.
  • Fix: [kernel32.cpp] fixed CreateProcess hook modes
  • Add: [kernel32.cpp] added wrapper for CreateProcessW
  • Add: [dxhook.cpp, kernel32.cpp] FRONTEND mode flag
  • Fix: [TabLocale.cpp] dynamic loading of LCIDToLocaleName to keep WinXP compatibility

New in DxWnd 2.05.16 (May 3, 2019)

  • Fix: [hdxgi.cpp] separate wrappers for Adapter/Factory objects in TRACEALL build fixes "Ananke" crash
  • Fix: [hd3d.cpp] log message for CheckDeviceType wrapper
  • Fix: [hd3d.cpp] D3D10CreateDevice1 wrapper crashing because tried to hook methods also when failed. Fixes "Tobi".
  • Fix: [user32.cpp] recovered some locale handling oddities that make this version work better.

New in DxWnd 2.05.15 (Apr 30, 2019)

  • Add: [kernel32.cpp] hook to DeviceIoControl call for LOCKCDTRAY flag
  • Add: [opengl.cpp] new "Lock Viewport" (LOCKGLVIEWPORT) flag to set a valid viewport in case the game forgets it!
  • Add: [hd3d7.cpp] new "No TnL HAL device" (NOTNLDEVICE) flag to suppress IID_IDIrect3DTnLHALDevice device
  • Add: locale logging cathegory
  • Fix: [ddraw.cpp] initial palette handling - fixes "Sleepwalker" missing palette creation.
  • Fix: [winmm.cpp] fix waveOutOpen wrapper crashing while trying to log a NULL ptr
  • Fix: [user32.cpp] SetCursorPos automatically disabled when the window loses focus. Fixes a "Yu No" issue.
  • Fix: [user32.cpp] setting fullscreen mode when a window is grown to big enough size
  • Fix: [user32.cpp] issue about locale handling in SetWindowTextA wrapper producing truncated ASCII/UNICODE title.
  • Fix: [user21.cpp] LOCKSYSSETTINGS bugged flag
  • Fix: code reorganization & cleaning
  • Beware: some possible locale handling regression

New in DxWnd 2.05.14 (Apr 4, 2019)

  • add: GUI /o argument to set read-only mode on dxwnd.ini configuration file.
  • add: (very) preliminary ntlea integration for locale emulation
  • fix: [dxhook.cpp] hot patching hook in case of multiple entries of same name leading to recusrive calls
  • fix: [ole32.cpp] handling of CoCreateInstance for IID_DirectDraw7 objects

New in DxWnd 2.05.13 (Mar 25, 2019)

  • Fix: [dxhook.cpp] FixWindowFrame procedure now keeps taking in proper account the former window style/exstyle flags. In particular, keeps the WS_CLIPCHILDREN/SIBLINGS flags necessary in many situations. Improves "Minigolf Masters Miniverse".
  • Fix: [hd3d.cpp] fixed handling of BackBufferFormat equal to D3DFMT_UNKNOWN - found in "Sub Command"
  • Fix: [hd3d.cpp] fixed D3D8::Present wrapper in 16bpp emulation mode, adds InvalidateRect call to force screen update. Fixes "Sub Command" mouse trails.
  • Fix: [hd3d.cpp] fixed return code of D3D8::GetDisplayModesCount that must be doubled when emulation of 16BPP surfaces is active. Allows running "Sub Command" with emulated SVGA/HDMI modes.
  • Add: [dxwndhost.cpp] added write capability check on dxwnd.ini to warn against possible loss of configuration updates
  • Fix: [TargetDlg.cpp] GUI: fixed random target # in add new task form.

New in DxWnd 2.05.12 (Mar 22, 2019)

  • fix: [dxwcore.cpp] with BLITFROMBACKBUFFER tweak, refresh routine using backbuffer. Fixes "Festal Sailing"
  • add: [hd3d.cpp hd3d7.cpp] "Pretend HW T&L cap." (TRANSFORMANDLIGHT) flag.Fixed "Will Rock"
  • add: [kernel32.cpp] #ifdef-ed tracing wrappers for GlobalMemoryStatusEx and GetPhysicallyInstalledSystemMemory calls
  • fix: [kernel32.cpp] added fkey polling in GetVolumeInformationA wrapper. Allows virtual CD change in "Zork Nemesis".
  • add: [sdl.cpp] added tentative SDL2 wrappers for SDL_GetDisplayBounds, SDL_GetDisplayUsableBounds and SDL_SetWindowDisplayMode calls
  • add: [user32.cpp] MOUSEMOVEBYEVENT tweak now using SendInput instead of deprecated mouse_event
  • fix: [dxwnd.cpp] fixed self-generated message about UnhookWindowsHookEx(0) error.
  • add: [version.cpp] #ifdef-ed conditional trace for some operations of version.dll
  • add: [winmm.cpp] "Fix default MCI Id" (FIXDEFAULTMCIID) flag to fix the legacy default device id 0xFFFF to 0xFFFFFFFF after WinME. Fixes SpyCraft midi/wave operations.
  • add: [winmm.cpp] more MCI tracing wrappers for debug logging

New in DxWnd 2.05.11 (Mar 5, 2019)

  • add: [mciwrapper.cpp] log messages for msiSendString return code/string for 2 commands
  • fix: [mciwrapper.cpp] correct return string for msiSendString "status cdaudio position" in TMSF mode. Fixes "The House of the Dead" audio resume
  • fix: [user32.cpp winproc.cpp] fully revised hot keys handling, added "cdnext", "cdprev" function keys to swith CD in charger
  • fix: virtual disk path remapping in proxy mode
  • fix: GUI no longer hooking tasks when launched while hooking is stopped

New in DxWnd 2.05.10 (Mar 1, 2019)

  • Fix: [user32.cpp winproc.cpp] hot keys handling now applied also in case of PeekMessage loop: makes hot keys working also for "Yu No".
  • Fix: [dxwcore.cpp MapKeysInit] hot key definitions in proxy mode now loaded from dxwnd.dxw instead of dxwnd.ini
  • Add: [user32.cpp] added "Suspend GetAsyncKeyState" (FIXASYNCKEYSTATE) flag to avoid detecting mouse/keyboard events when the application has no focus. Fixes GOG's version of "Wizards & Warriors".
  • Fix: [winshot.cpp] screenshot capture now working either from ddraw surfaces or window DC
  • Add: [kernel32.cpp] virtual disk path remapping applied also to MoveFileA and CreateFileMappingA
  • Fix: [kernel32.cpp] now path remapping keeps track of current folder in case it was movet to a virtual disk. Fixes CD switch with "Dreams of Reality".
  • Add: [excepthandler.cpp] now detecting and neutralizing the vSync wait condition performed on VGA cards through assembly instructions IN 08 on port 0x3DA and potential endless loop. Fixes "Dreams of Reality" in executable GDIDREAMS.EXE.
  • Add: [kernel32.cpp] #ifdef-ed tracing hooker for GetFullPathNameA.
  • Fix: [dxwcore.cpp] ScreenToClient method recovering in case of GetClientRect error
  • Fix: winmm proxy compiled with disabled optimization option to avoid AV false positive detections

New in DxWnd 2.05.09 Beta (Feb 24, 2019)

  • Add: cd charger first release
  • Add: [msvcrt.cpp dxhook.cpp] added "Safe MSVCRT allocs" (SAFEALLOCS) flag to protect against malloc/realloc/free bugs.
  • Add: [kernel32.cpp - dxwTranslatePathW] pathname virtualization for widechar calls - to be tested.
  • Fix: proxy install copies hot keys configuration when required
  • Fix: [kernel32.cpp] added virtual CD/HD definition to Get/WritePrivateProfileString/IntA/W wrappers.Fixes "Dementia" on virtual CD reading from a CD ini file.
  • Fix: [player.cpp] fixed bug in virtual audio CD emulation for .flac files initialization
  • Add: [oglblt.cpp] #ifdef-ed experimental screen rotation for opengl blitter
  • Fix: [kernel32.cpp] GetDiskFreeSpace wrapper for NULL lpRootPathName value
  • Fix: [kernel32.cpp CreateProcessSuspended: using lpApplicationName instead of lpCommandLine when both not NULL to find the path of a new hooked process. Fixes "Zork Nemesis" when running itself.

New in DxWnd 2.05.08 Beta (Feb 17, 2019)

  • add: [oglblt.cpp] new OpenGL blitter for ddraw surface
  • fix: [sdlblt.cpp] fix in SDL blitter to manage partial RECT blits
  • fix: [sdlblt2.cpp] fix in SDL2 blitter to manage partial RECT blits
  • fix: [hdxgi.cpp] fix in method hooking & operation trace: fixes "Halo Spartan strike"
  • fix: [hd3d.cpp] fix in IDirect3D8/9 GetAdapterModesCount and EnumAdapterModes wrapper to properly emulate the different behavior of d3d8 vs. d3d9
  • fix: help pages

New in DxWnd 2.05.07 Beta (Feb 12, 2019)

  • Add: "Safe midi" (SAFEMIDIOUT) flag to bypass midi harmful calls (if repeated too often?) midiOutReset, midiOutSetVolume
  • Add: "Shring text width" (SHRINGTEXTWIDTH) flag to reduce all font widths. Fixes some eastern (asian) games that exceed the width when played on western locale.
  • Fix: [avifile.cpp] NOMOVIES flag now stops also movies played through AVIFile calls
  • Add: [avifile.cpp] more trace wrappers for #ifdef TRACEALL compile
  • Fix: [msvfw.cpp] fixed log messages, added debug wrapper fot ICSelect.
  • Fix: mciGetDeviceIDA wrapper exception caused by doubled hook
  • Fix: mciSendCommandA wrapper for fake device path translation in MCI_OPEN + MCI_OPEN_ELEMENT case
  • Fix: mmioOpen wrapper for fake device path translation
  • Fix: better error message box in proxies when original dll can't be loaded
  • Add: GUI /L /Y /Z /S client commands (see help), updated help pages

New in DxWnd 2.05.05 fx2 (Jan 29, 2019)

  • Fix: exported joystick configuration to dxwnd.dxw proxy configuration file when virtual joystick is enabled.
  • Fix: GUI bug failing to save entries that were imported, exported or proxed.
  • Fix: some html help pages to reflect changes in configuration tabs (Mouse tab).
  • Fix: [dxwcore.cpp FixNCHITCursorPos] fixed regression since v2.05.02 for "Fix WM_NCHITTEST" flag, fixed Zombie Shooter games.
  • Fix: "blacker.exe" now waits for the target to enter in fullscreen status. Used for "Jane's Fighters Anthology" to make the initial splash dialog visible.

New in DxWnd 2.05.05 fx1 (Jan 27, 2019)

  • fix: exported joystick configuration to dxwnd.dxw proxy configuration file when virtual joystick is enabled
  • fix: GUI bug failing to save entries that were imported, exported or proxed.
  • fix: some html help pages to reflect changes in configuration tabs (Mouse tab)

New in DxWnd 2.05.04 Beta (Jan 17, 2019)

  • Add: [ddshot.cpp] added sequence number for captured screenshots to match bmp files and logs
  • Add: [excepthandler.cpp] added handling of priv instructions OUT and REP OUTS to emulate VGA direct hardware palette definition through DAC WRITE operations. Fixes "Dark Judgement" movies.
  • Fix: [kernel32.cpp] log message for file I/O operations in a single LogTrace call. Avoids multiple timestamps on log line.
  • Fix: [kernel32.cpp proxyinit.cpp] fixed proxy mode that must read PRIVATEMAP fields from dxwnd.dxw instead of dxwnd.ini
  • Fix: [advapi.cpp ddraw.cpp] error condition on dxwnd.dll file attributes
  • Fix: revised generation of dxwnd-relative paths, now using GetDxWndPath thoroughfully
  • Add: added "cursor:InvertMouseX/YAxis" (INVERTMOUSEX/YAXIS) tweaks. Improve "Sherlock Holmes The Mystery of The Mummy" mouse problems.
  • Add: [smack.cpp] added "ddraw:SmackBufferNoDepth" (SMACKBUFFERNODEPTH) tweak. Unlock smackw32 color depth specification. Fixes "Galapagos" into movie.
  • Fix: [smack.cpp] fully revised smackw32.dll hooking to manage different releases / interfaces / ordinals / calling conventions.
  • Fix: [sdl.cpp] revised code bugs, added SDL_PushEvent wrapper. Fixes "Darkest of Days" mouse control.
  • Add: [sdl.cpp] added SDL_ShowCursor wrapper to react at cursor visibility flags.
  • Add: [ddraw.cpp] more ifdef-conditioned method traces, use of TRACEALL macro.
  • Add: [hd3d7.cpp, hd3d11.cpp, hdxgi.cpp] more wrapping and traces ...
  • Fix: [dinput.cpp, ole32.cpp] replaced GUID trace with sRIID common call
  • Add: [dwdisasm.cpp] added popup messages in case of missing disasm.dll
  • Fix: [dxhook.cpp] deleted dxw.SetScreenSize in AdjustWindowRect: was setting bad virtual resolutions (including window borders!)
  • Add: in tools folder (full DxWnd release only) added dlldump, paldump, pedump tools.

New in DxWnd 2.05.03 Beta (Jan 6, 2019)

  • fix: GUI bug about unclearable NOWINDOWMOVE tweak
  • fix: [dxmapping.cpp] window position initialization
  • add: [sdl.cpp] wrappers for many SDL2 calls, including SDL_SetWindowPosition and SDL_SetWindowSize. Ref. "Belzebub" (Diablo mod.)
  • fix: added Xinput ordinals - ref. "Ys Memories of Celceta"
  • add: dxw.ScaleRelMouse to scale the relative mouse deltas with no roundong errors
  • fix: [user32.cpp] applied dxw.ScaleRelMouse in GetRawInputData wrapper
  • add: [hdxgi.cpp] added wrapper for SetFullscreenState, GetParent. Needed for "Ys Memories of Celceta"
  • add: [hd3d11.cpp] added many wrappers. Needed for "Ys Memories of Celceta"
  • add: [opengl.cpp] SCALEMAINVIEWPORT flag to scale only viewports referred to main win. Ref. "Belzebub" (Diablo mod.)
  • add: [ddraw.cpp @ extBltFast] debug surface dump added to BltFast wrapper
  • fix: DxWnd support for long pathnames conversion to short format on WinXP
  • add: [dxwndhostView.cpp] added error code + log message on mailslot errors
  • add: [ddraw.cpp] FORCESHAL & FORCESNULL tweaks
  • add: FIXRANDOMPALETTE debug flag

New in DxWnd 2.05.02 Beta (Dec 22, 2018)

  • Fix: [GameIcons.cpp] fixed GUI locking programs after icon extraction
  • Fix: [kernel32.cpp] fixed double redirection in .ini pathnames, added more wrappers for WIDECHAR functions
  • Fix: [GammaRampDialog.cpp] fixed DC leakage on gamma ramp view timer
  • Fix: [GammaCtrlDialog.cpp] fixed DC leakage on gamma ramp control timer
  • Fix: [PaletteDialog.cpp] fixed leakage on view palette panel
  • Fix: generic review for GUI timer handling and window exit
  • Fix: [user32.cpp] fixed/improved Get/SetCursorPos, now working with "Birthright the Gorgon's Alliance"
  • Add: [dxhelper.cpp, queryint.cpp] added unknown IID_IDirectDrawSurfaceNew to helper and logs
  • Fix: [queryint.cpp] set correct error code E_POINTER to handle unsupported interfaces
  • Fix: [ddraw.cpp@extGetGDISurface] when GetGDISurface wrapper returns the emulated primary surface it must also call AddRef to emulate the real method. Fixes "Conquest Frontier Wars" initial crash.

New in DxWnd 2.05.01 Beta (Dec 18, 2018)

  • Fix: [ddraw.cpp] fixed recovered window size after minimize/recover. Fixes "Heavy Gear 2" resume.
  • Add: [dinput.cpp] added log messages for DirectInputCreate args and RemapUSKey tweak
  • Fix: [fontstack.cpp] fixed fontstack to grow dynamically. Fixes "Allied General" font leakage.
  • Fix: [user32.cpp] fixed MoveWindow handling of BIG windows. Fixes "Allied General" window handling.
  • Fix: [ddraw.cpp ddcreates.cpp] diffused code reorganization
  • Fix: [mciwrapper.cpp] fixed MCI_RESUME regression. Fixes "Heavy Gear 2" music resume after pause with Esc key.
  • Fix: [mciwrapper.cpp] fixed a few mciSendString and mciSendCommand bugs
  • Add: [kernel32.cpp] REMAPSYSFOLDERS flag to avoid writing on Windows system folders
  • Fix: GUI didn't show content of flag11 and flag12 on View Flags panel
  • Fix: [ddraw.cpp] fixed possible crash in GetAvailableVidMem wrapper log message
  • Fix: [mciwrapper.cpp] fixed status length and position string outputs for all supported time formats
  • Fix: [mciwrapper.cpp] set proper error codes for unsupported time formats
  • Fix: [mciwrapper.cpp] support for alternate syntax "track n length" and "length track n"
  • Fix: [mciwrapper.cpp] support for alternate syntax "track n position" and "position track n"

New in DxWnd 2.05.00 Beta (Dec 11, 2018)

  • fix: [hooktable.cpp] wrong dll name and flags in hook table, prevented correct hook of earias.dll and earpds.dll
  • fix: [mciplayer.cpp] renamed player routines in logs, added track duration in seconds format
  • fix: [mciwrapper.cpp] added MCI_SEEK tracing in logs
  • fix: [mciwrapper.cpp] fixed MCI_SYSINFO logic
  • fix: [mciwrapper.cpp] extended HACKMCIFRAMES logit to MCI_FORMAT_MILLISECONDS and MCI_FORMAT_TMSF formats
  • fix: [mciwrapper.cpp] correct interpretation of MCI_STATUS + MCI_STATUS_POSITION request with no MCI_TRACK
  • fix: [mciwrapper.cpp] simplified logic for MCI_CDA_STATUS_TYPE_TRACK request
  • fix: [mciwrapper.cpp] added return code trace both in decimal and hexadecimal format
  • fix: [winmm.cpp] fixed hooking of auxGetDevCapsA
  • fix: [mciwrapper.cpp] fixed MapMsecToTTMMSS routine unable to handle last track
  • fix: [mciwrapper.cpp] reset time format after MCI_CLOSE command or after "close" command string
  • fix: [player.cpp, dr_mp3.h] integrated mp3 player (thanks to drmp3 sources)
  • add: dxwnd project with TRACEALL switch to build dxwnd.traceall.dll

New in DxWnd 2.04.99 Beta (Dec 4, 2018)

  • Fix: set a different default aspect ratio for HDTV resolutions (16:9 vs. 8:6) [dxmapping.cpp]
  • Add: ADAPTIVERATIO flag [dxwcore.cpp - FixWorkarea]: useful to play "Cossacks 2" with variable aspect ratio
  • Fix: [hd3d.cpp] in D3D8/9 EnumAdapterModes and GetAdapterModeCount methods, using virtual resolutions instead of real ones when VGA or HDTV flags are set. Preliminary implementation.
  • Fix: fixed virtual CD player for possible current directory change [mcilayer.cpp, player.cpp]. Fixes "Dreams to Reality" mci errors.
  • Fix: error condition for activating virtual CD player for "cdaudio" device name in mciSendCommand [mciwrapper.cpp]: fixes "Dreams to Reality" mci errors.
  • Fix: [player.cpp] wrong parameters for .flac decoding. Fixes low pitch and missing audio channel problems
  • Fix: set a initial stack size for virtual CD player thread: fixes crash in "Speedboat Attack" with flac encoded tracks.
  • Fix: [mciwrapper.cpp - sDevType, swDevType] bug in sound debug log message causing application crash - happens for instance with "Sentinel Returns".
  • Fix: [mciwrapper.cpp] bugged track length reported by mciSendCommand(MCI_STATUS) call. Fixes "Sentinel Returns" copy protection.
  • Fix: [player.cpp] flac time progress evaluation
  • Fix: [user32.cpp] FPS processing (measure and delay) now applied also to StratchBlt to screen. Setting some delay fixes immediate death in "Dreams to Reality" gdi version.
  • Fix: revised (and simplified) coding for supported emulated video resolutions
  • Add: possibility to support both SVGA and HDTV resolutions plus custom one.
  • Fix: eliminated (again) hack with auxGetNumDevs returning 1 available device always.

New in DxWnd 2.04.98 Beta (Dec 2, 2018)

  • Add: UNNOTIFYINACTIVE flag to suppress window disable only - fixes "Evil Islands: Curse of the Lost Souls"
  • Fix: ddraw AddAttachedSurface marking as flippable backbuffer any videomemory+offscreenplain surface attached to primary. Fixes "Alchemist" flip operation
  • Fix: calculation of ZBuffer surface size for "Clean ZBUFFER hard" flag with dxversion < 4.
  • Add: dxgi preliminary hooking
  • Add: more d3d11 hooking
  • Fix: updated html help
  • Fix: revised protocol between dxwnd.dll and dxwplay.dll
  • Add: preliminary capability for virtual CD audio to play .flac, .mp3 and .wav sound formats
  • Add: GUI /n "no Spinnig" option to suppress the spinning icon on active status
  • Add: CDPAUSECAPABILITY to emulate a CD driver that can pause music play
  • Add: SETUSKEYDESCR tweak, useful for "Heavy Gear 2"
  • Add: REMAPNUMERICKEYPAD tweak, useful for "Ecstatica" win32 version
  • Add: HOOKEARSOUND flag to hook ear sound libraries (tracing only)
  • Fix: Sample CD Player with volume control

New in DxWnd 2.04.97 Beta (Nov 14, 2018)

  • Add: preliminary (partial) implementation of ADVAPI32 RegQueryInfoKeyA wrapper - allow running "Fallen Haven" with virtual registry
  • Fix: eliminated DC leakage in virtual joystick handling
  • Fix: eliminated DC leakage in "Force setting gamma ramp" flag handling
  • Fix: eliminated DC leakage in several OpenGL/wgl wrappers
  • Fix: handling of window scaling when created within main window creation - to be reviewed, improves "Fallen Haven"
  • Fix: full review of mci wrappers for virtual CD audio, several bug fixes.
  • Add: sample CD Player based on mciSendCommand function, thanks to Nikolai Serdiuk

New in DxWnd 2.04.96 Beta (Nov 8, 2018)

  • Add: GDI32 Chord wrapper - referred in "Fallen Haven"
  • Add: frames unit of measure handling in mciSendCommand wrapper
  • Add: HACKMCIFRAMES flag to fake a customary frame number on each audio track - unprotects "Absolute Terror"
  • Fix: handling of case insensitive commands in mciSendString wrapper - needed for "Fallen Haven"
  • Fix: code reorganization for mciSendString wrapper
  • Fix: handling of "status cdaudio mode" command string in mciSendString wrapper - needed for "Fallen Haven"
  • Fix: USER32 ScrollDC wrapper in stretched mode
  • Fix: mci sound emulation starting with correct msf time format instead of tmsf
  • Fix: mci sound emulation fixed time format procedures in several cases
  • Add: tentative full implementation of mciSendStringW wrapper
  • Fix: inhibit virtual resolution changes from windows created from within a main window - improves "Fallen Haven" rendering

New in DxWnd 2.04.95 Beta (Oct 30, 2018)

  • Add: added tool command "View import table"
  • Fix: build flippable backbuffer also when number of backbuffer surfaces is unspecified - fixes "Gadget Tycoon"
  • Fix: fixed "Fix GlobalUnlock" flag implementation - fixes "Sega World Wide Soccer" errors
  • Add: preliminary support for mciSendCommand operations about track<nn>.cda audio pseudo-files - adds CD sound to "Absolute Terror"

New in DxWnd 2.04.94 Beta (Oct 19, 2018)

  • fix: fixed 8bit DIB palette emulation. Fixes "iM1A2 Abrams" colors
  • add: #ifdef-ed trace wrappers for user32.dll window scrolling calls
  • add: better logging for Kernel32.dll GetDriveType wrapper
  • fix: fixed & uniformed logic to decide whether a window needs absolute or relative position, using internal BOOL IsRelativePosition routine. Fixes "Industry Giant" that renders over a CHILD+POPUP window.
  • fix: fixed log messages about window styles
  • fix: fixed position calculation for centered option
  • fix: code reorganization of user32.cpp user32.dll wrapper
  • fix: fixed message hook callback to avoid scaling mouse coordinates directed towards the child window borders - fixes "Imperialism!" help dialogs.

New in DxWnd 2.04.93 Beta (Oct 13, 2018)

  • Add:
  • #ifdef-ed NOFASTBLT option to replace FastBlt method with more robust Blt
  • Virtual Heap handling - flag VIRTUALPROCHEAP to replace virtual heap also on initial process heap
  • #ifdef-ed trace wrappers for user32.dll SetActiveWindow, GetAncestor
  • STRETCHDIALOGS flag now applied also to CreateDialogIndirectParamA
  • Fix:
  • Complete implementation for dialog stretching for both DLGTEMPLATE and DLGTEMPLATEEX formats
  • Updated and more readable log trace with timing and threads - timing starts from 0 and seconds are split from msec
  • Fontstack initisalization for font scaling - suppresses error dialog box on font scaling usage
  • Fontstack handling - doesn't build a scaled font if the original-sized font creation failed.
  • Virtual Heap handling - suppress double consecutive free for same memory address
  • Virtual Heap handling - on NOBAADFOOD opt, don't clear the area if malloc failed
  • Possible use of uninitialized variable in fontstack.cpp dxwFStack::Deletefont()
  • In gdi32.dll DeleteObject wrapper, possible use of uninitialized variable for scaled font handle
  • In user32.dll TabbedTextOutA wrapper, possible crash in parameter's log
  • In user32.dll TabbedTextOutA wrapper, scaling of tab position array
  • Blacker.exe proper widechar text on window title, thanks to dippy dipper
  • HIDEWINDOWCHANGES logic applied also to MoveWindow and SetWindowPos wrappers
  • Changed MoveWindow wrapper method to get the main window coordinates
  • MciSendCommand wrapper - sysinfo must return "cdaudio" string, thanks to dippy dipper - fixes "Pandemonium!" with cd audio emulation

New in DxWnd 2.04.92 Beta (Oct 7, 2018)

  • Enlarged shared memory area - this release is not compatible with older ones
  • Fix: defauld SDL hooking, dependencies are hooked
  • Add: EXTENDSDLHOOK flag to extend hooking to SDL dependencies also when SDL is hooked
  • Add: STRETCHDIALOGS flag to scale embedded dialog resources at runtime - useful for "Aaron vs. Ruth".
  • Add: limitation to the number of consecutive patched exceptions - after 20 in a row is probably no use to keep going.
  • Add: TRACEALL #ifdef-ed flag in kernel32.dll wrapper - logs RaiseException call
  • Add: tentative kernel32 HeapSize wrapper
  • Fix: revised kernel32 Heap wrappers
  • Add: SDL SDL_PeepEvents wrapper
  • Fix: SDL streamlined compilation excluding log routines and helpers
  • Fix: user32 CreateWindow* wrapper calling ShowWindow only for main window - fixes regression bug in "Diablo" and "Gunbound"
  • Fix: better logging in DialogBoxParamA wrapper

New in DxWnd 2.04.89 Beta (Sep 17, 2018)

  • Fix: some more diagnostic messages in ddraw SetCooperativeLevel wrapper
  • Fix: log messages with IMMDeviceEnumerator GUID
  • Fix: set correct default screen size in non-windowed mode
  • Fix: fixed "PE browse" hook (IATPatchByFT routine) in case of module changes
  • Fix: fixed OpenGL GLint scaling for signed negative values - fixes some of "Star Wars: Knights of the Old Republic" problems
  • Fix: suppress EMULATEMAXIMIZE and PREVENTMAXIMIZE effects in ShowWindow wrapper in case of non-windowed mode
  • Fix: fixed IsFullscreenWindow internal logic

New in DxWnd 2.04.88 Beta (Sep 12, 2018)

  • Add: more (#ifdef-disabled) wrappers for D3D2-7 DrawPrimitive methods - for "Riverworld" debugging
  • Fix: 1 STEP log removed
  • Fix: avoid setting a clipper against NULL window on FORCECLIPPER mode
  • Fix: fixed EmuBlt unlock error message reporting bad error code
  • Fix: revised logic for window creation - now window style & position setting made only once
  • Fix: dxwCore::FixCursorPos now using more reliable pre-registered window sizes instead of using GetClientRect system call
  • Fix: fully revised CreateWindow* wrapper
  • Fix: handling of NOTEXTURE flag in d3d SetRenderState wrapper
  • Fix: deleted unused FIXCHILDSIZE handling
  • Fix: minor cosmetic changes in logging of hooker routines
  • Add: new experimental "Hide Window changes" (HIDEWINDOWCHANGES) flag
  • Add: DxWnd status indication in titlebar
  • Add: more (#ifdef-disabled) wrappers for d3d2-7 DrawPrimitive method

New in DxWnd 2.04.87 Beta (Sep 3, 2018)

  • Add: new IAT browsing mode by FT inspection in .exe file, new functions IATPatchByFT and DumpImportTableByFT
  • Add: thanks to Matt Pietrek for PEDUMP source code
  • Add: more (#ifdef-disabled) wrappers for BinkW32 calls
  • Add: more (#ifdef-disabled) wrappers for OpenGL32 calls
  • Add: USER32 SetWindowsHook wrapper (#ifdef-disabled) logic to scale WH_CALLWNDPROC and WH_CALLWNDPROCRET callback coordinate values
  • Add: DxWnd.exe client/server usage: client commands to import a .dxw file (/L:<path>), clear (/Z) or save (/S) the programs list
  • Add: DxWnd.exe file association with .dxw files to automatically import a .dxw file on file Open from Windows
  • Fix: GDI32 SetPixelFormat wrapper now handling a possibly NULL ppfd pointer. Fixes "Neverwinter Nights Platinum" on Win10
  • Fix: glBitmap wrapper log message
  • Fix: BinkW32.dll broken hooking - needed by "Neverwinter Nights"
  • Fix: added hooking to glu32.dll (different from glut32.dll !!!), one wrapper (gluGetString) moved to proper context.
  • Fix: OpenGL scaling aligned to generic method implemented in dxw class (in glScissor, glViewport, glGetIntegerv wrappers)
  • Fix: OpenGL fixed glBitmap log message
  • Fix: USER32 CreateWindow* wrapper, fixed (?) position and size for big windows, both WS_CHILD type and not.
  • Fix: USER32 CreateWindow* wrapper, fixed CW_USEDEFAULT test condition, now using logical .AND. instead of DWORD equal condition - fixes "Neverwinter Nights" that creates windows whose size is CW_USEDEFAULT+offset
  • Fix: USER32 GetMonitorInfo wrapper, with better logging
  • Fix: WM_MOVE log message, width and height were inverted.

New in DxWnd 2.04.86 Beta (Aug 13, 2018)

  • Last releases added a cd audio emulation feature. This increases the gameplay quelity of all games that were designed to take advantage of cd audio tracks, but in order to activate this feature it is necessary to grab and convert the original cd audio tracks. If you own a physical cd (or you have a cd image with audio tracks that you could mount on your system) this operation is not too difficult, has to be made only once and is explained in DxWnd help files included in last releases.

New in DxWnd 2.04.85 Beta (Aug 3, 2018)

  • Fix: GetVolumeInformationA wrapper logs & behavior
  • Add: preliminary GetLogicalDriveStringsA wrapper
  • Add: more wrappers for virtual drives feature: SetCurrentDirectoryA, DeleteFileA, _lopen, _lcreat, OpenFile, GetDiskFreeSpaceA
  • Fix: added returned error codes for write access I/O operations on fake CD files
  • Fix: added in SetCurrentDirectoryA wrapper the logic for handling virtual drives. Fixes "Drift when Worlds Collide" on virtual CD drive
  • Fix: MCI wrapper for mciSendCommand on MCI_CDA_STATUS_TYPE_TRACK case - fixes "Sentinel Returns" CD checks on virtual CD audio.
  • Fix: virtual CD filesystem string set to "CDFS"
  • Fix: virtual drives configuration fields not properly saved in dxwnd.ini
  • Add: '?' as replacement of game folder in virtual drives path
  • Add: virtual drives tutorial in help pages, help updates.

New in DxWnd 2.04.84 Beta (Aug 1, 2018)

  • New: merged extLock() and extLockDir() wrappers into same routine
  • Add: new "ddraw:SafePrimaryLock" (SAFEPRIMLOCK) tweak - fixes "Signus the Artefact Wars" bugs
  • Add: hook for d3dx9_30.dll to hook d3d9.dll before it's too late
  • Add: configurable virtual HD/CD drives
  • Add: more kernel32 wrappers: FindFirstFileA, FindNextFileA, GetFileAttributesA - needed to run "Need for Speed II" with fake CD.
  • Add: kernel32 GetVolumeInformationA wrapper
  • Fix: fixed d3d1-7 execute buffer dumping routines (conditional compilation only!)
  • Fix: ddraw CreateSurface wrapper: on version 1 and offscreenplain surfaces, it seems that the SetPalette method is NULL so it should be unused in this case. Fixes "Atripolis 2097" crash.
  • Fix: added fake HD/CD drives to GetLogicalDrives wrapper
  • Fix: mapping of fake driver pathnames in MCIWNDM_OPENA message - fixes "Lego Loco" intro movie

New in DxWnd 2.04.83 Beta (Jul 25, 2018)

  • Fix: as suggested by caniza mimorix, removed UnmapViewOfFile(pMapping) statements in dxwnd.cpp
  • Fix: some code reorganization for surface dumps
  • Fix: fixed texture highlight hack for some d3d texture format
  • Fix: enlarged x,y,w,h fields in GUI to hold 4 digits
  • Fix: log message for CreateDCW wrapper
  • Fix: reateDC wrappers should avoid remapping to main win when undefined
  • Fix: bugged activation for debug DUMPDIBSECTION feature
  • Fix: MapWindowPoints log message for negative displacements
  • Fix: ActiveMovie parent window remapped from desktop to main window
  • Add: INVALIDATECLIENT tweak: invalidate the client area after a ddraw screen refresh, makes "Gangsters: Organized Crime" menu text visible.
  • Add: added "Curtain" window class to KILLBLACKWIN targets - kills "Tennis Critters" gray background window
  • Add: "Mouse shield" (MOUSESHIELD) Input option - suppresses WM_MOUSEMOVE messages being processed when task has no focus
  • Add: preliminary dxwnd.dll capability mask to disable GUI elements for unsupported features
  • Add: hook:CreateDCHook (CREATEDCHOOK) tweak - to bypass harmful CreateDCA wrapper in "Silkolene Honda Motocross GP"
  • Add: GDI32 CreateICW wrapper
  • Add: new "Suppress ZBUFFER attach" (NOZBUFATTACH) flag - fixes "Silkolene Honda Motocross GP" in both HAL & RGB configurations.

New in DxWnd 2.04.82 fx1 Beta (Jul 17, 2018)

  • Fix: bug in D3D8 CreateDepthStencilSurface wrapper

New in DxWnd 2.04.82 Beta (Jul 13, 2018)

  • Fix: fixed wrong prototype and log message for SmackOpen call
  • Fix: prevent window style changes for movie windows
  • Fix: added "MSCTFIME UI" window to movie windows - found in "Extreme Boards Blades"
  • Fix: surface stack bounds - fixes "The Sims Deluxe Edition" primary surface lost.
  • Fix: surface stack ExplainSurfaceRole() returning "(PRIM)" for lpdds=0
  • Fix: bugged SUPPRESSOVERLAY flag - acting on wrong flags!
  • Fix: bugged NOHALDEVICE flag - acting on wrong flags!
  • Fix: bugged pixel format for RGB565 texture/surface dumps
  • Add: added debug option "Dump surface updates" (DUMPSURFACES)
  • Add: added SUPPRESSFOURCCBLT flag to suppress all FOURCC ddraw capabilities - fixes "The Sims" intro movies
  • Add: GUI: pixel analyzer added to palette view

New in DxWnd 2.04.81 Beta (Jul 6, 2018)

  • Add: CDROMPRESENT flag to pretend the cd drive has a CDROM inside
  • Add: virtual CD audio - emulation for mciSendString "status cdaudio media present" command
  • Add: virtual CD audio - emulation for mciSendString "status cdaudio type track <n>" command
  • Fix: NOFLIPEMULATION mode with renderers with DXWRF_USEBACKBUFFER property
  • Fix: GUI icon update using *.ico files
  • Fix: as suggested by caniza mimorix, added UnmapViewOfFile(pStatus) statements in dxwnd.cpp
  • Fix: FIXPITCH logic applied also to non-emulated Lock/Unlock operation (extUnlockDir)

New in DxWnd 2.04.80 Beta (Jun 29, 2018)

  • Fix: fixed RETURN and other special keys passed from target program to GUI - final fix with timestamp control
  • Fix: eliminated error log message for window point conversions when current window is 0 - reduces useless log lines
  • Fix: log message for window style update - was reporting identical values before and after the operation
  • Fix: replaced SetWindowsHookEx callback for WH_KEYBOARD_LL hook and NODISABLEALTTAB flag that more gently filters SYSKEY events only. Needed for "Recoil".
  • Fix: renamed HOOKNOUPDATE flag as HOOKDOUPDATE to reflect the real behavior (the flag enables the hook updates!).
  • Fix: on the GUI, "No hook update" was changed to "Do hook update".
  • Fix: simplified HOOKDOUPDATE logic - no changes, hust more readable
  • Add: "NoComplexMipmaps" (NOCOMPLEXMIPMAPS) flag to improve compatibility with "Extreme-G2" pc game.

New in DxWnd 2.04.79 Beta (Jun 8, 2018)

  • Add: FIXFOLDERPATHS tweak to fix the "." dor-ending paths in "Drift When Worlds Collide"
  • Add: preliminary ddraw tracing wrapper
  • Fix: surface stack bug triggered by "Drift When Worlds Collide"
  • Fix: PrimaryStretchBlt and PrimaryBilinearBlt routines when backbuffer is not attached. Allows AEROBOOST and bilinear filtering on "Drift When Worlds Collide".
  • Fix: log message in ddraw SetDisplayMode wrapper for ddraw 2 & 3 interfaces
  • Fix: revised ddraw::EnumDisplayModes for non-emulated windowed modes: fixes "Tomb Raider III" empty video modes list
  • Fix: revised ddraw:SetDisplayMode to suppress unnecessary video mode changes when not necessary
  • Fix: fixed DXW_RENDERER_EMULATEBUFFER = "primary buffer" mode, tested with "Tomb Raider III Gold" on Win7 (still broken on WinXP)
  • Fix: fixed DXW_RENDERER_LOCKEDSURFACE = "locked surface" mode, tested with "Tomb Raider III Gold" on Win7+WinXP

New in DxWnd 2.04.78 Beta (May 25, 2018)

  • Fix: forces initial resolution when specified instead of using fixed default 800x600
  • Fix: dialog handling: in window mode append the dialog to virtual desktop instead of 0 - fixes "Sentinel Returns"
  • Fix: dialog handling: in window mode suspend window mode while in dialog creation callback - fixes "Sentinel Returns"
  • Fix: recovered LIMITDDRAW flag behavior (useless?)
  • Fix: bug in attempt to trace WM_INPUT message content
  • Fix: added 400x300 resolution limit where missing
  • Fix: GUI Direct3D default for vertex processing selector is now "default".
  • Fix: D3D2 SetTransform hook to wrong address (in TRACEALL mode only)
  • Add: kernel32 IsProcessorFeaturePresent wrapper for tracing
  • Add: ChaosOverlordsFix patch (CHAOSOVERLORDSFIX) in tweaks section. Maybe not the final word, but it works

New in DxWnd 2.04.77 Beta (May 18, 2018)

  • add: "Custom" (CUSTOMRES) resolution flag to add a non-standard resolution video mode to the emulated list
  • add: added some supported emulated resolutions: 400x300, 1152x864, 1280x960, 1400x1050.
  • add: main hWnd value shown in GUI status panel
  • add: preliminary "blacker" tool & launcher menu command
  • fix: DXWNDSTATUS shared area no longer cleared after 5 seconds from game start from DxWnd GUI
  • fix: GUI problem with GetOpenFileName call in dxw Import command breaking the early hook modes.
  • fix: GUI RestrictedMap not applied when father/son hooks are required. Fixes "Die Hard Trilogy"
  • fix: EnumTextureFormats wrapper crashing with CLEARTEXTUREFOURCC flag
  • fix: deleted improper D3D8 Setviewport coordinate scaling - "Zombie Shooter" fixed again.

New in DxWnd 2.04.76 Beta (May 14, 2018)

  • Add: "Set emulated CD volume" (SETCDVOLUME) flag to fix CD music volume level
  • Add: hook IDIrectDraw<n>::Compact method currently unimplemented. Fixes "Hyper Crazy Climber" initial error.
  • Fix: ddraw debug message in PrimaryEmulated routine

New in DxWnd 2.04.75 Beta (May 8, 2018)

  • GUI: /x argument to suppress icon in icon tray
  • GUI: "Explore DxWnd" expert menu command
  • GUI: fixed RETURN and other special keys passed from target program to GUI
  • fix: code reorganization
  • fix: palette handling for 8 bit plain surfaces, useful for USM98 and FM98
  • add: "Fix mouse RawInput" (FIXMOUSERAWINPUT) flag

New in DxWnd 2.04.74 Beta (Apr 20, 2018)

  • Add: "IgnoreDebugOutput" (IGNOREDEBOUTPUT) tweak: emulates MS "IgnoreDebugOutput" shim.
  • Add: apply FAKEHDDRIVEC and FAKECDDRIVED flags on avifile.dll pathnames. Allow "F16 Aggressor" RIP to relocate movies
  • Fix: if setting the main palette to a new 8bit surface fails because the new surface is connected to a different DDraw, use a new palette. Fixes "Ultimate Soccer Manager 98" black screens.
  • Fix: added RPC_E_CHANGED_MODE error code 0x800010106 to helper. Happens in "Rubik's Games"
  • Add: D3D8 Get/Setviewport wrappers for logging
  • Add: preliminary YUY2 fourcc handling in SDL/SDL2 renderers: work with "Rubik's Games" intro movies
  • Add: waveOutSet/GetVolume wrappers
  • Fix: added emulated CD player the possibility to PLAY from a SEEK-ed track. Happens in "Rubik's Games"
  • Add" NoOleInitialize (NOOLEINITIALIZE) tweak to suppress harmful OleInitialize & CoInitialize calls. Fixes "Rubik's Games" missing sound.
  • Add: GUI shows target number in target update panel. It helps finding the target number for /R:n command line option
  • Add: "Limit DIB operations" (LIMITDIBOPERATIONS) flag to apply delay to GDI32 DIB operations only. Helps improving "Rubik's Games" animations.

New in DxWnd 2.04.73 Beta (Apr 5, 2018)

  • Fix: bypassed window operations in opengl wrappers when not in window mode
  • Add: "ForceClipChildren" (FORCECLPCHILDREN) tweak: fixes "Psychotoxic" flickering
  • Add: "PushActiveMovieWindows" (PUSHACTIVEMOVIE) tweak: useful to make ActiveMovie window invisible
  • Add: "PreventMinimizeWindow" (PREVENTMINIMIZE) tweak: usable with "Anachronox"
  • Add: "DisableAltTab" (DISABLEALTTAB) tweak: disables Alt-tab and Alt-Esc keys during gameplay
  • Add: "NoAccessibilityKeys" (NOACCESSIBILITY) tweak: disables prompting for accessibility keys definition
  • Fix: DISABLEDISABLEALTTAB renamed as NODISABLEALTTAB and moved to tweaks section
  • Add: preliminary wrapper for ddraw EnumSurfaces and GetSurfaceFromDC methods

New in DxWnd 2.04.72 Beta (Mar 27, 2018)

  • Fix: Direct3D8/9 CreateAdditionalSwapChain wrapper: simplified and fixed to make "Psychotoxic" movies working
  • Add: desktop font parameters saved and recovered by "Tools->Recover screen mode" command. Fixes lost font smoothing when "The Longest Journey" terminates.
  • Add: "FULLPAINTRECT win:FullPaintRect" tweak to force full rect values for GDI BeginPaint. Fixes "RollerCoaster Tycoon 2" partial screen updates.
  • Fix: addwd MCI_CLOSE message to messages processed by "Bypass MCI calls" - could avoid possible errors
  • Add: SKIPFREELIBRARY flag to avoid FreeLibrary recursive call - fixes "Disciples 1"
  • Add: FIXALTEREDPATH flag to fix LoadLibrary legacy with LOAD_WITH_ALTERED_SEARCH_PATH flag - fixes "Anachronox"
  • Fix: better (smaller) stramlined version with no trace messages

New in DxWnd 2.04.71 fx1 Beta (Mar 19, 2018)

  • fix: wrapper for D3D3/7::EnumZBufferFormats

New in DxWnd 2.04.71 Beta (Mar 19, 2018)

  • Fix: wrong prototypes for EnumTextureFormats D3D versions 1 & 2
  • Fix: a few log messages in OpenGL wrapper
  • Fix: ChangeDisplaySettings wrapper in rare condition where there is a request for big window and no previous main window - fixes Psychotoxic with DxWnd compiled in debug mode.
  • Fix: GetPalette wrapper now returns the correct error code DDERR_NOPALETTEATTACHED when asking the palette for primary/backbuffer surfaces with color depth different from 8 bits - needed for "Team 47 GoMan"
  • Fix: D3D8/9 CheckDeviceType wrapper - fixes "Beyond Divinity" error

New in DxWnd 2.04.69 Beta (Mar 19, 2018)

  • Fix: added bypass of GetDirect3D method in D3D8/9::Reset wrapper when CACHED3DSESSION is set. Fixed "GTA San Andreas" crash when run by Steam interface by Telingur.
  • Fix: set EXCEPTION_CONTINUE_SEARCH on 0xc0000008 exception. Fixes Dungeon Keeper crash in menues.
  • Fix: DirectSound hooking partial fixing
  • Fix: on 3DDEVICE ddraw surfaces add VIDEOMEMORY|LOCALVIDMEM only in case no memory type is set, leave SYSTEMMEMORY otherwise ...

New in DxWnd 2.04.68 fx2 Beta (Mar 5, 2018)

  • Fix: AVIFileOpenA/W prototypes, eliminate crash when hooking
  • Fix: added WM_NCPAINT and WM_NCACTIVATE to defaulted messages to ensure non-client area repaint back from Win+D minimize

New in DxWnd 2.04.67 Beta (Feb 23, 2018)

  • Fix: RECOVERSCREENMODE flag based on registry screen settings - fixes "CandyLand" for Win95
  • Add: Forces16BitZBufferBitDepth tweak (SETZBUFFER16BIT) to force 16bit ZBufferBitDepth - fixes 3D Slot Car Racing
  • Add: Forces24BitZBufferBitDepth tweak (SETZBUFFER24BIT) to force 24bit ZBufferBitDepth - just in case ...
  • Fix: ddraw surface capability settings for 3DREF & ZBUFFER surfaces in non emulated modes - makes "Motocross MAdness 2 trial" playable in all possible modes

New in DxWnd 2.04.66 Beta (Feb 19, 2018)

  • add: new GUI with Msgs tab in expert mode, all joystick related flags in Input tab
  • add: "System libs" trace flag to log system libraries events separately
  • fix: skip hooking of NTDLL.dll module
  • fix: suppression of LOAD_LIBRARY_SEARCH_SYSTEM32 flag from LoadLibraryEx calls - fixes Heavy Gear
  • fix: known dll array searched with ANSI dll name
  • fix: OpenGL hooking
  • fix: restored D3D1 ClearViewport hook
  • fix: recovered ddrawex.dll CreateDirectDraw hook - fixes "Theocracy" regression problems since v2.04.54
  • add: hook to ddrawex.dll, hook to ddraw session created by IID_DirectDrawFactory object
  • add: DXW_NOTRACES macro to compile streamlined dll

New in DxWnd 2.04.65 Beta (Feb 9, 2018)

  • fix: debug mode hook debugging loop: let the exception handling routines free to run
  • fix: inject mode hook: added syncronization event to ensure hooking initialization is completed before running the program
  • fix: fixed DISABLEMMX flag and added CPUDISABLEPBE flags to turn CPU PBE capability off - fixes Cryo "Arthur's Knights" CPU hacks
  • add: better D3D object tracing
  • fix: new html help files

New in DxWnd 2.04.64 Beta (Feb 5, 2018)

  • Add: new flag "Video / Set DPI awareness" (SETDPIAWARE)
  • Fix: various fixes on DirectInput support for virtual joystick
  • Fix: some SDL log message priorities
  • Fix: separated hexdump tracing macros
  • Add: preliminary xinput Xbox 360 controller emulation, new flag "Hook / Hook XInput" (HOOKXINPUT)
  • Add: joystick preliminary deadzone control
  • Add: Xbox 360 controller flags to assign mouse reading to left / right / both sticks
  • Fix: new joystick icons

New in DxWnd 2.04.63 Beta (Jan 28, 2018)

  • fix: logging system review
  • fix: improved DirectInput support for virtual joystick

New in DxWnd 2.04.62 Beta (Jan 23, 2018)

  • Fix: removed NUMCOLORS case in GetDeviceCaps wrapper, fix in v2.04.60. Damages ....
  • Fix: added dinput wrapper for CreateDeviceExW widechar method
  • Fix: dinput QueryInterface wrapper to handle both DirectInput and DirectInputDevice objects (W.I.P.)
  • Add: "Inputs" trace flag to log joystick and dinput events separately
  • Add: preliminary DirectInput support for virtual joystick
  • Add: detailed logging for dinput and vjoystick objects

New in DxWnd 2.04.61 Beta (Jan 12, 2018)

  • add: GUI contextual help
  • fix: GUI "crossfire" replaced by "crosshairs"
  • fix: GUI eliminated de-serialize pop-up window
  • fix: GUI fixed dirty initialization of "registry" & "notes" fields
  • fix: eliminated "ScaleWindowExtEx" trap message (call found in "Lego Marvel Superheroes" by Mchaidang)
  • fix: recovered static linking to MinHook to avoid early hook regression bug since release v2.04.58.fx2
  • fix: updated help with virtual joystick panel

New in DxWnd 2.04.60 Beta (Jan 8, 2018)

  • Fix: ddraw GetAttachedSurface wrapper returns backbuffer also when asked for DDSCAPS_FLIP capability from backbuffer. Needed by "Honour and Freedom".
  • Fix: added DIB stretching to SetDIBits wrapper in GDI stretched mode. Needed by "Honour and Freedom".
  • Fix: in 8 bit DIB emulation fixed case where the Quad entries were not initializad. Fixes crash in "G-Nome".
  • Fix: deleted unreferenced code for LockScreenMode static routine
  • Fix: added NUMCOLORS case in GetDeviceCaps wrapper. Unnecessary?
  • Add: new "Swallow mouse move messages" (SWALLOWMOUSEMOVE) flag - Fixes "Akte Europa" blocked rendering while moving the mouse
  • Add: new "Open config ..." expert mode command. Allows switching multiple config files in addition to default dxwnd.ini
  • Fix: -c:<path> command line argument fix. Ensures the path is referred to DxWnd folder.
  • Fix: possible fix to GUI duplicate entry bug
  • Add: banner message SpeedRun OK/KO to tell usage of speedrun banned flags

New in DxWnd 2.04.59h Beta (Dec 30, 2017)

  • add: View->"CD Player" panel
  • fix: more enhancements in CD audio emulator, plr_seek and plr_tell interfaces
  • fix: linked updated Minhook dll with dynamic linking
  • add: "Limit D3D BeginScene" (LIMITBEGINSCENE) flag to limit FPS in D3D games avoiding doubled delay
  • add: "Ignore Device Id." (IGNOREMCIDEVID) flag to ignore the device id field in mci cd player operations
  • fix: "Lock volume" now prevents alse mci cd player volume changes

New in DxWnd 2.04.58h Beta (Dec 20, 2017)

  • fix: more enhancements in CD audio emulator

New in DxWnd 2.04.57 Beta (Dec 14, 2017)

  • fix: various enhancements in CD audio emulator

New in DxWnd 2.04.56 Beta (Dec 8, 2017)

  • Add: "Virtual CD Audio" (VIRTUALCDAUDIO) flag for CD audio emulation (thanks to Tony Spets source code)
  • Add: "Load saved gamma ramp" (LOADGAMMARAMP) flag
  • Add: "Hook / Skip Hint in IAT seq. scan" (SKIPIATHINT) flag: fixes "The Black Mirror" hooking problems.
  • Add: "Refresh on palette Realize" (REFRESHONREALIZE) flag to properly handle "Titanic Adventure out of time".
  • Fix: fixed Flip wrapper for non-emulated & non-windowed case with NULL source.

New in DxWnd 2.04.55 Beta (Nov 30, 2017)

  • Add: "PAL DIB Emulation" (PALDIBEMULATION) flag to emulate 8bit palettized DIBs: fixes "G-Nome".
  • Fix: SetGammaRamp log message
  • Fix: DumpDibSection debug utility making up-side-down images of DIBs with negatve height.
  • Fix: moved Set/GetDIBColorTable hookers from wrong place USER32 to correct place GDI32
  • Fix: GDI viewport origin scaling in case of main window resizing - needed for "G-Nome"

New in DxWnd 2.04.54 Beta (Nov 26, 2017)

  • add: Suspend time stretch flag - tentative apply to avifile lib
  • fix: reorganized c code for hooking through SysLibsTable array
  • fix: capability to both hook a library and its dependencies - needed in Smackw32 hooking for Suspend time stretch
  • fix: SDL and SDL2 libs hooking made independent
  • fix: reduced maximum hexdump data size - avoids crash in bonkheads registry trace
  • fix: cleaned smackw32 wrapper
  • fix: separated flags for smackw32 vs. binkw32 hooking
  • fix: DirectSound API ordinal numbers
  • fix: virtual gamma control for 16bpp real desktop mode
  • add: custom key toggle
  • add: continuous screen capture for emulated ddraw
  • add: virtual gamma ramp control to D3D8/9 lights
  • add: debug flag STARTWITHTOGGLE to initialize custom key toggle to active
  • add: LIGHTGAMMARAMP to enable gamma ramp correction in D3D lights
  • code reorganization - debug flags moved to debug configuration word

New in DxWnd 2.04.53 Beta (Nov 17, 2017)

  • fix: again, another bug in ddraw surface stack. Fixes "Rival Realms" blitting problems.
  • add: virtual gamma control for ddraw surface emulation 32bpp desktop, GUI + dll.
  • add: Suspend time stretch flag to play movies at normal speed and avoid audio shuttering (implemented for bink and smack videos only so far)
  • add: CPU config panel to experiment with CPU features (developer's only!)
  • add: experimental CPU debug flags
  • add: slow down window polling flag (SLOWWINPOLLING) to reduce CPU load in some programs
  • fix: interception of window messages in NOWINPOSCHANGES flag: fixes "eXtreme Bull Rider" displacements

New in DxWnd 2.04.52 Beta (Nov 9, 2017)

  • Add: preliminary handling of FOURCC YUY2 surfaces with ddraw:ManageFourCCSurfaces tweak. Fixes movies in "Kirikou" and "King of Fighters Maximum Impact" emulator.
  • Fix: bug in IDirectDrawSurface::GetAttachedSurface wrapper with wrong caps initialiation for CAPS2 structure
  • Fix: D3D8::GetRenderTarget wrapper with wrong prototype
  • Fix: added MessagePump in D3D8/9::Present method to avoid game crash in movie tight loops
  • Add: log wrappers for D3D8/9 GetRenderTarget and CreateImageSurface methods
  • Add: GUI recover gamma ramp menu command
  • Add: GUI view gamma ramp panel
  • Add: automatic gamma ramp recovery on DxWnd termination

New in DxWnd 2.04.51 Beta (Nov 3, 2017)

  • Fix: fixed criteria to avoid "Kiss Pinball" tables to show partially
  • Fix: fixed wrong prototypes for Direct3D8 Get/SetGammaRamp prototypes causing game crash
  • Fix: GetScanLine log message
  • Fix: missing real screen size initialization
  • Add: FORCED3DGAMMARAMP to enable gamma ramp control from windowed game, though changing the whole desktop. Makes "Morrowind" more playable
  • Add: GUI - 4 vs. 32 bit icons support
  • Add: GUI - grayed icons for unreacheable targets

New in DxWnd 2.04.50 Beta (Oct 25, 2017)

  • Fix: wrong log messages for Direct3D(3) Viewport methods
  • Fix: wrong vectored exception handlers sequence, prevented CPUID & RTDSC replacement exceptions to work together with generic exception handler
  • Fix: CPUID emulation now trims MMX + SSE + SSE2 bits
  • Fix: implemented maximum entries limit per role type in surface stack. Fixes "Premier Manager 98" problems with 3DREF type surface overflow
  • Fix: log UpdateWindow event at debug level to avoid lengthy logs
  • Fix: GUI icon view known bugs
  • Fix: GUI disables filter combo-box when not applicable depending on renderer
  • Fix: GUI process kill dialog box is now TOPMOST to be always visible (thanks to FunkyFr3sh suggestion)
  • Fix: GUI defaulted icon view mode
  • Add: more debug logging on D3D SetRenderState wrapper

New in DxWnd 2.04.49 Beta (Oct 18, 2017)

  • Add: virtual drives - tested with "Atripolis 2097" that would require some files in C:A folder!
  • Add: game icons saved on exported configuration files
  • Add: GUI - icon view
  • Fix: CoCreateInstance wrapper handling the odd case of corrupted hook pointer. Fixes "Gods Lands Of Infinity Special Edition" with default DxWnd settings
  • Add: new optimized version of Scale2X filters, with support for MMX features, courtesy of A. Mazzoleni from AdvanceMAME
  • Add: Scale2K filters, again courtesy of A. Mazzoleni from AdvanceMAME
  • Fix: GUI default program name now gets stripped from .exe suffix
  • Bug: known bug - adding or importing a new program can break the icon view until next DxWnd start.

New in DxWnd 2.04.48 fx1 Beta (Oct 9, 2017)

  • Fix: exception handling for exception codes minor than 0x80000000

New in DxWnd 2.04.48 Beta (Oct 4, 2017)

  • Fix: exception routine for assembly instructions added with AddVectoredExceptionHandler. Fixes "Dark Judgement".
  • Fix: corrected misleading PeekMessage wrapper logs
  • Add: more DirectSound wrappers / logs
  • Fix: DirectSound mute option against buffers starting automatically without Play method - fixes mute option with "Digging Jim"
  • Add: wrapper for KERNEL32:WinExec call for SUPPRESSCHILD flag - prevents registration form with "Digging Jim"
  • Fix: bug in UnmappedScreenRect desktop heigth calculation
  • Fix: moved CreateVirtualDesktop routine to dxw generic class
  • Fix: fixed CreateVirtualDesktop window properties according to position & style modes
  • Add: added REPLACEDIALOGS flag to relace troublesome dialog windows - fixes "Dark Rift" in windowed mode
  • Fix: reduced DxWnd banner flickering outside main window
  • Add: added option /h for GUI to stay hidden in icon tray after program termination

New in DxWnd 2.04.47 Beta (Sep 28, 2017)

  • Add: circular logs mode. dxwnd.log is filled with up to 50000 messages and then swapped to dxwnd.0.log
  • Add: SDL2 renderer
  • Add: DISABLEMMX flag: fixes "The New Adventures of the Time Machine"
  • Add: ADDTHREADID log flag: adds thread id to log messages
  • Fix: added some dlls to system unhooked list: oleaut32, uxtheme, setupapi, dwmapi
  • Fix: in user32 EnumDisplaySettings wrapper, returning current virtual desktop size instead of fixed 800x600
  • Fix: SDL_BlitSurface wrapper on NULL src condition - fixes "Battle for Wesnoth" rendering
  • Fix: cleared clipper in SDL and SDL2 renderers - fixes "Abuse" with SDL
  • Fix: various log fixes

New in DxWnd 2.04.46 Beta (Sep 21, 2017)

  • fix: improved GUI dpi-awareness logic - fixes Win7 125% case
  • fix: DWL_DLGPROC handling - fixes "Return to Mysterious Island" and more

New in DxWnd 2.04.45 Beta (Sep 20, 2017)

  • Add: GUI preliminary dpi-awareness logic
  • Add: GUI preliminary "Sound" tab (DirectInput only)
  • Add: Sound preliminary "Sound mute" and "Lock volume" flags (DirectInput only)
  • Add: Sound trace
  • Add: precise timing flag to control CPU speed with a more precise timer than system Sleep.
  • fix: GetProcAddress wrapper must skip SysAllocString/SysAllocStringLen calls to avoid reursion

New in DxWnd 2.04.44 Beta (Sep 15, 2017)

  • Fix: fixed log message about window position
  • Fix: fixed window styles attribution
  • Fix: fixed SDL SDL_SetVideoMode wrapper failing to assign main window handle
  • Fix: GUI fixed executable file lock (caused by icon extraction) preventing executable detetion until DxWnd was closed
  • Fix: reduced scope of REPLACEPRIVOPS option: not on entire text segment but only from entry point to end. Reduces (but not clears) chances of a improper non-assembly replacement.

New in DxWnd 2.04.43 Beta (Sep 13, 2017)

  • Add: D3D8/9 Force Vertex Processing option
  • Add: hooker for SDL SDL_PollEvent call to fix mouse coordinates: fixes
  • Add: hookers for SDL2 calls SDL_Renderer, SDL_Window, SDL_CreateTexture, SDL_UpdateTexture
  • Fix: in intSDL_Refresh skip operation when width or height is zero. Fixes "BosWars" crash.
  • Fix: in SDL SLL_SetVideoMode added refresh cursor clipping coordinates. Fixes "BOS Wars" initial clipping state.
  • Fix: in SDL SDL_CreateWindow hooker updated args to adapt to windowed mode.
  • Fix: added tracing of GDI CreateDIBitmap return code.
  • Fix: do not elect to main window any window smaller than fullscreen. Fixes (partially) some spash screens, e.g. "Talvisota Icy Hell".
  • Fix: in hook initialization, revised operations that must run once only.
  • Fix: in dxwCore::FixWindowFrame fiked potentially fake error conditions that may lead to partial operations.
  • Fix: GUI missing initialization of window style selector
  • Add: integration with Scale2X SSE version, great speed boost!

New in DxWnd 2.04.42 Beta (Aug 24, 2017)

  • Add: ZeroDisplayCounter tweak to force 0 return code on ShowCursor(FALSE): fixes "Leopold the Cat" initial loop.
  • Fix: uninitialized variable in ShowCursor hooker
  • Fix: better tracing on IDIrectDraw::GetCaps hooker
  • Fix: better implementation of exception handling
  • Upd: preliminary implementation of Scale2X filters 2x and 3x with mp support to speed operations with multi-core CPUs

New in DxWnd 2.04.41 Beta (Aug 14, 2017)

  • Fix: fixed time stretching initialization for proxy hooking mode
  • Fix: fixed virtual keys initialization for proxy hooking mode
  • Fix: added search for slash '/' separator in addition of backslash '' in LoadLibrary path cleanup: fixes problem in OpenGL library detection for "Crime Cities"
  • Add: KillBlackWin tweak for unwanted window suppression: fixes (eliminates) "Kane & Lynch 2" black background window
  • Fix: logging and error condition in USER32 RedrawWindow wrapper
  • Fix: logging in USER32 EnumWindows wrapper
  • Add: "Fix PCM audio" flag to support stereo PCM audio by downgrding the audio channels to 1 (mono). Fixes "Capcom Arcade Hits Vol 1" audio problems.
  • Fix: GUI fixed path for tweaks.ini help file

New in DxWnd 2.04.40 Beta (Aug 8, 2017)

  • Upd: code reorganization to support renderers
  • Fix: ddraw proxy breaking aero compatibility
  • Fix: SDL renderer flickering problem

New in DxWnd 2.04.39 Beta (Aug 3, 2017)

  • add: OpenGL tentative wrapper for glDrawArrays
  • add: OpenGL tentative dump for GL_LUMINANCE textures
  • fix: OpenGL fix for texture size in dump
  • add: OpenGL texture dump protection by try/catch statemens
  • fix: fixed GUI using deallocated data in Debug and Injection run modes
  • fix: fixed GUI broken menu link for Proxy->dinput proxy install command
  • fix: fixed GUI Debug mode run handling of breakpoint exceptions: the Debug mode now works on WinXP
  • fix: fixed GUI determination of run program start address: the Debug mode now works also in case of ASLR (Address Space Layout Randomization)
  • add: better GUI diagnostic in case of run error
  • add: added FlushInstructionCache in Debug mode run. Useful?
  • add: GUI messagebox to acknowledge proxy installation

New in DxWnd 2.04.38 fx4 Beta (Jul 31, 2017)

  • Add: added hook for glTexSubImage2D
  • Fix: hooker for wglGetProcAddress redirects not only wgl* calls but also gl* calls (needed in "BStone" port of "Blak Stone")
  • Add: tentative dump of GL_LUMINANCE and GL_RGBA textures (not working)
  • Add: DxWnd proxy through dinput.dll
  • Fix: fixed broken flag for "full bilinear filtering"
  • Fix: deleted "Deinterlace" tweak, moved to filters

New in DxWnd 2.04.38 fx3 Beta (Jul 30, 2017)

  • fix: dxwnd proxies

New in DxWnd 2.04.38 fx1 Beta (Jul 28, 2017)

  • Fix: filter Scale2X request for images smaller than 2 pixels wide / heigth
  • Fix: FastBlt operations with wrong (too big) RECT coordinates. Fixes some "Road Rash" problems.
  • Fix: DxWnd.exe logfiles created on current working directory - fixed using initial absolute path.

New in DxWnd 2.04.38 Beta (Jul 27, 2017)

  • add: semi-pluggable filters: Scale2X, HQX, PIX, Interlace filters
  • add: experimental SDL1.2 renderer
  • new: dxemublt.cpp major code reorganization
  • new: enlarged communication area - possible errors when running previous releases before this one!!!
  • fix: "Addword Abe Oddysee" patch: don't emulate the strange ddraw::BltFast operation on single video lines
  • add: thanks to Andrea Mazzoleni, Maxim Stepin & Cameron Zemek for filters source code
  • add: fancy thanks scrolling

New in DxWnd 2.04.37 Beta (Jul 19, 2017)

  • Add: virtual registry handling of hex(n) data types - needed for "Nightmare Creatures"
  • Add: virtual registry preliminary proxy for RegEnumKey and RegEnumKeyEx tracing
  • Fix: virtual registry logging
  • Fix: fixed problem with empty copies of dxwnd.ini left in the file system
  • Fix: fixed missing update of dxwnd.reg file when virtual registry is updated

New in DxWnd 2.04.36 fx3 Beta (Jul 12, 2017)

  • Fix: "Emulate 16bpp D3D8 backbuffer" was working only with D3D trace on (regression introduced in v2.04.36)
  • Fix: D3D8/9::Present method, destination rect should be scaled only if not NULL (regression introduced in v2.04.36)
  • Fix: ChangeDisplaySetting* should ignore CDS_SET_PRIMARY when in windowed mode - fixes "Fastlane Pinball"

New in DxWnd 2.04.36 Beta (Jul 10, 2017)

  • Fix: revised logic to switch to fake-fullscreen modes through toggle keys
  • Add: NOTASKBAROVERLAP flag to prevent window to overlap the desktop taskbar
  • Fix: removed attempts to always hook D3D10/11 interfaces
  • Fix: bad reference passed to HookDirect3D8/9 for IDirect3D8/9 pointer
  • Add: hookers for tracing IDirect3D8/9::Release calls
  • Fix: "Suppress Direct3D8/9 reset" now skips more operations (safer)
  • Fix: D3D8 16bit color emulation working tentatively also for not NULL rects
  • Fix: D3D8 16bit color emulation activated only when necessary (on selected 16bpp backbuffer format)
  • Fix: IDirect3D8/9::Present surface scaling in more general conditions
  • Add: trace for SDL2:SDL_SetWindowFullscreen call
  • Add: experimental CACHED3DSESSION flag

New in DxWnd 2.04.35 Beta (Jul 5, 2017)

  • fix: fxed missing clear of surface stack for primary surface - fixes crash on auto refresh option and in particular fixes "M1 Tank Platoon 2"
  • fix: logic to avoid window overlap on top of desktop taskbar
  • fix: window client coordinates fix to avoid mouse ointing errors avter window trimming
  • add: completed implementation of "thin frame" option
  • fix: some SDL alpha channel functions not remapped to real video surface

New in DxWnd 2.04.34 Beta (Jul 4, 2017)

  • fix: suppressed duplicated coordinates correction in PeekMessage when message hook is active
  • fix: window position when the wanted size is too big to fit
  • fix: DxWnd icon on system tray recovery on explorer.exe restart and WinXP platform
  • add: more OpenGL gl* and wgl* functions tracing
  • fix: OpenGL window styles problems - now on "18 Wheels of Steel" fake fullscreen modes are borderless
  • add: SCALEGLBITMAPS flag for runtime scaling of OpenGL glBitmap bitmaps - usable in "Devil Whiskey"
  • add: HOOKWGLCONTEXT flag to conditionally hook OpenGL wgl extensions
  • fix: main window remapping & resizing moved from wglCreateContext to wglMakeCurrent wrapper and fixed to avoid flickering
  • fix: FREEZEINJECTEDSON debug flag
  • add: GUI "Run suspended" command to start a program with DxWnd injection and blocked waiting for debugger attach
  • fix: SDL_FreeSurface wrapper handling the possible duplicated free of video surface - fixes "Battle for Wesnoth" crash
  • add: more SDL wrappers

New in DxWnd 2.04.33 Beta (Jun 26, 2017)

  • fix:
  • uncompressed icon resources for WinXP compatibility
  • blit to primary surface protected by try/catch exception handlers: improves "Empire of the Fading Suns" robustness
  • wrapper for glRasterPos4fv scaling x,y coordinates: partially fixes "Devil Whiskey" text on screen
  • updated user32:MoveWindow wrapper for BIG windows move operations
  • tweaks lists now support multiple selection
  • add:
  • support for setting / removing DxWnd proxy hookers
  • logs: window message log decoding legacy messages 0x90-0x95
  • logs: logging Direct3DDevice::Execute flags
  • logs: logging user32:ReleaseCapture calls
  • FIXEMPIREOFS tweak to make runtime patch for "Empire of the Fading Suns"
  • texture dumps for GL_RGB textures (bad colors...)

New in DxWnd 2.04.32 Beta (Jun 12, 2017)

  • add: preliminary hooking of ddraw GetSurfaceFromDC API (not the method!) with dialog box for detection
  • fix: try / catch to manage exceptions in log routine
  • add: custom banner dxwanim.bmp. Could be deleted or replaced ...
  • fix: GDI32 BitBlt hooker doesn't use StretchBlt for intra-memory blits - fixes "Avernum 3" transparency problems
  • fix: desktop hider: deleted call to UpdateWindow - fixes the crash of "Star Trek Birth of the Federation" in "hide desktop" mode
  • fix: USER32 ScrollWindow wrapper crashing when lpRect or lpClipRect arguments were NULL. Fixes "Mig Alley" crash.
  • fix: fixes implementation of ddraw RestoreDisplayMode wrapper. Useful for "Mig Alley".
  • fix: added support for definition of default desktop size & color depth. Useful for "Mig Alley".
  • add: experimental tweak "MAKEWINVISIBLE" to force visibility of windows queried to check for visibility
  • add: preliminary SDL overlay handling.
  • add: tracing of UnhookWindowsHook system call
  • fix: proper handling of ChangeDisplaySettings(NULL, 0) condition. Useful for "Mig Alley".
  • add: "EMULATEMAXIMIZE" flag to assign proper size & position to maximized windows. Useful for "Mig Alley".
  • fix: trimming of window size & position in MoveWindow wrapper. Useful for "Mig Alley".
  • add: GUI - preliminary tweaks contextual help

New in DxWnd 2.04.31 Beta (May 28, 2017)

  • Add: very preliminary hooking of sound system wail32.dll
  • Add: lock window z-order to top
  • New: updated artworks, thanks to ZeroX4
  • Fix: LegacyD3DResolutionHack integration bug
  • Fix: SDL hooking, added methods allow emulation of DOSBox screen

New in DxWnd 2.04.30 Beta (May 24, 2017)

  • add: dedicated time stretched operation trace
  • fix: preliminary SDL handling fixes
  • fix: gsky916 suggested fix for shared dc leakage
  • fix: gsky916 suggested fix for GDI blit FPS control
  • add: gsky916 suggested add for "mouse move by event" flag. Replaces "SetCursorPos" calls with equivalent "mouse_event". Fixes WF1, another game of wind fantasy series.
  • fix: GetWindowRect hooker when called to get desktop size. Fixes "Avernum 3" demo original version.
  • gui: independent expert and debug modes
  • gui: tweaks tab for infrequently used boolean flags
  • fix: missing screen refresh on fast palette transitions - fixes "Jane's Fighters Anthology" striped effect
  • add: new tweak LegacyD3DResolutionHack to remove resolution limitations from legacy d3d interfaces
  • fix: handling of D3D surface capabilities - makes "Drakan the Order of Flame" demo working

New in DxWnd 2.04.29 Beta (May 11, 2017)

  • fix: CallWindowProcW log error
  • fix: improved size & position locks in WindowProcess message procedure
  • fix: MCIWndCreate flags for movie stretching: fixes "Megaman 3" and "Megaman 4" movie stretching
  • add: more window messages decoded in log file
  • add: preliminary "hide joysticks" flag
  • add: preliminary SDL handling

New in DxWnd 2.04.28 Beta (May 5, 2017)

  • add: fourCC tracing, added symbolic string when available
  • fix: opengl wglCreateContext sets window size, position & style according to configuration
  • fix: opengl glDrawPixels wrapper scales 2D texture, fixes the "Crazy Marble" initial splash screen
  • fix: opengl glGetString & gluGetString wrappers causing a crash when trace is enabled
  • fix: GDI32 RoundRect wrapper to scale coordinates - fixes "iF22" menu graphic
  • add: added hooking "No scan" method to avoid hooking scrambled IAT - fixes games of Sierra Hoyle series
  • fix: cursor handling in centered and fake-fullscreen modes

New in DxWnd 2.04.27 Beta (Apr 30, 2017)

  • fix: virtual registry errors for hex keys - fixes "Marble Drops" RIP registry access
  • fix: ddraw GetAttachedSurface wrapper returning backbuffer attached to primary on proper conditions - fixes "Frogger 2 Swampy's Revenge"
  • fix: ddraw GetClipList wrapper - fixes "New Robinson" problems when logging is not set
  • add: D3D9::GetFrontBufferData wrapper for method emulation while in fullscreen mode - fixes "Hitchhiker's Guide to the Galaxy remake"
  • add: "hot registry" flag, experimental, to force hooking & logging of all registry operations

New in DxWnd 2.04.26 Beta (Apr 22, 2017)

  • Add: LOCKFULLSCREENCOOP flag "Lock FULLSCREEN coop level" to prevent return to normal coop level in non windowed mode, used in "Speedboat Attack" fullscreen.
  • Add: frame counter limitation added to D3D1-7 BeginScene method
  • Fix: Texture dump crash for D3D8-9 textures
  • Fix: proper return codes for NODIALOGS mode
  • Fix: logs for LoadLibraryW wrapper
  • Add: NOBAADFOOD flag "No BAADFOOD" to avoid (virtual) heap initialization to 0xBAADFOOD value, setting to 0x0 instead. Needed to run "Independence Day" RIP.

New in DxWnd 2.04.25 Beta (Apr 14, 2017)

  • fix: better handling of DirectDrawPalette refernce counters, incremented only once
  • add: SAFEPALETTEUSAGE option to fix DirectDrawPalette use and abuse (fixes "Speedboat Attack")
  • fix: handling of smack descriptor trace in case of NULL pointer
  • add: NODIALOG option to suppress error messages on dialog boxes
  • fix: added coordinate remapping to mciSendString "put window client" command - fixes "Twisted Metal" video coordinates

New in DxWnd 2.04.24 Beta (Apr 10, 2017)

  • Fix: applied correct capabilities to attached ZBUFFER surface. Fixes "Wipeout XL".
  • Fix: ddraw SelectPalette wrapper. Fixes "Yu-No" and "speedboat attack" crashes.

New in DxWnd 2.04.23 Beta (Apr 5, 2017)

  • fix: bug in DirectDrawSurface::Lock() wrapper for "locked surface" mode: service surface is created with fixed arguments
  • fix: proper handling of DirectDrawSurface::Blt() method when using DDFLAGS_FILLCOLOR flag
  • fix: PrimaryStretchBlt fixes, propagation of Blt dwflags and lpddbltfx arguments

New in DxWnd 2.04.22 Beta (Mar 31, 2017)

  • Added:
  • Preliminary integration binkw32.dll
  • New "No mouse event generation" flag
  • New "byte aligned" IAT navigation schema for IAT with no OFT indication
  • Preliminary USER32 SendInput hook
  • Fixed:
  • DirectDrawEnumerate/Ex wrappers, default monitor device name "display" now considered equivalent of ".\DISPLAY1"

New in DxWnd 2.04.21 Beta (Mar 24, 2017)

  • fix: proxed calls to SetCooperativeLevel with no specification for screen mode changes
  • fix: locked rect fix applied only in case of not NULL rect specification. Fixes "Shadow Watch" font blitting problems.
  • fix: DirectDrawEnumerate/Ex wrappers now filter video devices properly when a given monitor is selected. Partially fixes "The Sting!" behaviour on multi-monitor environment.
  • fix: aligned primary surface capabilities for flipped native and emulated modes
  • add: wrappers for ddraw7 StartModeTest and EvaluateMode methods only for logging
  • fix: wrapper for SetCooperativeLevel proxy the call when flags is DDSCL_FPUPRESERVE or DDSCL_FPUSETUP only. Seen in "G-Darius"
  • add: separated logging flag for structures hexdump
  • fix: eliminated initial logging for undefined virtual keys (useless)
  • fix: fixed unconditional logging for USER32:PolyLine
  • add: diagniostic DC dump in GDI32:SetDIBitsToDevice wrapper
  • fix: GDI32:SetViewportOrgEx wrapper when ddraw surface is still missing
  • add: in ddraw::QueryInterface, logging for detection of Clipper or Palette objects
  • fix: fix for /c:path argument of DxWnd command line usage, now can accept full file paths
  • fix: log=none as default value for new dxwnd program entries

New in DxWnd 2.04.20 Beta (Mar 15, 2017)

  • GUI:
  • add: two more 32bit words for additional flags
  • add: timestamp and dxwnd version added to exported files
  • fix: window style selector through radio buttons
  • fix: implementation of View->Shims
  • DLL:
  • add: management of 3DREF surfaces to handle D3D CreateDevice with offscreen surface
  • add: FIXTHINFRAME option to get overlapped window with thin border
  • fix: revised implementation for DirectDrawSurface getCaps and GetSurfaceDesc wrappers
  • add: hooker for SetWindowsHookEx WH_MOUSE_LL events - used by "Royal Tramp 2"
  • fix: added WM_NCMOUSELEAVE to the list of potentially offending messages

New in DxWnd 2.04.19 fx1 Beta (Mar 9, 2017)

  • fix: fixed "Need fos Speed 5" peculiarity: QueryInterface of an object on top of itself.

New in DxWnd 2.04.19 Beta (Mar 8, 2017)

  • fix: major code reorganization: caps database & surface stack merged into a single object class, including ZBUFFER surfaces
  • fix: eliminated arbitrary surface properties settings
  • fix: joystick api promoted to hot patching to get a more powerful hooking
  • add: hooking of WM_STYLECHANGING/STYLECHANGED messages to allow D3D rendering within the window borders instead of over the whole window area - fixes "Nightmare Creatures" and others.

New in DxWnd 2.04.18 Beta (Mar 5, 2017)

  • add: "Fix AdjustWindowRect" flag (FIXADJUSTWINDOWRECT) to selectively turn the AdjustWindowRect coordinate patching. The flag must be checked for "Man TT Super Bike" and unckecked for "Imperialism II".
  • add: "Hook child WindowProc" and "Hook dialog WindowProc" flags for better control over these risky operations.
  • fix: bad GetParent hook: caused crash when checking "Hook child WindowProc" flag.
  • fix: improvements in "Hybrid" emulation mode

New in DxWnd 2.04.17 Beta (Feb 28, 2017)

  • add: 2 more DWORD flags, unused for now
  • add: virtual joystick sensivity control
  • fix: check on ZBUFFER capability attribution in case the capsdb holds a wrong capability belonging to a different surface that was deleted
  • add: "Fix LoadLibrary error" flag (LOADLIBRARYERR) to return ERROR_DLL_NOT_FOUND instead of ERROR_MOD_NOT_FOUND error code. Fixes "Nightmare Creatures".
  • add: "Hybrid" flag for "Shared ddraw & GDI DC" mode - reduces "Star Treck: Armada" problems.

New in DxWnd 2.04.16 Beta (Feb 24, 2017)

  • Add: improved virtual joystick with configuration and monitoring panel, invert axis options, show crossfire.
  • Fix: GetAttachedSurface now simulates also the primary surface as attach to backbuffer. Fixes GTA first episode windows version.

New in DxWnd 2.04.15 Beta (Feb 21, 2017)

  • fix: suppress DDERR_EXCLUSIVEMODEALREADYSET error in ddraw::SetCooperativeLevel(). Fixes program termination in "Sid Meier's Alpha centauri".
  • fix: exception caught on DirectDrawSurface::Release(): it may fix problems when using ddraw proxies
  • fix: added clipper object to ddraw QueryInterface management
  • fix: added IID_UNKNOWN object to ddraw QueryInterface management
  • fix: better implementation of LIMITRESOURCES flag: now HD virtual space is 100MB free in a 120MB disk.
  • fix: SLOWDOWN flag in PeekMessage now uses dxw.DoSlow(1) instead of *pSleep(1), preserves more messages
  • add: more cases in mciSendCommand wrapper for BYPASSMCI flag
  • fix: in mciSendCommand using ANSI MCI_OVLY_WINDOW_PARMS instead of WIDECHAR version
  • fix: DirectDraw:GetCaps wrapper crash when setting SUPPRESSOVERLAY and the hw or sw caps pointer is NULL
  • fix: exception when trying to use ddraw SetAppCompatData and LoadLibrary failed
  • fix: error messages on LoadLibrary errors

New in DxWnd 2.04.14 Beta (Feb 15, 2017)

  • fix: virtual registry parser, token names now case insensitive (es. "path" = "Path")
  • fix: virtual registry crash when replacing tokens and lplpData is NULL
  • fix: virtual registry return code, must not return ERROR_MORE_DATA when lpData is NULL (fixes "Rollcage II")
  • fix: eliminated error message in virtual palette processing when color depth is 8 bits
  • fix: improved logging in EnumDisplayModes wrapper
  • fix: EnumDisplayModes wrapper for nonemulated nonwindowed mode
  • fix: deleted improper input clipper destruction after primary surface destruction. Fixes "Settlers III" clipper problems
  • add: virtual heap (makes some "Wing Commander" games work)
  • fix: freak help->about...
  • add: GUI "Tools->Recover system colors" utility

New in DxWnd 2.04.13 Beta (Feb 15, 2017)

  • fix: moved USER32/InvalidateRect hooker to always activate it and further reduce desktop flickering
  • fix: fixed virtual registry tags that introduced extra characters in key string expansion
  • add: hooked SelectClipRgn - preliminary to attempt fixing "Sid Meier's Alpha Centauri"
  • fix: fixed unsupported call to SetWindowsHook(WH_CBT, NULL). Fixes "Starsiege" deaf mouse control.
  • fix: completed and rebuilt proxy dlls to be aligned with current DxWnd structure

New in DxWnd 2.04.12 Beta (Feb 8, 2017)

  • GUI:
  • add: "Support offscreen 3D" flag (OFFSCREENZBUFFER)
  • DLL:
  • fix: recursion bug in CreateWindowExA hooker
  • add: OFFSCREENZBUFFER flag

New in DxWnd 2.04.11 Beta (Feb 6, 2017)

  • GUI:
  • add "Kill all" menu command on expert mode
  • add "Lower background priority" flag
  • add "Include menu in clipper area" flag
  • DLL:
  • fix decrement virtual reference counter in case of 3D surfaces with ZBuffer (experimental) fixes "Microsoft International Soccer 2000".
  • add more message types in window message logging
  • fix fixed mouse clipper logic and moved code in dxwCore class
  • fix fixed GDI palette syncronization with ddraw recovers "Hyperblade" black screen in gameplay
  • fix unhooked USER32 GetParent() call, causing recursion in hot patch mode, blanked dialogs ("Galapagos") and in general more problems than benefits
  • fix fixed AdjustWindowRect/Ex() wrapper to always neutralize window changes (good for "Man TT Superbike")
  • fix fixed message processing for FORCEWINRESIZE now "Man TT Superbike" can be moved and resized (at least on Win10).
  • add added BACKGROUNDPRIORITY handling
  • add added CLIPMENU handling

New in DxWnd 2.04.10 (Feb 2, 2017)

  • GUI:
  • add: view flags window (expert mode only)
  • DLL:
  • fix: prevent InvalidateRect on desktop, eliminates some flickering
  • fix: ZBUFFER capability management - fixes "Galapagos" in HW mode (but it may crash because of the intro movie...)
  • fix: logging of log flags
  • fix: D3D8/9 QueryInterface fully revisited
  • add: (very) preliminary texture transparency hack

New in DxWnd 2.04.09 (Jan 31, 2017)

  • add: hook USER32 AdjustWindowRect/Ex calls: fix window position problems for "Man TT Superbike"
  • add: hook for USER32 GetActiveWindow() tracing.
  • fix: version hooking for IDIrectDraw methods called by IDIrectDrawSurface methods: fixes many crashes on ddraw games
  • fix: capability registration passed in IDIrectDrawSurface::QueryInterface() calls: fixes settings for ZBUFFER surfaces
  • fix: capsdb logging (developer's use only)
  • fix: handling of WM_NCCALCSIZE & WM_NCPAINT messages in winproc hooker to align behaviour to comment. To be tested ...

New in DxWnd 2.04.08 fx1 (Jan 30, 2017)

  • fix: in fx1, bug crashing app when querying unknown interfaces!

New in DxWnd 2.04.08 (Jan 27, 2017)

  • fix: improved DIB dumping & logging: fixed BMP header with negative size, dump only when DIB has attached image
  • fix: safe CreateWindow mode, preserves original size & position within win creation. Fixes "Warhammer SotHR"
  • blitting problems
  • fix: virtual registry file created by GUI and not extracted by the dll. Ths avoids getting the first matching entry.
  • fix: "Scale font parameters" fully revised, also renamed to "Scale font size"
  • add: "High quality fonts" flag to force antialiasing font style
  • fix: ddraw surface capability regression for emulated backbuffer: fixes "Dominant Species" textures in SW mode
  • fix: ddraw surface capability regression for direct primary/backbuffer: should fix "Tomb raider 3" in HW mode
  • fix: ddraw surface capability regression for zbuffer: fixes "Toca Touring Car" in SW mode

New in DxWnd 2.04.07 (Jan 23, 2017)

  • fix: QueryInterface wrapper for ddraw classes unified in a single procedure.
  • fix: D3D2 SwapTextureHandles hook fix - fixes "Wizardry Chronicle" texture problems
  • fix: string overflow in TextureHack procedure for D3D1-7 textures

New in DxWnd 2.04.06 fx1 (Jan 18, 2017)

  • GUI:
  • add: Expert mode
  • DLL:
  • fix: corrected condition to print two virtual registry log messages
  • fix: improved logic to recover surfaces with DDSCAPS_TEXTURE capability - ref. "Dominant Species"
  • fix: fixed cursor clipping state and toggle key to make it work in all conditions

New in DxWnd 2.04.05 (Jan 18, 2017)

  • GUI:
  • add: preliminary implementation of Dummy/Expert GUI modes
  • fix: "Explore" command implementation for WinXP
  • DLL:
  • add: preliminary implementation of virtual registry tokens to make configuration relocable
  • fix: capability fix on surface creation. DDSCAPS_TEXTURE is replaced by DDSCAPS_OFFSCREENPLAIN. Fixes "Dominant Species" on certain situations where the surface creatuion returns DDERR_UNSUPPORTED code.
  • add: preliminary hook for GDI32 RemoveFontResources and EnumFonts
  • fix: CreateRectRgnIndirect wrapper altered input RECT* coordinates
  • fix: separated D3D QueryInterface pointers and wrappers, added wrapping for QueryInterface D3D v7
  • fix: log cleanup
  • add: "Dynamic ZBUFFER fix" flag (DYNAMICZCLEAN): needed to fix some of "Tonic Trouble" rendering problems.
  • add: OpenGL dedicated logging
  • add: WinG32 dedicated logging
  • fix?: bypass for WM_FONTCHANGE: avoids "Warhammer: Shadow of the Horned Rat" crash when entering battle
  • add: WinG32 debug highlighting of blitted rects on screen
  • add: GDI32 debug highlighting of blitted rects on screen
  • add: hooks for GDI32 GetTextExtentPointA and GetTextExtentPoint32A: needed for proper string rendering on "Warhammer: Shadow of the Horned Rat"
  • add: hook for GDI32 GdiAlphaBlend, very rare call that appeared in "RHEM" during savegame load.

New in DxWnd 2.04.04 (Jan 11, 2017)

  • GUI:
  • add: run unhooked command
  • fix: improved logic to propose config save only when virtual registry string is potentially updated
  • fix: when hooking is disabled, STARTDEBUG and INJECTSUSPENDED processing don't take place
  • DLL:
  • fix: crashing condition on "hide desktop background" option - fixes M&MVI crash
  • fix: mouse loop coordinate fix when main window is not set
  • fix: eliminated log of dmDeviceName field in ChangeDisplaySettings* calls because the field may be not initialized
  • fix: NOMOVIES option now stops also SmackW32 movies (making movie length only 1 photogram).

New in DxWnd 2.04.03 fx1 (Jan 9, 2017)

  • add: D3D8 16bpp backbuffer emulation on 32bpp color depth. Fixes "Dangerous Waters" on 32bpp Win8-10
  • add: more OpenGL wgl* hooks, used by "StarSiege 2014".
  • fix: using correct version method pointers in bilinear blit, avoids crash in "Daytona USA" using bilinear filtering
  • fix: do not try to CloseHandle the handle returned by GetMenu, avoids debugger exceptions.

New in DxWnd 2.04.03 (Jan 8, 2017)

  • add: D3D8 16bpp backbuffer emulation on 32bpp color depth. Fixes "Dangerous Waters" on 32bpp Win8-10
  • add: more OpenGL wgl* hooks, used by "StarSiege 2014".

New in DxWnd 2.04.02 (Jan 4, 2017)

  • fix: avoid crashing on View Shims command on WinXP
  • fix: bilinear 2X crash
  • fix: handling of 16 to 32 bpp color conversion in D3D8 IDirect3DDevice8 Copyrects and GetFrontBuffer methods. Fixes "Dirt track Racing 2" missing panels.
  • fix: more / better logging
  • fix: in USER32/CreateWindow* calls, handles the case where a to-be main window is moved/resized before being declared as main window. Fixes uncontrolled position changes in "Civil Wars 2 Generals".
  • add: preliminary hooks for message loop APIs USER32/PeekMessage, GetMessage, PostMessage. Now PeekMessage includes SLOWDOW flag processing, reduces CPU time in "Civil Wars 2 Generals".

New in DxWnd 2.04.01 fx6 (Dec 30, 2016)

  • fix: bug causing crash when using fast bilinear filtering 2X

New in DxWnd 2.04.01 fx5 (Dec 30, 2016)

  • fix: fixed error condition when DirectDraw::GetCaps is invoked with wrong length - fix "Spearhead" bug
  • fix?: ZBUFFER original capabilities passed to new surface created by QueryInterface - so far, useless

New in DxWnd 2.04.01 fx4 (Dec 28, 2016)

  • add: preliminary WinG32 handling
  • add: minimal WinG32 replacement, thank to Wine source code
  • add: DirectX(2)/"Create a Desktop Win" option. Fixes "Man TT Super Bike"
  • add: new hooking schema for IAT organized like original "Al Unser Jr. Arcade Racing"
  • fix: in virtual registry fix to handle the '@' void label case properly
  • fix: added hook for RegQueryValueA, used by "Warhammer 40.000 Shadow of the Horned Rat"
  • fix: virtual registry logging
  • add: added SmackW32 hooking to bypass SmackColorRemapWithTrans and SmackColorRemap: SmackColorRemap seems involved in changing screen resolution in "Civil War Generals 2"
  • fix: some log messages
  • fix: SetWindowLong hooker: eliminated a unassigned variable condition
  • fix: added hooker for GDI32/SetROP2 call to insert a InvalidateRect as in older OS. Makes "Titanic" working.
  • fix: added hooker for Smack32/SmackSetSystemRes call to prevent resolution change and set proper virtual screen size: see "Spearhead"
  • fix: fixed virtual screen size initialization so that it doesn't override settings defined before first window creation: see "Spearhead"

New in DxWnd 2.04.01 fx3 (Dec 28, 2016)

  • fix: added hooker for GDI32/SetROP2 call to insert a InvalidateRect as in older OS. Makes "Titanic" working.

New in DxWnd 2.04.01 fx2 (Dec 27, 2016)

  • add: added SmackW32 hooking to bypass SmackColorRemapWithTrans and SmackColorRemap: SmackColorRemap seems involved in changing screen resolution in "Civil War Generals 2"
  • fix: some log messages
  • fix: SetWindowLong hooker: eliminated a unassigned variable condition

New in DxWnd 2.04.01 (Dec 23, 2016)

  • add: preliminary WinG32 handling
  • add: minimal WinG32 replacement, thank to Wine source code
  • add: DirectX(2)/"Create a Desktop Win" option. Fixes "Man TT Super Bike"
  • add: new hooking schema for IAT organized like original "Al Unser Jr. Arcade Racing"
  • fix: in virtual registry fix to handle the '@' void label case properly
  • fix: added hook for RegQueryValueA, used by "Warhammer 40.000 Shadow of the Horned Rat"
  • fix: virtual registry logging

New in DxWnd 2.04.00 fx2 (Dec 20, 2016)

  • fix: fixed fast bilinear 2X on 32 bit color depth

New in DxWnd 2.04.00 fx1 (Dec 19, 2016)

  • fix: improvements in texture handling, dds format support for DirectDraw textures

New in DxWnd 2.04.00 (Dec 18, 2016)

  • add: texture management for D3D textures: XCTn compressed textures, raw mode, texture highlight and hack
  • add: Input / "fix MOUSEHOOK callback" option, fixes "Jagged Alliance 2" mouse problems
  • add: GDI / "Pretend Win visible & on top" option: experimental, let the program believe that the main window is visible and on top of z-order as usually happens to full screen applications
  • add: GDI / "Win insulation" flag: avoid enumerating windows so that the program can't interfere with them. Fixes "Tribal Rage" damages to desktop.
  • add: hook to ddraw DuplicateSurface() method, so far for logging only.
  • fix: eliminated possible divide by 0 exception when minimizing windows
  • fix: mouse clipping now selected by radio buttons (default, off, on, locked)
  • fix: bug in D3D device enumeration log
  • fix: bug in Hybrid and GDI ddraw surface rendering
  • fix: missing "No HAL Device" flag default to disabled

New in DxWnd 2.03.99 fx3 (Dec 11, 2016)

  • add: flag "Pretend Win visible on top" (PRETENDVISIBLE) to let the program believe that the main window is always visible and on z-order top as a fullscreen window should be
  • fix: fixed some divide by 0 conditions when window is minimized

New in DxWnd 2.03.99 fx2 (Dec 10, 2016)

  • fix: handling of Lock/Unlock methods differentiated in ddraw 4 vs. 7. Fixes "Hoyle Casino Empire"
  • fix: texture hack now search for hacked textures in the texture.in folder, as stated in the documentation
  • fix: D3D7 EnumDevices hexdump fixed

New in DxWnd 2.03.99 (Dec 8, 2016)

  • add: "No HAL Device" flag, making it unavailable the IID_Direct3DHALDevice device. Fixes "Grand Prix World" when the 3D car models are invisible.
  • add: reorganization of mouse clipper fields, with the addition of LOCK mode (useful for Tribal Rage)

New in DxWnd 2.03.99 b3 (Dec 7, 2016)

  • fix: unwanted hook to directsound when passing by CoCreateInstance()
  • fix: transient mode, now checks for both the target and the launcher to be dead before terminating
  • add: Direct3D TRIMTEXTUREFORMAT flag, to mimic MS "DirectXTrimTextureFormat" shim. Fixes problems in ....
  • add: D3DDevice GetCaps hooking and full dump of D3DDevice capabilities

New in DxWnd 2.03.98 fx1 (Dec 2, 2016)

  • fix: fixed the policy for redrecting the WindowProc routine. Fixes "Ultimate Spiderman" clipping problems, and possibly much more

New in DxWnd 2.03.98 (Nov 28, 2016)

  • add: fine tuning for vsync options: three modes (default: game native, force on, force off) three algorythms (ddraw WaitForVerticalBlank, loop controlled by GetScanLine, loop controlled by time delay)
  • add: fine tuning for WAIT options in ddraw Flip() and Blt() methods: three modes (default: game native, force on, force off)
  • fix: better support for non windowed + no emulation mode, surfaces and blit operations are left (almost) in original state, surface capabilities are left inaltered
  • fix: added missing recovery on surface lost
  • fix: some missing or wrong logs
  • fix: suppression of WS_EX_TOPMOST flag in all conditions for UNLOCKZORDER mode
  • fix: SUPPRESSOVERLAY flag applied also to D3D capabilities from D3D GetDeviceCaps() method
  • add: added more API hookers in IMAGEHLP.DLL bypass
  • fix: fixed logic to hook WindowProc routines for main window, childs and dialogs.
  • fix: more frequent updates of window coordinates to avoid scaling errors
  • fix: fixed CreateDialogIndirectParam and CreateDialogParam wrappers to make inner windows properly scaled (fixes red Alert 2)
  • fix: recovered DEFAULTMESSAGES option
  • fix: normalized output for ddraw GetScanLine() method

New in DxWnd 2.03.97 fx4 (Nov 21, 2016)

  • add: "Warn on exit" global flag to always force the warning message on exit

New in DxWnd 2.03.97 fx3 (Nov 18, 2016)

  • add: warning messages when closing DxWnd and possibility to cancel the operation

New in DxWnd 2.03.97 fx2 (Nov 17, 2016)

  • fix: emulation of proper ddraw surface capabilities in GetSurfaceDesc() and GetCaps() methods. Seems to cope with needs of most (all?) games.
  • fix: recovered handling of WM_ERASEBKGND message. Fixes missing backgrounds in "Adrenix" and "Adrenix 3D" games.
  • fix: cleaned up and unified capability handling in DirectDrawSurface GetCaps and GetSurfaceDesc methods
  • add: warning message and update when running a program with non updated virtual registry settings.
  • fix: LoadLibrary wrappers failed to clear the recursion flag, stopping the hook of new modules after a recursion case.

New in DxWnd 2.03.97 (Nov 16, 2016)

  • fix: emulation of proper ddraw surface capabilities in GetSurfaceDesc() and GetCaps() methods. Seems to cope with needs of most (all?) games.
  • fix: recovered handling of WM_ERASEBKGND message. Fixes missing backgrounds in "Adrenix" and "Adrenix 3D" games.

New in DxWnd 2.03.96 (Nov 14, 2016)

  • preliminary handling of hidden window
  • fix: handling of non-windowed mode. Fixes "Warhammer 40.000 Rites of War" in non-windowed mode
  • add: NODDEXCLUSIVEMODE flag. Forces non exclusive ddraw coop level in non-windowed mode. Fixes "Warhammer 40.000 Rites of War" in non-windowed mode
  • add: CLEARTEXTUREFOURCC flag. Suppresses FOURCC capability and handling. Should help to process compressed textures.
  • fix: CreateDIBSection wrapper log messages
  • fix: PREVENTMAXIMIZE window size checks: should avoid size bigger than initial size, bugged coding inhibited any growth.
  • fix: GUI setting of execution folder when running "Launcher" task.

New in DxWnd 2.03.95 (Nov 7, 2016)

  • fix: fixed prototype for ICDrawBegin wrapper
  • add: extended logging for mci multimedia API
  • add: window position selector & "locked size" + "anchored" modes
  • fix: transient mode when system tray is not available
  • fix: recursion problem in kernel32 LoadLibrary* wrappers. Allows "Hot patch" on WinXP.
  • fix: initial position problem.

New in DxWnd 2.03.94 fx3 (Nov 2, 2016)

  • fix: aligned Lock cheats in Direct/Indirect mode ......
  • fix: no window interventions in non windowed mode. Fix "Gunbound" in fullscreen mode
  • fix: avoid multiple injection for early-hooked programs. Fix "Gunbound" regression.
  • fix: Restore of all lost surfaces upon D3D BeginScene DDERR_LOSTSURFACE error. Fix "Gunbound" lost textures in fullscreen mode.
  • add: more logging in mciSendCommand - possibly some regression problem...
  • fix: corrected clipping bug introduced in v2.03.93.
  • fix: SetWindowLog hooker preventing to set DxWnd windowproc when not in fullscreen mode. Fixes "Nascar Racing 3" recursion and crash.
  • fix: eliminated useless filter to suppress high resolutions detection in PREVENTMAXIMAZE mode
  • fix: fixed mciSendCommand wrapper log messages that could crash the program

New in DxWnd 2.03.94 fx2 (Oct 31, 2016)

  • fix: aligned Lock cheats in Direct/Indirect mode ......
  • fix: no window interventions in non windowed mode. Fix "Gunbound" in fullscreen mode
  • fix: avoid multiple injection for early-hooked programs. Fix "Gunbound" regression.
  • fix: Restore of all lost surfaces upon D3D BeginScene DDERR_LOSTSURFACE error. Fix "Gunbound" lost textures in fullscreen mode.
  • add: more logging in mciSendCommand - possibly some regression problem...
  • fix: corrected clipping bug introduced in v2.03.93.
  • fix: SetWindowLog hooker preventing to set DxWnd windowproc when not in fullscreen mode. Fixes "Nascar Racing 3" recursion and crash.

New in DxWnd 2.03.93 (Oct 27, 2016)

  • add: GUI game icon extracted also form separated *.ico icon file
  • add: GUI definition of default values for window position
  • fix: ddrawsurface::Unlock lprect usage: doesn't use the input value but refers to rect passed in Lock operation. Fixes "fifa 2000" crash.
  • fix: avoid issuing a GetPalette method against a deallocated object
  • fix: automatic creation of Clipper object if needed for emulated ddraw blit to primary surface - fixes the well known black blitting problem
  • fix: proper handling of dinput DirectInputDevice::GetDeviceData() DI_BUFFEROVERFLOW error condition
  • fix: user32 GetCursorPos() wrapper
  • fix: user32 mouse_event() wrapper

New in DxWnd 2.03.92 fx2 (Oct 24, 2016)

  • add: option "Fix FreeLibrary" to emulate the Win9X behaviour returning errorcode upon attempts to free a deallocated module. Fixes "Heavy Gear" patch 1.2 endless loop problem.
  • fix: added reference to Palette object to allow final Release() without crash - fixes "Heavy Gear" crash at end of mission
  • fix: fix RECT structure passed to ddraw::Unlock method in case it points to bad coordinates. Fixes FIFA2000 in D3D mode
  • fix: wrapped all OpenGL GetString methods and inserted proper logging. For diagnostic purposes.
  • fix: fix ddraw::SetPalette wrapper in case lppd is NULL. Fixes Adrenix sw mode crash.
  • fix: better way to manage extra modules to be hooked (Glide ddls, SmackW32)

New in DxWnd 2.03.91 fx5 (Oct 17, 2016)

  • fix: eliminated LOC causing bad window sizing
  • fix: better desktop hider management
  • fix: DC emulation object leakage - fixes "Yu No" leakage
  • fix: USER32 EndPaint DC leakage - fixes "Yu No" leakage
  • fix: window position problems
  • fix: GUI auto hide mode enabled and disabled without need of GUI restart
  • fix: ddraw surface stack policy. Recovers "Warhammer 40K Rites of War" after v2.03.83 fix.
  • add: /q quiet mode, no message dialogs on screen

New in DxWnd 2.03.91 fx2 (Oct 13, 2016)

  • fix: eliminated LOC causing bad window sizing
  • fix: better desktop hider management

New in DxWnd 2.03.90 (Oct 6, 2016)

  • add: added flags/fields to define initial/maximum screen resolution
  • add: "Lock color depth" ddraw flag. Fixes "Ahlgrens Bilspelet" color problems
  • add: preliminary opengl/glut32 hook
  • fix: ZBUFFER capabilities - allow "Galapagos" to run in hw accelerated mode
  • fix: separated D3D FindDevice hookers for D3D version 1/2/3
  • fix: some unused code cleanup

New in DxWnd 2.03.89 (Oct 4, 2016)

  • fix: replaced hooked LoadLibrary with original call (*pLoadLibraryA), this seems to avoid the hook address replacements and the need for the "No hook update" flag. To be tested.
  • fix: added some missing IID_DirectDraw3 case in DirectDraw hooking
  • fix: fixed the logic for centering the main window for desktop with non-zero offset
  • fix: improved logic for window placement in CreateWindowEx call
  • fix: added wrapper for winmm/GetJoyPos() virtual joystick referenced in "Jane's FA18"

New in DxWnd 2.03.88 (Oct 4, 2016)

  • fix: revised (simpler) window handling, hopefully more reliable (Diablo no longer crashes on fake-fullscreen modes?)
  • fix: eliminated hook of smackw32.dll to reach GDI32/user32 calls beneath
  • fix: added ddraw hooking in ddrawex/CreateDirectDraw() call: now "Theocracy" works with default "Automatic" ddraw hooking
  • fix: added hook for EnumDisplayDevicesW used by "Battleground Europe"
  • fix: added "Hide multi monitors" logic to EnumDisplayDevicesA/W

New in DxWnd 2.03.87 (Oct 4, 2016)

  • fix: possibility to use @ token instead of "" in fake registry
  • fix: independent hooking of DirectDraw3 objects, needed for "Theocracy"
  • fix: eliminated shared hooking of "Compact" ddraw methods
  • add: improved caps masking in debug mode, now can change any flags
  • fix: added missing hook for DirectDraw3 in QueryInterface
  • fix: fixed wrong hook for GetGDISurface in DirectDraw3 interface
  • fix: eliminated dialog box when hooking ddrawex
  • fix: eliminated experimental hook to auxGetNumDevs returning 1 available device always. Fixes problems with "Imperialism II"

New in DxWnd 2.03.86 (Oct 4, 2016)

  • fix: completely revised the "Keep aspect ratio" flag, now should work with multi-windowed games too.
  • add: multi-monitor handling with dynamic detection and monitor selection
  • fix: basic class reorganization - now it is a little more neat and simple
  • add: added 1280x1024 resolution limit
  • add: mult hooks option now available in global settings panel
  • add: viewfinder to grab coordinates from a window on screen

New in DxWnd 2.03.85 (Sep 15, 2016)

  • add: added control to avoid hide of tray window. Useful for "Planet of the Apes"
  • fix: fixed BIG window coordinates. Fixes "Deer Hunter" window positioning problems.
  • fix: mciSendCommand wrapper for BYPASSMCI flag

New in DxWnd 2.03.84 FX1 Alpha (Sep 12, 2016)

  • add: new flag "No hook update" (HOOKNOUPDATE) to disable update of original call address in case of change
  • add: hint message for "No hook update" condition
  • add: hint message for memory signed integer overflow
  • add: GUI flag "Name by Folder" to default the program name field with the program folder instead of program filename
  • add: new flag "Set keyboard shared coop. level" (SHAREDKEYBOARD) to change directinput keyboard cooperative level mode
  • add: new flag Direct3D / "Enumerate 16bit modes" (ENUM16BITMODES) to force enumeration of 16 bit video modes on Win10 desktop when not listed
  • fix: GUI randomic value for Injection mode selector when adding new entry

New in DxWnd 2.03.83 Alpha (Sep 5, 2016)

  • fix: cleared surface list on primary surface creation: "Daytona USA" keeps creating new primary surfaces, so it saturated the surface list.
  • fix: calling the proper GetGDISurface pointer in Lock wrapper
  • fix: HookProc routine causing crash with GTA3, fixed for Win7 and Win10
  • fix: LoadLibrayA/W after a SetWorkingDir invocation didn't load the local modules. Fixes "The Rage".

New in DxWnd 2.03.82 Alpha (Sep 5, 2016)

  • fix: fixed situations where the virtual desktop window was not fully blackened during initialization
  • fix: added FlushInstructionCache call to "suspended process" injection type to make it more reliable
  • fix: suppressed more capabilities when setting "Suppress overlay capability" flag
  • fix: fixed logic for ZBUFFER capabilities: "The Creed" seems to have two, one in SYSTEMMEMORY and one in VIDEOMEMORY...
  • fix: avoid setting cursor clipping when client area is returned with zero size.
  • fix: fixed CreateProcessA hooker for "suspended process" injection type to forward all parameters to the system call
  • add: added "Fix glBindTexture texture" flag to compensate for the missing glActiveTexture call. Fixes "bugdom" 2D panels.

New in DxWnd 2.03.81 Alpha (Aug 23, 2016)

  • fix: hook AVIFileRelease to avoid call when avi file is NULL. Fixes a crash in "Die hard trilogy"
  • fix: in DirectDrawSurface::QueryInterface added handling of Direct3DDevice objects: Needed for "Die hard trilogy"
  • fix: hooking of DirectDrawSurface GetPalette / SetPalette methods
  • add: added "Suppress DI common errors" for Acquire / Unacquire methods: Needed for "Die hard trilogy"
  • add: some DirectSound methods for logging
  • add: some Direct3D error codes for logging
  • fix: fixed some Direct3D methods hooking
  • fix: Direct3DDevice::AddViewport hooker now delete a viewport that is still linked to a previous device. Needed for "Die hard trilogy"
  • fix: fixed CreateProcess hooker for "Extend injection" mode: Needed for "Die hard trilogy"

New in DxWnd 2.03.80 Alpha (Aug 16, 2016)

  • add: "Suppress DI common errors" flag, fixes initial failures of Acquire method.
  • fix: in centered window option, trims the window coordinates if they exceeds the screen size and risk getting negative values.
  • fix: fixed injection logic to avoid hooking task when the "Hook enabled" flag is off
  • fix: avoid calling GDI SetPixelFormat more than one upon a window since this is not supported. Fixes "bugdom" OpenGL problems.
  • fix: scales glGetIntegerv(GL_VIEWPORT) returned values. Fixes "bugdom" rendering problems.
  • add: added GUI logging when debug mode is on.
  • add: added a third injection mode "Inject suspended process". Modified the GUI to select the injection mode through radio buttons. Improves injection compatibility, working mode for "T-ZWei" on WinXP.

New in DxWnd 2.03.79 Alpha (Aug 16, 2016)

  • fix: proper handling of DirectInputCreateEx function - fixes "Gothik 2" mouse and window control
  • fix: avoids setting the pixel format of a window more than once through GDI SetPixelFormat call. Fixes "Bugdom" OpenGL rendering
  • fix: improved bilinear filtering speed through gsky916 loop optimization
  • fix: added delay handling to several gdi32 amnd user32 routines blitting to screen

New in DxWnd 2.03.78 Alpha (Aug 16, 2016)

  • fix: DirectDrawSurface::GetCaps now returning VIDEOMEMORY+LOCALVIDMEM type for 3DDEVICES in system memory. Fixes "Gothic 2" controls.
  • add: Added SKIPDEVTYPEHID to avoid passing HID input devices to DirectInput::EnumDevices callback. Fixes "Jetboat Superchamps 2" crash.
  • add: hint for OS version compatibility flag
  • add: hint for obfuscated IAT detection
  • add: hint for safedisk and securom game protection
  • add: hint to show safedisc version
  • fix: centralized handling of window styles

New in DxWnd 2.03.77 Alpha (Aug 16, 2016)

  • fix: SetCooperativeLevel with 0 HDC should not alter fullscreen status (fixes Portugal 1111 scrolling problem)
  • add: preliminary "Show hints" flag and feature
  • GUI: multi-line tab control
  • GUI: clicking on notes and registry icons the GUI goes straight to the relative tab pages.
  • GUI: The DirectX tab is now splitted in two, so that there no longer are DirectX switches into the Direct3D tab.

New in DxWnd 2.03.76 Alpha (Aug 16, 2016)

  • fix: DC handle leakage in several places, this also fixed GDI "emulated devie context" mode.
  • fix: FillRect wrapper, fixed coordinate remapping with wrong values. Fixes "Imperialism" menu and detailed view.
  • fix: suppressed "reuse emulated DC" flag: it was no longer referenced in the code.
  • fix: workaround for occasional DDERR_INVALIDPARAMS error in service GetDisplayMode to detect current video mode.
  • fix: code cleanup: eliminated CREATEDESKTOP handling, experimental and no longer supported
  • fix: vdxcore::IsToRemap now detects the NULL dc handle as remappable DC
  • fix: some logging imperfections
  • fix: palette log message crashing the program

New in DxWnd 2.03.75 Alpha (Aug 16, 2016)

  • fix: handling of restore previous screen mode when a primary fullscreen window is terminated. Fixes "Dethkarz" initialization error after 8BPP intro movie termination.
  • fix: SystemParameterInfo for SPI_SETSCREENSAVERRUNNING does not return an error
  • fix: added default pixel format specification to backbuffer: improves the possibility of ZBUFFER attach
  • fix: recovery of DDERR_SURFACELOST error on primary surface in PrimaryStretchBlt routine.
  • fix: possible palette handle leakage
  • fix: DC leakage caused by CreateCompatibleDC. Fix "Mechwarrior 3" repeated play sessions.
  • add: GUI drag & drop of game executables
  • fix: RegQueryValueEx bad retcode when Data ptr is NULL
  • fix: recovered support for Windows XP
  • fix: fake registry did not read last registry line! Fixed.

New in DxWnd 2.03.74 Alpha (Aug 16, 2016)

  • fix: logging of dwFOURCC field text value
  • fix: Injection routine: avoid closing a few handles that should not be closed, simplified logic.
  • add: GUI global configuration panel

New in DxWnd 2.03.73 Alpha (Aug 16, 2016)

  • fix: address hooking for GDI SetPixelFormat(): avoids resolution changes in "T-Zwey" configured for D3D8 rendering engine.
  • fix: logic for restering last window position on multimonitor configurations
  • add: "Help -> View Help" to show help page
  • add: "Fix GlobalUnlock" flag to fix GlobalUnlock bad errorcodes in "Grand Prix World" and possibly other games.
  • add: revised log configuration, added "Separate" mode to make each process to write on a dedicated file.

New in DxWnd 2.03.72 Alpha (Aug 16, 2016)

  • fix: inserted bypass for DirectDraw::Compact method, that is unimplemented but can return errors. Fixes "Crazy Climber" error detection.
  • fix: error in d3d9::CrerateDeviceEx method preventing it to work when moving fullscreen devices to window mode, as tipically happens using DxWnd. Fixes d3d9 version of "Saint's Row the Third"
  • fix: accurate determination of ".text" or "CODE" segments where to apply the REPLACERTSC and REPLACEPRIVOPS flags.
  • fix: error in logic to add extra reference to backbuffer surface: fixes "Warhammer 40k Rites of War".

New in DxWnd 2.03.71 Alpha (Aug 16, 2016)

  • fix: no need to save configuration before running with fake registry
  • add: icons to notify for non-empty registry and notes tabs
  • fix: hooked ddrawex.dll DirectDrawEx methods - fixes "Whiteout", what else?