mirror of
https://github.com/the-sane/lug-helper.git
synced 2025-10-10 22:37:06 +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_version="20250102"
|
||||
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
|
||||
repo="starcitizen-lug/lug-helper"
|
||||
@@ -2509,8 +2510,15 @@ download_wine() {
|
||||
|
||||
# MARK: download_winetricks()
|
||||
# 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_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
|
||||
if [ ! -f "$tmp_dir/winetricks" ]; then
|
||||
@@ -2592,23 +2600,24 @@ install_powershell() {
|
||||
}
|
||||
|
||||
# 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() {
|
||||
# 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_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_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="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_type="radiolist"
|
||||
|
||||
# Configure the menu options
|
||||
standard_msg="Standard DXVK"
|
||||
async_msg="Async DXVK"
|
||||
standard_msg="Update or Switch to Standard DXVK"
|
||||
async_msg="Update or Switch to Async DXVK"
|
||||
nvapi_msg="Add or Update DXVK-NVAPI"
|
||||
quit_msg="Return to the main 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
|
||||
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
|
||||
# menu_option_height = pixels per menu option
|
||||
@@ -2625,17 +2634,15 @@ dxvk_menu() {
|
||||
}
|
||||
|
||||
# MARK: install_dxvk()
|
||||
# Updates DXVK in the wine prefix
|
||||
# Accepts one argument to specify which type of dxvk to install
|
||||
# Supports "standard" or "async"
|
||||
# Entry function to install or update DXVK in the wine prefix
|
||||
#
|
||||
# Requires one argument to specify which type of dxvk to install
|
||||
# Supports "standard", "async", "nvapi"
|
||||
install_dxvk() {
|
||||
# Sanity checks
|
||||
if [ "$#" -lt 1 ]; then
|
||||
debug_print exit "Script error: The install_dxvk function expects one argument. Aborting."
|
||||
fi
|
||||
if [ "$1" != "standard" ] && [ "$1" != "async" ]; then
|
||||
debug_print exit "Script error: Unknown argument in install_dxvk function: $1. Aborting."
|
||||
fi
|
||||
|
||||
# Update directories
|
||||
getdirs
|
||||
@@ -2655,15 +2662,20 @@ install_dxvk() {
|
||||
# Set the correct wine prefix
|
||||
export WINEPREFIX="$wine_prefix"
|
||||
|
||||
if [ "$1" == "standard" ]; then
|
||||
if [ "$1" = "standard" ]; then
|
||||
install_standard_dxvk
|
||||
elif [ "$1" == "async" ]; then
|
||||
elif [ "$1" = "async" ]; then
|
||||
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
|
||||
}
|
||||
|
||||
# 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 the env vars WINE, WINESERVER, and WINEPREFIX are already set
|
||||
install_standard_dxvk() {
|
||||
@@ -2694,7 +2706,8 @@ install_standard_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 the env vars WINE, WINESERVER, and WINEPREFIX are already set
|
||||
install_async_dxvk() {
|
||||
@@ -2787,6 +2800,38 @@ install_async_dxvk() {
|
||||
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()
|
||||
# Format some URLs for Zenity
|
||||
format_urls() {
|
||||
@@ -2903,7 +2948,7 @@ Usage: lug-helper <options>
|
||||
-p, --preflight-check Run system optimization checks
|
||||
-i, --install Install Star Citizen
|
||||
-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
|
||||
-c, --wine-config Launch winecfg for the game's prefix
|
||||
-j, --wine-controllers Launch Wine controllers configuration
|
||||
@@ -2925,7 +2970,7 @@ Usage: lug-helper <options>
|
||||
--manage-runners | -m )
|
||||
cargs+=("runner_manage")
|
||||
;;
|
||||
--update-dxvk | -k )
|
||||
--manage-dxvk | -k )
|
||||
cargs+=("dxvk_menu")
|
||||
;;
|
||||
--edit-launch-script | -e )
|
||||
@@ -3021,7 +3066,7 @@ while true; do
|
||||
preflight_msg="Preflight Check (System Optimization)"
|
||||
install_msg_wine="Install Star Citizen"
|
||||
runners_msg_wine="Manage Wine Runners"
|
||||
dxvk_msg_wine="Update/Switch DXVK"
|
||||
dxvk_msg_wine="Manage DXVK"
|
||||
maintenance_msg="Maintenance and Troubleshooting"
|
||||
randomizer_msg="Get a random Penguin's Star Citizen referral code"
|
||||
quit_msg="Quit"
|
||||
|
Reference in New Issue
Block a user