mirror of
https://github.com/the-sane/lug-helper.git
synced 2025-09-07 15:17:38 +00:00
85 lines
2.9 KiB
Bash
Executable File
85 lines
2.9 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
|
|
# This script launches Star Citizen using Wine.
|
|
# It is meant to be used after installation via the LUG Helper.
|
|
#
|
|
# Usage:
|
|
# Run from your terminal or use the .desktop files installed by the Helper.
|
|
#
|
|
# version: 1.9
|
|
|
|
############################################################################
|
|
# ENVIRONMENT VARIABLES
|
|
############################################################################
|
|
# Add additional environment variables to this section as needed
|
|
# Example:
|
|
# export NEW_VARIABLE="value"
|
|
############################################################################
|
|
export WINEPREFIX="$HOME/Games/star-citizen"
|
|
|
|
launch_log="$WINEPREFIX/sc-launch.log"
|
|
export WINEDLLOVERRIDES=winemenubuilder.exe=d # Prevent updates from overwriting our .desktop entries
|
|
export WINEDEBUG=-all # Cut down on console debug messages
|
|
# Nvidia cache options
|
|
export __GL_SHADER_DISK_CACHE=1
|
|
export __GL_SHADER_DISK_CACHE_SIZE=10737418240
|
|
export __GL_SHADER_DISK_CACHE_PATH="$WINEPREFIX"
|
|
export __GL_SHADER_DISK_CACHE_SKIP_CLEANUP=1
|
|
# Mesa (AMD/Intel) shader cache options
|
|
export MESA_SHADER_CACHE_DIR="$WINEPREFIX"
|
|
export MESA_SHADER_CACHE_MAX_SIZE="10G"
|
|
# Performance options
|
|
export WINEESYNC=1
|
|
export WINEFSYNC=1
|
|
# Optional HUDs
|
|
#export DXVK_HUD=fps,compiler
|
|
#export MANGOHUD=1
|
|
|
|
############################################################################
|
|
# END ENVIRONMENT VARIABLES
|
|
############################################################################
|
|
|
|
##################
|
|
# Wine binary path
|
|
##################
|
|
# To use a custom wine runner, set the path to its bin directory
|
|
# export wine_path="/path/to/custom/runner/bin"
|
|
export wine_path="$(command -v wine | xargs dirname)"
|
|
|
|
########################
|
|
# Command line arguments
|
|
########################
|
|
# shell - Drop into a Wine maintenance shell
|
|
# config - Wine configuration
|
|
# controllers - Game controller configuration
|
|
# Usage: ./sc-launch.sh shell
|
|
case "$1" in
|
|
"shell")
|
|
echo "Entering Wine prefix maintenance shell. Type 'exit' when done."
|
|
export PATH="$wine_path:$PATH"; export PS1="Wine: "
|
|
cd "$WINEPREFIX"; pwd; /usr/bin/env bash --norc; exit 0
|
|
;;
|
|
"config")
|
|
/usr/bin/env bash --norc -c "${wine_path}/winecfg"; exit 0
|
|
;;
|
|
"controllers")
|
|
/usr/bin/env bash --norc -c "${wine_path}/wine control joy.cpl"; exit 0
|
|
;;
|
|
esac
|
|
|
|
###########################
|
|
# Update check and cleanup
|
|
##########################
|
|
# Kill existing wine processes before launch
|
|
update_check() {
|
|
while "$wine_path"/winedbg --command "info proc" | grep -qi "rsi.*setup"; do
|
|
echo "RSI Setup process detected. Exiting."; exit 0
|
|
done
|
|
}
|
|
"$wine_path"/wineserver -k
|
|
|
|
############################################################################
|
|
# Launch the game
|
|
############################################################################
|
|
"$wine_path"/wine "C:\Program Files\Roberts Space Industries\RSI Launcher\RSI Launcher.exe" > "$launch_log" 2>&1
|