User Handbook - 设置¶
随着模拟器持续发展,来去增减的设置数量也随之增长。
大多数开发过程中新增的设置都是为了提升性能/兼容性,但后来往往会因为新的发现,或是因为它们只是“一种临时拼凑的变通方案”而在新版本中被移除。
因此,本指南不会提及这类设置,而是更愿意介绍那些生命周期较长(即不会在未来的版本中被移除)且不太可能更改的设置。
有些选项不言自明,它们的作用与名称完全一致(例如“Pause when not in focus”);这类选项也因为过于琐碎而一并跳过。
前言¶
在更改设置之前,请先确认游戏能否使用默认选项启动。我们尽力确保用户能够使用默认设置启动任何游戏。如果默认设置无效,那么你可以尝试调整选项——但请先使用默认选项。
通用¶
General/Force X11 as Graphics Backend:Wayland 在 *NIX 上存在一些不太可能解决的显著问题;这类问题属于“不是我们的错,是 Wayland 的问题”,这个“临时”hack 会强制使用 X11 作为后端,无论桌面环境的默认设置如何。General/Enable Gamemode:只有当你安装了 Feral Interactive 的 Gamemode 库时,这个选项才会起作用;如果安装了,它会告诉操作系统明确地将此应用作为“游戏”优先处理,从而帮助提升 FPS —— 仅适用于 *NIX 系统。Hotkeys:颇具迷惑性的是,要删除某个热键,你必须右键点击,此时会出现一个菜单来删除该特定热键。UI/Language:更改的是界面的语言,而不是被模拟程序的语言!Debug/Enable Auto Stub:可能有助于“修复”某些游戏,做法是对于任何未实现的函数/服务,不直接崩溃,而是谎称它们返回“成功”。Debug/Show log in console:如其所述。注意,程序可能需要重新打开后(Windows)更改才会生效。Debug/Flush log output:通常,每次写入日志都会被“缓冲”,也就是说,更改不会写入磁盘,直到程序决定该写入为止;在此之前,数据会保存在 RAM 中的缓冲区里。如果程序崩溃,操作系统会自动丢弃该缓冲区(与已终止进程相关的任何 RAM 都会被自动丢弃/重新用于其他用途);这意味着关键数据可能无法及时写入磁盘,从而导致日志行缺失。如果你希望在调试时排除这个因素,请启用此选项;有时硬崩溃可能会“吞掉”一些日志行,如果未启用此选项。Debug/Disable Macro HLE:模拟器对 Maxwell 的宏程序提供了 HLE 仿真,这意味着某些细节会被有意跳过;此选项会强制所有宏程序运行时不做任何跳过。
系统¶
System/RNG Seed:设置为 0(并取消勾选)可全局禁用 ASLR(这会使 CTGP 等 mod 停止工作);默认情况下启用 ASLR 以复刻主机行为。Network/Enable Airplane Mode:如果游戏在加载前崩溃,且日志中提到任何与“web”或“internet”服务相关的内容,请启用此选项。
CPU¶
Fastmem,又名CPU/Enable Host MMU:启用“fastmem”;关于 fastmem 的详细说明请参见此处。CPU/Unsafe FMA:启用故意不精确的 FMA 行为,这可能会影响 FMA 对任何给定操作的结果——这可能会引入微小的浮点误差,并在敏感代码(如 FFmpeg)中级联放大。CPU/Faster FRSQRTE and FRECPE:以较少的检查为代价,引入平方根和倒数运算的精度误差——这在某些情况下会引入不精确性,但大多数时候是安全的。CPU/Faster ASIMD Instructions:跳过 ARM ASIMD 指令的舍入模式检查——这意味着某些依赖这些舍入模式的代码可能会行为异常。CPU/Disable address space checks:在每次内存访问之前,模拟器都会检查地址是否在范围内,如果不在则触发故障;此选项会让模拟器完全跳过该检查(该检查可能因多种原因而代价高昂)。但与此同时,这也会允许来宾程序通过写入任意地址来“逃出”仿真上下文。CPU/Ignore global monitor:这利用了 x86 上的一个特殊行为来避免 ARM 全局监视器的仿真,这可能会在互斥锁密集的场景(例如等待下一帧之类的游戏)中提升性能;但也可能导致死锁和令人“愉快”的调试问题。
需要注意的是,大多数降低精度的指令在未被使用时并不会带来好处,这意味着性能提升会因游戏而异。
图形¶
另请参阅某些选项的详细说明。
Extras/Extended Dynamic State和Extras/Vertex Input Dynamic State:这些 Vulkan 扩展本质上允许你复用同一个管线,而只需在调用之间更改状态(即所谓的“动态状态”);“extended”级别表示可以将多少状态放到这个“动态”范围内,例如要使用的深度剔除量可以放到动态状态中,从而避免代价高昂的重新加载和刷新。虽然这个选项本身很不错,但某些厂商(尤其是 PowerVR 和 Mali)对任何与 EDS3 相关的内容都存在问题。EDS3 包含 EDS2,而 EDS2 又包含 EDS1。这本质上意味着驱动程序需要跟踪更多的扩展数据,好处则是避免代价高昂的刷新。Advanced/Use persistent cache:这会将编译后的着色器保存到磁盘,与任何驱动程序自身保存到磁盘的着色器无关(是的,某些驱动程序,尤其是 NVIDIA,会在磁盘上保存二级着色器缓存)——只有在调试或开发 GPU 后端时才应禁用此选项。此选项旨在大幅减少着色器卡顿(在游玩了一个编译它们的会话之后)。Advanced/Use Vulkan pipeline cache:这与Use persistent cache不同;它是一个单独的标志,告诉 Vulkan 后端创建管线缓存。这一细节可以大幅提升性能并消除管线创建开销。这是一个 Vulkan 特性。
控制¶
参见 控制器。
本页原文 Markdown:在 AtomGit 查看·内容源自开源项目 eg/Eglantine