DxWrapper 完整上手指南三个文件让老 DirectX 游戏在 Windows 10/11 上跑起来【免费下载链接】dxwrapperFixes compatibility issues with older games running on Windows 10/11 by wrapping DirectX dlls. Also allows loading custom libraries with the file extension .asi into game processes.项目地址: https://gitcode.com/gh_mirrors/dx/dxwrapper双击二十年前的老游戏黑屏三秒弹回桌面。兼容模式、管理员权限、换显卡驱动全试完结论都一样Windows 10/11 已经听不见老 DirectDraw 和 D3D 8 的调用了。DxWrapper 就是为此做的 DirectX 兼容层——往游戏目录放三个文件老游戏就能启动。 它怎么工作一个门卫、一张门禁卡、一张工单DxWrapper 本质是一个 DLL 封装器它坐在游戏和系统之间把游戏发出的老版 DirectX 调用拦下来转发给真实系统接口或者改用 Direct3D 9 重新执行一遍。打个比方把 Windows 10/11 想象成一栋只收新版居住证D3D9的旧大楼老游戏是个只会填旧表格的住户。DxWrapper 就是门口的门卫——它接过旧表格改成新版居住证再递给物业。楼不用改住户不用改而且门卫只在这个游戏进门时才上班。说白了它的工作就三件门禁卡stub 桩文件从哪扇门进门决定先拦哪种调用。把Stub/目录里的ddraw.dll、d3d8.dll或d3d9.dll拷进游戏目录游戏会先加载这个文件然后被移交进dxwrapper.dll。工单清单dxwrapper.ini每个开关决定翻不翻一种请求。Dd7to9 1把 DirectDraw / D3D 1–7 转成 D3D9D3d8to9 1把 D3D8 转成 D3D9。转手不替换游戏原文件一个都不动调用只是经过门卫转一下手。删掉文件等于摘牌系统完全复原。⏱️ 30 秒上手放三个文件、改一个开关第 1 步拿到文件。下载官方 Release 预编译包含Stub/目录、dxwrapper.dll、dxwrapper.ini无需编译想拿源码的话git clone https://gitcode.com/gh_mirrors/dx/dxwrapper执行后你应该看到完整源码树普通用户直接用预编译包即可。第 2 步按游戏发行年代选桩文件。2000 年前DirectDraw / D3D 1–7→ddraw.dll2000–2005D3D8→d3d8.dll2005 年后D3D9→d3d9.dll只有声音问题 →dsound.dll判断标准只选一个入口桩其余 API 由 dxwrapper 自动接管。第 3 步拷贝三件套。把选中的桩 DLL、dxwrapper.dll、dxwrapper.ini放进游戏主 exe 所在目录。注意很多游戏主程序藏在Bin/、Exe/子目录里要放到 exe 旁边不要覆盖游戏任何原有文件。判断标准exe 所在目录多了三个文件游戏原文件没被动过。第 4 步改一个开关。用记事本打开dxwrapper.ini按游戏年代打开对应转换[Compatibility] Dd7to9 1执行后双击游戏能正常进入且同目录会生成dxwrapper-game.log跑 game.exe 就叫 dxwrapper-game.log。这份日志就是后面所有排障的依据。️ 能力矩阵按使用场景查对应配置使用场景对应配置实际效果DirectDraw 2D 老游戏启动即黑屏/闪退ddraw.dll 桩 [Compatibility]Dd7to9 1调用重写为 D3D9 执行正常进游戏D3D8 游戏花屏、颜色错乱或崩溃d3d8.dll 桩 D3d8to9 1D3D8 接口翻译成 D3D9画面恢复正常D3D9 游戏在 Win10/11 仍不稳定d3d9.dll 桩 D3d9to9Ex 1或D3d9on12 1换 D3D9Ex 或 D3D12 后端渲染音频爆音、破音或无声dsound.dll 桩 [dsound]AudioClipDetection 1检测并消除音频裁剪声音干净老游戏永远吃核显、帧数低d3d9.dll 桩 [d3d9]GraphicsHybridAdapter 1强制切独显帧率明显上升分辨率锁死在 640×480 / 1024×768见下方配方一解锁分辨率可上 2K / 4K手柄不识别、鼠标漂移dinput8.dll 桩 [Compatibility]Dinputto8 1老 DirectInput 转 DInput8输入正常 三个拿来就用的实战配方配方一DirectDraw 2D 游戏上 1440p。目标把锁在 640×480 的老 2D 游戏抬到 2K 运行。[ddraw] DdrawResolutionHack 1 [Dd7to9] DdrawCustomWidth 2560 DdrawCustomHeight 1440 DdrawMaintainAspectRatio 1预期效果游戏以 2560×1440 渲染比例不拉伸变形。D3D 7 及更早的 3D 游戏则走内置的LegacyD3DResolutionHack逻辑同样能移除人工分辨率上限。配方二给 D3D9 游戏强加不存在的画质选项。目标老游戏没做过的抗锯齿、过滤、限帧由转换层补上。[d3d9] AntiAliasing 4 AnisotropicFiltering 16 LimitPerFrameFPS 60 EnableVSync 1 EnableWindowMode 1预期效果4x MSAA 与 16x 各向异性生效帧率压在 60 不再撕裂只支持全屏独占的游戏也能窗口化启动。配方三给游戏加 .asi Mod。目标把插件丢进游戏目录就自动注入不用自己写注入器。[Plugins] LoadPlugins 1 LoadFromScriptsOnly 1预期效果只加载scripts/目录里的 .asi 插件配合 [WriteMemory] 分组的热补丁还能做改内存级别的定制。 排障按症状走分支如果看到游戏秒退、连 dxwrapper 日志都没有→ 说明桩根本没生效确认三个文件与 exe 同目录并检查 exe 是否藏在 Bin/ 等子目录里。如果看到日志存在但画面全黑→ 打开日志确认 [Compatibility] 里的转换开关真的为 12D DirectDraw 游戏再叠加DDrawCompat 1试试。如果看到画面颜色不对、调色板错乱→ 先试 [ddraw] 的DdrawOverrideBitMode有扫描线或隔行伪影再开DdrawRemoveScanlines/DdrawRemoveInterlacing。如果看到帧率快得离谱老游戏按帧计时→ [d3d9] 设LimitPerFrameFPS 60压帧。如果看到画面正常但一直在核显上跑→ [d3d9] 开GraphicsHybridAdapter 1强制独显。如果看到声音爆音、咔咔响→ 加dsound.dll桩[dsound] 开AudioClipDetection 1仍爆音再试ForceSoftwareMixing 1。❓ 六个常见误解说法 vs 真相说法真相要放进 C:\Windows\System32 才生效不支持这种做法。它只在游戏目录内以代理方式工作覆盖系统目录无效必须覆盖游戏自带的 ddraw.dll不需要。桩是全新文件与原文件共存按加载顺序优先接管调用开关全打开效果最好Dd7to9、D3d9to9Ex、D3d9on12属互斥或叠加路径逐项开启、逐项用日志验证一个游戏要同时放好几个桩只要一个入口桩其余需要的 API 会被 dxwrapper 一并接管卸载会往系统里留钩子进程级代理。删掉桩、dxwrapper.dll、dxwrapper.ini和日志即完全还原配置一份通用所有游戏参数要按游戏调日志是唯一依据全量开关清单见仓库Settings/AllSettings.ini 一页速查文件、路径、日志位置项目位置 / 取值备注配置文件dxwrapper.ini与游戏 exe 同目录唯一需要改的文件入口桩Stub/目录ddraw.dll / d3d8.dll / d3d9.dll / dsound.dll / dinput8.dll只选一个封装体dxwrapper.dll与桩、ini 放同一处日志dxwrapper-game.log与 exe 同目录跑 game.exe 即 dxwrapper-game.log全量开关仓库Settings/AllSettings.ini209 行任何开关的默认值都能在这里查到卸载删除三件套 日志无其他残留把三件套放进游戏目录、只开一个转换开关、启动游戏并用日志确认这就是全部流程。【免费下载链接】dxwrapperFixes compatibility issues with older games running on Windows 10/11 by wrapping DirectX dlls. Also allows loading custom libraries with the file extension .asi into game processes.项目地址: https://gitcode.com/gh_mirrors/dx/dxwrapper创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考