Proton: 骑马与砍杀II:Bannerlord(261550)

创建于 2020-03-30  ·  540评论  ·  资料来源: ValveSoftware/Proton

相容性报告

  • 出现兼容性问题的游戏名称:Mount&Blade II Bannerlord
  • Steam的Steam AppID:261550

系统信息

  • GPU:X.Org AMD Radeon RX 5700 XT(NAVI10,DRM 3.36.0,5.5.11-050511-generic,LLVM 9.0.0)
  • 驱动程序/ LLVM版本:4.5(兼容性配置文件)Mesa 19.2.8
  • 内核版本:5.5.11-050511-gen
  • Gist链接到完整的系统信息报告: https :
  • 质子版本:5.0-5

我确定:

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

质子崩溃日志:

steam-261550.log

病征

游戏不启动

再生产

  1. 下载M&B II:Bannerlord
  2. 尝试运行它
  3. 游戏崩溃:
Unhandled Exception:
System.IO.FileNotFoundException: Could not load file or assembly 'ManagedStarter, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null' or one of its dependencies.
File name: 'ManagedStarter, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null'

日志中的消息。

当前解决方法

Proton 5.5-GE https://github.com/GloriousEggroll/proton-ge-custom/releases/tag/5.5-GE-1 + protontricks 261550 dotnet472 (Bannerlord必要的依赖项可以在这里找到:https:// forums .taleworlds.com / index.php?threads / installing-missing-necessary-dependencies.407126 /)
安装dotnet核心可能会大大减少崩溃次数: https : https: //github.com/ValveSoftware/Proton/issues/3706#issuecomment -610022040

多人游戏:有效,只需在出现提示时跳过BattleEye的安装即可。

.NET Game compatibility - Unofficial

最有用的评论

@YellowApple您介意创建一个“如何使白痴从头开始制作游戏”指南吗?

最“白痴”友好的做法:

  • 下载我正在使用的确切的Proton构建: https :
  • 贴在~/.steam/root/compatibilitytools.d
  • 解压缩( cd ~/.steam/root/compatibilitytools.d && tar xvf proton_5.0-local.tar.gz
  • 重新启动Steam
  • 右键单击库中的Bannerlord,单击“属性”,然后将Proton版本更改为“ proton_5.0-local”
  • ???
  • 利润

显然,这样做的后果自负,因为要理解,从Internet上下载,安装和运行随机二进制文件是一件危险的事情,充满了危险。 买者自负。 强烈建议您尝试克隆Proton回购,自己应用补丁并在自己的计算机上构建Proton(虽然是的,这并不是最人性化的方法,但是比信任Internet安全得多)陌生人不要从您的头骨喝酒,哈哈)。

希望我们能够早些而不是晚些时候使这些补丁上游,以便我们可以避免使用这些皱褶的,一次性的定制版本,大声笑

所有540条评论

几点注意事项:

  • 该游戏使用Battleye Anti-Cheat-即使您只想玩单人游戏,这似乎也是强制性的。 不知道是否有启动参数将其禁用。

您可以在/ Mount&Blade II Bannerlord / bin / Win64_Shipping_Client /中重命名两个.exe文件。

  • 将“ TaleWorlds.MountAndBlade.Launcher.exe”重命名为“ TaleWorlds.MountAndBlade.Launcher.exe_backup”(或类似名称-不允许保留其原始名称)

  • 将“ Bannerlord.exe”重命名为“ TaleWorlds.MountAndBlade.Launcher.exe”

为了至少使游戏开始,请查看启动屏幕,然后我到达必须第一次与游戏进行交互(更改亮度设置)的地步,此时我的CPU和GPU绝对无法使用,完全与游戏互动。

我能够确认绕过启动器(通过将TaleWorlds.MountAndBlade.Launcher.exe移开,并替换为Bannerlord.exe的副本)确实可以使它至少到达亮度校准屏幕(或如果我在$COMPATDATA/261550/pfx/drive_c/users/steamuser/My Documents/Mount and Blade II Bannerlord/Configs/engine_config.txt设置brightness_calibrated = 1 ,则将其作为主菜单。

但是,鼠标输入似乎有一个错误。 光标移动并可见,但菜单选项在其上方移动时不会突出显示,并且游戏不响应单击(自然没有键盘导航...)。 垂直同步的每个排列,在虚拟桌面中启动,禁用Steam Overlay等问题仍然存在。

特别令人感兴趣的steam-261550.log是的垃圾邮件fixme:win:GetMouseMovePointsEx (24 0x3c87f298 0x3c87f2b0 64 1) stub 。 可能与Wine bug 36873有关

在TaleWorlds论坛上的进一步讨论: https ://forums.taleworlds.com/index.php?threads/linux.385761/page -2和https://forums.taleworlds.com/index.php?threads/b0 -8 -9-mouse-clicks-not-registered-on-linux.395650 /

编辑:尝试插入一个控制器,并允许我实际浏览菜单。 要看我能走多远,但是……进步!

对我来说,运行Bannerlord.exe而不是TaleWorlds.MountAndBlade.Launcher.exe之后,游戏在启动时仍然崩溃。 使用protontricks,我已经安装了dotnet4.8和vcrun2015-游戏仍然崩溃,但至少我能够欣赏游戏的加载屏幕。

可以确认在Proja 5.0-5的Manjaro上,我的鼠标输入存在相同的问题。 我当时处于封闭Beta版中,并且在最后一次更新之前游戏运行正常,因此,我非常有信心在我们设法解决此导航问题后,游戏的其余部分也可以正常工作。

因此,在摸索得到完全通过Logitech游戏手柄创建的角色后,看起来我在创建角色后立即在加载屏幕上遇到了另一种障碍,即硬崩溃(相关条目来自steam-261550.logwine: Call from 0x7b00fc3e to unimplemented function api-ms-win-crt-private-l1-1 -0.dll._o___stdio_common_vswprintf, aborting )。 即使在运行protontricks 261550 vcrun2015protontricks 261550 vcrun2017之后,该问题仍然存在。

只是一个快速的google,因为我现在无法自己实际测试(仍在下载),但是类似的问题似乎在某个时候困扰着BNet Launcher,并通过添加ucrtbase和api-msi-win等dll作为替代通过覆盖来解决winecfg。

当使用游戏手柄导航到自定义战斗时,自定义战斗会起作用,并且在实际游戏中,您可以使用鼠标进行战斗。

但是,对我来说,在玩游戏和更改设置时,游戏看起来变色得令人难以置信,变得明亮,有一半时间使游戏崩溃,同时将所有内容设置为低也会使游戏崩溃。
这是保存设置时崩溃的日志。
steam-261550.log

编辑:将设置从高变低会导致海关停止工作,因此请避免这样做。

是的,我做了一些阅读,研究,下载了3次游戏,还有一些研究,我相信我已经弄清楚了。

Bannerlord使用的是Battleye,这是一个内核反作弊软件。 由于Proton-Wine实例不是基本的Linux内核,而是Windows内核,因此,Battleye无法直接从USB端口拦截鼠标输入以验证其真实交易,然后将其输入游戏,或者将Wine的鼠标输入误认为是基于人工程序的鼠标输入,这意味着反作弊系统将启动。

我确实记得在某处读到《 Battleye》与Linux完全不兼容,但是该评论来自……三年前? 因此,我实际上不知道反作弊软件的当前状态。 因此,我认为可以选择让TaleWorlds将Battleye配置为与Proton配合使用,为Proton禁用它,直到可以制作合适的Linux版本,然后在此处重新启用它((他们正在使用Mono进行某些操作。发射器?)等到游戏正确发布后,因为它们很可能会拖延提供多操作系统支持,直到稍后在Early Access中才发布,所以发布更新的难度要容易10倍...或弄清楚如何让Window Executable Battleye直接进入基于Linux的内核,以便它可以扫描所需的所有内容,并让我们在不触发反作弊的情况下向游戏中输入内容...

因此,我想我们为Bannerlord等待的时间更长了。

是的,我做了一些阅读,研究,下载了3次游戏,还有一些研究,我相信我已经弄清楚了。

Bannerlord使用的是Battleye,这是一个内核反作弊软件。 由于Proton-Wine实例不是基本的Linux内核,而是Windows内核,因此,Battleye无法直接从USB端口拦截鼠标输入以验证其真实交易,然后将其输入游戏,或者将Wine的鼠标输入误认为是基于人工程序的鼠标输入,这意味着反作弊系统将启动。

我确实记得在某处读到《 Battleye》与Linux完全不兼容,但是该评论来自……三年前? 因此,我实际上不知道反作弊软件的当前状态。 因此,我认为可以选择让TaleWorlds将Battleye配置为与Proton配合使用,为Proton禁用它,直到可以制作合适的Linux版本,然后在此处重新启用它((他们正在使用Mono进行某些操作。发射器?)等到游戏正确发布后,因为它们很可能会拖延提供多操作系统支持,直到稍后在Early Access中才发布,所以发布更新的难度要容易10倍...或弄清楚如何让Window Executable Battleye直接进入基于Linux的内核,以便它可以扫描所需的所有内容,并让我们在不触发反作弊的情况下向游戏中输入内容...

因此,我想我们为Bannerlord等待的时间更长了。

我不买这个。 如果Battleye引起光标问题,那么为什么在使用游戏手柄时却看不到相同的问题?

Battleye不是问题,它是可选安装,仅对于多人游戏是必需的。

Battleye不是问题,它是可选安装,仅对于多人游戏是必需的。

为了扩展tkamat的职位,我也处于封闭Beta版中,而《 Battleeye》被添加到Beta中之后,该游戏仍然可以运行几个补丁。 据我了解,他们当时将其设置为可选项,您可能会忽略在首次运行时取消战斗眼的安装,并且它不会因不使用它而将您踢出游戏。

大约两个星期前,有一个补丁破坏了许多Windows用户的游戏能力,这显然与尝试玩键盘/鼠标时插入控制器或操纵杆有关。 几天后,他们修复了该问题,但论坛上的所有Linux用户都报告说,即使在更新后也未插入控制器,也没有鼠标输入发生。

我们在论坛上猜测,steamplay在驱动程序级别向游戏展示虚拟控制器可能是一个问题,但从未确认。 至于开始竞选的崩溃,因为它是多人测试版,所以我们从来没有走过这么远。

Battleye不是问题,它是可选安装,仅对于多人游戏是必需的。

为了扩展tkamat的职位,我也处于封闭Beta版中,而《 Battleeye》被添加到Beta中之后,该游戏仍然可以运行几个补丁。 据我了解,他们当时将其设置为可选项,您可能会忽略在首次运行时取消战斗眼的安装,并且它不会因不使用它而将您踢出游戏。

大约两个星期前,有一个补丁破坏了许多Windows用户的游戏能力,这显然与尝试玩键盘/鼠标时插入控制器或操纵杆有关。 几天后,他们修复了该问题,但论坛上的所有Linux用户都报告说,即使在更新后也未插入控制器,也没有鼠标输入发生。

我们在论坛上猜测,steamplay在驱动程序级别向游戏展示虚拟控制器可能是一个问题,但从未确认。 至于开始竞选的崩溃,因为它是多人测试版,所以我们从来没有走过这么远。

该游戏在Battleye之前在Linux上运行良好吗? 我在Beta期间回到Windows,所以从没有尝试过质子测试。

Battleye不是问题,它是可选安装,仅对于多人游戏是必需的。

为了扩展tkamat的职位,我也处于封闭Beta版中,而《 Battleeye》被添加到Beta中之后,该游戏仍然可以运行几个补丁。 据我了解,他们当时将其设置为可选项,您可能会忽略在首次运行时取消战斗眼的安装,并且它不会因不使用它而将您踢出游戏。
大约两个星期前,有一个补丁破坏了许多Windows用户的游戏能力,这显然与尝试玩键盘/鼠标时插入控制器或操纵杆有关。 几天后,他们修复了该问题,但论坛上的所有Linux用户都报告说,即使在更新后也未插入控制器,也没有鼠标输入发生。
我们在论坛上猜测,steamplay在驱动程序级别向游戏展示虚拟控制器可能是一个问题,但从未确认。 至于开始竞选的崩溃,因为它是多人测试版,所以我们从来没有走过这么远。

该游戏在Battleye之前在Linux上运行良好吗? 我在Beta期间回到Windows,所以从没有尝试过质子测试。

它在12月左右开始在Linux上运行,偶尔崩溃一次,但是在为每个贴图编译了着色器之后,性能仍然可以接受。 当时我还使用功率相对较低的图形卡(rx 480),所以我认为,如果我们能够从taleworlds那里得到一些小小的协助来解决这些问题,那么在性能方面,这款游戏在Linux上是可以的。 我们确实收到了关于所面临的鼠标问题的开发人员反馈,因此看来它们至少对考虑Linux用户和质子并不怀有敌意。

那天找不到我的控制器! 我实际上确实得到了一些工作! 我按照上面的方法进行了重命名,然后尝试使用此方便的驱动程序来连接我的交换机Joy-Cons。

当操纵杆被识别为专业控制器时,使用左摇杆定位光标后,我可以用鼠标单击事物。 在我的快速测试战斗中,鼠标对准目标和单击效果很好,因此问题可能与菜单有关。 不知道这是否可以与其他控制器一起使用,或者是否与驱动程序的实现方式有关。

只是一个快速的google,因为我现在无法自己实际测试(仍在下载),但是类似的问题似乎在某个时候困扰着BNet Launcher,并通过添加ucrtbase和api-msi-win等dll作为替代通过覆盖来解决winecfg。

将这些内容添加为替代仍然会导致崩溃,但是我可以按照类似问题的步骤,对它进行暴力破解

cd /home/$USER/.steam/steam/steamapps/compatdata/261550/pfx/drive_c/windows/system32/
wget "https://aka.ms/vs/16/release/vc_redist.x64.exe"
cabextract vc_redist.x64.exe
cabextract a10

这使我更进一步:

Tutorial works

鼠标仍然无法用于对话框和暂停菜单(您可以在此处单击“单击以继续”,因此它显然可以识别鼠标单击,但不知道鼠标是否实际上在某物上,除非您移动光标与控制器)。 适用于运动和战斗。 在我再次崩溃之前,已经完成了几个教程目标(这次是由于eventfd: Too many open files ;因为要抽水而重新启动ulimit -Hn并重试)。

编辑回复:BattlEye:

Bannerlord使用的是Battleye,这是一个内核反作弊软件。 由于Proton-Wine实例不是基本的Linux内核,而是Windows内核,因此,Battleye无法直接从USB端口拦截鼠标输入以验证其真实交易,然后将其输入游戏,或者将Wine的鼠标输入误认为是基于人工程序的鼠标输入,这意味着反作弊系统将启动。

这似乎不太可能。 如果它与反作弊有关,那么我希望能得到与当前症状相反的信息(例如,鼠标在菜单/对话框中工作正常,但不适用于移动/战斗)。 我还希望键盘和控制器受到类似的影响(事实并非如此)。

BattlEye肯定会在多人游戏上大放异彩,但是对于单人游戏来说,这是完全没有必要的(事实上,其他具有单人游戏模式的BattlEye游戏在Proton的支持下也相当不错,例如Conan:Exiles)。

@YellowApple您能否查看以下修补程序在没有vcredist的情况下是否解决了崩溃问题? (即在测试时将ucrtbaseapi-ms-win-crt-private-l1-1-0为内置)

https://gist.github.com/qsniyg/4ba247c7398e3a1926988e3f6ca252ce

如果可以在上游将其固定而不需要重写就好了:)我目前没有游戏,所以我无法测试。

@YellowApple我尝试重现您的解决方案,但可惜它对我不起作用,创建角色后,广告系列崩溃了。 日志文件似乎仍然指向api-ms-win-crt-private-l1-1-0.dll._o___stdio_common_vswprintf作为问题。 您是否还有其他步骤,例如重新安装vcrun-2017或其他?

因此提高$$$ ulimit -Hn帮助,我可以到达主地图,但是注意到任何保存游戏的尝试都会导致游戏暂时冻结几分钟,同时固定每个核心/我的CPU上的线程(尽管某些声音确实在后台继续播放)。 我怀疑还有一个自动保存功能会触发类似的冻结(发生在某些清单中作弊后,并且在闲置一段时间后再次发生)。

另外,似乎弹出对话框会导致操纵杆驱动的鼠标光标消失(尚未确定是否总是发生这种情况;经过足够的摆动,我确实设法使“ OK”按钮得以短暂突出显示,所以我认为光标是不可见的)。

我还可以确认鼠标按钮和滚轮在菜单/对话框中完全起作用; 您只需要使用控制器将光标移动到要单击或滚动的对象即可。 因此,导致该错误的原因完全与游戏认为鼠标指向的位置有关。

@YellowApple您能否查看以下修补程序在没有vcredist的情况下是否解决了崩溃问题? (即在测试时将ucrtbase和api-ms-win-crt-private-l1-1-0设置为内置)

会做@qsniyg (一旦我让Vagrant合作)。 这些功能是否都已实现但残缺不全?

@YellowApple我尝试重现您的解决方案,但可惜它对我不起作用,创建角色后,广告系列崩溃了。 日志文件似乎仍然指向api-ms-win-crt-private-l1-1-0.dll._o ___ stdio_common_vswprintf。 您是否还有其他步骤,例如重新安装vcrun-2017或其他?

@tkamat :我所做的确切步骤(据我

  • protontricks 261550 vcrun2015 (并运行游戏;崩溃)
  • protontricks 261550 vcrun2017 (并运行游戏;崩溃)
  • 通过winecfgucrtbaseapi-ms-win-crt-private-l1-1-0添加了本机替代(并运行了游戏;崩溃了)
  • 整个过程是否“用cabextract敲击了VC redist EXE”(并运行了游戏;有效)

@YellowApple也许这是一个盲目镜头–但是您是否也可以尝试通过protontricks安装dotnet 4.8? 我能够在启动/加载屏幕中使用鼠标。

@黄苹果

会做@qsniyg (一旦我让Vagrant合作)。 这些功能是否都已实现但残缺不全?

它们已经实现,但是Windows使用这些api-ms-win-... dll,这些dll基本上只是从其他dll(advapi32,kernel32,ucrtbase等)导入。 我想wine会根据需要在这些dll中添加功能,以确保它们是正确的。

游戏可能会再次从那些api dll中的某个其他未实现的功能上崩溃。 随意将它们添加到您自己中或让我知道。 希望经过一些迭代,我们将能够找到所需的功能,然后将其发送到wine :)

@Yarwin @tkamat我直觉dotnet4.8的protontricks安装可能会引起您的问题(尽管它的确让我使用了预期的启动器,但在实际游戏中必须通过控制器来控制鼠标)。 我也安装了该软件,但无法使用@YellowApple的解决方案。
我最终完全删除了$COMPATDATA/2615501 ,并经历了验证Proton 5.0和Bannerlord的文件的过程。 之后, cabextract方法起作用了(别忘了您必须再次编辑$COMPATDATA/261550/pfx/drive_c/users/steamuser/My Documents/Mount and Blade II Bannerlord/Configs/engine_config.txt来设置brightness_calibrated = 1 )。 无论原因如何,这都可以解决您的问题。

+1是由保存导致的挂起。 我也能够完成本教程,直到挂起导致我关闭它为止,现在在$COMPATDATA/261550/pfx/drive_c/users/steamuser/My Documents/Mount and Blade II Bannerlord/Game Saves出现了一个新文件夹。

@YellowApple也许这是一个盲目镜头–但是您是否也可以尝试通过protontricks安装dotnet 4.8? 我能够在启动/加载屏幕中使用鼠标。

似乎对我没有任何影响。

+1是由保存导致的挂起。 我也能够完成本教程,直到挂起导致我关闭它为止,现在在$COMPATDATA/261550/pfx/drive_c/users/steamuser/My Documents/Mount and Blade II Bannerlord/Game Saves出现了一个新文件夹。

是的,我也遇到了教程后的问题。 Kinda踢自己的原因不仅仅是等待它,看看它是否最终会像其他这些挽救措施一样使自己破产。

@ChemiKyle感谢您的提示,我刚刚完成了本教程,但是由于鼠标光标消失了,所以我现在停留在通知屏幕上。 花了几分钟摆弄操纵杆,看看它是否不可见,但不起作用。 考虑到控制器输入工作正常,我觉得一般来说鼠标问题不应该太难解决。 我的蒸汽日志警告说GetMouseMovePointsEx发出了很多次垃圾邮件,但据我所知,该功能已在wine中实现。

@YellowApple @tkamat我为GetMouseMovePointsEx创建了一个hacky补丁,但我尚未对其进行测试,因此可能是错误的,但是您介意试一下吗?

https://gist.github.com/qsniyg/4ba247c7398e3a1926988e3f6ca252ce#file -getmousemovepointsex-patch

它是针对葡萄酒的演出而编写的,因此您可能需要手动应用它。

@qsniyg刚刚尝试了两个补丁的新前缀; 没有骰子。 鼠标输入仍然无效,并且由于相同的未实现功能而仍然崩溃。 修补运行的日志。

编辑:啊,看起来补丁是为v f wprintf而崩溃是由于v s wprintf。 莱姆,看看我能不能解决这个问题...

@YellowApple Darn,至少值得一试:)我对问题可能是很盲目的,我还没有游戏,所以我也不能测试。 话虽这么说, +rawinput,+win,+cursor,+dinput,+xinput日志可能会对问题有很多了解(尽管您可能需要.gz压缩日志... :)

无论如何,这是vswprintf补丁程序: https: //gist.github.com/qsniyg/4ba247c7398e3a1926988e3f6ca252ce#file -vswprintf-patch

真该死,这确实起到_o___stdio_common_vswprintf(int64 wstr long wstr ptr ptr) (尽管我将其修补为Microsoft的文档;我猜指针是指针,但是谁知道Wine,哈哈)。

我将尝试获取带有这些标志的日志,以便我们有望在此鼠标问题上取得一些进展。

很高兴知道! 发送给他们:)

https://source.winehq.org/patches/data/182375
https://source.winehq.org/patches/data/182376

我也不知道为什么wine会那样做,我只是从文件中的较早声明中复制了他们对vswprintf的声明:)

嗨,我已经将应用程序添加到了酒的AppDB中: https ://appdb.winehq.org/objectManager.php = version = 38834 = 107964

@qsniyg您想将错误链接到应用程序还是应该?

@tomhobson快走! (我绝不是葡萄酒开发团队的成员,我只是写补丁,使自己在邮件列表中感到尴尬,因为总是弄错了哈哈)

@tomhobson快走! (我绝不是葡萄酒开发团队的成员,我只是写补丁,使自己在邮件列表中感到尴尬,因为总是弄错了哈哈)

如果您编写补丁,听起来您就像是葡萄酒开发团队的一员:)

好的,我已经链接了错误: https :

我不确定如何/是否将补丁链接回错误。 但是当它们合并时,我们可以解决下一个问题。

我错过了任何错误吗?

因此,这里所有补丁的“最新技术”仍然本质上仍然需要某种游戏手柄来控制菜单。 是对的吗? 仅检查鼠标问题,即使通过实验也无法解决。

@allquixotic :是正确的。

嗨,大家好! 我既没有在Linux上也没有在Wine上玩游戏,但是我遇到了类似的问题:鼠标光标可以使用游戏手柄,但真正的鼠标不能使用。

我在Shadow(远程计算机)上玩,当我打开“捕获光标”时,问题就消失了。 我不知道Wine的工作原理,但也许如果该选项也可用,您可以尝试一下。

干杯

嗨,大家好! 我既没有在Linux上也没有在Wine上玩游戏,但是我遇到了类似的问题:鼠标光标可以使用游戏手柄,但真正的鼠标不能使用。

我在Shadow(远程计算机)上玩,当我打开“捕获光标”时,问题就消失了。 我不知道Wine的工作原理,但也许如果该选项也可用,您可以尝试一下。

干杯

谢谢(你的)信息。 这是bannerlord中的捕获光标设置吗?

谢谢(你的)信息。 这是bannerlord中的捕获光标设置吗?

我相信他意味着流媒体解决方案。 可能值得尝试测试是否允许Wine独占鼠标控制权。

在engine_config.txt中与鼠标有关的唯一设置如下所示:

invert_mouse = 0
mouse_sensitivity_coefficient = 0.5000
control_mouse_movement_y_scale = 1.5000
control_mouse_movement_max_accumulation = 40.0000
control_mouse_movement_accumulation_decay_speed = 100.0000

毫不奇怪,修改它们似乎对解决该问题没有帮助。

谢谢(你的)信息。 这是bannerlord中的捕获光标设置吗?

我相信他意味着流媒体解决方案。 可能值得尝试测试是否允许Wine独占鼠标控制权。

是的,我就是那个意思。

@ElCaconym很抱歉,如果没有帮助:(

如果有人可以测试(我还在工作)

我发现这里有用的东西:
https://askubuntu.com/questions/968252/ubuntu-17-10-mouse-problem-in-wine

如果有人可以测试(我还在工作)
我发现这里有用的东西:
https://askubuntu.com/questions/968252/ubuntu-17-10-mouse-problem-in-wine

那几乎就是我刚刚得到的想法。 启用此选项可能会有所帮助,
Automatically capture the mouse in full-screen windows
我记得其他游戏在Wine中的鼠标光标至少具有类似的问题。

@tomhobson :已经尝试过了; 没有运气。

“ fixme :win :GetMouseMovePointsEx”消息仅表示此功能的wine存根; 我怀疑它们是否与点击未注册问题有关; 实际上Taleswords开发人员在这里说:

我们开始将GetMouseMovePointsEx用于一些鼠标移动输入。 也许这不是在WINE中实现的吗? 但是,它不用于鼠标单击。

至少乍一看,使用+ rawinput,+ win,+ cursor,+ dinput,+ xinput似乎不会产生任何启发性的日志。 值得注意的是,单击后,您将得到通常的:

0014:trace:cursor:X11DRV_RawButtonEvent raw button 0 (raw: 1) up
0014:trace:cursor:X11DRV_RawButtonEvent raw button 0 (raw: 1) down

(取决于您使用的是左键单击还是右键单击)

@ElCaconym您可以共享日志吗? 完整的日志可能包含更多信息,可能有助于调试问题:)

当然; 附上。 WINEDEBUG:+ err,+ fixme,+ rawinput,+ win,+ cursor,+ dinput,+ xinput。

请注意,我不是在使用质子:它是5.4带有所有暂存补丁程序的葡萄酒暂存程序,没有自定义修补程序(甚至没有上面提到的那个-我想在应用vfwprintf / vswprintf修补程序之前解决鼠标问题)和dxvk 1.6 。 Winetricks:vcrun2010,vcrun2015和dotnet48(仅可能需要最后一个)。

我启动了游戏,并且为了不污染日志,在进入伽玛选择屏幕之前,我避免移动鼠标。 然后,将光标移到“接受”按钮上,然后单击鼠标左键。 然后,我从另一个任期中杀死了游戏。

文件:

stderr_bannerlord.log.gz

@ElCaconym也许他们正在检查鼠标在屏幕上。

菜单上正在使用此功能。 如果这与菜单问题无关,我会感到惊讶。

您正在运行多显示器还是单显示器?

单显示器。

@ElCaconym Huh有趣,它还在每帧中剪切光标,就像在AoT2中一样。 我想知道这个补丁是否有帮助? https://source.winehq.org/patches/data/181257旨在解决以下问题:鼠标光标的移动未正确注册,而不是单击,因此在这种情况下可能没有用,但谁知道,它不应虽然受伤:)

第二次单击将创建一个全屏剪辑窗口:

0014:trace:cursor:X11DRV_RawButtonEvent raw button 0 (raw: 1) down
0014:trace:cursor:X11DRV_EnterNotify hwnd 0x10020/7000008 pos 1116,1057 detail 1
004b:trace:cursor:X11DRV_EnterNotify hwnd 0x30052/a600001 pos 1116,1057 detail 1
004b:trace:cursor:X11DRV_ButtonPress hwnd 0x30052/a600001 button 0 pos 1116,1057
004b:trace:cursor:clip_fullscreen_window win 0x30052 clipping fullscreen
004b:trace:win:WIN_CreateWindowEx (null) L"Message" ex=00000000 style=00000000 0,0 0x0 parent=0xfffffffffffffffd menu=(nil) inst=0x140000000 params=(nil)
004b:trace:win:dump_window_styles style:
004b:trace:win:dump_window_styles exstyle:
004b:trace:win:GetWindowRect hwnd 0x20094 (0,0)-(0,0)
004b:trace:win:GetWindowRect hwnd 0x20094 (0,0)-(0,0)
004b:trace:win:WINPOS_GetMinMaxInfo 106 106 / -3 -3 / 1932 1092 / 112 27
004b:trace:win:GetWindowRect hwnd 0x20094 (0,0)-(112,27)
004b:trace:win:invalidate_dce 0x20094 parent 0x10026 (0,0)-(112,27) ((0,0)-(0,0))
004b:trace:win:invalidate_dce 0x70058: hwnd 0x30052 dcx 00000012 Cache 
004b:trace:win:invalidate_dce 0x1005a: hwnd 0x30052 dcx 00000013 Cache 
004b:trace:win:invalidate_dce 0x12004c: hwnd 0x10020 dcx 00000013 Cache 
004b:trace:win:invalidate_dce 0x33004a: hwnd 0x10020 dcx 00000013 Cache InUse
004b:trace:win:invalidate_dce 0x40041: hwnd 0x10020 dcx 00000013 Cache InUse
004b:trace:win:set_window_pos win 0x20094 surface (nil) -> (nil)
004b:trace:win:WIN_CreateWindowEx hwnd 0x20094 cs 0,0 0x0 (0,0)-(112,27)
004b:trace:win:GetWindowRect hwnd 0x20094 (0,0)-(112,27)
004b:trace:win:invalidate_dce 0x20094 parent 0x10026 (0,0)-(112,27) ((0,0)-(112,27))
004b:trace:win:invalidate_dce 0x70058: hwnd 0x30052 dcx 00000012 Cache 
004b:trace:win:invalidate_dce 0x1005a: hwnd 0x30052 dcx 00000013 Cache 
004b:trace:win:invalidate_dce 0x12004c: hwnd 0x10020 dcx 00000013 Cache 
004b:trace:win:invalidate_dce 0x33004a: hwnd 0x10020 dcx 00000013 Cache InUse
004b:trace:win:invalidate_dce 0x40041: hwnd 0x10020 dcx 00000013 Cache InUse
004b:trace:win:set_window_pos win 0x20094 surface (nil) -> (nil)
004b:trace:win:WIN_CreateWindowEx created window 0x20094
004b:trace:cursor:X11DRV_XInput2_Enable XInput2 v2.1 available
004b:trace:cursor:grab_clipping_window clipping to (0,0)-(1920,1080) win 7000001
0014:trace:cursor:clip_cursor_notify clip hwnd changed from (nil) to 0x20094
004b:trace:cursor:X11DRV_EnterNotify hwnd 0x30052/a600001 pos 1116,1057 detail 2
004b:trace:cursor:X11DRV_EnterNotify pos 1116,1057 old serial 24052, ignoring
004b:trace:win:WINPOS_WindowFromPoint scope 0x10020 (1116,1057) returning 0x30052
004b:trace:cursor:SetCursor 0x20070
004b:trace:win:WINPOS_WindowFromPoint scope 0x10020 (1116,1057) returning 0x30052
004b:trace:win:GetWindowRect hwnd 0x30052 (0,0)-(1920,1080)
004b:trace:cursor:ClipCursor Clipping to (null)

有了该补丁,鼠标单击仍然被忽略。 而且我仍然定期获得以下序列:

004b:trace:cursor:ClipCursor Clipping to (null)
004b:trace:cursor:ungrab_clipping_window no longer clipping

...有点让我怀疑补丁最初是否正确应用,所以我从头开始完全重新编译了wine(而不是使用我以前的编译目录),并使用了另一个前缀(我是说自动工具安装前缀,不是wineprefix)情况也是如此。 有问题的日志仍然存在-尽管可以预期吗?

嗯,很好。 哈哈有点远。

以防万一,您是否可以单独尝试葡萄酒,而不是分期进行? Wine-staging具有rawinput补丁,可防止点击《质量效应:仙女座》之类的游戏。 另外,您也可以不使用rawinput补丁而重新编译Wine-stage。

我只是在这里扯开帽子,这也很可能行不通。

试酒时没有任何分期补丁:无变化。 日志当然会有所变化; 例如,我现在得到:

004c:trace:cursor:X11DRV_ButtonPress hwnd 0x3003a/a000001 button 2 pos 163,1067

...单击鼠标而不是前面的X11DRV_RawButtonEvent行,但除此之外,单击仍会被忽略。 请注意,此新测试不包括您上面的补丁(以防万一,请立即尝试)。

我只是在这里扯开帽子,这也很可能行不通。

当然-感谢您的尝试! :-)

可能是该补丁实际上可能会起作用,因为我认为问题不在于检测输入,而在于显示光标的位置以及游戏认为光标所在的位置。

如果是这种情况,游戏必须认为指针被锁定在一个非常特定的位置(可能是左上角?),因为无论您将指针移到何处,游戏似乎都没有反应。 其他一些游戏会在酒中产生问题,即指针显示在与游戏认为不同的位置,但是游戏认为与实际位置之间仍然存在一些关联。 例如,它可能会向上移动几十个像素或类似的像素。

上次使用游戏手柄时,“真实”指针似乎位于您离开的位置。 如果您从游戏手柄切换到鼠标,然后又回到游戏手柄,则光标会跳到使用游戏手柄时的最后一个位置。

如果将光标移动到游戏手柄上的按钮,然后用鼠标单击,它是否注册?

尝试过香草酒(没有分期补丁)和qsniyg的补丁,没有任何变化。

@ Krypton-Nova:我不能亲自测试,没有游戏手柄。 尽管我想像是否有一种工具可以用来模拟虚拟游戏手柄并将其映射到鼠标/键盘(类似该工具的反面),但它可以绕过鼠标问题。

编辑:可能是MoltenGamepad吗?

我有一个游戏手柄,它对我有用。 只是好奇它是否对其他人有用:)

@ Krypton-Nova是的,我可以确认使用游戏手柄移动光标并用鼠标单击确实有效。 似乎暗示该问题与移动鼠标时的鼠标跟踪有关,而不是与鼠标本身点击有关。

在控制角色的同时,仅鼠标也可以工作。 游戏可以检测鼠标的动作,但是光标的位置无法更新-基本的物理教育表明这个问题是无法解决的。 我相信Steam内置了鼠标捕获功能,如果没有人下班,我可以在下班时尝试。

基于此,并且没有插入游戏手柄,我已经将游戏传递的第二个参数的日志记录添加到GetMouseMovePointsEx( lppt )中,并且确实更新了:

0084:fixme:win:GetMouseMovePointsEx GetMouseMovePointsEx lppt: [736][694]

并在同一屏幕上,如下所示:

0084:fixme:win:GetMouseMovePointsEx GetMouseMovePointsEx lppt: [1042][656]

这表明游戏_does_知道光标在某个级别上的位置; 更奇怪的是,使用游戏手柄移动光标却无法使用鼠标。

也许GetMouseMovePointsEx函数用于鼠标平滑,并且需要返回更多点进行插值?
@qsniyg的破解只返回了1分,有人应该尝试获得2分以上。

我什至无法使游戏进入主菜单,只是在我进入加载屏幕时崩溃。

我什至无法使游戏进入主菜单,只是在我进入加载屏幕时崩溃。

相同。 我尝试了所有不同的Proton股票发行版和几个GloriousEggroll版本。

我想我很好奇的是Bannerlord对结果到底做了什么。 我的直觉是-与OpenTk错误一样- GetMouseMovePointsEx日志垃圾邮件是一个红色鲱鱼,无论处理响应的任何代码(无论是失败还是实际返回的点数)都无声地消失了。 不过,如果不看Bannerlord源代码就很难说。

也许GetMouseMovePointsEx函数用于鼠标平滑,并且需要返回更多点进行插值?
@qsniyg的破解只返回了1分,有人应该尝试获得2分以上。

添加第二点(也许是第一点的副本)似乎是可行的。 我会在本地副本上旋转一下。 像这样:

/***********************************************************************
 * GetMouseMovePointsEx [USER32]
 *
 * RETURNS
 *     Success: count of point set in the buffer
 *     Failure: -1
 */
int WINAPI GetMouseMovePointsEx(UINT size, LPMOUSEMOVEPOINT ptin, LPMOUSEMOVEPOINT ptout, int count, DWORD res) {

    if((size != sizeof(MOUSEMOVEPOINT)) || (count < 0) || (count > 64)) {
        SetLastError(ERROR_INVALID_PARAMETER);
        return -1;
    }

    if(!ptin || (!ptout && count)) {
        SetLastError(ERROR_NOACCESS);
        return -1;
    }

    FIXME("(%d %p %p %d %d) hack\n", size, ptin, ptout, count, res);
    FIXME("    Input: %d %d\n", ptin->x, ptin->y);

    if (count > 0) {
        POINT pos;
        GetCursorPos(&pos);

        ptout[0].x = pos.x;
        ptout[0].y = pos.y;
        ptout[0].time = GetTickCount();
        ptout[0].dwExtraInfo = 0;
        FIXME("    Output 0: %d %d\n", pos.x, pos.y);

        if (count > 1) {
            ptout[1].x = pos.x;
            ptout[1].y = pos.y;
            ptout[1].time = GetTickCount();
            ptout[1].dwExtraInfo = 0;
            FIXME("    Output 1: %d %d\n", pos.x, pos.y);
            return 2;
        }

        return 1;
    }

    SetLastError(ERROR_POINT_NOT_FOUND);
    return -1;
}

我什至无法使游戏进入主菜单,只是在我进入加载屏幕时崩溃。

@giantrat@NovenTheHero :你们都可以在启动选项中添加PROTON_LOG=1 (例如PROTON_LOG=1 %command% )并提供生成的~/steam-261550.log (最好是指向Pastebin或Github的链接)要旨)?

你去:要点

@NovenTheHero删除您的葡萄酒前缀,然后执行以下步骤:

  1. 将Bannerlord.exe和Bannerlord_BE.exe重命名为ManagedStarter.exe和ManagedStarter_BE.exe
  2. 运行protontricks 261550 vcrun2015
  3. 运行protontricks 261550 vcrun2017
  4. 通过winecfg为ucrtbase和api-ms-win-crt-private-l1-1-0添加本机替代
  5. 执行以下命令:
    cd /home/$USER/.steam/steam/steamapps/compatdata/261550/pfx/drive_c/windows/system32/
    wget "https://aka.ms/vs/16/release/vc_redist.x64.exe"
    cabextract vc_redist.x64.exe
    cabextract a10
  6. 启动游戏,并将控制器用于菜单。 尽管您可能会遇到一些输入问题并在保存时冻结,但这足以让您进入自定义战斗并开始战役。

@NovenTheHero如果您尚未绕过启动器,请尝试这样做(即cd "~/.steam/steam/steamapps/common/Mount & Blade II Bannerlord/bin/Win64_Shipping_Client" && mv TaleWorlds.MountAndBlade.Launcher.exe TaleWorlds.MountAndBlade.Launcher.exe.old && cp Bannerlord.exe TaleWorlds.MountAndBlade.Launcher.exe )。 或者(如果启动器适合您并且要使用它),请尝试将Bannerlord.exe复制到ManagedStarter.exe

