Grasscutters / GrassClipper-X

A MiHoYo-like launcher for custom servers, better UI & insensible proxy
201 stars 61 forks source link

Genshin for Linux #8

Open nighteous opened 2 years ago

nighteous commented 2 years ago

it would be awesome if you dont limit GrassClipper to just .exe file of genshin impact.

As a player who plays on linux, we need to start the game using a bat file instead so GrassClipper won't let me use that to run the game.

Birdulon commented 2 years ago

I do my testing with this script rather than using a launcher:

#!/usr/bin/bash
if test "$#" -ge 2; then
    d_name=$1;
    d_size=$2;
else
    d_name=animegame;
    d_size=1920x1080;
fi
echo Opening in virtual desktop "$d_name" with window size $d_size

PROXY_ENV="http_proxy https_proxy ftp_proxy all_proxy HTTP_PROXY HTTPS_PROXY FTP_PROXY ALL_PROXY"
for envar in $PROXY_ENV; do
    export $envar=http://127.0.0.1:8080/
done
cd "/home/user/.local/share/anime-game-launcher/game/drive_c/Program Files/Genshin Impact"
export WINEFSYNC="1" WINEESYNC="1"
#export DXVK_HUD="fps,frametimes,version,gpuload"
export DXVK_HUD="fps,gpuload"
# export DXVK_HUD=""
export WINEPREFIX="/home/user/.local/share/anime-game-launcher/game"
export PROTON="/home/user/.local/share/anime-game-launcher/runners/lutris-GE-Proton7-9-x86_64/bin/wine64"
gamemoderun $PROTON explorer /desktop=$d_name,$d_size GenshinImpact.exe -screen-fullscreen 0 -popupwindow
# $PROTON explorer /desktop=$d_name,$d_size GenshinImpact.exe -screen-fullscreen 0 -popupwindow

The commented line at the bottom launches it without a wine virtual desktop which is better in some ways but worse in others. Usage is just ./LaunchAnimeGame.sh animegame1 1280x720 (different names are required for doing concurrent clients)

nighteous commented 2 years ago

kinda having a hard time with the virtual window

is it possible to run it without the virtual window?

Birdulon commented 2 years ago

Oops, last line was still in a virtual desktop. $PROTON GenshinImpact.exe should be fine, in my case I had to comment out export WINEFSYNC="1" WINEESYNC="1" to have it work like that.

Birdulon commented 2 years ago

i.e. something like

#!/usr/bin/bash
PROXY_ENV="http_proxy https_proxy ftp_proxy all_proxy HTTP_PROXY HTTPS_PROXY FTP_PROXY ALL_PROXY"
for envar in $PROXY_ENV; do
    export $envar=http://127.0.0.1:8080/
done
cd "/home/user/.local/share/anime-game-launcher/game/drive_c/Program Files/Genshin Impact"
export WINEPREFIX="/home/user/.local/share/anime-game-launcher/game"
export PROTON="/home/user/.local/share/anime-game-launcher/runners/lutris-GE-Proton7-9-x86_64/bin/wine64"
$PROTON GenshinImpact.exe
nighteous commented 2 years ago

01fc:err:d3d:wined3d_debug_callback 0x2c960770: "GL_INVALID_OPERATION error generated. Texture is already resident for this context.". this comes up and the game hangs

nighteous commented 2 years ago
#!/usr/bin/bash
if test "$#" -ge 2; then
    d_name=$1;
    d_size=$2;
else
    d_name=animegame;
    d_size=1920x1080;
fi
echo Opening in virtual desktop "$d_name" with window size $d_size

PROXY_ENV="http_proxy https_proxy ftp_proxy all_proxy HTTP_PROXY HTTPS_PROXY FTP_PROXY ALL_PROXY"
for envar in $PROXY_ENV; do
    export $envar=<link>
done
cd "/mnt/storage/WinePrefix/Genshin/drive_c/Program Files/Genshin Impact/Genshin Impact game"
#export WINEFSYNC="1" WINEESYNC="1"
#export DXVK_HUD="fps,frametimes,version,gpuload"
export DXVK_HUD="fps,gpuload"
# export DXVK_HUD=""
export WINEPREFIX="/mnt/storage/WinePrefix/Genshin"
export LUTRIS="/home/varoo/.local/share/lutris/runners/wine/lutris-fshack-7.2-x86_64/bin/wine64"
prime-run gamemoderun $LUTRIS GenshinImpact.exe
# $PROTON explorer /desktop=$d_name,$d_size GenshinImpact.exe -screen-fullscreen 0 -popupwindow

LaunchAnimeGame script (modified a bit)

Birdulon commented 2 years ago

hmm, might be hitting some version-specific wine bugs. If you have an existing working config with a batch file elsewhere it should be enough to just add in the proxy env variables to that.

nighteous commented 2 years ago

thats weird, Seems like it works through lutris but not with script

nighteous commented 2 years ago

If you have an existing working config with a batch file elsewhere it should be enough to just add in the proxy env variables to that.

image added it to environment variables

cant figure out what to do next (cause running the game takes me straight to official genshin)

Birdulon commented 2 years ago

ah no, those are unrolled in a loop that goes like

http_proxy="https://129.154.227.167:8443"
https_proxy="https://129.154.227.167:8443"
ftp_proxy="https://129.154.227.167:8443"

etc. No idea about which ones are actually critical and the lowercase vs uppercase vars, I got them from elsewhere and didn't test them one-by-one.

nighteous commented 2 years ago

image currently the env variables look like this (also did i do it right?) the game loads up but I cant seem to login to it with my hoyo account is anything special needed to be done?