Wine 11.5 引入 Linux 系统调用用户分发功能,解决《明日方舟:终末地》《荒野大镖客 2》等多款游戏长期崩溃的问题

哈哈库 新闻资讯 3

3 月 21 日消息,Wine 项目组今日发布了最新的 11.5 版本。

作为在 Linux 及其他平台上运行 Windows 应用和游戏的关键兼容层,本次更新最引人注目的变化是引入了对 Linux 系统调用用户分发的支持,解决了多个热门游戏长期存在的兼容性崩溃问题。

Wine 的 NTDLL 实现合并了通过 Syscall User Dispatch 在 Linux 上进行系统调用模拟的功能。

Syscall User Dispatch 是 Linux 5.11 及以上内核版本的一项特性,允许将特定的非原生系统调用重定向回用户空间,由 Wine 等兼容层处理。通过这一机制实现系统调用模拟,相比替代方案可获得更好的性能和更简洁的设计。

实际上,Linux 5.11 内核早在 2021 年就已发布,目前支持该特性的内核已相当普及。这项特性最初就考虑到了 Wine / Proton 的使用场景,不过至今才被 Wine 主线收入。

这一特性的引入对终端用户的意义在于,它解决了因游戏或应用程序直接使用 x86_64 SYSCALL 指令而导致的崩溃问题。

根据 Wine 的 Bug 追踪系统,受影响的知名游戏包括《底特律:变人》《荒野大镖客 2》以及《明日方舟:终末地》等。注意到,相关的 Bug 反馈自 2019 年就已提交,直到今天的 Wine 11.5 发布才正式关闭。

除了系统调用用户分发功能外,Wine 11.5 还在构建系统中新增了对 C++ 的支持,打包了 ICU 库,并对 VBScript 进行了多项兼容性修复。过去两周内,共有 22 个已知 Bug 得到修复。

Wine 11.5 主要更新内容:

  • 构建系统新增 C++ 支持

  • 打包 ICU 库

  • 支持 Linux 系统调用用户分发

  • 多项 VBScript 兼容性修复

  • 各类 Bug 修复(共计 22 项)

部分 Bug 修复:

  • 修复了因直接使用 x86_64 SYSCALL 指令导致的多款游戏崩溃问题

  • 修复了时间 / 本地时间函数的性能回归问题

  • 修复了文件对话框在.NET 应用中的崩溃

  • 修复了 VOCALOID6 启动时因未实现 wminet_utils 存根而崩溃的问题

  • 修复了 CertCreateCertificateChainEngine 在 rustls-platform-verifier 中的参数无效问题

  • 修复了《Clip Studio Paint》中延时导出功能失败的问题

  • 修复了《Stratego》(1997)启动时“CreateScalableFontResource”失败的错误

  • 修复了多个 MSXML3 相关问题

抱歉,评论功能暂时关闭!