ManagedStarter错误是因为TaleWorlds更改了EXE的名称而不必重新编译(如果我从在论坛上阅读该文件时知道的话)。

steam-261550.log
在这里,谢谢您的启动选项!

@giantrat看起来您只需要用qsniyg的补丁构建自定义的Wine / Proton,或者遵循本机覆盖步骤(请参见上面的@tkamat的评论)。

最新的更新(e1.0.1)似乎已经为我解决了启动程序问题。 不幸的是,即使按照上面提到的所有步骤操作,我什至无法使控制器正常工作(我有一个蒸汽控制器,不是典型的蒸汽控制器,可以吗?)

我也只是尝试了我的Steam控制器,但它不起作用。 我认为这是因为Steam控制器模仿了鼠标。

加上tkamat的评论,启动器现在可以使用了,但是在taleworlds介绍之后我仍然崩溃了。

NVM,再次运行后进行亮度校准! Pog。

@NovenTheHero确保将控制器的左操纵杆配置为操纵杆移动,而不是鼠标移动。 这应该够了吧。

哦,亮度屏幕上没有鼠标输入,感觉不好。 将尝试上述脚本。

@tkamat假设您指的是蒸汽控制器,所有轴均配置为操纵杆运动,而当前均未起作用...我也尝试过在HOTAS操纵杆上所有可能的疯狂轴,但没有结果。

GetMouseMovePointsEx的输出中添加第二个相同的点无效。 同样明显的是(与@ElCaconym的发现一致),该函数是使用有效的鼠标位置来调用的(即游戏清楚地知道了鼠标在某个级别上的位置); 我什至尝试将鼠标移到屏幕的四个角,并确实获得了与屏幕尺寸相对应的结果。

野性理论。

我认为OpenTK是TaleWorlds用于GUI的库,它不支持高DPI。 这是一个SLD2问题,winebus.sys也使用该问题,它是wine中的HID接口。 我的想法是,较高的默认DPI会使SLD2 / Winebus的输入过载,并且无法追赶。 因此,如果我们可以将配置中的鼠标DPI更改为更低的值,则游戏可能会拾取鼠标移动。

另一个要注意的是,在Bannerlord的葡萄酒前缀中的cmd中运行hid_test.exe(可在test.winehq.org中找到)显示检测到Wine HID鼠标和我的无线接收器,但没有其他东西。 由于udev规则,这可能只是在我这边,但我想知道是否再次由于我无法更改默认鼠标DPI(该死,华硕!已经制作了Linux配置工具!)那么,再次出现SLD2信息超载。 还是不了解它。

我让亮度选择起作用了!
@YellowApple很接近,让这两点有所区别很重要。

int WINAPI GetMouseMovePointsEx(UINT size, LPMOUSEMOVEPOINT ptin, LPMOUSEMOVEPOINT ptout, int count, DWORD res) {

    if((size != sizeof(MOUSEMOVEPOINT)) || (count < 0) || (count > 64)) {
        SetLastError(ERROR_INVALID_PARAMETER);
        return -1;
    }

    if(!ptin || (!ptout && count)) {
        SetLastError(ERROR_NOACCESS);
        return -1;
    }

    FIXME("(%d %p %p %d %d) stub\n", size, ptin, ptout, count, res);

    static LPMOUSEMOVEPOINT prev;

    if (count > 0) {
        POINT pos;
        GetCursorPos(&pos);

        ptout[0].x = pos.x;
        ptout[0].y = pos.y;
        ptout[0].time = GetTickCount();
        ptout[0].dwExtraInfo = 0;
        FIXME("    Output 0: %d %d\n", pos.x, pos.y);

        if (count > 1) {
            ptout[1].x = pos.x + 1;
            ptout[1].y = pos.y + 1;
            ptout[1].time = GetTickCount();
            ptout[1].dwExtraInfo = 0;
            FIXME("    Output 1: %d %d\n", pos.x + 1, pos.y + 1);
            return 2;
        }
        return 1;
    }

    SetLastError(ERROR_POINT_NOT_FOUND);
    return -1;
}

(或者可能是几个小时前发布的补丁,不确定在更改代码之前是否进行了测试)

编辑:不是由于补丁,此代码确实修复了它

甜! 立即重建。

遇到一些奇怪的崩溃,但成功完成了与AI的1v1对抗,因此它看起来很有希望。

到目前为止,这种调整效果很好。 能够摆放菜单,创建角色,跳过教程,回到训练营,并使用所有武器完成所有训练目标。 到目前为止,我唯一注意到的问题是,用鼠标右键旋转地图只能在一个方向上进行(即,像反向Zoolander一样,地图只会向左转,哈哈)。

我认为这里唯一剩下的烦恼是保存时的长期搁置,不幸的是,我根本没有任何线索可以找出造成这种情况的原因。

到目前为止,这种调整效果很好。 能够摆放菜单,创建角色,跳过教程,回到训练营,并使用所有武器完成所有训练目标。 到目前为止,我唯一注意到的问题是,用鼠标右键旋转地图只能在一个方向上进行(即,像Zoolander一样,地图拒绝向左转,大声笑)。

我认为这里唯一剩下的烦恼是保存时的长期搁置,不幸的是,我根本没有任何线索可以找出造成这种情况的原因。

鼠标现在是否在工作,或者您仍在使用游戏板?

有人遇到这个问题了吗?

Assertion: should not be reached at /vagrant/mono/mono/utils/mono-threads.c:1066

在角色创建之后,游戏就一直冻结我,这是我被迫杀死它之前的唯一线索。

鼠标现在是否在工作,或者您仍在使用游戏板?

:mouse:游戏手柄甚至都没有插入。

@YellowApple ,您可以尝试将函数上一次调用的点存储在静态变量中,然后将其作为索引1处的点传递。我感觉他们正在使用这两个点来计算某种鼠标增量。
现在要去睡觉了。

绝对值得一试。 我将把代码放到putz上,看看是否可以按照这些原则进行操作。 长期的解决方案最终将是拥有最多64个静态缓冲区,并在它们之间不断循环(即:实际上完全实现API调用,而不是当前的“黑手党”方法)。

这让我想起了一个问题,去年(此后已在游戏中对其进行修补),海军行动在质子方面存在问题,在更改鼠标解析上下文(从mouselook到菜单)后,它无法检测光标的位置,并且如果您有菜单打开,按住alt键并再次返回,它将检测到该菜单,然后菜单将起作用。 看起来很简单,但是有人尝试过吗?

我没有想过尝试alt-tabbing,但是我只是尝试了,不幸的是它什么也没做。 :失望:

有人知道冻结我的那个无聊的单声道错误是与Steam有关的还是与Mount and Blade有关的吗?

@YellowApple您介意解释如何以及在何处将该代码修补到wine中吗? 我对葡萄酒的编译非常陌生(但是多年来,我一直对使各种游戏在Linux上运行感兴趣),但我并没有完全理解它应该去的地方。 几个星期前,我有一个朋友全职转用Linux,她真的很期待这款游戏,所以如果我能为她工作,那就太好了。 我不认为她会很快爬回Windows,但我也不希望她对无法玩她一直期待的唯一游戏感到失望。

更改质子版本从0%开始下载,并连续两次删除31GB下载,我几乎心脏病发作了。

好的,我什至很难将其保存在磁盘上,因为每次我完全安装它时,Steam都会将其删除。 我很伤心。

我喜欢这里正在进行的出色合作,这使我无法在Steam上退款。 我不是超级技术专家,但我可以看到这里正在取得进展。 通过上面的简单操作,我几乎可以在游戏硬锁定之前完全完成角色创建,这使我可以物理地重新启动计算机,但是所有人都给我希望=)。

要保存游戏,我们可能需要让Codeweavers参与进来(基本上是Wine的核心维护者)。 希望他们注意到这个游戏的受欢迎程度并继续努力。 即使我们可以使用鼠标支持,保存挂起仍然是该游戏被评为垃圾游戏的原因。

控制器并没有提供帮助,仍然无法启动游戏,我想我正在等待一天。

@giantrat您是否尝试过重命名? Steam默认尝试启动的启动器不适合我们许多人使用。

@coltondrg有问题的源文件是dlls/user32/input.c 。 您想要找到GetMouseMovePointsEx的函数定义,并将其替换为以下内容:

(单击以显示)

/***********************************************************************
 * GetMouseMovePointsEx [USER32]
 *
 * RETURNS
 *     Success: count of point set in the buffer
 *     Failure: -1
 */
int WINAPI GetMouseMovePointsEx(UINT size, LPMOUSEMOVEPOINT ptin, LPMOUSEMOVEPOINT ptout, int count, DWORD res) {

    if((size != sizeof(MOUSEMOVEPOINT)) || (count < 0) || (count > 64)) {
        SetLastError(ERROR_INVALID_PARAMETER);
        return -1;
    }

    if(!ptin || (!ptout && count)) {
        SetLastError(ERROR_NOACCESS);
        return -1;
    }

    FIXME("(%d %p %p %d %d) hack\n", size, ptin, ptout, count, res);
    FIXME("    Input: %d %d\n", ptin->x, ptin->y);

    if (count > 0) {
        POINT pos;
        GetCursorPos(&pos);

        ptout[0].x = pos.x;
        ptout[0].y = pos.y;
        ptout[0].time = GetTickCount();
        ptout[0].dwExtraInfo = 0;
        FIXME("    Output 0: %d %d\n", pos.x, pos.y);

        if (count > 1) {
            ptout[1].x = pos.x + 1;
            ptout[1].y = pos.y + 1;
            ptout[1].time = GetTickCount();
            ptout[1].dwExtraInfo = 0;
            FIXME("    Output 1: %d %d\n", pos.x, pos.y);
            return 2;
        }

        return 1;
    }

    SetLastError(ERROR_POINT_NOT_FOUND);
    return -1;
}

如果您要构建Proton使用的Wine版本,则可以将以下内容保存到文件中(例如butterlord.patch ),将cd到Wine源树中,然后运行git apply path/to/butterlord.patch (这还包括修复字符创建后崩溃的补丁程序):

(单击以显示)

diff --git a/dlls/api-ms-win-crt-private-l1-1-0/api-ms-win-crt-private-l1-1-0.spec b/dlls/api-ms-win-crt-private-l1-1-0/api-ms-win-crt-private-l1-1-0.spec
index 668b8c02fb..58f23257e0 100644
--- a/dlls/api-ms-win-crt-private-l1-1-0/api-ms-win-crt-private-l1-1-0.spec
+++ b/dlls/api-ms-win-crt-private-l1-1-0/api-ms-win-crt-private-l1-1-0.spec
@@ -150,7 +150,8 @@
 @ stub _o___stdio_common_vfprintf_p
 @ stub _o___stdio_common_vfprintf_s
 @ stub _o___stdio_common_vfscanf
-@ stub _o___stdio_common_vfwprintf
+# PATCHED:
+@ cdecl _o___stdio_common_vfwprintf(int64 ptr wstr ptr ptr) ucrtbase._o___stdio_common_vfwprintf
 @ stub _o___stdio_common_vfwprintf_p
 @ stub _o___stdio_common_vfwprintf_s
 @ stub _o___stdio_common_vfwscanf
@@ -160,7 +161,8 @@
 @ stub _o___stdio_common_vsprintf_p
 @ cdecl _o___stdio_common_vsprintf_s(int64 ptr long str ptr ptr) ucrtbase._o___stdio_common_vsprintf_s
 @ stub _o___stdio_common_vsscanf
-@ stub _o___stdio_common_vswprintf
+# PATCHED:
+@ cdecl _o___stdio_common_vswprintf(int64 wstr long wstr ptr ptr) ucrtbase._o___stdio_common_vswprintf
 @ stub _o___stdio_common_vswprintf_p
 @ stub _o___stdio_common_vswprintf_s
 @ stub _o___stdio_common_vswscanf
diff --git a/dlls/ucrtbase/ucrtbase.spec b/dlls/ucrtbase/ucrtbase.spec
index 2251f9f56a..281e2e7c9e 100644
--- a/dlls/ucrtbase/ucrtbase.spec
+++ b/dlls/ucrtbase/ucrtbase.spec
@@ -814,7 +814,8 @@
 @ stub _o___stdio_common_vfprintf_p
 @ stub _o___stdio_common_vfprintf_s
 @ stub _o___stdio_common_vfscanf
-@ stub _o___stdio_common_vfwprintf
+# PATCHED:
+@ cdecl _o___stdio_common_vfwprintf(int64 ptr wstr ptr ptr) MSVCRT__stdio_common_vfwprintf
 @ stub _o___stdio_common_vfwprintf_p
 @ stub _o___stdio_common_vfwprintf_s
 @ stub _o___stdio_common_vfwscanf
@@ -824,7 +825,8 @@
 @ stub _o___stdio_common_vsprintf_p
 @ cdecl _o___stdio_common_vsprintf_s(int64 ptr long str ptr ptr) MSVCRT__stdio_common_vsprintf_s
 @ stub _o___stdio_common_vsscanf
-@ stub _o___stdio_common_vswprintf
+# PATCHED:
+@ cdecl _o___stdio_common_vswprintf(int64 wstr long wstr ptr ptr) MSVCRT__stdio_common_vswprintf
 @ stub _o___stdio_common_vswprintf_p
 @ stub _o___stdio_common_vswprintf_s
 @ stub _o___stdio_common_vswscanf
diff --git a/dlls/user32/input.c b/dlls/user32/input.c
index 46f78cbce8..40ed0f4692 100644
--- a/dlls/user32/input.c
+++ b/dlls/user32/input.c
@@ -1280,7 +1280,30 @@ int WINAPI GetMouseMovePointsEx(UINT size, LPMOUSEMOVEPOINT ptin, LPMOUSEMOVEPOI
         return -1;
     }

-    FIXME("(%d %p %p %d %d) stub\n", size, ptin, ptout, count, res);
+    FIXME("(%d %p %p %d %d) hack\n", size, ptin, ptout, count, res);
+    FIXME("    Input: %d %d\n", ptin->x, ptin->y);
+
+    if (count > 0) {
+        POINT pos;
+        GetCursorPos(&pos);
+
+        ptout[0].x = pos.x;
+        ptout[0].y = pos.y;
+        ptout[0].time = GetTickCount();
+        ptout[0].dwExtraInfo = 0;
+        FIXME("    Output 0: %d %d\n", pos.x, pos.y);
+
+        if (count > 1) {
+            ptout[1].x = pos.x + 1;
+            ptout[1].y = pos.y + 1;
+            ptout[1].time = GetTickCount();
+            ptout[1].dwExtraInfo = 0;
+            FIXME("    Output 1: %d %d\n", pos.x, pos.y);
+            return 2;
+        }
+        
+        return 1;
+    }

     SetLastError(ERROR_POINT_NOT_FOUND);
     return -1;

这将修补您的Wine,使其与我正在使用的完全相同。

@giantrat您是否尝试过重命名? Steam默认尝试启动的启动器不适合我们许多人使用。

是的,现在即使在上次应用了帮助后,我也收到了该死的加载屏幕崩溃。

@YellowApple您真了不起。 您粘贴的补丁文件也包含崩溃的先前补丁,对吗? (没关系,我可以阅读)我已经设法使用这些补丁进行了构建,但是游戏没有检测到计算机上的控制器,因此我无法真正走到足够远的距离来查看它是否真正有效。 另外我不确定这是否有什么区别,但是我一直在使用proton-tkg脚本(来自wine-tkg-git)编译我的构建,因此我可以将自定义补丁文件拖入并让脚本吐出一个对我来说不错的Proton可以拖到compatibletools.d中。 我想这意味着我的构建也包含所有的tkg补丁,我希望它们不会冲突或可能破坏其他东西。

只是想更新,在应用上述

编辑:因此,在进行了大约一个小时的运动后,似乎可能存在内存泄漏,因为在性能开始下降的同时,游戏不断使用越来越多的内存。 考虑到我看到一些Windows用户也抱怨性能问题,这可能是游戏本身的问题。 我有8GB的内存,所以看看内存更多的人是否会遇到这种情况可能会很有趣。

这是GetMouseMovePointsEx的稍作抛光的版本,它修复了反向Zoolander-map-rotation错误,并且-尽管仍然充斥着黑客,但很可能在上游发送了Good Enough™:

(单击以显示)

/***********************************************************************
 * GetMouseMovePointsEx [USER32]
 *
 * RETURNS
 *     Success: count of point set in the buffer
 *     Failure: -1
 */
int WINAPI GetMouseMovePointsEx(UINT size, LPMOUSEMOVEPOINT ptin, LPMOUSEMOVEPOINT ptout, int count, DWORD res) {
    static INT last_x = 0;
    static INT last_y = 0;

    if((size != sizeof(MOUSEMOVEPOINT)) || (count < 0) || (count > 64)) {
        SetLastError(ERROR_INVALID_PARAMETER);
        return -1;
    }

    if(!ptin || (!ptout && count)) {
        SetLastError(ERROR_NOACCESS);
        return -1;
    }

    if (count > 0) {
        POINT pos;
        INT out_count = 1;
        GetCursorPos(&pos);

        ptout[0].x = pos.x;
        ptout[0].y = pos.y;
        ptout[0].time = GetTickCount();
        ptout[0].dwExtraInfo = 0;

        if (count > 1) {
            ptout[1].x = last_x;
            ptout[1].y = last_y;
            ptout[1].time = GetTickCount();
            ptout[1].dwExtraInfo = 0;
            out_count = 2;
        }

        last_x = pos.x;
        last_y = pos.y;

        return out_count;
    }

    SetLastError(ERROR_POINT_NOT_FOUND);
    return -1;
}

@qsniyg :想获得荣誉并提交吗?

我目前没有该游戏,因此无法测试,但是是否有人为savegame挂起了崩溃日志? 几乎听起来像是文件许可权存在的问题。

@YellowApple您介意创建一个“如何使白痴从头开始制作游戏”指南吗?

我目前没有该游戏,因此无法测试,但是是否有人为savegame挂起了崩溃日志? 几乎听起来像是文件许可权存在的问题。

我有点怀疑这是权限问题。 游戏正在设法保存,但是保存大约需要5-10分钟,并且会一直挂起直到完成。 对我来说,这不会是一件大事,只是每次开始战斗时自动保存都会关闭,并且在大多数其他大型场景更改时

@YellowApple您介意创建一个“如何使白痴从头开始制作游戏”指南吗?

最“白痴”友好的做法:

  • 下载我正在使用的确切的Proton构建: https :
  • 贴在~/.steam/root/compatibilitytools.d
  • 解压缩( cd ~/.steam/root/compatibilitytools.d && tar xvf proton_5.0-local.tar.gz
  • 重新启动Steam
  • 右键单击库中的Bannerlord,单击“属性”,然后将Proton版本更改为“ proton_5.0-local”
  • ???
  • 利润

显然,这样做的后果自负,因为要理解,从Internet上下载,安装和运行随机二进制文件是一件危险的事情,充满了危险。 买者自负。 强烈建议您尝试克隆Proton回购,自己应用补丁并在自己的计算机上构建Proton(虽然是的,这并不是最人性化的方法,但是比信任Internet安全得多)陌生人不要从您的头骨喝酒,哈哈)。

希望我们能够早些而不是晚些时候使这些补丁上游,以便我们可以避免使用这些皱褶的,一次性的定制版本,大声笑

希望我们能够早些而不是晚些时候使这些补丁上游,以便我们可以避免使用这些皱褶的,一次性的定制版本,大声笑

至少,只要这些修补程序不会破坏其他功能,也许暂时就可以将它们放入流行的第三方Proton构建中,例如tkg或GE? :3 @GloriousEggroll吗?

@YellowApple您介意创建一个“如何使白痴从头开始制作游戏”指南吗?

最“白痴”友好的做法:

* Download the exact Proton build I'm using: https://yellowapple-misc.s3-us-west-2.amazonaws.com/proton_5.0-local.tar.gz

* Stick it in `~/.steam/root/compatibilitytools.d`

* Extract it (`cd ~/.steam/root/compatibilitytools.d && tar xvf proton_5.0-local.tar.gz`)

* Restart Steam

* Right-click Bannerlord in your library, click Properties, and change the Proton version to "proton_5.0-local"

* ???

* Profit

显然,这样做的后果自负,因为要理解,从Internet上下载,安装和运行随机二进制文件是一件危险的事情,充满了危险。 买者自负。 强烈建议您尝试克隆Proton回购,自己应用补丁并在自己的计算机上构建Proton(虽然是的,这并不是最人性化的方法,但是比信任Internet安全得多)陌生人不要从您的头骨喝酒,哈哈)。

希望我们能够早些而不是晚些时候使这些补丁上游,以便我们可以避免使用这些皱褶的,一次性的定制版本,大声笑

问题是,当我切换质子版本时,整个Bannerlord都将被删除并重新开始下载。 😤

那不应该发生的,如果您将Proton降级,它应该删除compatdata文件夹,但是它绝对不能删除整个游戏。 无论如何,您应该能够通过备份游戏文件并在更改Proton版本后还原它们来绕过重新下载。 您可以通过复制游戏安装文件夹或在Steam>备份和还原游戏中完成复制来完成此操作

保存游戏的延迟是残酷的。 我可以确认,它会在几秒钟内将系统中所有12个逻辑CPU的CPU利用率提高到100%(对我来说大约是1分钟)。 在此期间,磁盘R / W很少/不存在,因此似乎在旋转其他东西。 在进行此操作时,从控制台运行蒸汽时,我看不到任何内容打印到控制台上。.还有其他方法可以启用更多来自质子/葡萄酒的日志记录,这可能有助于在此处诊断问题?

目前正在构建GE Proton的补丁版本。 如果与此处发布的修补程序兼容,将进行报告:)

@黄苹果

您确切地应用了哪些补丁?
从您的帖子中应用git补丁就足够了吗? (我仍在下载Bannerlord,因此尚无法对其进行测试)

另外,我们是否仍需要使用此补丁绕过启动器?

黄色苹果

您确切地应用了哪些补丁?
从您的帖子中应用git补丁就足够了吗? (我仍在下载Bannerlord,因此尚无法对其进行测试)

另外,我们是否仍需要使用此补丁绕过启动器?

@elovin

看来,托管的启动程序问题已通过最新修补程序解决。 所以不行。

在这两种情况下,都无需绕过启动器,如果将Bannerlord.exe重命名为ManagedStarter.exe,启动器将可以正常工作。

@
我可以将补丁应用到稳定的wine上,而不是葡萄酒大师,因为现在存在一个有冲突的补丁(这似乎是您的补丁,但参数顺序不同?)
您的补丁已经合并了吗?

编辑:
好的,仍然需要输入补丁。

@YellowApple您介意创建一个“如何使白痴从头开始制作游戏”指南吗?

最“白痴”友好的做法:

* Download the exact Proton build I'm using: https://yellowapple-misc.s3-us-west-2.amazonaws.com/proton_5.0-local.tar.gz

* Stick it in `~/.steam/root/compatibilitytools.d`

* Extract it (`cd ~/.steam/root/compatibilitytools.d && tar xvf proton_5.0-local.tar.gz`)

* Restart Steam

* Right-click Bannerlord in your library, click Properties, and change the Proton version to "proton_5.0-local"

* ???

* Profit

显然,这样做的后果自负,因为要理解,从Internet上下载,安装和运行随机二进制文件是一件危险的事情,充满了危险。 买者自负。 强烈建议您尝试克隆Proton回购,自己应用补丁并在自己的计算机上构建Proton(虽然是的,这并不是最人性化的方法,但是比信任Internet安全得多)陌生人不要从您的头骨喝酒,哈哈)。

希望我们能够早些而不是晚些时候使这些补丁上游,以便我们可以避免使用这些皱褶的,一次性的定制版本,大声笑

它适用于我的manjaro。

大家好,

我等了很久才开始玩这个游戏。 这个游戏现在可以玩吗?

@YellowApple您介意创建一个“如何使白痴从头开始制作游戏”指南吗?

最“白痴”友好的做法:

* Download the exact Proton build I'm using: https://yellowapple-misc.s3-us-west-2.amazonaws.com/proton_5.0-local.tar.gz

* Stick it in `~/.steam/root/compatibilitytools.d`

* Extract it (`cd ~/.steam/root/compatibilitytools.d && tar xvf proton_5.0-local.tar.gz`)

* Restart Steam

* Right-click Bannerlord in your library, click Properties, and change the Proton version to "proton_5.0-local"

* ???

* Profit

显然,这样做的后果自负,因为要理解,从Internet上下载,安装和运行随机二进制文件是一件危险的事情,充满了危险。 买者自负。 强烈建议您尝试克隆Proton回购,自己应用补丁并在自己的计算机上构建Proton(虽然是的,这并不是最人性化的方法,但是比信任Internet安全得多)陌生人不要从您的头骨喝酒,哈哈)。

希望我们能够早些而不是晚些时候使这些补丁上游,以便我们可以避免使用这些皱褶的,一次性的定制版本,大声笑

在薄荷19.2上工作。 似乎目前剩下的唯一问题是每当游戏保存时所花费的残酷时间(通常对我来说是一分钟)。

大家好,

我等了很久才开始玩这个游戏。 这个游戏现在可以玩吗?

@Przygi可以玩-但分钟的等待时间(由于节省)是令人反感的。 在玩游戏之前,需要对此进行改进。

@ Rogue-Factor是否有用于额外日志记录的特殊启动选项? 现在就在这里获取日志。

Rogue-Factor是否有用于额外日志记录的特殊启动选项? 现在就在这里获取日志。

@sdegrace

在Steam中,如果您去玩游戏,请右键单击并转到属性。

然后单击设置启动选项。

输入PROTON_LOG=1 %command%

正常启动游戏。

日志将出现在您的主目录中,名为steam-{appid}.log

请注意,除修补质子外,您仍然已重命名exe文件!

  • 绕过启动器

    几点注意事项:

    the game uses Battleye Anti-Cheat - it's seemingly mandatory even if you just want to play single player. No idea if there is a launch parameter that disables it.
    

    您可以在/ Mount&Blade II Bannerlord / bin / Win64_Shipping_Client /中重命名两个.exe文件。

    rename "TaleWorlds.MountAndBlade.Launcher.exe" to "TaleWorlds.MountAndBlade.Launcher.exe_backup" (or something similar - it's just not allowed to keep its original name)
    
    rename "Bannerlord.exe" to "TaleWorlds.MountAndBlade.Launcher.exe"
    

    为了至少使游戏开始,请查看启动屏幕,然后我到达必须第一次与游戏进行交互(更改亮度设置)的地步,此时我的CPU和GPU绝对无法使用,完全与游戏互动。

  • 然后修补质子

    最“白痴”友好的做法:

    Download the exact Proton build I'm using: https://yellowapple-misc.s3-us-west-2.amazonaws.com/proton_5.0-local.tar.gz
    Stick it in ~/.steam/root/compatibilitytools.d
    Extract it (cd ~/.steam/root/compatibilitytools.d && tar xvf proton_5.0-local.tar.gz)
    Restart Steam
    Right-click Bannerlord in your library, click Properties, and change the Proton version to "proton_5.0-local"
    ???
    Profit
    

    显然,这样做的后果自负,因为要理解,从Internet上下载,安装和运行随机二进制文件是一件危险的事情,充满了危险。 买者自负。 强烈建议您尝试克隆Proton回购,自己应用补丁并在自己的计算机上构建Proton(虽然是的,这并不是最人性化的方法,但是比信任Internet安全得多)陌生人不要从您的头骨喝酒,哈哈)。

谢谢大家在这个线程上:)

@SylvainSoKette

启动器对我来说很好用!
image

@tomhobson您是否已进行了一些特定的工作才能使其正常运行,或者仅与修补的Proton一起运行应该可以?

感谢您对该线程所做的所有工作! 自游戏问世以来一直是双重引导,但我很高兴在这里取得了进步!

我的测试:

  • 运行Manjaro 19.0.2
  • 由于启动器问题,重命名的exe文件仍然在我身上发生。
  • 遵循@YellowApple指南,并在游戏中加载了经过编辑的Proton。
  • 调整音频时崩溃,但是设置确实保存了。
  • 成功创建角色后退出教程时崩溃。
  • 设法跳过了第二次尝试的教程,并进入了广告系列地图。
  • 与Windows相比,性能略有下降,但总的来说可以运行。
  • 经过测试的保存功能以及在此过程中如前所述的游戏挂起。 我的9700k的CPU最高可达90%。 保存耗时约35秒。

@tomhobson您是否已进行了一些特定的工作才能使其正常运行,或者仅与修补的Proton一起运行应该可以?

@kelytha我用了打过补丁的质子。 但我分别将Bannerlord_BE.exe和Bannerlord.exe重命名为ManagedStarter_BE.exe和ManagedStarter.exe。

万一它们更新可执行文件,使用名为ManagedStarter.exe和ManagedStarter_BE.exe的链接会更好吗?

@ Rogue-Factor新日志文件超过10GB:/我将再尝试一点。

@sdegrace它应该很好地压缩。 尝试gz'ing

大家好,
我等了很久才开始玩这个游戏。 这个游戏现在可以玩吗?

@Przygi可以玩-但分钟的等待时间(由于节省)是令人反感的。 在玩游戏之前,需要对此进行改进。

感谢你的回答!!! 很棒的家伙!!!

令我遗憾的是,每次我更改图形设置时都会崩溃,有时在需要绘制/加载复杂的3d场景(菜单屏幕或角色创建屏幕)时崩溃。
“应用程序崩溃:应用程序遇到了问题。我们需要收集必要的文件来解决问题。您现在要上传这些文件吗?”

我唯一一次进入角色创建屏幕时,性能令人震惊。
但是我想这可能是我这方面的驱动程序问题,因为我使用的是Ubuntu 18.04,没有奇特的ppa,也没有手动安装驱动程序。

Ubuntu 18.04,Core i7 6700、16go ddr4,gtx​​ 1060 3go(nvidia-driver-435)

需要注意的是:我有2个显示器,一个插入图形卡,另一个插入主板输出(由Intel HD图形处理)。 主监视器插入nvidia图形卡,然后在主监视器上渲染游戏。

更新:我设法通过逐个更改它们而没有崩溃来更改了图形设置。 但是在角色创建屏幕上仍然崩溃很多:/

好的,我构建了使用最新的wine master的proton-tkg,它只需要@YellowApple提供的补丁的input(input.c)部分。
然后我添加了符号链接,使启动器按照@tomhobson和@ Krypton-Nova的建议工作。

到目前为止,该游戏可以使用带有ACO的RADV进行工作,保存过程大约需要15秒。
但是更改设置不会使游戏崩溃(至少保存了对设置的更改)

CPU 3700X
GPU Vega 56
内存32GB
SSD三星860 evo 1TB

发行版:
Arch Linux

核心:
5.5.13-禅2-1-禅

GPU驱动程序:
台面20.0.2

更新2:

好了,将游戏运行了1个小时之后,性能实际上是相当不错的(与Windows相比),在竞技场中,帧速率非常好,帧速率为70 fps,在世界地图上,帧速率大约为50-60pfs,帧时间峰值为50ms,在城市中,帧时间约为10ms的情况下约为50-60 pfs,在实际战斗中,帧时间好的情况下约为60-80pfs(取决于地图),但偶尔会出现> 100ms的尖峰(可能是着色器编译)。

顺便说一下,我在WQHD上进行了“非常高”的设置。

嗯...所以我试着在睡觉时建立补丁的补丁,但是没有用。 我只是尝试下载您的版本@YellowApple ,所以它也行不通! :sob:(由于不起作用,我的意思是我的鼠标仍然不能让我移动并单击菜单,还没有尝试过控制器)

我是唯一一个没有工作的人吗?

对于使用补丁的GE Proton可以确认相同的内容。 我唯一的问题是每隔一秒钟启动一次,这样鼠标将不再起作用。 必须重新启动游戏一次,然后它才能再次正常运行。

@YellowApple太棒了!! :)我个人认为该补丁将比葡萄酒更适合分阶段进行(而不是将其发送到分叉,例如proton-ge等),因为葡萄酒非常严格地确保功能与视窗。

要提交葡萄酒分期,请参见: httpshttps://bugs.winehq.org/show_bug.cgi?id=36873 ,解释为什么您认为应该将其用于葡萄酒分级,然后由CC Alistair和Zebediah(葡萄酒分级的维护者)进行他们研究一下,并将其添加到葡萄酒分期中。

在此期间,我将尝试看看是否可以实现一个与Windows实现该功能相同的镜像:)

@流氓因素
https://www.dropbox.com/s/e25za0261pdco0t/steam-261550.log.gz?dl=0

在此日志中,我打开了Bannerlord,打开了一个现有的保存,保存了游戏,然后保存并退出了游戏。 显然,保存时占用的内核数量有上限-对我来说是14/16。 对我来说确实不到一分钟。 尚未遇到其他问题。

YellowApple的补丁对我有用! 现在将尝试制作角色和教程。

由于我确实是唯一一个不工作的人,因此我将进行完整的系统更新,然后再次尝试构建...也许尝试GE质子。 我确实有一个非常基本的键盘到虚拟控制器的想法,所以如果重建无法使我的鼠标正常工作,我会加以说明。

@elovin可以列出所有必需的补丁程序吗? 我想尝试根据YellowApple的建议制造质子。 不是说我不信任他们,而是我希望能够做到这一点并帮助做出贡献。 线程中有很多修补程序,因此,如果您不介意列出您使用的修补程序,我会尝试这样做。

@elovin可以列出所有必需的补丁程序吗? 我想尝试根据YellowApple的建议制造质子。 不是说我不信任他们,而是我希望能够做到这一点并帮助做出贡献。 线程中有很多修补程序,因此,如果您不介意列出您使用的修补程序,我会尝试这样做。

这是使鼠标正常工作的补丁。 目前我们没有任何其他补丁

/***********************************************************************
 * GetMouseMovePointsEx [USER32]
 *
 * RETURNS
 *     Success: count of point set in the buffer
 *     Failure: -1
 */
int WINAPI GetMouseMovePointsEx(UINT size, LPMOUSEMOVEPOINT ptin, LPMOUSEMOVEPOINT ptout, int count, DWORD res) {
    static INT last_x = 0;
    static INT last_y = 0;

    if((size != sizeof(MOUSEMOVEPOINT)) || (count < 0) || (count > 64)) {
        SetLastError(ERROR_INVALID_PARAMETER);
        return -1;
    }

    if(!ptin || (!ptout && count)) {
        SetLastError(ERROR_NOACCESS);
        return -1;
    }

    if (count > 0) {
        POINT pos;
        INT out_count = 1;
        GetCursorPos(&pos);

        ptout[0].x = pos.x;
        ptout[0].y = pos.y;
        ptout[0].time = GetTickCount();
        ptout[0].dwExtraInfo = 0;

        if (count > 1) {
            ptout[1].x = last_x;
            ptout[1].y = last_y;
            ptout[1].time = GetTickCount();
            ptout[1].dwExtraInfo = 0;
            out_count = 2;
        }

        last_x = pos.x;
        last_y = pos.y;

        return out_count;
    }

    SetLastError(ERROR_POINT_NOT_FOUND);
    return -1;
}

@YellowApple的补丁有用,非常感谢老兄。

加载时间仍然很可怕,但是游戏似乎至少可以正常工作。 看起来可能是当机的原因,有时候只是一个载入画面,它需要永远的笑声。

它在manjaro上非常有效,保存时间大约为5到10秒,但是当我第一次加载地图时,着色器计算似乎会使游戏崩溃(约1/5几率)。 某些设置崩溃了,但是崩溃后得到了应用,因此很不错。 感谢您的工作!

@elovin可以列出所有必需的补丁程序吗? 我想尝试根据YellowApple的建议制造质子。 不是说我不信任他们,而是我希望能够做到这一点并帮助做出贡献。 线程中有很多修补程序,因此,如果您不介意列出您使用的修补程序,我会尝试这样做。

我使用了来自proton-tkg的构建脚本(克隆了tkg PKGBUILD repo ),并将补丁添加到wine-tkg-git / wine-tkg-userpatches / bannerlord.mypatch(tkg将搜索“ mypatch”文件扩展名,所以是的)必须将其实际命名为YOUR_PATCH_NAME.mypatch)

bannerlord.mypatch只包含来自@YellowApple为Input.c中的补丁和那唯一的补丁

我申请了(葡萄酒git master不需要@YellowApple提供的完整补丁):

diff --git a/dlls/user32/input.c b/dlls/user32/input.c
index 46f78cbce8..40ed0f4692 100644
--- a/dlls/user32/input.c
+++ b/dlls/user32/input.c
@@ -1280,7 +1280,30 @@ int WINAPI GetMouseMovePointsEx(UINT size, LPMOUSEMOVEPOINT ptin, LPMOUSEMOVEPOI
         return -1;
     }

-    FIXME("(%d %p %p %d %d) stub\n", size, ptin, ptout, count, res);
+    FIXME("(%d %p %p %d %d) hack\n", size, ptin, ptout, count, res);
+    FIXME("    Input: %d %d\n", ptin->x, ptin->y);
+
+    if (count > 0) {
+        POINT pos;
+        GetCursorPos(&pos);
+
+        ptout[0].x = pos.x;
+        ptout[0].y = pos.y;
+        ptout[0].time = GetTickCount();
+        ptout[0].dwExtraInfo = 0;
+        FIXME("    Output 0: %d %d\n", pos.x, pos.y);
+
+        if (count > 1) {
+            ptout[1].x = pos.x + 1;
+            ptout[1].y = pos.y + 1;
+            ptout[1].time = GetTickCount();
+            ptout[1].dwExtraInfo = 0;
+            FIXME("    Output 1: %d %d\n", pos.x, pos.y);
+            return 2;
+        }
+        
+        return 1;
+    }

     SetLastError(ERROR_POINT_NOT_FOUND);
     return -1;

好吧,对于未来的无畏之,请注意

“ PKGBUILD将仅在可以访问pacman和makepkg的发行版上工作”,因此,这可能不适用于基于debian的发行版,除非您愿意进一步定制它。

我要尝试没有它。

我购买了游戏并安装了该游戏,并使用了说明中的方法(是的,下载特殊的质子,是的,不安全,但是正在测试),将其设置为使用新的-local,仍然无法启动。
我看到其他人正在启动该启动器,而没有重命名任何内容以跳过它……但是也许他们有较早版本应用的其他修复程序,这是一个全新的版本。 我缺少什么(到目前为止,我们可以将其添加到顶部的替代方法中)吗?

@aradapilot据我所知,仍然需要重命名,至少对于大多数人而言,但这不是绕过启动器的第一个重命名。
重命名仍使用启动器:
将Bannerlord.exe和Bannerlord_BE.exe重命名为ManagedStarter.exe和ManagedStarter_BE.exe。

对任何感兴趣的人注意:我终于设法通过重命名的exe和更新的质子使其“起作用”。 事实证明, nvidia-driver-440是强制性的,因为nvidia-driver-435导致角色创建屏幕中几乎95%的时间崩溃。 虽然性能仍然很糟糕,但是我还没有在Windows上尝试过,所以我不知道它是否与linux有关,还是我的计算机完全是垃圾:)

要提交葡萄酒分期,请参见: httpshttps://bugs.winehq.org/show_bug.cgi?id=36873 ,解释为什么您认为应该将其用于葡萄酒分级,然后由CC Alistair和Zebediah(葡萄酒分级的维护者)进行他们研究一下,并将其添加到葡萄酒分期中。

做完了谢谢!

