36 Commits
v1.14 ... v1.19

Author SHA1 Message Date
28051a135a Bump version 2022-03-18 17:28:43 -04:00
44b1332782 Add new dxvk source 2022-03-18 17:27:16 -04:00
10c5438189 Update swap message 2022-03-02 17:27:17 -05:00
57df0a8dd9 Look for swap in preflight check 2022-03-02 11:56:59 -05:00
f67c76be2e Bump version 2022-02-17 13:26:30 -05:00
d9d58702d1 Add DXVK_ASYNC environment variable instructions 2022-02-17 13:25:21 -05:00
3d6e4cc367 Change libglesv2 to builtin 2022-02-15 15:21:45 -05:00
3932fd2754 Update README.md 2022-02-12 14:00:49 -05:00
314a1ff5ea Update README.md 2022-02-12 14:00:19 -05:00
26f1377506 Fix helper directory paths with spaces 2022-02-09 16:22:02 -05:00
b71f601547 Bump version 2022-02-05 12:27:47 -05:00
717a83a512 Improve EAC workaround 2022-02-05 12:27:05 -05:00
ae25785a41 Bump version 2022-02-04 23:27:07 -05:00
2f45058e58 Update launcher to v1.5.5 2022-02-04 23:21:40 -05:00
33b8643d47 Update README.md 2022-02-01 16:33:17 -05:00
faa047546b Update README.md 2022-01-21 18:20:30 -05:00
5ef3a95a2a Consistency in systemd drop-in filenames 2022-01-21 18:11:32 -05:00
37e487d296 Use systemd drop-in for setting filelimit 2022-01-21 17:43:58 -05:00
ab9155b9b8 Clarify that DXVK manager is for Lutris 2022-01-21 17:20:44 -05:00
7b7347dd64 Clarify error message 2022-01-19 02:20:17 -05:00
9a2c064a06 Update README.md 2022-01-14 19:22:04 -05:00
6ef58adc12 Update README.md 2022-01-14 19:21:36 -05:00
3b3abbe8ea Update README.md 2022-01-14 19:21:17 -05:00
da1fc66571 Update README.md 2022-01-10 13:50:37 -05:00
bc5d5c4a9b Update README.md 2022-01-10 13:49:48 -05:00
deb84dd757 Merge pull request #28 from ananace/fix-white-launcher
Add libglesv2 override to fix white launcher window
2022-01-10 13:42:54 -05:00
fc70cdc687 Update README.md 2022-01-10 12:57:39 -05:00
21444076de Add libglesv2 override to fix white launcher
Would also work with launch arguments e.g. --use-gl=osmesa - but that
doesn't work when the launcher auto-updates, since it'll relaunch
without the launch arguments specified in Lutris
2022-01-08 12:18:14 +01:00
4b32177e97 Clickable wiki URL what an idea 2022-01-07 15:55:56 -05:00
b4762d4724 Add comments 2022-01-07 14:30:38 -05:00
37c94af2ed Bump version 2022-01-07 14:26:24 -05:00
6d56599e2f Add comment 2022-01-07 14:23:43 -05:00
9909221dff Remove bc dependency 2022-01-07 14:22:59 -05:00
a328b465ef Add display wiki option in troubleshooting menu 2022-01-06 21:08:01 -05:00
8e28327e0f added /usr/share/lug-helper path for lutris json for easier packaging 2022-01-06 15:10:10 +01:00
156a0884d4 added /usr/share/lug-helper path for lutris json for easier packaging 2022-01-06 15:05:24 +01:00
3 changed files with 128 additions and 56 deletions

View File

