# DDrawCompat
#### Introduction
`DDrawCompat` is a DirectDraw wrapper aimed at fixing compatibility and performance issues with games based on DirectX 7 and below on newer versions of Windows (Vista/7/8/10).
Games using DirectX 8 and above for rendering are not affected as they don't use `ddraw.dll`.
`DDrawCompat` does not use any external renderer (such as OpenGL), nor even a newer version of DirectX. It only changes how DirectDraw (and GDI) is used internally. Since older versions of Direct3D (v7 and below) also rely on DirectDraw, `DDrawCompat` may be useful for those renderers as well.
#### License
Source code is licensed under the `Free Public License 1.0.0`. See `LICENSE.txt` in the repository root for details. The same terms apply for the entire repository, not just for the versions in which the license file appears.
Binary releases are licensed under the `Microsoft Research Shared Source License Agreement (Non-commercial Use Only)`. Each release contains the exact terms in `license.txt`.
Note that `DDrawCompat` neither comes from, nor is endorsed by Microsoft. Use it at your own risk!
#### Requirements
- Windows Vista, 7, 8 or 10
- DirectDraw (comes preinstalled with Windows)
#### Installation
Download the latest binary release from the repository's [releases](https://github.com/narzoul/DDrawCompat/releases) page. Unzip the file and copy the extracted `ddraw.dll` to any DirectDraw based game's installation directory, next to the main executable file. If the main executable is in a subdirectory of the installation directory, you must put `ddraw.dll` in the same subdirectory.
If there is already an existing `ddraw.dll` file there, it is probably another DirectDraw wrapper intended to fix some issues with the game. You can still try to replace it with `DDrawCompat`'s `ddraw.dll`, but make sure you create a backup of the original DLL first.
Do not attempt to overwrite `ddraw.dll` in a Windows system directory, it is currently not supported and will not work.
If you put the dll in the correct place, then (assuming the game really uses DirectDraw) every time you launch the game a `ddraw.log` file should be created in the same directory, containing some basic log messages. If something goes wrong, it is worth checking this log file for possible error messages.
#### Uninstallation
Delete `DDrawCompat`'s `ddraw.dll` from the game's directory and restore the original `ddraw.dll` file (if there was any). You can also delete the `ddraw.log` file.
#### Configuration
`DDrawCompat` aims to minimize the amount of user configuration required to make games compatible. It currently doesn't have any configuration options. This may change in future versions, if the need arises.
#### Troubleshooting
If some compatibility options are set for the game via the Compatibility tab of the executable's Properties window, try disabling or changing them.
If that doesn't help, advanced users can access additional compatibility options using Microsoft's ACT (Application Compatibility Toolkit). This is not a user guide for ACT, you'll have to look for that elsewhere. However, here are some of the compatibility fixes I found useful:
- **`Disable8And16BitD3D:`** It can help with performance issues in games that use 8 and 16 bit color modes. This fix is available only in the `Compatibility Modes` listing and not under `Compatibility Fixes`.
- **`DXPrimaryEmulation:`** Use it with the `-DisableMaxWindowedMode` parameter. It can help with performance issues. `DDrawCompat` enables this automatically.
- **`ForceSimpleWindow:`** If you are not using **`DXPrimaryEmulation`** and the game is running in full screen mode with visible window borders, then this may help remove the borders.
- **`NoGDIHWAcceleration:`** Despite what the name suggests, this can improve performance. It can be used as an alternative to **`DXPrimaryEmulation`**. Usually using both will not provide additional performance benefits.
- **`SingleProcAffinity:`** Old games often have various issues when running on multiple CPU cores. This fix will force a game to run on a single core. `DDrawCompat` enables this automatically.
- **`Win98VersionLie:`** Some games use different code paths based on the reported OS version or may not run if the version is not recognized. This and other similarly named fixes report the specified fake Windows version to the game and may help with various issues.
#### Development
`DDrawCompat` is written in C++ using Microsoft Visual Studio Community 2015.
Compilation depends on [Detours Express 3.0](http://research.microsoft.com/en-us/projects/detours/). It needs to be built first before `DDrawCompat` can be built. Change the include and library paths as needed if you didn't install/build Detours in the default directory.
The project initially used the Windows 8.1 SDK and WDK, but some commits after the v0.2.1 release it was updated to use the Windows 10 SDK and WDK instead. The exact version required can be checked in the project properties in Visual Studio (General tab / Target Platform Version). Commits using an older platform version can probably still be built with a newer version by retargeting the project to the appropriate SDK.
没有合适的资源?快使用搜索试试~ 我知道了~
DDrawCompat-master.zip_DDrawCompat补丁_ddraw_ddraw-master_ddrawcom
共136个文件
h:77个
cpp:54个
filters:1个
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 31 浏览量
2022-09-24
22:48:58
上传
评论
收藏 122KB ZIP 举报
温馨提示
解决win10系统下 TS平台无法正确绘制菜单的问题
资源详情
资源评论
资源推荐
收起资源包目录
DDrawCompat-master.zip_DDrawCompat补丁_ddraw_ddraw-master_ddrawcom (136个子文件)
DeviceFuncs.cpp 14KB
DisplayMode.cpp 13KB
RealPrimarySurface.cpp 12KB
DcFunctions.cpp 11KB
PaintHandlers.cpp 10KB
SurfaceImpl.cpp 9KB
Hook.cpp 8KB
KernelModeThunks.cpp 8KB
WinProc.cpp 7KB
Surface.cpp 7KB
Hooks.cpp 6KB
DllMain.cpp 6KB
PrimarySurfaceImpl.cpp 6KB
Gdi.cpp 6KB
PrimarySurface.cpp 6KB
Repository.cpp 6KB
DirectDraw.cpp 5KB
DcCache.cpp 5KB
Dc.cpp 4KB
Registry.cpp 4KB
ScrollBar.cpp 4KB
DeviceFuncsLog.cpp 4KB
DepthBuffer.cpp 4KB
Log.cpp 4KB
Hooks.cpp 4KB
Caret.cpp 4KB
TitleBar.cpp 4KB
KernelModeThunksLog.cpp 3KB
DirectDrawClipper.cpp 3KB
OversizedResource.cpp 3KB
DeviceCallbacksLog.cpp 3KB
Direct3d.cpp 3KB
Hooks.cpp 2KB
AdapterFuncs.cpp 2KB
DirectDrawSurface.cpp 2KB
ScrollFunctions.cpp 2KB
FontSmoothing.cpp 2KB
LockResource.cpp 2KB
ActivateAppHandler.cpp 2KB
DirectDrawPalette.cpp 2KB
Direct3dDevice.cpp 2KB
TagSurface.cpp 1KB
DirectDrawGammaControl.cpp 1KB
AdapterFuncsLog.cpp 1KB
MsgHooks.cpp 604B
Direct3dViewport.cpp 350B
Direct3dVertexBuffer.cpp 341B
Direct3dTexture.cpp 293B
IReleaseNotifier.cpp 213B
UnmodifiedProcs.cpp 209B
Time.cpp 199B
AdapterCallbacks.cpp 142B
DeviceCallbacks.cpp 139B
Procs.cpp 67B
DDrawCompat.def 509B
DDrawCompat.vcxproj.filters 18KB
Log.h 6KB
CompatVtable.h 5KB
DeviceFuncsVisitor.h 5KB
Direct3dDeviceVtblVisitor.h 4KB
CompatQueryInterface.h 4KB
DeviceCallbacksVisitor.h 3KB
DirectDrawSurfaceVtblVisitor.h 2KB
SurfaceImpl.h 2KB
Types.h 2KB
DirectDraw.h 2KB
DirectDrawVtblVisitor.h 2KB
Hook.h 2KB
Direct3dVtblVisitor.h 2KB
Types.h 1KB
Surface.h 1KB
PrimarySurfaceImpl.h 1KB
DeviceFuncsLog.h 1KB
Procs.h 1KB
Direct3dViewportVtblVisitor.h 1KB
PrimarySurface.h 1KB
LockResource.h 1KB
CompatPtr.h 996B
DirectDrawSurface.h 965B
ScrollBar.h 953B
VtableVisitor.h 916B
KernelModeThunksLog.h 839B
DeviceCallbacksLog.h 795B
RealPrimarySurface.h 789B
Gdi.h 730B
IReleaseNotifier.h 690B
Direct3dTextureVtblVisitor.h 689B
Direct3dVertexBufferVtblVisitor.h 688B
Direct3dDevice.h 653B
CompatWeakPtr.h 645B
OversizedResource.h 626B
TitleBar.h 616B
Direct3dViewport.h 596B
AdapterFuncs.h 564B
Direct3d.h 551B
DirectDrawPalette.h 550B
Direct3dVertexBuffer.h 549B
DcCache.h 542B
FontSmoothing.h 536B
DisplayMode.h 527B
共 136 条
- 1
- 2
寒泊
- 粉丝: 75
- 资源: 1万+
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论0