mirror of
https://github.com/the-sane/lug-helper.git
synced 2025-10-11 02:42:01 +00:00
Add dxvk-nvapi
This commit is contained in:
@@ -195,6 +195,7 @@ rsi_installer_url="https://install.robertsspaceindustries.com/rel/2/$rsi_install
|
|||||||
# Winetricks download url
|
# Winetricks download url
|
||||||
winetricks_version="20250102"
|
winetricks_version="20250102"
|
||||||
winetricks_url="https://raw.githubusercontent.com/Winetricks/winetricks/refs/tags/$winetricks_version/src/winetricks"
|
winetricks_url="https://raw.githubusercontent.com/Winetricks/winetricks/refs/tags/$winetricks_version/src/winetricks"
|
||||||
|
winetricks_next_url="https://raw.githubusercontent.com/Winetricks/winetricks/master/src/winetricks"
|
||||||
|
|
||||||
# Github repo and script version info
|
# Github repo and script version info
|
||||||
repo="starcitizen-lug/lug-helper"
|
repo="starcitizen-lug/lug-helper"
|
||||||
@@ -2509,8 +2510,15 @@ download_wine() {
|
|||||||
|
|
||||||
# MARK: download_winetricks()
|
# MARK: download_winetricks()
|
||||||
# Download winetricks to a temporary file
|
# Download winetricks to a temporary file
|
||||||
|
# Accepts an optional string argument "next" to download the latest -next version instead of the stable release
|
||||||
download_winetricks() {
|
download_winetricks() {
|
||||||
download_file "$winetricks_url" "winetricks" "winetricks"
|
if [ "$1" = "next" ]; then
|
||||||
|
# Download the -next version
|
||||||
|
download_file "$winetricks_next_url" "winetricks" "winetricks"
|
||||||
|
else
|
||||||
|
# Download the stable version
|
||||||
|
download_file "$winetricks_url" "winetricks" "winetricks"
|
||||||
|
fi
|
||||||
|
|
||||||
# Sanity check
|
# Sanity check
|
||||||
if [ ! -f "$tmp_dir/winetricks" ]; then
|
if [ ! -f "$tmp_dir/winetricks" ]; then
|
||||||
@@ -2592,23 +2600,24 @@ install_powershell() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
# MARK: dxvk_menu()
|
# MARK: dxvk_menu()
|
||||||
# Menu to select and install dxvk into the wine prefix
|
# Menu to select and install a dxvk into the wine prefix
|
||||||
dxvk_menu() {
|
dxvk_menu() {
|
||||||
# Configure the menu
|
# Configure the menu
|
||||||
menu_text_zenity="<b><big>Update or Switch DXVK</big>\n\nSelect which DXVK you'd like to update and use for Star Citizen</b>\n\nYou may choose from the following options:"
|
menu_text_zenity="<b><big>Manage Your DXVK Version</big>\n\nSelect which DXVK you'd like to update or install</b>\n\nYou may choose from the following options:"
|
||||||
menu_text_terminal="Update or Switch DXVK\n\nSelect which DXVK you'd like to update and use for Star Citizen\nYou may choose from the following options:"
|
menu_text_terminal="Manage Your DXVK Version\n\nSelect which DXVK you'd like to update or install\nYou may choose from the following options:"
|
||||||
menu_text_height="300"
|
menu_text_height="300"
|
||||||
menu_type="radiolist"
|
menu_type="radiolist"
|
||||||
|
|
||||||
# Configure the menu options
|
# Configure the menu options
|
||||||
standard_msg="Standard DXVK"
|
standard_msg="Update or Switch to Standard DXVK"
|
||||||
async_msg="Async DXVK"
|
async_msg="Update or Switch to Async DXVK"
|
||||||
|
nvapi_msg="Add or Update DXVK-NVAPI"
|
||||||
quit_msg="Return to the main menu"
|
quit_msg="Return to the main menu"
|
||||||
|
|
||||||
# Set the options to be displayed in the menu
|
# Set the options to be displayed in the menu
|
||||||
menu_options=("$standard_msg" "$async_msg" "$quit_msg")
|
menu_options=("$standard_msg" "$async_msg" "$nvapi_msg" "$quit_msg")
|
||||||
# Set the corresponding functions to be called for each of the options
|
# Set the corresponding functions to be called for each of the options
|
||||||
menu_actions=("install_dxvk standard" "install_dxvk async" "menu_loop_done")
|
menu_actions=("install_dxvk standard" "install_dxvk async" "install_dxvk nvapi" "menu_loop_done")
|
||||||
|
|
||||||
# Calculate the total height the menu should be
|
# Calculate the total height the menu should be
|
||||||
# menu_option_height = pixels per menu option
|
# menu_option_height = pixels per menu option
|
||||||
@@ -2625,17 +2634,15 @@ dxvk_menu() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
# MARK: install_dxvk()
|
# MARK: install_dxvk()
|
||||||
# Updates DXVK in the wine prefix
|
# Entry function to install or update DXVK in the wine prefix
|
||||||
# Accepts one argument to specify which type of dxvk to install
|
#
|
||||||
# Supports "standard" or "async"
|
# Requires one argument to specify which type of dxvk to install
|
||||||
|
# Supports "standard", "async", "nvapi"
|
||||||
install_dxvk() {
|
install_dxvk() {
|
||||||
# Sanity checks
|
# Sanity checks
|
||||||
if [ "$#" -lt 1 ]; then
|
if [ "$#" -lt 1 ]; then
|
||||||
debug_print exit "Script error: The install_dxvk function expects one argument. Aborting."
|
debug_print exit "Script error: The install_dxvk function expects one argument. Aborting."
|
||||||
fi
|
fi
|
||||||
if [ "$1" != "standard" ] && [ "$1" != "async" ]; then
|
|
||||||
debug_print exit "Script error: Unknown argument in install_dxvk function: $1. Aborting."
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Update directories
|
# Update directories
|
||||||
getdirs
|
getdirs
|
||||||
@@ -2655,15 +2662,20 @@ install_dxvk() {
|
|||||||
# Set the correct wine prefix
|
# Set the correct wine prefix
|
||||||
export WINEPREFIX="$wine_prefix"
|
export WINEPREFIX="$wine_prefix"
|
||||||
|
|
||||||
if [ "$1" == "standard" ]; then
|
if [ "$1" = "standard" ]; then
|
||||||
install_standard_dxvk
|
install_standard_dxvk
|
||||||
elif [ "$1" == "async" ]; then
|
elif [ "$1" = "async" ]; then
|
||||||
install_async_dxvk
|
install_async_dxvk
|
||||||
|
elif [ "$1" = "nvapi" ]; then
|
||||||
|
install_dxvk_nvapi
|
||||||
|
else
|
||||||
|
debug_print exit "Script error: Unknown argument in install_dxvk function: $1. Aborting."
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
# MARK: install_standard_dxvk()
|
# MARK: install_standard_dxvk()
|
||||||
# Update standard dxvk in the wine prefix
|
# Install or update standard dxvk in the wine prefix
|
||||||
|
#
|
||||||
# Expects that getdirs has already been called
|
# Expects that getdirs has already been called
|
||||||
# Expects that the env vars WINE, WINESERVER, and WINEPREFIX are already set
|
# Expects that the env vars WINE, WINESERVER, and WINEPREFIX are already set
|
||||||
install_standard_dxvk() {
|
install_standard_dxvk() {
|
||||||
@@ -2694,7 +2706,8 @@ install_standard_dxvk() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
# MARK: install_async_dxvk()
|
# MARK: install_async_dxvk()
|
||||||
# Update async dxvk in the wine prefix
|
# Install or update async dxvk in the wine prefix
|
||||||
|
#
|
||||||
# Expects that getdirs has already been called
|
# Expects that getdirs has already been called
|
||||||
# Expects that the env vars WINE, WINESERVER, and WINEPREFIX are already set
|
# Expects that the env vars WINE, WINESERVER, and WINEPREFIX are already set
|
||||||
install_async_dxvk() {
|
install_async_dxvk() {
|
||||||
@@ -2787,6 +2800,38 @@ install_async_dxvk() {
|
|||||||
message info "DXVK update complete."
|
message info "DXVK update complete."
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# MARK: install_dxvk_nvapi()
|
||||||
|
# Install or update dxvk-nvapi in the wine prefix
|
||||||
|
#
|
||||||
|
# Expects that getdirs has already been called
|
||||||
|
# Expects that the env vars WINE, WINESERVER, and WINEPREFIX are already set
|
||||||
|
install_dxvk_nvapi() {
|
||||||
|
# Download winetricks
|
||||||
|
download_winetricks next
|
||||||
|
|
||||||
|
# Abort if the winetricks download failed
|
||||||
|
if [ "$?" -eq 1 ]; then
|
||||||
|
message error "Unable to install dxvk_nvapi without winetricks. Aborting."
|
||||||
|
return 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Show a zenity pulsating progress bar
|
||||||
|
progress_bar start "Installing DXVK-NVAPI. Please wait..."
|
||||||
|
debug_print continue "Installing DXVK-NVAPI in ${wine_prefix}..."
|
||||||
|
|
||||||
|
# Update dxvk
|
||||||
|
"$winetricks_bin" -f dxvk_nvapi
|
||||||
|
|
||||||
|
exit_code="$?"
|
||||||
|
if [ "$exit_code" -eq 1 ] || [ "$exit_code" -eq 130 ] || [ "$exit_code" -eq 126 ]; then
|
||||||
|
progress_bar stop # Stop the zenity progress window
|
||||||
|
message warning "DXVK-NVAPI could not be installed. See terminal output for details."
|
||||||
|
else
|
||||||
|
progress_bar stop # Stop the zenity progress window
|
||||||
|
message info "DXVK-NVAPI update complete. See terminal output for details."
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
# MARK: format_urls()
|
# MARK: format_urls()
|
||||||
# Format some URLs for Zenity
|
# Format some URLs for Zenity
|
||||||
format_urls() {
|
format_urls() {
|
||||||
@@ -2903,7 +2948,7 @@ Usage: lug-helper <options>
|
|||||||
-p, --preflight-check Run system optimization checks
|
-p, --preflight-check Run system optimization checks
|
||||||
-i, --install Install Star Citizen
|
-i, --install Install Star Citizen
|
||||||
-m, --manage-runners Install or remove Wine runners
|
-m, --manage-runners Install or remove Wine runners
|
||||||
-k, --update-dxvk Update DXVK in the Wine prefix
|
-k, --manage-dxvk Manage DXVK in the Wine prefix
|
||||||
-e, --edit-launch-script Edit the game launch script
|
-e, --edit-launch-script Edit the game launch script
|
||||||
-c, --wine-config Launch winecfg for the game's prefix
|
-c, --wine-config Launch winecfg for the game's prefix
|
||||||
-j, --wine-controllers Launch Wine controllers configuration
|
-j, --wine-controllers Launch Wine controllers configuration
|
||||||
@@ -2925,7 +2970,7 @@ Usage: lug-helper <options>
|
|||||||
--manage-runners | -m )
|
--manage-runners | -m )
|
||||||
cargs+=("runner_manage")
|
cargs+=("runner_manage")
|
||||||
;;
|
;;
|
||||||
--update-dxvk | -k )
|
--manage-dxvk | -k )
|
||||||
cargs+=("dxvk_menu")
|
cargs+=("dxvk_menu")
|
||||||
;;
|
;;
|
||||||
--edit-launch-script | -e )
|
--edit-launch-script | -e )
|
||||||
@@ -3021,7 +3066,7 @@ while true; do
|
|||||||
preflight_msg="Preflight Check (System Optimization)"
|
preflight_msg="Preflight Check (System Optimization)"
|
||||||
install_msg_wine="Install Star Citizen"
|
install_msg_wine="Install Star Citizen"
|
||||||
runners_msg_wine="Manage Wine Runners"
|
runners_msg_wine="Manage Wine Runners"
|
||||||
dxvk_msg_wine="Update/Switch DXVK"
|
dxvk_msg_wine="Manage DXVK"
|
||||||
maintenance_msg="Maintenance and Troubleshooting"
|
maintenance_msg="Maintenance and Troubleshooting"
|
||||||
randomizer_msg="Get a random Penguin's Star Citizen referral code"
|
randomizer_msg="Get a random Penguin's Star Citizen referral code"
|
||||||
quit_msg="Quit"
|
quit_msg="Quit"
|
||||||
|
Reference in New Issue
Block a user