- Added DirectSoundControl (DSoundCtrl) project for improved sound control
- Added hooking for DDrawCompat, DSoundCtrl and d3d8to9 APIs to allow these functions to work with all dll types
- Added option for DDrawCompatDisableGDIHook to fix games where GDI hooking causes an issue
- Auto failover to 32bit mode for DDrawCompat when there is a failure to get the requested display mode
- Made d3d9.dll, dwmapi.dll, uxtheme.dll, version.dll and winmm.dll load dynamically
- Set ResetScreenRes to disabled by default
- Renamed EnableStoppedDriverWorkaround to StoppedDriverWorkaround
- Added logging for dxwrapper version information
- Added logging for operating system type and version
- Added logging for process name and PID
- Fixed debug build to get it working in Visual Studio
- Fixed debug logging in hotpatch and iatpatch
- Added debug logging for each Config setting
- Moved exception handling logs to the debug log
- Ensure that only one copy of a dll is loaded by LoadDll()
- Update how SingleProcessAffinity is handled
- Added GetFunctionAddress() to get function addresses from binary file since GetProcAddress() does not return the correct address
- Updated API hooking code and enabled HotPatch hooking
- Removed MinHook from the code
- Fixed threading issue with config ParseCallback
- Fixed the unloading of dll libraries to allow all libraries to be freed on exit
- Removed critical section from fullscreen.cpp to fix possible deadlock
- Refreshed d3d8to9 from corsire branch