Skip to content

Releases: SHORiN-KiWATA/we-proton

we-proton-ge11-11-31

Choose a tag to compare

基于 GE-Proton GE-Proton11-11 和 DW-Proton dwproton-11.0-15,加上 WE-Proton 自己修复 WeGame 和其中游戏的补丁。中文 | English

这一版的变化(相对 we-proton-ge11-7-30)

  • 底座跟进到 GE-Proton11-11(原来是 11-7):Valve 的 Wine 更新了 132 个提交,dxvk、vkd3d-proton、protonfixes 都换成 GE-Proton11-11 的版本。和 WE-Proton 的用法关系比较大的:
    • niri、xwayland-satellite 这类不支持最小化的环境里,游戏启动时最小化不再把窗口拆掉、Vulkan 画面不再缩成一点、不再出现白框
    • Wayland 下关闭弹出菜单时,先关子菜单再关父窗口,避免被合成器断开连接
    • 视频(过场动画、DirectShow)的一大批修复
    • SRW 锁更快,RtlWaitOnAddress 的竞争问题修好了
    • HTTPS(schannel)收到不完整的数据时,报给程序的缺少字节数算错,修好了
    • HDR:改用 GE-Proton 自己的检测,显示器没开 HDR 时不再上报 HDR
    • 接 PS 手柄时默认转成 XInput(PROTON_SONY_AUTO_XINPUT=0 可以关)
  • 提前从 GE-Proton 主线搬了 3 个修复:32 位程序用 Wayland 驱动退出时崩溃;往还没显示的窗口提交画面时,NVIDIA + Wayland 下卡死;RtlWaitOnAddress 超时后留下多余的唤醒
  • DW-Proton 跟进到 11.0-15:mfplat 支持 R8_UINT 纹理(DW 用来修鸣潮视频不显示),NIKKE、鸣潮 Steam 版的 protonfixes 更新
  • WE-Proton 自己的补丁没有新增,全部移植到了新底座上

验证过的和没验证的

  • 构建:完整构建,所有补丁打上,没有失败
  • 回归测试:WE-Proton 的探测程序在 Steam Linux Runtime 4.0 里和上一版一致
  • 中文输入:私有 Xvfb + fcitx5(rime)往 Wine 窗口打拼音,正常上屏(包括 WeGame 那种先 ImmDisableIME 的情况)
  • vkd3d-proton 0001:dxil-spirv 换了新版本,补丁重新移植;问题用例修好,dxil-spirv 自带的 867 个着色器补丁前后输出相同
  • 0060:和 Windows 11 实测结果一致
  • 没有实机测试 WeGame、游戏,也没有在 niri 上测全屏、最小化(Wayland 驱动)

已知问题

  • Media Foundation 里没有 MPEG-1/2 视频的解码器(以前也没有;DirectShow 能放)
  • 有几处前台切换的细节和 Windows 不同(以前就这样):同一程序的工作线程显示第一个窗口时会抢走前台;前台窗口被销毁后激活的窗口不同

包含的 WE-Proton 修复

补丁 修了什么
wine 0002 wineserver 崩溃,前缀里的程序一起消失
wine 0003 直接执行 syscall 的代码返回后栈数据被改坏
wine 0004 靠 UDP connect(0.0.0.0) 唤醒 select() 的程序网络请求极慢
wine 0005 基于 CEF 的程序渲染进程一启动就崩
wine 0006 全屏程序因为覆盖层窗口抢走前台而反复最小化
wine 0007 用 UpdateLayeredWindow 绘制的子窗口变成单独的窗口(启动、登录窗口出现两个、错位)
wine 0008 《最终幻想14》国服点「开始游戏」报账号认证错误 5003
wine 0009 《天涯明月刀》DX12 客户端加载场景时闪退
wine 0010 《黑色沙漠》国服点「开始游戏」后崩溃
wine 0011 WeGame 启动游戏后缩到托盘,在 waybar 等面板上看不到图标、窗口叫不回来
wine 0013 雷神加速器启动器崩溃:私有命名空间没有实现
wine 0014 WeGame 搜索栏打不了中文(有候选框,选字后不上屏)
wine 0015 加速器、VPN 给虚拟网卡配 IP、加路由失败
wine 0016 加速器、VPN 用 wintun 建不了虚拟网卡
wine 0017 加速器开了 TUN 模式后,它自己直连的流量也被虚拟网卡吃掉
wine 0019 《王者万象棋》闪退(驱动调用 Inbv* 被中止)
wine 0020 《暗区突围:无限》进游戏两到五分钟后闪退
wine 0021、0022 《诡秘之主》等较新的 UE5 游戏提示缺少 Microsoft Visual C++ 运行库
wine 0023 《诡秘之主》的启动器切几次焦点就点不动(Wayland 桌面)
wine 0048 网易 UU 加速器的路由模式报 50004:找不到自己建的虚拟网卡
wine 0049 托盘图标透明的地方显示成黑色(关掉 GE-Proton 自带的托盘实现)
wine 0050 Wayland 驱动下,合成器的全屏快捷键无效(全屏立刻被撤销),游戏的窗口模式也一样
wine 0052 Wayland 驱动下,niri 分支的网格概览一移到 Wine 窗口就关掉
wine 0053 网易 UU 加速器的路由模式显示在加速,实际没有加速(旧的路由函数什么都不做)
wine 0054 没写过的写时复制页,内存保护属性报得和 Windows 不一致
wine 0055 用 Media Foundation 放完视频、马上关闭时,程序卡住不动
wine 0056 窗口激活消息(WM_ACTIVATEAPP)里「上一个前台线程」的值和 Windows 不一致
wine 0059 两块屏时把窗口挪到另一块屏,窗口消失、又在原来的屏出现(主显示器变化后窗口坐标没跟着平移)
wine 0060 WeGame 下载完更新后每次启动都闪退:ShutdownBlockReasonCreate 没有实现,更新程序装不上更新
protonfixes 0051 加入正在运行的前缀(proton run)的游戏拿不到 protonfixes 的修正;启动器设 PROTONFIXES_RUN_VERB=1 后照常执行
vkd3d-proton 0001 部分 D3D12 着色器在 AMD 显卡上崩溃

每个补丁的现象、根因和验证见仓库的 we/fixes/。

安装

wegame-launcher 会自动下载最新的 WE-Proton;shorin-proton-wrapper 用 --update 更新「WE-Proton Latest」。手动安装:把 we-proton-ge11-11-31.tar.xz 解压到启动器的 Proton 目录(Steam:~/.local/share/Steam/compatibilitytools.d/;shorin-proton-wrapper:~/.local/share/proton/runners/),在启动器里选 we-proton-ge11-11-31。

最好在 Steam Linux Runtime 4.0 容器里运行(Steam、umu、wegame-launcher 都会自动这样做)。

文件

  • we-proton-ge11-11-31.tar.xz:runner
  • we-proton-ge11-11-31.sha512sum:校验值
  • we-proton-ge11-11-31-source.tar.xz:构建这些二进制所用的、打好补丁的 Wine、vkd3d-proton 和 dxvk 源码

本项目不支持竞技游戏、不对 ACE 等反作弊做任何适配。在 Linux 上运行带反作弊的游戏可能被封号,后果自负。




English

Based on GE-Proton GE-Proton11-11 and DW-Proton dwproton-11.0-15, plus WE-Proton's own fixes for WeGame and its games.

Changes since we-proton-ge11-7-30:

  • Follows GE-Proton11-11 (was 11-7): 132 more commits in Valve's Wine, and GE-Proton11-11's dxvk, vkd3d-proton and protonfixes. Most relevant here: games that minimize at startup under compositors without minimize support (niri, xwayland-satellite) no longer lose their window, shrink their Vulkan output or show a white frame; popup menus on Wayland close child popups first; many video fixes; faster SRW locks and a RtlWaitOnAddress race fix; a size calculation fix for partial TLS records; GE-Proton's own HDR detection (no HDR reported for SDR outputs); PS controllers turned into XInput by default (PROTON_SONY_AUTO_XINPUT=0 turns it off)
  • Three fixes from GE-Proton's master ahead of its next release: 32-bit programs crashing at exit with the Wayland driver; a hang on NVIDIA + Wayland when presenting to a window that isn't shown yet; a stale wakeup after a RtlWaitOnAddress timeout
  • Follows DW-Proton 11.0-15: mfplat handles R8_UINT textures; NIKKE and Wuthering Waves (Steam) protonfixes updates
  • No new WE-Proton patches; all of them were carried over to the new base