在此期间,我将尝试看看是否可以实现一个与Windows实现该功能相同的镜像:)

甜。 之前我做了一些深入的研究,但是我无法准确地了解Wine是如何获得鼠标输入的(以及可以对GetMouseMovePointsEx有用的方式存储在哪里)。 我也不完全确定X11(或Wayland或Quartz或与Wine一起使用的无数其他显示系统)是否具有等效功能。

对于Mesa 20.0,AMD RX 580显卡上的RADV + ACO,性能对我来说还算不错(例如,在移至新场景时会有些停顿,但清除速度很快)。 到目前为止,修补补丁以使鼠标输入正常工作后,我遇到的唯一问题是保存游戏延迟。

@craftyguy你有多少RAM? 游戏对我来说可以正常工作30分钟左右,但是之后性能开始迅速下降,RAM使用率开始增加。 我只有8 GB,因此尝试找出是否是问题所在。

@tkamat我注意到游戏RAM的“稳定状态”似乎在我的机器(具有32GB)上约为19-20GB。 这与图形设置无关(都尝试了绝对最高和绝对最低)。

好吧,对于未来的无畏之,请注意

“ PKGBUILD将仅在可以访问pacman和makepkg的发行版上工作”,因此,这可能不适用于基于debian的发行版,除非您愿意进一步定制它。

我要尝试没有它。

您可以在arch linux docker容器中运行makepkg(也许我会为此做一个简单的脚本),然后从生成的tar球中解压缩质子版本(arch包只是tar球)。
我自己打开质子版本的包装,不安装整个系统。

@tkamat我第二个@YellowApple的评论。 我也有32GB,并且已经注意到在运行游戏时它可以达到20GB的利用率。

因此,似乎您的性能问题与可用RAM有关。 这似乎是题外话,因为这可能是游戏本身的问题,而不是特定于质子/葡萄酒。

因此,看起来protontricks 261550 dotnet48大大改善了保存挂起(游戏挂起几秒钟而不是几分钟)。 感谢reddit用户/ u / TheCaconym报告!

另外,在某个时候Steam会更新游戏并吹走我的重命名,但是启动器还是可以使用的。 甚至不必执行Bannerlord.exeManagedStarter.exe重命名。

距Harvesting Season™不到一周,Bannerlord已经接近Linux和Windows之间的平价。 晕!

一旦这些补丁进入,黄油将自由流动。

@黄苹果

我无法准确了解Wine如何获得鼠标输入

它通常通过dlls / user32 / message.c中的send_hardware_message将其发送到服务器,并且光标位置最终将发送到update_desktop_cursor_pos 。 这可能是我们应该在新功能中添加实现的地方(可能使用静态环形缓冲区来存储64个条目?)。

烦人的部分是声明一个新的服务器请求以检索游标位置。 我以前没有做过,但是我想这是在queue.c + request.h中创建它,在protocol.def中说明它,然后运行tools/make_requests

接下来的问题是,将游标位置筛选任务委托给服务器还是在用户空间中进行? 我个人会选择后者,但是由于它有很多条目(可能要发送大约1KB的数据),并且过滤代码不会太复杂,因此值得在服务器中执行。

我可以确认dotnet48可以加快保存速度。
我是幸运的人之一,保存只花了大约10秒钟,但现在节省了大约2秒钟。

@ albin-engstrom是否为您安装在SSD或HDD上? 有时会发现场景之间的加载时间非常长。 当前正在安装dotnet48。

我玩的时间越长,性能就会大大降低。 希望这只是游戏中的错误。

在Windows上,演奏时性能下降现在也是一个问题(内存泄漏-开发人员IIRC承认)。

@nilleairbar在NVMe SSD上,因此速度相当快。 但这似乎至少不是节省时间是由于读取或写入,而是由CPU起作用。 它从播放时的30%负载增加到保存时的60%。
因此,可能是更强大的CPU(3900X)在某种程度上缩短了保存时间。

@ albin-engstrom可能就是这样。 使用dotnet48和i7 8700K,在这里节省时间也不到2秒。

我使用的是1700X,现在安装dotnet48之后,保存时间大约需要20到30秒,而不是2到3分钟,但是现在性能在保存之后会花费一段时间。

我在较旧的i5上获得了类似的结果,现在要保存约30秒

因此,现在我在战斗后一进入囚徒屏幕,便突然崩溃( wine: Unhandled page fault on execute access to 00000000007501C8 at address 00000000007501C8 (thread 0042), starting debugger... )。 不确定是否是使用dotnet48 。 还不确定它是否会影响所有战斗,或者仅影响特定组的掠夺者(或一般而言,掠夺者)。 一旦缩小范围,我将放置一些日志。

@YellowApple我与

最“白痴”友好的做法:

  • 下载我正在使用的确切的Proton构建: https :
    ....

我执行了这些确切的步骤,游戏启动了,但是当它在第一次启动时要求我滑动亮度滑块时,它没有注册任何输入(除了鼠标移动以外)。

在我尝试切换菜单中的“显示攻击方向”设置之前,游戏运行良好。
关闭菜单后,游戏立即崩溃,出现“您遇到错误,请上传日志”消息。 当窗口关闭时,Steam仍然认为游戏正在运行,因此我无法通过Steam重新启动。

我正在将https://yellowapple-misc.s3-us-west-2.amazonaws.com/proton_5.0-local.tar.gz用于质子

系统信息:
内核:5.5.13-arch2-1
操作系统:Arch Linux
处理器:AMD Ryzen 7 3700X 8-Core
GPU:AMD NAVI10
GPU驱动程序:4.6 Mesa 20.0.2
内存:32 GB

在我尝试切换菜单中的“显示攻击方向”设置之前,游戏运行良好。
关闭菜单后,游戏立即崩溃,出现“您遇到错误,请上传日志”消息。 当窗口关闭时,Steam仍然认为游戏正在运行,因此我无法通过Steam重新启动。

我正在将https://yellowapple-misc.s3-us-west-2.amazonaws.com/proton_5.0-local.tar.gz用于质子

系统信息:
内核:5.5.13-arch2-1
操作系统:Arch Linux
处理器:AMD Ryzen 7 3700X 8-Core
GPU:AMD NAVI10
GPU驱动程序:4.6 Mesa 20.0.2
内存:32 GB

更改视频设置时,一开始我遇到了多次崩溃,只是终止进程并重新开始游戏。

报告:游戏运行正常,并在我的计算机上节省了大约1分钟的时间。 使用解决方法,并将其重命名为“托管”。 在亮度屏幕上,我为我选择了良好的设置,然后退出主菜单上的游戏。 然后,我完成了教程,更改了一些其他设置,并且大多数图形设置仍处于high +位置。 性能一般(大约30-40 FPS)。 到目前为止,我还没有经历过任何崩溃,但是只是退出了教程并遇到了难民。 感谢所有人,开发人员,测试人员,Valve和Taleworlds将我们带到这里。

系统信息:
操作系统:Debian 10(buster)
内存:16GB
处理器:Ryzen 2700X
GPU:AMD 580X
驱动程序:Debian 10(Mesa 18.3.6)

在我尝试切换菜单中的“显示攻击方向”设置之前,游戏运行良好。
关闭菜单后,游戏立即崩溃,出现“您遇到错误,请上传日志”消息。 当窗口关闭时,Steam仍然认为游戏正在运行,因此我无法通过Steam重新启动。
我正在将https://yellowapple-misc.s3-us-west-2.amazonaws.com/proton_5.0-local.tar.gz用于质子
系统信息:
内核:5.5.13-arch2-1
操作系统:Arch Linux
处理器:AMD Ryzen 7 3700X 8-Core
GPU:AMD NAVI10
GPU驱动程序:4.6 Mesa 20.0.2
内存:32 GB

更改视频设置时,一开始我遇到了多次崩溃,只是终止进程并重新开始游戏。

我杀死了蒸汽过程,再次开始打旗,令人惊讶的是,我更改的设置仍然保持不变。

@elovin刚尝试对付一群山地匪徒,它在同一地点坠毁。 供参考的日志: steam-261550.log (不包括+seh因为dotnet48散布了各种各样的东西)。

将尝试使用相同的保存且没有dotnet48的新前缀,然后查看问题是否仍然存在。 如果没有,那么我想我们要么必须解决.NET bug的问题,要么我们将花很长的时间回到制图板上。

@ onodera-punpun如果您可以在启动选项中添加PROTON_LOG=1并提供生成的~/steam-261550.log ,那将会很有帮助。

@YellowApple用winetricks安装dotnet48后,我在加载上一个游戏“加载用不同模块保存的游戏”或类似的消息时收到一条消息,因此也许可以使用新游戏。

节省时间对我来说还不到15秒,到目前为止,还没有发生与抢劫犯有关的崩溃

@elovin是在更新到1.0.1后加载1.0.0保存后的标准消息; 也许这就是起源(仅当事实证明您在dotnet48之后加载了1.0.0保存并且您已经更新至1.0.1时才相关)?

@YellowApple的价值,用我的dotnet48前缀打完一场战役(与许多战俘进行了多次战役)后,进入囚犯屏幕时,我没有遇到任何崩溃。 到目前为止,我的大部分战斗都是针对掠夺者的,还没有山匪。

@ onodera-punpun很奇怪,什么都没有。 您不会碰巧插入任何控制器或其他可能会干扰的内容,对吗?

@elovin我认为这与更新的游戏版本(刚删除的1.0.2)有关。

@ElCaconym很高兴知道。 在相同的条件下,使用新的非dotnet48前缀进行的相同保存会崩溃,因此至少我可以排除这种情况。 可能只是保存文件损坏了(如果论坛很重要,即使在Windows上,这似乎也是一个常见问题)。 (编辑:的确,至少在目前有dotnet48的新游戏下,我至少可以在不坠毁的情况下抓住囚犯)

@YellowApple我以为可能是我的窗口管理器,所以我尝试在没有任何WM的X实例中运行游戏,但这不能解决问题。 我只有一个普通的USB键盘和鼠标,仅此而已。

编辑:我在引擎配置中将brightness_calibrated设置

EDIT2:我关闭了enable steam play for all other titles ,这似乎可以解决它。 不知何故,这淹没了我强行设置的自定义质子的使用。

其他人在尝试运行多人游戏时是否会遇到登录失败的问题? 经过长时间的等待,它只会向我抛出那些“登录失败”消息。

@YellowApple @ElCaconym是的,由于更新,您是正确的。

其他人在尝试运行多人游戏时是否会遇到登录失败的问题? 经过长时间的等待,它只会向我抛出那些“登录失败”消息。

自从他们在测试版的早期添加了Batlleye以来,我还没有听到任何人能够运行多人游戏的报道。

我们在Bannerlord上运行多人游戏的几率是多少? 我以前经常在Ubuntu上在线玩Warband。

如此,我看到了关于dotnet48的注释并安装了它,与此同时,我注意到Steam将游戏更新为1.0.2,现在它在最小图形(卡为1070)上的任何东西上都结结巴巴,并且在开放世界中移动时不断崩溃。 annnnd,因为这里有两个变量,我无法确定是导致补丁的原因还是补丁或dotnet的原因。 关于寻找什么线索? 或者如何在没有dotnet的情况下重置我的质子环境以进行测试?

@aradapilot :我在dotnet48 + 1.0.2上运行正常(播放了30分钟左右没有问题)。 可能是保存腐败问题? 也许暂时尝试新游戏进行确认? 这里也是1070。

@aradapilot是的,我刚刚做了一些测试,似乎dotnet48确实大大减少了保存时间,但保存后它还会引入大量的卡顿现象,这种现象一直持续到您重新启动游戏为止。 而没有dotnet48,游戏在保存之前和之后对我来说都很流畅。 如果出现此问题,IDK仅会影响功能较弱的系统/只有8 GB RAM的用户,但是它非常奇怪。

好了,在电脑重启之后,如果在任何战斗结束时游戏便崩溃了,并且现在的加载时间更好了,如果您退出游戏,酒类服务器是否不会退出?

@tkamat在这里获得了32G的存储空间,这在

@aradapilot我有同样的问题
@ElCaconym除了重命名,修改补丁和添加dotnet480之外,还进行了其他任何修改吗?
@tkamat是的,第一次进入游戏之前,第一次保存会按预期运行。 我有一个功能强大的32 GB系统,但在很低的设置下它仍然会开始出现卡顿现象,因此我认为您的系统没有造成这种情况

@tkamat我也注意到了。 似乎主要限于地图视图; 打架,在城镇/村庄四处走走等似乎更好。

@elovin有趣。 这是现有的保存还是新的广告系列?

@aradapilot有不幸的是没有简单的方法来安装通过反向东西protontricks 。 最好的选择是备份您的保存,删除或重命名~/.steam/steam/steamapps/compatdata/261550 ,运行一次游戏以重新生成所有内容,然后将您的保存复制回来。

@elovin wineserver _should_最终停止; 偶尔没有(特别是当崩溃发生/退出时应用程序挂起)。 可以使用“ killall wineserver”或“ wineserver -k”(在后面的情况中定义了正确的WINEPREFIX)来确保它。

@ simi2525没什么

其他人在尝试运行多人游戏时是否会遇到登录失败的问题? 经过长时间的等待,它只会向我抛出那些“登录失败”消息。

自从他们在测试版的早期添加了Batlleye以来,我还没有听到任何人能够运行多人游戏的报道。

我们在Bannerlord上运行多人游戏的几率是多少? 我以前经常在Ubuntu上在线玩Warband。

加入Battleye后,该游戏仅修复了几个补丁,因为它们仍然允许您在未启用游戏的情况下加入游戏。 最近两周是封闭的Beta停止在Linux上运行的时候,这可能与他们使Battleye成为必需的时间巧合。 我认为,对于Linux本机发行版,我们可以寄希望于的最好的是taleworld超越了对葡萄酒安装或切换到VAC的严格审查。 由于某些内核空间问题,Battleye质子兼容性可能不在考虑之列。

@YellowApple这是一个现有的保存,我现在开始一个新游戏,现在它不再崩溃。

知道保存文件在哪里,哈哈?

@NovenTheHero .steam / steam / steamapps / compatdata / 261550 / pfx / drive_c / users / steamuser / My \ Documents / Mount \和\ Blade \ II \ Bannerlord / Game \ Saves / Native /

我编写了一些快速脚本来自动执行此处和在ProtonDB上讨论的各种修补

@YellowApple WineHQ认为是输入问题的原因; 如果这是您已解决的问题,您可以在此交叉发布吗?
编辑:没关系,似乎您已经拥有了。 :)

在人们删除质子前缀之前,请确保没有游戏设置使用该前缀,因为如果我没记错的话,这会引起问题。

谢谢大家为此所做的工作。 很高兴看到Linux社区能够快速解决问题并向上游发送补丁! 我根据先前发布的教程编译了一个改进的质子版本,效果很好。

对我来说,没有dotnet48的保存时间也很长,同时安装该库对我来说也是如此。 我确实遇到了其他人已经讨论过的一些性能问题。 昨晚我确实注意到我的xorg-session.log文件正在过度增长,最大达到25GB。 我无法测试此问题是否与Bannerlord有关。 晚上会测试更多。

我编写了一些快速脚本来自动执行此处和在ProtonDB上讨论的各种修补

