GTA4 是众所周知的 PC 端优化差的代表性游戏之一,归咎于从主机端到 PC 端的暴力移植,但哪怕是目前顶级的旗舰配置,在一些复杂场景中也不一定能稳定60帧,帧数波动较大。
经过个人长期的测试以及国内外GTA社区资料的查询,下面介绍在 PC 端流畅运行 GTA4 的综合优化方案,主要涉及游戏文件参数修改、第三方补丁以及注意事项。(方案尊重游戏原始画面,并不涉及使用ENB等画面修改提升等)
1. DXVK
DXVK 是基于 Vulkan 的 D3D9,D3D10 和 D3D11 转换层,允许使用 Wine 在 Linux 上运行 3D 应用程序,PC 玩家可以使用 DXVK 来解决一些 DX8 或 DX9 老游戏中存在的卡顿和优化问题。
GTA4 使用的图形 API 为 DX9 ,利用 DXVK 可以将图游戏的图形 API 改为 Vulkan,实测可使帧数得到明显提升,且帧数更加稳定,有效缓解复杂场景下掉帧严重的问题。需要注意的是,使用 DXVK 的前提是需要设备支持Vulkan,且上述的提升在中高端的PC中较明显,若机器本身性能较差,可能结果适得其反。
当然,DXVK 并不完美,在游戏中仍然可能出现图形渲染错误,但在 GTA4 中的支持较好,在 DXVK 2.0 版本之后,几乎没有出现图形错误。
注意DXVK对一些画面补丁ENB的兼容性不好
DXVK 项目在 GitHub 上频繁进行维护和改进,主要集中于提升兼容性、修复已知的游戏渲染问题、增强对新版本 Vulkan 的支持、性能优化、新的配置选项和错误修正等:
https://github.com/doitsujin/dxvk
N网上也有更加详细使用,讲解如何在 GTA4 中使用 DXVK(包括参数设置、常见问题解决、ENB的搭配使用方法等):
https://www.nexusmods.com/gta4/mods/188
1.1 DXVK的简单使用
简单来说,DXVK 的使用方法就是将 dxvk 包中 \x32\d3d9.dll 文件复制到游戏根目录即可。还可以在根目录下创建一个名为dxvk.conf的文件,用记事本打开可添加一些命令来对 DXVK 做一些额外配置,具体命令见GitHub。一般推荐添加如下命令:
d3d9.maxFrameLatency = 1
d3d9.numBackBuffers = 3
用于缓解初次使用 dxvk 造成的游戏卡顿。
因为初次使用 dxvk 时需要频繁构建缓存而造成游戏顿卡,随着游戏的运行,这种卡顿会逐渐减少。
推荐使用2.0版本以上的 DXVK 以获得更大的性能提升,若使用较高版本的 DXVK,需要注意更新显卡驱动,避免游戏无法启动的问题。
2. 错误修复及优化
此外,可以考虑自行添加一些著名的第三方修复补丁如 FusionFix、ZolikaPatch,实现对诸多游戏错误和画面问题的修正。
FusionFix:https://github.com/ThirteenAG/GTAIV.EFLC.FusionFix(主要包含游戏错误修复、画面增强等)
ZolikaPatch:https://zolika1351.pages.dev/mods/ivpatch(主要修复原始游戏画面的错误如灯光阴影及其他兼容问题等)
还可以参考以下博客,完成 GTA4 的进一步优化,其中包括降级、优化、修复补丁、疑难解答等详细的教程:
https://gillian-guide.github.io/
3.其他优化
3.1 修改可用内存
游戏默认限制内存使用量为2GB,可将根目录下 \pc\stream.ini 文件中的 204800 数值修改为 409600,将游戏内存限制提升到4GB。
当然,还可以修改为更大的数值,但考虑到 GTA4 是32位程序,最大寻址空间为4GB,也就是说其最多只能使用到4GB内存空间,所以设置大于 409600 的数值则意义不大。
.\pc\stream.ini 修改可用内存
3.2 设置启动命令
游戏根目录下,创建.txt文件并命名为”commandline.txt“,每当游戏启动时,都会预读取该文件并应用其中命令指定的画面设置。
下面列举常用的命令:
-texturequality 2 #设定贴图质量(取值0-2)
-renderquality 4 #设定渲染质量(取值0-4)
-viewdistance 99 #设定视野距离(取值0-99)
-detailquality 99 #设定细节质量(取值0-99)
-vehicledensity 99 #设定车辆密度(取值0-99)
-shadowdensity 16 # 设定阴影密度(取值0-16)(仅在1.0.4.0版本中可用)
-novblank # 关闭垂直同步
-norestrictions # 取消显卡设定的限制
-width # 设定渲染宽度(默认800) (渲染宽度和高度即为游戏分辨率大小)
-height # 设定渲染高度(默认600)
-frameLimit 60 # 限制游戏帧数
-refreshrate 60 # 设定渲染窗口速率
-windowed # 强制游戏在窗口模式下运行
-noprecache # 关闭预读取
-nomemrestrict # 关闭显存限制
-availablevidmem # 设定使用多少比例的显存
-percentvidmem # 使用多少百分比的显存
对于 1.0.4.0 或 1.0.7.0 的游戏版本,存在显存识别BUG,尤其是对于显存大于2GB的显卡,游戏无法正确识别显存大小(例如只识别出几百MB显存),这会导致无法修改画面选项的问题。
显存识别错误导致无法修改画面选项
推荐使用如下命令解决:
-nomemrestrict
-norestrictions
-percentvidmem 100
-availablevidmem 1 # 此时可使游戏识别3GB左右的显存。也可以尝试其他数值,观察游戏内识别显存大小的变化
或者也可以使用上述的 ZolikaPatch 补丁修复,只需在 ZolikaPatch.ini 配置文件中设置 VRAMFix=1 命令即可。
需要注意:对于Steam中的 GTA4完全版(GTA IV : Complete Edition),上述通过在根目录下创建 commandline.txt 文件设置命令的方法将失效,需要在Steam中右键游戏并设置启动参数,将上述需要使用的命令粘贴进去才可生效。
命令行
3.3 垂直同步和锁帧
因为 GTA4 所使用的Rage引擎限制,若游戏的帧数过高,会使得与帧率相关的功能失常,从而导致游戏出现一些奇怪的BUG,如结局无法上飞机、过场镜头过度拉近等问题。为了保证游戏正常运行同时拥有流畅的体验,一般建议锁定60帧,可通过开启垂直同步实现,开启垂直同步有多种方式:
NVIDIA 控制面板
若使用的是N卡,可到控制面板中,打开管理3D设置,在程序设置下,根据 gta4.exe 路径添加 GTA4 程序,在设置中将垂直同步设置为“开”。
Nvidia控制面板开启垂直同步
微星小飞机的RTSS
我们常用的在游戏内监控帧数、硬件状态等数据的微星小飞机Afterburner,安装时自带 RTSS ,这是实际绘制监控数据的软件,通常打开微星小飞机时 RTSS 会同时自动启动。其中通过设置 Framerate limit,可以实现锁帧。
RTSS开启锁帧
DXVK配置
若使用了 DXVK,可以在根目录下新建一个.txt文件,在其中添加一行命令,表示强制游戏开启垂直同步:
d3d9.presentInterval = 1
保存后,将该文件命令为dxvk.conf,注意连同文件后缀名一起修改。
游戏内开启
若使用了上述方法的其中一种,那么游戏内的垂直同步选项则失效,否则,可通过游戏内该选项直接开启垂直同步。相比与其他第三方的垂直同步方法,游戏自带的垂直同步有时并不好用,有可能使帧生成时间不稳定。目前较多人认为 RTSS 的锁帧方式最稳定。
游戏内垂直同步选项
3.4 DXVK加载慢问题
若在 1.0.7.0 游戏版本中使用 DXVK,可能会出现加载时间很长的问题(如加载存档、加载过程动画、进入任务时),原因是使用了上述游戏外第三方的锁帧方法,解决方法是不使用任何第三方锁帧方法。
但是在 1.0.7.0 版本中,若开启游戏内自带的垂直同步,会出现锁定的帧数小于设置的屏幕刷新率的问题。例如,刷新率设置为 50Hz 时帧数会锁在 45 帧,刷新率设置为 60Hz 时帧数会锁在 53 帧。该问题可以通过上述的 ZolikaPatch 补丁修复(在 ZolikaPatch.ini 中设置命令 VSyncFix=1),但又会导致加载时间很长的问题。
刷新率锁帧问题
综上所述,同时解决上述两个问题的方法是在 commandline.txt 中添加如下两个命令:
-frameLimit 70
-refreshrate 70
通过命令强制将刷新率设置为70,则游戏垂直同步帧数则会锁定在60帧,同时不会出现DXVK加载慢的问题。
最后
非常感谢GTA4社区修复补丁的开发者以及优化方案贡献者,也感激爱折腾的自己,大家都是用爱发电,希望大家依然保持对游戏的热爱。
更多游戏资讯请关注:电玩帮游戏资讯专区
电玩帮图文攻略 www.vgover.com