开发年代很老的游戏有可能应用的是DirectDraw制作的,但好像从Win8开始这玩意被从系统中移除了。默认状态下就会出现各种问题。关掉硬件加速可以以牺牲性能的代价(比如模拟城市4贴图精度下降)解决问题,偏偏win10不是那么好关。而且每次玩完了还得开回来,很烦。
于是有不少人开发了适用于10的ddraw.dll,大概是通过将旧api转发给新api做到的吧。
不过不同的人开发的适用游戏不同,据我测试,
http://bitpatch.com/ddwrapper.html
这家的打开ForceDirectDrawEmulation(事实上就是关闭硬件加速,但仅针对单个程序)可以支持红警2(含尤里的复仇),但游戏中不能切出,否则切回时黑屏;
https://github.com/elishacloud/dxwrapper
这家弄了好几个组件,只用ddraw.dll支持模拟城市4豪华版(GOG版),作者也弄了个已测试游戏列表,但作者表示里面有一些还是会有问题。(比如模拟城市4切出来切回后有些UI会消失或变成黑块,但是想办法刷新那些位置之后又会恢复)
还有一个方案。
Windows ADK中有一个兼容性工具组件,也可以设置ForceDirectDrawEmulation等兼容性,比属性那里的东西丰富许多。怎么用嘛再说(参考https://tieba.baidu.com/p/5330719236)……但当前测试红警2没有实际优势
不死心,四处寻找,发现了真•大杀器。
可配置性良好,直接用dll默认设置就挺好,红警2可以切出来了……虽然拖动的时候有卡顿感,但其他时候不错……至少不会像之前那个那样游戏速度莫名飞快。不幸的是……每隔一段时间就会崩溃!还是只能找了一个修正菜单不显示用的dll凑合了。虽然还是切出不了,至少切出还能切回……
不过这玩意能让极品飞车6支持宽屏。厉害
但不幸的是,模拟城市4不会有黑块,但是插件模型却会经常消失,这个完全无法接受啊……(经研究似乎是叫做z fighting的问题,简单的说就是同一位置高度不同的图,本来是高的盖住低的,结果乱套了)调了几个设置都没用,还是用原来那个吧
2.55.2版本似乎也许大概解决了这个问题。试用几十分钟没有发现任何问题也没有跳出。很棒。
就是有硬件要求,需要显卡至少支持DirectX 10.0……但这个其实很无谓的……老如ATI Radeon HD 4000系列就支持到10.1了……低端到9500GT这种亮机卡都支持10.0,so……
如果我没记错的话pal3也是DirectDraw的吧。供参考