@ -1,4 +1,4 @@
# LUG-Helper
# LUG Helper
**Star Citizen's Linux Users Group Helper Script**
https://robertsspaceindustries.com/orgs/LUG
@ -8,7 +8,7 @@ _**This script is designed to help you manage and optimize Star Citizen on Linux
Zenity menus are used for a GUI experience with a fallback to terminal-based menus where Zenity is unavailable.
Command line arguments are available for quickly launching functions from the terminal.
Configuration is saved in *$XDG_CONFIG_HOME/starcitizen-lug/*.
Configuration is saved in *$XDG_CONFIG_HOME/starcitizen-lug/*
Keybinds are backed up to *$XDG_CONFIG_HOME/starcitizen-lug/keybinds/*
## Options:
@ -23,10 +23,13 @@ Keybinds are backed up to *$XDG_CONFIG_HOME/starcitizen-lug/keybinds/*
`Install Star Citizen`
- Launches Lutris and uses the bundled json to install Star Citizen
`Deploy Easy Anti-Cheat Workaround`
- Applies the workaround to /etc/hosts and deletes the necessary EAC files
`Manage Lutris Runners`
- Quickly install and delete Lutris wine runners
`Manage DXVK Versions`
`Manage Lutris DXVK Versions`
- Quickly install and delete DXVK versions for Lutris
`Maintenance and Troubleshooting`
@ -60,9 +63,9 @@ Keybinds are backed up to *$XDG_CONFIG_HOME/starcitizen-lug/keybinds/*
## Installation:
From Source:
1. Download it!
2. Run it!
3. If you want, move *lug-logo.png* to */usr/share/pixmaps/*
1. Download it! https://github.com/starcitizen-lug/lug-helper/releases
2. Extract it!
3. Run it!
Arch Linux: https://aur.archlinux.org/packages/lug-helper/
@ -72,4 +75,5 @@ Arch Linux: https://aur.archlinux.org/packages/lug-helper/
- https://github.com/gort818
- https://github.com/victort
- https://github.com/Wrzlprnft
- https://github.com/ananace
- Runner Downloader inspired by https://github.com/richardtatum/sc-runner-updater

View File

@ -72,6 +72,8 @@ if [ ! -x "$(command -v mktemp)" ] || [ ! -x "$(command -v sort)" ] || [ ! -x "$
exit 1
fi
######## Config ############################################################
wine_conf="winedir.conf"
game_conf="gamedir.conf"
@ -83,7 +85,7 @@ data_dir="${XDG_DATA_HOME:-$HOME/.local/share}"
conf_subdir="starcitizen-lug"
# Helper directory
helper_dir="$(realpath "$0" | xargs dirname)"
helper_dir="$(realpath "$0" | xargs -0 dirname)"
# Temporary directory
tmp_dir="$(mktemp -d --suffix=".lughelper")"
@ -130,6 +132,7 @@ dxvk_dir="$data_dir/lutris/runtime/dxvk"
dxvk_sources=(
"Sporif Async" "https://api.github.com/repos/Sporif/dxvk-async/releases"
"/dev/null" "https://api.github.com/repos/gort818/dxvk/releases"
"gnusenpai" "https://api.github.com/repos/gnusenpai/dxvk/releases"
)
# Set a maximum number of versions to display from each download url
@ -139,7 +142,7 @@ max_download_items=20
# used to dynamically determine the height of menus
menu_option_height="25"
############################################################################
######## Bundled Files #####################################################
# Use logo installed by a packaged version of this script if available
# Otherwise, default to the logo in the same directory
@ -151,16 +154,23 @@ else
lug_logo="info"
fi
# Lutris install script
install_script="$helper_dir/lug-lutris-install.json"
# Use Lutris install script installed by a packaged version of this script if available
# Otherwise, default to the json in the same directory
if [ -f "/usr/share/lug-helper/lug-lutris-install.json" ]; then
install_script="/usr/share/lug-helper/lug-lutris-install.json"
else
install_script="$helper_dir/lug-lutris-install.json"
fi
######## Links #############################################################
# LUG Wiki
lug_wiki="https://github.com/starcitizen-lug/information-howtos/wiki"
# Github repo and script version info
repo="starcitizen-lug/lug-helper"
releases_url="https://github.com/$repo/releases"
current_version="v1.14"
# LUG Wiki
lug_wiki="https://github.com/starcitizen-lug/information-howtos/wiki"
current_version="v1.19"
############################################################################
############################################################################
@ -451,7 +461,7 @@ getdirs() {
message warning "An unexpected error has occurred. The Helper is unable to proceed."
return 1
elif [ "$(basename "$game_path")" != "$sc_base_dir" ]; then
message warning "You must select the Star Citizen base game directory.\n\nFor Example: prefix/drive_c/Program Files/Roberts Space Industries/StarCitizen"
message warning "You must select the base game directory named '$sc_base_dir'\n\nie. [prefix]/drive_c/Program Files/Roberts Space Industries/StarCitizen"
else
# All good or cancel
break
@ -632,8 +642,8 @@ mapcount_once() {
mapcount_set() {
if [ -d "/etc/sysctl.d" ]; then
# Newer versions of sysctl
preflight_actions+=('printf "\n# Added by LUG-Helper:\nvm.max_map_count = 16777216\n" >> /etc/sysctl.d/20-max_map_count.conf && sysctl --system')
preflight_results+=("The vm.max_map_count configuration has been appended to:\n/etc/sysctl.d/20-max_map_count.conf")
preflight_actions+=('printf "\n# Added by LUG-Helper:\nvm.max_map_count = 16777216\n" > /etc/sysctl.d/20-starcitizen-max_map_count.conf && sysctl --system')
preflight_results+=("The vm.max_map_count configuration has been appended to:\n/etc/sysctl.d/20-starcitizen-max_map_count.conf")
else
# Older versions of sysctl
preflight_actions+=('printf "\n# Added by LUG-Helper:\nvm.max_map_count = 16777216" >> /etc/sysctl.conf && sysctl -p')
@ -668,7 +678,7 @@ mapcount_check() {
# Add info for manually changing the setting
if [ -d "/etc/sysctl.d" ]; then
# Newer versions of sysctl
preflight_manual+=("To change vm.max_map_count permanently, add the following line to\n'/etc/sysctl.d/20-max_map_count.conf' and reload with 'sudo sysctl --system':\n vm.max_map_count = 16777216\n\nOr, to change vm.max_map_count temporarily until next boot, run:\n sudo sysctl -w vm.max_map_count=16777216")
preflight_manual+=("To change vm.max_map_count permanently, add the following line to\n'/etc/sysctl.d/20-starcitizen-max_map_count.conf' and reload with 'sudo sysctl --system'\n vm.max_map_count = 16777216\n\nOr, to change vm.max_map_count temporarily until next boot, run:\n sudo sysctl -w vm.max_map_count=16777216")
else
# Older versions of sysctl
preflight_manual+=("To change vm.max_map_count permanently, add the following line to\n'/etc/sysctl.conf' and reload with 'sudo sysctl -p':\n vm.max_map_count = 16777216\n\nOr, to change vm.max_map_count temporarily until next boot, run:\n sudo sysctl -w vm.max_map_count=16777216")
@ -692,8 +702,8 @@ filelimit_set() {
if [ -f "/etc/systemd/system.conf" ]; then
# Using systemd
# Append to the file
preflight_actions+=('printf "\n# Added by LUG-Helper:\nDefaultLimitNOFILE=524288\n" >> /etc/systemd/system.conf && systemctl daemon-reexec')
preflight_results+=("The open files limit configuration has been appended to:\n/etc/systemd/system.conf")
preflight_actions+=('mkdir -p /etc/systemd/system.conf.d && printf "[Manager]\n# Added by LUG-Helper:\nDefaultLimitNOFILE=524288\n" > /etc/systemd/system.conf.d/20-starcitizen-filelimit.conf && systemctl daemon-reexec')
preflight_results+=("The open files limit configuration has been added to:\n/etc/systemd/system.conf.d/20-starcitizen-filelimit.conf")
elif [ -f "/etc/security/limits.conf" ]; then
# Using limits.conf
# Insert before the last line in the file
@ -725,7 +735,7 @@ filelimit_check() {
# Add info for manually changing the settings
if [ -f "/etc/systemd/system.conf" ]; then
# Using systemd
preflight_manual+=("To change your open file descriptors limit, add the following line to\n'/etc/systemd/system.conf':\n DefaultLimitNOFILE=524288")
preflight_manual+=("To change your open file descriptors limit, add the following to\n'/etc/systemd/system.conf.d/20-starcitizen-filelimit.conf':\n\n[Manager]\nDefaultLimitNOFILE=524288")
elif [ -f "/etc/security/limits.conf" ]; then
# Using limits.conf
preflight_manual+=("To change your open file descriptors limit, add the following line to\n'/etc/security/limits.conf':\n * hard nofile 524288")
@ -766,6 +776,15 @@ avx_check() {
fi
}
# Check if swap is set up
swap_check() {
if cat /proc/swaps | grep -vq "Filename"; then
preflight_pass+=("You have swap space configured.")
else
preflight_fail+=("You don't appear to have swap space configured.\nWe recommend configuring an 8-16 GB swap file.")
fi
}
# Check that the system is optimized for Star Citizen
preflight_check() {
# Initialize variables
@ -780,6 +799,7 @@ preflight_check() {
# Call the optimization functions to perform the checks
wine_check
memory_check
swap_check
avx_check
mapcount_check
filelimit_check
@ -893,6 +913,7 @@ lutris_restart() {
# Perform post-download actions, display messages or instructions
# Expects the variables message_heading, post_download_msg_text,
# post_download_msg_italics, and downloaded_item_name
# Optional: post_download_msg_more_info and post_download_msg_link
post_download() {
# Check if lutris needs to be restarted after making changes
lutris_restart
@ -900,12 +921,30 @@ post_download() {
if [ "$display_post_download_msg" = "true" ]; then
message_heading="Download Complete"
# Format some variables for zenity
if [ "$use_zenity" -eq 1 ]; then
message_heading="<b>$message_heading</b>"
post_download_msg_italics="<i>$post_download_msg_italics</i>"
# If we have a link to provide, format it as well
if [ -n "$post_download_msg_link" ]; then
post_download_msg_link="<a href='$post_download_msg_link'>$post_download_msg_link</a>"
fi
fi
message info "$message_heading\n\n$post_download_msg_text\n$post_download_msg_italics\n\n$downloaded_item_name"
# Add newlines to the optional variables if set
if [ -n "$post_download_msg_more_info" ]; then
post_download_msg_more_info="\n\n$post_download_msg_more_info"
fi
if [ -n "$post_download_msg_link" ]; then
post_download_msg_link="\n$post_download_msg_link"
fi
# Display the info
message info "$message_heading\n\n$post_download_msg_text\n$post_download_msg_italics\n\n$downloaded_item_name$post_download_msg_more_info$post_download_msg_link"
fi
# Reset
display_post_download_msg="false"
}
@ -992,6 +1031,9 @@ download_install() {
*.tar.xz)
download_name="$(basename "$download_file" .tar.xz)"
;;
*.tar.zst)
download_name="$(basename "$download_file" .tar.zst)"
;;
*)
debug_print exit "Unknown archive filetype in download_install function. Aborting."
;;
@ -1141,13 +1183,15 @@ download_select_install() {
debug_print exit "Script error: Unknown api/url format in ${download_type}_sources array. Aborting."
;;
esac
# For runners, check GlibC version against runner requirements
if [ "download_type" = "runner" ] && [ "$contributor_name" = "/dev/null" ]; then
if [ "$download_type" = "runner" ] && [ "$contributor_name" = "/dev/null" ]; then
required_glibc="2.33"
system_glibc="$(ldd --version | awk '/ldd/{print $NF}')"
if [ "$(bc <<< "$required_glibc > $system_glibc")" = "1" ]; then
# Sort the versions and check if the installed glibc is smaller
if [ "$required_glibc" != "$system_glibc" ] &&
[ "$system_glibc" = "$(printf "$system_glibc\n$required_glibc" | sort -V | head -n1)" ]; then
message warning "Your glibc version is incompatible with the selected runner.\n\nSystem glibc: v$system_glibc\nMinimum required glibc: v$required_glibc"
return 1
fi
@ -1191,7 +1235,10 @@ download_select_install() {
;;
*.tar.xz)
download_name="$(basename "${download_versions[i]}" .tar.xz)"
;;
;;
*.tar.zst)
download_name="$(basename "${download_versions[i]}" .tar.zst)"
;;
*)
debug_print exit "Unknown archive filetype in download_select_install function. Aborting."
;;
@ -1323,9 +1370,13 @@ runner_manage() {
# A header is automatically displayed that reads: Download Complete
# msg_text is displayed below the header
# msg_italics is displayed below that in italics when zenity is in use
# Lastly, the downloaded directory name is automatically displayed
# Then, the downloaded directory name is automatically displayed
# Optional variables post_download_msg_more_info and
# post_download_msg_link will be displayed if set
post_download_msg_text="Select the following runner in Lutris from the dropdown menu under:"
post_download_msg_italics="Configure->Runner Options->Wine version"
post_download_msg_more_info=""
post_download_msg_link=""
# Call the download_manage function with the above configuration
# The argument passed to the function is used for special handling
@ -1345,8 +1396,8 @@ dxvk_manage() {
download_dir="$dxvk_dir"
# Configure the text displayed in the menus
download_menu_heading="DXVK Versions"
download_menu_description="The DXVK versions below may help improve game performance"
download_menu_heading="Lutris DXVK Versions"
download_menu_description="The DXVK versions below may help reduce stuttering"
download_menu_height="140"
# Set the post download instructions
@ -1354,9 +1405,13 @@ dxvk_manage() {
# A header is automatically displayed that reads: Download Complete
# msg_text is displayed below the header
# msg_italics is displayed below that in italics when zenity is in use
# Lastly, the downloaded directory name is automatically displayed
# Then, the downloaded directory name is automatically displayed
# Optional variables post_download_msg_more_info and
# post_download_msg_link will be displayed if set
post_download_msg_text="Type the following DXVK name into your Lutris settings under:"
post_download_msg_italics="Configure->Runner Options->DXVK version"
post_download_msg_more_info="See our wiki for instructions on setting the DXVK_ASYNC environment variable in Lutris:"
post_download_msg_link="https://github.com/starcitizen-lug/information-howtos/wiki/Performance-Tuning#dxvk-async"
# Call the download_manage function with the above configuration
# The argument passed to the function is used for special handling
@ -1380,9 +1435,9 @@ eac_workaround() {
eac_dir="$wine_prefix/drive_c/users/$USER/AppData/Roaming/EasyAntiCheat"
eac_hosts="127.0.0.1 modules-cdn.eac-prod.on.epicgames.com"
# Check if EAC is installed
if [ ! -d "$eac_dir" ]; then
message info "Easy Anti-Cheat does not appear to be installed yet.\nThere is nothing to do!"
# Check if EAC workaround is already applied
if grep "$eac_hosts" /etc/hosts; then
message info "The Easy Anti-Cheat workaround has already been applied.\nYou're all set!"
return 1
fi
@ -1406,8 +1461,11 @@ eac_workaround() {
sudo sh -c "echo $eac_hosts '#Star Citizen EAC workaround' >> /etc/hosts"
fi
debug_print continue "Deleting $eac_dir..."
rm -r "$eac_dir"
# Delete the EAC directory if it exists
if [ -d "$eac_dir" ]; then
debug_print continue "Deleting $eac_dir..."
rm -r "$eac_dir"
fi
message info "Easy Anti-Cheat workaround has been deployed!"
fi
@ -1432,6 +1490,12 @@ install_game() {
fi
}
# Display the LUG Wiki
display_wiki() {
# Display a message containing the URL
message info "See the Wiki for our Quick-Start Guide, Manual Installation instructions,\nPerformance Tuning, and Common Issues and Solutions:\n\n$lug_wiki"
}
# Delete the shaders directory
rm_shaders() {
# Get/Set directory paths
@ -1495,13 +1559,14 @@ maintenance_menu() {
shaders_msg="Delete my shaders folder only (Do this after each game update)"
vidcache_msg="Delete my DXVK cache"
dirs_msg="Display Helper and Star Citizen directories"
wiki_msg="Show the LUG Wiki"
reset_msg="Reset Helper configs"
quit_msg="Return to the main menu"
# Set the options to be displayed in the menu
menu_options=("$version_msg" "$sanitize_msg" "$shaders_msg" "$vidcache_msg" "$dirs_msg" "$reset_msg" "$quit_msg")
menu_options=("$version_msg" "$sanitize_msg" "$shaders_msg" "$vidcache_msg" "$dirs_msg" "$wiki_msg" "$reset_msg" "$quit_msg")
# Set the corresponding functions to be called for each of the options
menu_actions=("set_version" "sanitize" "rm_shaders" "rm_dxvkcache" "display_dirs" "reset_helper" "menu_loop_done")
menu_actions=("set_version" "sanitize" "rm_shaders" "rm_dxvkcache" "display_dirs" "display_wiki" "reset_helper" "menu_loop_done")
# Calculate the total height the menu should be
menu_height="$(($menu_option_height * ${#menu_options[@]} + $menu_text_height))"
@ -1580,20 +1645,6 @@ fi
# Set defaults
live_or_ptu="$live_dir"
# Check if a newer verison of the script is available
latest_version="$(get_latest_release "$repo")"
if [ "$latest_version" != "$current_version" ] &&
[ "$current_version" = "$(printf "$current_version\n$latest_version" | sort -V | head -n1)" ]; then
if [ "$use_zenity" -eq 1 ]; then
releases_url_formatted="<a href='$releases_url'>$releases_url</a>"
else
releases_url_formatted="$releases_url"
fi
message info "The latest version of the LUG Helper is $latest_version\nYou are using $current_version\n\nYou can download new releases here:\n$releases_url_formatted"
fi
# If invoked with command line arguments, process them and exit
if [ "$#" -gt 0 ]; then
while [ "$#" -gt 0 ]
@ -1692,6 +1743,22 @@ Usage: lug-helper <options>
fi
fi
# Format some URLs for Zenity
if [ "$use_zenity" -eq 1 ]; then
releases_url="<a href='$releases_url'>$releases_url</a>"
lug_wiki="<a href='$lug_wiki'>$lug_wiki</a>"
fi
# Check if a newer verison of the script is available
latest_version="$(get_latest_release "$repo")"
# Sort the versions and check if the installed Helper is smaller
if [ "$latest_version" != "$current_version" ] &&
[ "$current_version" = "$(printf "$current_version\n$latest_version" | sort -V | head -n1)" ]; then
message info "The latest version of the LUG Helper is $latest_version\nYou are using $current_version\n\nYou can download new releases here:\n$releases_url"
fi
# Loop the main menu until the user selects quit
while true; do
# Configure the menu
@ -1704,7 +1771,7 @@ while true; do
install_msg="Install Star Citizen"
eac_msg="Deploy Easy Anti-Cheat Workaround"
runners_msg="Manage Lutris Runners"
dxvk_msg="Manage DXVK Versions"
dxvk_msg="Manage Lutris DXVK Versions"
maintenance_msg="Maintenance and Troubleshooting"
randomizer_msg="Get a random Penguin's Star Citizen referral code"
quit_msg="Quit"

View File

@ -30,7 +30,7 @@
"script": {
"files": [
{
"client": "https://install.robertsspaceindustries.com/star-citizen/RSI-Setup-1.5.4.exe"
"client": "https://install.robertsspaceindustries.com/star-citizen/RSI-Setup-1.5.5.exe"
}
],
"game": {
@ -80,11 +80,12 @@
"dxvk": true,
"esync": true,
"overrides": {
"nvapi,nvapi64": "disabled"
},
"nvapi,nvapi64": "disabled",
"libglesv2": "builtin"
}
}
},
"content": "files:\n- client: https://install.robertsspaceindustries.com/star-citizen/RSI-Setup-1.5.4.exe\ngame:\n arch: win64\n args: null\n exe: drive_c/Program Files/Roberts Space Industries/RSI Launcher/RSI Launcher.exe\n prefix: $GAMEDIR\ninstaller:\n- task:\n arch: win64\n description: Creating Wine prefix\n name: create_prefix\n prefix: $GAMEDIR\n- task:\n app: --force arial vcrun2019 win10\n arch: win64\n description: Installing dlls\n name: winetricks\n prefix: $GAMEDIR\n- task:\n arch: win64\n args: /S\n description: Installing client\n executable: client\n name: wineexec\n prefix: $GAMEDIR\nsystem:\n env:\n DXVK_HUD: '0'\n __GL_SHADER_DISK_CACHE: 1\n __GL_SHADER_DISK_CACHE_SIZE: '1073741824'\n __GL_THREADED_OPTIMIZATIONS: '1'\nwine:\n dxvk: true\n esync: true\n overrides:\n nvapi,nvapi64: disabled\n"
"content": "files:\n- client: https://install.robertsspaceindustries.com/star-citizen/RSI-Setup-1.5.5.exe\ngame:\n arch: win64\n args: null\n exe: drive_c/Program Files/Roberts Space Industries/RSI Launcher/RSI Launcher.exe\n prefix: $GAMEDIR\ninstaller:\n- task:\n arch: win64\n description: Creating Wine prefix\n name: create_prefix\n prefix: $GAMEDIR\n- task:\n app: --force arial vcrun2019 win10\n arch: win64\n description: Installing dlls\n name: winetricks\n prefix: $GAMEDIR\n- task:\n arch: win64\n args: /S\n description: Installing client\n executable: client\n name: wineexec\n prefix: $GAMEDIR\nsystem:\n env:\n DXVK_HUD: '0'\n __GL_SHADER_DISK_CACHE: 1\n __GL_SHADER_DISK_CACHE_SIZE: '1073741824'\n __GL_THREADED_OPTIMIZATIONS: '1'\nwine:\n dxvk: true\n esync: true\n overrides:\n nvapi,nvapi64: disabled\n libglesv2: builtin\n"
}
]
}