Verified: full build with every patch; probe programs give the same results as the previous release; pinyin typed through fcitx5 (rime) reaches Wine windows, also after ImmDisableIME; vkd3d-proton 0001 re-ported to the new dxil-spirv (the failing case is fixed, dxil-spirv's 867 test shaders give identical output). Not tested on real WeGame and games, nor fullscreen and minimize with the Wayland driver on niri.

Extract we-proton-ge11-11-31.tar.xz into your launcher's Proton directory and select we-proton-ge11-11-31; wegame-launcher downloads it by itself, and shorin-proton-wrapper updates "WE-Proton Latest" with --update. It is best run inside the Steam Linux Runtime 4.0 (Steam, umu and wegame-launcher do this). we-proton-ge11-11-31-source.tar.xz holds the patched Wine, vkd3d-proton and dxvk sources these binaries were built from.

This project does not support competitive games and does no work for ACE or any other anti-cheat. Running games with anti-cheat on Linux may get your account banned; you bear the consequences.

we-proton-ge11-7-30

Choose a tag to compare

@SHORiN-KiWATA SHORiN-KiWATA released this 16 Oct 18:48

基于 GE-Proton GE-Proton11-7 和 DW-Proton dwproton-11.0-14,加上 WE-Proton 自己修复 WeGame 和其中游戏的补丁。中文 | English

这一版的变化(相对 we-proton-ge11-7-29)

  • 新增 wine 0059:两块屏时把窗口挪到另一块屏,窗口不再消失、跳回原来的屏。 XWayland 下(例如 niri + xwayland-satellite)主显示器会跟着有焦点的窗口换;主屏一换,Windows 坐标的原点就移动,Wine 没有跟着平移窗口的坐标,窗口被算到屏幕外面而被撤掉,再出现时合成器把它当成新窗口放回原处。现在原点移动时所有顶层窗口跟着平移,留在原来的显示器上
  • 新增 wine 0060:WeGame 下载完更新后不再每次启动都闪退。 WeGame 的更新程序替换文件前要调用 ShutdownBlockReasonCreate,这个函数在 Wine 里一直没有实现,更新程序见它失败就放弃,也不重新启动 WeGame,看起来就是一启动就退出。现在按 Windows 11 实测的行为实现了 ShutdownBlockReasonCreate/Query/Destroy,更新能正常装上

验证过的和没验证的

  • 构建:完整构建,所有补丁打上,没有失败
  • 回归测试:WE-Proton 的探测程序在 Steam Linux Runtime 4.0 里和上一版一致
  • 0059:两块缩放不同的显示器(niri + xwayland-satellite),记事本和雷神加速器从右边的屏挪到左边的屏,窗口留在目标屏上(打补丁前会消失、回到原来的屏)
  • 0060:测试程序在 Windows 11 和 Wine 里调用这三个函数(自己的窗口、子窗口、无效窗口、桌面窗口、其他线程、缓冲区不够等),结果和错误码逐行一致;WeGame 从 6.6.1.9201 自动更新到 6.7.0.10150,更新后正常启动
  • 没有在 Windows 上实测切换主显示器时窗口的行为(虚拟机没有多显示器);没有在游戏里实测

已知问题

  • Media Foundation 里没有 MPEG-1/2 视频的解码器(以前也没有;DirectShow 能放)
  • 有几处前台切换的细节和 Windows 不同(以前就这样):同一程序的工作线程显示第一个窗口时会抢走前台;前台窗口被销毁后激活的窗口不同

包含的 WE-Proton 修复

补丁 修了什么
wine 0002 wineserver 崩溃,前缀里的程序一起消失
wine 0003 直接执行 syscall 的代码返回后栈数据被改坏
wine 0004 靠 UDP connect(0.0.0.0) 唤醒 select() 的程序网络请求极慢
wine 0005 基于 CEF 的程序渲染进程一启动就崩
wine 0006 全屏程序因为覆盖层窗口抢走前台而反复最小化
wine 0007 用 UpdateLayeredWindow 绘制的子窗口变成单独的窗口(启动、登录窗口出现两个、错位)
wine 0008 《最终幻想14》国服点「开始游戏」报账号认证错误 5003
wine 0009 《天涯明月刀》DX12 客户端加载场景时闪退
wine 0010 《黑色沙漠》国服点「开始游戏」后崩溃
wine 0011 WeGame 启动游戏后缩到托盘,在 waybar 等面板上看不到图标、窗口叫不回来
wine 0013 雷神加速器启动器崩溃:私有命名空间没有实现
wine 0014 WeGame 搜索栏打不了中文(有候选框,选字后不上屏)
wine 0015 加速器、VPN 给虚拟网卡配 IP、加路由失败
wine 0016 加速器、VPN 用 wintun 建不了虚拟网卡
wine 0017 加速器开了 TUN 模式后,它自己直连的流量也被虚拟网卡吃掉
wine 0019 《王者万象棋》闪退(驱动调用 Inbv* 被中止)
wine 0020 《暗区突围:无限》进游戏两到五分钟后闪退
wine 0021、0022 《诡秘之主》等较新的 UE5 游戏提示缺少 Microsoft Visual C++ 运行库
wine 0023 《诡秘之主》的启动器切几次焦点就点不动(Wayland 桌面)
wine 0048 网易 UU 加速器的路由模式报 50004:找不到自己建的虚拟网卡
wine 0049 托盘图标透明的地方显示成黑色(关掉 GE-Proton 自带的托盘实现)
wine 0050 Wayland 驱动下,合成器的全屏快捷键无效(全屏立刻被撤销),游戏的窗口模式也一样
wine 0052 Wayland 驱动下,niri 分支的网格概览一移到 Wine 窗口就关掉
wine 0053 网易 UU 加速器的路由模式显示在加速,实际没有加速(旧的路由函数什么都不做)
wine 0054 没写过的写时复制页,内存保护属性报得和 Windows 不一致
wine 0055 用 Media Foundation 放完视频、马上关闭时,程序卡住不动
wine 0056 窗口激活消息(WM_ACTIVATEAPP)里「上一个前台线程」的值和 Windows 不一致
wine 0059 两块屏时把窗口挪到另一块屏,窗口消失、又在原来的屏出现(主显示器变化后窗口坐标没跟着平移)
wine 0060 WeGame 下载完更新后每次启动都闪退:ShutdownBlockReasonCreate 没有实现,更新程序装不上更新
protonfixes 0051 加入正在运行的前缀(proton run)的游戏拿不到 protonfixes 的修正;启动器设 PROTONFIXES_RUN_VERB=1 后照常执行
vkd3d-proton 0001 部分 D3D12 着色器在 AMD 显卡上崩溃

每个补丁的现象、根因和验证见仓库的 we/fixes/。

安装

wegame-launcher 会自动下载最新的 WE-Proton;shorin-proton-wrapper 用 --update 更新「WE-Proton Latest」。手动安装:把 we-proton-ge11-7-30.tar.xz 解压到启动器的 Proton 目录(Steam:~/.local/share/Steam/compatibilitytools.d/;shorin-proton-wrapper:~/.local/share/proton/runners/),在启动器里选 we-proton-ge11-7-30。

最好在 Steam Linux Runtime 4.0 容器里运行(Steam、umu、wegame-launcher 都会自动这样做)。

文件

  • we-proton-ge11-7-30.tar.xz:runner
  • we-proton-ge11-7-30.sha512sum:校验值
  • we-proton-ge11-7-30-source.tar.xz:构建这些二进制所用的、打好补丁的 Wine、vkd3d-proton 和 dxvk 源码

本项目不支持竞技游戏、不对 ACE 等反作弊做任何适配。在 Linux 上运行带反作弊的游戏可能被封号,后果自负。




English

Based on GE-Proton GE-Proton11-7 and DW-Proton dwproton-11.0-14, plus WE-Proton's own fixes for WeGame and its games.

Changes since we-proton-ge11-7-29:

  • New: wine 0059, windows moved to another monitor no longer vanish and jump back. Under XWayland (for example niri with xwayland-satellite) the primary monitor follows the focused window; when it changes, the origin of Windows coordinates moves, but Wine didn't move the window coordinates with it, so a window could end up outside of the screen and get unmapped, and the compositor put it back on its old monitor as a new window. The top level windows now move with the origin and stay on their monitors
  • New: wine 0060, WeGame no longer quits at every start after downloading an update. Its updater calls ShutdownBlockReasonCreate before replacing files; that was never implemented in Wine, so the updater gave up and didn't start WeGame again. ShutdownBlockReasonCreate/Query/Destroy are now implemented as measured on Windows 11, and the update installs

What was and wasn't verified:

  • A full build with every patch applied
  • WE-Proton's probe programs inside the Steam Linux Runtime 4.0 give the same results as the previous release
  • 0059: two monitors with different scales (niri with xwayland-satellite): Notepad and an accelerator client moved from the right monitor to the left one stay there (before, they vanished and came back on the old monitor)
  • 0060: a test program calling the three functions (own, child, invalid and desktop windows, another thread, short buffers) gives the same results and error codes on Windows 11 and in Wine; WeGame updated itself from 6.6.1.9201 to 6.7.0.10150 and starts normally
  • Not measured on Windows: what happens to windows when the primary monitor changes (the VM has a single monitor). Not tested in games

Known problems: Media Foundation has no MPEG-1/2 video decoder (it never had; DirectShow plays them); a few details of foreground changes differ from Windows, as before (a worker thread's first window takes the foreground; a different window is activated after the foreground window is destroyed).

Extract we-proton-ge11-7-30.tar.xz into your launcher's Proton directory and select we-proton-ge11-7-30; wegame-launcher downloads it by itself, and shorin-proton-wrapper updates "WE-Proton Latest" with --update. It is best run inside the Steam Linux Runtime 4.0 (Steam, umu and wegame-launcher do this). we-proton-ge11-7-30-source.tar.xz holds the patched Wine, vkd3d-proton and dxvk sources these binaries were built from.

This project does not support competitive games and does no work for ACE or any other anti-cheat. Running games with anti-cheat on Linux may get your account banned; you bear the consequences.

we-proton-ge11-7-29

Choose a tag to compare

@SHORiN-KiWATA SHORiN-KiWATA released this 12 Oct 10:22

基于 GE-Proton GE-Proton11-7 和 DW-Proton dwproton-11.0-14,加上 WE-Proton 自己修复 WeGame 和其中游戏的补丁。中文 | English

这一版的变化(相对 we-proton-ge11-7-28)

  • 新增 wine 0056:窗口激活时 WM_ACTIVATEAPP 报的线程和 Windows 一致了。 程序的窗口被激活时,这个消息带着「刚失去激活的线程」。原版 Wine 在跨线程、跨进程激活时给 0,GE-Proton 的一个补丁又把它改成收消息的线程自己,对所有程序生效。在 Windows 11 上实测,这里报的总是上一个前台窗口的线程,从不报自己;现在 Wine 也这样报(之前的前台不在 Wine 里时报桌面线程)

验证过的和没验证的

  • 构建:完整构建,所有补丁打上,没有失败
  • 回归测试:WE-Proton 的探测程序在 Steam Linux Runtime 4.0 里和上一版一致
  • 0056:测试程序在 Windows 11 的桌面会话和 Wine 里记录各种前台切换时收到的激活消息;同一进程两个线程互切、两个进程互切、从桌面切回、前台窗口被销毁后,报的线程和 Windows 逐行一致。WeGame 正常运行,切换焦点后界面线程都能马上响应
  • 没有在游戏里实测

已知问题

  • Media Foundation 里没有 MPEG-1/2 视频的解码器(以前也没有;DirectShow 能放)
  • 有几处前台切换的细节和 Windows 不同(和这一版无关,以前就这样):同一程序的工作线程显示第一个窗口时会抢走前台;前台窗口被销毁后激活的窗口不同

包含的 WE-Proton 修复

补丁 修了什么
wine 0002 wineserver 崩溃,前缀里的程序一起消失
wine 0003 直接执行 syscall 的代码返回后栈数据被改坏
wine 0004 靠 UDP connect(0.0.0.0) 唤醒 select() 的程序网络请求极慢
wine 0005 基于 CEF 的程序渲染进程一启动就崩
wine 0006 全屏程序因为覆盖层窗口抢走前台而反复最小化
wine 0007 用 UpdateLayeredWindow 绘制的子窗口变成单独的窗口(启动、登录窗口出现两个、错位)
wine 0008 《最终幻想14》国服点「开始游戏」报账号认证错误 5003
wine 0009 《天涯明月刀》DX12 客户端加载场景时闪退
wine 0010 《黑色沙漠》国服点「开始游戏」后崩溃
wine 0011 WeGame 启动游戏后缩到托盘,在 waybar 等面板上看不到图标、窗口叫不回来
wine 0013 雷神加速器启动器崩溃:私有命名空间没有实现
wine 0014 WeGame 搜索栏打不了中文(有候选框,选字后不上屏)
wine 0015 加速器、VPN 给虚拟网卡配 IP、加路由失败
wine 0016 加速器、VPN 用 wintun 建不了虚拟网卡
wine 0017 加速器开了 TUN 模式后,它自己直连的流量也被虚拟网卡吃掉
wine 0019 《王者万象棋》闪退(驱动调用 Inbv* 被中止)
wine 0020 《暗区突围:无限》进游戏两到五分钟后闪退
wine 0021、0022 《诡秘之主》等较新的 UE5 游戏提示缺少 Microsoft Visual C++ 运行库
wine 0023 《诡秘之主》的启动器切几次焦点就点不动(Wayland 桌面)
wine 0048 网易 UU 加速器的路由模式报 50004:找不到自己建的虚拟网卡
wine 0049 托盘图标透明的地方显示成黑色(关掉 GE-Proton 自带的托盘实现)
wine 0050 Wayland 驱动下,合成器的全屏快捷键无效(全屏立刻被撤销),游戏的窗口模式也一样
wine 0052 Wayland 驱动下,niri 分支的网格概览一移到 Wine 窗口就关掉
wine 0053 网易 UU 加速器的路由模式显示在加速,实际没有加速(旧的路由函数什么都不做)
wine 0054 没写过的写时复制页,内存保护属性报得和 Windows 不一致
wine 0055 用 Media Foundation 放完视频、马上关闭时,程序卡住不动
wine 0056 窗口激活消息(WM_ACTIVATEAPP)里「上一个前台线程」的值和 Windows 不一致
protonfixes 0051 加入正在运行的前缀(proton run)的游戏拿不到 protonfixes 的修正;启动器设 PROTONFIXES_RUN_VERB=1 后照常执行
vkd3d-proton 0001 部分 D3D12 着色器在 AMD 显卡上崩溃

每个补丁的现象、根因和验证见仓库的 we/fixes/。

安装

wegame-launcher 会自动下载最新的 WE-Proton;shorin-proton-wrapper 用 --update 更新「WE-Proton Latest」。手动安装:把 we-proton-ge11-7-29.tar.xz 解压到启动器的 Proton 目录(Steam:~/.local/share/Steam/compatibilitytools.d/;shorin-proton-wrapper:~/.local/share/proton/runners/),在启动器里选 we-proton-ge11-7-29。

最好在 Steam Linux Runtime 4.0 容器里运行(Steam、umu、wegame-launcher 都会自动这样做)。

文件

  • we-proton-ge11-7-29.tar.xz:runner
  • we-proton-ge11-7-29.sha512sum:校验值
  • we-proton-ge11-7-29-source.tar.xz:构建这些二进制所用的、打好补丁的 Wine、vkd3d-proton 和 dxvk 源码

本项目不支持竞技游戏、不对 ACE 等反作弊做任何适配。在 Linux 上运行带反作弊的游戏可能被封号,后果自负。




English

Based on GE-Proton GE-Proton11-7 and DW-Proton dwproton-11.0-14, plus WE-Proton's own fixes for WeGame and its games.

Changes since we-proton-ge11-7-28:

  • New: wine 0056, the thread in WM_ACTIVATEAPP matches Windows. When a window is activated, this message carries the thread that lost the activation. Wine gave 0 for activations across threads and processes, and a GE-Proton patch turned that into the receiving thread itself, for every program. Measured on Windows 11, it is always the thread of the previous foreground window, never the receiving one; Wine now reports that too (the desktop window's thread when the foreground was outside of Wine)

What was and wasn't verified:

  • A full build with every patch applied
  • WE-Proton's probe programs inside the Steam Linux Runtime 4.0 give the same results as the previous release
  • 0056: a test program logged the activation messages for a range of foreground changes in an interactive Windows 11 session and in Wine; switching between two threads of a process, between two processes, back from the desktop and after the foreground window is destroyed, the reported threads match Windows line by line. WeGame runs, and its interface threads answer right away after focus changes
  • Not tested in games

Known problems: Media Foundation has no MPEG-1/2 video decoder (it never had; DirectShow plays them); a few details of foreground changes differ from Windows, as before (a worker thread's first window takes the foreground; a different window is activated after the foreground window is destroyed).

Extract we-proton-ge11-7-29.tar.xz into your launcher's Proton directory and select we-proton-ge11-7-29; wegame-launcher downloads it by itself, and shorin-proton-wrapper updates "WE-Proton Latest" with --update. It is best run inside the Steam Linux Runtime 4.0 (Steam, umu and wegame-launcher do this). we-proton-ge11-7-29-source.tar.xz holds the patched Wine, vkd3d-proton and dxvk sources these binaries were built from.

This project does not support competitive games and does no work for ACE or any other anti-cheat. Running games with anti-cheat on Linux may get your account banned; you bear the consequences.

we-proton-ge11-7-28

Choose a tag to compare

@SHORiN-KiWATA SHORiN-KiWATA released this 12 Oct 08:49

基于 GE-Proton GE-Proton11-7 和 DW-Proton dwproton-11.0-14,加上 WE-Proton 自己修复 WeGame 和其中游戏的补丁。中文 | English

这一版的变化(相对 we-proton-ge11-7-27)

  • 新增 wine 0055:放完视频马上关闭 Media Foundation 时不再卡死。 程序释放视频读取器后立刻调用 MFShutdown,经常卡住不返回(游戏里会表现为放完片头、过场或退出时停住)。原因是 Wine 关闭工作队列时拿着一把锁等回调结束,而读取器最后一次释放恰好在回调里、也要这把锁。隐患是上游 Wine 的,GE-Proton 的视频补丁修了一处泄漏后把它触发了出来;ge11-7-27 的说明里列为已知问题

验证过的和没验证的

  • 构建:完整构建,所有补丁打上,没有失败
  • 回归测试:WE-Proton 的探测程序在 Steam Linux Runtime 4.0 里和上一版一致
  • 0055:必现程序(工作队列回调里解锁队列,同时关闭 Media Foundation)在 ge11-7-27 上 64、32 位各两种队列 4 次全部卡死,这一版 4 次全部正常;视频测试连跑三轮,MFShutdown 一次没卡(ge11-7-27 一轮卡 8 次)
  • 没有在游戏里实测;没有在 Windows 上对照

已知问题

  • Media Foundation 里没有 MPEG-1/2 视频的解码器(以前也没有;DirectShow 能放)

包含的 WE-Proton 修复

补丁 修了什么
wine 0002 wineserver 崩溃,前缀里的程序一起消失
wine 0003 直接执行 syscall 的代码返回后栈数据被改坏
wine 0004 靠 UDP connect(0.0.0.0) 唤醒 select() 的程序网络请求极慢
wine 0005 基于 CEF 的程序渲染进程一启动就崩
wine 0006 全屏程序因为覆盖层窗口抢走前台而反复最小化
wine 0007 用 UpdateLayeredWindow 绘制的子窗口变成单独的窗口(启动、登录窗口出现两个、错位)
wine 0008 《最终幻想14》国服点「开始游戏」报账号认证错误 5003
wine 0009 《天涯明月刀》DX12 客户端加载场景时闪退
wine 0010 《黑色沙漠》国服点「开始游戏」后崩溃
wine 0011 WeGame 启动游戏后缩到托盘,在 waybar 等面板上看不到图标、窗口叫不回来
wine 0013 雷神加速器启动器崩溃:私有命名空间没有实现
wine 0014 WeGame 搜索栏打不了中文(有候选框,选字后不上屏)
wine 0015 加速器、VPN 给虚拟网卡配 IP、加路由失败
wine 0016 加速器、VPN 用 wintun 建不了虚拟网卡
wine 0017 加速器开了 TUN 模式后,它自己直连的流量也被虚拟网卡吃掉
wine 0019 《王者万象棋》闪退(驱动调用 Inbv* 被中止)
wine 0020 《暗区突围:无限》进游戏两到五分钟后闪退
wine 0021、0022 《诡秘之主》等较新的 UE5 游戏提示缺少 Microsoft Visual C++ 运行库
wine 0023 《诡秘之主》的启动器切几次焦点就点不动(Wayland 桌面)
wine 0048 网易 UU 加速器的路由模式报 50004:找不到自己建的虚拟网卡
wine 0049 托盘图标透明的地方显示成黑色(关掉 GE-Proton 自带的托盘实现)
wine 0050 Wayland 驱动下,合成器的全屏快捷键无效(全屏立刻被撤销),游戏的窗口模式也一样
wine 0052 Wayland 驱动下,niri 分支的网格概览一移到 Wine 窗口就关掉
wine 0053 网易 UU 加速器的路由模式显示在加速,实际没有加速(旧的路由函数什么都不做)
wine 0054 没写过的写时复制页,内存保护属性报得和 Windows 不一致
wine 0055 用 Media Foundation 放完视频、马上关闭时,程序卡住不动
protonfixes 0051 加入正在运行的前缀(proton run)的游戏拿不到 protonfixes 的修正;启动器设 PROTONFIXES_RUN_VERB=1 后照常执行
vkd3d-proton 0001 部分 D3D12 着色器在 AMD 显卡上崩溃

每个补丁的现象、根因和验证见仓库的 we/fixes/。

安装

wegame-launcher 会自动下载最新的 WE-Proton;shorin-proton-wrapper 用 --update 更新「WE-Proton Latest」。手动安装:把 we-proton-ge11-7-28.tar.xz 解压到启动器的 Proton 目录(Steam:~/.local/share/Steam/compatibilitytools.d/;shorin-proton-wrapper:~/.local/share/proton/runners/),在启动器里选 we-proton-ge11-7-28。

最好在 Steam Linux Runtime 4.0 容器里运行(Steam、umu、wegame-launcher 都会自动这样做)。

文件

  • we-proton-ge11-7-28.tar.xz:runner
  • we-proton-ge11-7-28.sha512sum:校验值
  • we-proton-ge11-7-28-source.tar.xz:构建这些二进制所用的、打好补丁的 Wine、vkd3d-proton 和 dxvk 源码

本项目不支持竞技游戏、不对 ACE 等反作弊做任何适配。在 Linux 上运行带反作弊的游戏可能被封号,后果自负。



English

Based on GE-Proton GE-Proton11-7 and DW-Proton dwproton-11.0-14, plus WE-Proton's own fixes for WeGame and its games.

Changes since we-proton-ge11-7-27:

  • New: wine 0055, closing Media Foundation right after a video no longer hangs. A program calling MFShutdown right after releasing a source reader often hung (in a game: stuck after an intro, a cutscene or on exit). Wine shut the work queues down holding a lock while waiting for their callbacks, and the reader's last release happened in one of those callbacks and needed the same lock. The latent bug is upstream Wine's; a leak fix in GE-Proton's video patches made it show. It was listed as a known problem in ge11-7-27

What was and wasn't verified:

  • A full build with every patch applied
  • WE-Proton's probe programs inside the Steam Linux Runtime 4.0 give the same results as the previous release
  • 0055: a reproducer (a work queue callback unlocking a queue while Media Foundation shuts down) hung 4 times out of 4 on ge11-7-27 (64 and 32 bit, two kinds of queue) and passes 4 out of 4 now; three rounds of the video tests had no MFShutdown hang (ge11-7-27: 8 per round)
  • Not tested in games; not compared with Windows

Known problem: Media Foundation has no MPEG-1/2 video decoder (it never had; DirectShow plays them).

Extract we-proton-ge11-7-28.tar.xz into your launcher's Proton directory and select we-proton-ge11-7-28; wegame-launcher downloads it by itself, and shorin-proton-wrapper updates "WE-Proton Latest" with --update. It is best run inside the Steam Linux Runtime 4.0 (Steam, umu and wegame-launcher do this). we-proton-ge11-7-28-source.tar.xz holds the patched Wine, vkd3d-proton and dxvk sources these binaries were built from.

This project does not support competitive games and does no work for ACE or any other anti-cheat. Running games with anti-cheat on Linux may get your account banned; you bear the consequences.

we-proton-ge11-7-27

Choose a tag to compare

@SHORiN-KiWATA SHORiN-KiWATA released this 12 Oct 08:27

基于 GE-Proton GE-Proton11-7 和 DW-Proton dwproton-11.0-14,加上 WE-Proton 自己修复 WeGame 和其中游戏的补丁。中文 | English

这一版的变化(相对 we-proton-ge11-7-26)

  • 提前带上 GE-Proton 主线在 GE-Proton11-7 之后的一批修复(GE-Proton11-8 还没发布):
    • Wine 的 Wayland 驱动:全屏窗口最小化后恢复时卡死;托盘菜单的键盘焦点、层级,点托盘图标后程序拿不到前台;光标消失;剪贴板引起的崩溃;固定尺寸窗口的崩溃;屏幕没开 HDR 时不再强报 HDR
    • 进程关掉自己所在的作业对象时 wineserver 崩溃;进程退出时卡在锁上
    • 32 位程序停止播放视频时崩溃或内存出错(winedmo)
    • AV1 视频能解码了(FFmpeg 之前没有链接 dav1d)
  • 新增 wine 0054:没写过的写时复制页,VirtualProtect 报的旧属性和 Windows 一致了。 GE-Proton 带的一个 staging 补丁把这类页一律报成可读写,把 0005 给出的正确结果改错了;现在只在 0005 跟踪不了的情况下(内核不支持 userfaultfd 异步写保护)保留那个猜测

验证过的和没验证的

  • 构建:完整构建,所有补丁打上,没有失败
  • 回归测试:WE-Proton 的探测程序在 Steam Linux Runtime 4.0 里和上一版一致,只有写时复制的探测变了一行,变得和 Windows 一致(0054)
  • 0054:和 Windows 上的实测输出逐行一致;内核不让用 userfaultfd 时,行为和以前一样;WeGame(基于 CEF)正常运行,渲染进程没有崩溃
  • GE-Proton 主线的修复:WeGame 在 X11 和 Wine 的 Wayland 驱动(嵌套的 niri)下都正常,最小化、恢复正常;全屏 D3D11 窗口最小化再恢复不卡(这个卡死在这里本来就没复现出来,是按 GE-Proton 的说明带上的)
  • 视频:32 位程序停止 DirectShow、Media Foundation 视频时,winedmo 里不再出现内存错误;AV1 能解码;H.264、WMV、VP9 照常
  • 没有在游戏里实测;托盘菜单的几处修复没有专门测

已知问题

  • Media Foundation:释放读取器后马上调用 MFShutdown,偶尔会卡住(换成 GE-Proton 底座后出现,正在查)
  • Media Foundation 里没有 MPEG-1/2 视频的解码器(以前也没有;DirectShow 能放)

包含的 WE-Proton 修复

补丁 修了什么
wine 0002 wineserver 崩溃,前缀里的程序一起消失
wine 0003 直接执行 syscall 的代码返回后栈数据被改坏
wine 0004 靠 UDP connect(0.0.0.0) 唤醒 select() 的程序网络请求极慢
wine 0005 基于 CEF 的程序渲染进程一启动就崩
wine 0006 全屏程序因为覆盖层窗口抢走前台而反复最小化
wine 0007 用 UpdateLayeredWindow 绘制的子窗口变成单独的窗口(启动、登录窗口出现两个、错位)
wine 0008 《最终幻想14》国服点「开始游戏」报账号认证错误 5003
wine 0009 《天涯明月刀》DX12 客户端加载场景时闪退
wine 0010 《黑色沙漠》国服点「开始游戏」后崩溃
wine 0011 WeGame 启动游戏后缩到托盘,在 waybar 等面板上看不到图标、窗口叫不回来
wine 0013 雷神加速器启动器崩溃:私有命名空间没有实现
wine 0014 WeGame 搜索栏打不了中文(有候选框,选字后不上屏)
wine 0015 加速器、VPN 给虚拟网卡配 IP、加路由失败
wine 0016 加速器、VPN 用 wintun 建不了虚拟网卡
wine 0017 加速器开了 TUN 模式后,它自己直连的流量也被虚拟网卡吃掉
wine 0019 《王者万象棋》闪退(驱动调用 Inbv* 被中止)
wine 0020 《暗区突围:无限》进游戏两到五分钟后闪退
wine 0021、0022 《诡秘之主》等较新的 UE5 游戏提示缺少 Microsoft Visual C++ 运行库
wine 0023 《诡秘之主》的启动器切几次焦点就点不动(Wayland 桌面)
wine 0048 网易 UU 加速器的路由模式报 50004:找不到自己建的虚拟网卡
wine 0049 托盘图标透明的地方显示成黑色(关掉 GE-Proton 自带的托盘实现)
wine 0050 Wayland 驱动下,合成器的全屏快捷键无效(全屏立刻被撤销),游戏的窗口模式也一样
wine 0052 Wayland 驱动下,niri 分支的网格概览一移到 Wine 窗口就关掉
wine 0053 网易 UU 加速器的路由模式显示在加速,实际没有加速(旧的路由函数什么都不做)
wine 0054 没写过的写时复制页,内存保护属性报得和 Windows 不一致
protonfixes 0051 加入正在运行的前缀(proton run)的游戏拿不到 protonfixes 的修正;启动器设 PROTONFIXES_RUN_VERB=1 后照常执行
vkd3d-proton 0001 部分 D3D12 着色器在 AMD 显卡上崩溃

每个补丁的现象、根因和验证见仓库的 we/fixes/。

安装

wegame-launcher 会自动下载最新的 WE-Proton;shorin-proton-wrapper 用 --update 更新「WE-Proton Latest」。手动安装:把 we-proton-ge11-7-27.tar.xz 解压到启动器的 Proton 目录(Steam:~/.local/share/Steam/compatibilitytools.d/;shorin-proton-wrapper:~/.local/share/proton/runners/),在启动器里选 we-proton-ge11-7-27。

最好在 Steam Linux Runtime 4.0 容器里运行(Steam、umu、wegame-launcher 都会自动这样做)。

文件

  • we-proton-ge11-7-27.tar.xz:runner
  • we-proton-ge11-7-27.sha512sum:校验值
  • we-proton-ge11-7-27-source.tar.xz:构建这些二进制所用的、打好补丁的 Wine、vkd3d-proton 和 dxvk 源码

本项目不支持竞技游戏、不对 ACE 等反作弊做任何适配。在 Linux 上运行带反作弊的游戏可能被封号,后果自负。


English

Based on GE-Proton GE-Proton11-7 and DW-Proton dwproton-11.0-14, plus WE-Proton's own fixes for WeGame and its games.

Changes since we-proton-ge11-7-26:

  • Fixes from GE-Proton's master added since GE-Proton11-7, ahead of GE-Proton11-8: in Wine's Wayland driver, fullscreen windows hanging when restored after being minimized, tray menus (keyboard focus, stacking, the program not getting the foreground after a tray click), vanishing cursors, a clipboard crash and a crash with fixed-size windows, and no HDR forced on outputs without it; wineserver crashing when a process closes the job it is in; processes hanging on a lock when exiting; 32-bit programs crashing when they stop a video (winedmo); AV1 video decoding (FFmpeg was not linked with dav1d)
  • New: wine 0054. For write-copy pages that were never written, VirtualProtect now reports the old protection Windows reports. A staging patch carried by GE-Proton reported all of them as read-write, turning 0005's correct answer into a wrong one; that guess is now kept only where 0005 can't track the pages (no asynchronous userfaultfd write protection in the kernel)

What was and wasn't verified:

  • A full build with every patch applied
  • WE-Proton's probe programs inside the Steam Linux Runtime 4.0 give the same results as the previous release, except for one line of the write-copy probe, which now matches Windows (0054)
  • 0054: the probe's output matches Windows line by line; with userfaultfd blocked the behaviour is the same as before; WeGame (CEF based) runs and its renderer processes don't crash
  • The GE-Proton fixes: WeGame works with X11 and with Wine's Wayland driver (in a nested niri), minimizing and restoring included; a fullscreen D3D11 window doesn't hang when restored after being minimized (that hang was never reproduced here; the fix is taken on GE-Proton's description)
  • Video: no more memory errors in winedmo when 32-bit programs stop DirectShow or Media Foundation videos; AV1 decodes; H.264, WMV and VP9 as before
  • Not tested in games; the tray menu fixes weren't tested specifically

Known problems: MFShutdown called right after a Media Foundation source reader is released sometimes hangs (since the move to the GE-Proton base, being looked into); Media Foundation has no MPEG-1/2 video decoder (it never had; DirectShow plays them).

Extract we-proton-ge11-7-27.tar.xz into your launcher's Proton directory and select we-proton-ge11-7-27; wegame-launcher downloads it by itself, and shorin-proton-wrapper updates "WE-Proton Latest" with --update. It is best run inside the Steam Linux Runtime 4.0 (Steam, umu and wegame-launcher do this). we-proton-ge11-7-27-source.tar.xz holds the patched Wine, vkd3d-proton and dxvk sources these binaries were built from.

This project does not support competitive games and does no work for ACE or any other anti-cheat. Running games with anti-cheat on Linux may get your account banned; you bear the consequences.

we-proton-ge11-7-26

Choose a tag to compare

@SHORiN-KiWATA SHORiN-KiWATA released this 12 Oct 06:01

基于 GE-Proton GE-Proton11-7 和 DW-Proton dwproton-11.0-14,加上 WE-Proton 自己修复 WeGame 和其中游戏的补丁。中文 | English

这一版的变化(相对 we-proton-ge11-7-25)

  • 新增 wine 0053:网易 UU 加速器的路由模式真正加速了。 UU 用旧的 CreateIpForwardEntry/DeleteIpForwardEntry 加删路由,Wine 里这几个函数什么都不做就返回成功:UU 显示在加速,路由却一条也没加上,流量照旧从真实网卡出去。现在它们按 Windows 上实测的规则(metric、协议、下一跳)交给 0015 的新路由函数,路由真正加进系统。配合 shorin-proton-wrapper 的独立网络,同一个网络里的 Linux 程序(例如 Linux 版 Steam)也能被 UU 接管
  • xalia 默认关闭,要用设 PROTON_USE_XALIA=1。 GE-Proton 对所有程序都开着 xalia(用手柄操作程序界面的辅助程序),它的无障碍查询会让 WeGame 的界面卡死

验证过的和没验证的

  • 构建:完整构建,所有补丁打上,没有失败
  • 回归测试:WE-Proton 的探测程序在 Steam Linux Runtime 4.0 里跑过,和上一版结果一致
  • 0053:测试程序在 Windows 11 和 Wine(网络命名空间里)上逐项比较了返回码和加出来的路由,除了 Linux 本身做不到的两种路由(网关不在直连网段里、同一目标挂两个下一跳)外一致;网易 UU 的路由模式实测:加速后路由加进了系统,Steam 商店的流量走 UU 的网卡
  • 在海外用 UU 加速 Steam 时,商店页面可能加载不出来:UU 只放行它名单里的域名,和商店共用 IP 的图片、脚本连接被它断开。这是 UU 的规则,不是这个补丁的问题

包含的 WE-Proton 修复

补丁 修了什么
wine 0002 wineserver 崩溃,前缀里的程序一起消失
wine 0003 直接执行 syscall 的代码返回后栈数据被改坏
wine 0004 靠 UDP connect(0.0.0.0) 唤醒 select() 的程序网络请求极慢
wine 0005 基于 CEF 的程序渲染进程一启动就崩
wine 0006 全屏程序因为覆盖层窗口抢走前台而反复最小化
wine 0007 用 UpdateLayeredWindow 绘制的子窗口变成单独的窗口(启动、登录窗口出现两个、错位)
wine 0008 《最终幻想14》国服点「开始游戏」报账号认证错误 5003
wine 0009 《天涯明月刀》DX12 客户端加载场景时闪退
wine 0010 《黑色沙漠》国服点「开始游戏」后崩溃
wine 0011 WeGame 启动游戏后缩到托盘,在 waybar 等面板上看不到图标、窗口叫不回来
wine 0013 雷神加速器启动器崩溃:私有命名空间没有实现
wine 0014 WeGame 搜索栏打不了中文(有候选框,选字后不上屏)
wine 0015 加速器、VPN 给虚拟网卡配 IP、加路由失败
wine 0016 加速器、VPN 用 wintun 建不了虚拟网卡
wine 0017 加速器开了 TUN 模式后,它自己直连的流量也被虚拟网卡吃掉
wine 0019 《王者万象棋》闪退(驱动调用 Inbv* 被中止)
wine 0020 《暗区突围:无限》进游戏两到五分钟后闪退
wine 0021、0022 《诡秘之主》等较新的 UE5 游戏提示缺少 Microsoft Visual C++ 运行库
wine 0023 《诡秘之主》的启动器切几次焦点就点不动(Wayland 桌面)
wine 0048 网易 UU 加速器的路由模式报 50004:找不到自己建的虚拟网卡
wine 0049 托盘图标透明的地方显示成黑色(关掉 GE-Proton 自带的托盘实现)
wine 0050 Wayland 驱动下,合成器的全屏快捷键无效(全屏立刻被撤销),游戏的窗口模式也一样
wine 0052 Wayland 驱动下,niri 分支的网格概览一移到 Wine 窗口就关掉
wine 0053 网易 UU 加速器的路由模式显示在加速,实际没有加速(旧的路由函数什么都不做)
protonfixes 0051 加入正在运行的前缀(proton run)的游戏拿不到 protonfixes 的修正;启动器设 PROTONFIXES_RUN_VERB=1 后照常执行
vkd3d-proton 0001 部分 D3D12 着色器在 AMD 显卡上崩溃

每个补丁的现象、根因和验证见仓库的 we/fixes/。

安装

wegame-launcher 会自动下载最新的 WE-Proton;shorin-proton-wrapper 用 --update 更新「WE-Proton Latest」。手动安装:把 we-proton-ge11-7-26.tar.xz 解压到启动器的 Proton 目录(Steam:~/.local/share/Steam/compatibilitytools.d/;shorin-proton-wrapper:~/.local/share/proton/runners/),在启动器里选 we-proton-ge11-7-26。

最好在 Steam Linux Runtime 4.0 容器里运行(Steam、umu、wegame-launcher 都会自动这样做)。

文件

  • we-proton-ge11-7-26.tar.xz:runner
  • we-proton-ge11-7-26.sha512sum:校验值
  • we-proton-ge11-7-26-source.tar.xz:构建这些二进制所用的、打好补丁的 Wine、vkd3d-proton 和 dxvk 源码

本项目不支持竞技游戏、不对 ACE 等反作弊做任何适配。在 Linux 上运行带反作弊的游戏可能被封号,后果自负。


English

Based on GE-Proton GE-Proton11-7 and DW-Proton dwproton-11.0-14, plus WE-Proton's own fixes for WeGame and its games.

Changes since we-proton-ge11-7-25:

  • New: wine 0053, NetEase UU's route mode really accelerates. UU adds and removes its routes with the old CreateIpForwardEntry/DeleteIpForwardEntry, which in Wine did nothing and returned success: UU showed itself accelerating while no route was added and the traffic still left through the real adapter. They now go through 0015's newer route functions, taking the metric, protocol and next hop the way Windows does (measured on Windows), so the routes are really added. With shorin-proton-wrapper's separate network, Linux programs in the same network (the Linux Steam client, say) are carried by UU too
  • xalia is off by default; set PROTON_USE_XALIA=1 to use it. GE-Proton starts xalia (which lets a gamepad drive program interfaces) for every program, and its accessibility queries freeze WeGame's interface

What was and wasn't verified:

  • A full build with every patch applied
  • WE-Proton's probe programs inside the Steam Linux Runtime 4.0 give the same results as the previous release
  • 0053: a test program compared the return codes and the resulting routes on Windows 11 and on Wine (in a network namespace); they agree except for two kinds of route Linux itself cannot take (a gateway outside the directly connected networks, two next hops for one destination). NetEase UU's route mode was tested: the routes reach the system and the Steam store's traffic goes through UU's adapter
  • Using UU to accelerate Steam from outside China, the store page may not load: UU only lets through the domains on its list, and drops the connections for the images and scripts that share the store's addresses. That is UU's rule, not this patch

Extract we-proton-ge11-7-26.tar.xz into your launcher's Proton directory and select we-proton-ge11-7-26; wegame-launcher downloads it by itself, and shorin-proton-wrapper updates "WE-Proton Latest" with --update. It is best run inside the Steam Linux Runtime 4.0 (Steam, umu and wegame-launcher do this). we-proton-ge11-7-26-source.tar.xz holds the patched Wine, vkd3d-proton and dxvk sources these binaries were built from.

This project does not support competitive games and does no work for ACE or any other anti-cheat. Running games with anti-cheat on Linux may get your account banned; you bear the consequences.

we-proton-ge11-7-25

Choose a tag to compare

@SHORiN-KiWATA SHORiN-KiWATA released this 11 Oct 20:30

从这一版起,WE-Proton 改为基于 GE-Proton 和 DW-Proton:以 GE-Proton GE-Proton11-7 为底,合入 DW-Proton dwproton-11.0-14 的补丁,再加上 WE-Proton 自己修复 WeGame 和其中游戏的补丁。中文 | English

这一版的变化(相对 we-proton-11.0-14-24)

  • 底座换成 GE-Proton。 带来 GE-Proton 的 Wayland 驱动、视频方案(winedmo + FFmpeg 8.1)、staging 的全部补丁和 GE-Proton 的各种游戏修复
  • 合入 DW-Proton 的补丁。 DW-Proton 的 Wine 提交里 GE-Proton 没有的 157 个(二次元游戏等的兼容修复,包括异环、hololive Dreams、NIKKE、鸣潮相关的几处),以及 DW-Proton 的 protonfixes 游戏修复和 dxvk 的 HDR 检测。dxvk、vkd3d-proton、protonfixes 用 DW-Proton 的较新版本。GE-Proton 已经有的、和 GE-Proton 的视频方案冲突的没有合入,详见 we/ge-dw-merge.md
  • 新增 wine 0048:网易 UU 加速器的路由模式能用了。 内置 wintun 按 Windows 的格式报网卡描述(<tunnel type> Tunnel),UU 按描述找自己建的虚拟网卡,原来找不到,报 50004。雷神加速器模式三回归过,不受影响
  • 新增 wine 0050:用 Wine 的 Wayland 驱动时(wegame-launcher 的 Wayland 开关),合成器的全屏快捷键能用了。 原来窗口全屏一下就被驱动撤销,或者一切换焦点就退出全屏;游戏的窗口模式(例如《封印者》)也一样。浮动窗口退出全屏后回到原来的尺寸
  • 新增 wine 0052:Wayland 驱动下,niri 分支的网格概览不会再因为焦点移到 Wine 窗口而关掉。 驱动原来在窗口拿到焦点后还向合成器申请一次激活
  • 新增 protonfixes 0051:启动器设了 PROTONFIXES_RUN_VERB=1 时,用 proton run 加入正在运行的前缀的游戏也执行 protonfixes 的修正。 shorin-proton-wrapper 的「一个前缀一个会话」会用到:先开了加速器再从 Steam 启动的游戏,原来拿不到修正(例如《战锤40K:暗潮》的修正绕开启动器,没绕开时窗口出不来)
  • WE-Proton 的补丁照旧带着(0002–0011、0013–0017、0019–0023、vkd3d-proton 0001)。托盘图标仍用 WE-Proton 的实现(0011):GE-Proton 自带的那套会把 WeGame 托盘图标透明的地方画成黑色,由新增的 0049 关掉。不再需要的:0012 修的 bug GE-Proton 也修了;从 GE-Proton 搬来的 0024–0042 等现在由 GE-Proton 本身带着
  • 完整构建。 不再是在官方发布包上替换文件,所有组件都从源码编译
  • 前缀版本变成 GE-Proton11-7,从旧版换过来时前缀会升级一次

验证过的和没验证的

  • 构建:完整构建,所有补丁打上,没有失败
  • 回归测试:WE-Proton 的探测程序在 Steam Linux Runtime 4.0 里跑过,和上一版结果一致,只有一处不同:staging 的一个补丁让 VirtualProtect 对没写过的写时复制页报告 PAGE_READWRITE(Windows 报 PAGE_WRITECOPY)
  • 实机:WeGame(X11 和 Wayland 驱动)、托盘图标、《封印者》(窗口模式和全屏)、Wayland 驱动下的全屏快捷键和 niri 网格概览都测过;protonfixes 0051 在 shorin-proton-wrapper 的会话里用《战锤40K:暗潮》测过(在 DW-Proton 底座的测试构建上,补丁内容相同)
  • 点击穿透窗口恢复输入(0023)、D3D11 建设备另有测试程序
  • 行为变化:GE-Proton 的「WM_ACTIVATEAPP 的 lparam 不为零」现在对所有程序生效(以前只对一个游戏);宿主机开了 HDR 时 dxvk 自动报告 HDR10(DXVK_NO_HDR=1 关掉)

包含的 WE-Proton 修复

补丁 修了什么
wine 0002 wineserver 崩溃,前缀里的程序一起消失
wine 0003 直接执行 syscall 的代码返回后栈数据被改坏
wine 0004 靠 UDP connect(0.0.0.0) 唤醒 select() 的程序网络请求极慢
wine 0005 基于 CEF 的程序渲染进程一启动就崩
wine 0006 全屏程序因为覆盖层窗口抢走前台而反复最小化
wine 0007 用 UpdateLayeredWindow 绘制的子窗口变成单独的窗口(启动、登录窗口出现两个、错位)
wine 0008 《最终幻想14》国服点「开始游戏」报账号认证错误 5003
wine 0009 《天涯明月刀》DX12 客户端加载场景时闪退
wine 0010 《黑色沙漠》国服点「开始游戏」后崩溃
wine 0011 WeGame 启动游戏后缩到托盘,在 waybar 等面板上看不到图标、窗口叫不回来
wine 0013 雷神加速器启动器崩溃:私有命名空间没有实现
wine 0014 WeGame 搜索栏打不了中文(有候选框,选字后不上屏)
wine 0015 加速器、VPN 给虚拟网卡配 IP、加路由失败
wine 0016 加速器、VPN 用 wintun 建不了虚拟网卡
wine 0017 加速器开了 TUN 模式后,它自己直连的流量也被虚拟网卡吃掉
wine 0019 《王者万象棋》闪退(驱动调用 Inbv* 被中止)
wine 0020 《暗区突围:无限》进游戏两到五分钟后闪退
wine 0021、0022 《诡秘之主》等较新的 UE5 游戏提示缺少 Microsoft Visual C++ 运行库
wine 0023 《诡秘之主》的启动器切几次焦点就点不动(Wayland 桌面)
wine 0048 网易 UU 加速器的路由模式报 50004:找不到自己建的虚拟网卡
wine 0049 托盘图标透明的地方显示成黑色(关掉 GE-Proton 自带的托盘实现)
wine 0050 Wayland 驱动下,合成器的全屏快捷键无效(全屏立刻被撤销),游戏的窗口模式也一样
wine 0052 Wayland 驱动下,niri 分支的网格概览一移到 Wine 窗口就关掉
protonfixes 0051 加入正在运行的前缀(proton run)的游戏拿不到 protonfixes 的修正;启动器设 PROTONFIXES_RUN_VERB=1 后照常执行
vkd3d-proton 0001 部分 D3D12 着色器在 AMD 显卡上崩溃

每个补丁的现象、根因和验证见仓库的 we/fixes/。

安装

wegame-launcher 会自动下载最新的 WE-Proton;shorin-proton-wrapper 用 --update 更新「WE-Proton Latest」。手动安装:把 we-proton-ge11-7-25.tar.xz 解压到启动器的 Proton 目录(Steam:~/.local/share/Steam/compatibilitytools.d/;shorin-proton-wrapper:~/.local/share/proton/runners/),在启动器里选 we-proton-ge11-7-25。

最好在 Steam Linux Runtime 4.0 容器里运行(Steam、umu、wegame-launcher 都会自动这样做)。

文件

  • we-proton-ge11-7-25.tar.xz:runner
  • we-proton-ge11-7-25.sha512sum:校验值
  • we-proton-ge11-7-25-source.tar.xz:构建这些二进制所用的、打好补丁的 Wine、vkd3d-proton 和 dxvk 源码

本项目不支持竞技游戏、不对 ACE 等反作弊做任何适配。在 Linux 上运行带反作弊的游戏可能被封号,后果自负。


English

Starting with this release, WE-Proton is based on GE-Proton and DW-Proton: GE-Proton GE-Proton11-7 as the base, plus DW-Proton dwproton-11.0-14's patches, plus WE-Proton's own fixes for WeGame and its games.

  • GE-Proton as the base. This brings GE-Proton's Wayland driver, its video playback (winedmo with FFmpeg 8.1), all of wine-staging and GE-Proton's game fixes
  • DW-Proton's patches. The 157 DW-Proton Wine commits GE-Proton doesn't carry (compatibility fixes for anime games and others), DW-Proton's protonfixes game fixes and its dxvk HDR detection. dxvk, vkd3d-proton and protonfixes are DW-Proton's newer versions. What GE-Proton already has, and what conflicts with GE-Proton's video playback, was left out; see we/ge-dw-merge.md (in Chinese)
  • New: wine 0048, NetEase UU's route mode works. The builtin wintun reports the adapter description the Windows driver does (<tunnel type> Tunnel); UU looks its own adapter up by that description and failed with error 50004. Leigod's mode 3 was retested and is not affected
  • New: wine 0050, the compositor's fullscreen keybinding works with Wine's Wayland driver (wegame-launcher's Wayland switch); the driver used to undo it right away or on the next focus change, games in windowed mode included. A floating window goes back to its size when the fullscreen ends
  • New: wine 0052, with Wine's Wayland driver the grid overview of niri forks no longer closes as soon as the focus reaches a Wine window; the driver asked the compositor to activate a window that already had the focus
  • New: protonfixes 0051, games that join a running prefix with proton run get their protonfixes when the launcher sets PROTONFIXES_RUN_VERB=1. shorin-proton-wrapper's one-session-per-prefix mode uses it: a game started from Steam while an accelerator runs in the prefix used to get none of its fixes
  • WE-Proton's patches are still included (0002–0011, 0013–0017, 0019–0023, vkd3d-proton 0001). Tray icons still use WE-Proton's implementation (0011): GE-Proton's own one draws the transparent parts of WeGame's tray icon black, and the new 0049 turns it off. No longer needed: GE-Proton fixed the bug 0012 fixed; the patches imported from GE-Proton (0024–0042 and others) now come with GE-Proton itself
  • A full build. Every component is compiled from source instead of replacing files in an official release
  • The prefix version is now GE-Proton11-7, so a prefix is upgraded once when coming from an older release

What was and wasn't verified:

  • A full build with every patch applied
  • WE-Proton's probe programs inside the Steam Linux Runtime 4.0 give the same results as the previous release, except that a wine-staging patch makes VirtualProtect report PAGE_READWRITE for write-copy pages that were never written (Windows reports PAGE_WRITECOPY)
  • Tested on a real setup: WeGame (X11 and Wayland driver), tray icons, CLOSERS (windowed and fullscreen), the fullscreen keybinding and niri's grid overview with the Wayland driver; protonfixes 0051 with Warhammer 40,000: Darktide in a shorin-proton-wrapper session (on a DW-Proton based test build, same patch)
  • Click-through windows taking input again (0023) and D3D11 device creation have their own test programs
  • Behaviour changes: GE-Proton's non-zero WM_ACTIVATEAPP lparam now applies to every program (it used to apply to one game); with HDR enabled on the host, dxvk reports HDR10 by itself (DXVK_NO_HDR=1 turns it off)

Extract we-proton-ge11-7-25.tar.xz into your launcher's Proton directory and select we-proton-ge11-7-25; wegame-launcher downloads it by itself, and shorin-proton-wrapper updates "WE-Proton Latest" with --update. It is best run inside the Steam Linux Runtime 4.0 (Steam, umu and wegame-launcher do this). we-proton-ge11-7-25-source.tar.xz holds the patched Wine, vkd3d-proton and dxvk sources these binaries were built from.

This project does not support competitive games and does no work for ACE or any other anti-cheat. Running games with anti-cheat on Linux may get your account banned; you bear the consequences.

we-proton-11.0-14-24

Choose a tag to compare

基于 DWProton dwproton-11.0-14,修复 WeGame 和其中的游戏在 Linux 上的问题。中文 | English

这一版的变化(相对 we-proton-11.0-14-23)

补丁 修了什么 换掉的文件
wine 0021 《诡秘之主》等较新的 UE5 游戏启动时提示缺少 Microsoft Visual C++ 2015-2022 Redistributable,点确定就退出:游戏要求运行库版本至少 14.44.35211,Wine 内置的是 14.42.34433。内置运行库的版本号改报 14.99.65535 msvcp140.dll、msvcp140_2.dll、vcruntime140_1.dll
wine 0022 同上,注册表那一项:VC\Runtimes 里记的版本停在建前缀时的旧值(wine.inf 不覆盖已有值)。wineboot 每次启动时把它提到 msvcp140.dll 的版本,旧前缀换新版后也能跟上 wineboot.exe

《诡秘之主》的引导程序在这一版上已经不再报缺少运行库;游戏本体还没有在这一版上完整实测。

之前加入的修复

补丁 修了什么 换掉的文件
wine 0001 (已由 0018 撤回)
wine 0002 wineserver 崩溃,前缀里的程序一起消失 wineserver
wine 0003 直接执行 syscall 的代码返回后栈数据被改坏 ntdll.so
wine 0004 靠 UDP connect(0.0.0.0) 唤醒 select() 的程序网络请求极慢 wineserver
wine 0005 基于 CEF 的程序渲染进程一启动就崩 ntdll.so
wine 0006 全屏程序因为覆盖层窗口抢走前台而反复最小化 win32u.so
wine 0007 用 UpdateLayeredWindow 绘制的子窗口变成单独的窗口(启动、登录窗口出现两个、错位) win32u.so
wine 0008 《最终幻想14》国服点「开始游戏」报账号认证错误 5003:通过进程外 COM 服务器取结果时,类型库里没写方向的参数拿不回值 rpcrt4.dll
wine 0009 《天涯明月刀》DX12 客户端加载场景时闪退:d3dcompiler 读不出最低精度(min16float 等)签名,按反射结果拼的输入布局是空的 d3d10.dll、d3dcompiler_33~43、46、47
wine 0010 《黑色沙漠》国服点「开始游戏」后崩溃:WinHTTP 的请求头以空行开头时整个调用失败,请求发不出去 winhttp.dll
wine 0011 WeGame 启动游戏后缩到托盘,在 waybar 等面板上看不到图标、窗口叫不回来:托盘图标改用 StatusNotifierItem 显示,点击、右键菜单、气泡提示都能用 explorer.exe,新增 explorer.so
wine 0012 《三国杀十周年》接着摄像头时窗口一出来就闪退:WoW64 下视频采集返回给 32 位程序的媒体类型带着未初始化的指针 qcap.so
wine 0013 雷神加速器启动器崩溃:私有命名空间(CreatePrivateNamespace 等)没有实现 ntdll.dll、kernelbase.dll、kernel32.dll
wine 0014 WeGame 搜索栏打不了中文(有候选框,选字后不上屏):关掉了 IMM 的线程收不到输入法提交的文字 win32u.so
wine 0015 加速器、VPN 给虚拟网卡配 IP、加路由失败 iphlpapi.dll、nsi.dll、nsiproxy.sys、nsiproxy.so
wine 0016 加速器、VPN 用 wintun 建不了虚拟网卡:内置一个 wintun.dll,底层用 Linux 的 TUN 设备 新增 wintun.dll、wintun.so
wine 0017 加速器开了 TUN 模式后,它自己直连的流量也被虚拟网卡吃掉,整个会话像断了网 ntdll.so
wine 0018 撤回 wine 0001:带上 0001 时《鸣潮》报运行环境异常,官方 DWProton 不报 ntoskrnl.exe
wine 0019 撤回 0001 后《王者万象棋》闪退(驱动调用 InbvAcquireDisplayOwnership、InbvResetDisplay 时被中止):只把这两个空操作加回来 ntoskrnl.exe
wine 0020 《暗区突围:无限》进游戏两到五分钟后闪退:查询窗口层级的 NtUserGetWindowBand(GetWindowBand)没有实现,一调用就终止进程(画面闪烁、卡顿还没处理) win32u.dll、win32u.so、user32.dll、wow64win.dll
vkd3d-proton 0001 部分 D3D12 着色器在 AMD 显卡上崩溃 d3d12.dll、d3d12core.dll

雷神加速器还需要 wegame-launcher 的「独立网络命名空间」(要装 passt),见 wegame-launcher 的 README。

每个补丁的现象、根因和验证见仓库的 we/fixes/。

换掉的文件

和官方 dwproton-11.0-14 相比,只换了这些文件(都在 files/ 下),share/default_pfx/ 里对应的副本也一起换了:

  • bin/wineserver
  • lib/wine/x86_64-unix/ 下的 ntdll.so、win32u.so、qcap.so、nsiproxy.so,以及新增的 explorer.so、wintun.so
  • lib/wine/x86_64-windows/ 下的 ntoskrnl.exe、nsiproxy.sys、wow64win.dll、vcruntime140_1.dll、wineboot.exe
  • lib/wine/{x86_64,i386}-windows/ 下的 ntdll.dll、kernelbase.dll、kernel32.dll、user32.dll、win32u.dll、rpcrt4.dll、winhttp.dll、iphlpapi.dll、nsi.dll、explorer.exe、d3d10.dll、d3dcompiler_33~43、46、47、msvcp140.dll、msvcp140_2.dll,以及新增的 wintun.dll
  • lib/wine/vkd3d-proton/{x86_64,i386}-windows/ 下的 d3d12.dll、d3d12core.dll

Unix 侧只换了 64 位的库(x86_64-unix)。32 位程序(包括 WeGame 本身)要在 WoW64 模式下运行(PROTON_USE_WOW64=1,wegame-launcher 默认开启),*.so 里的修复才对它们生效;不开 WoW64 时,32 位程序用的是官方包里没改过的 i386-unix 库。wineserver 和 Windows 侧的 DLL 不受这个影响。

安装

wegame-launcher 会自动下载最新的 WE-Proton。手动安装:把 we-proton-11.0-14-24.tar.xz 解压到启动器的 Proton 目录(Steam:~/.local/share/Steam/compatibilitytools.d/;wegame-launcher:~/.local/share/proton/runners/),在启动器里选 we-proton-11.0-14-24。

和 DWProton 一样,最好在 Steam Linux Runtime 4.0 容器里运行(Steam、umu、wegame-launcher 都会自动这样做)。直接在宿主机上跑时,Proton 自带的音视频解码库会缺依赖,游戏里的视频、音频可能放不出来。

文件

  • we-proton-11.0-14-24.tar.xz:runner
  • we-proton-11.0-14-24.sha512sum:校验值
  • we-proton-11.0-14-24-source.tar.xz:构建这些二进制所用的、打好补丁的 Wine 和 vkd3d-proton 源码

本项目不支持竞技游戏、不对 ACE 等反作弊做任何适配。在 Linux 上运行带反作弊的游戏可能被封号,后果自负。


English

Based on DWProton dwproton-11.0-14, with fixes for running WeGame and its games on Linux.

Changes since we-proton-11.0-14-23:

Patch What it fixes Files replaced
wine 0021 Lord of Mysteries and other recent UE5 games say the Microsoft Visual C++ 2015-2022 Redistributable is missing and quit: they require at least 14.44.35211, Wine's builtin runtime reports 14.42.34433. The builtin DLLs now report 14.99.65535 msvcp140.dll, msvcp140_2.dll, vcruntime140_1.dll
wine 0022 The same check reads VC\Runtimes in the registry, which keeps the version of whatever Wine created the prefix (wine.inf does not overwrite existing values). wineboot now raises it to the version of msvcp140.dll on every start, so existing prefixes catch up wineboot.exe

Lord of Mysteries' launcher no longer reports the runtime missing with this release; the game itself has not been played through on it yet.

Earlier fixes (wine 0002–0017, 0019 and 0020, vkd3d-proton 0001; wine 0001 is reverted by 0018) are still included; see the Chinese table above and we/fixes/. Only the 64-bit unix libraries are replaced, so 32-bit programs get the unix-side fixes only in WoW64 mode (PROTON_USE_WOW64=1, the wegame-launcher default). Like DWProton, it is best run inside the Steam Linux Runtime 4.0 (Steam, umu and wegame-launcher do this); run directly on the host, Proton's bundled media decoders miss libraries and in-game video or audio may not play.

Extract we-proton-11.0-14-24.tar.xz into your launcher's Proton directory and select we-proton-11.0-14-24; wegame-launcher downloads it by itself. we-proton-11.0-14-24-source.tar.xz holds the patched Wine and vkd3d-proton sources these binaries were built from.

This project does not support competitive games and does no work for ACE or any other anti-cheat. Running games with anti-cheat on Linux may get your account banned; you bear the consequences.

we-proton-11.0-14-23

Choose a tag to compare

基于 DWProton dwproton-11.0-14,修复 WeGame 和其中的游戏在 Linux 上的问题。中文 | English

这一版的变化(相对 we-proton-11.0-14-22)

补丁 修了什么 换掉的文件
wine 0020 《暗区突围:无限》进游戏两到五分钟后闪退:查询窗口层级的 NtUserGetWindowBand(GetWindowBand)没有实现,一调用就终止进程。现在对有效窗口返回桌面层级 win32u.dll、win32u.so、user32.dll、wow64win.dll

《暗区突围:无限》现在能正常进局游玩,但画面闪烁、间歇卡顿的问题还在,这一版没有处理。

之前加入的修复

补丁 修了什么 换掉的文件
wine 0001 (已由 0018 撤回)
wine 0002 wineserver 崩溃,前缀里的程序一起消失 wineserver
wine 0003 直接执行 syscall 的代码返回后栈数据被改坏 ntdll.so
wine 0004 靠 UDP connect(0.0.0.0) 唤醒 select() 的程序网络请求极慢 wineserver
wine 0005 基于 CEF 的程序渲染进程一启动就崩 ntdll.so
wine 0006 全屏程序因为覆盖层窗口抢走前台而反复最小化 win32u.so
wine 0007 用 UpdateLayeredWindow 绘制的子窗口变成单独的窗口(启动、登录窗口出现两个、错位) win32u.so
wine 0008 《最终幻想14》国服点「开始游戏」报账号认证错误 5003:通过进程外 COM 服务器取结果时,类型库里没写方向的参数拿不回值 rpcrt4.dll
wine 0009 《天涯明月刀》DX12 客户端加载场景时闪退:d3dcompiler 读不出最低精度(min16float 等)签名,按反射结果拼的输入布局是空的 d3d10.dll、d3dcompiler_33~43、46、47
wine 0010 《黑色沙漠》国服点「开始游戏」后崩溃:WinHTTP 的请求头以空行开头时整个调用失败,请求发不出去 winhttp.dll
wine 0011 WeGame 启动游戏后缩到托盘,在 waybar 等面板上看不到图标、窗口叫不回来:托盘图标改用 StatusNotifierItem 显示,点击、右键菜单、气泡提示都能用 explorer.exe,新增 explorer.so
wine 0012 《三国杀十周年》接着摄像头时窗口一出来就闪退:WoW64 下视频采集返回给 32 位程序的媒体类型带着未初始化的指针 qcap.so
wine 0013 雷神加速器启动器崩溃:私有命名空间(CreatePrivateNamespace 等)没有实现 ntdll.dll、kernelbase.dll、kernel32.dll
wine 0014 WeGame 搜索栏打不了中文(有候选框,选字后不上屏):关掉了 IMM 的线程收不到输入法提交的文字 win32u.so
wine 0015 加速器、VPN 给虚拟网卡配 IP、加路由失败 iphlpapi.dll、nsi.dll、nsiproxy.sys、nsiproxy.so
wine 0016 加速器、VPN 用 wintun 建不了虚拟网卡:内置一个 wintun.dll,底层用 Linux 的 TUN 设备 新增 wintun.dll、wintun.so
wine 0017 加速器开了 TUN 模式后,它自己直连的流量也被虚拟网卡吃掉,整个会话像断了网 ntdll.so
wine 0018 撤回 wine 0001:带上 0001 时《鸣潮》报运行环境异常,官方 DWProton 不报 ntoskrnl.exe
wine 0019 撤回 0001 后《王者万象棋》闪退(驱动调用 InbvAcquireDisplayOwnership、InbvResetDisplay 时被中止):只把这两个空操作加回来 ntoskrnl.exe
vkd3d-proton 0001 部分 D3D12 着色器在 AMD 显卡上崩溃 d3d12.dll、d3d12core.dll

雷神加速器还需要 wegame-launcher 的「独立网络命名空间」(要装 passt),见 wegame-launcher 的 README。

每个补丁的现象、根因和验证见仓库的 we/fixes/。

换掉的文件

和官方 dwproton-11.0-14 相比,只换了这些文件(都在 files/ 下),share/default_pfx/ 里对应的副本也一起换了:

  • bin/wineserver
  • lib/wine/x86_64-unix/ 下的 ntdll.so、win32u.so、qcap.so、nsiproxy.so,以及新增的 explorer.so、wintun.so
  • lib/wine/x86_64-windows/ 下的 ntoskrnl.exe、nsiproxy.sys、wow64win.dll
  • lib/wine/{x86_64,i386}-windows/ 下的 ntdll.dll、kernelbase.dll、kernel32.dll、user32.dll、win32u.dll、rpcrt4.dll、winhttp.dll、iphlpapi.dll、nsi.dll、explorer.exe、d3d10.dll、d3dcompiler_33~43、46、47,以及新增的 wintun.dll
  • lib/wine/vkd3d-proton/{x86_64,i386}-windows/ 下的 d3d12.dll、d3d12core.dll

Unix 侧只换了 64 位的库(x86_64-unix)。32 位程序(包括 WeGame 本身)要在 WoW64 模式下运行(PROTON_USE_WOW64=1,wegame-launcher 默认开启),*.so 里的修复才对它们生效;不开 WoW64 时,32 位程序用的是官方包里没改过的 i386-unix 库。wineserver 和 Windows 侧的 DLL 不受这个影响。

安装

wegame-launcher 会自动下载最新的 WE-Proton。手动安装:把 we-proton-11.0-14-23.tar.xz 解压到启动器的 Proton 目录(Steam:~/.local/share/Steam/compatibilitytools.d/;wegame-launcher:~/.local/share/proton/runners/),在启动器里选 we-proton-11.0-14-23。

和 DWProton 一样,最好在 Steam Linux Runtime 4.0 容器里运行(Steam、umu、wegame-launcher 都会自动这样做)。直接在宿主机上跑时,Proton 自带的音视频解码库会缺依赖,游戏里的视频、音频可能放不出来。

文件

  • we-proton-11.0-14-23.tar.xz:runner
  • we-proton-11.0-14-23.sha512sum:校验值
  • we-proton-11.0-14-23-source.tar.xz:构建这些二进制所用的、打好补丁的 Wine 和 vkd3d-proton 源码

本项目不支持竞技游戏、不对 ACE 等反作弊做任何适配。在 Linux 上运行带反作弊的游戏可能被封号,后果自负。


English

Based on DWProton dwproton-11.0-14, with fixes for running WeGame and its games on Linux.

Changes since we-proton-11.0-14-22:

Patch What it fixes Files replaced
wine 0020 Arena Breakout: Infinite crashes two to five minutes into the game: NtUserGetWindowBand (GetWindowBand), which asks for a window's z-order band, was a stub that terminates the process. It now returns the desktop band for valid windows win32u.dll, win32u.so, user32.dll, wow64win.dll

The game now runs, but its flickering and stutter remain; this release does not address them.

Earlier fixes (wine 0002–0017 and 0019, vkd3d-proton 0001; wine 0001 is reverted by 0018) are still included; see the Chinese table above and we/fixes/. Only the 64-bit unix libraries are replaced, so 32-bit programs get the unix-side fixes only in WoW64 mode (PROTON_USE_WOW64=1, the wegame-launcher default). Like DWProton, it is best run inside the Steam Linux Runtime 4.0 (Steam, umu and wegame-launcher do this); run directly on the host, Proton's bundled media decoders miss libraries and in-game video or audio may not play.

Extract we-proton-11.0-14-23.tar.xz into your launcher's Proton directory and select we-proton-11.0-14-23; wegame-launcher downloads it by itself. we-proton-11.0-14-23-source.tar.xz holds the patched Wine and vkd3d-proton sources these binaries were built from.

This project does not support competitive games and does no work for ACE or any other anti-cheat. Running games with anti-cheat on Linux may get your account banned; you bear the consequences.

we-proton-11.0-14-8

Choose a tag to compare

@SHORiN-KiWATA SHORiN-KiWATA released this 08 Oct 07:39

基于 DWProton dwproton-11.0-14,修复 WeGame 在 Linux 上的问题。中文 | English

修复

  • wine 0001:一些第三方内核驱动加载失败,或运行一段时间后被结束
  • wine 0002:wineserver 崩溃,前缀里的程序一起消失
  • wine 0003:直接执行 syscall 的代码返回后栈数据被改坏
  • wine 0004:靠 UDP connect(0.0.0.0) 唤醒 select() 的程序网络请求极慢
  • wine 0005:基于 CEF 的程序渲染进程一启动就崩
  • wine 0006:全屏程序因为覆盖层窗口抢走前台而反复最小化
  • wine 0007:用 UpdateLayeredWindow 绘制的子窗口变成单独的窗口(启动/登录窗口出现两个、错位、交互异常)
  • vkd3d-proton 0001:部分 D3D12 着色器在 AMD 显卡上崩溃

详情见仓库的 README 和 we/fixes/。

安装

把 we-proton-11.0-14-8.tar.xz 解压到启动器的 Proton 目录(Steam:~/.local/share/Steam/compatibilitytools.d/;wegame-launcher:~/.local/share/proton/runners/),在启动器里选 we-proton-11.0-14-8。

文件

  • we-proton-11.0-14-8.tar.xz:runner
  • we-proton-11.0-14-8.sha512sum:校验值
  • we-proton-11.0-14-8-source.tar.xz:构建这些二进制所用的、打好补丁的 Wine 和 vkd3d-proton 源码

本项目不支持竞技游戏、不对 ACE 等反作弊做任何适配。在 Linux 上运行带反作弊的游戏可能被封号,后果自负。


English

Based on DWProton dwproton-11.0-14, with fixes for running WeGame on Linux (see the list above and the repository's README). Extract we-proton-11.0-14-8.tar.xz into your launcher's Proton directory and select we-proton-11.0-14-8. we-proton-11.0-14-8-source.tar.xz holds the patched Wine and vkd3d-proton sources these binaries were built from.

This project does not support competitive games and does no work for ACE or any other anti-cheat. Running games with anti-cheat on Linux may get your account banned; you bear the consequences.