[Share Experiences] 在龙芯新世界上运行 Steam (wine) Resolved
Tofloor
poster avatar
忘记、过去
deepin
2025-05-05 20:40
Author

在龙芯新世界上运行 Steam (wine)

炒个冷饭,@杀毒软件吧 大佬已经在星火商店中投递过一版了(详见 https://bbs.deepin.org.cn/post/278255

不过由于使用了 32 位 wine 容器,限制还是不少。
这次在 64 位容器里用 玄学 把 Steam 跑起来了,打包之后好像也没啥问题,测试了下几个 DX9 和 DX11 的经典游戏(黑山起源,传送门 2,光明记忆)都能正常运行,就发出来征集倒霉蛋试试 XD......


下载地址:https://f.wss.ink/f/gxl9xv8kuwl

用不起百度网盘,先用文叔叔共享吧......大概可能可以扔进星火商店的仓库?

测试环境

  • 系统:deepin 25 Beta(别问,问就是不怕死直接换源从 23 升级的)
  • 内存:32G
  • 显卡:AMD RX 6750 GRE 12G
  • Wine 版本:Wine-Proton 9.0-4

从零开始的安装运行步骤

  • 有一点魔法和运气,没有半点科技......
  • 全靠星火商店仓库里留存的旧版本 wine 来初始化容器......虽然不知道为啥,但就是能用了.jpg
一、使用 spark-wine8 (7.19-staging) 安装 Steam

1. spark-wine8 (7.19-staging) wine 安装 SteamSetup.exe,容器默认 Windows 7
2. 运行 steam.exe -no-cef-sandbox -cef-force-32bit -cef-disable-d3d11,等待 Steam 下载完成更新;将提示 Steam 不再支持当前版本 Windows
3. 关闭容器,使用 winecfg 修改容器为 Windows 10
4. 运行 steam.exe -no-cef-sandbox -cef-force-32bit -cef-disable-d3d11,等待 Steam 下载完成更新;此时无法启动,-cef-force-32bit 无效,steamwebhelper.exe 仍然尝试加载 64 位 cef.win7x64
5. 关闭容器,使用 winecfg 修改容器为 Windows 7
6. 运行 steam.exe -no-cef-sandbox -cef-force-32bit -cef-disable-d3d11,等待 Steam 下载完成更新;-cef-force-32bit 生效,steamwebhelper.exe 尝试加载 32 位 cef.win7;此时可以正常显示登录界面
7. 安装缺失字体:宋体、微软雅黑,或修改注册表替换字体,解决字体显示问题
8. 安装缺失字体:Arial Bold,解决字体显示问题(ms-core-fonts)

二、使用 wine-proton-9.0-4 运行 Steam

1. wine-proton-9.0-4 (8.0) wine 运行 steam.exe,此时可以正常显示登录界面
# 以下切换 64 位 cef 操作随缘成功,无法启动时将出现 steamwebhelper.exe 循环崩溃拉起
2. 关闭容器,使用 winecfg 修改容器为 Windows 10
3. 运行 steam.exe -no-cef-sandbox -cef-force-32bit,等待 Steam 下载更新完成;-cef-force-32bit 无效,steamwebhelper.exe 仍然尝试加载 64 位 cef.win7x64;此时可以正常显示登录界面

三、添加 dxvk 和 vkd3d 支持

* 使用 winetricks 添加替换即可
1. 下载 dxvk-2.5.3,解压后将 x32 文件夹内 dll 替换进容器 c:\windows\syswow64;x64 文件夹内 dll 替换进容器 c:\windows\system32
2. 下载 vkd3d-proton-2.14.1,解压后将 x64 文件夹内 dll 替换进容器 c:\windows\syswow64;x86 文件夹内 dll 替换进容器 c:\windows\system32
3. 运行 steam.exe -no-cef-sandbox,登录界面正常显示(可添加环境变量 DXVK_HUD=full 查看具体信息)

最终效果

screen_1.png

多数时候 steamwebhelper.exe 可以听话的正常启动,但 Steam 的首页本质就是浏览器显示网页,和主窗口渲染存在冲突,会频繁闪烁。

screen_2.png

游戏截图就不放了......虽然能跑,但效果惨不忍睹,LATX + DXVK 转译后帧数低得可怜,得在场景里缓好长时间才勉强稳定在 40-50 帧,还时不时卡顿......(果然大佬说的对,最好上 3C6000......核芯多就是好)

后记 + 吐槽

惨痛经历

上次折腾龙芯 + LATX + WINE + Steam 还是在 上次 过年的时候,头脑一热闲鱼收了龙芯原厂绿板子,顺便收了二手固态(埋下伏笔),又买了新内存、电源、机箱,叕斥巨资收了 6750 GRE 显卡(避免显卡瓶颈?)。全部攒起来后,就装了 deepin 23 开始折腾。

感谢大佬 @phorcys 在论坛的回复以及 B 站分享的视频,至少有一点作业可以抄......折磨了 5 天后,总算搞通了 DXVK,运行了 Steam 并玩上了黑山起源。

一切都好起来了的时候,某天下午犯困,就挂着原神启动器下载资源睡觉去了。于是伏笔回收,一觉醒来,天塌了:电脑通电,但就是不启动,CPU 风扇转一下就停了......排查许久,才发现是硬盘短路挂逼了(甚至有一个颗粒都不知道啥时候裂了一个角......) sob

字面意义的 一觉回到解放前.jpg

从零开始的_____

终于叕放假了,有大把时间挥霍。掏出吃灰已久的机器,从头整理了亿下 "Steam 是如何跑起来的"。

期间经历了各种玄学,莫名其妙运行了 64 位 cef,让 Steam 能运行在 Windows 10 容器中。结果因为尝试打包时,某次运行没加禁用浏览器沙盒参数,64 位 cef 就再也跑不起来了......连带着之前阶段性压缩备份的容器也全部木大 sob

最后只能含泪收场,在 Windows 7 容器里运行 32 位 cef,勉强算稳定运行了 Steam。再加上 DXVK 就可以愉快的玩耍了(除了 Steam 碍眼的不支持 Windows 7 提示外都挺好的......)

邪道跑法

又灵光一现,花了亿点点时间发现有办法在 Windows 10 容器里运行 Steam

方法一:安装 box64(需要 4K 分页内核支持),并删除 latx-x86_64 的 binfmt 配置文件,重启 systemd-binfmt 服务;此时运行 wine 应用将调用 box64 运行 64 位程序,实测可以正常运行 64 位 cef

方法二:从终端启动 Steam,在观察到日志循环打印 "cef.win7x64" 启动失败等信息后(此时 steamwebhelper.exe 将循环重启,CPU 占用很高),进入容器内 "C:\Program Files (x86)\Steam\bin\cef" 文件夹,移除 "cef.win7x64" 文件夹,并将 "cef.win7" 文件夹复制为 "cef.win7x64",骗过 Steam 以启动 32 位 cef(由于 Steam 启动自动检查文件完整性,建议使用结束后及时还原)

感谢

@杀毒软件吧 打包的 Steam (wine)

@phorcys 提供的 wine 版本信息以及 Steam 启动参数(大佬在 B 站同名,可以搜到不少视频;简介里有好东西.jpg)

@神末shenmo 保留的 spark-wine8,救大命了(玄学的起点:wine 7.19-staging)

Reply Favorite View the author
All Replies
神末shenmo
deepin
Spark-App
Solutions Team Moderator
2025-05-05 23:14
#1

辛苦了

Reply View the author
nihaoxye
deepin
2025-05-06 06:56
#2

膜拜大佬

Reply View the author
加菲不是胖橘
deepin product team
2025-05-06 09:12
#3

来折腾“龙芯 + LATX + WINE +企业微信4.x”吧scream

Reply View the author
kero990
deepin
2025-05-06 09:45
#4

我觉得 你们路走错了呢,

为什么不去跑linux的steam,而要去跑wine的?

Reply View the author
神末shenmo
deepin
Spark-App
Solutions Team Moderator
2025-05-06 10:13
#5
kero990

我觉得 你们路走错了呢,

为什么不去跑linux的steam,而要去跑wine的?

能跑早跑了,LATX缺指令集

Reply View the author
流星追月
deepin
2025-05-06 19:28
#6

勇气可嘉!

loongarch64自主指令集LAT需规避现有架构专利,二进制翻译技术涉及第三方指令集的授权问题。

短期LAT核心指令集模块不会开源,就这样了。

Reply View the author
kero990
deepin
2025-05-07 09:19
#7
神末shenmo

能跑早跑了,LATX缺指令集

box86呢?我记得这个和latx在性能上算是互有胜负

Reply View the author
忘记、过去
deepin
2025-05-07 11:26
#8
kero990

box86呢?我记得这个和latx在性能上算是互有胜负

一样,无法运行 Linux 版 Steam

龙芯上也没有 32 位支持,box86 好像编不过

Reply View the author