得益于D7VK版本1.1的发布,经典游戏模拟领域又迎来了一次小幅提升。这个Direct3DVulkan的转换层使得在老式硬件上运行古老的Direct3D 7游戏成为可能,并且本次更新带来了一些实质性改进,包括一个新的前端以及对Direct3D 6的实验性支持。

Cover Image

为了避免混淆,这里解释一下:D7VK是一个转换层,它将Direct3D 7的调用指令转换为在ProtonDXVK层下运行的DirectX 9指令,从而利用DXVK久经考验的基础设施和软件生态系统。作为一个单纯的转换层,它仅有轻微的性能损耗,并且运行速度可以比WineD3D这样的完整模拟器快数倍。

除了新的前端,1.1版本更新还增加了对Direct3D 6的实验性支持。作者提到,根据其文档判断,添加这个API的工作量应该不大。这与Direct3D版本5及以下的“法外之地”形成了鲜明对比。即便是在他们自己看来,“D3D7也是一个充斥着高度‘诅咒’式互操作性的领域”,许多游戏混合使用了Direct3D调用与更古老的Windows API,比如用于2D图形的DirectDraw,甚至GDI

因此,这意味着对游戏的支持情况参差不齐,很大程度上取决于游戏最初编程时的“取巧”程度。例如,这个最新版本就为《Sacrifice》添加了一个特定的解决方案,该游戏使用了一种完全不支持的深度缓冲格式。同样,对跨步图元渲染的支持使得《Sacred》可以运行,而对mipmap交换机制的修复则让玩家能够再次畅玩《Gothic》、《Gothic 2》和《Star Trek DS9: The Fallen》,仿佛它们刚刚发布一样。

许多流行的Direct3D 6游戏已经使用现代API进行了重制发行,包括《Final Fantasy VIII》、《Resident Evil 2》和《Grand Theft Auto 2》。本次更新还为其他游戏提供了修复方案,包括针对《Conquest: Frontier Wars》、《Tomb Raider Chronicles》、《Darkan: Order of the Flame》、《Earth 2150》、《Tachyon: The Fringe》以及《Arabian Nights》的解决方案。如果你有某款特定游戏运行不佳,可以访问D7VKGitHub页面上的问题反馈区提供你的意见。同时,如果你的游戏无法运行,或者因为过于古老而无法使用Direct3D 7,你可以转而使用WineWineD3D

颇具讽刺意味的是,WinD3D本身也能在Windows系统上运行,使得老游戏在现代版本的操作系统上更容易运行。如果你的经典游戏使用的是古老的GlideOpenGL,作者推荐使用nGlide


文章标签: #游戏兼容 #Direct3D #Vulkan #经典游戏 #模拟技术

负责编辑

  菠萝老师先生 

  让你的每一个瞬间都充满意义地生活,因为在生命的尽头,衡量的不是你活了多少年,而是你如何度过这些年。