arch下steam proton dx11无法使用以及中文乱码的相关问题

arch下steam proton dx11无法使用以及中文乱码的相关问题

vybfi 492 2022-03-20

就相关问题做一下笔记汇总 希望能帮助到其他玩家

Q: 打不开游戏
A: 考虑上proton的官方网站查一下有没有玩家的相关经验,如果没有,参考一下方法

  1. 首先考虑显卡驱动问题, 先去查找相关的文章把自己显卡的驱动安装上
  2. 然后安装opengl相关的软件
  3. 然后在主页游戏的管理->属性->参数上添加 PROTON_USE_WINED3D=1 %command%
  4. 然后尝试启动游戏
  5. 如果还不行,尝试去v社的proton的github上查看
  6. 里面有相关的参数可以添加,我截取一段大家参考一下

Compat config stringEnvironment VariableDescription
PROTON_LOGConvenience method for dumping a useful debug log to $PROTON_LOG_DIR/steam-$APPID.log For more thorough logging, use
PROTON_LOG_DIROutput log files into the directory specified. Defaults to your home directory.
PROTON_DUMP_DEBUG_COMMANDSWhen running a game, Proton will write some useful debug scripts for that game into $PROTON_DEBUG_DIR/proton_$USER/.
PROTON_DEBUG_DIRRoot directory for the Proton debug scripts, /tmp by default.
PROTON_WAIT_ATTACHWait for a debugger to attach to steam.exe before launching the game process. To attach to the game process at startup, debuggers should be set to follow child processes.
PROTON_CRASH_REPORT_DIRWrite crash logs into this directory. Does not clean up old logs, so may eat all your disk space eventually.
wined3dPROTON_USE_WINED3DUse OpenGL-based wined3d instead of Vulkan-based DXVK for d3d11, d3d10, and d3d9.
nod3d11PROTON_NO_D3D11Disable d3d11.dll, for d3d11 games which can fall back to and run better with d3d9.
nod3d10PROTON_NO_D3D10Disable d3d10.dll and dxgi.dll, for d3d10 games which can fall back to and run better with d3d9.
noesyncPROTON_NO_ESYNCDo not use eventfd-based in-process synchronization primitives.
nofsyncPROTON_NO_FSYNCDo not use futex-based in-process synchronization primitives. (Automatically disabled on systems with no FUTEX_WAIT_MULTIPLE support.)
noximPROTON_NO_XIMEnabled by default. Do not attempt to use XIM (X Input Methods) support. XIM support is known to cause crashes with libx11 older than version 1.7.
enablenvapiPROTON_ENABLE_NVAPIEnable NVIDIA's NVAPI GPU support library.
nativevulkanloader Use the Vulkan loader shipped with the game instead of Proton's built-in Vulkan loader. This breaks VR support, but is required by a few games.
forcelgaddPROTON_FORCE_LARGE_ADDRESS_AWAREForce Wine to enable the LARGE_ADDRESS_AWARE flag for all executables. Enabled by default.
heapdelayfreePROTON_HEAP_DELAY_FREEDelay freeing some memory, to work around application use-after-free bugs.
gamedrivePROTON_SET_GAME_DRIVECreate an S: drive which points to the Steam Library which contains the game.
noforcelgadd Disable forcelgadd. If both this and forcelgadd are set, enabled wins.
oldglstrPROTON_OLD_GL_STRINGSet some driver overrides to limit the length of the GL extension string, for old games that crash on very long extension strings.
vkd3dfl12 Force the Direct3D 12 feature level to 12, regardless of driver support.
vkd3dbindlesstb Put force_bindless_texel_buffer into VKD3D_CONFIG.
hidenvgpuPROTON_HIDE_NVIDIA_GPUForce Nvidia GPUs to always be reported as AMD GPUs. Some games require this if they depend on Windows-only Nvidia driver functionality. See also DXVK's nvapiHack config, which only affects reporting from Direct3D.
WINE_FULLSCREEN_INTEGER_SCALINGEnable integer scaling mode, to give sharp pixels when upscaling.
cmdlineappend: Append the string after the colon as an argument to the game command. May be specified more than once. Escape commas and backslashes with a backslash.
nowritewatchPROTON_NO_WRITE_WATCHDisable support for memory write watches in ntdll. This is a very dangerous hack and should only be applied if you have verified that the game can operate without write watches. This improves performance for some very specific games (e.g. CoreRT-based games).
seccompPROTON_USE_SECCOMPNote: Obsoleted in Proton 5.13. In older versions, enable seccomp-bpf filter to emulate native syscalls, required for some DRM protections to work.
d9vkPROTON_USE_D9VKNote: Obsoleted in Proton 5.0. In older versions, use Vulkan-based DXVK instead of OpenGL-based wined3d for d3d9.

这个表中的Environment Variable展示了如何切换proton的图像相关的参数


  1. 有些时候我们玩的是老游戏,那么大家可以尝试在主页游戏的管理->属性->兼容性设置中将proton的版本调低,比如仙剑奇侠传4就必须调整为proton4.x才能运行
  2. 这时候有些游戏会有显示中文乱码的问题,这个时候我们可以在管理->属性->参数中添加 LANG=zh_CN.utf8 %command%

注意:这里的zh_CN.utf8 是语言编码 这个编码必须在系统中启用,如果没有启用是无法游玩的
启用语言需要先在/etc/locale.gen中取消需要使用的语言的注释,然后使用sudo locale-gen 命令刷新语言

  1. 理论上到这一步大部分游戏都能在中文环境跑了


# steam # proton # wine # 仙剑奇侠传四