此文会持续更新,旧内容仅供参考,请以最新内容为准。

版本

6.4

26.03.14 更新

目前,绝大部分版本的 wine 都可以某种方式启动游戏,但大都会出现 MHYBase.dll 引起的崩溃。

请使用 AAGL 和 spritz-wine-tkg-staging-wow64-10.15-7 的方案,高于此版本的 wine 脚本无效。

通过下面的脚本启动 AAGL 并启动游戏:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
#!/bin/bash
#
# AAGL Race Condition Workaround Script
# Description: A robust workaround for game crashes caused by a race condition during initialization.
# Usage: ./aagl-fix.sh
# Author: Harmiel715
# Version: 1.1

# --- Configuration ---
STRACE_CMD="strace -f -e trace=process -o /dev/null an-anime-game-launcher"
ESCORT_DURATION=60
GAME_PROCESS_NAME="YuanShen.exe"
LAUNCHER_PROCESS_NAME="an-anime-game-launcher"
POLLING_INTERVAL=5 # Polling interval in seconds

# --- Variables ---
STRACE_PID=""
KILLER_PID=""

# --- Cleanup Function ---
cleanup() {
echo "[Fix Script] Exit signal received, cleaning up..."
if [ ! -z "$KILLER_PID" ] && ps -p $KILLER_PID >/dev/null; then
kill -9 $KILLER_PID
fi
if [ ! -z "$STRACE_PID" ] && ps -p $STRACE_PID >/dev/null; then
kill -9 $STRACE_PID
fi
pkill -9 -f "$LAUNCHER_PROCESS_NAME"
echo "[Fix Script] Cleanup complete."
}
trap cleanup EXIT SIGINT SIGTERM

# 1. Start the escort and the launcher
echo "[Fix Script] Escort enabled..."
$STRACE_CMD &
STRACE_PID=$!
echo "[Fix Script] Escort process PID: $STRACE_PID"

# 2. Main monitoring loop
echo "[Fix Script] Waiting for you to start the game from the launcher..."

while ps -p $STRACE_PID >/dev/null; do
if pgrep -f $GAME_PROCESS_NAME >/dev/null; then
# State: In-Game
if [ -z "$KILLER_PID" ]; then
echo "[Fix Script] Game process detected! Starting $ESCORT_DURATION-second separation countdown..."
# Start a "timed killer" in the background, its only job is to kill strace
(sleep $ESCORT_DURATION && kill -9 $STRACE_PID) &
KILLER_PID=$!
echo "[Fix Script] Detach program deployed, PID: $KILLER_PID"
fi
else
# State: In-Launcher (or game not started)
if [ ! -z "$KILLER_PID" ]; then
echo "[Fix Script] Game has been exited. Revoking detach program..."
if ps -p $KILLER_PID >/dev/null; then
kill -9 $KILLER_PID
fi
KILLER_PID=""
echo "[Fix Script] Reset. Ready to relaunch the game."
fi
fi
sleep $POLLING_INTERVAL
done

# When the strace process ends (either killed or the user closed the launcher), the script will arrive here.
# We perform a final, failsafe cleanup here.
echo "[Fix Script] Escort task finished. Performing final cleanup."
pkill -9 -f "$LAUNCHER_PROCESS_NAME"

exit 0

相关 issue

26.02.19 更新

AAGL 会一直触发异常,无法游玩

当前版本不需要,也不应该使用 Hosts 屏蔽原神的域名

使用 Bottles + Proton GE + libhoyonetfix

若使用 yay 或 paru 安装,请确保安装非 brwap 版本!

Bwrap 版本可能导致无法启动游戏

打开 Bottles $\rightarrow$ $\rightarrow$ 首选项 $\rightarrow$ 运行器 选择最新的 Proton GE:

runners
runners

创建容器后,选择添加快捷方式,选择 YuanShen.exe,添加后 点击旁边的 $\rightarrow$ 更改启动选项

请修改成:LD_PRELOAD=/PATH_TO/libhoyonetfix.so %command%,请使用绝对路径,不要包含 ~

更改启动选项
更改启动选项

启动游戏后不久后会弹出 数据异常,请重新登陆游戏 错误码:10010-4001,点击确认,重新进门之后即可正常游玩

10010-4001
10010-4001