Proton: 基金会 (690830)

创建于 2019-02-06  ·  128评论  ·  资料来源: ValveSoftware/Proton

兼容性报告

  • 存在兼容性问题的游戏名称:Foundation
  • 游戏Steam AppID:690830

系统信息

  • 显卡:GTX 980 GTX
  • 驱动程序/LLVM 版本:Nvidia 415.22
  • 内核版本:4.19
  • Gist链接到完整的系统信息报告:
  • 质子版本:3.16

我确定:

  • [ ] 我还没有找到该游戏的现有兼容性报告。
  • [ ] 我已检查是否有可用的系统更新。

症状

游戏有一些错误,与他的翻译游戏的日志输出有关:
错误核心 GamCLocalizationManager::loadFile JSON 解析错误:3

按下市场按钮后游戏也会挂起,并在背景中保留音乐/声音。

再生产

按 Steam 按钮上的播放

Game compatibility - Unofficial Mesa drivers XAudio2

最有用的评论

大家好,我是 Polymorph Games 的技术总监。 首先:非常感谢您为调查这些问题所付出的时间和精力,它真的帮助了我们!

由于@smirgol在 Steam 论坛上讨论 glsl 兼容性问题,我们能够在预览分支上部署修复程序,它将很快到达完整的内容补丁。

我还能够调查本地化文件加载问题,它也应该得到修复。 发生的事情是 proton / wine 只是忽略了我们以 utf8 格式打开文件的请求,并为我们提供了行数据。 通过在我们所有的 utf8 文件中添加 utf8 DOM 来修复它。

我无法测试完整的游戏加载,因为我只在虚拟机上运行 linux(所以我无法通过 opengl 4.3 检查),但如果这真的是最后一个问题,那么游戏应该可以在没有 vcrun2017 的情况下运行技巧(一旦新版本上线,版本优于 1.6.22)。

由于游戏仍在积极开发中,我预计未来还会有其他问题。 即使 linux 不是我们的首要任务,我们仍然希望尽我们所能让在 Linux 上试验 Foundation 变得更容易。 因此,请不要犹豫,在 Steam 论坛或我们的 Discord 中与我们联系,这将是确保我们了解您必须修复质子体验的新问题或想法的最佳方式。

不和谐: https ://discord.com/invite/foundation
如果您有关于 linux 构建的消息,我建议在 #techsupport 上标记 Minotorious#0534

干杯!

所有128条评论

你好@Sebastiangperez ,请将PROTON_LOG=1 %command%添加到游戏的启动选项中,并将生成的 $HOME/steam-$APPID.log 拖放到评论框中。

压缩,是 60mb 长,我运行游戏直到挂起。 这个游戏是由一个自定义引擎制作的,我认为是 opengl 4.3
steam-690830.log.tar.gz

昨天,我再次测试了游戏,当我点击构建菜单中的市场按钮时,游戏冻结并挂掉了我的整个电脑。
也许是内存泄漏?
我在 Fedora 29 上

我有一个类似但仍然不同的问题。 对我来说,游戏启动,进入加载屏幕,然后以eventfd: Too many open files崩溃: steam-690830.log

当我从质子 3.16 切换到 3.7 时。 然后游戏只是锁定而不会崩溃。

如果我继续将 ulimit 增加到 60.000 以上,那么游戏可以运行,但是由于游戏一直在说,缺少本地化
ERROR Core GamCLocalizationManager::loadFile JSON parsing error: 3

在游戏中投掷 strace 显示了这一点:

22:32:33 openat(AT_FDCWD,“/mnt/bcachedata/Steam/SteamApps/compatdata/690830/pfx/dosdevices/z:/mnt/bcachedata/Steam/SteamApps/common/Foundation/localization/en/achievements.json” , O_RDONLY|O_NONBLOCK) = 39487
22:32:33 关闭(39487)= 0
22:32:33 close(-1) = -1 EBADF (Ungültiger Dateideskriptor)
22:32:33 openat(AT_FDCWD,“/mnt/bcachedata/Steam/SteamApps/compatdata/690830/pfx/dosdevices/z:/mnt/bcachedata/Steam/SteamApps/common/Foundation/localization/en/agents.json” , O_RDONLY|O_NONBLOCK) = 39487
22:32:33 关闭(39487)= 0
22:32:33 close(-1) = -1 EBADF (Ungültiger Dateideskriptor)
22:32:33 openat(AT_FDCWD,“/mnt/bcachedata/Steam/SteamApps/compatdata/690830/pfx/dosdevices/z:/mnt/bcachedata/Steam/SteamApps/common/Foundation/localization/en/buildings.json” , O_RDONLY|O_NONBLOCK) = 39487
22:32:33 关闭(39487)= 0
22:32:33 close(-1) = -1 EBADF (Ungültiger Dateideskriptor)

这似乎是游戏中的一个大错误,Proton 无法修复,因为文件似乎已找到并加载。 除此之外,他们不断尝试关闭数千个他们从未打开过的文件,所以我想即使游戏有本地化,我们也可能会遇到@Sebastiangperez所说的麻烦。

@Legodev
您好,感谢您的回复。 也许有人会与这些人联系并告诉这个错误。

这是一个更新

我有一个类似但仍然不同的问题。 对我来说,游戏启动,进入加载屏幕,然后以eventfd: Too many open files崩溃: steam-690830.log

当我从质子 3.16 切换到 3.7 时。 然后游戏只是锁定而不会崩溃。

如果我继续将 ulimit 增加到 60.000 以上,那么游戏可以运行,但是由于游戏一直在说,缺少本地化
ERROR Core GamCLocalizationManager::loadFile JSON parsing error: 3

在游戏中投掷 strace 显示了这一点:

22:32:33 openat(AT_FDCWD,“/mnt/bcachedata/Steam/SteamApps/compatdata/690830/pfx/dosdevices/z:/mnt/bcachedata/Steam/SteamApps/common/Foundation/localization/en/achievements.json” , O_RDONLY|O_NONBLOCK) = 39487
22:32:33 关闭(39487)= 0
22:32:33 close(-1) = -1 EBADF (Ungültiger Dateideskriptor)
22:32:33 openat(AT_FDCWD,“/mnt/bcachedata/Steam/SteamApps/compatdata/690830/pfx/dosdevices/z:/mnt/bcachedata/Steam/SteamApps/common/Foundation/localization/en/agents.json” , O_RDONLY|O_NONBLOCK) = 39487
22:32:33 关闭(39487)= 0
22:32:33 close(-1) = -1 EBADF (Ungültiger Dateideskriptor)
22:32:33 openat(AT_FDCWD,“/mnt/bcachedata/Steam/SteamApps/compatdata/690830/pfx/dosdevices/z:/mnt/bcachedata/Steam/SteamApps/common/Foundation/localization/en/buildings.json” , O_RDONLY|O_NONBLOCK) = 39487
22:32:33 关闭(39487)= 0
22:32:33 close(-1) = -1 EBADF (Ungültiger Dateideskriptor)

这似乎是游戏中的一个大错误,Proton 无法修复,因为文件似乎已找到并加载。 除此之外,他们不断尝试关闭数千个他们从未打开过的文件,所以我想即使游戏有本地化,我们也可能会遇到@Sebastiangperez所说的麻烦。

这是一个更新,昨天到了一个修复错误的新补丁,我可以玩游戏而不会冻结。
文本翻译仍然缺失,仅显示 JSON 键。

文本翻译仍然缺失,仅显示 JSON 键。

这可以通过安装 vcrun2017 轻松解决:
WINEPREFIX=/your_path_to_steamLibrary/steamapps/compatdata/690830/pfx winetricks -q vcrun2017

[编辑 2:不再需要启用 D9VK。 它将被自动使用..所以下面的一切都是过时的]
此外,通过使用 D9VK 而不是默认的 WineD3D,游戏性能得到了极大的提高,并且也许还可以修复“着色器编译错误: gl_FragColor未声明”错误(AMD GPU 用户)。

[编辑:以下内容已过时,现在可以使用 Proton > 4.11 使用“PROTON_USE_D9VK=1 %command%”启用 D9VK]

