?支持该项目! ?
您的支持推动了dd7to9
功能的开发,使旧游戏能够在当前平台上顺利运行。无论是通过 PayPal 获得一次性提升,还是 Patreon 上持续的每月支持,您的贡献都可以确保持续改进并致力于项目的发展。请注意,您的支持非常宝贵,但不会影响特定的游戏优先级。加入我们的旅程吧!
通过 PayPal 支持 |帕特隆
DX包装器
介绍
DxWrapper 是一个 .dll 文件,旨在包装 DirectX 文件以修复旧游戏中的兼容性问题。该项目主要旨在通过简单地将 .dll 和 .ini 文件拖放到游戏文件夹中来修复在 Windows 10/11 上运行游戏的问题。其第二个目的是提供一种将多个项目合并为一个的工具。
特征
DxWrapper 具有许多功能,包括:
- DDrawCompat 集成
- 配置 DDrawCompat 选项以提高兼容性
- DirectDraw 1-6 到 DirectDraw 7 的转换
- Direct3D 1-6 到 Direct3D 7 的转换
- 使用 Dd7to9 将 DirectDraw 1-7 (ddraw.dll) 转换为 Direct3D 9 (d3d9.dll)
- 使用 Dd7to9 将 Direct3D 1-7 (ddraw.dll) 转换为 Direct3D 9 (d3d9.dll)
- 使用 d3d8to9 将 Direct3D 8 (d3d8.dll) 转换为 Direct3D 9 (d3d9.dll)
- 使用 dinputto8 将 DirectInput 1-7 (dinput.dll) 转换为 DirectInput 8 (dinput8.dll)
- 包括 LegacyD3DResolutionHack,可消除 Direct3D 1-7 中的人为分辨率限制,从而允许 DirectDraw 游戏以 4K 分辨率运行
- 使用 DSoundCtrl 调整 Microsoft DirectSound 函数调用
- 可以导致 DirectDraw 1-7、Direct3D 8 和 Direct3D 9 游戏在窗口模式下运行
- 可以限制使用或转换为 Direct3D 9 的游戏的帧速率
- 可以在使用或转换为 Direct3D 9 的游戏上启用或禁用垂直同步
- 可以在具有多个显卡的笔记本电脑上为 Direct3D 9 设置 GraphicsHybridAdapter
- 可以为 Direct3D 9 启用 Direct3D9On12
- 可以设置顶点处理和缓存模式来修复某些 Direct3D 9 游戏的性能
- 可以从 DirectDraw 1-7 游戏中删除扫描线
- 可以禁用 Direct3D 8 和 9 游戏的 MaximizedWindowedMode(全屏优化)
- 可以禁用高 DPI 缩放以解决某些游戏的问题
- 可以禁用 Microsoft Game Explorer (GameUX) 以防止 rundll32.exe 高 CPU 使用率
- 可以禁用由于游戏在播放声音时剪辑音频而导致的音频爆音和点击声
- ASI 加载器可使用 Ultimate ASI Loader 将文件扩展名为 .asi 的自定义库加载到游戏进程中
- 支持作为ASI插件加载
- 将抗锯齿支持添加到 Direct3D 8 或 9 游戏中,即使游戏不支持它
- 内存热补丁支持(在运行时更新游戏内存,可用于删除 CD/DVD 检查或解决图形或其他故障)
- 设置单CPU亲和性(某些游戏在多核CPU上存在问题)
- 能够使用 SetAppCompatData API 为 DXPrimaryEmulation 设置所有 12 个应用程序兼容性工具包选项
- 将游戏窗口设置为全屏(某些游戏存在全屏问题)
- 处理游戏中的异常或崩溃
- 将自定义 .dll 文件加载到游戏中
- 在游戏启动时运行自定义进程
Windows 10/11 上的游戏兼容性列表
到目前为止,我已经用数百款游戏(其中许多游戏无法正常运行)进行了测试,以使它们在 Windows 10/11 上运行。大多数游戏都可以运行,但有些游戏仍然存在问题。查看兼容游戏 wiki 和 Dd7to9 支持的游戏 wiki 以获得列表。
安装
- 从存储库的发布页面下载最新的二进制版本并将其解压缩到文件夹中。
- 确定游戏需要哪个存根 .dll 文件。这取决于许多因素,稍后创建的页面将对此进行解释。常用的存根 dll 包括
ddraw.dll
、 d3d8.dll
、 d3d9.dll
、 dsound.dll
或winmm.dll
。您只需选择一个存根文件即可将 dxwrapper 加载到游戏中。 - 将此 .dll 文件从“Stub”文件夹以及
dxwrapper.dll
和dxwrapper.ini
文件复制到游戏的安装目录中,位于主可执行文件旁边。对于某些游戏,主要可执行文件位于子目录中(例如“Bin”、“Exe”或“App”),因此需要将文件复制到该目录中。不建议覆盖任何现有游戏文件。 - 在文本编辑器中打开
dxwrapper.ini
文件并启用游戏所需的设置。
不要尝试覆盖 Windows 系统目录中的任何 .dll,因为它当前不受支持且无法工作。
卸载
从游戏目录中删除 DxWrapper .dll 和 .ini 文件。您还可以删除日志文件(如果有)。
配置
要配置 DxWrapper,请编辑 .ini 文件并启用所需的设置。有关更多详细信息,请参阅配置 wiki。
示例配置文件:dxwrapper.ini。
所有配置选项列表:allsettings.ini
记录
日志文件将在游戏可执行文件所在的同一文件夹中创建。它将被命名为“dxwrapper”,并附加游戏可执行文件的名称。因此,如果您运行文件game.exe
,那么日志文件将被称为dxwrapper-game.log
。
支持的 DLL
DxWrapper可以包装以下dll:
- bcrypt.dll
- 加密库.dll
- cryptsp.dll
- d2d1.dll
- d3d8.dll
- d3d9.dll
- dciman32.dll
- ddraw.dll
- dinput.dll
- dinput8.dll
- dplayx.dll
- dsound.dll
- dwmapi.dll
- msacm32.dll
- msvfw32.dll
- 版本.dll
- wininet.dll
- winmm.dll
- winmmbase.dll
- winspool.drv
- wsock32.dll
执照
版权所有 (C) 2024 伊丽莎·里德林格
本软件按“原样”提供,没有任何明示或暗示的保证。在任何情况下,作者均不对因使用本软件而造成的任何损害承担责任。任何人均有权出于任何目的(包括商业应用)使用本软件,并自由地修改和重新分发本软件,但须遵守以下限制:
- 不得歪曲本软件的来源;您不得声称您编写了原始软件。如果您在产品中使用此软件,我们将不胜感激,但不是必需的。
- 更改的源版本必须明确标记,并且不得歪曲为原始软件。
- 本通知不得从任何来源分发中删除或更改。
制作人员
DxWrapper 使用来自其他几个项目的代码。因此,为了给予应有的认可,下面列出了源代码的获取位置:
- AppCompatData:使用来自 blitzbasic.com 的注释来构建配置 DirectDraw AppCompatData 设置的功能。
- Aqrit 的 ddwrapper:包含读取 ini 配置文件的代码。
- cnc-ddraw:包括创建模拟表面设备上下文的代码。
- d3d8to9:包括完整的 Direct3D 8 到 Direct3D 9 代码。
- D3DParseUnknownCommand:包括来自 ReactOS 源代码的 DirectDraw D3DParseUnknownCommand 代码。
- DDrawCompat:包括完整的 DDrawCompat v0.2.0b、v0.2.1 和 v0.3.2 以及 API 挂钩。
- doom3.gpl:包含获取视频内存的代码。
- diablo-ddrawwrapper:包括一些将 ddraw 转换为 Direct3D 的代码。
- DSoundCtrl:包括完整的 DirectSoundControl 代码。
- DxWnd:包括 DxWnd 中用于代理加载 (init.cpp) 和异常处理的代码。
- GetComputerManufacturer:包括来自 rohitab.com 的代码,用于获取计算机供应商和型号。
- GetFileVersionInfo :包含来自 stackoverflow.com 的用于获取 PE 文件版本的代码。
- GetPPID:包括从 mattn GitHub 项目获取的代码,用于获取父进程 PID。
- LegacyD3DResolutionHack:包括来自 LegacyD3DResolutionHack 的代码,用于删除 Direct3D 7 及更低版本中的人为分辨率限制。
- MemoryModule:包括从内存加载库的代码。
- OllyDbg:包括用于异常处理的完整 cmdlist.c 和 disasm.c (disasm.dll) 代码。
- PixelShaderPalette:包含来自 ddraw-cnc 的 PixelShader 代码,用于正确查看 DirectDraw 调色板表面。
- SilentPatchFarCry:包含 SilentPatchFarCry 中的代码,用于在 Direct3D 9 中缓存剪辑平面。
- Ultimate ASI Loader:包含用于加载 ASI 插件的代码。
- WineD3D d3d8.dll:包括函数 ValidatePixelShader 和 ValidateVertexShader。
发展
DxWrapper 主要使用 Microsoft Visual Studio 2022 用 C++ 编写。
该项目需要 Windows 10 SDK 和 WDK(需要安装匹配的 SDK 和 WDK 版本)。所需的确切版本可以在 Visual Studio 的项目属性中看到。
GitHub 链接:https://github.com/elishacloud/dxwrapper
感谢您的光临!