* [config-bannerlord-for-linux.bash](https://github.com/MilesBHuff/Misc-code/blob/master/code/setup/wine/config-bannerlord-for-linux.bash)

* [config-steam-for-bannerlord.bash](https://github.com/MilesBHuff/Misc-code/blob/master/code/setup/wine/config-steam-for-bannerlord.bash) (@YellowApple)

不能用鼠标光标固定亮度屏幕吗? 至少对我来说。

也许有人可以对此进行测试,但是现在,访问任何铁匠铺都会导致保存游戏损坏,因此我的平均速度为15 fps,但仅在广告系列地图上,其他所有功能都可以正常工作。

编辑:重新启动游戏或计算机后,此问题仍然存在。

我确实去了一个铁匠铺,什么也没发现。
(使用yellowapple的质子构建并具有32GB的RAM)

EDIT2:我关闭了enable steam play for all other titles ,这似乎可以解决它。 不知何故,这淹没了我强行设置的自定义质子的使用。

废话...这一直是我的问题! 现在补丁正在为我工​​作! 我什至让我的文件隔夜进行验证以摆脱重命名,甚至启动器也可以工作。

我已经尝试了YellowApple的Proton,安装了dotnet48,但是在创建角色后,它仍然使我的WM崩溃了。

/编辑
这是我发现与此有关的WM崩溃错误。 它不会崩溃我的WM的时间,整个系统冻结。 i5-3570k,AMD RX 580和32GB RAM

内核:[34245.701791] [ drm:amdgpu_job_timedout [amdgpu]]错误gfx超时,但已软恢复

我可以确认添加dotnet48可以解决我的节省时间问题。 播放数小时后,它从最初的60s变为90s +,最大CPU使用率降至<20秒,并且保存时CPU不再耗尽。

现在,战役图中没有一个持久的微断头,战斗似乎没有问题。 在这种状态下令人讨厌,但绝对可以玩。 32GB RAM / 1070ti,大概不是规格,但我稍后会尝试一些选项。

@evopls基本上是我面临的相同问题。 广告系列地图上错误的fps和微动,其他所有场景基本上都没有问题。 我使用的是1070,内存为16GB。

编辑:好的,通过wine-tkg通过酒阶段中包含的补丁做了一个新的Proton版本,现在可以立即使用。 如果未安装dotnet48,则除了保存(已讨论的问题)外,其他所有操作都很顺利。 现在将安装dotnet48,以查看这是否是广告系列地图上卡顿体验的元凶。

@nilleairbar我为我注意到重新启动游戏时口吃不见了,但是第一次保存(手动或通过自动保存)再次触发了它。 性能选项没有影响。

@ekaats

不能用鼠标光标固定亮度屏幕吗? 至少对我来说。

是啊,就是。 我用config-bannerlord-for-linux.bash修改的三个配置行来自输入修复可用之前。 我将评论脚本中不推荐使用的部分。

感谢脚本@MilesBHuff ,它非常有用,它的确使我进入了主菜单。
我已经尝试收集信息,但是无法播放Campaign,对吗? 有些人设法做到了,这与最新的补丁有关吗?

@ Haywire-dev完全可以玩Campaign。 最大的问题是savegame的“错误”,导致最多需要几分钟的时间进行保存。 通过protontricks或类似方法安装dotnet48可以缓解这种情况,但可能会导致广告系列地图上出现一些性能问题(请参阅我或evopls的文章)。

编辑:哦,忘了提及,您当然需要一个Proton版本,该版本包含本期提到的wine补丁,或者基于所应用补丁附带的最新wine-staging版本。

@nilleairbar

编辑:哦,忘了提及,您当然需要一个Proton版本,该版本包含本期提到的wine补丁,或者基于所应用补丁附带的最新wine-staging版本。

我敢肯定我会为此感到沮丧,但是我如何才能确保我拥有正确的质子呢? 在游戏/ WM /计算机崩溃之前,我已经进行过角色创建。 我猜OP / YellowApple的5.0-local还没有包含(还)吗?

浏览菜单/创建字符时,我也偶尔会崩溃。 最终,它似乎以一种不稳定的方式起作用了,并且菜单中的鼠标至少没有明显起作用。 尚未在游戏中测试。

我敢肯定我会为此感到沮丧,但是我如何才能确保我拥有正确的质子呢? 在游戏/ WM /计算机崩溃之前,我已经进行过角色创建。

现在,最简单的版本将使用Proton @YellowApple共享的版本。 最安全的选择是使用https://github.com/Frogging-Family/wine-tkg-git之类的内容自行构建

现在,最简单的版本将使用Proton @YellowApple共享的版本。 最安全的选择是使用https://github.com/Frogging-Family/wine-tkg-git之类的内容自行构建

是的,我目前正在使用YellowApple的Proton,并且已重命名了两个.exe,但仍然无法摆脱角色创建的麻烦。 我现在正在研究wine-tkg的东西,也许会有所帮助。

否则,我只是在这里留意其他尝试。

@evopls ,如果您有兴趣,请立即进行一些测试,发现卡顿现象似乎是由dotnet48引起的。 我将暂时不使用它,并且有很长的保存时间,而不是竞选地图上的那种停顿。

Dotnet48对我来说完全毁了它……甚至无法开始游戏。 我已卸载,但仍然面临与其他广告系列相同的问题。

出于好奇@ Foobar1923您正在使用什么图形驱动程序?

我有一张nvidia卡,因此您可能有所不同,但是即使我使用的是最近的显卡,也必须更新我的显卡驱动程序。 我大部分时间都从完全崩溃转为可玩,但是在某些屏幕上出现帧速率问题(在所有屏幕上都有人物特写镜头,也许与地下散射有关?)。

@SylvainSoKette

我正在使用股票amdgpu。 我已经更新了我的葡萄酒/ netnetricks /葡萄酒分期等,并且台面(应该)是最新的以及俗世的。

关于其中一些补丁开始撞向上游葡萄酒的猜测,直到这些补丁被拉进Proton需要多长时间?

@CrafterSvK可以肯定,这是Proton 5.0的默认设置,不是吗?

@CrafterSvK可以肯定,这是Proton 5.0的默认设置,不是吗?

是的,我忘了。 无论如何,每次我在战斗结束时单击继续都会崩溃。

我也没有在这个线程中提到安全模式。 每当我打开“聚会”菜单时,我的游戏就会崩溃,但是重新启动时会询问我是否要以安全模式启动,如果我回答“是”,它将不再崩溃。

这里的其他所有人都使用安全模式吗?

我尚未尝试安全模式; 它实际上是做什么的? 我的假设是(像大多数游戏一样)它只是降低了图形设置,但是现在您让我想知道它是否还在进行一些额外的异常处理或运行时安全检查。

编辑:继续尝试。 看起来它只是将engine_config.txt重置为默认值。 甚至不禁用mod。

我也没有在这个线程中提到安全模式。 每当我打开“聚会”菜单时,我的游戏就会崩溃,但是重新启动时会询问我是否要以安全模式启动,如果我回答“是”,它将不再崩溃。

这里的其他所有人都使用安全模式吗?

我至少会尝试一下,但是我没有选择。 只是WM / PC崩溃。

我一直在尝试一些事情,到目前为止,我已经得出了与其他结论相同的结论。 dotnet48似乎可以解决保存问题,但会使游戏的其余部分变得不稳定。

使用dotnet48时,保存,加载,进入战役和城镇时发生崩溃。 其中一些是崩溃到桌面的,有些则挂起了进程。

没有dotnet48的情况下,我实际上已经可以玩游戏,而没有很多其他问题,只是在节省CPU使用率达到100%的情况下持续了1:40分钟(在Ryzen 1700上)。 之后,一切恢复正常,我可以继续进行。

请注意,游戏会在某些特定时刻进行保存。 我注意到在战斗时(在显示选择与自己战斗或让骰子决定的屏幕之前),有时甚至在离开城镇或进行任务后,它都可以节省。

现在,我正在针对安装的Visual Studio 2017使用可再发行组件进行测试。 到目前为止,这似乎没有任何关系。

我的图形设置是最高的,安全模式不会更改它们。
除了缺少崩溃之外,我没有其他区别。
(我没有使用dotnet48,因为游戏甚至无法启动)

好吧,它在我的机器上以安全模式崩溃。

@Xxdzs我也有这些,因为我正在使用dotnet48,但前提是我在加载后立即打开菜单。 如果我先玩一点,那感觉会很稳定。

总的来说,与没有dotnet48的较长保存时间相比,竞选地图上的一点点停顿对我来说感觉要好得多,但这可能是个人喜好。 不知道这两个问题中的哪个更容易解决。

在没有dotnet48并绕过启动器的情况下进行了一些测试。

肯定某些菜单仍然崩溃,花费超过45秒后有时保存仍然崩溃。 广告系列地图的效果很好,几乎没有滞后,尽管在游戏加载某些资产和菜单时肯定有一些时髦的事情。 曾经有一个朋友在他的Intel CPU上也尝试过,我们都发现尝试访问某些菜单以及通常的延迟会导致CPU使用率出现小幅峰值。

禁用子空间散点似乎对使用dotnet48的某些区域有所帮助,尽管与不使用dotnet48的情况相比,具有此修复程序显然更稳定。

编辑:没关系,没关系,虽然在帮助稳定方面会有所帮助,但在大多数情况下,这场比赛对我来说仍然是一个不稳定的烂摊子。 经过约4-5次游戏内对话后,游戏将锁定并崩溃。

每次崩溃都使我指向NTQueryInformationThread。

41819.290:0035:00c4:trace:seh:dump_unwind_info     handler 0x64478533758 data at 0x64478648688
41837.875:0035:00c6:fixme:thread:NtQueryInformationThread ThreadIsIoPending info class not supported yet
41837.875:0035:00cb:fixme:thread:NtQueryInformationThread ThreadIsIoPending info class not supported yet
41837.876:0035:00c9:fixme:thread:NtQueryInformationThread ThreadIsIoPending info class not supported yet
41838.732:0035:00c7:fixme:thread:NtQueryInformationThread ThreadIsIoPending info class not supported yet
41838.733:0035:00c1:fixme:thread:NtQueryInformationThread ThreadIsIoPending info class not supported yet
41838.829:0035:00bd:fixme:thread:NtQueryInformationThread ThreadIsIoPending info class not supported yet
41838.830:0035:00ca:fixme:thread:NtQueryInformationThread ThreadIsIoPending info class not supported yet
41838.925:0035:00c2:fixme:thread:NtQueryInformationThread ThreadIsIoPending info class not supported yet
41838.925:0035:00be:fixme:thread:NtQueryInformationThread ThreadIsIoPending info class not supported yet
41839.022:0035:00cc:fixme:thread:NtQueryInformationThread ThreadIsIoPending info class not supported yet
41839.023:0035:00bf:fixme:thread:NtQueryInformationThread ThreadIsIoPending info class not supported yet
41839.023:0035:00c3:fixme:thread:NtQueryInformationThread ThreadIsIoPending info class not supported yet
41839.119:0035:00cd:fixme:thread:NtQueryInformationThread ThreadIsIoPending info class not supported yet
41839.122:0035:00c5:fixme:thread:NtQueryInformationThread ThreadIsIoPending info class not supported yet
41839.122:0035:00ce:fixme:thread:NtQueryInformationThread ThreadIsIoPending info class not supported yet
41839.312:0035:00ba:fixme:thread:NtQueryInformationThread ThreadIsIoPending info class not supported yet
41839.312:0035:00c4:fixme:thread:NtQueryInformationThread ThreadIsIoPending info class not supported yet
41839.313:0035:00bc:fixme:thread:NtQueryInformationThread ThreadIsIoPending info class not supported yet
41839.313:0035:00c8:fixme:thread:NtQueryInformationThread ThreadIsIoPending info class not supported yet
41849.393:0024:0028:trace:loaddll:free_modref Unloaded module L"C:\\windows\\system32\\drivers\\WineUsd.sys" : builtin
41849.396:001c:0020:trace:loaddll:free_modref Unloaded module L"C:\\windows\\system32\\drivers\\winehid.sys" : builtin
41849.396:001c:0020:trace:loaddll:free_modref Unloaded module L"C:\\windows\\system32\\hidclass.sys" : builtin
41849.397:001c:0020:trace:loaddll:free_modref Unloaded module L"C:\\windows\\system32\\drivers\\winebus.sys" : builtin
41849.521:007b:007c:fixme:ntdll:EtwEventUnregister (deadbeef) stub.
41849.541:0074:0075:fixme:ntdll:EtwEventUnregister (deadbeef) stub.
pid 155001 != 155000, skipping destruction (fork without exec?)

第二次编辑:

在更改了一些内容并从tkg进行修补之后,尽管在运动图中的表现是十几岁的年轻人,无论选择哪种较低的图形设置,80%的时间都出现严重的卡顿现象,但在稳定性方面的表现还是不错的。

看起来这里的一切已经平静下来,这必须意味着我们大多数人都喜欢这款游戏。 我在没有dotnet48的相当强大的设备上运行,除了大约30秒的保存时间外,我还没有遇到过一次崩溃。

一定要好,从我所看到的来看,有很多人要么在竞选地图上陷入了严重的口吃,要么对话菜单/保存导致了CTD的保存,并且损坏了保存,有少数人根本无法进入铁匠铺。

就我自己而言,与匪徒交谈的结果是10%的CTD,我在战役地图上出现了严重的口吃,但是除了不时打friend之外,战斗比我朋友的Windows计算机更流畅。

希望随着时间的流逝,事情将得到解决,并且要尽早进入。 毕竟,我们也在Windows中看到很多此类问题。 因此,令我惊讶的是Bannerlord甚至在WINE上的运行效果也像现在一样好。

游戏运行良好,但我陷入无限的加载屏幕并出现此错误
error

看起来这里的一切已经平静下来,这必须意味着我们大多数人都喜欢这款游戏。 我在没有dotnet48的相当强大的设备上运行,除了大约30秒的保存时间外,我还没有遇到过一次崩溃。

一定要好,从我所看到的来看,有很多人要么在竞选地图上陷入了严重的口吃,要么对话菜单/保存导致了CTD的保存,并且损坏了保存,有少数人根本无法进入铁匠铺。

就我自己而言,与匪徒交谈的结果是10%的CTD,我在战役地图上出现了严重的口吃,但是除了不时打friend之外,战斗比我朋友的Windows计算机更流畅。

希望随着时间的流逝,事情将得到解决,并且要尽早进入。 毕竟,我们也在Windows中看到很多此类问题。 因此,令我惊讶的是Bannerlord甚至在WINE上的运行效果也像现在一样好。

您是否尝试过在完全干净的质子环境中进行测试? 您可以运行protontricks 261550 annihilate 。 它不会删除您的保存。 我的借口是,如果该建议类似于“您是否尝试过将其关闭然后再打开”,它确实对我有所帮助。

在没有dotnet48的情况下玩游戏时,我没有遇到过崩溃,只是尝试更改设置会导致立即崩溃。

@ mjm2000游戏本身有很多错误。 我也遇到了Windows 10上的无限加载屏幕

@montyubuntu游戏是否已更新至最新版本? 我和其他人(我相信)在ManagedStarter的问题仅出现在e1.0.0.0版上

@montyubuntu游戏是否已更新至最新版本? 我和其他人(我相信)在ManagedStarter的问题仅出现在e1.0.0.0版上

我刚刚检查了一下,葡萄酒阶段中现在包含了鼠标修复程序。 启动器仍然不适合我,因此我确实需要将启动器可执行文件替换为实际的游戏可执行文件。

我建议在论坛上寻求帮助-让我们继续关注这个问题,仅调查与游戏有关的问题,而不是仅支持该问题。 现在有很多人可以使用它,因此您的设置可能有所不同。

有趣的是,在官方的taleworlds论坛上有一个已报告的已知问题(我指的是Windows):

Stuttering camera movement on the Campaign Map is under investigation.

这可能表明某些人使用dotnet48遇到的问题与葡萄酒无关(或不完全)。 也有许多报道说,随着战役的进行,游戏变得更加口吃,尤其是当您经常保存和重新加载游戏时; 直到1.0.2,重新加载和保存45次也将确保有关保存的任何进一步重新加载都会使游戏崩溃。 虽然1.0.3应该解决了保存游戏膨胀/腐败的问题,但也有很多报道没有解决(给定的广告系列在1.0.3的情况下会持续更长的时间,但是显然是这样)。

好的,可能是因为我找到了解决广告活动停顿的方法。 当然需要的不仅仅是我自己。 这是我将其固定在新前缀上的方法:

  • 使用最新的葡萄酒分期版本(包括鼠标光标修复)从源代码构建我自己的Proton版本(tkg)
  • 通过protontricks安装dotnet40
  • 安装了vcrun2015(请参阅https://steamcommunity.com/app/261550/discussions/0/2149847049318759493/)
  • 已安装dotnet48
  • 安装了vcrun2017(再次参见https://steamcommunity.com/app/261550/discussions/0/2149847049318759493/)

现在,我没有在活动地图上出现断断续续的情况,只需固定鼠标光标,保存就需要几秒钟。 可能值得其他人尝试一下。

好的,可能是因为我找到了解决广告活动停顿的方法。 当然需要的不仅仅是我自己。 这是我将其固定在新前缀上的方法:

  • 使用最新的葡萄酒分期版本(包括鼠标光标修复)从源代码构建我自己的Proton版本(tkg)
  • 通过protontricks安装dotnet40
  • 安装了vcrun2015(请参阅https://steamcommunity.com/app/261550/discussions/0/2149847049318759493/)
  • 已安装dotnet48
  • 安装了vcrun2017(再次参见https://steamcommunity.com/app/261550/discussions/0/2149847049318759493/)

现在,我没有在活动地图上出现断断续续的情况,只需固定鼠标光标,保存就需要几秒钟。 可能值得其他人尝试一下。

我使用1.0.3进行了此尝试,在某些方面性能较差,而在其他方面则更好。

更新到1.0.4后,整个游戏运行完美,这是令人难以置信的。

@nilleairbar刚刚尝试了一下,对于我来说,所有的口吃都消失了,节省了

好的,可能是因为我找到了解决广告活动停顿的方法。 当然需要的不仅仅是我自己。 这是我将其固定在新前缀上的方法:

  • 使用最新的葡萄酒分期版本(包括鼠标光标修复)从源代码构建我自己的Proton版本(tkg)
  • 通过protontricks安装dotnet40
  • 安装了vcrun2015(请参阅https://steamcommunity.com/app/261550/discussions/0/2149847049318759493/)
  • 已安装dotnet48
  • 安装了vcrun2017(再次参见https://steamcommunity.com/app/261550/discussions/0/2149847049318759493/)

现在,我没有在活动地图上出现断断续续的情况,只需固定鼠标光标,保存就需要几秒钟。 可能值得其他人尝试一下。

我使用1.0.3进行了此尝试,在某些方面性能较差,而在其他方面则更好。

更新到1.0.4后,整个游戏运行完美,这是令人难以置信的。

在2015年之后如何安装2017? 我在2017安装程序中收到错误消息,说已经安装了另一个版本。 我什至不知道如何立即卸载2015。

看起来Steam(至少通过Proton)预安装了2015和2017 VC运行时。 我现在也遇到了这些错误(尽管自尝试以来已经有一段时间了)。

另一方面,对我来说,将1.0.4更新到地图帧率方面变得更加糟糕(编辑:忘记说明它仅在时间进展时;暂停时以30fps的速度运行)。 似乎是多线程破坏了一些东西; 根据DXVK HUD,GPU的利用率为1%,而且一次似乎只有一个内核。 此外,显然htop报告的游戏现在使用的是1.2TB RAM,这既令人震惊又着迷:

Screenshot at 2020-04-03 16-21-20

可能是mod,因为(我一直在测试那些)。 可能也再次成为我的保存游戏所迷恋的事物。 日志中没有显示任何特定的吸烟枪。

编辑:结结巴巴来自ClanTweaker mod。 其他人也抱怨帧速率下降,尽管还没有达到我所经历的程度。

1.2 TB虚拟内存的大小有点问题,可能表示内存泄漏,但是实际上几乎没有泄漏到物理页(即实际RAM)上-32 GB RAM中仅使用了17。 因此,从某种意义上讲,这是无害的,除非该进程不断请求更多的虚拟内存,否则它可能会用完64位地址并崩溃。

看起来Steam(至少通过Proton)预安装了2015和2017 VC运行时。 我现在也遇到了这些错误(尽管自尝试以来已经有一段时间了)。

另一方面,对我来说,更新至1.0.4会使地图帧率大大恶化。 似乎是多线程破坏了一些东西; 根据DXVK HUD,GPU的利用率为1%,而且一次似乎只有一个内核。 此外,显然htop报告的游戏现在使用的是1.2TB RAM,这既令人震惊又着迷:

Screenshot at 2020-04-03 16-21-20

可能是mod,因为(我一直在测试那些)。 可能也再次成为我的保存游戏所迷恋的事物。 日志中没有显示任何特定的吸烟枪。

我只注意到这个Reddit上评论:

“是的,它也发生在我身上,它切换到了我的intel而不是Nvidia(即使那样,它也只能给我提供128 MB的电源,例如wtf?),我无法将其改回。
非常抱歉,您也遇到了这种情况,但从另一方面来说,我的Nvidia并没有耗尽xD的感觉真是太好了。”

似乎游戏正在尝试使用该用户处理器上的集成显卡。 有趣

这台机器根本没有集成GPU,因此,就我而言,这似乎不是罪魁祸首。

* Build my own Proton version (tkg) from source with the newest wine-staging build that includes the mouse cursor fix

我的Linux知识不足,但这个解决方案仅适用于Arch用户,对吗? 我发现“质子版本(TKG)”的唯一的事情是什么这个,它是指PKGBUILDS这是一个拱形的事情,对不对? 有没有办法在kde neon(基于Ubuntu 18.04)上做同样的事情?

* Build my own Proton version (tkg) from source with the newest wine-staging build that includes the mouse cursor fix

我的Linux知识不足,但这个解决方案仅适用于Arch用户,对吗? 我发现“质子版本(TKG)”的唯一的事情是什么这个,它是指PKGBUILDS这是一个拱形的事情,对不对? 有没有办法在kde neon(基于Ubuntu 18.04)上做同样的事情?

是的,这是一件大事。 我在自述文件中确实注意到他确实说没有拱门是可能的,只是更多地参与其中。

另外,截至几个小时前,proton-tkg出现了一个错误,使得它无论如何都无法构建。

* Build my own Proton version (tkg) from source with the newest wine-staging build that includes the mouse cursor fix

我的Linux知识不足,但这个解决方案仅适用于Arch用户,对吗? 我发现“质子版本(TKG)”的唯一的事情是什么这个,它是指PKGBUILDS这是一个拱形的事情,对不对? 有没有办法在kde neon(基于Ubuntu 18.04)上做同样的事情?

是的,这是一件大事。 我在自述文件中确实注意到他确实说没有拱门是可能的,只是更多地参与其中。

另外,截至几个小时前,proton-tkg出现了一个错误,使得它无论如何都无法构建。

这是一件大事,但是可执行文件只会创建一个压缩包,您可以将其解压缩到所需位置(例如,在主注释中建议的目录中的“当前解决方法”下)。 如果您拥有足弓,它可以为您自动完成,但这并不是很大的一步。 这个问题可以在一个小时内解决,现在可以正常运行了。

你好
多亏@YellowApple的工作,我得以在ubuntu上编译了一个能工作的proton-tkg,遵循@nilleairbar的步骤并可以玩游戏。

英伟达gtx 1070在陆上和小型冲突,小酒馆或村庄内的谈话等情况下,以3840x2160的分辨率为我提供30fps的画面。
Screenshot from 2020-04-04 03-21-08

约20vs20的大型战斗,陆上地图上的对话,商店,铁匠铺,有时以约2〜3 fps的速度停滞
Screenshot from 2020-04-04 03-26-10

崩溃对我来说仍然会发生,但是很少

编辑:将设置设置为“中”可解决2〜3 fps的问题,最多可节省3秒钟

* Build my own Proton version (tkg) from source with the newest wine-staging build that includes the mouse cursor fix

我的Linux知识不足,但这个解决方案仅适用于Arch用户,对吗? 我发现“质子版本(TKG)”的唯一的事情是什么这个,它是指PKGBUILDS这是一个拱形的事情,对不对? 有没有办法在kde neon(基于Ubuntu 18.04)上做同样的事情?

是的,这是一件大事。 我在自述文件中确实注意到他确实说没有拱门是可能的,只是更多地参与其中。
另外,截至几个小时前,proton-tkg出现了一个错误,使得它无论如何都无法构建。

这是一件大事,但是可执行文件只会创建一个压缩包,您可以将其解压缩到所需位置(例如,在主注释中建议的目录中的“当前解决方法”下)。 如果您拥有足弓,它可以为您自动完成,但这并不是很大的一步。 这个问题可以在一个小时内解决,现在可以正常运行了。

葡萄酒稳定方面是否有任何新变化似乎使Bannerlord受益? 我已经有了一个只用YellowApple所做的更改的自定义版本,只是想知道是否值得从分期制作一个新版本。

好的,可能是因为我找到了解决广告活动停顿的方法。 当然需要的不仅仅是我自己。 这是我将其固定在新前缀上的方法:

  • 使用最新的葡萄酒分期版本(包括鼠标光标修复)从源代码构建我自己的Proton版本(tkg)
  • 通过protontricks安装dotnet40
  • 安装了vcrun2015(请参阅https://steamcommunity.com/app/261550/discussions/0/2149847049318759493/)
  • 已安装dotnet48
  • 安装了vcrun2017(再次参见https://steamcommunity.com/app/261550/discussions/0/2149847049318759493/)

现在,我没有在活动地图上出现断断续续的情况,只需固定鼠标光标,保存就需要几秒钟。 可能值得其他人尝试一下。

image

我试过了,但是现在游戏似乎想要使用我什至没有的英特尔集成图形? 游戏非常慢,似乎没有选择更改图形卡的选项。

好的,可能是因为我找到了解决广告活动停顿的方法。 当然需要的不仅仅是我自己。 这是我将其固定在新前缀上的方法:

  • 使用最新的葡萄酒分期版本(包括鼠标光标修复)从源代码构建我自己的Proton版本(tkg)
  • 通过protontricks安装dotnet40
  • 安装了vcrun2015(请参阅https://steamcommunity.com/app/261550/discussions/0/2149847049318759493/)
  • 已安装dotnet48
  • 安装了vcrun2017(再次参见https://steamcommunity.com/app/261550/discussions/0/2149847049318759493/)

现在,我没有在活动地图上出现断断续续的情况,只需固定鼠标光标,保存就需要几秒钟。 可能值得其他人尝试一下。

我使用1.0.3进行了此尝试,在某些方面性能较差,而在其他方面则更好。
更新到1.0.4后,整个游戏运行完美,这是令人难以置信的。

在2015年之后如何安装2017? 我在2017安装程序中收到错误消息,说已经安装了另一个版本。 我什至不知道如何立即卸载2015。

我有同样的问题。 但是,游戏有时会停滞,但运行良好。 我正在拱门上运行1080ti。

好的,可能是因为我找到了解决广告活动停顿的方法。 当然需要的不仅仅是我自己。 这是我将其固定在新前缀上的方法:

  • 使用最新的葡萄酒分期版本(包括鼠标光标修复)从源代码构建我自己的Proton版本(tkg)
  • 通过protontricks安装dotnet40
  • 安装了vcrun2015(请参阅https://steamcommunity.com/app/261550/discussions/0/2149847049318759493/)
  • 已安装dotnet48
  • 安装了vcrun2017(再次参见https://steamcommunity.com/app/261550/discussions/0/2149847049318759493/)

现在,我没有在活动地图上出现断断续续的情况,只需固定鼠标光标,保存就需要几秒钟。 可能值得其他人尝试一下。

我使用1.0.3进行了此尝试,在某些方面性能较差,而在其他方面则更好。
更新到1.0.4后,整个游戏运行完美,这是令人难以置信的。

在2015年之后如何安装2017? 我在2017安装程序中收到错误消息,说已经安装了另一个版本。 我什至不知道如何立即卸载2015。

一开始我也遇到了同样的问题。 只需使用protontricks 261550 uninstaller
可悲的是,dotnet使游戏对我的表现差很多,但是节省时间的确更快,大约需要30秒。

您需要一个新的前缀(不是由Steam创建)来安装vcrun2015和vcrun2017(和dotnet40?)。 我安装了这些,然后按照指示安装了dotnet48,但是节省(仍然)更快的代价是烦人的帧速率不稳定(快速卡顿)。 对我来说,我几乎更喜欢在保存时休息一下,然后去做其他事情来解决性能问题,但这就是我。

进行围攻时,是否还有其他人经常撞车? 如果AI领导攻城,似乎不太可能,但是当我攻击或特别防御时,游戏很可能崩溃(多次)。 我以后可以上传一些日志,只是想知道这是否也是其他人所经历的。

进行围攻时,是否还有其他人经常撞车? 如果AI领导攻城,似乎不太可能,但是当我攻击或特别防御时,游戏很可能崩溃(多次)。 我以后可以上传一些日志,只是想知道这是否也是其他人所经历的。

是; 好吧,自e1.0.4起,我越来越频繁地崩溃,而围攻似乎是一个触发因素。 为了我; 由于我太小,所以AI领先所有的细分市场

进行围攻时,是否还有其他人经常撞车? 如果AI领导攻城,似乎不太可能,但是当我攻击或特别防御时,游戏很可能崩溃(多次)。 我以后可以上传一些日志,只是想知道这是否也是其他人所经历的。

我在一次包围中有一个保存游戏,几秒钟后100%的时间它崩溃了。 相同的保存游戏可以在Windows上正常运行。 在加载以前的保存后,我作为军队的一部分进行了两次包围,但它没有崩溃

在包围过程中没有发生任何崩溃,但是当您启动并部署一个时,鼠标会变色,不断闪烁,并且不会记录点击。 按住Alt键跳入和跳出可注册一次单击,因此您可以跳过部署屏幕。

原始帖子中的预编译补丁是否不再起作用?

@ Ryan-Vablet它有效,至少据我所知。 尽管有些人似乎对自己编写的proton-tkg版本有更好的体验(以及此注释中提到的其他内容)。

值得注意的是,安装dotnet48可以节省很多时间,有时需要几分钟,但在某些情况下会导致性能问题。 注释中的其他内容可能会解决性能问题,但在某些情况下还是要解决。

但是最后,我们不知道质子-tkg有什么特别的东西会帮上忙,或者如果确实有帮助,它还是最新的,所以其中可能很有用。 至少很少有最新消息。

对于崩溃,似乎我们没有任何可靠的修复。 但这可能只是游戏本身的问题,某些性能问题也可能是这种情况。

我今天安装了Bannerlord(e1.0.5),并用proton-tkg播放了5个小时。 这是我的经验:

首先,我尝试在不安装dotnet软件包的情况下玩Bannerlord。 正如我所料,我口吃很多,保存时间也很长。 我也经历了很长的加载时间。

然后我通过protontricks安装了dotnet40和dotnet48软件包。 保存时间和加载时间大大减少。 口吃也略有减少。 此时,游戏几乎可以玩了。 我也尝试安装vcrun2015和vcrun2017,但无法安装,因为它们已经安装(可能由Steam自动安装)。

但是几个小时后,我开始越来越频繁地坠毁,通常是在城里等着。 根据到目前为止的内容,我认为崩溃与我只有8 GB的RAM有关。 选择中等设置预设似乎已经解决了问题(此后没有崩溃),并且还减少了卡顿现象。


系统信息

OS: Arch Linux
KERNEL: 5.5.13-arch2-1
CPU: AMD Ryzen 5 2600 Six-Core
GPU: Radeon RX Vega 56
GPU DRIVER: 4.6 Mesa 20.0.4
RAM: 8 GB

升级至1.0.5(ubuntu 19.10)
使用Managedstarter重命名,运行完美,没有性能问题或崩溃,但没有任何质子提示; 使用Yellowapple的自定义质子(在问题描述中)
如果我安装dotnet40 + 48来解决保存问题,则性能会很糟糕,并且游戏无法真正玩。 我很想尝试这种tkg的解决方法,但是显然这只是一个拱门事情? 这两个vcruns都是默认安装的。

通过上面YellowApple描述的步骤,我能够解决最新补丁中的一两次攻城(由AI领导)。 接下来我玩时将编辑此评论,并进行玩家围攻。

更新到1.05后(使用YellowApple质子,没有安装任何dotnet),我在与掠夺者作战和大型野战开始时开始在战利品屏幕上崩溃。 前者发生了大约3次,后者发生了一次(我停止尝试)。 日志中有几个新错误,崩溃后游戏仍显示为正在玩(崩溃报告器也崩溃了):

[000000000000004A:] EXCEPTION handling: System.IO.FileNotFoundException: Could not load the file 'TaleWorlds.PSAI.XmlSerializers'.
...
[000000000000003F:] EXCEPTION handling: System.PlatformNotSupportedException: System.Management currently is only supported for Windows desktop applications.

更新:
我重新启动计算机,在上一次保存中赢得了一场战斗,重新加载了崩溃的那台计算机,并且进行了另一场战斗,没有问题。

升级至1.0.5(ubuntu 19.10)
它运行完美,没有性能问题或崩溃,_with_managedstarter重命名,但_没有任何质子技巧; 使用Yellowapple的自定义质子(在问题描述中)
如果我安装dotnet40 + 48来解决保存问题,则性能会很糟糕,并且游戏无法真正玩。 我很想尝试这种tkg的解决方法,但是显然这只是一个拱门事情? 这两个vcruns都是默认安装的。

@aradapilot proton-tkg构建脚本在非arch系统上也可以正常运行。 只要确保安装wine-tkg的依赖项即可。

我已经使用@YellowApple的Proton构建进行了一些设置。 我确实安装了dotnet40 ,然后安装dotnet48 (这似乎替代了旧版本),我认为这样做可以节省时间,但效果特别好,尤其是在广告系列地图上。 有趣的是,我试图卸载dotnet动词,但随后游戏让我知道它至少需要dotnet 4.0。 重新安装dotnet40不足以使游戏正常启动,并且以某种方式使protontricks认为仍安装了4.8版本。 我卸载了dotnet40但是并不能解决问题。 最后,我在annihilate d环境中安装了dotnet,尽管我的设置对于我的规格来说很低,但它至少具有更好的性能。 使用dotnet可以节省60秒,而不是30秒。

要注意的另一件事是帧限制器! 我以为即使在低设置下我也结结巴巴,但事实证明我的帧速率高于监视器(60 Hz),但非常不连贯。 监视刷新率的上限很有帮助。

眼镜:
R5 2600
RX 580 4GB
16 GB RAM
带有5.5内核的Linux Mint 19.3
来自Oibaf PPA的Mesa 20.1

编辑:没有dotnet的事情似乎也更加稳定,所以我认为我会坚持下去。 此外,安全模式似乎只是重置了亮度测试和图形设置,而且我没有注意到任何稳定性方面的改进,因此在崩溃后我也不会费心启用它。

因此,我不知道这是protontricks 261550 vcrun2019还是使用最新的Proton-GE,但是其中一个或两个都几乎完全消除了我的任何卡顿现象。 手动保存需要几秒钟,而自动保存似乎是瞬时的。 都不会造成任何形式的残留滞后。 我还在“库存”屏幕中获得了10倍的FPS(以前非常糟糕)。

是的,对于仍在使用我的构建的其他人:代替GloriousEggroll的; 如果不是更好的话,它应该至少和我的一样好(考虑到它还整合了其他游戏的其他增强功能),并且从头骨喝酒或吞食肝脏的可能性大大降低。 如果您仍然遇到与dotnet48相关的口吃,还可以考虑尝试protontricks 261550 vcrun2019

您是否使用带有或不带有dotnet48的vcrun2019?

您是否使用带有或不带有dotnet48的vcrun2019?

用。

我正在使用的当前前缀的确切操作顺序:

  • 在我的版本中至少运行一次启动器(以生成前缀)
  • protontricks 261550 uninstall并卸载所有内容
  • protontricks 261550 dotnet40
  • protontricks 261550 vcrun2015
  • protontricks 261550 dotnet48
  • protontricks 261550 vcrun2017
  • 在我的构建下至少再次运行游戏一次
  • 切换到Proton 5.5-GE-1
  • protontricks 261550 --force vcrun2019 (因为它在技术上与vcrun2015冲突)
  • 再次运行游戏并观察到明显的改进

我尚未在新的前缀上测试protontricks 261550 doetnet48 && protontricks 261550 vcrun2019的简单路径。 我希望它能像魅力一样发挥作用。

由于我似乎无法摆脱依赖地狱而无法编译tkg构建,因此这些预构建对我个人是一种祝福。

我以前的方法:

  • 使用YellowApples的自定义Proton版本
    --->流畅的游戏,但是60秒钟可以节省新游戏的时间。 在保存游戏中大约10小时后约90秒。
  • 安装dotnet48
    --->广告活动地图上的小口吃,可节省约30秒的时间。 对我来说绝对是可以玩的。

我只是换用了Proton 5.5-GE-1,并且没有做进一步的修改,一切都立即可用。 广告活动地图上的断断续续,保存时间约为3秒。


话虽如此,我仍然在这里和那里都遇到崩溃(例如,在我按Tab键并撰写此评论时,游戏崩溃了),但这可能与早期访问相关。 是时候希望这对于其他所有人一样完美无缺了。 <3

@evopls可能与我遇到的问题相同:
https://www.reddit.com/r/linuxquestions/comments/fun9qr/did_i_bork_protontkg/

建立了质子后,我有大约5秒的保存时间,还没有完全使用新的5.5 GE-1节省时间,但是这个游戏仍然会在稍后的游戏中崩溃。 即使在Windows上,它也确实是一团糟,但由于它是抢先体验,所以我们仍然抱有希望,而且我们实质上正在玩(似乎是早期的)测试版。

实际上,给我留下了深刻的印象,尽管存在错误,但游戏运行得很好。 最后一个补丁似乎可以处理即时CTD以便进行某些对话,并进入铁匠铺和补丁之前,这在很大程度上有助于战役地图的结结。

我仍然只有Pronet-GE的dotnet48还是没有问题,但是vcrun2019基本上是稳定的。

我不需要其他步骤Proton-GE + dotnet48 + vcrun2019对我有用

protontricks 261550 dotnet48

protontricks 261550 --force vcrun2019

仅vcrun2019还不够,我既需要dotnet48 + vcrun2019

我似乎没有vcrun2019可以安装。 我刚刚从aur重新安装了protontricks-git,所以它应该是最新版本。 我如何从protontricks安装和/或安装vcrun2019

@yarbelk从winetricks出发,使用以下命令更新winetricks

# protontricks will pass --self-update to winetricks
protontricks 261550 --self-update

编辑:我不认为我必须在重新安装前缀时进行更新,也许尝试并使用Steam重新安装它

--self-update将从git / master获取最新信息
https://github.com/Winetricks/winetricks/blob/master/src/winetricks#L1148

最新的葡萄酒技巧是我安装的20191224(https://github.com/Winetricks/winetricks/releases)。 我在NixOS上使用,所以winetricks-自我更新不起作用(因此protontricks也不会)。 我仍然没有vcrun2019可用。

最新的葡萄酒技巧是我安装的20191224(https://github.com/Winetricks/winetricks/releases)。 我在NixOS上使用,所以winetricks-自我更新不起作用(因此protontricks也不会)。 我仍然没有vcrun2019可用。

为什么在NixOS上使用会阻止winetricks --self-update工作? 也许以root身份运行它-我在Ubuntu上运行,并且sudo winetricks --self-update工作。

无论如何,您可以从winetricks git获取最新代码。 对我来说具有vcrun2019的版本是20191224-next - sha256sum: 472eba29dbf056c87afd39a70426886064040e0bc2c3b63c17baf469b0bf2be2 。 看来vcrun2019没有在winetricks的任何发行版本中出现,但是--self-update确实可以获取最新版本(从git,而不是发行版中)。

这是具有vcrun2019的“ -next”版本(当前未发布)中的提交: https :

为什么在NixOS上使用会阻止winetricks --self-update工作? 也许以root身份运行它-我在Ubuntu上运行,并且sudo winetricks --self-update工作。

这是因为NixOS是声明性操作系统,并且不使用标准的Unix文件系统层次结构。 它为Steam之类的应用程序使用特殊的chroot环境,这些应用程序会进行假设并希望控制自己的环境。 winetricks软件包安装在/nix/store/的只读路径中,其中所有软件包均基于其哈希值进行隔离。 它不可能自我更新。

无论如何,您可以从winetricks git获取最新代码

我将尝试更新软件包修订版,然后查看是否可行。 谢谢!

编辑:它在vcrun2019存在的范围内有效,但是尝试安装它我得到了错误的校验和:

sha256sum mismatch! Rename /home/ludvig-new/.cache/winetricks/vcrun2019/vc_redist.x86.exe and try again.

@lboklin,如果您不想删除所有内容,请备份缓存的目录

mv ~/.cache/winetricks/{,bak.}vcrun2019

然后尝试安装

@lboklin,如果您不想删除所有内容,请备份缓存的目录

mv ~/.cache/winetricks/{,bak.}vcrun2019

然后尝试安装

尝试了一下,但没有成功,但是我用wine来运行它(我认为安装正确吗?我设置了所有我能想到的env变量),但是我离题了。 这特定于我的系统,我不想使此线程混乱。 我会弄清楚。

我现在不断得到这个:

d3d_device_->CreateTexture2D at
rglGPU_device::create_texture_from_image
failed!
Invalid parameter.

Last Executed Marker: Only supported with nVidia
Gpus and Windows 10.

(添加了bizarre换行,以实现更多逼真度)

我正在运行dotnet48 vcrun2019 (感谢@chrisrhayden)和ge-5.5质子

我有一个1080ti,我强烈怀疑它有资格成为nVidia。

这很奇怪,因为任何在Windows上遇到此错误的人都在禁用Nvidia / Radeon Sharpening以获得可能的修复,我所知道的唯一在Nvidia面板中几乎是关闭的是无边界2d纹理的Conformant Texture Clamping,这根本没有使用据我所知。

有人说现在回落到e1.0.3可以避免此问题,您可以通过下拉菜单中的Properties-> BETAS-> Select e1.0.3来选择它。 我会说尝试一下,自从上次更新以来,我一直遇到越来越奇怪的错误,而上一个补丁我玩了整整3个小时。 并不是说是原因,但检查不会有任何伤害。

尝试使用和不使用dotnet48vcrun19最新GE版本。 这些错误似乎卡在了第一个加载屏幕上:

[0405/100010.058616:ERROR:frame_sink_video_capturer_impl.cc(206)] Invalid resolutions constraints: 0x0 must not be greater than 0x0; and also within media::limits.
eventfd: Too many open files

有时,GE或YellowApple构建会让我知道这一点:

image

但是在取消该对话框2-3次后,游戏仍会正常启动并运行。 说“是”似乎没有提供任何其他信息?

回到安装了这两个动词的YellowApple版本,性能良好,节省了大约10-15秒的时间,我还没有测试过稳定性,但是我认为我现在会继续使用它。

我以前无法安装dotnet48,但出现以下弹出窗口:
image

为什么现在会发生这种情况?

编辑:手动创建新的前缀,然后在通过Steam启动之前安装dotnet48和2019。

您好@ Gyrfalcon5 ,请运行ulimit -Hn并验证它是否为您提供了高价值而不是4096。

您好@ Gyrfalcon5 ,请运行ulimit -Hn并验证它是否为您提供了高价值而不是4096。

那给我4096。这是问题吗? 我想我在这里看到了一些有关提高这样的价值的事情,但是我不确定。

我在上面使用了YellowApple的说明,并且游戏运行正常,但是我仍然没有可用的鼠标光标。 我可能错过了重要的一步吗? 我辞职后只使用控制器进行菜单操作,但是在创建角色后进入地图时,我会收到一条通知,通知我无法单击控制器。

我在上面使用了YellowApple的说明,并且游戏运行正常,但是我仍然没有可用的鼠标光标。 我可能错过了重要的一步吗? 我辞职后只使用控制器进行菜单操作,但是在创建角色后进入地图时,我会收到一条通知,通知我无法单击控制器。

在另一个系统上,它有时会工作,有时却不会。 重新启动游戏已修复它。 耸耸肩

我在上面使用了YellowApple的说明,并且游戏运行正常,但是我仍然没有可用的鼠标光标。 我可能错过了重要的一步吗? 我辞职后只使用控制器进行菜单操作,但是在创建角色后进入地图时,我会收到一条通知,通知我无法单击控制器。

是的,出于某种原因,或者在我登录Steam后首次启动游戏时,鼠标无法在我的系统上运行。 如果我重新启动游戏,它将开始工作。

我在上面使用了YellowApple的说明,并且游戏运行正常,但是我仍然没有可用的鼠标光标。 我可能错过了重要的一步吗? 我辞职后只使用控制器进行菜单操作,但是在创建角色后进入地图时,我会收到一条通知,通知我无法单击控制器。

是的,出于某种原因,或者在我登录Steam后首次启动游戏时,鼠标无法在我的系统上运行。 如果我重新启动游戏,它将开始工作。

有没有搞错? 好吧,是的这只是启动Steam之后的第一次。 真好奇

更新:为了安装dotnet48和vcrun2019,我不得不在没有Steam的情况下手动删除并重新创建前缀。 然后,我可以通过Steam启动,性能和节省似乎都很好(到目前为止仅测试了一分钟)。 这是Proton-GE和从该修订版构建的winetricks。

是的,请给https://github.com/zfigura/wine/blob/esync/README.esync读取。

遵循那里的指示,Proton GE的工作性能要好得多! 稳定性可能需要一些工作,一两分钟后查找角色时发生崩溃。 可以尝试清除前缀并重新安装东西,看看是否有帮助,尽管我现在知道游戏本身是否还很不稳定。

编辑:查找字符是一个超级一致的崩溃,当我从命令行运行Steam时,输出如下:

mesa: for the   --simplifycfg-sink-common option: may only occur zero or one times!
mesa: for the   --global-isel-abort option: may only occur zero or one times!
ERROR: ld.so: object '/home/roland/.local/share/Steam/ubuntu12_32/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored.
>>> Adding process 5460 for game ID 261550
ERROR: ld.so: object '/home/roland/.local/share/Steam/ubuntu12_64/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS64): ignored.
>>> Adding process 5468 for game ID 261550
wine: Unhandled page fault on execute access to 000000001E770198 at address 000000001E770198 (thread 0035), starting debugger...
ERROR: ld.so: object '/home/roland/.local/share/Steam/ubuntu12_32/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored.

EDIT2:有关在新的Proton-GE环境中发生的崩溃的更多信息:

=================================================================
    Native Crash Reporting
=================================================================
Got a SIGSEGV while executing native code. This usually indicates
a fatal error in the mono runtime or one of the native libraries 
used by your application.
=================================================================

=================================================================
    Managed Stacktrace:
=================================================================
domain required for stack walk
=================================================================

编辑3:再次尝试dotnet48,看看是否可以解决额外的信息错误。

编辑4:关于单声道的投诉已消失,但百科全书和竞技场排名的稳定性问题仍然存在。 我认为这与广告系列地图上的额外对话框有关,但我不确定。

一个如何安装vcrun2019? 当我运行protontricks 261550 vcrun2019
我总是收到“ Unknown arg vcrun2019”
(即使用最新的质子技巧)

一个如何安装vcrun2019? 当我运行protontricks 261550 vcrun2019
我总是收到“ Unknown arg vcrun2019”
(即使用最新的质子技巧)

您还更新了葡萄酒技巧吗? 我认为人们在处理质子更新方面遇到了麻烦,但较早地与过时的酒色技巧进行了交谈。 只需执行winetricks --self-update就足够

使用proton-GE,dotnet48和vcrun2019导致大量崩溃。
端子输出:

wine: Unhandled exception 0xe0434352 in thread 3f at address 000000007B00FDCE (thread 003f), starting debugger...

编辑:
我认为启用安全模式(它询问您崩溃后何时再次启动)有助于避免我的广告系列原本不可避免的崩溃(某些事件可能触发了它)。

编辑2:
在广告活动地图上放大太远通常会导致崩溃(在过去一个小时内发生了至少3次)。

编辑3:
基本上是无法播放的。 在过去半小时内发生了5次以上的崩溃。 在输出中看不到任何有用的东西; 只是

wine: Unhandled exception 0xe0434352 in thread 74 at address 7B00DE67 (thread 0074), starting debugger...

编辑3:
好的,现在我在设置菜单中崩溃了:

wine: Unhandled page fault on execute access to 0000000000000000 at address 0000000000000000 (thread 003b), starting debugger...

因为游戏会突然忘记并拒绝保存我的设置,所以我将saves和settings目录的读取权限添加到了分组中(我将其符号链接到前缀之外,以免意外删除它)。 之后,游戏会记住我的设置。 可能与设置菜单中的上次崩溃有关。

@lboklin
使用dotnet48和vcrun2019及其始终在世界地图上时,我每隔5-30分钟就会崩溃一次。
proton-GE和proton-tkg都有这个问题,proton-GE对我没有任何改善。

@craftyguy除非您要winetricks自行更新,否则取决于您最初安装它的方式。

$ winetricks --self-update
------------------------------------------------------
You don't have the proper permissions to run this command. Try again with sudo or as root.
------------------------------------------------------

如果您是从包管理器获得的,则它很可能位于/usr/bin ,并且您需要root访问权限才能在那里进行更新。

只是一个建议。 如果有人需要root权限来更新winetricks。 使用sudo -E保护您的环境。

@lboklin

我将尝试更新软件包修订版,然后查看是否可行。 谢谢!

您好nixos用户-您如何做到的?

您选择的发行版上的“如何更新酒技巧”在这里似乎不合时宜。 在发行版的公共论坛中提问,或为用户本地安装winetricks。

@lboklin

我将尝试更新软件包修订版,然后查看是否可行。 谢谢!

您好nixos用户-您如何做到的?

虽然我同意这是题外话,但我还是会花点时间回答,以节省您一些时间。

  1. 克隆nixpkgs回购
  2. 光盘进入
  3. 如下编辑pkgs / misc / emulators / wine / sources.nix
  4. nix-env -f . -iA winetricks
diff --git a/pkgs/misc/emulators/wine/sources.nix b/pkgs/misc/emulators/wine/sources.nix
index 0e3eb2ce698..aeb0cdef883 100644
--- a/pkgs/misc/emulators/wine/sources.nix
+++ b/pkgs/misc/emulators/wine/sources.nix
@@ -56,10 +56,10 @@ in rec {

   winetricks = fetchFromGitHub rec {
     # https://github.com/Winetricks/winetricks/releases
-    version = "20191224";
-    sha256 = "07q3zh2i3xqzpg46ljarhq3a4ha9zwpc6jqzvly0kfglkh3b3v66";
+    version = "20191229";
+    sha256 = "0vzb9fxnrmbv1x86q7ri0xx4slvmbyjsf59y9hl48gxyr5kld68q";
     owner = "Winetricks";
     repo = "winetricks";
-    rev = version;
+    rev = "94edaddc039c205a98c2a620399a741c7a70ce02";
   };
 }

我有一个全新的系统:

Bannerlord用蒸汽新鲜安装
刚装好的葡萄酒
新鲜出炉的葡萄酒技巧
使用上面的葡萄酒技巧进行质子技巧的全新安装

❯ wine --version
wine-5.0
❯ winetricks --version
20191224-next - sha256sum: f183161a93a92f2fe38ec90b723055d5a2ca691c85400874879b0ef779a7f46e
❯ protontricks --version
protontricks (1.4.1)
❯ rm -rf ~/.steam/steam/steamapps/compatdata/261550
❯ rm -rf ~/.wine

我已经安装了5.5-GE-1版本的质子,并将其移至.steam/root/compatibilitytools.d

然后我运行:

❯ steam # Launched game from steam with Proton-5.5-GE-1 selected
...
Proton: Upgrading prefix from None to 5.5-GE-1 ($HOME/.local/share/Steam/steamapps/compatdata/261550/)
...
Unhandled Exception:
System.IO.FileNotFoundException: Could not load file or assembly 'ManagedStarter, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null' or one of its dependencies.
File name: 'ManagedStarter, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null'
[ERROR] FATAL UNHANDLED EXCEPTION: System.IO.FileNotFoundException: Could not load file or assembly 'ManagedStarter, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null' or one of its dependencies.

❯ cp ~/.steam/steam/steamapps/common/Mount\ \&\ Blade\ II\ Bannerlord/bin/Win64_Shipping_Client/Bannerlord.exe ~/.steam/steam/steamapps/common/Mount\ \&\ Blade\ II\ Bannerlord/bin/Win64_Shipping_Client/ManagedStarter.exe
❯ cp ~/.steam/steam/steamapps/common/Mount\ \&\ Blade\ II\ Bannerlord/bin/Win64_Shipping_Client/Bannerlord_BE.exe ~/.steam/steam/steamapps/common/Mount\ \&\ Blade\ II\ Bannerlord/bin/Win64_Shipping_Client/ManagedStarter_BE.exe

此时游戏启动

❯ killall wineserver
❯ protontricks 261550 dotnet48
------------------------------------------------------
You are using a 64-bit WINEPREFIX. Note that many verbs only install 32-bit versions of packages. If you encounter problems, please retest in a clean 32-bit WINEPREFIX before reporting a bug.
------------------------------------------------------
Using winetricks 20191224-next - sha256sum: 21f89159ef089f5e8c70568b34c40973f6cdc7de04832f3d79c9b74fcbfc32ed with wine-5.0 and WINEARCH=win64
Executing w_do_call dotnet48
# ..... fails

我需要以某种方式告诉版本为32位吗? 该目录是由Steam创建的,是否需要使用WINEARCH = win32和winecfg手动创建该目录? 看来bannerlord是64位的,所以我不确定那将如何工作?

@TannerYoung看起来您正在运行游戏的1.0.0版本。

您可以将游戏更新到最新版本,也可以将ManagedStarter.exe重命名为ManagedStarter.exe.old(或其他名称),然后将Bannerlord.exe复制/符号链接/重命名为ManagedStarter.exe以解决您的问题。

对于安装了各种vcrun版本后仍然存在崩溃问题的人们,请在winecfg中仔细检查Windows版本。 在安装过程中,我的系统设置为WinXP,改回Windows 10修复了很多我的崩溃问题。

到目前为止,我对dotnet472而不是dotnet48感到

protontricks 261550 dotnet472

我使用的是来自Valve(@ proton_5.0-next标签)的Proton,并应用了来自Wine-staging的@YellowApple补丁,而不是人们分发的这些随机Proton版本。 我还没有安装vcrun2019。

对我来说,节省了大约5秒的时间,并且自从使用此配置以来,我的游戏也没有崩溃过(我正在使用最新的修补程序运行最新的修补版本的游戏)。

值得指出的是,Taleworlds在论坛上发布的游戏依赖项是.NET 4.7.2,vcrun 2015和2017: https ://forums.taleworlds.com/index.php?threads / installing -missing-necessary-dependencies。 407126 /

.NET 4.8或vcrun 2019都没有。

@craftyguy :非常感谢你! 使用dotnet48时,游戏的运行情况总体良好,但每个战役最终都会崩溃/死机,以至于无法继续游戏。 使用dotnet472,此问题似乎已完全解决。 另外,我现在在屏幕右侧看到通知(例如当某人在某处增兵时),dotnet48并非如此-甚至都不知道该功能的存在。

我也没有在地图上看到口吃(尽管即使使用dotnet48我也从未见过)。

可以确认@craftyguy的发现; Proton 5.5-GE-1和protontricks 261550 dotnet472足以解决口吃和长时间保存的问题。 好赶上!

我注意到在查看现有保存的城镇的百科全书页面时以及在清单屏幕中出现间歇性崩溃时都出现了一致可复制的崩溃,这两个崩溃都出现在我之前的前缀上(分别带有vcrun201(5|7|9)dotnet48 )和当前值(仅dotnet472 )。 要尝试一个新游戏(叹气),看看它是否仍然存在。

我不确定到底发生了什么。 我觉得我回到了第一个正方形,无论我运行的质子版本如何,无论我安装了什么Windows程序包,鼠标输入都完全不起作用。 即使YellowApple的旧版本(以前运行良好)也无法正常运行。

必须尝试一下dotnet472,看看它是否有助于解决我在新游戏中出现的这些随机崩溃的问题。 鉴于我的旧游戏现在已经经历了几次更新,因此简直太无聊了。 我玩了几个小时,而我在Windows上的一些朋友报告说,较早的保存也发生了相同的崩溃。

使用dotnet472,我还可以确认保存是很快的,但是在对性能进行任何实质性观察之前,我崩溃了,因此它似乎与vcrun2019和dotnet48一样令人无法抗拒地崩溃。

更新:
如前所述,它性能良好且保存速度很快,但实际上稳定性并不高。 广告系列地图上发生了大量崩溃。

脱机,但是我想通过共享当前我的前缀设置的脚本来快速帮助任何NixOS用户: https ://gist.github.com/lboklin/c735c867a00fbb2d30bb89dbcd910c03

应该提到:我的无崩溃游戏只是在1.0.5上启动新的广告系列之后(在以下修补程序之前,但在实际的1.0.5更新之后)。 我还注意到与dotnet8相比,dotnet472的场景之间的加载时间略长(+〜50%),考虑到稳定性的大幅提高,这确实不是什么大问题。

@Ampsersanddd其他人已经提到了这一点,但是即使是由于某种原因在首次启动修复后,游戏也不响应鼠标输入是很常见的。 重新启动即可解决。 也许那是你的问题?

dotnet472从1.0.4版本开始保存文件时崩溃了(但是我在城镇菜单中花了大约10分钟的时间),但也提供了非常好的性能(使用proton-GE测试)。 稍后,我将测试使用1.0.5的新游戏是否也是如此。

更新:

我玩了30分钟左右的新游戏,直到打开城镇菜单时它崩溃了。

即使有了新的广告系列,对我来说还是相当麻烦的。 在大多数情况下,我会获得异常代码0000000c,尽管最近的崩溃(今天早些时候崩溃了)是异常代码6ba。

从好的方面来说,至少我能够确认剪贴板可以工作(通过使用bannerlord.party制作很酷的横幅)。 所以你知道,不可能全都不好。

有没有人想出一种方法来获取游戏生成的日志? 在论坛上提到日志文件(即rgl_log.txt或类似文件),但是我似乎在任何地方都找不到它们。 崩溃报告工具似乎也完全令人厌烦,并且Proton日志没有提供任何有意义的堆栈跟踪。

我认为了解如何完全删除质子前缀可能很有用。 我知道这有点偏离主题,但是考虑到人们这样做的次数,它可能会减少由kruft引起的错误报告。

我知道我不确定自己在做什么:但是我正在删除~/.steam/steam/steamapps/compatdata/261550/目录并再次运行游戏以重新创建它。 这足够了吗?

我知道我不确定自己在做什么:但是我正在删除~/.steam/steam/steamapps/compatdata/261550/目录并再次运行游戏以重新创建它。 这足够了吗?

是的,仅此而已。 我个人更喜欢重命名,这样我就可以在前缀之间切换并快速测试(也可以更轻松地提取我的保存和配置),但是您可以。

谈到这一点:对我来说,看起来像是一个新的前缀(根本没有任何protontricks )比较麻烦,但是仍然存在长时间保存的错误,并且重新引入了一些口吃广告系列地图。 你赢了一些你输了一些,我想,大声笑

几件事:

1)我现在处在一个奇怪的状态,即使用新的前缀我什至无法启动该启动器。 我还怀疑某些资源在崩溃时无法正确清理(由于内存使用量的可疑增长,我没有尝试主动调试beyound ps aux | grep Mountps aux | grep wine并尝试让他们干净地退出。将重新启动系统,但要在执行此操作之前将其写出。

2)在安装donet和vcrun软件包时,我不断看到“它似乎没有安装mono”,它是(6.4,arch linux); 这会破坏质子刺激或预期行为吗?

3)不要在质子击中时键入。 当您询问“安装需要花很长时间才能得到的东西”时,您将按Enter键,然后将其取消。

4) @YellowApple我可能发誓我看到从您那里得到的日志中它有dxvk的输出:您使用的是dxvk的特定版本吗? 鉴于在我运行nvidia卡时出现的need nvidia card错误,我想知道是否有什么我想念的东西。

@yarbelk通过将winecfg中的Windows版本更改回Windows 10,可以很容易地为我修复“需要nvidia卡或Windows 10”问题,如下所述: https :

话虽如此,我现在也经常遇到广告系列地图崩溃的情况。 我唯一更改的是上述设置和M&B补丁程序本身。 不确定是1.0.3还是1.0.4可以正常工作,但是这些广告系列崩溃对我来说是全新的。 Dotnet472或dotnet480在这里也没有区别。

对于遇到大量奇怪的不稳定问题的人们,我认为您只需要删除Bannerlord葡萄酒前缀,验证游戏文件(确保已更新),然后安装vcrun2019和dotnet48。 另外,请确保您没有设置SteamPlay的全局替代设置(Steam主设置页面-> SteamPlay),并使用最新的Proton-GE版本。

如果您完成所有这些操作后仍然遇到问题,请同时更新图形驱动程序。 对于Nvidia,您应该运行nvidia.com上的最新二进制发行版。 如果已经为您的发行版打包了,那就太好了。 对于AMD,您应该运行最新的Catalyst二进制文件或最新的git版本的mesa / libdrm / AMD DDX和最新的Linux内核。

游戏运行良好,对我来说根本没有重大问题。 第一次在战场上加载战斗动画或新装备时,我会收到1-2秒的提示信号,但它会暂停整个游戏,所以这就像我在不利条件下战斗时一样,如果我坚持下去,这种情况也不会复发与相同的敌人作战。 某种着色器缓存可能与逼真的布料效果有关。

还可以在报告问题时张贴您拥有的GPU。 我正在使用2080 Ti。 我能够连续4个小时不间断地玩游戏,并且表现出色。

@黄苹果

游戏日志可在以下葡萄酒前缀中找到: </261550 prefix>/pfx/drive_c/ProgramData/Mount and Blade II Bannerlord/logs/

例如~/.steam/steam/steamapps/compatdata/261550/pfx/drive_c/ProgramData/Mount and Blade II Bannerlord/logs

如果崩溃上传器正常工作(真不幸,它没有...),似乎它将上载在此处找到的工件: <261550 prefix>/pfx/drive_c/ProgramData/Mount and Blade II Bannerlord/crashes/

每次崩溃时,游戏似乎都会在crashes目录中创建一个目录,并包含一些不同的日志以及崩溃时的保存游戏。

好吧,我进一步了解了最新的Proton-GE版本并安装了dotnet472(可追溯安装约5-6个以前的版本)。

我现在有了启动器,但是在创建角色后游戏仍然冻结了整个计算机。 我可以在后台听到音乐/声音,但是什么也听不到。 我已经坐了一段时间,以为它只需要赶上。 没有。 硬关机是唯一的解决方法。

好吧,我进一步了解了最新的Proton-GE版本并安装了dotnet472(可追溯安装约5-6个以前的版本)。

我现在有了启动器,但是在创建角色后游戏仍然冻结了整个计算机。 我可以在后台听到音乐/声音,但是什么也听不到。 我已经坐了一段时间,以为它只需要赶上。 没有。 硬关机是唯一的解决方法。

什么发行版,GPU和图形驱动程序版本?

Ubuntu 18.04,RX 580和常规/默认AMD驱动程序。 我也有最新的葡萄酒/ winetricks / mesa / vulkan。

目前只有这款游戏无法运行,但这并不意味着它不是我的系统,只是将它扔在那里。

Ubuntu 18.04,RX 580和stock / defautl amd驱动程序。 我也有最新的葡萄酒/ winetricks / mesa / vulkan。

目前只有这款游戏无法运行,但这并不意味着它不是我的系统,只是将它扔在那里。

Ubuntu 18.04现在正在使用较旧的Mesa(开源)驱动程序。 您可以尝试切换到AMD Adrenaline(以前称为Catalyst或fglrx)驱动程序吗?

如果您想坚持使用开源图形堆栈,也可以尝试使用oibaf的图形PPA: https ://launchpad.net/~oibaf/+archive/ubuntu/graphics-drivers

开源图形堆栈的老化时间很差。 这主要是由于改进的步伐非常快。 1岁的开源图形驱动程序就像80岁的汽车。 完全过时。 在这一点上,我正在认真考虑问题出在您的问题的开源图形堆栈上。

我使用的是Ubuntu 20.04(实际上,在大多数方面与18.04大多相似),主要区别在于我正在运行Nvidia二进制驱动程序。 游戏运行良好。 如果oibaf的开源图形堆栈更新没有为您解决,请尝试使用二进制Adrenaline驱动程序。

开源图形堆栈的老化时间很差。

不要责怪Mesa发行旧版本的低劣发行版(ubuntu)。 有公共PPA,可让您在旧的旧发行版上安装更新的Mesa。

我在Mesa 20.0(甚至是Mesa主分支)上运行RX 580,没有像他们描述的那样图形锁定。

我在Mesa 20.0(甚至是Mesa主分支)上运行RX 580,没有像他们描述的那样图形锁定。

我证明使用的是Mesa 20.0.0-devel,但是如果版本不正确,并且版本不同/更好,那么我不是一个无视其他建议的人。 我也正在检查另一个PPA,因为我以为我以前有过,但可能不久之后就将其删除了。

开源图形堆栈的老化时间很差。

不要责怪Mesa发行旧版本的低劣发行版(ubuntu)。 有公共PPA,可让您在旧的旧发行版上安装更新的Mesa。

我在Mesa 20.0(甚至是Mesa主分支)上运行RX 580,没有像他们描述的那样图形锁定。

哦,我根本不怪梅萨。 事实是,今天的Mesa比一年前的Mesa好1000%(功能和功能完善)。 开源图形堆栈存在的每一年都是如此。 我只是在说明为什么在尝试玩高端游戏时,依靠LTS发行版所发行的Mesa的任何“稳定”(又称_stale_)版本都不合理。

编辑:再说一次,我在使用开源图形堆栈运行“真实”游戏(即比Stellaris或Team Fortress 2具有更多图形细节的游戏)方面从未取得过成功。 我尝试了oibaf的PPA制作的3月git master版本,并使用Radeon VII和Kingdom Come:Deliverance,Onder Scrolls Online,PULSAR:Lost Colony,Stellaris和其他一些游戏。 该性能在ESO和Stellaris上可以接受,但在其他产品上却表现出缓慢的速度(5 fps或更差)。 我将eGPU从Radeon VII切换到2080 Ti,并使用了Nvidia二进制驱动程序,突然之间,在所有场景中,性能都超过60 fps,并且经常超过100帧。 日日夜夜。

如果您使用的是开放源代码图形堆栈,则您将只能使用它碰巧能很好支持的任何游戏,这大概是现有所有游戏的20-50%(粗略估计)。 如果您使用的是Nvidia二进制驱动程序,则95%的游戏运行良好。 我希望开放源代码驱动程序有一天会变得比二进制文件好或更好,但这不是今天。

所以我注意到了这一点,在论坛的支持部分中说,有时Steam并没有安装所有需要的部门。

我不知道dotnet472是否包含(或应该包含).net Core,但我使用了该文章中的链接来安装该特定版本,看来我的大多数崩溃都已经消失了! 我仍然偶尔会死机,尤其是在每个会话中第一次加载纹理之类的东西时,但我什至可以立即举起臭名昭著的舞台排行榜而不会崩溃!

对于那些想尝试的人,我做了如下的事情:

$ wget https://download.visualstudio.microsoft.com/download/pr/cd223083-8c0e-4963-9fcd-fcf01a55e56c/15500e764899442ed6e014687caa34e9/dotnet-runtime-2.1.17-win-x64.exe

$ export STEAM_COMPAT_DATA_PATH=/games/steamapps/compatdata/261550/

$ cd ~/.steam/steam/compatibilitytools.d/proton_butterlord/

$ ./proton run ~/dotnet-runtime-2.1.17-win-x64.exe

其中,compatdata路径将是您的bannerord compatdata文件夹的路径,而cd则是包含所用质子的目录。

如果您想坚持使用开源图形堆栈,也可以尝试使用oibaf的图形PPA: https ://launchpad.net/~oibaf/+archive/ubuntu/graphics-drivers

好吧,该死,如果重新安装这些功能似乎没有效果! 在角色创建之后,我实际上进入了第一次对话! 我将进行更多测试,但只是想把它扔在那里,那可能是解决问题的方法(敲木头)。

/编辑
在此向所有一直在进行故障排除并提出解决方案的人致以诚挚的谢意!

@Aliervo-因此,在执行最后一条命令后,此操作似乎失败了-

ProtonFixes [12023]信息:运行质子修正
ProtonFixes [12023]信息:运行检查
ProtonFixes [12023]信息:所有检查成功
ProtonFixes [12023]信息:找不到用于UNKNOWN的protonfix(261550)

@yarbelk通过将winecfg中的Windows版本更改回Windows 10,可以很容易地为我解决“需要nvidia卡或Windows 10”问题,如此处所述: #3706(评论)

话虽如此,我现在也经常遇到广告系列地图崩溃的情况。 我唯一更改的是上述设置和M&B补丁程序本身。 不确定是1.0.3还是1.0.4可以正常工作,但是这些广告系列崩溃对我来说是全新的。 Dotnet472或dotnet480在这里也没有区别。

不幸的设置Windows 10并没有阻止我的nvidia崩溃(也带有空前缀)
在角色创建之前开始新游戏时:nvida崩溃。 重新开始。 赢得酷刑之后:nvidia崩溃(10分钟)。

@ jake-hedges之后是否掉线提示? 我记得看到过这些,但是一秒钟后它又弹出并弹出安装程序。

编辑:只是给它又一个干净的前缀,我得到了

ProtonFixes[32252] INFO: Running protonfixes
ProtonFixes[32252] INFO: Running checks
ProtonFixes[32252] INFO: All checks successful
ProtonFixes[32252] INFO: No protonfix found for UNKNOWN (261550)
ProtonFixes[32252] INFO: Creating MS Core font links in /games/Steam/steamapps/compatdata/261550/pfx/drive_c/windows/Fonts

但是几秒钟后,安装对话框弹出了,它允许我安装。

仔细检查/your/path/to/compatdata/261550/pfx/drive_c/Program\ Files/是否有dotnet文件夹,以防它进行无提示安装。 如果没有任何内容,请尝试再次运行它,然后静置一两分钟,看看是否出现安装窗口。

@Aliervo-因此,在执行最后一条命令后,此操作似乎失败了-

ProtonFixes [12023]信息:运行质子修正
ProtonFixes [12023]信息:运行检查
ProtonFixes [12023]信息:所有检查成功
ProtonFixes [12023]信息:找不到用于UNKNOWN的protonfix(261550)

我也遇到了此错误,但是在末尾添加了“ pfx /”

$ export STEAM_COMPAT_DATA_PATH = /游戏/ steamapps / compatdata / 261550 / pfx /

这对我没有任何帮助。 获得相同的随机崩溃。

编辑:NVM我弄错了。 我以为已经解决了,但是我读错了
使用261550 /时出错

ProtonFixes [25930]信息:运行质子修复程序
ProtonFixes [25930]信息:运行检查
ProtonFixes [25930]信息:所有检查成功
ProtonFixes [25930]信息:找不到用于UNKNOWN的protonfix(261550)

使用261550 / pfx /时出错

./proton run〜/ dotnet-runtime-2.1.17-win-x64.exe Proton:将前缀从无升级到5.5-GE-1(/ run / media / m / 850EVO / Games / SteamLibrary / steamapps / compatdata / 261550 / pfx //)
ProtonFixes [25999]信息:运行protonfixes
ProtonFixes [25999]信息:运行检查
ProtonFixes [25999]信息:所有检查成功
ProtonFixes [25999]信息:找不到用于UNKNOWN的protonfix(261550)
ProtonFixes [25999]信息:在/ run / media / m / 850EVO / Games / SteamLibrary / steamapps / compatdata / 261550 / pfx / pfx / drive_c / windows / Fonts中创建MS Core字体链接
由于某些原因,当我使用pfx时,它添加了MS Core字体链接,但安装程序未启动。

如果没有dotnet472或dotnet48,启动器将无法正常工作,我必须按照线程早期的建议重命名游戏.exe,才能在没有启动器的情况下启动游戏,但是每次保存需要30-90秒。 虽然看似更稳定,但游戏过于自动保存,迫使我每5-10分钟等待一分钟,尤其是早期游戏。

使用dotnet时,启动器可以工作,保存时间为1-5秒,但它可能会在游戏地图上或在开始对话或战斗之前随机崩溃。 虽然它大部分都是可玩的。 我不时地可以玩一个小时或更长时间,直到我的FPS在战斗(重新启动修复)或崩溃的对话中降至0.5。

@EmquCC仔细检查您的前缀设置为Windows版本。

vcrun脚本之一将其设置为XP,一个将其设置为7。我记得当我的前缀设置为XP时崩溃了很多,并且关于Windows 7的问题论坛上有报告,因此我建议使用10。

另外,刚刚删除了1.0.6,因此我将使用一个新的前缀并确保一切仍然正常。

@EmquCC仔细检查您的前缀设置为Windows版本。

vcrun脚本之一将其设置为XP,一个将其设置为7。我记得当我的前缀设置为XP时崩溃了很多,并且关于Windows 7的问题论坛上有报告,因此我建议使用10。

另外,刚刚删除了1.0.6,因此我将使用一个新的前缀并确保一切仍然正常。

谢谢:)昨天我改用Windows 10,但是今天忘记了检查。 由于误读,我编辑了帖子。 当我添加pfx时,它为MS Core字体建立了一些链接,但安装程序未启动。 我将使用一个新的前缀,然后使用1.0.6再次尝试,我会尽快回复您

编辑:质子5.0.6的新RC与1.0.6同时下降。 我还没有看到任何变更日志,但是我也会尝试一下。 对于那些想尝试Proton测试版本的用户,请在Steam库中右键单击Proton 5.0>属性> Beta>选择“下一步-”

。 对于那些想尝试Proton测试版本的用户,请在Steam库中右键单击Proton 5.0>属性> Beta>选择“下一步-”

除非他们在5.0.6中添加了鼠标输入补丁,否则您需要自己对其进行补丁,否则您将失去使用鼠标单击的能力。

@craftyguy是的,必须尝试一下,因为Proton 5.0.6 RC2尚无更改日志。 RC2中尚未添加鼠标输入补丁。

@Aliervo @ jake-hedges我仍然无法使用该命令安装dotnet-runtime-2.1.17-win-x64。 但是,我设法使用protontricks --gui进行安装,然后“运行资源管理器”并从资源管理器运行.exe。 我现在测试一下

编辑:现在我的游戏崩溃,然后再点击菜单屏幕。 再次使用新的前缀重新启动^^

编辑2:现在在安装了dotnet-runtime的新前缀上加载。 在我这方面可能是用户错误:)

仅凭单挑,最新的Proton-GE 5.5-1已合并了葡萄酒分期中的鼠标修复程序。

仅凭单挑,最新的Proton-GE 5.5-1已合并了葡萄酒分期中的鼠标修复程序。

使用这些修复程序,我仍然只能获得鼠标控制,可能是每10次启动中就有1次。

仅凭单挑,最新的Proton-GE 5.5-1已合并了葡萄酒分期中的鼠标修复程序。

使用这些修复程序,我仍然只能获得鼠标控制,可能是每10次启动中就有1次。

确实很奇怪,一段时间后给葡萄酒打补丁后,我有100%的时间可以控制鼠标。 其他人在补丁无法正常工作的情况下遇到同样的问题吗?

@jaynus :您是否尝试使用新的前缀(运行protontricks 261550 annihilate )? 它不应该有任何区别,但是也许您有一些之前的怪异替代,或者?

仅凭单挑,最新的Proton-GE 5.5-1已合并了葡萄酒分期中的鼠标修复程序。

使用这些修复程序,我仍然只能获得鼠标控制,可能是每10次启动中就有1次。

确实很奇怪,一段时间后给葡萄酒打补丁后,我有100%的时间可以控制鼠标。 其他人在补丁无法正常工作的情况下遇到同样的问题吗?

@jaynus :您是否尝试使用新的前缀(运行protontricks 261550 annihilate )? 它不应该有任何区别,但是也许您有一些之前的怪异替代,或者?

是的我一直在删除整个前缀并重新开始,它仍然是零星的

现在有机会在新前缀上进行测试。 刚发生2次当机。 当我立即更改设置时(与以前一样,它崩溃了但保存了设置更改)。 另一个是当我尝试从清单屏幕切换到聚会屏幕时。 当我尝试重现它时,屏幕变化很好,只有一点点挂起可以加载内容,因此我假设这是一次加载错误。

我还更加注意了安装vcrun2019实际作用,弹出的安装程序说这是2015-2019年可再发行的,因此,奇怪的是它没有比安装vcrun2015做得更好。 vcrun2017独立地,它只是方便的一步。

在我之前链接的.net Core中添加(使用我发布的命令行,或者使用protontricks 261550 --gui紧跟@EmquCC指出的“ Run Explorer”),可以完成我们在此处列出的必需依赖项列表,因此理论上,剩下的大多数崩溃是由游戏本身的错误引起的,将很快修复!

因此,从理论上讲,大多数剩余的崩溃是由游戏本身的错误引起的,并将很快修复!

我不知道,由于各种原因,Windows组件在葡萄酒上失败的历史悠久,所以我不完全排除这里没有更多的葡萄酒错误。

不幸的是,游戏崩溃上传器似乎无法正常工作。 在Taleworlds可能解决的Wine下,可能会有一些游戏错误只会影响我们,如果他们只知道它们的话!

不幸的是,游戏崩溃上传器似乎无法正常工作。 在Taleworlds可能解决的Wine下,可能会有一些游戏错误只会影响我们,如果他们只知道它们的话!

不要以为有一种方便的调试方法吗? :stuck_out_tongue_closed_eyes:

每当我关闭游戏或崩溃时,我都发现了一些奇怪的东西,如果我要再次启动它,我还需要重新启动游戏,否则什么也没有发生。

好的,到目前为止,我在一个新的前缀上所做的是:

  • vcrun2019
  • dotnet核心取决于
  • dotnet48

运行debian破坏者18.3 mesa之前,我在与山地土匪交战之前就玩了大约一个小时。 否则游戏非常流畅,而且非常有趣。 完全摆脱了保存等待时间,我认为可以。 只需要养成经常储蓄的习惯,以防万一。

我暂时不喜欢此设置!

现在已经玩了3个小时,“ @ only”使用与@ jake-hedges相同的设置崩溃了3次。 Dotnet core + 1.0.6似乎已经解决了大多数问题。
当我赢得比赛后一次坠毁,当在百科全书中查看同一页面时连续两次失败;第二次我赢得比赛没有崩溃,当我尝试访问它时百科全书也没有使游戏崩溃在游戏中的其他地点和时间。

我自己对设置非常满意。 还没有任何持久的FPS下降

尽管我仍然时不时有一些小问题,但我的运行也很流畅。 可以肯定的是,这只是因为我做了一些愚蠢的事情,例如在驱动器上启用透明压缩并播放HDD而不是SSD。

如果有什么问题开始,我会在这里或论坛附近...在那之前,收获快乐!

运行安装了.NET 4.0、4.5、4.6、4.6.1、4.6.2和4.7.2的protontricks 261550 dotnet472,将保存时间减少到几秒钟,无论如何似乎也没有提高稳定性。

@ptkato尝试安装dotnet Core(有关方法,请参阅https://github.com/ValveSoftware/Proton/issues/3706#issuecomment-609959973和https://github.com/ValveSoftware/Proton/issues/3706#issuecomment-610022040做这个)。

另外,再次检查您的前缀没有设置为WinXP或Win7,因为两者都有已知问题。 我建议使用Windows 10作为前缀。

按照当前的解决方法(Proton 5.5-GE https://github.com/GloriousEggroll/proton-ge-custom/releases/tag/5.5-GE-1 + protontricks 261550 dotnet472 ,前缀设置为Windows 10)之后即使在较大的战斗规模(超过400次)中,游戏也可以平稳运行。

但是,每当我进入围困状态时,游戏都会发疯并像疯了似的冻结。 还有其他人吗? (您可以快速测试“自定义战斗”中的包围和更改战斗类型)。 安装dotnet core并没有帮助。

@dufuspaelli我也有口吃的问题。 对我来说,这与GPU的热节流有关,通过降低框架盖,我获得了更好的平滑度。 (可能与您不同)。

对于崩溃的任何帮助,除了显示以下错误外,什么都没有? 好吧,至少它是在大量堆栈跟踪之前记录的内容。

  218 38705.528:0030:0031:fixme:reg:GetEnabledXStateFeatures
  219 38705.531:0030:0031:trace:loaddll:load_native_dll Loaded L"C:\\windows\\Microsoft.NET\\Framework64\\v4.0.30319\\clrjit.dll" at 0x1a7e0000: native
  220 38705.532:0030:0031:fixme:ntdll:EtwEventRegister ({319dc449-ada5-50f7-428e-957db6791668}, 0x1a8c2bc0, 0x1a8eb8a0, 0x1a8eb8c0) stub.
  221 38705.532:0030:0031:fixme:ntdll:EtwEventSetInformation (deadbeef, 2, 0x1a8d7e91, 28) stub
  222 38705.535:0030:0031:fixme:path:parse_url failed to parse L"TaleWorlds.Library"
  223 38705.537:0030:0031:fixme:path:parse_url failed to parse L"netstandard"
  224 38705.540:0030:0031:trace:loaddll:load_so_dll Loaded L"C:\\windows\\system32\\bcrypt.dll" at 0x7f0bfdf90000: builtin
  225 38705.542:0030:0031:trace:loaddll:load_so_dll Loaded L"C:\\windows\\system32\\crypt32.dll" at 0x7f0bfde90000: builtin
  226 38705.542:0030:0031:trace:loaddll:load_native_dll Loaded L"C:\\windows\\system32\\rsaenh.dll" at 0x66500000: PE builtin
  227 38705.556:0030:0031:fixme:path:parse_url failed to parse L"System.Core"
  228 38705.566:0030:0031:fixme:path:parse_url failed to parse L"TaleWorlds.TwoDimension.Standalone"
  229 38705.567:0030:0031:fixme:path:parse_url failed to parse L"ManagedStarter"

使用protontricks 261550 dotnet472和win10运行proton-5.5-GE-1

按照当前的解决方法(Proton 5.5-GE https://github.com/GloriousEggroll/proton-ge-custom/releases/tag/5.5-GE-1 + protontricks 261550 dotnet472 ,前缀设置为Windows 10)之后即使在较大的战斗规模(超过400次)中,游戏也可以平稳运行。

但是,每当我进入围困状态时,游戏都会发疯并像疯了似的冻结。 还有其他人吗? (您可以快速测试“自定义战斗”中的包围和更改战斗类型)。 安装dotnet core并没有帮助。

好吧,尝试了不同的图形设置后,我发现了。

这可能对在高设置下运行并在大型战斗中遇到滞后/结巴的人有所帮助:在游戏设置中降低Texture Streaming Budget设置。

在我的RTX 2060上,当纹理流预算设置为低时,一个大型的城堡围困(400多个单位)吞噬了大约4.7千兆字节的VRAM。 因此,基本上,追求更高的流媒体预算会吞噬我的所有VRAM,从而导致严重的停顿。 我不确定这是该设置的错误还是预期的行为。

@Evilbits我的直觉说也许有些东西损坏了,您介意共享完整日志吗?

另外,您可能没有使用最新版本的游戏。 我在其中看到ManagedStarter ,我相信它已在较新的更新之一中删除。

@dufuspaelli我相信这是预期的行为。 基本上,“纹理流预算”告诉游戏将所有纹理放在所有物体上可以节省多少vram,因此,如果将其设置得太高,则会耗尽vram的视觉效果,例如显示动画,从而结结巴巴。渲染。

因此,崩溃记者意外地为我工作(带有dotnet472和那个.NET Core下载):

Screenshot at 2020-04-07 09-13-55

不知道它是否真的成功发送了报告,或者TaleWorlds是否能够做任何有用的事情(除了实际上积极地支持我们使用质子的黄油王,这是一个惊喜,但值得欢迎),但是,嘿,尝试一下不会对吧?

无论如何,所以至少对我而言,持续不稳定的一个原因(以及导致这一偶然发现的原因)似乎是在试图显示/刷新聚会的铭牌时破坏了System.Text.RegularExpressions.RegexRunner.ScanSystem.AccessViolationException (I我假设基于方法名称SandBox.ViewModelCollection.Nameplate.PartyNameplateVM.RefreshDynamicProperties )。 通常,我将其写为“还有其他可能破坏内存,并且此函数恰巧在错误的时间放置在错误的位置”,但这是第二次此确切方法弹出此确切的内存访问异常,这因此有点可疑。

不确定下一步可能要解决的问题(除了将+heap扔到我的WINEDEBUG ,这听起来在性能上会很痛苦)。

无论如何,
为了后代的缘故,这里是steam-261550.logrgl_log_42.txtrgl_log_errors_42.txt

@雅温

我注意到您编辑了最初的初始评论,以建议安装一些随机的Proton版本来“解决”此问题,但是我建议从互联网上的随机人群中推荐随机的Proton版本并不是一个好主意,关于从随机的人那里运行二进制文件(弊)的争论(例如,wine可以访问整个主目录的文件系统)。 如果“解决方法”运行的是带有大量更改的叉状质子,这可能对Valve也无济于事。

当前输入问题的解决方法是在此回购中构建Proton,应用上游的葡萄酒分级补丁。

@YellowApple ,试图重新创建您的坠机事故,但到目前为止我什么都没有。。。

看到它遍历所有本地化的东西,然后再撞到Sandbox.ViewModelCollection.Nameplate.PartyNameplateVM.RefreshDynamicProperties让我想起了这个线程。 这是一个很长的路要走,但是您可以尝试按照此处所述删除中文本地化数据。


@craftyguy ,对于它的价值而言,GloriousEggroll是葡萄酒分期和lutris的贡献者。 我个人不认为该人是“互联网随机人士”,但我明白你的意思。 对于那些可能会更好地构建自己的内容的人,也许附加一些信息的免责声明更为合适。

最后, @ Yarwin ,由于提到了OP,因此您可以考虑添加新的.net Core内容,因为它似乎可以减少崩溃,并且现在我们有一份崩溃报告在安装后起作用的报告!

@雅温

我注意到您编辑了最初的初始评论,以建议安装一些随机的Proton版本来“解决”此问题,但是我建议从互联网上的随机人群中推荐随机的Proton版本并不是一个好主意,关于从随机的人那里运行二进制文件(弊)的争论(例如,wine可以访问整个主目录的文件系统)。 如果“解决方法”运行的是带有大量更改的叉状质子,这可能对Valve也无济于事。

当前输入问题的解决方法是在此回购中构建Proton,应用上游的葡萄酒分级补丁。

GloriousEggroll并不是“随机”的,而是Proton本身是随机的,Mozilla Firefox或Internet上免费提供的任何免费开源软件,没有保修或赔偿。

花了15分钟阅读GloriousEggroll存储库的提交差异,很清楚地表明,他正在做出色的工作,以提供Proton版本的最新修复和功能,并结合了最新的葡萄酒开发代码以及许多尚未纳入游戏的特定于游戏的修复葡萄酒。 他不是只提供二进制文件的“随机”黑帽子,目的是挖掘数据或在系统上运行rootkit。 他花了大量的时间来维护Proton的出色性能。

老实说,大多数Linux游戏玩家都不具备从源代码构建其所有软件的技术能力或耐心。 即使这样做,除非您也正在审核该代码,否则它确实比下载二进制文件要好。 如果您确实是偏执狂,则应该在没有个人数据,无法访问任何特权网络资源或类似配置的VM的孤立系统上进行游戏。 众所周知,封闭源游戏本身会向游戏开发者上载有关其用户的令人毛骨悚然的数据,在葡萄酒下运行它们的可能性很小。

总的来说,我认为您对于将GE视为不可靠或“随机”的想法反应过度。 如果您非常偏执,则应该只运行真正免费的开源软件(根据定义,该软件不包括M&B II:Bannerlord!),您已经手动审核了每个源代码行。 哦,也不要运行专有的BIOS-这意味着您必须去购买具有开放微码的CPU和主板。

至于Valve,他们似乎并没有积极参与与Proton用户社区合作以帮助改进Proton。 我只能假设他们的立场是(a)我们总体上不关心Proton,或者(b)我们仅关心_we_关心的问题,而不是用户抱怨的问题。 我没有看到任何Valve员工参与此错误报告,对吗?

Valve可能很满意,可以让这个非常流行的游戏的社区找到Bannerlord的解决方案,并将它们上游推向_Wine_。 老实说,这对他们来说工作量较少,所以这很有意义。 除非_Proton_的特定功能无法在_Wine_的上游进行修复,否则几乎可以肯定的是,他们只会忽略此问题报告并等待Wine解决该问题。

对于不太熟练的Linux游戏玩家来说,Proton-GE的构建是当今玩Bannerlord的最便捷方式。 对于那些不信任构建但缺乏从源代码进行编译的技能的用户,欢迎他们等待,直到Valve用包含Bannerlord修复程序的Wine版本从官方Steam客户端更新稳定版本的SteamPlay。 根据过去的经验,这可能需要几个星期到几个月。

GloriousEggroll并不是“随机”的,而是Proton本身是随机的,Mozilla Firefox或Internet上免费提供的任何免费开源软件,没有保修或赔偿。

与某些人在Internet上提供二进制文件相比,Mozilla和Valve值得信赖。 前者是负责任的公司,后者则不是。

再说一次,如果他们拥有的关于该游戏的数据使用的Proton叉子与他们所发布的不是很接近,那几乎可以肯定会帮助Valve减少。 因为我们不要自欺欺人,所以在此版本中,此问题的重点是要进一步实现使该游戏与Valve发行的Proton(而不是Eggroll或Proton的任何其他产品)一起工作的目标。 这不是一般的游戏支持论坛(在Taleworld的网站上有一个论坛)。

对于我(Fedora 32 KDE Beta),. exe仍然需要重命名。 仅靠当前解决方法(5.5-GE-1 +质子技巧261550 dotnet472)无法进入游戏。
因此,重命名Mount&Blade II Bannerlord / bin / Win64_Shipping_Client /
Bannerlord.exe

TaleWorlds.MountAndBlade.Launcher.exe

@craftyguy从字面上

GloriousEggroll并不是“随机”的,而是Proton本身是随机的,Mozilla Firefox或Internet上免费提供的任何免费开源软件,没有保修或赔偿。

与某些人在Internet上提供二进制文件相比,Mozilla和Valve值得信赖。 前者是负责任的公司,后者则不是。

再说一次,几乎可以肯定的是,如果他们在该游戏中拥有的数据使用的Proton叉子与他们所发布的不是很接近,则可以帮助Valve _less_。 因为我们不要自欺欺人,所以在此版本中,此问题的重点是要进一步实现使该游戏与Valve发行的Proton(而不是Eggroll或Proton的任何其他产品)一起工作的目标。 这不是一般的游戏支持论坛(在Taleworld的网站上有一个论坛)。

质子之所以分叉,是因为从历史上讲,要让这些上游项目(质子和葡萄酒)接受捐款是困难的,而且这是一个非常缓慢且劳动密集的过程。

  • Valve对社区没有任何回应。 当主要的新书问世时,他们将不努力与社区互动,宣布“我们正在努力”或“帮助我们,我们将把您的修复程序整合到Proton中”或任何形式。 Proton在很大程度上是作为“象牙塔”商业开源GitHub存储库运行的。 拉取请求会持续数月或数年,几乎没有反馈。
  • Valve(通常是上游Wine)有时会拒绝实用,有用的贡献,而是坚持要开发更加困难的“完美”解决方案。 当试图运行一个游戏或一个软件时,通常很容易进行“快速修复”来解决当前的问题。 您甚至可以将此修复程序限定为特定的进程名称,以防止其影响其他软件。 但是与我们打交道的上游公司(Valve / Proton和Wine)通常不愿接受这些贡献,而是坚持要求在接受贡献之前完全重新设计或重新设计基础代码以使其完美。 这些主要的重构通常超出了可以快速修复的人员的技能范围。 即使他们力所能及,也可能需要数月或数年才能完成这些重大更改。 同时,如果没有快速修复,我们将无法与损坏的软件/游戏兼容。 这就是为什么Proton(及其之前的Wine)的修复程序如此流行和有用的原因。
  • 使用该软件的公司有时对解决方法持虚伪态度。 Codeweavers是参与Wine / Proton的主要公司之一。 他们发行了名为CrossOver Linux(也包括CrossOver Mac)的Wine的付费商业发行版。 尽管这些主要基于上游Wine,但对于它们而言,实施黑客,变通办法和其他类似的“实际”措施以在其商业产品中修复主要标题或主要软件(通常是Microsoft Office),同时又不进行合并的情况并不少见。上游开放源代码的解决方法相同。 因此,如果变通方法可以使他们的产品看起来更好,则可以,但如果其他人对此做出了贡献,则不可以。
  • 上游已经在发生! 此线程中有较早的帖子,直接证明Bannerlord的鼠标光标修复已被Wine-stage接受,它是Proton的上游。 唯一阻止该补丁进入稳定版本的Proton的就是时间。 很多很多的时间-可能是几周或几个月。 因此,现在还没有真正的工作要做,以使这些东西成为上游。 我之前提到的有关将内容上传到上游的难度的观点主要与其他游戏和其他类型的变通办法有关,而这些游戏和变通方法并不像此游戏那么明确。 GE的Proton分支包含许多游戏的实用修补程序,这些修补程序可能几个月都不会在上游流行。

@YellowApple如果我将ACO着色器编译器后端用于台面,
自从我切换回llvm以来,崩溃的频率降低了,并且没有发生这种异常,而是只是冻结了(到目前为止,我一直懒惰地记录那里发生的事情,但接下来的几天我会记录下来)。

二手软件:
最新质子
dotnet472
台面git(llvm 9)
linux-zen 5.6.2

二手硬件:
维加56
3700X

更新:
我错了,切换到llvm似乎更好。

我正在关注以下方面的工作:Proton 5.5-GE + protontricks 261550 dotnet472,确保将Win 10设置为OS。

我每隔几分钟就会遇到一次崩溃,加载的模块大致相同。 我无法完全理解日志,希望有人会。
backtrace.txt

1060Ti 6GB(nvidia 440驱动程序),配备Ryzen 1800x CPU

每个人在解决此问题并使其在一定程度上可为大众使用的伟大工作!

@Demannu如果没有,请尝试安装dotnet Core。 我昨天做了一个新的前缀,从每隔几分钟崩溃到每1-2小时崩溃一次。 今天早上我开始玩游戏时,它确实连续两次崩溃,但它在第三次尝试中起作用。

如何安装: Protontricks终端/ Protontricks GUI

还要确保将前缀设置为Windows 10,而不是WinXP,这显然是dotnet脚本之一更改为Windows 10。

我对新前缀所做的唯一事情是;

  • 使用质子5.5-GE-1
  • 安装dotnet48
  • 安装vcrun2019
  • 手动安装dotnet Core
  • 确保将前缀设置为Windows 10

我使用protontricks --gui来安装所有内容并将前缀设置为Win10。

编辑:如果您使用的是mod,请确保每天也检查更新,如果崩溃则尝试禁用它们。 1.0.6发布后,我的游戏开始在竞技场崩溃,但事实证明这是我使用的竞技场mod

因此,作为更新:

使用新的前缀,按以下顺序设置:

  • 将Proton-5.5-GE-1设置为Steam中的兼容层来启动Bannerlord
  • protontricks 261550 vcrun2019
  • 通过GUI方法安装dotnet核心并在此线程中下载
  • protontricks 261550 dotnet48

我似乎仍然存在以下问题:

  • 鼠标似乎仍然无法正常工作,可能有70%的时间。 我必须反复重新启动,直到它起作用。 我的笔记本电脑不是这种情况,只有我的台式机是这种情况。
  • dotnet472dotnet48似乎并没有解决保存挂起的问题。 看来我还是需要90多秒钟来保存。 如何确定这是否是.NET? 我应该挖掘什么才能查看为什么仍然无法正常工作?

在另一个主题上,是否有人开始玩游戏的多人游戏? 我知道Battleye将会很困难,但是有报道说Battleye游戏可以在Linux上运行。

当前错误类似于:
错误31:驱动程序错误

在另一个主题上,是否有人开始玩游戏的多人游戏? 我知道Battleye将会很困难,但是有报道说Battleye游戏可以在Linux上运行。

当前错误类似于:
错误31:驱动程序错误

这些天,BattleEye安装了一个防热内核驱动程序和服务。 真的,这两者都是酒所不能实现的。

在另一个主题上,是否有人开始玩游戏的多人游戏? 我知道Battleye将会很困难,但是有报道说Battleye游戏可以在Linux上运行。

当前错误类似于:
错误31:驱动程序错误

多人游戏一直很适合我,配对和自定义服务器。 出现提示时,我刚刚取消了BattleEye的安装。

在另一个主题上,是否有人开始玩游戏的多人游戏? 我知道Battleye将会很困难,但是有报道说Battleye游戏可以在Linux上运行。
当前错误类似于:
错误31:驱动程序错误

多人游戏一直很适合我,配对和自定义服务器。 出现提示时,我刚刚取消了BattleEye的安装。

哇,您是对的,由于提到了BattleEye,我什至没有尝试过多人游戏,但是是的,在开始取消安装后,它对我来说也很好用。 他们必须暂时禁用它,我相信它将来会在某个时候停止工作,但是目前看来一切都在起作用。

关于单人游戏,我当前的设置涉及使用dotnet48,vcrun2019和安装dotnet core exe,以及将前缀设置为Windows10。我仍然每小时左右都会崩溃,有时甚至更频繁,尤其是在加载a保存。 我还遇到了与@YellowApple相同的错误,

最后, @ Yarwin ,由于提到了OP,因此您可以考虑添加新的.net Core内容,因为它似乎可以减少崩溃,并且现在我们有一份崩溃报告在安装后起作用的报告!

感谢您的输入-我将.net核心添加到替代迷你指南中。
如果有人好奇的话,要求清单: https ://forums.taleworlds.com/index.php?threads/installing -missing-necessary-dependencies.407126 /(vcruns默认情况下是由Steam安装的,看起来工作正常)

在另一个主题上,是否有人开始玩游戏的多人游戏? 我知道Battleye将会很困难,但是有报道说Battleye游戏可以在Linux上运行。
当前错误类似于:
错误31:驱动程序错误

多人游戏一直很适合我,配对和自定义服务器。 出现提示时,我刚刚取消了BattleEye的安装。

我不知道它在起作用。 那真好笑。

可能是唯一尝试在CentOS 8上运行的人,但是...无论我做什么,我似乎无法在启动时通过初始加载屏幕,它不会冻结,但是加载屏幕永远不会结束。

当前版本是Pro10-5.5-GE-1,在Win10下具有dot472(也尝试过dot48)。

我看到有人建议使用vcrun2019,但我无法安装它,但我最多只能选择vcrun2017。

有什么建议?

可能是唯一尝试在CentOS 8上运行的人,但是...无论我做什么,我似乎无法在启动时通过初始加载屏幕,它不会冻结,但是加载屏幕永远不会结束。

当前版本是Pro10-5.5-GE-1,在Win10下具有dot472(也尝试过dot48)。

我看到有人建议使用vcrun2019,但我无法安装它,但我最多只能选择vcrun2017。

有什么建议?

那肯定会在您的系统上。 我正在运行完全相同的设置,几乎没有问题。 我只有一次使用CentOS。 我敢肯定它是可以做到的,但是我无法想象在它上面进行游戏。

Arch Linux或Manjaro似乎是Proton游戏的必经之路。

可能是唯一尝试在CentOS 8上运行的人,但是...无论我做什么,我似乎无法在启动时通过初始加载屏幕,它不会冻结,但是加载屏幕永远不会结束。
当前版本是Pro10-5.5-GE-1,在Win10下具有dot472(也尝试过dot48)。
我看到有人建议使用vcrun2019,但我无法安装它,但我最多只能选择vcrun2017。
有什么建议?

那肯定会在您的系统上。 我正在运行完全相同的设置,几乎没有问题。 我只有一次使用CentOS。 我敢肯定它是可以做到的,但是我无法想象在它上面进行游戏。

Arch Linux或Manjaro似乎是Proton游戏的必经之路。

我认为情况就是如此。 猜猜是时候学习吃豆子了...

因此,只是为了确认行为。

如果游戏崩溃,则需要在任务管理器中手动终止其进程。 但是,如果我尝试在Steam上再次启动它,则什么也不会发生。 如果我完全重新启动Steam,它将再次启动。

因此,只是为了确认行为。

如果游戏崩溃,则需要在任务管理器中手动终止其进程。 但是,如果我尝试在Steam上再次启动它,则什么也不会发生。 如果我完全重新启动Steam,它将再次启动。

在我的整个测试过程中,这也在发生

如果我完全重新启动Steam,它将再次启动。

这似乎有点奇怪。 终止进程后,wineserver是否仍在运行,或者结束本身?

因此,只是为了确认行为。

如果游戏崩溃,则需要在任务管理器中手动终止其进程。 但是,如果我尝试在Steam上再次启动它,则什么也不会发生。 如果我完全重新启动Steam,它将再次启动。

我发现经常有一个挥之不去的explorer.exe (除其他外)运行(尤其是当它弹出并显示Wine错误对话框时)。 杀死通常足以清除一切(我一般保持htop与正在运行的.exe过滤器专门捕捉这些如果他们坚持围绕)。

您还需要杀死所有缠绵的wineserver进程。

只是试图将我们需要的.NET核心添加到winetricks中。 希望它将被接受,我们可以将解决方法简化为protontricks dotnet472protontricks dotnetcore2

可能是唯一尝试在CentOS 8上运行的人,但是...无论我做什么,我似乎无法在启动时通过初始加载屏幕,它不会冻结,但是加载屏幕永远不会结束。
当前版本是Pro10-5.5-GE-1,在Win10下具有dot472(也尝试过dot48)。
我看到有人建议使用vcrun2019,但我无法安装它,但我最多只能选择vcrun2017。
有什么建议?

那肯定会在您的系统上。 我正在运行完全相同的设置,几乎没有问题。 我只有一次使用CentOS。 我敢肯定它是可以做到的,但是我无法想象在它上面进行游戏。
Arch Linux或Manjaro似乎是Proton游戏的必经之路。

我认为情况就是如此。 猜猜是时候学习吃豆子了...

或者只是在这个巨大的线程中向上滚动(我知道;这是很多阅读),然后看看人们在哪里多次提到“在葡萄酒技巧/质子技巧中找不到vc2019”的修复方法。

GloriousEggroll并不是“随机”的,而是Proton本身是随机的,Mozilla Firefox或Internet上免费提供的任何免费开源软件,没有保修或赔偿。

与某些人在Internet上提供二进制文件相比,Mozilla和Valve值得信赖。 前者是负责任的公司,后者则不是。
再说一次,几乎可以肯定的是,如果他们在该游戏中拥有的数据使用的Proton叉子与他们所发布的不是很接近,则可以帮助Valve _less_。 因为我们不要自欺欺人,所以在此版本中,此问题的重点是要进一步实现使该游戏与Valve发行的Proton(而不是Eggroll或Proton的任何其他产品)一起工作的目标。 这不是一般的游戏支持论坛(在Taleworld的网站上有一个论坛)。

质子之所以分叉,是因为从历史上讲,要让这些上游项目(质子和葡萄酒)接受捐款是困难的,而且这是一个非常缓慢且劳动密集的过程。

* **Valve isn't responsive to the community.** When major new titles come out, they make no effort to engage with the community, to announce "we're working on it" or "help us out and we'll incorporate your fixes into Proton" or anything of the sort. Proton is very much run as an "ivory tower" commercial open source GitHub repository. Pull requests sit for months or years with little or no feedback.

* **Valve (and often, upstream Wine) sometimes decline practical, useful contributions and instead insist on a "perfect" solution that is much more difficult to develop.** When trying to get a game or a piece of software running, it's often easy to make a "quick fix" that solves the immediate problem. You can even scope this fix to a specific process name to prevent it from affecting other software. But the upstreams we're dealing with -- Valve/Proton and Wine -- are often reluctant to accept these contributions, instead insisting that the underlying code be completely redesigned or reworked to perfection before a contribution can be accepted. These major refactorings are often out of the skillset of the people who can contribute quick fixes; even if they are within their abilities, it can take months or years to complete such major changes. In the meantime, we'd have no compatibility with the broken software/game without a quick fix. **This is why fix builds to Proton (and Wine before it) are so popular and useful.**

* **The companies that work on this software are sometimes pretty hypocritical about workarounds.** One of the major companies involved in Wine/Proton is Codeweavers. They distribute a paid, commercial distribution of Wine called CrossOver Linux (and CrossOver Mac, too). While these are heavily based on upstream Wine, it's not uncommon for them to implement hacks, workarounds and other such "practical" measures to fix a major title or major piece of software (most often Microsoft Office) in their commercial product, while not merging the same workaround to the upstream, open source code. So workarounds are fine if it makes their product look better, but not fine if others are contributing the workarounds.

* **The upstreaming is already happening!** There is an earlier post in this thread with direct evidence that the mouse cursor fix for Bannerlord has been accepted by wine-staging, which is Proton's upstream. The only thing preventing that patch from getting pulled into a stable release of Proton, is time. Lots and lots of time -- weeks or months, probably. So there is no real work left to be done to get this stuff upstreamed now. My earlier points about the difficulty of getting stuff upstream are mostly pertaining to other games and other types of workarounds that aren't as clear-cut as this one was. GE's fork of Proton contains many practical fixes for games that may not hit wine upstream for months, if ever.

我大部分都同意,但是我认为在主存储库中,应尽量减少“ hacky”的变通方法和特定于进程名称的范围。 一切都很好,现在,社区提供了最新版本的修复程序,而上游仅包含考虑了更广阔范围的提交。 我认为不应该责怪这些项目或其维护者不包括此类解决方法,因为这最终会导致大量技术债务。 这款游戏的鼠标光标修复已经在葡萄酒阶段进行了升级,因此这并不是说他们忽略了“非hacky”修复

Proton 5.5 GE不适用于我的设置。 在战斗中或地图中2分钟后立即坠毁。

我正在关注以下方面的工作:Proton 5.5-GE + protontricks 261550 dotnet472,确保将Win 10设置为OS。

我每隔几分钟就会遇到一次崩溃,加载的模块大致相同。 我无法完全理解日志,希望有人会。
backtrace.txt

1060Ti 6GB(nvidia 440驱动程序),配备Ryzen 1800x CPU

每个人在解决此问题并使其在一定程度上可为大众使用的伟大工作!

我在其他操作系统上出现了这些随机崩溃,最后发现,有99%的用户确信这是错误版本的自动保存。 例如,将1.0.6保存升级到1.0.7将在1-15分钟内崩溃,而无需我执行任何特殊操作。 删除自动保存(1.0.6)可以解决此问题。 我也尝试使用早期版本更改。 这消除了我90%的崩溃。 希望它对这里的人有帮助。

我正在关注以下方面的工作:Proton 5.5-GE + protontricks 261550 dotnet472,确保将Win 10设置为OS。
我每隔几分钟就会遇到一次崩溃,加载的模块大致相同。 我无法完全理解日志,希望有人会。
backtrace.txt
1060Ti 6GB(nvidia 440驱动程序),配备Ryzen 1800x CPU
每个人在解决此问题并使其在一定程度上可为大众使用的伟大工作!

我在其他操作系统上出现了这些随机崩溃,最后发现,有99%的用户确信这是错误版本的自动保存。 例如,将1.0.6保存升级到1.0.7将在1-15分钟内崩溃,而无需我执行任何特殊操作。 删除自动保存(1.0.6)可以解决此问题。 我也尝试使用早期版本更改。 这消除了我90%的崩溃。 希望它对这里的人有帮助。

我将对此进行测试,我一直在保存我的储蓄,因此我将其清除掉并重试。 谢谢!

我使用的是质子5.5-GE-1,安装了dotnet472,vcrun2019和dotnetcore2。 当我开始游戏时,它似乎运行良好。 但是,我会随机崩溃,并且在某些崩溃后仍然无法重新启动游戏。 如果发生这种情况,打开质子爆炸261550会出现以下错误:
/home/krulvis/.cache/protontricks/proton/Proton-5.5-GE-1/bin/wine cmd.exe /c echo '%AppData%' returned empty string, error message ""
有没有人有类似的经历或可能知道发生了什么事?

如果我仅通过“发送部队!”自动解决战斗,我会注意到一种模式。 选项,与仅去现场并手动作战相比,游戏崩溃的发生频率要高得多。

@Krulvis有时我会

我使用的是质子5.5-GE-1,安装了dotnet472,vcrun2019和dotnetcore2。 当我开始游戏时,它似乎运行良好。 但是,我会随机崩溃,并且在某些崩溃后仍然无法重新启动游戏。 如果发生这种情况,打开质子爆炸261550会出现以下错误:
/home/krulvis/.cache/protontricks/proton/Proton-5.5-GE-1/bin/wine cmd.exe /c echo '%AppData%' returned empty string, error message ""
有没有人有类似的经历或可能知道发生了什么事?

是的,我有这个。 我使用了@YellowApple提供的质子的原始版本,它可以工作

https://forums.taleworlds.com/index.php?threads/known-issues-will-be-updated-soon.401168/

我们的一些玩家可能会遇到游戏完全无法启动,启动后崩溃以及加载屏幕后崩溃的情况。 我们正在调查此问题。 如果您在所有崩溃之后都使用崩溃上传器,这一点至关重要。 您可以在这里尝试解决此问题的方法。 请注意,我们正在努力解决此无法启动的问题!

https://forums.taleworlds.com/index.php?threads/possible -workaround-for-game-not-launching-issue.407128

Windows无法正常启动游戏。

可能是唯一尝试在CentOS 8上运行的人,但是...无论我做什么,我似乎无法在启动时通过初始加载屏幕,它不会冻结,但是加载屏幕永远不会结束。
当前版本是Pro10-5.5-GE-1,在Win10下具有dot472(也尝试过dot48)。
我看到有人建议使用vcrun2019,但我无法安装它,但我最多只能选择vcrun2017。
有什么建议?

那肯定会在您的系统上。 我正在运行完全相同的设置,几乎没有问题。 我只有一次使用CentOS。 我敢肯定它是可以做到的,但是我无法想象在它上面进行游戏。
Arch Linux或Manjaro似乎是Proton游戏的必经之路。

我认为情况就是如此。 猜猜是时候学习吃豆子了...

或者只是在这个巨大的线程中向上滚动(我知道;这是很多阅读),然后看看人们在哪里多次提到“在葡萄酒技巧/质子技巧中找不到vc2019”的修复方法。

我是github的新手,所以当我最初运行ctrl -f“ vcrun2019”时,我什么都没看到。

感谢您在个人资料中输入姓名,以便在专业环境中避免与您联系。

可能是唯一尝试在CentOS 8上运行的人,但是...无论我做什么,我似乎无法在启动时通过初始加载屏幕,它不会冻结,但是加载屏幕永远不会结束。
当前版本是Pro10-5.5-GE-1,在Win10下具有dot472(也尝试过dot48)。
我看到有人建议使用vcrun2019,但我无法安装它,但我最多只能选择vcrun2017。
有什么建议?

那肯定会在您的系统上。 我正在运行完全相同的设置,几乎没有问题。 我只有一次使用CentOS。 我敢肯定它是可以做到的,但是我无法想象在它上面进行游戏。
Arch Linux或Manjaro似乎是Proton游戏的必经之路。

我认为情况就是如此。 猜猜是时候学习吃豆子了...

或者只是在这个巨大的线程中向上滚动(我知道;这是很多阅读),然后看看人们在哪里多次提到“在葡萄酒技巧/质子技巧中找不到vc2019”的修复方法。

我是github的新手,所以当我最初运行ctrl -f“ vcrun2019”时,我什么都没看到。

感谢您在个人资料中输入姓名,以便在专业环境中避免与您联系。

?? 我不是在讽刺。 确实是很多读物。 我想,如果您要避免有人真正尝试提供帮助,那是您的特权。

在执行ctrl + f时找不到它的原因是因为此内容隐藏在此页面的中间: https :

我自己以前从未从事过如此大的问题,因此直到我真正看过我才注意到它。 瓷砖! 抱歉造成任何误解。

@allquixotic话虽如此,在对这个问题进行了彻底的搜索之后,我还没有发现任何能真正解释如何安装vcrun2019的东西,而且我遇到了同样的问题...您能解释一下吗? 我尝试了--force选项并进行了谷歌搜索。

我决定看一下使用PROTON_LOG标志时生成的日志,令人惊讶的是,它生成了一个包含数百万行的274MB文件,是否应该那样? 请注意,我在启动游戏之前删除了以前的日志。

@ptkato我曾经有一个8GB的日志文件,因为我启用了PROTON_LOG=1 。 那是e1.0.4和质子和一个较长的会话(大约30分钟)。 显然那些日志文件确实变得很快。

@allquixotic话虽如此,在对这个问题进行了彻底的搜索之后,我还没有发现任何能真正解释如何安装vcrun2019的东西,而且我遇到了同样的问题...您能解释一下吗? 我尝试了--force选项并进行了谷歌搜索。

根据我的发现,除了安装vcrun2015和vcrun2017之外,vcrun2019似乎没有什么不同。 虽然我个人尝试同时安装这两个程序,但安装失败,因为它已被安装...

@ptkato昨天我的硬盘已完全装满...约340GB

@allquixotic话虽如此,在对这个问题进行了彻底的搜索之后,我还没有发现任何能真正解释如何安装vcrun2019的东西,而且我遇到了同样的问题...您能解释一下吗? 我尝试了--force选项并进行了谷歌搜索。

vcrun2019似乎是winetricks的最新成员。 在arch中,可以在winetricks-git包中找到,但在winetricks中找不到。

想要提供更新;
我在跑:

  • 质子5.5-GE-1
  • 质子攻击261550 dotnet472
  • 质子--gui解决方法以安装dotnet core
  • winecfg中的Windows 10
  • 从游戏的先前补丁中删除所有先前的自动保存

更改视频设置时,我只可以玩1个半小时,就崩溃了(我很贪心)。 否则,我还没有遇到过。

测试的东西:

  • 竞技场
  • 突袭村
  • 思明战役与实战
  • 已加入战斗
  • 与无数人交谈
  • 几乎在我能想到的任何时候都暂停了
  • 试图从对话和战斗中退出mash
  • 在战斗中和战斗后像疯子一样被贴上标签
  • 在游戏中的任何位置几乎都可以使用Alt + Tab

这里可以找到更新的指南

然后让我尝试将所有内容放在一起...

感谢VictorRogersYellowAppleMetal079allquixoticlboklin的出色建议和更正,以及所有其他有关帮助Bannerlord工作的建议!

获得所需的一切

质子5.5-GE-1

  • 此处下载发行版。

    • 每个发布帖子的末尾都有一个“资产”按钮

  • 提取/home/<your-name>/.steam/compatibilitytools.d/ .tar.gz文件的内容

    • 如果该文件夹不存在,请创建它

    • 您现在应该在该文件夹中有一个名为Proton-5.5-GE-1的子文件夹

  • 如果已经在运行,请重新启动Steam
  • 右键单击Bannerlord,然后转到“属性”

    • 在底部的“常规”选项卡中,勾选选项“强制使用特定的Steam Play兼容性工具”

    • 您应该可以选择选项“ Proton-5.5-GE-1”

  • 如果在属性中看不到该选项,请尝试将“ Proton-5.5-GE-1”文件夹移动到以下位置: ~/.local/share/Steam/compatibilitytools.d (如果不存在则创建文件夹)这里

    • 重新启动Steam并检查该选项是否现在存在

质子技巧

  • 遗憾的是,除了使用pipx安装方法外,似乎没有其他“简单”的方法来获得质子技巧
  • 安装说明可以在这里找到
  • 根据这篇文章,Arch用户可能还可以使用pamac install protontricks-git

dotNet核心

带有vcrun2019的葡萄酒技巧

  • 安装最新版本的winetricks是一个好主意,因为许多存储库都分发了不知道如何处理vcrun2019的旧版本的winetricks
  • winetricks只是您需要下载并使其可执行的二进制文件:
cd "${HOME}/Downloads"
wget  https://raw.githubusercontent.com/Winetricks/winetricks/master/src/winetricks
chmod +x winetricks
  • 如果要为当前用户安装它:
mkdir "${HOME}/bin"
mv winetricks "${HOME}/bin"
  • 如果要在系统范围内安装它:
sudo mv winetricks /usr/bin/
  • 您将必须重新登录才能在控制台中查看命令

让Bannerlord工作

  • 确保已安装必备的质子版本和质子技巧
  • 转到/home/<your-name>/.steam/steam/steamapps/compatdata/并将文件夹“ 261550”重命名为“ Backup_261550”

    • 复制是不够的,因为您实际上要从y完全新鲜的葡萄酒前缀的初始化开始

    • 复制该文件夹将备份您的保存游戏,您的设置和整个葡萄酒前缀,以备日后检索或测试时使用

  • 一次运行游戏

    • 这是为了让Steam安装一些依赖项

    • 无需发起新的广告活动

  • 退出游戏
  • 打开控制台并运行protontricks 261550 dotnet472

    • 它会通过旧版dotnet的多次安装运行

    • 当安装程序询问时,选择“立即重新启动”(实际上不会重新启动您的PC)

  • 完成后,运行protontricks 261550 vcrun2019

    • _我不确定是否需要这样做,但是我做到了,而且我的设置似乎可以正常工作_

  • 完成后,运行protontricks 261550 --gui

    • 选择“选择默认的wineprefix”

    • 检查窗口标题是否选择了正确的前缀,应该是/home/<your-name>/.steam/steam/steamapps/compatdata/261550/pfx

    • 选择“运行资源管理器”

    • 打开“ /”设备,然后转到下载dotnet-core文件的位置,然后双击该文件进行安装

    • _由于我有两个“ dotnet core”文件,因此我都以这种方式安装了_

    • 安装完成后关闭资源管理器

    • 选择“运行winecfg”

    • 在底部的“应用程序”选项卡中,将“ Windows版本”设置为Windows 10

    • _我不确定是否需要这样做。 我在Windows 7上有它,一切似乎都正常工作_

    • 使用“确定”按钮关闭winecfg,并通过按“取消”直到关闭将protontricks gui退出

  • 通过蒸汽启动Bannerlord
  • 开始一个新的运动

    • 您别无选择,因为您的旧存档只在备份中

    • 您可以尝试恢复旧的存档,但前提是您使用与现在使用的存档相同的游戏版本

    • 我尚未对此进行测试,因此...如果有效,请报告。

故障排除

如果仍然无法解决问题,那么您可以尝试在

您正在运行AMD GPU,但游戏无法正常工作

  • 您可以尝试更新到最新的MESA驱动程序
  • 一个好的选择是oibaf ppa

您正在运行NixOS并想安装winetricks

  • NixOS的安装过程不同,因此安装Winetricks有点复杂。 我不使用它,但是提供了一个脚本,可用于安装最新的葡萄酒技巧

游戏崩溃,我无法重新启动

  • 这可能是由于wineserver进程卡住了。 检查操作系统的任务管理器,并在必要时将其杀死。

我想调试游戏,但是日志文件很大

  • 质子假设一组调试设置,但是您可以更改它。 看到这篇文章的解释

@Tercus

提取/home/<your-name>/.steam/compatibilitytools.d/ .tar.gz文件的内容

  • 您现在应该在该文件夹中有一个名为Proton-5.5-GE-1的子文件夹

我似乎停留在此步骤上,那里没有适合我的文件夹,如果我在其中创建一个文件夹,并在其中另外创建了一个文件夹,则我没有选择将其用作质子版本

然后让我尝试将所有内容放在一起...

很好的指导! 一些建议:

  • 将其设为GitHub Gist,以便可以与之链接,而不必经历这个问题(您的帖子将以此速度被埋葬)。 在这里在评论中链接到它。 只要有人问了您的指南已经涵盖的问题(无论是在GitHub问题还是在其他地方),我们其余的人都可以链接到您的问题。

  • 由于您的说明中包含vcrun2019您还应该包括故障排除步骤,以解决用户因过时而无法在winetricks安装中使用vcrun2019的情况。 我和其他一些发布者几天前在此线程中包括了此步骤,但关键是要运行sudo winetricks --self-update 。 您可能还注意到,由于NixOS独特的打包软件方式,这不适用于“ NixOS”,但是另一位用户请为NixOS用户提供解决方法! 希望您也可以在此线程中找到该帖子。

  • 另一个解决方法:如果用户看不到目录~/.steam/compatibilitytools.d ,则应运行mkdir -p ~/.local/share/Steam/compatibilitytools.d ,然后将Proton-GE文件夹复制到该目录中。 感谢@ Metal079

  • 另一位用户报告说,该游戏确实早早崩溃,并且经常在Ubuntu 18.04上使用AMD开源图形驱动程序崩溃,但是当他更新到oibaf PPA的最新git master开源图形堆栈时,该游戏开始工作。 因此,我想另一个已知问题是,如果您正在使用AMD开放源代码图形驱动程序运行旧版Ubuntu安装,则需要使用oibaf的PPA对其进行升级。

@allquixotic想通了问题! 我需要在/home/USERNAME/.local/share/Steam上创建compatibletools.d文件夹

确保文件夹名称正确(末尾为“ .d”),并在提取质子版本后重新启动Steam。 检查质子档案是否意外地提取了更深的一级,例如“ Proton-5.5.0-GE-1 / Proton-5.5.0-GE-1 /”

@allquixotic想通了问题! 我需要在/home/USERNAME/.local/share/Steam上创建compatibletools.d文件夹

不错哦。 不确定与通常的〜/ .steam不同的是什么。 编辑了我对以上Tercus指南的建议!

要添加一些东西,上述解决方案(Proton-GE,dotnet472,dotnet core和Windows 10)也让我很崩溃,而对我来说解决的办法是切换到ACO mesa驱动程序而不是默认(我正在使用Mesa 20.0.4和Radeon RX 580运行Manjaro)。 在切换之前,我每隔几分钟崩溃一次(有时可以玩一个小时而不会崩溃),但是切换到ACO驱动程序后,游戏运行了大约2个小时仍未崩溃。 希望这可以帮助仍然有问题的人们。

要添加一些东西,上述解决方案(Proton-GE,dotnet472,dotnet core和Windows 10)也让我很崩溃,而对我来说解决的办法是切换到ACO mesa驱动程序而不是默认(我正在使用Mesa 20.0.4和Radeon RX 580运行Manjaro)。 在切换之前,我每隔几分钟崩溃一次(有时可以玩一个小时而不会崩溃),但是切换到ACO驱动程序后,游戏运行了大约2个小时仍未崩溃。 希望这可以帮助仍然有问题的人们。

我正在使用ACO,但似乎没有任何改善。

到目前为止,我可以节省大约3到4个小时,然后我才开始在所有修复程序上持续崩溃,这就是我很幸运的地方。 我经常只能约一个小时。 刷新pfx似乎可以让我在使用相同游戏版本的旧版本上节省一个小时。 到目前为止,我只用了最初的几个小时就没有dotnet *,但是保存时间使它很难测试。

@allquixotic
〜/ .steam应该是〜/ .local / share / Steam的符号链接

Linux 5.6.2.arch1-2
mesa-aco-git 20.1.0_devel | 台面20.0.4-1
AMD锐龙5 3600X 6核处理器
AMD Radeon RX 580

我使用的是质子5.5-GE-1,安装了dotnet472,vcrun2019和dotnetcore2。 当我开始游戏时,它似乎运行良好。 但是,我会随机崩溃,并且在某些崩溃后仍然无法重新启动游戏。 如果发生这种情况,打开质子爆炸261550会出现以下错误:
/home/krulvis/.cache/protontricks/proton/Proton-5.5-GE-1/bin/wine cmd.exe /c echo '%AppData%' returned empty string, error message ""
有没有人有类似的经历或可能知道发生了什么事?

@Krulvis很可能wineserver卡住wineserver修复它。

我决定看一下使用PROTON_LOG标志时生成的日志,令人惊讶的是,它生成了一个包含数百万行的274MB文件,应该是这样吗? 请注意,我在启动游戏之前删除了以前的日志。

@ptkato是的,对于protontricks 'd .NET版本,这是正常的。 您可以通过在启动选项中传递自定义WINEDEBUG变量来减少这种情况。 默认情况下,质子假定WINEDEBUG=+timestamp,+pid,+tid,+seh,+debugstr,+loaddll,+mscoree ; +seh是产生这些行的原因,所以这就是您要取出的内容。

您还可以通过在Proton的安装文件夹中创建user_settings.py进行设置,例如~/.steam/steam/compatibilitytools.d/$PROTON_VERSION/~/.steam/steam/steamapps/common/$PROTON_VERSION/ (其中应该有user_settings.sample.py作为模板) 。 Valve似乎建议这样做,但我个人更喜欢逐场设置这些内容。

完成后,运行protontricks 261550 --gui dlls

@Tercus您也可以只运行protontricks 261550 --gui并使用“选择默认前缀”选项(自动选择)。 应该将您带到同一个地方(即使该选项的名称具有误导性,因为“默认”质子技巧集合的确是compatdata/261550/pfx的一个,而不是例如~/.wine )。

到目前为止,我可以节省大约3到4个小时,然后我才开始在所有修复程序上持续崩溃,这就是我很幸运的地方。 我经常只能约一个小时。 刷新pfx似乎可以让我在使用相同游戏版本的旧版本上节省一个小时。 到目前为止,我只用了最初的几个小时就没有dotnet *,但是保存时间使它很难测试。

现在这也是我的行为。 在持续崩溃之前,我可以节省几个小时。 尝试更仔细地查看一些日志,看看我能找到什么。 我在这里 :)

到目前为止,我可以节省大约3到4个小时,然后我才开始在所有修复程序上持续崩溃,这就是我很幸运的地方。 我经常只能约一个小时。 刷新pfx似乎可以让我在使用相同游戏版本的旧版本上节省一个小时。 到目前为止,我只用了最初的几个小时就没有dotnet *,但是保存时间使它很难测试。

@allquixotic
〜/ .steam应该是〜/ .local / share / Steam的符号链接

Linux 5.6.2.arch1-2
mesa-aco-git 20.1.0_devel | 台面20.0.4-1
AMD锐龙5 3600X 6核处理器
AMD Radeon RX 580

是的,ACO事情是一个错误的标志,今天晚些时候加载我的保存之后,我得到了相同的行为。 一直在查看日志,似乎崩溃是由于每次都发生相同的错误,这至少应该令人鼓舞:

 Unhandled Exception: System.AccessViolationException: Attempted to read or write protected memory. This is often an indication that othe

TaleWorlds.Localization.TextProcessor.Tokenizer.FindTokenMatches(String text, Int32 beginIndex, Int32 endIndex, List`1 tokenMatches)
   at TaleWorlds.Localization.TextProcessor.Tokenizer.FindTokenMatchesAndText(String text)
   at TaleWorlds.Localization.TextProcessor.Tokenizer.<Tokenize>d__2.MoveNext()
   at System.Collections.Generic.List`1..ctor(IEnumerable`1 collection)
   at System.Linq.Enumerable.ToList[TSource](IEnumerable`1 source)
   at TaleWorlds.Localization.MBTextManager.Process(String query, TextObject parent)
   at TaleWorlds.Localization.MBTextManager.ProcessText(TextObject to)
   at TaleWorlds.Localization.MBTextManager.ProcessText(TextObject to)
   at TaleWorlds.Localization.TextObject.ToString()
   at SandBox.ViewModelCollection.Nameplate.PartyNameplateVM.RefreshDynamicProperties(Boolean forceUpdate)
   at System.Threading.Tasks.Parallel.<>c__DisplayClass17_0`1.<ForWorker>b__1()
   at System.Threading.Tasks.Task.InnerInvokeWithArg(Task childTask)
   at System.Threading.Tasks.Task.<>c__DisplayClass176_0.<ExecuteSelfReplicating>b__0(Object )
   at System.Threading.Tasks.Task.Execute()
   at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
   at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
   at System.Threading.Tasks.Task.ExecuteWithThreadLocal(Task& currentTaskSlot)
   at System.Threading.Tasks.Task.ExecuteEntry(Boolean bPreventDoubleExecution)
   at System.Threading.ThreadPoolWorkQueue.Dispatch()

@ptkato是的,对于protontricks .NET版本的WINEDEBUG变量来减少这种情况。 默认情况下,Proton假定WINEDEBUG=+timestamp,+pid,+tid,+seh,+debugstr,+loaddll,+mscoree+seh是产生这些行的原因,所以这就是您要取出的内容。

谢谢,这对您有所帮助,现在日志如下:
steam-261550.log

未处理的异常:System.AccessViolationException:尝试读取或写入受保护的内存。 这通常表明其他
TaleWorlds.Localization.TextProcessor.Tokenizer.FindTokenMatches(字符串文本,Int32 beginIndex,Int32 endIndex,List`1 tokenMatches)
在TaleWorlds.Localization.TextProcessor.Tokenizer.FindTokenMatchesAndText(字符串文本)
在TaleWorlds.Localization.TextProcessor.Tokenizer中。d__2.MoveN
...

@tkamat对不起,如果这是噪音,但来自什么日志,在261550/pfx/drive_c/ProgramData/Mount and Blade II Bannerlord/logs/或WINEDEBUG = + timestamp,+ pid,+ tid,+ seh,+ debugstr,+ loaddll中找不到相似的内容, + mscoree

@allquixotic @Tercus我会说可以通过AUR安装“ Proton”技巧“ pamac install protontricks-git”,我相信IIRC(目前不在我的办公桌前仔细检查软件包名称)

多人游戏停止为任何人工作吗? 我现在收到couldn't receive login results from server错误。 :(

我已经更新了我的小指南,并包含了建议。 要点可以在这里找到。 您可以在此处评论更改。 谢谢大家的辛勤工作。 发布后不久,游戏就可以在Linux下玩了!

@ptkato查看日志,我发现的唯一是

4307.340:002a:0032:err:winediag:SECUR32_initNTLMSP ntlm_auth was not found or is outdated. Make sure that ntlm_auth >= 3.0.25 is in your path. Usually, you can find it in the winbind package of your distribution

我无法确定这是导致您崩溃的原因,但它很容易修复; 您缺少Linux软件包! 如果您使用的是基于Debian / Ubuntu的发行版,则将显示winbind如错误消息所示,如果您运行的是基于Arch的发行版,则将使用samba

快去看看,是否可以解决任何问题!

我已经弄清楚了,至少对我而言,这使我的储蓄时间比其他人快得多。
如果没有dotnet,我的保存时间约为10秒,而使用dotnet时,则需要2秒左右。 其他一些也有类似的数字。
似乎最多的数字分别在2-3分钟和30秒左右。

对我来说,原因是fsync。 启用它,我得到了快速的保存时间,而关闭了它,我得到了缓慢的保存时间。

对我来说,dotnet似乎是造成许多看似随机崩溃的原因,我在这里尝试了所有修复程序组合以及我自己没有做出任何改进的事情。 对于我来说,dotnet带来的性能问题似乎从来没有发生过,因此崩溃是dotnet唯一的问题。

因此,目前我最好的经验是不进行任何Protontricks调整/安装,但请确保fsync正常运行(事实已经如此)。 我宁愿有10秒的保存时间,也没有/比2秒的保存时间和很多崩溃次数少的崩溃。 我还没有尝试足够长的时间来说明我的崩溃程度如何,但是至少它已经有了很大的改进。

我确实需要dotnet才能使启动器正常工作,所以我使用新的预期解决方法绕过了最近补丁中引入的启动器TaleWorlds,而是启动了Bannerlord.Native.exe 。 将其重命名为TaleWorlds.MountAndBlade.Launcher.exe ,我很好。

编辑:替代exe的一个缺点是启动程序会处理mod加载,因此如果绕过启动程序,则不会加载mod。 可以通过执行此处提到的操作来处理它,因此它易于管理但并不理想。

@ albin-engstrom嗯,使用fsync更好地运行游戏使我认为esync可能是一个问题,就像其他游戏一样。 有没有人尝试使用PROTON_NO_ESYNC=1运行游戏?

@tkamat我已经尝试了fsync和esync的所有组合的开或关。 但仅适用于dotnet。
据我所知,使用esync和fsync时,崩溃与任何其他组合都是相同的。 因为那是我当时所测试的,所以我没有特别注意节省时间的方式,但是如果节省的时间特别慢,我想我会注意到的。

@tkamat @ albin-engstrom我还测试了带有esync,fsync的游戏,并且没有两者,也没有dotnet,保存时间始终约为15秒(使用ryzen 3700x cpu和三星860 evo ssd)。

更新:
@ albin-engstrom在使用您的建议( Bannerlord.Native.exeTaleWorlds.MountAndBlade.Launcher.exe符号链接)时,我的保存时间提高了大约50%,例如,我现在获得了大约7.5秒的保存时间(不运行任何winetricks命令时)。

多人游戏停止为任何人工作吗? 我现在收到couldn't receive login results from server错误。 :(

今天早上再次检查,现在可以正常使用! !

我还使用esync,fsync进行了测试,没有这两者,也没有dotnet,保存时间始终约为15秒(使用ryzen 3700x cpu和Samsung 860 evo ssd)。

@elovin很有意思。 在我的情况下,可能是fsync解决了某种问题/工作环境,但是在其他情况下,该问题可能不存在,并且fsync并没有改变太多。 而且我有Ryzen 3900X和970 Evo,它们的外观非常相似,因此对我们来说不太可能有所不同。

当使用您的建议(Bannerlord.Native.exe与TaleWorlds.MountAndBlade.Launcher.exe链接)时,我的保存时间提高了大约50%,例如,我现在获得了7.5秒左右的保存时间(不运行任何winetricks命令时)。

太好了,原因可能是它加载的内容似乎有所不同。 当我第一次尝试安装dotnet时,保存时间短并且exe重命名似乎禁用/不加载dotnet。 一旦这样做,我的储蓄时间就很长。
可能是dotnet仅特定于启动器并已加载,因此当启动器被绕过时,不会加载dotnet。
可能还有一些其他未加载的内容可能是导致结果的原因。

@ albin-engstrom好了,我终于完成了一个启用fsync的内核的编译(我使用了linux-tkg ),并且可以确认没有dotnet或任何其他质子的保存时间从〜2分钟减少到仅10秒左右! 我花了很长时间没有对稳定性做出任何明确的结论,但是到目前为止,使用这种配置我没有遇到任何崩溃,而我尝试过的所有dotnet解决方案最终都崩溃了。

重申一下,这是我遵循的步骤:

  1. 安装启用了fsync的内核(再次建议使用linux-tkg)。
  2. 将Symlink Bannerlord.Native.exe链接到TaleWorlds.MountAndBlade.Launcher.exe
  3. 选择Proton-5.5-GE-1,删除以前的前缀,然后启动游戏。
  4. 而已! 不需要质子或其他东西。

尽管使用这种方法可以节省更多时间,但我认为稳定性的大幅提高弥补了几秒钟的差异,在有人设法调试dotnet崩溃之前,我将使用它。 很高兴看到它是否对其他任何人都有效,是的,感谢@ albin-engstrom弄清楚了fsync的问题。

@tkamat

我也在使用linux-tkg,可以建议这样做,这对于编译自己的内核而不是完全自己完成它是一个很大的帮助。 我这样做有多种原因,其中fsync是其中之一。
但是,如果您不想自己编译,则可能会在其选择的发行版中提供一些预编译的文件。

就我而言,我还使用了proton-tgk以及tkg的脚本来编译dxvk。

@ albin-engstrom好了,我终于完成了一个启用fsync的内核的编译(我使用了linux-tkg ),并且可以确认没有dotnet或任何其他质子的保存时间从〜2分钟减少到仅10秒左右! 我花了很长时间没有对稳定性做出任何明确的结论,但是到目前为止,使用这种配置我没有遇到任何崩溃,而我尝试过的所有dotnet解决方案最终都崩溃了。

重申一下,这是我遵循的步骤:

  1. 安装启用了fsync的内核(再次建议使用linux-tkg)。
  2. 将Symlink Bannerlord.Native.exe链接到TaleWorlds.MountAndBlade.Launcher.exe
  3. 选择Proton-5.5-GE-1,删除以前的前缀,然后启动游戏。
  4. 而已! 不需要质子或其他东西。

尽管使用这种方法可以节省更多时间,但我认为稳定性的大幅提高弥补了几秒钟的差异,在有人设法调试dotnet崩溃之前,我将使用它。 很高兴看到它是否对其他任何人都有效,是的,感谢@ albin-engstrom弄清楚了fsync的问题。

您在游戏中进行过围攻吗? 我注意到参加围攻,但特别是围攻是一个非常容易崩溃的活动。

@vahtos我没有带领任何人,但是我参加了3次

@vahtos我只是试图进行围攻,但没有崩溃。 可能与您的规格有关,也许尝试降低图形。 我注意到将纹理预算设置为较低对我很有帮助。

@tkamat谢谢。 我将尝试您的设置。 我认为这不是纹理预算的问题,因为在设置攻城或建立攻城引擎时我在战役地图上崩溃了。 实际上,我从来没有在我领导的围攻中投入战斗。

在启用fsync的情况下,我只是使用一个新的前缀测试了游戏,而没有修复任何protrontricks,并且我没有遇到任何崩溃。 除了尝试摆弄仍然使游戏崩溃的游戏设置外,游戏非常稳定,可以完全玩。

@ albin-engstrom好了,我终于完成了一个启用fsync的内核的编译(我使用了linux-tkg ),并且可以确认没有dotnet或任何其他质子的保存时间从〜2分钟减少到仅10秒左右! 我花了很长时间没有对稳定性做出任何明确的结论,但是到目前为止,使用这种配置我没有遇到任何崩溃,而我尝试过的所有dotnet解决方案最终都崩溃了。
重申一下,这是我遵循的步骤:

  1. 安装启用了fsync的内核(再次建议使用linux-tkg)。
  2. 将Symlink Bannerlord.Native.exe链接到TaleWorlds.MountAndBlade.Launcher.exe
  3. 选择Proton-5.5-GE-1,删除以前的前缀,然后启动游戏。
  4. 而已! 不需要质子或其他东西。

尽管使用这种方法可以节省更多时间,但我认为稳定性的大幅提高弥补了几秒钟的差异,在有人设法调试dotnet崩溃之前,我将使用它。 很高兴看到它是否对其他任何人都有效,是的,感谢@ albin-engstrom弄清楚了fsync的问题。

您在游戏中进行过围攻吗? 我注意到参加围攻,但特别是围攻是一个非常容易崩溃的活动。

我尝试参加一次特定的围攻行动大约六次,但除一次外,几乎都冻结在加载屏幕上约两秒钟。 我还没有尝试围攻其他城镇。
这是使用5700XT(使用开源驱动程序)和@YellowApple发布的质子构建原始

我已经回到Warband了,但是看来这里取得了不错的进展,所以我这个周末可能会跳回葡萄酒调试乐队。

Fedora 32,内核5.6.3
锐龙2700 at 4ghz
AMD Rx580
质子5.5-GE-1

我确实使用Winetricks安装了DotNet 4.72。 如果执行此操作,启动器将正常运行。 但是,性能不是很好。 然后,我尝试用Bannerlord.Native.exe替换启动器。 这实际上显着提高了性能。 但是现在保存游戏大约需要2分钟。 此外,游戏有时会达到100%的CPU使用率,并且似乎停滞不前。 几分钟后,它将恢复正常并可以再次播放。

性能有些不错。 感觉有点发粘,偶尔会冻结。

编辑:替代exe的一个缺点是启动程序会处理mod加载,因此如果绕过启动程序,则不会加载mod。 可以通过执行此处提到的操作来处理它,因此它易于管理但并不理想。

可能值得尝试将它们作为启动选项传递; 如果我的rgl_log可以通过,则看起来.exe在其参数中包含了它们的列表:

Command Args: /singleplayer _MODULES_*Native*SandBoxCore*CustomBattle*Sandbox*StoryMode*BannerLogger*CalradiaFutureWarfare*CharacterTrainer*DeveloperConsole*XorberaxYell*zzBannerlordTweaks*zzCharacterCreation*_MODULES_ /anticheat

我为Ubuntu 19.10安装了XanMod内核,并且可以确认保存时间从一两分钟缩短到了几秒钟,并且带有没有前缀的新前缀。

@DeathTBO尝试启用fsync的内核,该内核应将保存速度加快到大约10秒或更短。 它至少已经做了一些。 我不知道Fedora是否可以使用预编译的软件,但是我认为至少有一个。 否则,您可能必须自己编译。
您提到的冻结只是自动保存,因此这些冻结也会更快。

可能值得尝试将它们作为启动选项传递; 如果我的rgl_log可以通过,则看起来.exe在其参数中包含了它们的列表:
Command Args: /singleplayer _MODULES_*Native*SandBoxCore*CustomBattle*Sandbox*StoryMode*BannerLogger*CalradiaFutureWarfare*CharacterTrainer*DeveloperConsole*XorberaxYell*zzBannerlordTweaks*zzCharacterCreation*_MODULES_ /anticheat

@YellowApple我稍后

仅使用质子GE尝试了该游戏,并且运行非常出色。 毫不奇怪,主要问题是保存时间长,但是如果游戏在每次战斗前都没有自动保存,我会容忍...是否有办法禁用这些自动保存? 我宁愿在需要时进行一些(长时间)保存,而不是运行其他内核。

安装dotnet472,它几乎可以立即保存游戏,并且我的一个经常玩Warband的朋友经常告诉我,由于它经常崩溃(即使在Windows上),您也希望保存得非常频繁。 它还修复了启动程序,但这并不是很特殊,因为将Bannerlord.exe链接到ManagedStarter.exe的功能相同。

安装dotnet472,它几乎可以立即保存游戏,并且我的一个经常玩Warband的朋友经常告诉我,由于它经常崩溃(即使在Windows上),您也希望保存得非常频繁。 它还修复了启动程序,但这并不是很特殊,因为将Bannerlord.exe链接到ManagedStarter.exe的功能相同。

我尝试使用dotnet,但是游戏崩溃了很多次,所以如果可以禁用自动保存,我宁愿只使用质子GE来运行游戏。

@ Zouizoui78据我所知,不幸的是没有已知的禁用自动保存的方法。

我在Linux Mint 19.2上安装了brewix内核(我猜是启用了fsync),使用了一个新的前缀,现在节省了大约10秒的时间。 到目前为止,似乎很稳定,只有大约一个小时的播放时间,但没有崩溃,除非我最初更改设置时(似乎总是会发生这种情况)。

性能明显比以前差(加载纹理时口吃不清或我第一次参加战斗时,主菜单在默认/最大图形设置上出现了大幅fps下降),但将其降低到中等水平似乎很好。

仅凭单挑,最新的Proton-GE 5.5-1已合并了葡萄酒分期中的鼠标修复程序。

使用这些修复程序,我仍然只能获得鼠标控制,可能是每10次启动中就有1次。

确实很奇怪,一段时间后给葡萄酒打补丁后,我有100%的时间可以控制鼠标。 其他人在补丁无法正常工作的情况下遇到同样的问题吗?

@jaynus :您是否尝试使用新的前缀(运行protontricks 261550 annihilate )? 它不应该有任何区别,但是也许您有一些之前的怪异替代,或者?

@craftyguy使用一个新的前缀,每

现在,使用启用了fsync的内核+新鲜前缀使游戏非常稳定。
之前,我每10到15分钟就有一次崩溃,在某些地区甚至更频繁。

我安装linux-zen fsync linux-zen fsync
在Arch linux上,预构建的zen内核位于官方存储库中,因此非常易于安装。
我做了一个新的前缀,运行proton-tkg 5.5并且没有安装任何其他库。

游戏非常稳定,我玩了1个多小时,没有崩溃。 保存时间有点慢(10秒),但这是在稳定性上的一个很好的折衷。

我建议大家尝试linux-zen内核。


系统信息

操作系统:Arch Linux
内核:5.6.3-zen1-1-zen
CPU:AMD锐龙5 2600六核
GPU:Radeon RX Vega 56
GPU驱动程序:4.6 Mesa 20.0.4
内存:8 GB

我在Linux Mint 19.2上安装了brewix内核(我猜是启用了fsync),使用了一个新的前缀,现在节省了大约10秒的时间。 到目前为止,似乎很稳定,只有大约一个小时的播放时间,但没有崩溃,除非我最初更改设置时(似乎总是会发生这种情况)。

性能明显比以前差(加载纹理时口吃不清或我第一次参加战斗时,主菜单在默认/最大图形设置上出现了大幅fps下降),但将其降低到中等水平似乎很好。

第一次加载纹理/场景时,性能下降是正常的,随着着色器缓存的工作,这些效果应该会随着您玩的次数的增加而消失。

我建议每个人都尝试linux-zen内核。

我已经在这个新内核上阅读了几个小时。 我似乎找不到回滚选项。 我特别在看酒。 假设内核存在问题,难道要恢复为debian的默认值吗?

我在Linux Mint 19.2上安装了brewix内核(我猜是启用了fsync),使用了一个新的前缀,现在节省了大约10秒的时间。 到目前为止,似乎很稳定,只有大约一个小时的播放时间,但没有崩溃,除非我最初更改设置时(似乎总是会发生这种情况)。
性能明显比以前差(加载纹理时口吃不清或我第一次参加战斗时,主菜单在默认/最大图形设置上出现了大幅fps下降),但将其降低到中等水平似乎很好。

第一次加载纹理/场景时,性能下降是正常的,随着着色器缓存的工作,这些效果应该会随着您玩的次数的增加而消失。

玩了几个小时之后,似乎并没有发现任何东西。 总共进行了5小时,没有一次崩溃。

@ jake-hedges通常,当我想尝试不同的内核时,我将引导加载程序配置为具有一个菜单选项来引导实验内核,而将稳定/主线保留为默认选项。 这样,您就不会失去后备选项。

我建议每个人都尝试linux-zen内核。

我已经在这个新内核上阅读了几个小时。 我似乎找不到回滚选项。 我特别在看酒。 假设内核存在问题,难道要恢复为debian的默认值吗?

尝试询问debian的IRC或其他发行版支持渠道。 这是题外话。

并向他人发出警告:如果您不知道如何恢复或缺乏动力来解决问题,请不要下载随机内核或尝试进行内核试验。 人们通常会很快推荐可能会破坏您系统的内容,但会在遇到问题时帮助您进行修复。

尝试询问debian的IRC或其他发行版支持渠道。 这是题外话。

这是来自用户的180度旋转,该用户是在故障排除线程中使用随机开发人员变通办法的。

抱歉,但是我认为,如果建议解决方法可能会影响您的整个系统,则讨论回滚只是一个好习惯。 它可能不适合此线程的_作用域范围,但听起来此选项目前对许多人来说非常有吸引力。 为什么决定突然成为伪主持人是喜剧。

尝试询问debian的IRC或其他发行版支持渠道。 这是题外话。

这是来自用户的180度旋转,该用户是在故障排除线程中使用随机开发人员变通办法的。

抱歉,但是我认为,如果建议解决方法可能会影响您的整个系统,则讨论回滚只是一个好习惯。 它可能不适合此线程的_作用域范围,但听起来此选项目前对许多人来说非常有吸引力。 为什么决定突然成为伪主持人是喜剧。

@ jake-hedges也许您没有注意(提示:不是),但我从不建议您使用某些随机内核,而有人建议使用。 我建议所有这些“哎呀,我在尝试一些内核的过程中使系统变砖了!” 讨论移至其他地方,与此处的主题无关。

为什么决定突然成为伪主持人是喜剧。

本期的信噪比非常高,因此我们当中真正关心跟踪此游戏问题的人必须仔细阅读像您这样的助手的评论,他们宁愿谈论如何解决您搞砸的发行版安装尝试不了解的建议。

因此,去寻求支持在其他地方修复您的Linux安装(显然您已经中断了,大声笑),这不是debian支持论坛。

虽然安装另一个内核作为一种解决方法对于我们现在想要玩的人来说很有趣,但它实际上与使游戏正常运行并不相关,因为Steam不会安装新的内核来使游戏在质子下正常运行。 因此,使用@craftyguy的逻辑,就不会对其进行进一步的讨论。 另一种选择是允许一些简短的指南(不支持)来说明如何对各种发行版进行此操作。

尽管我已经对此发表评论,但我不妨补充一点,对于NixOS,nixpkgs中没有zen内核,但是将补丁添加到您的configuration.nix中非常容易,如下所示:

boot.kernelPatches = [
      { name = "fsync-support"; patch = ./linux-v5.4-fsync.patch; }
    ];

其中linux-v5.4-fsync.patch是从此处获取的。 这里的所有都是它的。 编译内核花了一段时间,我不得不限制要使用的内核数量,否则由于某种原因它会锁定我的系统。

内核解决方法在很多方面都是错误的。 除非您真的想在处于早期访问状态时以更少的崩溃来玩游戏,否则不要使用它。 恕我直言,它可以在带有Proton 5.5 GE + dotnet472和dotnet core的ArchLinux上的稳定内核上正常工作。 我有13个小时的游戏时间,偶尔会有1到2个小时的时间没问题。 只要经常保存它,您就可以了。 而且,请放轻松,这只是一个游戏。

@CrafterSvK我的理解是,使用带有Valve的fsync补丁的内核不会减少崩溃。 该游戏似乎使用了一些Windows同步原语,这些原语在Linux(eventfd)中具有并行功能,但并不完全相同。 Proton开发人员编写了一个内核补丁,以允许线程以与在Windows上完全相同的方式等待多个线程,但是它尚未通过Linux的高标准,因此未在上游合并。

我推测缺少这些原语会迫使Wine以极其低效的方式模拟它们,并在每次保存时在游戏中造成残酷的死机,这种情况经常发生。 我已经玩了好几个小时,虽然可以玩但很痛苦。 我将在今天晚些时候尝试使用zen内核,如果可以运行,那么值得一试来玩这个游戏。 “频繁保存”是个极坏的建议,因为此处要解决的问题是保存游戏需要2分钟以上的时间。

我看到有关符号链接跳过启动程序的建议,但一种更清洁的解决方案不需要您重复每个补丁程序的工作,而是告诉Steam运行正确的二进制文件(从启动选项开始)。 这是我的: echo %command% && exec /usr/share/steam/compatibilitytools.d/proton-ge-custom/proton waitforexitandrun "/home/$USER/.local/share/Steam/steamapps/common/Mount & Blade II Bannerlord/bin/Win64_Shipping_Client/Bannerlord.exe"

如果您使用的是其他Proton目录,则可以使用echo %command% > ~/cmd启动游戏,

@CrafterSvK我的理解是,使用带有Valve的fsync补丁的内核不会减少崩溃。 该游戏似乎使用了一些Windows同步原语,这些原语在Linux(eventfd)中具有并行功能,但并不完全相同。 Proton开发人员编写了一个内核补丁,以允许线程以与在Windows上完全相同的方式等待多个线程,但是它尚未通过Linux的高标准,因此未在上游合并。

我推测缺少这些原语会迫使Wine以极其低效的方式来模拟它们,并在每次保存时在游戏中产生_brutal_挂起,这种情况经常发生。 我已经玩了好几个小时,虽然可以玩但很痛苦。 我将在今天晚些时候尝试使用zen内核,如果可以运行,那么值得一试来玩这个游戏。 “频繁保存”是个极坏的建议,因为此处要解决的问题是保存游戏需要2分钟以上的时间。

我用GE版本的质子节省了1-2秒,因此我的建议是基于经验的。

@KimmoKM您正在使用哪个版本的XanMod? 我尝试了XanMod,并且(在修复了完全令人讨厌的nvidia驱动程序之后)我的情况显然变得更糟。

看起来FUTEX_WAIT_MULTIPLE内核补丁对我来说也是一个新的非protontricks d构建也有相当不错的影响(使用linux-tkg的补丁以及Slackware64-current的修改版本dotnet472相比,性能和节省时间仍然明显差(仍然有很多停顿,尤其是在广告系列地图上),但是节省时间明显比使用默认前缀和没有FUTEX_WAIT_MULTIPLE在这里“经常保存”实际上是可行的,因为节省时间大约是10-30秒而不是数分钟),而且它的崩溃程度比dotnet472 (只是连续播放多个小时,崩溃次数为零,而在我之前如果能打一个小时,我会很幸运的。

我看到有关符号链接跳过启动程序的建议,但一种更清洁的解决方案不需要您重复每个补丁程序的工作,而是告诉Steam运行正确的二进制文件(从启动选项开始)。

如果您只是在执行ManagedStarter.exeBannerlord.exeManagedStarter_BE.exeBannerlord_BE.exe符号链接,那么这些链接应该可以幸免于难,并且仍能使启动器正常工作(或者至少在我的情况下,这两个都是正确的,在过去的几周中,通过几乎每个补丁以及带有和不带有dotnet任何版本的几十个前缀)。 如果确实确实完全绕过了启动器,那么,启动选项是一种干净的方法。

@KimmoKM您正在使用哪个版本的XanMod? 我尝试了XanMod,并且(在修复了完全令人讨厌的nvidia驱动程序之后)我的情况显然变得更糟。

5.5.15-xanmod1来自此存储库。 我正在使用AMD GPU。

@KimmoKM是我拉过的相同版本...
$cat /proc/version
Linux version 5.5.15-xanmod1 (root@mascote) (gcc version 9.3.0 (Debian 9.3.0-8)) #0 SMP PREEMPT Thu Apr 2 10:37:55 -03 2020

也许Nvidia / AMD可能是问题所在。 我正在使用GloriousEggroll的Proton 5.5-1。 更改后,游戏启动器可以正常工作,但是当我尝试启动游戏时,它会显示为白色屏幕,然后立即崩溃。 崩溃上传器现在可以正常工作了。

@KimmoKM是我拉过的相同版本...
$cat /proc/version
Linux version 5.5.15-xanmod1 (root@mascote) (gcc version 9.3.0 (Debian 9.3.0-8)) #0 SMP PREEMPT Thu Apr 2 10:37:55 -03 2020

也许Nvidia / AMD可能是问题所在。 我正在使用GloriousEggroll的Proton 5.5-1。 更改后,游戏启动器可以正常工作,但是当我尝试启动游戏时,它会显示为白色屏幕,然后立即崩溃。 崩溃上传器现在可以正常工作了。

如果我没记错的话,在此处记录此修复程序:“疑难解答”下的

@allquixotic不幸的是不是……我正在使用Nvidia驱动程序,而不是AMD。 尽管发生了频繁的崩溃,但事情通常对我有用。 xanmod内核似乎破坏了我的设置。 我会继续玩一些,看看是否可以正常使用,但我可能只需要还原即可。

AMD®Ryzen拆线器1900x 8核处理器×16
英伟达2060
带有xanmod内核的Ubuntu 19.10(5.5.15-xanmod1)


编辑

修正:事实证明Nvidia驱动程序仍然是问题,看起来您在切换到新内核后无法使用Ubuntu GUI安装新的驱动程序。

经过今天更加严格的测试之后,我撤回了之前的声明。 安装Dotnet 4.7并使用启动器后,性能会更好。 Dotnet还可以将保存时间以及加载区域的速度缩短到几秒钟。 一般性能可能需要一些工作,但我认为这与游戏本身有关。

@YellowApple通过启动选项加载mod。

因此,对于那些通过启动Bannerlord.Native.exe而绕过启动器并拥有要加载的Mod的人来说,可以将其用作Steam中的启动选项。

%command%
 _MODULES_
*Native*SandBoxCore*CustomBattle*Sandbox*StoryMode*TheNameOfAMod*
_MODULES_

@allquixotic不幸的是不是……我正在使用Nvidia驱动程序,而不是AMD。 尽管发生了频繁的崩溃,但事情通常对我有用。 xanmod内核似乎破坏了我的设置。 我会继续玩一些,看看是否可以正常使用,但我可能只需要还原即可。

AMD®Ryzen拆线器1900x 8核处理器×16
英伟达2060
带有xanmod内核的Ubuntu 19.10(5.5.15-xanmod1)

编辑

修正:事实证明Nvidia驱动程序仍然是问题,看起来您在切换到新内核后无法用Ubuntu GUI安装新驱动程序...再尝试使用命令行,一切就可以轻松启动并运行。

我正在将最新的Nvidia驱动程序与Xanmod LTS内核一起使用(最新的5.4.x稳定版),并且在这里也能很好地工作。

@allquixotic不幸的是不是……我正在使用Nvidia驱动程序,而不是AMD。 尽管发生了频繁的崩溃,但事情通常对我有用。 xanmod内核似乎破坏了我的设置。 我会继续玩一些,看看是否可以正常使用,但我可能只需要还原即可。

AMD®Ryzen拆线器1900x 8核处理器×16
英伟达2060
带有xanmod内核的Ubuntu 19.10(5.5.15-xanmod1)

编辑

修正:事实证明Nvidia驱动程序仍然是问题,看起来您在切换到新内核后无法用Ubuntu GUI安装新驱动程序...再尝试使用命令行,一切就可以轻松启动并运行。

我遇到了同样的崩溃,崩溃只是在白屏上显示了崩溃报告。 我在具有Intel GPU的MBP上使用Ubuntu 18.04.4,但我还没有克服这个白屏崩溃的可能。 据我所知,您似乎是该线程中唯一发生此崩溃的线程,所以我假设这是驱动程序问题。 我的问题是,使用xanmod之前,您的驱动程序是否与Bannerlord一起使用? 如果是这样,那么除非有人没有其他有用的想法,否则我知道这就是我要研究的。

发射器肯定会执行某些操作,从而影响保存时间。
我没有安装dotnet,因为它会导致崩溃,并且启用了fsync可以节省大量时间。

由于启动器必须在没有dotnet的情况下启动,因此我可以通过将Bannerlord.Native.exe重命名TaleWorlds.MountAndBlade.Launcher.exe来绕过启动器,这将使Steam启动。 也可以符号链接或使用启动选项来实现此目的。

或者我可以将Bannerlord.exeBannerlord_BE.exe重命名Bannerlord.exe ManagedStarter.exeManagedStarter_BE.exe以使启动器正常工作,我不知道为什么这样做,它可能已经在该线程的某个地方进行了解释。 符号链接或启动选项方法也可以在那里工作。

当做前者并绕过启动器时,我得到了约9秒的保存时间,当使用后一种方法来使用启动器时,我得到了约16秒的保存时间。

@remosasso是的,在使用xanmod之前,我的驱动程序正在工作。 如果转到设置中的“关于”部分,您应该会看到列出的图形...在更新驱动程序之前,它没有将我的卡标识为NVidia ...我更新了以下内容:

$ sudo add-apt-repository ppa:graphics-drivers / ppa
$ sudo apt更新
$ sudo apt-get install nvidia-driver-440

重启

@remosasso是的,在使用xanmod之前,我的驱动程序正在工作。 如果转到设置中的“关于”部分,您应该会看到列出的图形...在更新驱动程序之前,它没有将我的卡标识为NVidia ...我更新了以下内容:

$ sudo add-apt-repository ppa:graphics-drivers / ppa
$ sudo apt更新
$ sudo apt-get install nvidia-driver-440

重启

谢谢。 但是,看来我的驱动程序安装正确,在那对我来说没有任何运气。 您是否遇到过其他人遇到白屏崩溃的问题? 无论我使用哪个Proton,无论我使用dotnet 472还是更改任何.exe文件,我都会遇到相同的崩溃。 驱动程序似乎是逻辑问题,但是似乎不是。

我正在nvidia上遇到相同的白色屏幕崩溃。 自动保存是在Linux上运行时创建的,在加载自动保存后几秒钟会崩溃。 在Windows上进行相同的保存后,游戏运行正常

有没有人做过Proton和Windows之间的性能比较?

我无法在1.1 beta分支的多人游戏中找到游戏,并且无法恢复到稳定的分支,无法登录。 还有其他人可以播放mp吗?

编辑:
似乎mp在beta分支上的所有人(未经证实)都坏了: https: //forums.taleworlds.com/index.php

我将再次尝试稳定分支,看看我现在是否可以登录。

我无法在1.1 beta分支的多人游戏中找到游戏,并且无法恢复到稳定的分支,无法登录。 还有其他人可以播放mp吗?

编辑:
似乎mp在beta分支上的所有人(未经证实)都坏了: https: //forums.taleworlds.com/index.php

我将再次尝试稳定分支,看看我现在是否可以登录。

我只是能够在稳定分支上登录多人游戏。 大约两天前,我确实遇到了一个问题,我无法登录,但第二天问题就解决了。

我现在无法登录稳定分支。 从测试版还原时,可能有些事情搞砸了吗?

我现在无法登录稳定分支。 从测试版还原时,可能有些事情搞砸了吗?

Beta出现之前,几天前发生在我身上。 我以为他们终于发现我不在Windows上并禁止了我。 第二天它又开始工作了。

现在它对我有用,在恢复到MP稳定版之前,我曾在Beta上玩过SP。

使用PROTON_LOG=1选项,我在日志中找到了它:

[000000000000006F:] EXCEPTION handling: System.Net.Sockets.SocketException: Connection reset by peer.
...
[000000000000006F:] EXCEPTION handling: System.IO.IOException: Unable to read data from the transport connection: Connection reset by peer.
...
[000000000000006E:] EXCEPTION handling: System.Net.Sockets.SocketException: Error looking up error string
[000000000000006E:] EXCEPTION handling: System.IO.IOException: Unable to write data to the transport connection: Error looking up error string.
[0000000000000067:] EXCEPTION handling: System.IO.IOException: The authentication or decryption has failed.
...
[0000000000000073:] EXCEPTION handling: System.Net.WebException: Error: SecureChannelFailure (The authentication or decryption has failed.)
...
[0000000000000073:] EXCEPTION handling: System.AggregateException: One or more errors occurred. (Error: SecureChannelFailure (The authentication or decryption has failed.))
...
[0000000000000066:] EXCEPTION handling: System.Net.WebException: The operation has timed out.
...

我应该补充一点,这是在启用fsync的内核上运行的默认前缀上。 我尝试过有无VPN。

新的Beta版本1.1.0似乎修复了更多的崩溃问题。 我什至从1.0.10恢复了损坏的保存。 我正在使用“香草”质子-gtk。 我有时仍然会注意到一些性能问题,节省时间约10到12秒,并在3-4小时后随机崩溃,但这显然是可以玩的。

我已经在Linux上投入了60多个小时。 在30秒钟的保存时间中住了一段时间,但是将Proton 5.5-GE与dotnet472和dotnetcore一起使用已将我的保存时间减少到不到5秒。

.NET core是开源的,也许wine / proton应该考虑像将它们作为壁虎那样将其捆绑为可选组件。

我的游戏在启动过程中崩溃了。 我使用的是e1.1.0 - Beta带有Proton-5.5-GE-1

❯ rm -rf ~/.steam/steam/steamapps/compatdata/261550
❯ # Launch the game
❯ protontricks --version
protontricks (1.4.1)
❯ winetricks --version
20191224 - sha256sum: 1582b249d827074bb4c456b6ee5f55293a5fea5a66245f5cbe474f771c65e820
❯ protontricks 261550 dotnet472 2&>1 > log


日志输出

------------------------------------------------------
You are using a 64-bit WINEPREFIX. Note that many verbs only install 32-bit versions of packages. If you encounter problems, please retest in a clean 32-bit WINEPREFIX before reporting a bug.
------------------------------------------------------
Using winetricks 20191224 - sha256sum: 7b91df1f0a0c7be5e085edce2737ea9d8cea60b6ed891e04f041a46e61242131 with wine-5.0 and WINEARCH=win64
Executing w_do_call dotnet472
------------------------------------------------------
You are using a 64-bit WINEPREFIX. Note that many verbs only install 32-bit versions of packages. If you encounter problems, please retest in a clean 32-bit WINEPREFIX before reporting a bug.
------------------------------------------------------
Executing load_dotnet472 
------------------------------------------------------
This package (dotnet472) may not fully work on a 64-bit installation. 32-bit prefixes may work better.
------------------------------------------------------
Current Wine does not have Wine bug 42170, so not applying workaround
Executing w_do_call remove_mono
------------------------------------------------------
You are using a 64-bit WINEPREFIX. Note that many verbs only install 32-bit versions of packages. If you encounter problems, please retest in a clean 32-bit WINEPREFIX before reporting a bug.
------------------------------------------------------
Executing load_remove_mono 
uninstaller: The application with GUID '{8938A429-407D-5208-903D-37777470D766}' was not found
------------------------------------------------------
Working around wine bug 34803 
------------------------------------------------------
reg: The system was unable to find the specified registry key or value
reg: The system was unable to find the specified registry key or value
reg: The system was unable to find the specified registry key or value
Executing rm -f /home/tanner/.steam/steam/steamapps/compatdata/261550/pfx/dosdevices/c:/windows/system32/mscoree.dll
Executing rm -f /home/tanner/.steam/steam/steamapps/compatdata/261550/pfx/dosdevices/c:/windows/syswow64/mscoree.dll
Executing w_do_call dotnet462
------------------------------------------------------
You are using a 64-bit WINEPREFIX. Note that many verbs only install 32-bit versions of packages. If you encounter problems, please retest in a clean 32-bit WINEPREFIX before reporting a bug.
------------------------------------------------------
Executing load_dotnet462 
------------------------------------------------------
This package (dotnet462) may not fully work on a 64-bit installation. 32-bit prefixes may work better.
------------------------------------------------------
Executing w_do_call remove_mono
------------------------------------------------------
You are using a 64-bit WINEPREFIX. Note that many verbs only install 32-bit versions of packages. If you encounter problems, please retest in a clean 32-bit WINEPREFIX before reporting a bug.
------------------------------------------------------
Executing load_remove_mono 
------------------------------------------------------
Mono does not appear to be installed.
------------------------------------------------------
Executing w_do_call dotnet461
------------------------------------------------------
You are using a 64-bit WINEPREFIX. Note that many verbs only install 32-bit versions of packages. If you encounter problems, please retest in a clean 32-bit WINEPREFIX before reporting a bug.
------------------------------------------------------
Executing load_dotnet461 
------------------------------------------------------
This package (dotnet461) may not fully work on a 64-bit installation. 32-bit prefixes may work better.
------------------------------------------------------
Executing w_do_call remove_mono
------------------------------------------------------
You are using a 64-bit WINEPREFIX. Note that many verbs only install 32-bit versions of packages. If you encounter problems, please retest in a clean 32-bit WINEPREFIX before reporting a bug.
------------------------------------------------------
Executing load_remove_mono 
------------------------------------------------------
Mono does not appear to be installed.
------------------------------------------------------
Executing w_do_call dotnet46
------------------------------------------------------
You are using a 64-bit WINEPREFIX. Note that many verbs only install 32-bit versions of packages. If you encounter problems, please retest in a clean 32-bit WINEPREFIX before reporting a bug.
------------------------------------------------------
Executing load_dotnet46 
------------------------------------------------------
This package (dotnet46) may not fully work on a 64-bit installation. 32-bit prefixes may work better.
------------------------------------------------------
Executing w_do_call remove_mono
------------------------------------------------------
You are using a 64-bit WINEPREFIX. Note that many verbs only install 32-bit versions of packages. If you encounter problems, please retest in a clean 32-bit WINEPREFIX before reporting a bug.
------------------------------------------------------
Executing load_remove_mono 
------------------------------------------------------
Mono does not appear to be installed.
------------------------------------------------------
Executing w_do_call dotnet45
------------------------------------------------------
You are using a 64-bit WINEPREFIX. Note that many verbs only install 32-bit versions of packages. If you encounter problems, please retest in a clean 32-bit WINEPREFIX before reporting a bug.
------------------------------------------------------
Executing load_dotnet45 
------------------------------------------------------
This package (dotnet45) may not fully work on a 64-bit installation. 32-bit prefixes may work better.
------------------------------------------------------
Executing w_do_call remove_mono
------------------------------------------------------
You are using a 64-bit WINEPREFIX. Note that many verbs only install 32-bit versions of packages. If you encounter problems, please retest in a clean 32-bit WINEPREFIX before reporting a bug.
------------------------------------------------------
Executing load_remove_mono 
------------------------------------------------------
Mono does not appear to be installed.
------------------------------------------------------
Executing w_do_call dotnet40
------------------------------------------------------
You are using a 64-bit WINEPREFIX. Note that many verbs only install 32-bit versions of packages. If you encounter problems, please retest in a clean 32-bit WINEPREFIX before reporting a bug.
------------------------------------------------------
Executing load_dotnet40 
------------------------------------------------------
This package (dotnet40) may not fully work on a 64-bit installation. 32-bit prefixes may work better.
------------------------------------------------------
------------------------------------------------------
dotnet40 does not yet fully work or install on wine.  Caveat emptor.
------------------------------------------------------
Current Wine does not have Wine bug 42701, so not applying workaround
Executing w_do_call remove_mono
------------------------------------------------------
You are using a 64-bit WINEPREFIX. Note that many verbs only install 32-bit versions of packages. If you encounter problems, please retest in a clean 32-bit WINEPREFIX before reporting a bug.
------------------------------------------------------
Executing load_remove_mono 
------------------------------------------------------
Mono does not appear to be installed.
------------------------------------------------------
Executing w_do_call winxp
------------------------------------------------------
You are using a 64-bit WINEPREFIX. Note that many verbs only install 32-bit versions of packages. If you encounter problems, please retest in a clean 32-bit WINEPREFIX before reporting a bug.
------------------------------------------------------
Executing load_winxp 
The operation completed successfully
Setting Windows version to winxp
Executing /nix/store/rq1ra5a2fki62dmw2yc3d3750q0avisw-wine-wow-5.0/bin/wine regedit C:\windows\Temp\set-winver.reg
Executing /nix/store/rq1ra5a2fki62dmw2yc3d3750q0avisw-wine-wow-5.0/bin/wine64 regedit C:\windows\Temp\set-winver.reg
------------------------------------------------------
Running /nix/store/rq1ra5a2fki62dmw2yc3d3750q0avisw-wine-wow-5.0/bin/wineserver -w. This will hang until all wine processes in prefix=/home/tanner/.steam/steam/steamapps/compatdata/261550/pfx terminate
------------------------------------------------------
Executing cd /home/tanner/.cache/winetricks/dotnet40
Unhandled exception: C++ exception(object = 0x0032f594, type = 0x1009be00) in 32-bit code (0x7b032c45).
Register dump:
 CS:0023 SS:002b DS:002b ES:002b FS:0063 GS:006b
 EIP:7b032c45 ESP:0032f494 EBP:0032f4f8 EFLAGS:00000212(   - --  I   -A- - )
 EAX:0032f4a0 EBX:e06d7363 ECX:0032f490 EDX:0032f4b4
 ESI:100187cc EDI:00000000
Stack dump:
0x0032f494:  0032f534 0000000c 7bc75a1c e06d7363
0x0032f4a4:  00000001 00000000 7b032c45 00000003
0x0032f4b4:  19930520 0032f594 1009be00 0032fe18
0x0032f4c4:  00641a00 0032f4e8 00860000 00641a58
0x0032f4d4:  0032f4e8 0032f500 00110000 00000000
0x0032f4e4:  00000000 0032f528 7bc769e5 0032f510
Backtrace:
=>0 0x7b032c45 RaiseException+0x50(code=<couldn't compute location>, flags=<couldn't compute location>, count=<couldn't compute location>, args=<couldn't compute location>) [Z:\build\wine-5.0\dlls\kernelbase\debug.c:319] in kernelbase (0x0032f4f8)
  1 0x100814f2 in setupengine (+0x814f1) (0x0032f540)
  2 0x10066a29 EntryPoint+0xffffffff() in setupengine (0x0032f5b0)
  3 0x100636d8 EntryPoint+0xffffffff() in setupengine (0x0032f5d0)
  4 0x10061338 EntryPoint+0xffffffff() in setupengine (0x0032f608)
  5 0x10035a14 EntryPoint+0xffffffff() in setupengine (0x0032f678)
  6 0x1006b498 EntryPoint+0xffffffff() in setupengine (0x0032fdd8)
  7 0x1005fa6e EntryPoint+0xffffffff() in setupengine (0x0032fe48)
  8 0x10058323 EntryPoint+0xffffffff() in setupengine (0x0032fe9c)
  9 0x00402928 EntryPoint+0xffffffff() in setup (0x0032ff30)
  10 0x7b454c52 call_process_entry+0x11() in kernel32 (0x0032ff48)
  11 0x7b455070 start_process+0xdf(entry=<couldn't compute location>, peb=<couldn't compute location>) [Z:\build\wine-5.0\dlls\kernel32\process.c:153] in kernel32 (0x0032ffd8)
  12 0x7b454c5e __wine_start_process+0x9() in kernel32 (0x0032ffec)
0x7b032c45 RaiseException+0x50 [Z:\build\wine-5.0\dlls\kernelbase\debug.c:319] in kernelbase: addl  $12,%esp
Unable to access file 'Z:\build\wine-5.0\dlls\kernelbase\debug.c'
Modules:
Module  Address         Debug info  Name (112 modules)
PE    400000-  415000   Export          setup
PE  10000000-100c8000   Export          setupengine
PE  6cd00000-6cd24000   Deferred        sqmapi
ELF 7b000000-7b0e0000   Dwarf           kernelbase<elf>
  \-PE  7b020000-7b0e0000   \               kernelbase
ELF 7b400000-7b510000   Dwarf           kernel32<elf>
  \-PE  7b420000-7b510000   \               kernel32
ELF 7bc00000-7beb6000   Deferred        ntdll<elf>
  \-PE  7bc30000-7beb6000   \               ntdll
ELF 7c000000-7c006000   Deferred        <wine-loader>
ELF 7ccd2000-7cceb000   Deferred        kerberos<elf>
  \-PE  7cce0000-7cceb000   \               kerberos
ELF 7cceb000-7cd2a000   Deferred        uxtheme<elf>
  \-PE  7cd00000-7cd2a000   \               uxtheme
ELF 7cd2a000-7cd33000   Deferred        libxfixes.so.3
ELF 7cd33000-7cd40000   Deferred        libxcursor.so.1
ELF 7ce40000-7ce55000   Deferred        libxi.so.6
ELF 7ce55000-7ce5a000   Deferred        libxcomposite.so.1
ELF 7ce5a000-7cedb000   Deferred        setupapi<elf>
  \-PE  7ce70000-7cedb000   \               setupapi
ELF 7cedb000-7cf0a000   Deferred        libxcb.so.1
ELF 7cf0a000-7d05d000   Deferred        libx11.so.6
ELF 7d05d000-7d100000   Deferred        winex11<elf>
  \-PE  7d080000-7d100000   \               winex11
ELF 7d124000-7d133000   Deferred        libxrandr.so.2
ELF 7d133000-7d141000   Deferred        libxrender.so.1
ELF 7d141000-7d149000   Deferred        libxxf86vm.so.1
ELF 7d149000-7d15f000   Deferred        libxext.so.6
ELF 7d15f000-7d17c000   Deferred        libz.so.1
ELF 7d17c000-7d1bc000   Deferred        libpng16.so.16
ELF 7d1bc000-7d1cf000   Deferred        libbz2.so.1
ELF 7d1cf000-7d295000   Deferred        libfreetype.so.6
ELF 7d2ca000-7d2e3000   Deferred        libresolv.so.2
ELF 7d2e3000-7d311000   Deferred        iphlpapi<elf>
  \-PE  7d2f0000-7d311000   \               iphlpapi
ELF 7d311000-7d356000   Deferred        netapi32<elf>
  \-PE  7d320000-7d356000   \               netapi32
ELF 7d356000-7d394000   Deferred        secur32<elf>
  \-PE  7d360000-7d394000   \               secur32
ELF 7d394000-7d3b4000   Deferred        jsproxy<elf>
  \-PE  7d3a0000-7d3b4000   \               jsproxy
ELF 7d3b4000-7d3f9000   Deferred        winhttp<elf>
  \-PE  7d3c0000-7d3f9000   \               winhttp
ELF 7d3f9000-7d40f000   Deferred        psapi<elf>
  \-PE  7d400000-7d40f000   \               psapi
ELF 7d40f000-7d429000   Deferred        userenv<elf>
  \-PE  7d420000-7d429000   \               userenv
ELF 7d429000-7d449000   Deferred        bcrypt<elf>
  \-PE  7d430000-7d449000   \               bcrypt
ELF 7d449000-7d4ff000   Deferred        crypt32<elf>
  \-PE  7d460000-7d4ff000   \               crypt32
ELF 7d4ff000-7d53a000   Deferred        wintrust<elf>
  \-PE  7d510000-7d53a000   \               wintrust
ELF 7d53a000-7d55d000   Deferred        odbccp32<elf>
  \-PE  7d540000-7d55d000   \               odbccp32
ELF 7d55d000-7d579000   Deferred        mspatcha<elf>
  \-PE  7d560000-7d579000   \               mspatcha
ELF 7d579000-7d595000   Deferred        imagehlp<elf>
  \-PE  7d580000-7d595000   \               imagehlp
ELF 7d595000-7d5b2000   Deferred        sxs<elf>
  \-PE  7d5a0000-7d5b2000   \               sxs
ELF 7d5b2000-7d5da000   Deferred        cabinet<elf>
  \-PE  7d5c0000-7d5da000   \               cabinet
ELF 7d5da000-7d602000   Deferred        imm32<elf>
  \-PE  7d5e0000-7d602000   \               imm32
ELF 7d602000-7d651000   Deferred        usp10<elf>
  \-PE  7d610000-7d651000   \               usp10
ELF 7d651000-7d7a7000   Deferred        comctl32<elf>
  \-PE  7d680000-7d7a7000   \               comctl32
ELF 7d7a7000-7d7e5000   Deferred        ws2_32<elf>
  \-PE  7d7c0000-7d7e5000   \               ws2_32
ELF 7d7e5000-7d80d000   Deferred        mpr<elf>
  \-PE  7d7f0000-7d80d000   \               mpr
ELF 7d80d000-7d88c000   Deferred        wininet<elf>
  \-PE  7d820000-7d88c000   \               wininet
ELF 7d88c000-7d933000   Deferred        urlmon<elf>
  \-PE  7d8b0000-7d933000   \               urlmon
ELF 7d933000-7da62000   Deferred        msi<elf>
  \-PE  7d960000-7da62000   \               msi
ELF 7da62000-7db99000   Deferred        oleaut32<elf>
  \-PE  7da90000-7db99000   \               oleaut32
ELF 7db99000-7dc34000   Deferred        rpcrt4<elf>
  \-PE  7dbc0000-7dc34000   \               rpcrt4
ELF 7dc34000-7dda0000   Deferred        ole32<elf>
  \-PE  7dc70000-7dda0000   \               ole32
ELF 7dda0000-7ddc8000   Deferred        shcore<elf>
  \-PE  7ddb0000-7ddc8000   \               shcore
ELF 7ddc8000-7de2d000   Deferred        shlwapi<elf>
  \-PE  7dde0000-7de2d000   \               shlwapi
ELF 7de2d000-7e7d6000   Deferred        shell32<elf>
  \-PE  7de60000-7e7d6000   \               shell32
ELF 7e7d6000-7e8b1000   Deferred        msvcrt<elf>
  \-PE  7e800000-7e8b1000   \               msvcrt
ELF 7e8b1000-7e8c8000   Deferred        version<elf>
  \-PE  7e8c0000-7e8c8000   \               version
ELF 7e8c8000-7ea14000   Deferred        gdi32<elf>
  \-PE  7e8f0000-7ea14000   \               gdi32
ELF 7ea14000-7ec46000   Deferred        user32<elf>
  \-PE  7ea50000-7ec46000   \               user32
ELF 7ec46000-7ecca000   Deferred        advapi32<elf>
  \-PE  7ec60000-7ecca000   \               advapi32
ELF 7eeff000-7f000000   Deferred        libm.so.6
ELF f7afe000-f7b6a000   Deferred        msxml3<elf>
  \-PE  f7b10000-f7b6a000   \               msxml3
ELF f7bb0000-f7bb8000   Deferred        libxdmcp.so.6
ELF f7bb8000-f7bbd000   Deferred        libxau.so.6
ELF f7bc1000-f7bc7000   Deferred        libdl.so.2
ELF f7bc7000-f7da7000   Deferred        libc.so.6
ELF f7da7000-f7dc9000   Deferred        libpthread.so.0
ELF f7dc9000-f7f7d000   Dwarf           libwine.so.1
ELF f7f81000-f7fab000   Deferred        ld-linux.so.2
ELF f7fae000-f7fb0000   Deferred        [vdso].so
Threads:
process  tid      prio (all id:s are in hex)
00000008 dotNetFx40_Full_x86_x64.exe
    00000028    0
    00000009    0
0000000e services.exe
    00000025    0
    0000001c    0
    00000015    0
    00000010    0
    0000000f    0
00000011 plugplay.exe
    00000019    0
    00000018    0
    00000012    0
00000013 explorer.exe
    00000022    0
    00000021    0
    0000001f    0
    00000014    0
0000001a winedevice.exe
    00000020    0
    0000001e    0
    0000001d    0
    0000001b    0
00000023 winedevice.exe
    00000027    0
    00000026    0
    00000024    0
0000002c (D) C:\9121dba59fb375d0b974\Setup.exe
    00000030    0
    0000002d    0 <==
System information:
    Wine build: wine-5.0
    Platform: i386 (WOW64)
    Version: Windows XP
    Host system: Linux
    Host version: 4.19.108
Using native override for following DLLs: mscoree
Executing /nix/store/rq1ra5a2fki62dmw2yc3d3750q0avisw-wine-wow-5.0/bin/wine regedit C:\windows\Temp\override-dll.reg
Executing /nix/store/rq1ra5a2fki62dmw2yc3d3750q0avisw-wine-wow-5.0/bin/wine64 regedit C:\windows\Temp\override-dll.reg
The operation completed successfully
The operation completed successfully
The operation completed successfully
Setting Windows version to default
Executing /nix/store/rq1ra5a2fki62dmw2yc3d3750q0avisw-wine-wow-5.0/bin/wine regedit C:\windows\Temp\set-winver.reg
Executing /nix/store/rq1ra5a2fki62dmw2yc3d3750q0avisw-wine-wow-5.0/bin/wine64 regedit C:\windows\Temp\set-winver.reg
------------------------------------------------------
Running /nix/store/rq1ra5a2fki62dmw2yc3d3750q0avisw-wine-wow-5.0/bin/wineserver -w. This will hang until all wine processes in prefix=/home/tanner/.steam/steam/steamapps/compatdata/261550/pfx terminate
------------------------------------------------------
------------------------------------------------------
dotnet40 install completed, but installed file /home/tanner/.steam/steam/steamapps/compatdata/261550/pfx/dosdevices/c:/windows/Microsoft.NET/Framework/v4.0.30319/ngen.exe not found
------------------------------------------------------

实际游戏启动方法的错误为:

ERROR: ld.so: object '/home/tanner/.local/share/Steam/ubuntu12_32/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored.

我仍然无法在稳定分支(e1.0.10)上登录多人游戏。

@agates重新启动后启动游戏没有问题吗?
我正在重新安装它,看它是否可以修复设置。 昨晚运行正常,但今天没有启动
我必须运行protontricks 261550 dotnetcore才能在dotnet472之后安装它?

@agates重新启动后启动游戏没有问题吗?
我正在重新安装它,看它是否可以修复设置。 昨晚运行正常,但今天没有启动
我必须运行protontricks 261550 dotnetcore才能在dotnet472之后安装它?

到目前为止,我遇到的任何问题都与mod有关。

dotnetcore不在winetricks中,因此必须手动安装。 @Aliervo上面

@黄苹果
我们发布了新闻! 感谢您的修复!

@Aliervo @agates我得到以下输出:

./proton run ~/dotnet-runtime-2.1.17-win-x64.exe
ProtonFixes[19625] INFO: Running protonfixes
ProtonFixes[19625] INFO: Running checks
ProtonFixes[19625] INFO: All checks successful
ProtonFixes[19625] INFO: No protonfix found for UNKNOWN (261550)

我想念什么吗?

@Aliervo @agates我得到以下输出:

./proton run ~/dotnet-runtime-2.1.17-win-x64.exe
ProtonFixes[19625] INFO: Running protonfixes
ProtonFixes[19625] INFO: Running checks
ProtonFixes[19625] INFO: All checks successful
ProtonFixes[19625] INFO: No protonfix found for UNKNOWN (261550)

我想念什么吗?

文件dotnet-runtime-2.1.17-win-x64.exe在您的主目录中吗?

当指定的位置不存在时,我会得到确切的输出。

例如,我的位置是~/Downloads/dotnet-runtime-2.1.17-win-x64.exe

@agates是的,一切就绪,也许是因为我已经安装了它吗?

测验

计划

我尝试测试了到目前为止我们看到的一些建议。 明天我将尝试更多组合,其中可能包括使用启用了fsync的内核。 我还将尝试对一些更有前途的解决方案进行测试,例如更改图形设置而不会崩溃和总体游戏稳定性。 我将更新这篇文章,但也可以在本要点中查看。

设置

我当前的测试方法非常基础。 我创建一个新的前缀并运行游戏一次,以完成基本的设置工作。 然后添加要测试的组件。 如果新测试包括先前测试的组件,则跳过新前缀的创建(当我从vcrun2019更改vcrun20190 + dotnet472时,没有新的前缀)。 然后,我开始游戏,开始新的战役,在训练区域中四处奔跑,离开游戏,在世界地图中四处奔跑,最后保存一次游戏。 我将针对最有前途的解决方案扩展测试。


如果您想了解我的系统规格

System:    Host: tobias-X570 Kernel: 5.5.0-050500rc5-generic x86_64 bits: 64 Desktop: KDE Plasma 5.18.4
           Distro: KDE neon User Edition 5.18
Machine:   Device: desktop System: Gigabyte product: X570 AORUS MASTER v: -CF serial: N/A
           Mobo: Gigabyte model: X570 AORUS MASTER v: x.x serial: N/A
           UEFI: American Megatrends v: F11 date: 12/06/2019
CPU:       8 core AMD Ryzen 7 3800X (-MT-MCP-) speed/max: 1897/3900 MHz
Graphics:  Card: Advanced Micro Devices [AMD/ATI] Device 7340
           Display Server: x11 (X.Org 1.19.6 ) drivers: ati,amdgpu (unloaded: modesetting,fbdev,vesa,radeon)
           Resolution: [email protected]
           OpenGL: renderer: Radeon RX 5500 XT (NAVI14, DRM 3.36.0, 5.5.0-050500rc5-generic, LLVM 9.0.1)
           version: 4.6 Mesa 20.1.0-devel (git-089e1fb 2020-04-09 bionic-oibaf-ppa)

被告知

尽管我的测试可能显示出一些令人鼓舞的结果,但它们并没有显示游戏的长期稳定性。 我在测试中所做的一切就是打开游戏并开始新的活动,离开测试场地并保存游戏。

结果(到目前为止)

| 游戏版本| vcrun 2019 | dotnet 472 | dotnet 480 | .Net-Core 2.1.17 | .NET-Core 3.1.3 | FPS训练场| FPS世界地图| 节省时间慢速串流* |
|:-:|:-:|:-:|:-:|:-:|:-:|:-:|:-:| :::-:|:-:|
| 1.1.0 | 🔲| 🔲| 🔲| 🔲| 🔲| 45-50 | 56-72 | 1:12 | 没有
| 1.1.0 | ☑️| 🔲| 🔲| 🔲| 🔲| 45-50 | 56-72 | 1:28 | 没有
| 1.1.0 | ☑️| ☑️| 🔲| 🔲| 🔲| 69-74 | 65-75 | 0:02 | 没有
| 1.1.0 | 🔲| ☑️| 🔲| 🔲| 🔲| 69-74 | 66-79 | 0:02 | 没有

*这是指进入新区域时所有对象均已加载时游戏运行缓慢的效果

@matheo ,即使已经安装,您也应该获得一个安装程序窗口。 也许仔细检查您的STEAM_COMPAT_DATA_PATHcompatibilitytools.d文件夹。

有没有人得到环绕声(例如5.1)正常工作?

每当我尝试在其中启动一个窗口(例如Bannerlord窗口或protontricks资源管理器)时,都会遇到以下问题,并使用推荐的Proton-5-5-GE版本:

000b:err:winediag:nodrv_CreateWindow Application tried to create a window, but no driver could be loaded.
000b:err:winediag:nodrv_CreateWindow The explorer process failed to start.

有趣的是,启动带有葡萄酒分期的dotnet核心安装程序工作正常,因此似乎特定于此Proton版本。 知道这可能是什么原因或如何解决?

我用dotnet472和dotnetcore2替换了(默认的)前缀,现在我可以在稳定分支上登录多人游戏了。 我不知道是否安装了vcrun2015和vcrun2017; 在运行protontricks 261550 list-installed时未列出它们。

奇怪的是,我如何使用默认的pfx登录1.1 beta(尽管实际上没有可用的服务器)。

每当我尝试在其中启动一个窗口(例如Bannerlord窗口或protontricks资源管理器)时,都会遇到以下问题,并使用推荐的Proton-5-5-GE版本:

000b:err:winediag:nodrv_CreateWindow Application tried to create a window, but no driver could be loaded.
000b:err:winediag:nodrv_CreateWindow The explorer process failed to start.

有趣的是,启动带有葡萄酒分期的dotnet核心安装程序工作正常,因此似乎特定于此Proton版本。 知道这可能是什么原因或如何解决?

您是否尝试过删除compatdata/261550/文件夹并安装所有依赖项,包括dotnet472和dotnetcore? 这使它可以在我的系统上工作。

您是否尝试过删除compatdata/261550/文件夹并安装所有依赖项,包括dotnet472和dotnetcore? 这使它可以在我的系统上工作。

我尝试删除该文件夹并再次安装dotent472,但似乎没有帮助。 在这种情况下,由于相同的错误,安装程序似乎无法启动,因此我无法安装dotnetcore。 我还从2小时前开始尝试使用5.6-GE-1版本进行相同的操作,但是遇到了相同的问题。

我不知道是否安装了vcrun2015和vcrun2017; 在运行protontricks 261550 list-installed时未列出它们。

我在当前设置中根本没有安装vcrun。

可以确认我获得了出色的性能,〜5-10秒的保存时间以及Proton-GE,zen内核(用于fsync修补程序)以及由Steam创建和配置的常规质子前缀的非常罕见的崩溃。

对于NixOS系统上的其他任何人,请在您的configuration.nix中加载以下文件以构建并安装zen内核: https ://gist.github.com/hjones2199/11b45917a2944b692dac40015ea0fd41您可能还需要禁用当前的boot.kernelPackages表达避免冲突。

对于使用新内核(我正在运行xanmod)的其他任何人:我还安装了dotnetcore,到目前为止,这似乎是两全其美的方法-我还没有经历过一次崩溃,并且性能非常好。 有时候战斗会非常严重,但是重新启动似乎可以解决此问题,战役地图的停顿现象已经完全消失。

在安装了dotnet472的情况下更改视频设置时,仍然会崩溃(以及许多其他随机崩溃),除非我以某种方式不正确地安装了它? 有没有办法检查? (我已使用列表安装的protontricks 261550,并且出现了dotnet 472)。

有时候战斗会非常严重,但是重新启动似乎可以解决此问题,战役地图的停顿现象已经完全消失。

Windows端也有类似的性能问题和内存泄漏等,因此听起来好像很棒:)。

每当我尝试在其中启动一个窗口(例如Bannerlord窗口或protontricks资源管理器)时,都会遇到以下问题,并使用推荐的Proton-5-5-GE版本:

000b:err:winediag:nodrv_CreateWindow Application tried to create a window, but no driver could be loaded.
000b:err:winediag:nodrv_CreateWindow The explorer process failed to start.

有趣的是,启动带有葡萄酒分期的dotnet核心安装程序工作正常,因此似乎特定于此Proton版本。
我尝试删除该文件夹并再次安装dotent472,但似乎没有帮助。 在这种情况下,由于相同的错误,安装程序似乎无法启动,因此我无法安装dotnetcore。 我还从2小时前开始尝试使用5.6-GE-1版本进行相同的操作,但是遇到了相同的问题。

我现在也尝试了其他“香草”质子版本(5.0-5甚至4.2-9),并且在日志中得到了完全相同的错误,因此它似乎不是特定于GE版本的。

编辑:经过更多搜索后,我发现#2878表示这是一个NTFS特定问题-将游戏移至我的ext4 SSD可以解决此问题

可以确认我获得了出色的性能,〜5-10秒的保存时间以及Proton-GE,zen内核(用于fsync修补程序)以及由Steam创建和配置的常规质子前缀的非常罕见的崩溃。

对于NixOS系统上的其他任何人,请在您的configuration.nix中加载以下文件以构建并安装zen内核: https ://gist.github.com/hjones2199/11b45917a2944b692dac40015ea0fd41您可能还需要禁用当前的boot.kernelPackages表达避免冲突。

这个问题几乎不可能浏览,所以我不怪您错过了它,但是我已经通过向当前内核添加一个补丁为这个问题提供了一个简单的解决方案,并且非常简单: https

基本上,将补丁添加到您的configuration.nix中,如下所示:
boot.kernelPatches = [{ name = "fsync-support"; patch = ./linux-v5.4-fsync.patch; }];
其中linux-v5.4-fsync.patch是从此处获取的。 但是可能需要一段时间才能编译。

现在,如果我尝试进入包围状态,则界面会锁定,我什么也做不了,游戏运行正常,但是鼠标似乎没有反应; 我仍然可以移动鼠标,但是它的闪烁非常快。 我还需要在游戏内外按Esc键Alt + Tab键,以使退出菜单出现。

编辑,只有fsync且没有protontricks修复。 如果我还使用了protontricks修复程序,则游戏将像以前一样再次崩溃。

每当我尝试使用保存文件进入屏幕时,最新的补丁程序(1.0.11)就为我打破了游戏(使用干净的葡萄酒前缀进行了测试),但出现此异常:

Unhandled Exception: System.NullReferenceException: Object reference not set to an instance of an object

但是,我可以开始一个新的露营,但是当我选择“另存为”选项时,我遇到了同样的异常。

更新:
@agates Beta分支有效,谢谢

@elovin您是否尝试过beta分支(e1.1.0)?

看来Bannerlord目前无法与primusrun ,但是我设法使用nvidia-xrun使它在具有nvidia可切换图形的笔记本电脑上运行。

看来Bannerlord目前无法与primusrun ,但是我设法使用nvidia-xrun使它在具有nvidia可切换图形的笔记本电脑上运行。

好吧,在大黄蜂和初生动物中,没有什么能真正起作用。 我必须切换到xrun才能使一半的游戏正常工作。

也应该与PRIME Render Offloading一起使用。

好的,我想这可能与Bannerlord并没有严格的关系,但是话又说回来,也许Steam会将库安装到前缀或某些其他Bannerlord特定的因素会有所改变(我不知道),所以我想很好的问题在这里:我正在尝试为dotnet472运行protontricks,但这会导致崩溃,因为“提取文件”对话框打开且进度条完成。 dotnet48质子攻击以类似方式失败。 控制台输出

有指针吗?

您好,我很难在横幅上运行bannerlord,我尝试了质子5.5-GE和5.6-GE-2。 到目前为止,在崩溃之前,我已经打开一个窗口并显示了一次光标!

  • 我的蒸汽库位于HDD(ntfs)上,现在已正确安装并进行符号链接(从该库)以指向我的linux compatdata文件夹

  • 我已经删除了compatdata文件夹并启动了它,然后完成了protontricks 261550 dotnet472 -这是我首先弹出游戏窗口并使光标可见几秒钟的方式

这是来自Steam /质子的日志: https :

并从Windows / Wine启动并崩溃时崩溃报告。 我无法再次显示光标和窗口,崩溃首先出现。 之后bannerlord显然仍在“奔跑”中,我无法阻止它。 https://gist.github.com/hadallen/d7b00c97e492195f360b8589c5d67685

我担心这只是我自己某个地方的愚蠢错误,但不知道该怎么办

edit1:我终于通过了这个线程,找到了Tercus撰写的指南。 我只是又经历了一次,仍然遇到相同的问题

edit2 :我快要放弃了,我重新安装了bannerlord

  1. protontricks 261550 dotnet48开始。 我真的不想等待30分钟来安装dotnet472,所以我独自尝试了一次,并且效果很好。 坠毁
  2. 再次安装了vcrun2019和2个dotnetcore(按照Tercus的记录)-再次运行; 开始了! 但是非常慢,没有鼠标输入,在退出设置后崩溃..听起来好像没有使用更新的质子
  3. 这很奇怪,因为旗帜王选择了质子5.6-GE-1。 这使我有了在Steam设置中禁用“为所有其他标题启用Steam播放”的想法,并且_voila_; 它工作得非常好!

由于dotnetcore似乎仍然有帮助,因此我在这里提到我的PR已被接受,现在已经成为酒鬼了!

运行winetricks --self-update (如果已与软件包管理器一起安装,请以root身份运行)以获取最新版本,然后可以使用winetricks dotnetcore2

专家提示:在任何winetricks安装上,添加-q使其进入无人参与模式,而不必在一堆Windows上单击“安装”。 所以上面就是winetricks -q dotnetcore2

@Aliervo我收到了酒错误:
https://docs.microsoft.com/zh-cn/dotnet/framework/install/application-not-started?version=(null)&processName = rundll32.exe&platform = 0009&osver = 3&isServer = 0&shimver = 4.0.30319.0
然后这个:
image
64位安装正常吗?

@matheo ,不确定错误,但是winetricks将同时安装32位和64位版本的.Net Core。 期望如此之高。

它还会检查它的安装是否正确,因此,如果您在两个安装程序之后都没有看到错误消息,我们将知道第一个错误没有任何影响。

使用或不使用vcrun2019的dotnet472,我的保存时间都很慢(超过1分钟)。 有谁知道fsync内核补丁对于减少保存时间是否必要/其他一些好主意来缩短保存时间?

@rgreenblatt
据我所知,Fsync可以显着提高几乎每个人的保存时间,因此如果您对运行自定义内核和/或自己编译感到满意,那么值得尝试一下。

另一件事是绕过启动器(如果尚未启动)。 与开始Bannerlord.Native.exe而不是TaleWorlds.MountAndBlade.Launcher.exe 。 可以通过重命名它们或对其进行符号链接或在Steam启动选项中设置要启动的内容来完成此操作。

由于未知原因,当我使用fsync且没有其他质子调整时,正在使用的启动器将使我的保存时间大约增加一倍。 我不知道它是否适用于任何其他情况,但无论哪种方式都值得一试。

我最好的经验是使用fsync,它重命名并且完全没有质子技巧。 相对很少的崩溃,大约7-8秒的保存时间。 Dotnet会将保存时间缩短到2秒左右,但会导致更多崩溃。

从我在该线程其余部分中看到的@rgreenblatt可以看出,dotnet是长时间保存解决方案,但要付出一些不稳定的代价。 正如albin-engstrom所说,fsync的保存时间性能差得多。 话虽如此,我发现如果没有启用fsync的内核,该游戏将几乎无法玩,并且不能推荐足够的游戏。

对于其他所有人,多人游戏是否为其他人工作? 我将近一个星期无法登录。 我进入登录页面,并在提示我无法登录之前,经历了几分钟的厄运循环,这是Beta和Stable分支上的。

Bannerlord.exe和Bannerlord.Native.exe之间有什么区别? (很抱歉,如果它在上面的线程中的某个地方,我找不到搜索github注释的方法)

通过安装https://liquorix.net/ (我认为它具有fsync修补程序)并使用Bannerlord.Native.exe而不是Bannerlord.exe,我能够将保存时间减少到不到10秒(从一分钟以上)。 我不确定哪个更改会有所帮助。 以后我可能会做更多的科学测试。

据我所知, @ rgreenblatt Liquorix具有fsync,因此影响最大,运行Bannerlord.Native.exe可能会带来更多帮助。 至少那是我的经验。

至于它与Bannerlord.exe的区别,我不太清楚。 运行本机是绕过启动器的官方方法,因此我一直在使用它。 我的猜测是,它被调整为单独运行,而非本地的则是有意/仅在由启动器运行时才起作用。

启动程序在运行exe时会附加一堆参数,因此如果没有它们,它可能无法正常工作。

与此相关的是,这些参数是启动程序通常处理的要加载的mod,因此,绕过启动程序时,必须通过Steam启动选项手动将任何mod作为参数添加。

我已经在上面的注释中的某个地方解释了如何完成此操作,但是确实没有搜索github注释的好方法,因此,如果您想知道如何做,可以再次进行解释。 与寻找旧评论相比,这将花费更少的时间。

对于其他所有人,多人游戏是否为其他人工作? 我将近一个星期无法登录。 我进入登录页面,并在提示我无法登录之前,经历了几分钟的厄运循环,这是Beta和Stable分支上的。

我可以在稳定分支上玩,但在1.1之前我无法打一个补丁。 我通过安装dotnet472和/或dotnetcore2使它再次工作(我不知道哪个有所作为)。

对我而言,dotnet解决方案每5-10分钟就会导致一次游戏崩溃,比2分钟的保存时间还差。
我将在liquorix上进行尝试,但是上面有一些关于跳过启动器的问题。 没有dotnet,启动器根本不会启动,游戏会立即退出。 如何在启动选项中将其配置为本地?

我尝试将其设置为“ Bannerlord.Native.exe”或“ bin / Win64_Shipping_Client / Bannerlord.Native.exe”,但在这里我可能走错了方向

@aradapilot在该线程中的某个地方有人说过如何通过启动选项来完成此操作,但是我没有这样做,所以我不知道它是如何完成的。
我个人将Bannerlord.Native.exe重命名TaleWorlds.MountAndBlade.Launcher.exe然后删除或重命名了原始启动器exe。 大多数游戏更新后必须重做,符号链接也应该起作用,并且可能不必重做。

我在启动选项中执行mod loading命令,但不执行此部分。

好吧,找不到它,但是有所进步。
我将启动选项设置为
echo "%command%" > /tmp/cm

然后在那之后
wraymond @ shelob :〜$ cat / tmp / cm
'/home/wraymond/.steam/compatibilitytools.d/Proton-5.6-GE-1'/proton waitforexitandrun'/home/wraymond/.steam/steam/steamapps/common/Mount&Blade II Bannerlord / bin / Win64_Shipping_Client / TaleWorlds .MountAndBlade.Launcher.exe'

从CLI
wraymond @ shelob :〜$ PROTON_LOG = 1'/home/wraymond/.steam/compatibilitytools.d/Proton-5.6-GE-1'/proton waitforexitandrun'/home/wraymond/.steam/steam/steamapps/common/Mount& Blade II Bannerlord / bin / Win64_Shipping_Client / Bannerlord.Native.exe'
Proton:没有兼容的数据路径?

所以我想它有一些环境设置,但是env/set/printenv > / tmp / steamenv-留空文件,没有环境设置。 不知道从何处获取compatdata目录,steam使用什么机制。

当然,由于生活艰辛,因此在启动选项中设置该字符串没有任何作用
PROTON_LOG = 1'/home/wraymond/.steam/compatibilitytools.d/Proton-5.6-GE-1'/proton waitforexitandrun'/home/wraymond/.steam/steam/steamapps/common/Mount&Blade II Bannerlord / bin / Win64_Shipping_Client / Bannerlord.Native.exe'
-未创建日志文件
-没有东西发射,立即死亡

所以仍然停留在那里。 我会尝试一些重命名/符号链接,但是我希望我不需要重做每个补丁

我重命名了启动器exe,并将本机exe复制到了该路径。 游戏启动,但现在又没有鼠标输入(使用质子GE 5.5或5.6)。
我将尝试使用managedstarter重命名,因为该名称在过去一直有效,但是会通过启动程序,因此这可能会缩短我的保存时间... ahhhhhhh
更新也无济于事。 没有鼠标输入,我无法通过校准屏幕。 我很茫然。

按照: https :
echo %command% && exec /home/USERNAME/.steam/compatibilitytools.d/Proton-5.6-GE-2/proton waitforexitandrun "/PATH/TO/steam/steamapps/common/Mount & Blade II Bannerlord/bin/Win64_Shipping_Client/Bannerlord.exe"

谢谢,但是不能让它开始指向启动器或本机或其他任何东西。 有什么办法可以在CLI上执行此操作? 通过Steam UI进行操作只是隐藏了很多信息

稍后进行许多测试。
我可以使用原始的symlink方法re ManagedStarter来开始游戏。
在liquorix上启动时,我没有鼠标输入(光标移动,但是无法单击任何东西)。 经过质子GE 5.5-1、5.6-1和5.6-2测试。
当在我的普通内核(5.3,ubuntu)上启动时,它可以正常工作,但这是几分钟的节省时间的问题。
否则,在fluxix引导中,鼠标可以正常工作,因此调试起来会很痛苦。 还有其他人有类似的问题吗?

@aradapilot据我所记得,有些人由于未知原因仍然

但是我认为所有这些都是在使用fsync / custom内核之前进行的,并且我认为没有人专门在这种内核上遇到过鼠标问题。 因此,尽管可能以某种方式相关,但问题可能并不完全相同。

也有可能某个修复程序在此线程中的某个地方溜到了我的雷达下,鼠标对我来说效果很好,所以我一直没有密切关注这些讨论。

是的,鼠标是我过去从未遇到过的一件事,自从我用Yellowapple的质子得到它的第一天起,它就一直有效。 因此,奇怪的是,它现在突然出现,并且仅在特定的内核上才出现,而且它不是零星的,绝对是可复制的。

@aradapilot可复制性很好! 使用liquorix内核时,日志中有什么值得注意的事情吗?

我选择使用Proton 5.6-GE(不安装dotnet 来保持Steam默认设置的稳定性

@Aliervo对解析这些内容并不了解。 它确实具有以下几行之一:
189763.685:0029:0055:fixme :win :GetMouseMovePointsEx(24 0x315ef298 0x315ef2b0 64 1)半存根
完整日志(ubuntu 19.10上的质子GE 5.6-2,guineix 5.5.0内核,bannerlord 1.3.0b [与其他版本相同,但日志来自此版本),managedstarter symlink解决方法[使用启动器])
https://gist.github.com/aradapilot/96e4c046c1cef7bd7e3aca53b108e7c1

@aradapilot :可以将+winWINEDEBUG变量中(通过Proton GE文件夹中的user_settings.py或通过将WINEDEBUG="+timestamp,+pid,+tid,+seh,+debugstr,+loaddll,+mscoree,+win"到启动选项中)吗? 很好奇GetMouseMovePointsEx看到并返回了什么。

新发展。 如果我跳过故事世界简介电影,则可以使用鼠标。 我曾经很习惯用Esc跳过它(过去几周没有重新启动游戏一千次),只有当我走开一秒钟,它一直播放到最后,然后我才能使用鼠标。 使用winedebug配置获得了两个日志,一个跳过/没有鼠标,一个通过/鼠标正常播放(以要点名称标记):
https://gist.github.com/aradapilot/27aee80b3eb88a5e7026457120791c08
https://gist.github.com/aradapilot/586137d7fc1742dd801a9b5fe3b25304
在5.3 ubuntu内核上仍然可以,跳过无关紧要。 所以要么卸载电影,要么逃脱,这都不是什么主意。
另外,使用winedebug设置,我现在在关闭游戏时出现无限循环的“异步读取操作失败6”弹出窗口(通过菜单,鼠标良好,或者alt-f4,没有鼠标,结果相同)-必须终止游戏进程阻止它。
最重要的是,liqourix内核5.6刚刚发布,因此我有一个新东西要测试。 稍后再做。 上面的测试都是在5.5上进行的,以消除添加新变量的麻烦。

真正奇怪的是,在这两个日志中,从该函数中只有一个完整的跟踪。 无聊:

237796.904:0029:0054:fixme:win:GetMouseMovePointsEx (24 0x30fcf298 0x30fcf2b0 64 1) semi-stub
237796.904:0029:0054:trace:win:GetMouseMovePointsEx     ptin: 835 868
237796.904:0029:0054:trace:win:GetMouseMovePointsEx     ptout[0]: 835 868
237796.904:0029:0054:trace:win:GetMouseMovePointsEx     ptout[1]: 0 0

好:

237537.240:0029:0054:fixme:win:GetMouseMovePointsEx (24 0x30fcf298 0x30fcf2b0 64 1) semi-stub
237537.240:0029:0054:trace:win:GetMouseMovePointsEx     ptin: 918 642
237537.240:0029:0054:trace:win:GetMouseMovePointsEx     ptout[0]: 918 642
237537.240:0029:0054:trace:win:GetMouseMovePointsEx     ptout[1]: 0 0

使用+win此函数应在每次鼠标移动时输出这些轨迹。 鉴于事实并非如此,游戏似乎根本没有接收到鼠标输入(相对于“葡萄酒分级”漏洞,该游戏会接收鼠标输入但不知道如何移动光标)。 然而,对于本示例来说,情况似乎也是如此,这表明它可以以某种方式工作而无需多次调用GetMouseMovePointsEx。

需要明确的是,您没有任何奇怪的操纵杆映射鼠标设置,反之亦然,对吗?

不,常规的鼠标和键盘设置。 在任何一种情况下,光标都可以正常移动,只是单击输入中缺少一种。
由于无法识别我的无线网卡(基于broadcom),并且具有bcmwl兼容性,因此我的内核5.6测试目前处于暂停状态,将需要一些工作

@YellowApple在工作上没有登录我,但我在Manjaro KDE上的朋友注意到通过禁用Steam的控制器管理来读取鼠标的时间有了重大变化。

@rgreenblatt
对于其他所有人,多人游戏是否为其他人工作? 我将近一个星期无法登录。 我进入登录页面,并在提示我无法登录之前,经历了几分钟的厄运循环,这是Beta和Stable分支上的。

我一直使用5.5 GE进行单人游戏的鼠标修复,但是我从未悲伤地登录多人游戏。 每次对我来说都会失败,并显示一般错误“登录失败”

所以我的问题有点怪异(使用5.5 liquorix)!
鼠标确实起作用了,只是延迟了约30秒。 很难解释...
如果我将鼠标移至A点,则什么也不会发生。 不能单击A,也没有鼠标悬停突出显示。 它将永远这样。
如果我等待〜30秒而根本没有输入并且将鼠标悬停在A上,则什么都没有发生。 但是等待后,如果我将鼠标移至B点,则游戏会认为光标现在位于A上。A将突出显示,并且即使我的光标位于屏幕上的B点,我也可以单击它。光标在那里,直到我再停止输入30秒钟,然后移到C,之后它将认为它在B。
这就是为什么我不跳过简介就能获得某些功能的原因,因为那恰好是30秒无输入。 它与简介无关,我可以在所有菜单上重现此行为。
因此有什么东西可以将光标的新位置更新为真实鼠标的旧位置,并且由于某种原因,它甚至需要约30秒钟的空闲时间才能进行检查?

最近的日志
https://gist.github.com/aradapilot/15aceaeb18fbdc8ef1304c1211a1c389

在5.0-7 RC发行说明中,有以下说明:“修复了Mount&Blade 2:Bannerlord中的崩溃”
但是游戏仍然不会以质子5.0.7开始。 我想念什么吗? 谢谢!

在5.0-7 RC发行说明中,有以下说明:“修复了Mount&Blade 2:Bannerlord中的崩溃”
但是游戏仍然不会以质子5.0.7开始。 我想念什么吗? 谢谢!

如果您看一下实际的5.0-7发行说明,该修补程序就没有了,也许它在最后一分钟被取消了?

Bannerlord.exe和Bannerlord.Native.exe之间有什么区别? (很抱歉,如果它在上面的线程中的某个地方,我找不到搜索github注释的方法)

Bannerlord.Native.exe使用Win64版本的Mono。 常规可执行文件使用.NET Framework。

Bannerlord.Native.exe使用Win64版本的Mono。 常规可执行文件使用.NET Framework。

那是一些有趣的信息。 我发现由于某种原因,使用本机exe可以节省约一半的时间,至少在使用fsync时,因为我没有测试过,而我认为其他人在没有fsync的情况下也有相似的结果。

但是我从来没有弄清楚有什么不同,除了Native绕过了启动器,而且我不知道那是不是影响启动器的原因,或者为什么会这样。

由于安装dotnet对保存时间有很大的影响,因此很可能是Mono / .NET差异是与本机和常规exe的保存时间差异的实际原因。

@mustafakorkmaz ,你们可以采取什么措施来提高Proton版本的稳定性? 还是目前开发仍然太忙?
我渴望获得这款游戏,但我也希望有一个Linux端口,或者至少是坚如磐石的Proton。

@pierrep我仅使用fsync和Proton-GE崩溃了0次,

使用linux-zen (包括f-sync )和Proton-5.6-GE-2,我可以节省大约30秒,并且游戏性能会随着时间的流逝而变慢,这需要我在一段时间后(通常是几个小时,有时少于1小时)才能使其再次恢复正常。

但是我比在Windows上玩的兄弟少了崩溃。 不知道是因为他使用了mods,还是因为.NET可执行文件更加崩溃。

@mustafakorkmaz ,你们可以采取什么措施来提高Proton版本的稳定性? 还是目前开发仍然太忙?
我渴望获得这款游戏,但我也希望有一个Linux端口,或者至少是坚如磐石的Proton。

我不时检查此线程,但无法积极地处理Proton兼容性。 不过,这是我想在抢先体验期间重点关注的内容。 看起来像我们在Beta版中一样,不再有D3D11问题,​​所以这是个好消息:)

在玩了不到一个小时的时间内,我得到了锁定/冻结,到了当我不立即alt-f4时,系统完全锁定的程度。 我的猜测是我得到的Xid错误(nvidia)应该受到指责。 切换到虚拟控制台不起作用,我认为这是因为GPU可能崩溃了,或者是由于Xid错误所致。
journalctl -o short-precise -k -b -1用于先前的内核消息。
我已经在两个NVIDIA Linux Mint的机器,一个从FSYNC内核测试此位置
还有一个带有标准linux内核(带有dotnet和co的质子)的内核。 两者都使用Proton-5.6-GE-2。
只有一台计算机出现Xid 68错误(视频处理器异常)
NVRM: Xid (PCI:0000:01:00): 68, pid=1301, CCMDs 0000004f 0000c2b0

但是,两台计算机上均出现Xid 31错误(GPU内存页面错误)。
NVRM: Xid (PCI:0000:01:00): 31, pid=17919, Ch 0000004e, intr 10000000. MMU Fault: ENGINE GRAPHICS GPCCLIENT_RAST faulted @ 0x0_00000000. Fault is of type FAULT_PDE ACCESS_TYPE_WRITE
还有其他人得到这些错误,或者有解决办法?

编辑:我现在使用fsync内核与另一台PC,它工作得很好。 还将驱动程序从435.21升级到440.59。 不知道是什么招数。

好像他们启用了1.3补丁的BattlEye一样,我被防作弊软件踢了。
Screenshot from 2020-05-07 17-40-07

@pierrep我仅使用fsync和Proton-GE崩溃了0次,

我读过一些成功的故事,但并不是每个人都有同样的运气。 我目前不愿意为全价游戏而赌博。

好像他们启用了1.3补丁的BattlEye一样,我被防作弊软件踢了。

看来:(从1.3补丁说明开始

  • 官方自定义游戏现在需要防作弊。

我不知道这是否也包括快速播放服务器,但大概是这样。 甚至有办法在非官方服务器上玩吗?

这让我非常难过,因为我最近很喜欢多人游戏。

更新:
我只是尝试快速游戏并能够加入,但几秒钟后就被踢了。

是的,我找不到任何创建或查找非官方服务器的方法。 这实际上意味着多人游戏对我们来说完全被破坏了。

我尝试了几种解决方法:

  1. Proton GE 5.5+,带有protontricks 261550 dotnet472和默认的Linux内核(ArchLinux)
  2. Proton GE 5.5+,带有protontricks 261550 dotnet48和默认的Linux内核(ArchLinux)
  3. Proton GE 5.5+,无任何protontricks 261550 dotnet和linux-fsync(ArchLinux)
  4. Proton GE 5.5+,无任何protontricks 261550 dotnet和linux-xanmod(ArchLinux)

几乎相同的稳定性(游戏挂在全局地图上,游戏挂在战场上)。
使用Protontricks 261550 dotnet472Protontricks 261550 dotnet48可获得更好的性能
从常识上来说,游戏几乎是无法玩的(每次游戏要挂了一点后,您必须每隔几分钟做一次快速保存以重新加载)。 另外,您还必须手动杀死进程(使用进程管理器),因为无论是蒸汽还是环境都无法关闭进程。

为了稳定起见,目前的建议是完全通过可执行的符号链接避免.NET: https :

避免使用.NET会使保存时间更长,这就是为什么建议将其与启用fsync的内核结合使用。

自从Bannerlord v1.4.2补丁发布以来,我在保存游戏时遇到了问题。 它只是在游戏中显示“无法创建保存数据”对话框,并且在游戏日志[0]MonoPosixHelper assembly:<unknown assembly> type:<unknown type> member:(null)显示以下错误

如果遇到此特定错误,可以执行以下操作来修复它:

  1. 下载Windows版本的Mono x64
  2. 将其安装到任何wine前缀(我们只需要一个文件,您可以在此后删除该前缀)
  3. <wine_pfx>/drive_c/Program Files/Mono/bin/MonoPosixHelper.dll复制到<your_steam_library>/steamapps/common/Mount & Blade II Bannerlord/bin/Win64_ShippingClient/

好消息:现在,在实际的Wine版本(特别是Wine 5.20 )的上游提供了更强大的鼠标光标修复程序。 因此,一旦Proton意识到了这一点,我们就应该不再需要Proton-GE来工作了。

所以v1.5.4是一个重大更新,对我来说它破坏了启动器。 我对v1.5.3没问题-它运行得很好,很少崩溃。 在v1.5.4下,我只是短暂地停了一下启动程序,然后崩溃了。

>>> Adding process 19718 for game ID 261550
Unhandled exception: page fault on read access to 0x7a23df50 in 64-bit code (0x00000001802b2e3d).

我不得不求助于将发射器链接到Bannerlord.Native.exe来解决发射问题,并从5.11-GE-3-MF切换到Proton-5.9-GE-8-ST进入游戏-我尝试过的所有其他质子(5.13-1,5.11,5.5,5.0.9)在动画之前停在第一个加载屏幕上。 它为我又回来了。 不需要质子打击(并不是我尝试过的任何启动器帮助),并且使用zen内核已缓解了令人讨厌的鼠标单击检测问题(不再不再检测首次运行的单击)。

^修复以上为我工作的1.5.4。 我仍然会遇到一些正常的崩溃,但是现在:

我在战斗中得到了一些新的冻结(没有错误消息),经常受到武器的影响,而且经常发生。 按住Alt键跳出并重新启动游戏是唯一的答案。 日志显示大量“已转码的比特流无效,这可能表明文件已损坏或代码转换器版本不兼容。” 然后突然结束。

离开定居点后,单击要移至的地方时,我也会得到一些短暂的冻结。 几秒钟,但非常频繁。 它们并没有真正影响游戏,只是令人讨厌。

使用xanmod内核5.8使得保存可以容忍,没有质子提示,质子5.9-GE-8

以防万一它对于任何努力启动启动器的人都是有用的,我发现由于此启动参数,您可以在没有它的情况下加载mod(也可以直接在Bannerlord.Native.exe上运行):
/singleplayer _MODULES_*Native*SandBoxCore*CustomBattle*Sandbox*StoryMode*_MODULES_

您只需根据所需的mod顺序在* *之间添加您的mod。 这将是Modules/各自文件夹的名称。 此命令将按顺序加载mod。 这5个模块是游戏随附的默认模块,是游戏初始化所必需的。
不要忘了用星号启动和关闭模块列表。

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

相关问题

juppso picture juppso  ·  3评论

matou68 picture matou68  ·  3评论

raikirii picture raikirii  ·  3评论

shanefagan picture shanefagan  ·  3评论

ArekPiekarz picture ArekPiekarz  ·  3评论