DDrawCompat:修复老 DirectDraw 游戏在现代 Windows 上的兼容与画面问题
【免费下载链接】DDrawCompatDirectDraw and Direct3D 1-7 compatibility, performance and visual enhancements for Windows Vista, 7, 8, 10 and 11项目地址: https://gitcode.com/gh_mirrors/dd/DDrawCompat
在 Windows 11 上双击一款老 DirectDraw 游戏,常见翻车是:画面只有 640x480 被拉伸变形;Alt+Tab 切出再切回直接崩溃;帧率波动剧烈、画面撕裂。DDrawCompat 拦截游戏的 DirectDraw 和 Direct3D 1-7 调用,配合原生图形库接管渲染,修复兼容与画面问题。想在现代系统上玩老游戏的玩家适用,无需改游戏本体,无需装驱动。
跑起来之前先确认
| 项目 | 要求 |
|---|---|
| 操作系统 | Windows Vista / 7 / 8 / 10 / 11 |
| CPU | 支持 SSE2 指令集 |
| 显卡 | 支持 Shader Model 3 |
| 附加条件(仅 Vista/7) | WDDM 兼容驱动,且桌面组合已启用 |
显卡不支持 Shader Model 3 时,DDrawCompat 无法接管渲染,唯一出路是换设备或放弃。
🚀 三步跑通
- 下载:从官方发布页获取最新二进制版本(避开文件名带 debug 的);如需源码,执行
git clone https://gitcode.com/gh_mirrors/dd/DDrawCompat。 - 放置:把解包出的 ddraw.dll 复制到游戏主程序 exe 所在目录;目录里已有别的 ddraw.dll 时,先备份原文件再替换。
- 验证:启动游戏,同目录出现
DDrawCompat-<游戏名>.log日志文件,这就是生效的唯一标志;没有日志说明 DLL 没被加载,或日志被配置关闭。
它实际修了哪几类问题
你看到游戏只请求 640x480,在大屏上被拉伸成模糊色块。它把渲染分辨率与桌面解耦,配合双线性滤镜(把像素边缘"糊"平滑)让画面边缘平滑。
你看到游戏切走再切回来直接闪退,表面状态丢失后程序直接退出。开启 AltTabFix 后,它会在切回时重建表面,画面恢复正常。
你看到帧率忽高忽低、画面撕裂。它用垂直同步(让画面输出对齐刷新)、帧率上限和 PresentDelay 延迟提交三项,把帧率压到设定值附近。
你看到 3D 模型顶点扭曲、画面边缘被裁剪。它默认对 Direct3D 1-7 的顶点数据做 GPU 端修正;看到边缘裁剪错误时,再开启 ViewportEdgeFix 处理视口边缘问题。
🔧 常用参数怎么填
v0.4.0 起支持文本配置与游戏内覆盖界面,完整模板见 Tools/DDrawCompat.ini。
| 配置项 | 作用 | 推荐值 |
|---|---|---|
| DisplayResolution | 游戏渲染分辨率 | desktop |
| ResolutionScale | 渲染分辨率相对请求值的缩放 | app(2) |
| FullscreenMode | 全屏方式,影响录制软件兼容性 | borderless |
| DisplayFilter | 画面缩放滤镜 | bilinear(0) |
| FpsLimiter | 帧率上限 | 60 |
DisplayResolution = desktop ResolutionScale = app(2) DisplayFilter = bilinear(0) FullscreenMode = borderless FpsLimiter = 60游戏中按 Shift+F11 打开配置面板直接改,Shift+F12 打开统计面板。
⚠️ 不对劲时先查这张表
| 你看到什么 | 大概率卡在哪 | 你该改什么 |
|---|---|---|
| 启动后没生成日志 | ddraw.dll 没被加载,或日志被关闭 | 确认与 exe 同目录;检查配置里的日志开关 |
| 画面花屏、颜色错位 | 滤镜或纹理采样设置不匹配 | DisplayFilter、TextureFilter 改回 app 或试 point |
| 全屏下录屏失败 | 独占全屏与录制工具冲突 | FullscreenMode 改 borderless |
| Alt+Tab 后崩溃 | 表面丢失没被处理 | 设置 AltTabFix = on |
| 帧率波动大 | 垂直同步策略默认跟随应用 | 显式 VSync = on,或用 FpsLimiter 限帧 |
🚫 这些情况它不接
- 需要联网的游戏不支持,无法在离线环境之外运行。
- Windows 预览体验计划(Insider)构建不在范围。
- 虚拟机、Wine 等虚拟化、仿真环境里的 Windows 不支持。
- 不要与其他包装器、hook、覆盖层叠加使用;borderless 模式下桌面级录屏软件通常仍可工作。
- 与 Direct3D 8 及以上、OpenGL、Vulkan、Glide 混用的应用不支持。
卸载时删掉游戏目录里的 ddraw.dll 和遗留的 DDrawCompat-*.log 日志,系统即恢复原状。
DDrawCompat 的核心思路是拦截而非替换:大部分渲染仍由原生 Direct3D 1-7 与 GDI 库完成,工具只修正在现代系统上出错的环节。主源码位于 DDraw/ 与 Config/ 等模块,许可证为 Zlib(见 LICENSE.txt)。
【免费下载链接】DDrawCompatDirectDraw and Direct3D 1-7 compatibility, performance and visual enhancements for Windows Vista, 7, 8, 10 and 11项目地址: https://gitcode.com/gh_mirrors/dd/DDrawCompat
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考