如果您想尝试在 Proton 4.2 中实现它,请按照用户 pchome 提供的这些说明进行操作:

  1. 下载 D9VK (https://github.com/Joshua-Ashton/d9vk/releases)
  2. 将 D9VK/x32 中的 d3d9.dll 添加到/your_path/steamapps/common/Proton 4.2/dist/lib/wine/d9vk/
  3. 将 D9VK/x64 中的 d3d9.dll 添加到/your_path/steamapps/common/Proton 4.2/dist/lib64/wine/d9vk/
  4. 下载补丁文本文件: proton-4.2-d9vk.patch.txt
  5. 将文本文件复制到 Proton 的目录并执行patch -p1 < proton-4.2-d9vk.patch.txt
    现在它将被用作默认值。 如果要禁用它,请使用PROTON_NO_D9VK=1 %command%

几个月前我停止玩这个游戏,因为它一开始就崩溃。
我将检查有关文本的工作。

我可以确认游戏现在可以正常使用:

  • 更高的ulimit -n以提高打开文件限制以解决启动时的崩溃问题
  • WINEPREFIX=/your_path_to_steamLibrary/steamapps/compatdata/690830/pfx winetricks -q vcrun2017修复文本的显示
    注意:出于某种原因,我需要删除 pfx 文件夹,启动游戏,然后再次执行 winetricks

更高的 ulimit -n 以提高打开文件限制以解决启动时的崩溃问题

顺便说一句,这似乎是一个基于发行版的“问题”。 默认情况下,我的 ulimit 已经很高了(Manjaro 上的#DefaultLimitNOFILE=1024:524288)。

是的,我的固定为 1024,只是因为这通常已经足够了,如果需要更多,这通常是您的软件中的错误。 我知道如何永久更改它,但我不想。

对于每个想知道文件位置的人,可以使用fs.file-max/etc/sysctl.conf中完成,但最好使用/etc/security/limits.conf

编辑:在非 systemd linux 发行版上

也许您应该说出您使用的是哪个发行版,因为文件名和位置因您使用的发行版而异。在这里您可以找到有关该主题的更多信息:
https://github.com/lutris/lutris/wiki/How-to :-Esync

我可以确认游戏现在可以正常使用:

* a higher `ulimit -n` to raise the open file limit to work around the crash at startup

* `WINEPREFIX=/your_path_to_steamLibrary/steamapps/compatdata/690830/pfx winetricks -q vcrun2017` to fix the displayment of the text
  **Note:** for some reason i needed to delete the pfx folder, start the game and then execute winetricks again

大家好,
我尝试了文本问题的 winetricks 解决方案,但我仍然只有文本键。 我的系统:

Steam 登录要点

昨天很久没玩游戏了,我玩得很好,但仍然使用 2.5 GB 内存(我不知道是否有问题)
今天我将尝试上面有人提到的文本显示的东西。

昨天很久没玩游戏了,我玩得很好,但仍然使用 2.5 GB 内存(我不知道是否有问题)
今天我将尝试上面有人提到的文本显示的东西。

如果您找到解决文本问题的方法,则允许使用 6 GB 的 RAM 就可以了。

我在我的 Proton 日志中发现了以下块:

Cell windowFocused not defined in ui.package    
Cell textfieldDropTarget not defined in ui.package    
Cell textfieldError not defined in ui.package    
Register Static Object: 10.18 ms    
Web ThreadLocal Init     
Request analytics server url    
Web ThreadLocal Init    
JSON parsing error: 3      
JSON parsing error: 3    
JSON parsing error: 3    
JSON parsing error: 3    
JSON parsing error: 3    
JSON parsing error: 3    
JSON parsing error: 3    
JSON parsing error: 3    
JSON parsing error: 3    
JSON parsing error: 3    
JSON parsing error: 3    
JSON parsing error: 3    
createTextWithViewParameters received unused views: #.COMMUNITY_TRANSLATION    
createTextWithViewParameters received unused views: #.DISCORD    
Web ThreadLocal Init    
Analytics server address: https://www.polymorph.games/analytics/    
Analytics HTTP result: 2313654    
Analytics HTTP result: OK

我在我的 Proton 日志中发现了以下块:

Cell windowFocused not defined in ui.package    
Cell textfieldDropTarget not defined in ui.package    
Cell textfieldError not defined in ui.package    
Register Static Object: 10.18 ms    
Web ThreadLocal Init     
Request analytics server url    
Web ThreadLocal Init    
JSON parsing error: 3      
JSON parsing error: 3    
JSON parsing error: 3    
JSON parsing error: 3    
JSON parsing error: 3    
JSON parsing error: 3    
JSON parsing error: 3    
JSON parsing error: 3    
JSON parsing error: 3    
JSON parsing error: 3    
JSON parsing error: 3    
JSON parsing error: 3    
createTextWithViewParameters received unused views: #.COMMUNITY_TRANSLATION    
createTextWithViewParameters received unused views: #.DISCORD    
Web ThreadLocal Init    
Analytics server address: https://www.polymorph.games/analytics/    
Analytics HTTP result: 2313654    
Analytics HTTP result: OK

在遵循所有建议并进行多次安装/尝试后,我可以为我确认类似的输出。 我还尝试使用葡萄酒技巧和质子技巧。 使用质子 4.2-9
我的系统:

  • Manjaro 18.1.5
  • 显卡:英伟达 1080
  • 处理器 AMD 锐龙 7 1800x
  • 32GB 内存

文本翻译仍然缺失,仅显示 JSON 键。

这可以通过安装 vcrun2017 轻松解决:
WINEPREFIX=/your_path_to_steamLibrary/steamapps/compatdata/690830/pfx winetricks -q vcrun2017

这对我没有帮助。 我仍然看到那些 JSON 键而不是正确的标签 :(

我使用的是 Manjaro 的免费 AMD 驱动程序,但总是出现着色器错误: gl_FragColor undeclared 。 RX580

使用Archlinux AUR的适当 AMD 驱动程序,我可以开始游戏。

还有两个未解决的问题:

  • [x] 本地化的 JSON 替换(安装vcrun2017对我不起作用。但是我得到了一个有效的pfx
  • [x] 背景坏了。 请参阅下面的图片编辑:也由捐赠的pfx文件夹修复。

Bildschirmfoto zu 2020-02-02 12-09-10

编辑:
在 WineHQ 上找到这份报告: https ://forum.winehq.org/viewtopic.php?t=32488

您好@marwonline ,请从 Steam 复制您的系统信息( Steam -> Help -> System Information )并将其放入gist中,然后包含指向 gist 的链接本期报告。

@kisak-valve 这里是要点
顺便说一句:我从@Legodev获得了pfx文件夹,并且本地化工作正常。 不知道我的安装出了什么问题。

@kisak-valve 这是一款 OpenGL 游戏,因此可以删除 Mesa 驱动程序。

@Legodev安装 vcrun2017 并不能为我解决翻译/字符串问题...您还安装了其他东西吗?

你好,

我以前在Windows上玩过这个游戏。 现在我切换到 Linux Mint,我得到了这个错误:

着色器编译错误
着色器:natives/color2d

有没有人在使用 mesa 驱动程序的 AMD 显卡上使用质子或葡萄酒?

亲切的问候
达尼

着色器编译错误
着色器:natives/color2d

我在 Proton 5.0 上的 Intel 显卡也有同样的错误...

有关于这个游戏的消息吗? 有人试过 Proton 5.0-10 RC 或 Proton-5.9-GE-6-ST 吗?

这不是我希望的更新...... @Sebastiangperez为什么要关闭这个问题? 游戏还是打不开...

这不是我希望的更新...... @Sebastiangperez为什么要关闭这个问题? 游戏还是打不开...

对不起,我想删除评论,我的评论

@Sebastiangperez如果您错误地关闭了该问题,您能否重新打开它? 包括我在内的其他人仍然有兴趣与 Proton 一起玩这款游戏。 如果您不想收到有关此问题的更新,可以使用侧面菜单上的取消订阅按钮。

@Sebastiangperez如果您错误地关闭了该问题,能否请您重新打开它? 包括我在内的其他人仍然有兴趣与 Proton 一起玩这个游戏。 如果您不想收到有关此问题的更新,可以使用侧面菜单上的取消订阅按钮。

我按错了按钮,对不起
我的游戏现在不工作了,我不知道是不是一些新的错误或类似的东西。

因为我现在也在 AMD GPU 上运行,所以我也可以提供一些帮助。

我开始更多地修补。 我发现根本问题似乎是一些不推荐使用的着色器代码,即“gl_FragColor”和“gl_FragData”。 我尝试从游戏目录中的 .package 文件中提取着色器文件并更改它们以摆脱不推荐使用的代码并用更新的方法替换它们(用于测试目的)......部分成功(继续加载屏幕和看到栏填充到 100%)但之后游戏仍然崩溃。 游戏自己的错误日志不再显示任何与“gl_FragColor”或“gl_FragData”相关的错误,但还有许多其他错误。 当我第一次测试游戏(使用 NVIDIA GPU)时,我认识到其中的一些错误,所以我知道至少有少数错误不应该让游戏崩溃,因为它当时仍然可以工作。

这是我目前得到的错误日志: GIST

如果能够通过加载屏幕(到主菜单)启动的人可以提供游戏错误日志或 PROTON_LOG 以过滤掉只有我得到的错误,这可能会有所帮助。

编辑:我刚刚看到该游戏似乎对其他人(包括 nvidia 用户)以及从版本 1.6.14.0717 开始崩溃。 也许现在是另一个问题了。

编辑:我刚刚看到该游戏似乎对其他人(包括 nvidia 用户)以及从版本 1.6.14.0717 开始崩溃。 也许现在是另一个问题了。

1.6.20+ 也不起作用。 当绿色条填满时崩溃
使用 Proton 和 Nvidia 驱动程序的 Linux

我使用的是 Manjaro 的免费 AMD 驱动程序,但总是出现着色器错误: gl_FragColor undeclared 。 RX580

使用Archlinux AUR的适当 AMD 驱动程序,我可以开始游戏。

这似乎是关键提示。 结果发现开源 Mesa 驱动程序存在问题,当着色器代码使用不推荐使用的东西时,它会导致游戏的着色器错误。 好吧,从技术上讲,这是开发人员的错误,但请自己阅读。 我通过更改着色器代码所做的工作有效,因为我以这种方式使其与核心配置文件兼容。
让我们看看这是否会被合并并向后移植到稳定的 Mesa 驱动程序中。

好吧,让我们解决下一个问题好吗? :咧嘴笑:

好的,我现在可以启动游戏并开始游戏了。 我现在要尝试找出的字符串仍然存在问题,并且尝试访问设置菜单会导致另一次崩溃。 但这是进步。 作为解决方法,可以通过我在/home/USERNAME/.steam/steam/steamapps/compatdata/690830/pfx/drive_c/users/steamuser/My Documents/Polymorph Games/Foundation/处生成的 usersettings.config 文件更改设置。

进入主菜单时崩溃是由本地化文件中的“AchievementsVDF.vdf”问题引起的。 移除它或移除它的内容让游戏进入主菜单。 我想这可能是可以在 Proton 中修复的,因为 vdf 格式似乎是通过 steam/steamworks 引入的,而不是开发人员通过第三方库引入的。

这就是我能说的全部。

@marwonline你还有固定翻译字符串的目录吗? 也许它可以帮助找到问题。
我无法再使用 vcrun2017 修复字符串,我只是无法理解实际缺失的内容。 来自某人的特定 pfx 目录可以解决这个问题对我来说似乎有点可疑。

@MadByteDE缺少某些依赖项或某些注册表设置已更改。 问题是我无法重现我为使环境正常工作所做的步骤。 有了一个工作环境,它可以在我测试的所有机器上立即运行,但是是的,我只是不知道我是如何让它工作的。 :(

编辑:我现在尝试在很长一段时间后再次启动游戏,同时更换我的 gpu。 现在游戏不再使用“Shader:natives/color2d”启动......我在尝试之前打包了我的 pfx,所以它应该与我发送 marwonline 的版本相同。 因此,如果您愿意,我也可以将其发送给您。

@Legodev如果是带有工作翻译的旧版本,那就太好了。

我曾经见过他们。 自从我有很多事情要做以来,我没有时间解决着色器问题,这就是为什么我不能告诉你我是否还能看到它们。

我已经要求他们修改他们的着色器并在其中指定兼容配置文件,希望这将解决这个着色器问题。 令我惊讶的是,他们实际上实现了这一点。 :-) 它应该与下一个更新之一一起部署。

在这种情况下,Mesa 的行为方式实际上是根据规范,其中指出如果没有定义配置文件,它将默认为核心。 因为他们在这个游戏中使用了兼容上下文,所以着色器会中断。 不知道为什么闭源驱动程序不遵守这里的规范。

我已经要求他们修改他们的着色器并在其中指定兼容配置文件,希望这将解决这个着色器问题。 令我惊讶的是,他们实际上实现了这一点。 :-) 它应该与下一个更新之一一起部署。

在这种情况下,Mesa 的行为方式实际上是根据规范,其中指出如果没有定义配置文件,它将默认为核心。 因为他们在这个游戏中使用了兼容上下文,所以着色器会中断。 不知道为什么闭源驱动程序不遵守这里的规范。

好的。 :)
我在 Mesa bug tracker 中看到了关于规范的讨论。 他们为此提交了一个规范错误,让我们看看他们的决定。 我很好奇为什么闭源驱动程序的工作方式与规范似乎定义的不同。

提醒一下,我们仍然需要找出 archievments.vdf 文件导致崩溃的原因以及导致字符串问题的原因。

我现在让我的字符串、翻译和设置菜单再次运行 - 一个完全运行的游戏!

实际上对我有用的是通过“sudo winetricks --self-update”更新我的 winetricks 脚本,然后通过“WINEPREFIX=/YOUR/PATH/TO/STEAMAPPS/steamapps/compatdata/690830/pfx winetricks -q 重新安装 vcrun2017 vcrun2017”。 如果重新安装vcrun2017对您不起作用,请尝试删除前缀目录,启动游戏一次重新生成它,然后再次尝试安装vcrun2017。

把它们加起来

  • 着色器错误是由开发人员未指定正确的着色器配置文件引起的,并且可能会在下一个游戏更新之一中修复(或者如果他们决定像任何其他驱动程序一样解决 GLSL 规范,则可能由 Mesa 驱动程序修复)
  • archivementsVDF.vdf 文件、设置菜单崩溃和缺少翻译文本的问题可以通过首先更新 winetricks 然后将 vcrun2017 安装到游戏前缀中来修复。

我希望这也对你们有用。

编辑:注意:这是过时的。

我制作了一个小脚本来自动修复所有问题。 我不能保证它对你有用,但它已经在 Manjaro Linux + Gnome 上进行了测试。 着色器修复可用于修复着色器代码,直到游戏开发人员发布游戏的官方补丁。
要使用它,请提取存档并将其内容放入游戏根目录(即“/home/USERNAME/.steam/steam/steamapps/common/Foundation/apply_fixes.sh”)并运行脚本。

注意:为了自动更新 winetricks,脚本会要求你获得 root 权限。

确保在启动脚本之前至少运行一次游戏

Foundation_v1.6.20_Fixer

让我知道它是否对您有用。

嘿,我还没有购买游戏,因为它目前在 ProtonDB 上被标记为损坏。
我在 Nvidia 上玩,使用 winetricks 安装 vcrun2017 是玩游戏唯一需要的吗? 游戏可以完全玩吗?
是否还有其他未解决的已知问题?

嘿,我还没有购买游戏,因为它目前在 ProtonDB 上被标记为损坏。
我在 Nvidia 上玩,使用 winetricks 安装 vcrun2017 是玩游戏唯一需要的吗? 游戏可以完全玩吗?
是否还有其他未解决的已知问题?

在 NVIDIA 上,您应该可以通过“sudo winetricks --self-update”更新 winetricks,然后在游戏前缀中安装 vcrun2017。 没有人能保证它会在你的系统上运行(我刚刚发现这些步骤对我的系统来说是可靠的)。 您可以尝试一下,如果它不起作用,您可以退还游戏 - 或等到游戏与 Proton 一起开箱即用。

是的,我知道这真的取决于配置,但我很想知道,通过一些配置,这款游戏现在是否可以在使用 Proton 的 Linux 上完全玩。

就我而言,是的 - 它完全可以播放。
优酷视频

你好@MadByteDE ,我一直在寻找这个游戏的版权许可,我很难找到它。 我发现的最接近的内容是“注意:版权法严禁公开共享 Polymorph Games 游戏文件和资产。” 在http://www.polymorph.games/foundation/modding/texture-usage-policy。 请调整您的解决方法,以便它修改游戏安装中的现有文件,而不是重新分发着色器。

你好@MadByteDE ,我一直在寻找这个游戏的版权许可,我很难找到它。 我发现的最接近的内容是“注意:版权法严禁公开共享 Polymorph Games 游戏文件和资产。” 在http://www.polymorph.games/foundation/modding/texture-usage-policy。 请调整您的解决方法,以便它修改游戏安装中的现有文件,而不是重新分发着色器。

谢谢你让我知道。 我能做的最好的事情是请求允许分发更改的着色器文件以临时修复 linux 上的着色器问题。 但自从开发人员宣布在即将到来的更新中修复着色器后,iĺl 会删除这些文件,直到更新发布。

让我知道它是否对您有用。

游戏与此补丁完美配合,感谢您的这种方法!
至于文本,它以前有效,现在仍然有效,所以我对此无话可说。

编辑:注意:这是过时的。

我更新了脚本以删除着色器文件。 它单独修补每个着色器文件,不再包含受版权保护的内容。


它能做什么

1.自动更新您的_已经安装_ winetricks 安装并将 vcrun2017 安装到游戏前缀中。

  • 为了更新 winetricks,脚本会要求你获得 root 权限。 如果拒绝,则需要自行更新 winetricks 并安装 vcrun2017。 即通过使用:
    sudo winetricks --self-update && WINEPREFIX=/home/USERNAME/.steam/steam/steamapps/compatdata/690830/pfx winetricks -q vcrun2017

2.对于 AMD/Intel GPU 用户:对着色器文件应用修复(编译错误)

  • 该脚本仅适用于游戏版本 1.6.20 。 以后的版本应该由游戏开发商正式修复。

如何使用它

1.下载脚本; 将文件解压并复制到 Foundation 游戏目录中
2.使用脚本前至少启动一次游戏
3.运行脚本。 它会告诉你什么时候完成。
4.启动游戏。

  • 如果在初始加载屏幕结束时游戏崩溃或应用脚本后游戏内文本无法正确显示,则更新 winetricks / 安装 vcrun2017 出现问题。 你可以试试这个,看看它是否适合你。

下载(超级)
Foundation_v1.6.20_Fixer

@MadByteDE可以确认最新的 Winetricks 和 vcrun2017 和 Proton 5.11 解决了翻译问题,现在正在显示文本。

干得好!
应用您的补丁后,我成功地启动了游戏。 我不得不在“localization/en”中删除/重命名“AchievementsVDF.vdf”,否则加载栏填满后它会崩溃。

@MadByteDE可以确认最新的 Winetricks 和 vcrun2017 和 Proton 5.11 解决了翻译问题,现在正在显示文本。

很高兴听见。 (顺便说一句,我使用了最新的稳定版 5.0-9 Proton。)

干得好!
应用您的补丁后,我成功地启动了游戏。 我不得不在“localization/en”中删除/重命名“AchievementsVDF.vdf”,否则加载栏填满后它会崩溃。

您的文本字符串看起来如何? 如果它们以 # 开头,则 winetricks 更新和 vcrun 安装可能失败,或者我还没有看到游戏存在另一个问题。

字符串没问题,您的脚本确实更新了 winetricks 并安装了 vcrun2017 没有问题。 如果没有 vcrun2017,则只有前面带有“#”的占位符,但一切都很好。

字符串没问题,您的脚本确实更新了 winetricks 并安装了 vcrun2017 没有问题。 如果没有 vcrun2017,则只有前面带有“#”的占位符,但一切都很好。

嗯..我想知道为什么您必须删除该文件,因为它已被我的 winetricks 更新修复。 但是,如果其他一切正常并且您可以访问设置菜单,一切都应该没问题。

奇怪的。 我现在已经恢复了 AchievementsVDF.vdf 文件,它不再崩溃了。 但我发誓最初确实如此。 ¯_(ツ)_/¯
唯一的小问题是,在游戏加载并显示主菜单后,我需要退出和返回标签,否则我无法点击任何东西。 除此之外,一切似乎都奏效了,已经玩了几分钟。

刚买了游戏,在初始加载屏幕结束时崩溃:

image

Foundation - version 1.6.20.0814
missing : in locales.txt line: OpenGL vendor: NVIDIA Corporation
OpenGL renderer: GeForce RTX 2080 Ti/PCIe/SSE2
OpenGL version: 4.6.0 NVIDIA 450.66
GL_MAX_TEXTURE_IMAGE_UNITS: 32
GL_MAX_PATCH_VERTICES: 32
GPU dedicated video memory: 11534336KB
GPU total available memory: 11534336KB
GPU current available video memory: 9830912KB
GPU eviction count: 0
GPU evicted memory: 0KB
Create Audio Engine
Audio Engine created
Create world
Can't load class PlaCBuildingAssetProcessor
Can't load class PlaCBuildingAssetProcessor
Can't load class PlaCBuildingAssetProcessor
Can't load class PlaCBuildingAssetProcessor
Can't load class PlaCBuildingAssetProcessor
Can't load class PlaCBuildingAssetProcessor
Can't load class PlaCBuildingAssetProcessor
Can't load class PlaCBuildingAssetProcessor
Can't load class PlaCBuildingAssetProcessor
Can't load class PlaCBuildingAssetProcessor
Can't load class PlaCBuildingAssetProcessor
Can't load class PlaCBuildingAssetProcessor
Can't load class PlaCBuildingAssetProcessor
Can't load class PlaCBuildingAssetProcessor
Can't load class PlaCBuildingAssetProcessor
Can't load class PlaCBuildingAssetProcessor
Can't load class PlaCBuildingAssetProcessor
Can't load class PlaCBuildingAssetProcessor
Can't load class PlaCBuildingAssetProcessor
Can't load class PlaCBuildingAssetProcessor
Can't load class PlaCBuildingAssetProcessor
Can't load class PlaCBuildingAssetProcessor
Can't load class PlaCBuildingAssetProcessor
Can't load class PlaCBuildingAssetProcessor
Can't load class PlaCBuildingAssetProcessor
Can't load class PlaCBuildingAssetProcessor
Can't load class PlaCBuildingAssetProcessor
Can't load class PlaCBuildingAssetProcessor
Can't load class PlaCBuildingAssetProcessor
Can't load class PlaCBuildingAssetProcessor
Can't load class PlaCBuildingAssetProcessor
Can't load class PlaCBuildingAssetProcessor
Can't load class PlaCBuildingAssetProcessor
Can't load class PlaCBuildingAssetProcessor
Can't load class PlaCBuildingAssetProcessor
Can't load class PlaCBuildingAssetProcessor
Can't load class PlaCBuildingAssetProcessor
Can't load class PlaCBuildingAssetProcessor
Can't load class PlaCBuildingAssetProcessor
Can't load class PlaCBuildingAssetProcessor
Can't load class PlaCBuildingAssetProcessor
Can't load class PlaCBuildingAssetProcessor
Can't load class PlaCBuildingAssetProcessor
Can't load class PlaCBuildingAssetProcessor
Can't load class PlaCBuildingAssetProcessor
Can't load class PlaCBuildingAssetProcessor
Can't load class PlaCBuildingAssetProcessor
Can't load class PlaCBuildingAssetProcessor
Can't load class PlaCBuildingAssetProcessor
Can't load class PlaCBuildingAssetProcessor
Can't load class PlaCBuildingAssetProcessor
Can't load class PlaCBuildingAssetProcessor
Can't load class PlaCBuildingAssetProcessor
Can't load class PlaCBuildingAssetProcessor
Can't load class PlaCBuildingAssetProcessor
Can't load class PlaCBuildingAssetProcessor
Can't load class PlaCBuildingAssetProcessor
Can't load class PlaCBuildingAssetProcessor
Can't load class PlaCBuildingAssetProcessor
Can't load class PlaCBuildingAssetProcessor
Can't load class PlaCBuildingAssetProcessor
Can't load class PlaCBuildingAssetProcessor
Can't load class PlaCBuildingAssetProcessor
Can't load class PlaCBuildingAssetProcessor
Can't load class PlaCBuildingAssetProcessor
Can't load class PlaCBuildingAssetProcessor
Can't load class PlaCBuildingAssetProcessor
Can't load class PlaCBuildingAssetProcessor
Can't load class PlaCBuildingAssetProcessor
Can't load class PlaCBuildingAssetProcessor
Can't load class PlaCBuildingAssetProcessor
Can't load class PlaCBuildingAssetProcessor
Can't load class PlaCBuildingAssetProcessor
preload file Terrain/Foundation_Hills_01/trees_padding_foundation_hills_01.geo: 0.156 s
property PlaCDataAgentProfileFunctionVisitor::AssetStatusQuota should not be null in 
property PlaSContextDataHappinessFactor::HappinessFactor should not be null in 
property PlaSContextDataHappinessFactor::Applicator should not be null in 
property PlaSContextDataHappinessFactor::HappinessFactor should not be null in 
property PlaSContextDataHappinessFactor::Applicator should not be null in 
property PlaSContextDataWorkstationSetup::WorkstationSetup should not be null in 
property PlaSContextDataSubtree::Subtree should not be null in 
property PlaSContextDataSubtree::Subtree should not be null in 
property PlaSContextDataSubtree::Subtree should not be null in 
property PlaSContextDataHappinessFactor::Applicator should not be null in 
property PlaCDataHouseStatus::Item0 should not be null in 
property PlaCDataVillagerStatusQuantityPair::Status should not be null in 
property PlaCAssetBuildingFunctionQuarry::RandomResourceToSpawn should not be null in 
property PlaCAssetBuildingFunctionQuarry::RandomResourceToSpawn should not be null in 
property PlaCAssetBuildingFunctionTaxOffice::Item0 should not be null in 
property PlaCAssetBuildingFunctionWorkplaceFarm::HarvestSetup should not be null in 
property PlaCAssetBuildingFunctionWorkplaceFarm::SowingSetup should not be null in 
property PlaCAssetBuildingFunctionHouse::RelatedDesirability should not be null in 
property PlaCAssetBuildingFunctionHouse::RelatedZone should not be null in 
property PlaCAssetBuildingFunctionHouse::RelatedDesirability should not be null in 
property PlaCAssetBuildingFunctionHouse::RelatedZone should not be null in 
property PlaCAssetDesirability::CopyLevelFrom should not be null in 
property PlaCAssetDesirability::CopyLevelFrom should not be null in 
property PlaCAssetDesirability::CopyLevelFrom should not be null in 
property GamCKeyframeAsset::Value should not be null in 
property GenCParticleSystem::Material should not be null in 
property PlaCDataActionVisit::NarrativePanelData should not be null in 
property PlaCDataActionVisit::VisitClickAction should not be null in 
property PlaCDataActionShowNarrativePanel::AssetNotification should not be null in 
property PlaCDataAssociationEstateString::AssetEstate should not be null in 
property PlaCDataEstateQuantityPair::Estate should not be null in 
property PlaCDataEstateQuantityPair::Estate should not be null in 
property PlaCDataEstateQuantityPair::Estate should not be null in 
property PlaCDataEstateQuantityPair::Estate should not be null in 
property PlaCDataEstateQuantityPair::Estate should not be null in 
property PlaCDataEstateQuantityPair::Estate should not be null in 
property PlaCDataActionVisit::NarrativePanelData should not be null in 
property PlaCDataActionVisit::VisitClickAction should not be null in 
property PlaCDataActionShowNarrativePanel::AssetNotification should not be null in 
property PlaCDataAssociationEstateString::AssetEstate should not be null in 
property PlaCDataEstateQuantityPair::Estate should not be null in 
property PlaCDataEstateQuantityPair::Estate should not be null in 
property PlaCDataEstateQuantityPair::Estate should not be null in 
property PlaCDataEstateQuantityPair::Estate should not be null in 
property PlaCDataEstateQuantityPair::Estate should not be null in 
property PlaCDataEstateQuantityPair::Estate should not be null in 
property PlaCDataActionShowNarrativePanel::AssetNotification should not be null in 
property PlaCDataActionShowNarrativePanel::AssetNotification should not be null in 
property PlaCDataActionShowNarrativePanel::AssetNotification should not be null in 
property PlaCDataActionShowNarrativePanel::AssetNotification should not be null in 
property PlaCDataActionVisit::VisitClickAction should not be null in 
property PlaCDataActionShowNarrativePanel::AssetNotification should not be null in 
property PlaCDataActionShowNarrativePanel::AssetNotification should not be null in 
property PlaCDataActionShowNarrativePanel::AssetNotification should not be null in 
property GenCParticleSystem::Material should not be null in 
property GenCParticleSystem::Material should not be null in 
property PlaCDataBuildingPartCostPair::BuildingPart should not be null in 
property PlaCDataBuildingPartCostPair::BuildingPart should not be null in 
property PlaCDataBuildingPartCostPair::BuildingPart should not be null in 
property PlaCDataBuildingPartCostPair::BuildingPart should not be null in 
property PlaCDataGameRuleModifierVillagerHappiness::RuleApplicator should not be null in 
property PlaCAssetGameRuleMineral::GenericMineralPrefab should not be null in 
property PlaCAssetGameRuleMineral::DebugMineralToAssign should not be null in 
property PlaCSkin::DefaultCollapsibleStyle should not be null in 
property PlaCDataGameRuleModifierNeedPermanentlyFilled::NeedResource should not be null in 
property PlaCAssetProceduralMilitaryQuestGenerator::QuestFunction should not be null in 
property PlaCDataQuestFunctionSendTroops::SoldierJob should not be null in 
property PlaCDataQuestFunctionSendTroops::SoldierRegroupBehavior should not be null in 
property PlaCDataQuestFunctionSendTroops::SoldierLeaveBehavior should not be null in 
property PlaCDataQuestFunctionSendTroops::SoldierBackBehavior should not be null in 
property PlaCDataQuestFunctionSendTroops::SoldierJob should not be null in 
property PlaCDataQuestFunctionSendTroops::SoldierRegroupBehavior should not be null in 
property PlaCDataQuestFunctionSendTroops::SoldierLeaveBehavior should not be null in 
property PlaCDataQuestFunctionSendTroops::SoldierBackBehavior should not be null in 
property PlaCDataQuestFunctionSendTroops::SoldierJob should not be null in 
property PlaCDataQuestFunctionSendTroops::SoldierRegroupBehavior should not be null in 
property PlaCDataQuestFunctionSendTroops::SoldierLeaveBehavior should not be null in 
property PlaCDataQuestFunctionSendTroops::SoldierBackBehavior should not be null in 
property PlaCAssetProceduralMilitaryQuestGenerator::QuestFunction should not be null in 
property PlaCDataQuestFunctionSendTroops::SoldierJob should not be null in 
property PlaCDataQuestFunctionSendTroops::SoldierRegroupBehavior should not be null in 
property PlaCDataQuestFunctionSendTroops::SoldierLeaveBehavior should not be null in 
property PlaCDataQuestFunctionSendTroops::SoldierBackBehavior should not be null in 
property PlaCDataQuestFunctionSendTroops::SoldierJob should not be null in 
property PlaCDataQuestFunctionSendTroops::SoldierRegroupBehavior should not be null in 
property PlaCDataQuestFunctionSendTroops::SoldierLeaveBehavior should not be null in 
property PlaCDataQuestFunctionSendTroops::SoldierBackBehavior should not be null in 
property PlaCDataQuestFunctionSendTroops::SoldierJob should not be null in 
property PlaCDataQuestFunctionSendTroops::SoldierRegroupBehavior should not be null in 
property PlaCDataQuestFunctionSendTroops::SoldierLeaveBehavior should not be null in 
property PlaCDataQuestFunctionSendTroops::SoldierBackBehavior should not be null in 
property PlaCAssetProceduralMilitaryQuestGenerator::QuestFunction should not be null in 
property PlaCDataQuestFunctionSendTroops::SoldierJob should not be null in 
property PlaCDataQuestFunctionSendTroops::SoldierRegroupBehavior should not be null in 
property PlaCDataQuestFunctionSendTroops::SoldierLeaveBehavior should not be null in 
property PlaCDataQuestFunctionSendTroops::SoldierBackBehavior should not be null in 
property PlaCDataQuestFunctionSendTroops::SoldierJob should not be null in 
property PlaCDataQuestFunctionSendTroops::SoldierRegroupBehavior should not be null in 
property PlaCDataQuestFunctionSendTroops::SoldierLeaveBehavior should not be null in 
property PlaCDataQuestFunctionSendTroops::SoldierBackBehavior should not be null in 
property PlaCDataQuestFunctionSendTroops::SoldierJob should not be null in 
property PlaCDataQuestFunctionSendTroops::SoldierRegroupBehavior should not be null in 
property PlaCDataQuestFunctionSendTroops::SoldierLeaveBehavior should not be null in 
property PlaCDataQuestFunctionSendTroops::SoldierBackBehavior should not be null in 
property PlaCDataActionShowNarrativePanel::AssetNotification should not be null in 
property PlaCDataActionShowNarrativePanel::AssetNotification should not be null in 
property PlaCAssetWallConfig::Material should not be null in 
property PlaCAssetWallConfig::MaterialTop should not be null in 
init asset manager: 4.691 s
load all assets: 10.143 s
Clear Scene
Open Scene ...
Can't find any component named PlaCCompMonument
Read Terrain Topology: 3.95 ms
Generate grass: 10.70 ms
Generate grass: 10.55 ms
Load Scene: 871.40 ms
JSON parsing error: 3 file: localization/en/achievements.json
Register Static Object: 36.59 ms

@leinardi尝试从游戏文件夹中临时移动/删除“AchievementsVDF.vdf”,即/home/USERNAME/.steam/steam/steamapps/common/Foundation/localization/en并报告是否有任何变化。

@MadByteDE重命名AchievementsVDF.vdf似乎是一种有效的解决方法。 现在我可以进入主菜单,但是所有本地化的字符串都丢失了:
20201009204451_1

我已经安装了安装的 winetricks 但似乎还不够:

leinardi<strong i="11">@c7h</strong>:/media/Steam/steamapps/common/Foundation$ sudo winetricks --self-update
leinardi<strong i="12">@c7h</strong>:/media/Steam/steamapps/common/Foundation$ WINEPREFIX=$( realpath ../../compatdata/690830/pfx ) winetricks -q vcrun2017

控制台输出

啊,我猜 winetricks 更新失败是因为你没有以 root 身份运行 winetricks --self-update。 尝试使用sudo winetricks --self-update 。 如果安装成功,您很可能需要删除 pfx,运行游戏并再次崩溃,然后执行WINEPREFIX=/media/Steam/steamapps/compatdata/690830/pfx winetricks -q vcrun2017 。 如果一切正常,您可以将 archivementsVDF.vdf 添加回 en 本地化文件夹。

你好@leinardi ,请使用日志的要点或将它们作为文件附加,而不是粘贴文本墙。

@MadByteDE抱歉,我没有复制粘贴 winetricks 更新行,因为我已经关闭了终端并忘记在我的消息中添加 sudo,但我用它执行了它。

更新进展顺利,我安装了最新版本:

leinardi<strong i="8">@c7h</strong>:/media/Steam/steamapps/common/Foundation$ winetricks --version
20200412-next - sha256sum: 5c62bc038fd3ac7fa1e0d09123c61e1034cc5431719f5a1768dcb4bd91990cca

我已经尝试删除 wine 前缀,但结果是一样的。

@kisak-valve 当然,对不起。

点击设置会导致游戏崩溃:

Create world
createTextWithViewParameters received unused views: #.COMMUNITY_TRANSLATION
createTextWithViewParameters received unused views: #.DISCORD
JSON parsing error: 3 file: localization/en/achievements.json
JSON parsing error: 3 file: localization/en/agents.json
JSON parsing error: 3 file: localization/en/buildings.json
JSON parsing error: 3 file: localization/en/events.json
JSON parsing error: 3 file: localization/en/general.json
JSON parsing error: 3 file: localization/en/help.json
JSON parsing error: 3 file: localization/en/menu.json
JSON parsing error: 3 file: localization/en/military.json
JSON parsing error: 3 file: localization/en/rules.json
JSON parsing error: 3 file: localization/en/steam_page.json
JSON parsing error: 3 file: localization/en/tutorial.json
JSON parsing error: 3 file: localization/en/unlockables.json
JSON parsing error: 3 file: localization/en/whatsnew.json
Analytics server address: https://www.polymorph.games/analytics/
Analytics HTTP result: 5387663
Analytics HTTP result: OK
can't access an unexisting item of a const hash map

由于我的操作系统语言未设置为英语,因此我尝试添加

LC_ALL=C %command%

LANG=C %command%

到启动选项,但没有任何区别。

我不能使用 winetricks ,出现此消息:
警告:您使用的是 64 位 WINEPREFIX。 请注意,许多动词仅安装 32 位版本的软件包。 如果遇到问题,请在报告错误之前在干净的 32 位 WINEPREFIX 中重新测试。

但是我下载了exe文件并像这样运行它:
WINEPREFIX=/home/.../.steam/steam/steamapps/compatdata/690830/pfx /home/.../.steam/steam/steamapps/common/Proton\ 5.0/dist/bin/wine VC_redist.x(版本).exe
版本意味着 x86 或 x64,我都安装了,我已经这样做了,语言不固定。
但是现在,我重命名了成就并且游戏不断崩溃。

有什么难处吗?

@leinardi是的,我经常遇到这个问题,但是自从更新 winetricks 之后一切正常。
你的 winetricks 执行看起来与我得到的非常不同,所以我仍然认为更新 winetricks 出了点问题。 缺少像Executing wine winecfg -v winxp64这样的行,并且发生了很多不同的事情。
这是我的输出: GIST

顺便说一句,我当地的葡萄酒版本是 5.18。 也许与此有关。

您的版本的 sha256sum 不同,wine 版本也不同:

Using winetricks 20200412-next - sha256sum: 8efa7c2d4b96045bf6dec3a4b60be588c4c9a7da4e6de7c010cb6f21e2fb708f with wine-5.18 and WINEARCH=win64
Using winetricks 20200412-next - sha256sum: 5c62bc038fd3ac7fa1e0d09123c61e1034cc5431719f5a1768dcb4bd91990cca with wine-5.0 and WINEARCH=win64

我会尝试更新版本的葡萄酒。

嗯,我重播了安装,它仍然对我有用:

  1. 删除前缀
  2. 开始游戏,让它崩溃。 将创建新前缀
  3. 使用 winetricks 或 protontricks 安装 vcrun2017
  4. 重命名“localisation/en/AchievementsVDF.vdf”(可以稍后重命名,一旦游戏成功启动至少一次)
  5. 开始游戏

我正在使用 Proton 5.0-9。 对于这场比赛。

@leinardi
我注意到一件事,我的 winetricks 安装的 sha256sum 与您的不同:8efa7c2d4b96045bf6dec3a4b60be588c4c9a7da4e6de7c010cb6f21e2fb708f
虽然版本“20200412-next”是一样的。 这有点奇怪。

@smirgol你的酒是什么版本?

警告:您使用的是 64 位 WINEPREFIX。 请注意,许多动词仅安装 32 位版本的软件包。 如果遇到问题,请在报告错误之前在干净的 32 位 WINEPREFIX 中重新测试。

这是正常的,可以忽略。

WINEPREFIX=/home/.../.steam/steam/steamapps/compatdata/690830/pfx /home/.../.steam/steam/steamapps/common/Proton\ 5.0/dist/bin/wine VC_redist.x(版本).exe

这对我来说看起来很奇怪,安装 vcrun 需要 winetricks,因为它为正确安装文件所需的常见错误提供了解决方法。

看到所有这些问题,似乎每个人都通过 --self-update 收到的 winetricks 版本有所不同,这可能是这里的主要问题。

@smirgol你的酒是什么版本?

wine-5.18(分期)

从 winetricks GitHub 页面:

注意:打包的 Debian / Ubuntu winetricks 版本通常已经过时,因此建议手动安装。

如果软件包不可用、过时或需要最新版本,则可以手动安装 winetricks。 强烈建议先卸载任何以前安装的 winetricks 版本。

如果您不卸载以前安装的、打包的 winetricks 版本……那么您就可以收拾残局了!

从 winetricks 脚本本身:

# Name of this version of winetricks (YYYYMMDD)
# (This doesn't change often, use the sha256sum of the file when reporting problems)
WINETRICKS_VERSION=20200412-next

如果您使用的是基于 debian 的发行版,我建议您按照https://github.com/Winetricks/winetricks提供的说明进行操作

总结一下流程:

首先卸载您使用包管理器安装的所有 winetricks!

获取最新版本(手动保存或使用 curl 获取):
卷曲 https://raw.githubusercontent.com/Winetricks/winetricks/master/src/winetricks > winetricks
sudo mv winetricks /usr/bin/
sudo chmod +x /usr/bin/winetricks

我更喜欢 /usr/local/bin 而不是 /usr/bin,但这取决于你。

最后工作:
20201009214623_1

我认为是什么问题? 安装了 2 个不同版本的 winetricks:

leinardi<strong i="9">@c7h</strong>:/media/Steam/steamapps/common/Foundation$ sudo winetricks --version
20200412-next - sha256sum: 8efa7c2d4b96045bf6dec3a4b60be588c4c9a7da4e6de7c010cb6f21e2fb708f

leinardi<strong i="10">@c7h</strong>:/media/Steam/steamapps/common/Foundation$ winetricks --version
20200412-next - sha256sum: 5c62bc038fd3ac7fa1e0d09123c61e1034cc5431719f5a1768dcb4bd91990cca

leinardi<strong i="11">@c7h</strong>:/media/Steam/steamapps/common/Foundation$ whereis winetricks
winetricks: /usr/bin/winetricks /usr/bin/winetricks.bak /home/leinardi/bin/winetricks /usr/share/man/man1/winetricks.1.gz

我正在使用sudo winetricks --self-update更新系统安装,但随后执行用户,过时的安装。 在没有 sudo 的情况下运行winetricks --self-update解决了这个问题。

我不得不删除前缀并再次运行WINEPREFIX=$( realpath ../../compatdata/690830/pfx ) winetricks -q vcrun2017才能正确安装。 输出现在几乎与@MadByteDE gist 的一种形式相同。

我还将 wine 升级到 5.18 staging,但我认为不需要(我在发现我安装了 2 个版本的 winetricks 之前就这样做了)。

安装vcrun2017后,我不必再重命名AchievementsVDF.vdf并且设置菜单正确打开。

非常感谢您的帮助,我非常接近退款游戏:+1:

@leinardi很高兴看到它对您有用:+1:

我们可以从中学到什么? 如果这是一个常见问题,我可以在脚本中添加任何其他 winetricks 版本的检查,以确保它在安装 vcrun 时使用正确的版本。 或者,如果校验和与已知的工作 wine 版本不同,则只需添加警告。
我什至不能运行winetricks --self-update warning: You don't have the proper permissions to run this command. Try again with sudo or as root.

在为这个游戏使用 winetricks 之前做 --self-update 已经成功了!
现在游戏中的标签正确显示。 谢谢你的提示!

抱歉,我刚更新到 proton 5.13,游戏一直崩溃。
这将是一些修复?

抱歉,我刚更新到 proton 5.13,游戏一直崩溃。
这将是一些修复?

最新的稳定 Proton 版本应该是 5.0-9。 首先尝试使用上述修复程序。 如果它适用于 5.0-9 但不适用于 5.13(+ 修复),那么新版本可能会出现回归。

谢谢,游戏现在可以工作了。

刚刚将 proton 从 5.0-9 更新到 5.13-1,并且工作方式与升级前相同。

刚刚将 proton 从 5.0-9 更新到 5.13-1,并且工作方式与升级前相同。

之前没有看到他们发布了新的质子版本(对不起,误解)。 但它对我来说仍然没有问题。

他们放弃了一个新的预览版本(Alpha 1.6.22.106),其中着色器问题已得到解决!

你好。 我试图运行游戏,但它一直在崩溃(或显示没有翻译的 UI)。
我尝试执行以下操作:

  1. 从主仓库安装 Winetricks
curl https://raw.githubusercontent.com/Winetricks/winetricks/master/src/winetricks > winetricks
sudo mv winetricks /usr/bin/
sudo chmod +x /usr/bin/winetricks
  1. 去掉前缀
rm -rf /home/$USER/.steam/steam/steamapps/compatdata/690830
  1. 运行游戏再次创建前缀
  2. 安装vcrun2017
WINEPREFIX=/home/$USER/.steam/steam/steamapps/compatdata/690830/pfx /usr/bin/winetricks -q vcrun2017

我使用 Ubuntu 20.04、游戏的最新预览分支和 Proton 5.13。

我认为您错过了重命名 Archivements.vdf 并再次运行它。
我做了你所做的,为我工作。

@Vavooon我也会做一个sudo winetricks --self-update ,只是为了确定。

@Vavooon使用winetricks --version检查您的 winetricks 版本。 校验和应该是61509663b824d72daafec6a95986e5b256e19e0e8ec1d2b7c4e89cf52665d63b 。 另外,请确保您没有安装两个单独的 winetricks 版本。

@Vavooon也发布WINEPREFIX=/home/$USER/.steam/steam/steamapps/compatdata/690830/pfx /usr/bin/winetricks -q vcrun2017的输出,它可以帮助找到问题。

@Sebastiangperez如果我重命名它,我可以进入主菜单,但是没有翻译,如果我打开设置它会崩溃。
@leinardi 也尝试执行它。
@MadByteDE它是20200412-next - sha256sum: 61509663b824d72daafec6a95986e5b256e19e0e8ec1d2b7c4e89cf52665d63b

这是 winetricks 日志https://gist.github.com/Vavooon/df74df7f9e85f6efce4ed0ff66d883bb

@Vavooon我刚刚运行winetricks --self-update并获得了您正在使用的相同版本:

leinardi<strong i="11">@c7h</strong>:~$ winetricks --self-update
Executing cd /tmp/winetricks.FKCnFq7D
Downloading https://raw.githubusercontent.com/Winetricks/winetricks/master/src/winetricks to /tmp/winetricks.FKCnFq7D
--2020-10-18 14:22:41--  https://raw.githubusercontent.com/Winetricks/winetricks/master/src/winetricks
Risoluzione di raw.githubusercontent.com (raw.githubusercontent.com)... 151.101.192.133, 151.101.128.133, 151.101.64.133, ...
Connessione a raw.githubusercontent.com (raw.githubusercontent.com)|151.101.192.133|:443... connesso.
Richiesta HTTP inviata, in attesa di risposta... 200 OK
Lunghezza: 873442 (853K) [text/plain]
Salvataggio in: "winetricks"

winetricks          100%[===================>] 852,97K  2,65MB/s    in 0,3s    

2020-10-18 14:22:41 (2,65 MB/s) - "winetricks" salvato [873442/873442]

Executing cd /home/leinardi
Executing mv /tmp/winetricks.FKCnFq7D/winetricks /home/leinardi/bin/winetricks.update
Executing rmdir /tmp/winetricks.FKCnFq7D
Executing cp /home/leinardi/bin/winetricks /home/leinardi/bin/winetricks.bak
Executing chmod -x /home/leinardi/bin/winetricks.bak
Executing mv /home/leinardi/bin/winetricks.update /home/leinardi/bin/winetricks
Executing chmod +x /home/leinardi/bin/winetricks
------------------------------------------------------
warning: Update finished! The current version is 20200412-next - sha256sum: 61509663b824d72daafec6a95986e5b256e19e0e8ec1d2b7c4e89cf52665d63b. Use 'winetricks --update-rollback' to return to the previous version.
------------------------------------------------------

我开始认为需要wine 5.18,您可以尝试将其更新为wine staging,删除前缀并重试吗?

有关如何添加官方 wine repo 的说明,请参见此处: https ://wiki.winehq.org/Ubuntu

@Vavooon我刚刚运行winetricks --self-update并获得了您正在使用的相同版本:
我开始认为需要wine 5.18,您可以尝试将其更新为wine staging,删除前缀并重试吗?

有关如何添加官方 wine repo 的说明,请参见此处: https ://wiki.winehq.org/Ubuntu

你的意思是质子酒版本还是你的酒的系统版本?

你的意思是质子酒版本还是你的酒的系统版本?

winetricks 不使用 Proton,而是使用系统 wine 安装,从日志中可以看到:

Using winetricks 20200412-next - sha256sum: 61509663b824d72daafec6a95986e5b256e19e0e8ec1d2b7c4e89cf52665d63b with wine-5.0 (Ubuntu 5.0-3ubuntu1) and WINEARCH=win64
Executing w_do_call vcrun2017

所以我用sudo apt install --install-recommends winehq-staging安装了 wine-staging ,重新创建了前缀并安装了 vcrun2017。
这是日志https://gist.github.com/Vavooon/a258f50f1d88a678834effbb08519d95
游戏仍然崩溃。

两者都没有帮助protontricks 690830 -q vcrun2017

所以我用sudo apt install --install-recommends winehq-staging安装了 wine-staging ,重新创建了前缀并安装了 vcrun2017。
这是日志https://gist.github.com/Vavooon/a258f50f1d88a678834effbb08519d95
游戏仍然崩溃。

两者都没有帮助protontricks 690830 -q vcrun2017

但是,我认为您误认为了两种不同版本的 wine,一种是您全局安装在系统中的,另一种是 proton 附带的。

@Sebastiangperez确实, winetricks说它现在使用的是 wine 5.19(这是 winehq 的最新版本),尽管protontricks似乎使用的是 5.13。
你知道我在运行winetricks时如何默认使用 Proton 的版本吗?

也许你可以在前缀之后指出,像这样:
WINEPREFIX=/home/.../.steam/steam/steamapps/compatdata/690830/pfx /home/.../.steam/steam/steamapps/common/Proton\ 5.13/dist/bin/wine

不知道我明白了。 我应该使用 Proton 的 wine 版本运行winetricks (这对我来说听起来不正确,因为winetricks是一个脚本)还是以其他方式运行它?

试试这个 :
我卸载游戏,删除前缀,安装游戏,运行它,让它崩溃,重命名本地化(英文目录)中的 Archivements.vdf 文件,
从 github 下载最新版本的 winetricks 并在当前目录中运行 localy not globaly like ./winetricks,也许你可以在此之后执行 ./winetricks --self-update ,然后使用前缀 pinting 运行 winetricks 到 WINEPREFIX=/主页/(您的用户名)/.steam/steam/steamapps/compatdata/690830/pfx winetricks -q vcrun2017
所有这些都对我有用。

@Sebastiangperez完全按照您的建议进行了尝试(但是,最新的命令是WINEPREFIX=/home/$USER/.steam/steam/steamapps/compatdata/690830/pfx ./winetricks -q vcrun2017 ),但仍然没有运气。 游戏开始时没有翻译。

妈的...我在翻译时遇到了同样的问题,但是最近在您启动时游戏崩溃了,我做了所有这些都没有希望。
你运行 winetricks --self-update 了吗?
重新做一遍,但使用 proton 5.09,第一次使用这个版本,现在我从预览分支下载了补丁版本,我使用 5.13 版本的 proton。

是的,我也试过winetricks --self-update
看起来确保winetricks使用 Proton 的葡萄酒版本的正确方法是设置 WINE 变量,例如

WINEPREFIX=/home/$USER/.steam/steam/steamapps/compatdata/690830/pfx WINE=/home/$USER/.steam/steam/steamapps/common/Proton\ 5.0/dist/bin/wine winetricks vcrun2017

所以我在输出中得到正确的葡萄酒版本

Using winetricks 20200412-next - sha256sum: 61509663b824d72daafec6a95986e5b256e19e0e8ec1d2b7c4e89cf52665d63b with wine-5.0-655-g2409bd1 and WINEARCH=win64

无论如何,它没有帮助。

您是否删除了 690830 文件夹? 我也这样做了。

@Sebastiangperez当然,我总是在尝试之前删除前缀并运行游戏。

@Vavooon最新的 winetricks 版本似乎又出现了故障。 我在我的系统上尝试过,它再次跳过了最后一步。

warning: Wine-Fehler 30713 wird umgegangen -- Manually extracting the 64-bit dlls
------------------------------------------------------
Executing cabextract -q --directory=/home/larsl/.steam/steam/steamapps/compatdata/690830/pfx/dosdevices/c:/windows/temp vc_redist.x64.exe
Executing cabextract -q --directory=/home/larsl/.steam/steam/steamapps/compatdata/690830/pfx/dosdevices/c:/windows/temp /home/larsl/.steam/steam/steamapps/compatdata/690830/pfx/dosdevices/c:/windows/temp/a10
/home/larsl/.steam/steam/steamapps/compatdata/690830/pfx/dosdevices/c:/windows/temp/a10: WARNING; possible 16776 extra bytes at end of file.
Executing cabextract -q --directory=/home/larsl/.steam/steam/steamapps/compatdata/690830/pfx/dosdevices/c:/windows/temp /home/larsl/.steam/steam/steamapps/compatdata/690830/pfx/dosdevices/c:/windows/temp/a11
/home/larsl/.steam/steam/steamapps/compatdata/690830/pfx/dosdevices/c:/windows/temp/a11: WARNING; possible 16976 extra bytes at end of file.

我不知道为什么他们似乎会改变 winetricks 安装 vcrun2017 每个版本的行为,但我想这可能是问题所在。 您可以尝试再次使用以前的版本 (8efa7c2d4b96045bf6dec3a4b60be588c4c9a7da4e6de7c010cb6f21e2fb708f)。

@MadByteDE感谢您的提示。 你能把工作的winetricks版本发给我吗? 没有办法通过sha256sum找到它。

@Vavooon在更新 winetricks 以测试安装失败的原因后,我遇到了同样的情况。 我手动将解决方法复制粘贴到最新的 winetricks 脚本中以使其工作。 这是文件: MegaGist 。 您需要替换现有的 winetricks(通常位于 /usr/bin/ )并确保它是可执行的。 这只是一个临时解决方案,我将在 winetricks git 页面上为此打开一个问题。

@MadByteDE对不起,但你确定它是正确的吗? 当我运行它时,它仍然显示20200412-next - sha256sum: 61509663b824d72daafec6a95986e5b256e19e0e8ec1d2b7c4e89cf52665d63b 。 翻译也没有得到修复。

@Vavooon我很抱歉你是对的。 出于测试目的,我再次更换了它。
给我一分钟,我会在这篇文章中添加正确的链接。

编辑:
兆丰
要旨

@MadByteDE 非常感谢。
不幸的是,我遇到了另一个问题:

Executing cabextract -q --directory=/home/vavooon/.steam/steam/steamapps/compatdata/690830/pfx/dosdevices/c:/windows/temp vc_redist.x64.exe
Executing cabextract -q --directory=/home/vavooon/.steam/steam/steamapps/compatdata/690830/pfx/dosdevices/c:/windows/temp /home/vavooon/.steam/steam/steamapps/compatdata/690830/pfx/dosdevices/c:/windows/temp/a10
/home/vavooon/.steam/steam/steamapps/compatdata/690830/pfx/dosdevices/c:/windows/temp/a10: WARNING; possible 16776 extra bytes at end of file.
Executing cabextract -q --directory=/home/vavooon/.steam/steam/steamapps/compatdata/690830/pfx/dosdevices/c:/windows/temp /home/vavooon/.steam/steam/steamapps/compatdata/690830/pfx/dosdevices/c:/windows/temp/a11
/home/vavooon/.steam/steam/steamapps/compatdata/690830/pfx/dosdevices/c:/windows/temp/a11: WARNING; possible 16976 extra bytes at end of file.
cp: cannot create regular file '/home/vavooon/.steam/steam/steamapps/compatdata/690830/pfx/dosdevices/c:/windows/system32/ucrtbase.dll': Permission denied

@Vavooon您可以尝试以root权限运行winetricks并再试一次吗? 忘记以root身份运行..不应该这样做。 如果这没有帮助,您可以通过从https://aka.ms/vs/15/release/vc_redist.x64.exe下载 vcrun 安装程序手动替换 dll 文件,使用cabextract -q --directory="vcrun2017" VC_redist.x64.exe提取 .exe ,提取 a10 和 a11 目录并将 dll(或只是 ucrtbase.dll)复制粘贴到具有 root 权限../steamapps/compatdata/690830/pfx/dosdevices/c:/windows/system32中。

编辑: @gverm在 winetricks git 上提到了一些关于文件有时没有被正确替换的内容。 我认为这个问题有望很快通过 winetricks 或葡萄酒本身得到解决。

@Vavooon你能检查一下../steamapps/compatdata/690830/pfx/dosdevices/c:/windows/system32/ucrtbase.dll的所有者吗? 似乎由于某种原因该文件已作为另一个用户安装,这就是为什么您不能用您的权限替换它的原因。

最终它起作用了! 非常感谢大家的帮助!

所以我想写下所有必需的步骤:

  1. 擦除游戏的酒前缀: rm -rf /home/$USER/.steam/steam/steamapps/compatdata/690830
  2. 运行游戏(使用 Proton 5.13+,现在预览分支)并让它重新创建前缀
  3. 下载https://aka.ms/vs/15/release/vc_redist.x64.exe ,用cabextract -q VC_redist.x64.exe解压,然后从 exe 内的a10目录中提取ucrtbase.dll .
  4. ucrtbase.dll复制到/home/$USER/.steam/steam/steamapps/compatdata/690830/pfx/drive_c/windows/system32/中,确认替换。

@MadByteDE它归我的家庭用户所有,没什么特别的。 我相信它无法覆盖文件,因为cp应该使用-r键左右执行。

@Vavooon很高兴它现在起作用了。 好的,很高兴知道。 您应该补充一下,您可能需要先安装 vcrun2017,然后手动替换 ucrtbase.dll,还是没有其余部分也可以工作?

@MadByteDE实际上,替换文件是解决问题所需的唯一事情。

大家好,我是 Polymorph Games 的技术总监。 首先:非常感谢您为调查这些问题所付出的时间和精力,它真的帮助了我们!

由于@smirgol在 Steam 论坛上讨论 glsl 兼容性问题,我们能够在预览分支上部署修复程序,它将很快到达完整的内容补丁。

我还能够调查本地化文件加载问题,它也应该得到修复。 发生的事情是 proton / wine 只是忽略了我们以 utf8 格式打开文件的请求,并为我们提供了行数据。 通过在我们所有的 utf8 文件中添加 utf8 DOM 来修复它。

我无法测试完整的游戏加载,因为我只在虚拟机上运行 linux(所以我无法通过 opengl 4.3 检查),但如果这真的是最后一个问题,那么游戏应该可以在没有 vcrun2017 的情况下运行技巧(一旦新版本上线,版本优于 1.6.22)。

由于游戏仍在积极开发中,我预计未来还会有其他问题。 即使 linux 不是我们的首要任务,我们仍然希望尽我们所能让在 Linux 上试验 Foundation 变得更容易。 因此,请不要犹豫,在 Steam 论坛或我们的 Discord 中与我们联系,这将是确保我们了解您必须修复质子体验的新问题或想法的最佳方式。

不和谐: https ://discord.com/invite/foundation
如果您有关于 linux 构建的消息,我建议在 #techsupport 上标记 Minotorious#0534

干杯!

@leo-polymorph 很少有游戏工作室出现在这个问题跟踪器中并且实际上提供任何形式的帮助/支持,非常感谢!

在看到这个评论之前我不知道这个游戏。 你对我们的立场,Linux 游戏玩家,让我想玩它。 感谢你出色的工作,继续保持。 @leo-polymorph

@leo-polymorph 感谢您对我们的支持,这真的很重要!

@leo-polymorph 好消息,谢谢。

我还能够调查本地化文件加载问题,它也应该得到修复。 发生的事情是 proton / wine 只是忽略了我们以 utf8 格式打开文件的请求,并为我们提供了行数据。 通过在我们所有的 utf8 文件中添加 utf8 DOM 来修复它。

嘿,这里是 Wine/Proton 开发人员。 如果您可以向我们提供有关此错误的更多信息,我们可以在 Wine 中修复它。 请随时在此处回复,或发送电子邮件至[email protected] 谢谢!

我还能够调查本地化文件加载问题,它也应该得到修复。 发生的事情是 proton / wine 只是忽略了我们以 utf8 格式打开文件的请求,并为我们提供了行数据。 通过在我们所有的 utf8 文件中添加 utf8 DOM 来修复它。

嘿,这里是 Wine/Proton 开发人员。 如果您可以向我们提供有关此错误的更多信息,我们可以在 Wine 中修复它。 请随时在此处回复,或发送电子邮件至[email protected] 。 谢谢!

我喜欢人们为了一个共同的目的一起工作,我希望人类在每个领域都能像这样工作。

@aeikum ,这是问题所在:
我们有一个 utf8 文件,没有 DOM,'localization/locales.txt'
我们这样打开它:
_wfopen_s(&m_file, "localization/locales.txt", "rt, ccs=UTF-8");

根据 MS doc,文件流应将其视为 utf8 编码源并将其转换为 UNICODE 作为读取。 这在 Windows 上按预期工作。

image

微软文档: https ://docs.microsoft.com/en-us/cpp/c-runtime-library/reference/fopen-s-wfopen-s?view=vs-2015

在质子上,系统的行为就像我们这样打开文件:
_wfopen_s(&m_file, "localization/locales.txt", "rt");

作为一种解决方法,我们将 utf8 BOM 添加到文件中,现在 proton 按预期读取文件。 添加 BOM 对我们来说不是问题,但它是 windows 和 proton 之间的区别。

@leo-polymorph 明白了,非常感谢您的解释。 我们来看看。

FWIW,Linux 游戏玩家,运行预览版本并运行此脚本以针对localization/en目录的全部内容添加 UTF-8 BOM,让游戏为我启动并运行:
https://stackoverflow.com/questions/3127436/adding-bom-to-utf-8-files

因此,在我安装了最新的更新 (1.6.24.1028) 之后,游戏似乎完全可以在 Linux 上运行,而无需应用任何 hack。

因此,在我安装了最新的更新 (1.6.24.1028) 之后,游戏似乎完全可以在 Linux 上运行,而无需应用任何 hack。

所以,我关闭这个问题还是让它打开以防万一?

请保持打开状态。

请保持打开状态。
行!

大家好,首先是找到问题解决方案的出色工作,游戏现在显然可以完美运行。 但我是否可以提请注意,BOM 的问题仍然存在于修改后的内容,运行批处理脚本似乎对我有用,我不知道开发人员是否可以更改,但让任何其他用户都知道它。

此页面是否有帮助?
0 / 5 - 0 等级

相关问题

shaphanpena1 picture shaphanpena1  ·  3评论

BLaDZer picture BLaDZer  ·  3评论

juppso picture juppso  ·  3评论

leifmetcalf picture leifmetcalf  ·  3评论

matou68 picture matou68  ·  3评论