From e3e26b31b74bce6e72964fe75b0e6621b3db5986 Mon Sep 17 00:00:00 2001 From: Eamonn Rea Date: Sun, 24 Sep 2023 19:32:40 +0100 Subject: [PATCH 01/19] Special K: Add toggle for loading ReShade as Special K Plugin --- lang/english.txt | 2 ++ steamtinkerlaunch | 10 +++++++--- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/lang/english.txt b/lang/english.txt index b0dc4926..5e73d905 100644 --- a/lang/english.txt +++ b/lang/english.txt @@ -1232,3 +1232,5 @@ GUI_USERSSPEKVERS="enable SpecialK ReShade Version Override" DESC_USERSSPEKVERS="force the use of a specific, potentailly more compatible ReShade version when using SpecialK to load ReShade into a game" GUI_RSSPEKVERS="SpecialK ReShade Version Override" DESC_RSSPEKVERS="Version of ReShade to use when installing ReShade as a SpecialK Plugin" +GUI_USERESHSPEKPLUGIN="Load ReShade as SpecialK Plugin" +DESC_USERESHSPEKPLUGIN="copy ReShade DLLs without renaming them and let SpecialK manage loading them - If disabled, ReShade will be loaded by the game independent of SpecialK, which may be more desirable in some cases" diff --git a/steamtinkerlaunch b/steamtinkerlaunch index d7a9bc60..90e68c0d 100755 --- a/steamtinkerlaunch +++ b/steamtinkerlaunch @@ -6,7 +6,7 @@ PREFIX="/usr" PROGNAME="SteamTinkerLaunch" NICEPROGNAME="Steam Tinker Launch" -PROGVERS="v14.0.20230925-4" +PROGVERS="v14.0.20230925-5" PROGCMD="${0##*/}" PROGINTERNALPROTNAME="Proton-stl" SHOSTL="stl" @@ -2991,6 +2991,7 @@ function setDefaultCfgValues { if [ -z "$WAITMO2" ] ; then WAITMO2="2"; fi if [ -z "$USESPECIALK" ] ; then USESPECIALK="0"; fi if [ -z "$SPEKDLLNAME" ] ; then SPEKDLLNAME="$AUTO"; fi + if [ -z "$USERESHSPEKPLUGIN" ] ; then USERESHSPEKPLUGIN="1"; fi if [ -z "$SDLUSEWAYLAND" ] ; then SDLUSEWAYLAND="0"; fi if [ -z "$STLRAD_PFTST" ] ; then STLRAD_PFTST="none"; fi if [ -z "$SPEKVERS" ] ; then SPEKVERS="default"; fi @@ -3648,6 +3649,8 @@ function saveCfg { echo "USESPECIALK=\"$USESPECIALK\"" echo "## $DESC_SPEKDLLNAME" echo "SPEKDLLNAME=\"$SPEKDLLNAME\"" + echo "## $DESC_USERESHSPEKPLUGIN" + echo "USERESHSPEKPLUGIN=\"$USERESHSPEKPLUGIN\"" echo "## $DESC_SDLUSEWAYLAND" echo "SDLUSEWAYLAND=\"$SDLUSEWAYLAND\"" echo "## $DESC_STLRAD_PFTST" @@ -5279,6 +5282,7 @@ function AllSettingsEntriesDummyFunction { --field=" $GUI_USESPECIALK!$DESC_USESPECIALK ('USESPECIALK')":CHK "${USESPECIALK/#-/ -}" `#CAT_Proton` `#SUB_Checkbox` `#MENU_GAME` \ --field=" $GUI_SPEKVERS!$DESC_SPEKVERS ('SPEKVERS')":CB "$(cleanDropDown "${SPEKVERS/#-/ -}" "default!$SPEKYADLIST")" `#CAT_Proton` `#SUB_Checkbox` `#MENU_GAME` \ --field=" $GUI_SPEKDLLNAME!$DESC_SPEKDLLNAME ('SPEKDLLNAME')":CBE "$( cleanDropDown "${SPEKDLLNAME/#-/ -}" "$SPEKDLLNAMELIST" )" `#CAT_Proton` `#MENU_GAME` \ +--field=" $GUI_USERESHSPEKPLUGIN!$DESC_USERESHSPEKPLUGIN ('USERESHSPEKPLUGIN')":CHK "${USERESHSPEKPLUGIN/#-/ -}" `#CAT_Proton` `#SUB_Checkbox` `#MENU_GAME` \ --field=" $GUI_AUTOSPEK!$DESC_AUTOSPEK ('AUTOSPEK')":CHK "${AUTOSPEK/#-/ -}" `#CAT_Proton` `#SUB_Checkbox` `#MENU_GAME` \ --field=" $GUI_PROTON_LOG!$DESC_PROTON_LOG $HOME/steam-$AID.log ('PROTON_LOG')":CHK "${PROTON_LOG/#-/ -}" `#CAT_Proton` `#SUB_Checkbox` `#MENU_GAME` \ --field=" $GUI_PROTON_LOG_DIR!$DESC_PROTON_LOG_DIR ('PROTON_LOG_DIR')":DIR "${PROTON_LOG_DIR/#-/ -}" `#CAT_Proton` `#SUB_Directories` `#MENU_GAME` \ @@ -8992,7 +8996,7 @@ function checkReshade { # EXPERIMENTALLY RE-ENABLED # NOTE that this has no ReShade updating or version override checks, so it is missing many features that regular ReShade has! - if [ "$USESPECIALK" -eq 1 ]; then + if [ "$USESPECIALK" -eq 1 ] && [ "$USERESHSPEKPLUGIN" -eq 1 ]; then writelog "WARN" "${FUNCNAME[0]} - Both '$SPEK' and '$RESH' are enabled." "E" writelog "WARN" "${FUNCNAME[0]} - This has historically caused crashes, but has been experimentally re-enabled!" writelog "WARN" "${FUNCNAME[0]} - Manual intervention may be required to fix crashes, such as renaming the SpecialK DLL to fix the SpecialK UI, or running dos2unix on INI files to fix crashes" @@ -9044,7 +9048,7 @@ function checkReshade { done < "$RSLIST" mv "$RSLIST" "$RSOLIST" fi - + if [ "$USESPECIALK" -eq 0 ]; then if [ -f "$SHADDESTDIR/$RS_DX_DEST" ] && grep -q "$RESH" "$SHADDESTDIR/$RS_DX_DEST"; then writelog "WARN" "${FUNCNAME[0]} - Found unknown '$RESH' dll '$RS_DX_DEST' in '$SHADDESTDIR'" From c5874c600d38198927c1d40f4e793b06bad6d63c Mon Sep 17 00:00:00 2001 From: Eamonn Rea Date: Sun, 24 Sep 2023 19:41:48 +0100 Subject: [PATCH 02/19] version increase --- steamtinkerlaunch | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/steamtinkerlaunch b/steamtinkerlaunch index 90e68c0d..93f22472 100755 --- a/steamtinkerlaunch +++ b/steamtinkerlaunch @@ -6,7 +6,7 @@ PREFIX="/usr" PROGNAME="SteamTinkerLaunch" NICEPROGNAME="Steam Tinker Launch" -PROGVERS="v14.0.20230925-5" +PROGVERS="v14.0.20230925-5 (toggle-reshade-spek-plugin)" PROGCMD="${0##*/}" PROGINTERNALPROTNAME="Proton-stl" SHOSTL="stl" From ddc0112318007a1b0de1cb28f09d274081a11ae8 Mon Sep 17 00:00:00 2001 From: Eamonn Rea Date: Sun, 24 Sep 2023 20:03:54 +0100 Subject: [PATCH 03/19] Special K: Fix conditional logic in installReshade for new option --- steamtinkerlaunch | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/steamtinkerlaunch b/steamtinkerlaunch index 93f22472..8e3276ec 100755 --- a/steamtinkerlaunch +++ b/steamtinkerlaunch @@ -6,7 +6,7 @@ PREFIX="/usr" PROGNAME="SteamTinkerLaunch" NICEPROGNAME="Steam Tinker Launch" -PROGVERS="v14.0.20230925-5 (toggle-reshade-spek-plugin)" +PROGVERS="v14.0.20230925-6 (toggle-reshade-spek-plugin)" PROGCMD="${0##*/}" PROGINTERNALPROTNAME="Proton-stl" SHOSTL="stl" @@ -8853,7 +8853,8 @@ function installReshade { # Common conditional to install either 32bit/64bit ReShade DLLs, since process is same, just different DLL names # USESPECIALK check needed because we can't use custom DLL names when using SpecialK -- It expects the raw ReShade32/ReShade64 DLL names - if [ "$USERESHADE" -eq 1 ] && [ "$USESPECIALK" -eq 0 ]; then + # if [ "$USERESHADE" -eq 1 ] && [ "$USESPECIALK" -eq 0 ] && [ "$USERESHSPEKPLUGIN" -eq 0 ]; then + if [[ "$USERESHADE" -eq 1 && ( "$USESPECIALK" -eq 0 || "$USERESHSPEKPLUGIN" -eq 0 ) ]]; then #d3d47 - Required for ReShade # NOTE 25/08/23: *Is* it still required? installd3d47dll "$D3D47_32" "$RSD3D47DLL" From 497223940b152fb1575479ce8cc509c54bd43296 Mon Sep 17 00:00:00 2001 From: Eamonn Rea Date: Sun, 24 Sep 2023 20:05:12 +0100 Subject: [PATCH 04/19] Special K: Ignore SpecialK+ReShade override version when loading ReShade and SpecialK independently --- steamtinkerlaunch | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/steamtinkerlaunch b/steamtinkerlaunch index 8e3276ec..4d6168e6 100755 --- a/steamtinkerlaunch +++ b/steamtinkerlaunch @@ -6,7 +6,7 @@ PREFIX="/usr" PROGNAME="SteamTinkerLaunch" NICEPROGNAME="Steam Tinker Launch" -PROGVERS="v14.0.20230925-6 (toggle-reshade-spek-plugin)" +PROGVERS="v14.0.20230925-7 (toggle-reshade-spek-plugin)" PROGCMD="${0##*/}" PROGINTERNALPROTNAME="Proton-stl" SHOSTL="stl" @@ -8136,7 +8136,7 @@ function overrideReShadeVersion { else writelog "SKIP" "${FUNCNAME[0]} - '$RESH' Override version and '$RESH' global version match - Not overriding" fi - elif [ "$USESPECIALK" -eq 1 ] && [ "$USERESHADE" -eq 1 ] && [ "$USERSSPEKVERS" -eq 1 ]; then # Global Menu ReShade version to load when ReShade is loaded via SpecialK + elif [ "$USESPECIALK" -eq 1 ] && [ "$USERESHADE" -eq 1 ] && [ "$USERSSPEKVERS" -eq 1 ] && [ "$USERESHSPEKPLUGIN" -eq 0 ]; then # Global Menu ReShade version to load when ReShade is loaded via SpecialK writelog "INFO" "${FUNCNAME[0]} - Overriding global '$RESH' version '$RSVERS' with SpecialK ReShade version override '$RSSPEKVERS' as it is enabled and ReShade+SpecialK are enabled together" RSVERS="$RSSPEKVERS" else From 9247c6108e406844ee217409a6d065e7a8161edb Mon Sep 17 00:00:00 2001 From: Eamonn Rea Date: Sun, 24 Sep 2023 20:06:07 +0100 Subject: [PATCH 05/19] Special K: Update tooltip --- lang/english.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lang/english.txt b/lang/english.txt index 5e73d905..921da531 100644 --- a/lang/english.txt +++ b/lang/english.txt @@ -1233,4 +1233,4 @@ DESC_USERSSPEKVERS="force the use of a specific, potentailly more compatible ReS GUI_RSSPEKVERS="SpecialK ReShade Version Override" DESC_RSSPEKVERS="Version of ReShade to use when installing ReShade as a SpecialK Plugin" GUI_USERESHSPEKPLUGIN="Load ReShade as SpecialK Plugin" -DESC_USERESHSPEKPLUGIN="copy ReShade DLLs without renaming them and let SpecialK manage loading them - If disabled, ReShade will be loaded by the game independent of SpecialK, which may be more desirable in some cases" +DESC_USERESHSPEKPLUGIN="copy ReShade DLLs without renaming them and let SpecialK manage loading them - If disabled, ReShade will be loaded by the game instead of SpecialK and will IGNORE any Global SpecialK ReShade Override Version, which may be more desirable in some cases" From 76727e78555b8ac82934aa4f7fc8851a5fd9602a Mon Sep 17 00:00:00 2001 From: Eamonn Rea Date: Mon, 25 Sep 2023 01:48:53 +0100 Subject: [PATCH 06/19] Fix duplicate ReShade DLL names --- steamtinkerlaunch | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/steamtinkerlaunch b/steamtinkerlaunch index 4d6168e6..b25493e0 100755 --- a/steamtinkerlaunch +++ b/steamtinkerlaunch @@ -6,7 +6,7 @@ PREFIX="/usr" PROGNAME="SteamTinkerLaunch" NICEPROGNAME="Steam Tinker Launch" -PROGVERS="v14.0.20230925-7 (toggle-reshade-spek-plugin)" +PROGVERS="v14.0.20230925-8 (toggle-reshade-spek-plugin)" PROGCMD="${0##*/}" PROGINTERNALPROTNAME="Proton-stl" SHOSTL="stl" @@ -8825,6 +8825,7 @@ function installReshade { if [ -d "$INSTDESTDIR" ]; then # Get ReShade DLL names from comma separated list -- User will probably mostly only pass one, but this will handle cases where they might want multiple (ex: d3d9, opengl32) + RSDLLNAMEARR=() # Make sure the array of DLL names is always reset when installReshade is called, to avoid duplicate entries mapfile -d "," -t -O "${#RSDLLNAMEARR[@]}" RSDLLNAMEARR < <(printf '%s' "$RESHADEDLLNAME") for CUSTRSDLL in "${RSDLLNAMEARR[@]}"; do From 7392b8165d70b1f2429bdc6df505df5b1b3346fd Mon Sep 17 00:00:00 2001 From: Eamonn Rea Date: Mon, 25 Sep 2023 02:40:47 +0100 Subject: [PATCH 07/19] minor duplicate logic fix --- steamtinkerlaunch | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/steamtinkerlaunch b/steamtinkerlaunch index b25493e0..48773eef 100755 --- a/steamtinkerlaunch +++ b/steamtinkerlaunch @@ -8754,6 +8754,8 @@ function installRSdll { # Check for ReShade DLL name conflicts if [ -f "$INSTDESTDIR/$1" ] && [ -f "$INSTDESTDIR/$RSTXT" ] && ! grep -qw "$1" "$INSTDESTDIR/$RSTXT"; then RSDLLNAMECONFLICTFOUND=1 + elif [ -f "$INSTDESTDIR/$1" ] && [ -f "$INSTDESTDIR/$RSTXT" ] && [ "$USESPECIALK" -eq 1 ] && [ "$USERESHSPEKPLUGIN" -eq 0 ]; then + RSDLLNAMECONFLICTFOUND=1 fi if [ "$RESHADEUPDATE" -eq 0 ]; then @@ -8855,7 +8857,7 @@ function installReshade { # Common conditional to install either 32bit/64bit ReShade DLLs, since process is same, just different DLL names # USESPECIALK check needed because we can't use custom DLL names when using SpecialK -- It expects the raw ReShade32/ReShade64 DLL names # if [ "$USERESHADE" -eq 1 ] && [ "$USESPECIALK" -eq 0 ] && [ "$USERESHSPEKPLUGIN" -eq 0 ]; then - if [[ "$USERESHADE" -eq 1 && ( "$USESPECIALK" -eq 0 || "$USERESHSPEKPLUGIN" -eq 0 ) ]]; then + if [[ "$USERESHADE" -eq 1 && ( "$USESPECIALK" -eq 0 && "$USERESHSPEKPLUGIN" -eq 0 ) ]]; then #d3d47 - Required for ReShade # NOTE 25/08/23: *Is* it still required? installd3d47dll "$D3D47_32" "$RSD3D47DLL" @@ -8878,7 +8880,7 @@ function installReshade { done else if [ "$USESPECIALK" -eq 1 ]; then - writelog "SKIP" "${FUNCNAME[0]} - USERESHADE and USESPECIALK are enabled together, skipping custom ReShade DLL name as SpecialK needs specific ReShade DLL names" + writelog "SKIP" "${FUNCNAME[0]} - USERESHADE and USESPECIALK are enabled together, and ReShade is being used as a Plugin, skipping custom ReShade DLL name as SpecialK needs specific ReShade DLL names" fi fi From 660f0be6767c99527f1813deeb5337ee125b458c Mon Sep 17 00:00:00 2001 From: Eamonn Rea Date: Mon, 25 Sep 2023 18:43:48 +0100 Subject: [PATCH 08/19] More tweaks to SpecialK+ReShade conflict logic --- steamtinkerlaunch | 49 ++++++++++++++++++++++++++++------------------- 1 file changed, 29 insertions(+), 20 deletions(-) diff --git a/steamtinkerlaunch b/steamtinkerlaunch index 48773eef..a140428f 100755 --- a/steamtinkerlaunch +++ b/steamtinkerlaunch @@ -6,7 +6,7 @@ PREFIX="/usr" PROGNAME="SteamTinkerLaunch" NICEPROGNAME="Steam Tinker Launch" -PROGVERS="v14.0.20230925-8 (toggle-reshade-spek-plugin)" +PROGVERS="v14.0.20230926-1 (toggle-reshade-spek-plugin)" PROGCMD="${0##*/}" PROGINTERNALPROTNAME="Proton-stl" SHOSTL="stl" @@ -8708,14 +8708,18 @@ function appendToRSTXT { touch "$INSTDESTDIR/$RSTXT" fi - if ! grep -qw "$1" "$INSTDESTDIR/$RSTXT"; then + if ! grep -qw "$1" "$INSTDESTDIR/$RSTXT" && [ ! -f "$INSTDESTDIR/$SPEKENA" ]; then echo "$1" >> "$INSTDESTDIR/$RSTXT" writelog "INFO" "${FUNCNAME[0]} - Added '$1' to list of tracked ReShade DLLs at to '$INSTDESTDIR/$RSTXT'" + elif [ -f "$INSTDESTDIR/$SPEKENA" ]; then # Don't create/write to ReShade.txt if SpecialK is installed + writelog "INFO" "${FUNCNAME[0]} - SpecialK seems to be installed, not writing anything to '$RSTXT'" else writelog "INFO" "${FUNCNAME[0]} - ReShade DLL '$1' already on list of tracked ReShade DLLs at '$INSTDESTDIR/$RSTXT' - Nothing to do." fi - sort "$INSTDESTDIR/$RSTXT" -u -o "$INSTDESTDIR/$RSTXT" + if [ -f "$INSTDESTDIR/$RSTXT" ]; then + sort "$INSTDESTDIR/$RSTXT" -u -o "$INSTDESTDIR/$RSTXT" + fi } # $2 used to specify NOD3D9 wehn we copied both DXGI and D3D9 DLLs, but we no longer do that, so $2 is unused @@ -8726,9 +8730,10 @@ function installRSdll { # Manage creating backup if untracked DLL with our selected ReShade DLL name already exists at location # This function could be changed in future to take the path as a parameter as well, but that was not important at time of writing function manageDuplicateRSDLL { - if [ "$USESPECIALK" -eq 1 ] && [[ "$SPEKDLLNAME" == "$1" ]]; then - # If we call this function we assume there's a DLL conflict, and if SpecialK is enabled and its DLL name matches the conflicting DLL name, skip this DLL - writelog "WARN" "${FUNCNAME[0]} - SpecialK is enabled and its DLL name '$SPEKDLLNAME' appears to conflict with the selected ReShade DLL name '$1' -- Not overwriting SpecialK DLL with ReShade!" + writelog "INFO" "${FUNCNAME[0]} - SPEKENA is '$SPEKENA'" + if [ "$USESPECIALK" -eq 1 ] && [ "$USERESHSPEKPLUGIN" -eq 0 ]; then + # If we call this function we assume there's a DLL conflict, and if SpecialK is enabled, installed, and its DLL name matches the conflicting DLL name, skip this DLL + writelog "WARN" "${FUNCNAME[0]} - SpecialK is installed and its DLL name '$SPEKDLLNAME' appears to conflict with the selected ReShade DLL name '$1' -- Not overwriting SpecialK DLL with ReShade!" else writelog "WARN" "${FUNCNAME[0]} - DLL with name '$1' found in game dir '$INSTDESTDIR' but is not tracked by us - This is possibly a game/mod DLL" writelog "WARN" "${FUNCNAME[0]} - Backing up DLL at '$INSTDESTDIR/$1' to '$INSTDESTDIR/${1}.bak' and moving our ReShade DLL anyway" @@ -8754,7 +8759,7 @@ function installRSdll { # Check for ReShade DLL name conflicts if [ -f "$INSTDESTDIR/$1" ] && [ -f "$INSTDESTDIR/$RSTXT" ] && ! grep -qw "$1" "$INSTDESTDIR/$RSTXT"; then RSDLLNAMECONFLICTFOUND=1 - elif [ -f "$INSTDESTDIR/$1" ] && [ -f "$INSTDESTDIR/$RSTXT" ] && [ "$USESPECIALK" -eq 1 ] && [ "$USERESHSPEKPLUGIN" -eq 0 ]; then + elif [ -f "$INSTDESTDIR/$1" ] && [ -f "$INSTDESTDIR/$RSTXT" ] && [ "$USESPECIALK" -eq 1 ] && [ "$USERESHSPEKPLUGIN" -eq 0 ] && [ -f "$INSTDESTDIR/$SPEKENA" ]; then RSDLLNAMECONFLICTFOUND=1 fi @@ -8762,7 +8767,7 @@ function installRSdll { if [ "$RSDLLNAMECONFLICTFOUND" -eq 1 ]; then # DLL with name matching our ReShade DLL name exists, but was not installed by us (missing from ReShade.txt) - Backing up existing DLL and installing ReShade DLL anyway writelog "INFO" "${FUNCNAME[0]} - ReShade update is DISABLED" - writelog "INFO" "${FUNCNAME[0]} - Specified ReShade DLL name conflict detected!" + writelog "WARN" "${FUNCNAME[0]} - Specified ReShade DLL name conflict detected!" manageDuplicateRSDLL "$1" "$3" # 1 = target ReShade DLL name, 3 = ReShade DLL name from STL downloads folder to copy with the name specified in $1 else @@ -8856,8 +8861,9 @@ function installReshade { # Common conditional to install either 32bit/64bit ReShade DLLs, since process is same, just different DLL names # USESPECIALK check needed because we can't use custom DLL names when using SpecialK -- It expects the raw ReShade32/ReShade64 DLL names - # if [ "$USERESHADE" -eq 1 ] && [ "$USESPECIALK" -eq 0 ] && [ "$USERESHSPEKPLUGIN" -eq 0 ]; then - if [[ "$USERESHADE" -eq 1 && ( "$USESPECIALK" -eq 0 && "$USERESHSPEKPLUGIN" -eq 0 ) ]]; then + # + # Only install ReShade "normally" if (ReShade is on) or (if ReShade+SpecialK are on and ReShade SpecialK Plugin is disabled) + if [[ "$USERESHADE" -eq 1 || ( "$USERESHADE" -eq 1 && "$USESPECIALK" -eq 1 && "$USERESHSPEKPLUGIN" -eq 0 ) ]]; then #d3d47 - Required for ReShade # NOTE 25/08/23: *Is* it still required? installd3d47dll "$D3D47_32" "$RSD3D47DLL" @@ -8879,7 +8885,7 @@ function installReshade { appendToRSTXT "$CUSTRSDLL" done else - if [ "$USESPECIALK" -eq 1 ]; then + if [ "$USERESHADE" -eq 1 ] && [ "$USESPECIALK" -eq 1 ] && [ ]; then writelog "SKIP" "${FUNCNAME[0]} - USERESHADE and USESPECIALK are enabled together, and ReShade is being used as a Plugin, skipping custom ReShade DLL name as SpecialK needs specific ReShade DLL names" fi fi @@ -9260,15 +9266,18 @@ function useSpecialK { SPEKSRC="$1" SPEKDLLCONFLICTFOUND=0 SHOULDINSTALLSPEK=1 + SPEKDSTDIR="$( dirname "$SPEKDST" )" - # TODO this is a freaking mess... PR to simplify welcome! - if [ "$USERESHADE" -eq 1 ] && [ -f "$SPEKDDIR/$RSTXT" ]; then + if [ "$USERESHADE" -eq 1 ] && [ -f "$SPEKDDIR/$RSTXT" ] && [ "$USERESHSPEKPLUGIN" -eq 0 ]; then ## ReShade is already installed and in use, and ReShade+SpecialK have selected DLL names conflict ## Check each entered ReShade DLL name and see if any conflict with the entered SpecialK DLL name - mapfile -d "," -t -O "${#SPEKRSDLLNAMECHECKARR[@]}" RSDLLNAMEARR < <(printf '%s' "$RESHADEDLLNAME") + writelog "INFO" "${FUNCNAME[0]} - ReShade is installed and not loaded as SpecialK plugin -- Checking for DLL naming conflicts" + mapfile -d "," -t -O "${#SPEKRSDLLNAMECHECKARR[@]}" SPEKRSDLLNAMECHECKARR < <(printf '%s' "$RESHADEDLLNAME") + + SPEKREALDLLNAME="$( basename "$SPEKDST" )" # Makes sure we don't compare against 'auto' for SPEKRSCHECKDLL in "${SPEKRSDLLNAMECHECKARR[@]}"; do - if [[ "$SPEKRSCHECKDLL" == "$SPEKDLLNAME" ]]; then + if [[ "$SPEKRSCHECKDLL" == "$SPEKREALDLLNAME" ]]; then writelog "ERROR" "${FUNCNAME[0]} - ReShade is enabled and the chosen ReShade DLL name conflicts with the SpecialK DLL name -- Not installing" notiShow "$( strFix "$NOTY_SPEKRESHDLLCONFLICT" "$RESH" "$SPEK" )" SPEKDLLCONFLICTFOUND=1 @@ -9276,7 +9285,8 @@ function useSpecialK { fi done else - # Not sure if this works yet -- Same as ReShade check to see if DLL exists and is not tracked by us + writelog "INFO" "${FUNCNAME[0]} - SpecialK loading normally" + # Check to see if SpecialK DLL already exists and is not tracked by us # There's probably scope to make installRSdll generic so it applies for both ReShade+SpecialK if [ ! -f "$SPEKDST" ]; then writelog "INFO" "${FUNCNAME[0]} - No SpecialK DLL installation found, installing as normal" @@ -9322,6 +9332,7 @@ function useSpecialK { cp "${SPEKSRC//dll/pdb}" "$SPEKDDIR" echo "$SPEKDDIR/$SPEKPDB" >> "$SPEKENA" fi + prepareSpecialKIni # Moved here so this is created only once we confirm SpecialK can be installed elif [ "$SPEKDLLCONFLICTFOUND" -eq 0 ] && [ "$SHOULDINSTALLSPEK" -eq 0 ]; then # In this scenario, SpecialK is already installed so we don't need to install it # So write out the DLL name to the SPEKENA file to ensure we don't end up with a blank file @@ -9368,8 +9379,6 @@ function useSpecialK { fi if [ "$USESPECIALK" -eq 1 ]; then - prepareSpecialKIni - if [ "$AUTOSPEK" -eq 1 ] && { [ "$SPEKVERS" == "default" ] || [ "$SPEKVERS" == "latest" ];}; then writelog "INFO" "${FUNCNAME[0]} - Updating $SPEK in the gamedir because AUTOSPEK is enabled" fi @@ -9378,7 +9387,7 @@ function useSpecialK { dlSpecialK getSpecialKGameRenderApi - + writelog "INFO" "${FUNCNAME[0]} - Using '$SPEKDST' as $SPEK destination dll" installSpekArchDll @@ -17877,7 +17886,7 @@ function prepareLaunch { writelog "INFO" "${FUNCNAME[0]} - checkReshade:" checkReshade - # start game with ${RESH} if USERESHADE is 1 + # start game with ${SPEK} if USESPECIALK is 1 writelog "INFO" "${FUNCNAME[0]} - useSpecialK:" useSpecialK From 06faca955f82dffef04432866217c658a38d0809 Mon Sep 17 00:00:00 2001 From: Eamonn Rea Date: Mon, 25 Sep 2023 18:59:54 +0100 Subject: [PATCH 09/19] Refactor ReShade and SpecialK conflicting logic --- steamtinkerlaunch | 76 +++++++++++++++++++---------------------------- 1 file changed, 31 insertions(+), 45 deletions(-) diff --git a/steamtinkerlaunch b/steamtinkerlaunch index a140428f..5bf984ee 100755 --- a/steamtinkerlaunch +++ b/steamtinkerlaunch @@ -8708,18 +8708,14 @@ function appendToRSTXT { touch "$INSTDESTDIR/$RSTXT" fi - if ! grep -qw "$1" "$INSTDESTDIR/$RSTXT" && [ ! -f "$INSTDESTDIR/$SPEKENA" ]; then + if ! grep -qw "$1" "$INSTDESTDIR/$RSTXT"; then echo "$1" >> "$INSTDESTDIR/$RSTXT" writelog "INFO" "${FUNCNAME[0]} - Added '$1' to list of tracked ReShade DLLs at to '$INSTDESTDIR/$RSTXT'" - elif [ -f "$INSTDESTDIR/$SPEKENA" ]; then # Don't create/write to ReShade.txt if SpecialK is installed - writelog "INFO" "${FUNCNAME[0]} - SpecialK seems to be installed, not writing anything to '$RSTXT'" else writelog "INFO" "${FUNCNAME[0]} - ReShade DLL '$1' already on list of tracked ReShade DLLs at '$INSTDESTDIR/$RSTXT' - Nothing to do." fi - if [ -f "$INSTDESTDIR/$RSTXT" ]; then - sort "$INSTDESTDIR/$RSTXT" -u -o "$INSTDESTDIR/$RSTXT" - fi + sort "$INSTDESTDIR/$RSTXT" -u -o "$INSTDESTDIR/$RSTXT" } # $2 used to specify NOD3D9 wehn we copied both DXGI and D3D9 DLLs, but we no longer do that, so $2 is unused @@ -8731,20 +8727,16 @@ function installRSdll { # This function could be changed in future to take the path as a parameter as well, but that was not important at time of writing function manageDuplicateRSDLL { writelog "INFO" "${FUNCNAME[0]} - SPEKENA is '$SPEKENA'" - if [ "$USESPECIALK" -eq 1 ] && [ "$USERESHSPEKPLUGIN" -eq 0 ]; then - # If we call this function we assume there's a DLL conflict, and if SpecialK is enabled, installed, and its DLL name matches the conflicting DLL name, skip this DLL - writelog "WARN" "${FUNCNAME[0]} - SpecialK is installed and its DLL name '$SPEKDLLNAME' appears to conflict with the selected ReShade DLL name '$1' -- Not overwriting SpecialK DLL with ReShade!" - else - writelog "WARN" "${FUNCNAME[0]} - DLL with name '$1' found in game dir '$INSTDESTDIR' but is not tracked by us - This is possibly a game/mod DLL" - writelog "WARN" "${FUNCNAME[0]} - Backing up DLL at '$INSTDESTDIR/$1' to '$INSTDESTDIR/${1}.bak' and moving our ReShade DLL anyway" - if [ -f "$INSTDESTDIR/${1}.bak" ]; then - writelog "ERROR" "${FUNCNAME[0]} - ERROR: Back-up DLL name '${1}.bak' already exists -- This is probably a very bad thing!" - fi + writelog "WARN" "${FUNCNAME[0]} - DLL with name '$1' found in game dir '$INSTDESTDIR' but is not tracked by us - This is possibly a game/mod DLL" + writelog "WARN" "${FUNCNAME[0]} - Backing up DLL at '$INSTDESTDIR/$1' to '$INSTDESTDIR/${1}.bak' and moving our ReShade DLL anyway" - mv "$INSTDESTDIR/$1" "$INSTDESTDIR/${1}.bak" 2>/dev/null - cp "$RESHADESRCDIR/$RSVERS/$2" "$INSTDESTDIR/$1" >/dev/null 2>/dev/null + if [ -f "$INSTDESTDIR/${1}.bak" ]; then + writelog "ERROR" "${FUNCNAME[0]} - ERROR: Back-up DLL name '${1}.bak' already exists -- This is probably a very bad thing!" fi + + mv "$INSTDESTDIR/$1" "$INSTDESTDIR/${1}.bak" 2>/dev/null + cp "$RESHADESRCDIR/$RSVERS/$2" "$INSTDESTDIR/$1" >/dev/null 2>/dev/null } if [ ! -f "$INSTDESTDIR/$1" ] || [ "$1" == "F" ]; then @@ -8759,8 +8751,6 @@ function installRSdll { # Check for ReShade DLL name conflicts if [ -f "$INSTDESTDIR/$1" ] && [ -f "$INSTDESTDIR/$RSTXT" ] && ! grep -qw "$1" "$INSTDESTDIR/$RSTXT"; then RSDLLNAMECONFLICTFOUND=1 - elif [ -f "$INSTDESTDIR/$1" ] && [ -f "$INSTDESTDIR/$RSTXT" ] && [ "$USESPECIALK" -eq 1 ] && [ "$USERESHSPEKPLUGIN" -eq 0 ] && [ -f "$INSTDESTDIR/$SPEKENA" ]; then - RSDLLNAMECONFLICTFOUND=1 fi if [ "$RESHADEUPDATE" -eq 0 ]; then @@ -8864,15 +8854,32 @@ function installReshade { # # Only install ReShade "normally" if (ReShade is on) or (if ReShade+SpecialK are on and ReShade SpecialK Plugin is disabled) if [[ "$USERESHADE" -eq 1 || ( "$USERESHADE" -eq 1 && "$USESPECIALK" -eq 1 && "$USERESHSPEKPLUGIN" -eq 0 ) ]]; then - #d3d47 - Required for ReShade - # NOTE 25/08/23: *Is* it still required? - installd3d47dll "$D3D47_32" "$RSD3D47DLL" + # Check to make sure none of our ReShade names conflict with SpecialK -- This will abort install, and is the only place we need to abort install + if [ "$USESPECIALK" -eq 1 ] && [ "$USERESHSPEKPLUGIN" -eq 0 ]; then + for CUSTRSDLL in "${RSDLLNAMEARR[@]}"; do + if [[ "$SPEKRSCHECKDLL" == "$SPEKREALDLLNAME" ]]; then + writelog "ERROR" "${FUNCNAME[0]} - ReShade is enabled and the chosen ReShade DLL name conflicts with the SpecialK DLL name -- Not installing" + notiShow "$( strFix "$NOTY_SPEKRESHDLLCONFLICT" "$RESH" "$SPEK" )" + + # Remove ReShade INI + if [ -f "$INSTDESTDIR/$RSINI" ]; then + rm "$INSTDESTDIR/$RSINI" + fi + + return + fi + done + fi # actual ReShade DLL name (either d3d9/d3d11/dxgi, or a custom user selected name) for CUSTRSDLL in "${RSDLLNAMEARR[@]}"; do installRSdll "$CUSTRSDLL" "0" "$RSARCHDLL" done + #d3d47 - Required for ReShade + # NOTE 25/08/23: *Is* it still required? + installd3d47dll "$D3D47_32" "$RSD3D47DLL" + # Rewrite the ReShade TXT file to ensure it only has our installed ReShade DLLs if [ -f "$RSTXT" ]; then rm "$RSTXT" @@ -8885,7 +8892,8 @@ function installReshade { appendToRSTXT "$CUSTRSDLL" done else - if [ "$USERESHADE" -eq 1 ] && [ "$USESPECIALK" -eq 1 ] && [ ]; then + if [ "$USERESHADE" -eq 1 ] && [ "$USESPECIALK" -eq 1 ]; then + # End here, as ReShade Installation code will be handled by SpecialK writelog "SKIP" "${FUNCNAME[0]} - USERESHADE and USESPECIALK are enabled together, and ReShade is being used as a Plugin, skipping custom ReShade DLL name as SpecialK needs specific ReShade DLL names" fi fi @@ -8983,27 +8991,6 @@ function checkReshade { fi if [ "$USERESHADE" -eq 1 ]; then - if [ -f "$FRSINI" ]; then - if grep -q "EffectSearchPaths=.\$RSSUB\Shaders" "$FRSINI"; then - writelog "SKIP" "${FUNCNAME[0]} - Already have '$FRSINI' with default paths pointing to '$RSSUB'" - else - writelog "SKIP" "${FUNCNAME[0]} - Found a '$FRSINI' without default paths pointing to '$RSSUB' - not touching it" - fi - else - if [ -f "$FRSOINI" ] && grep -q "EffectSearchPaths=.*$RSSUB.*Shaders" "$FRSOINI"; then - writelog "INFO" "${FUNCNAME[0]} - Re-enabling previously disabled '$FRSOINI'" - mv "$FRSOINI" "$FRSINI" - else - writelog "INFO" "${FUNCNAME[0]} - Creating initial '$FRSINI' with default paths pointing to '$RSSUB'" - { - echo "[GENERAL]" - echo "EffectSearchPaths=.\\$RSSUB\Shaders" - echo "TextureSearchPaths=.\\$RSSUB\Textures" - echo "PreprocessorDefinitions=RESHADE_DEPTH_LINEARIZATION_FAR_PLANE=1000.0,RESHADE_DEPTH_INPUT_IS_UPSIDE_DOWN=0,RESHADE_DEPTH_INPUT_IS_REVERSED=1,RESHADE_DEPTH_INPUT_IS_LOGARITHMIC=0" - } > "$FRSINI" - fi - fi - # EXPERIMENTALLY RE-ENABLED # NOTE that this has no ReShade updating or version override checks, so it is missing many features that regular ReShade has! if [ "$USESPECIALK" -eq 1 ] && [ "$USERESHSPEKPLUGIN" -eq 1 ]; then @@ -9266,7 +9253,6 @@ function useSpecialK { SPEKSRC="$1" SPEKDLLCONFLICTFOUND=0 SHOULDINSTALLSPEK=1 - SPEKDSTDIR="$( dirname "$SPEKDST" )" if [ "$USERESHADE" -eq 1 ] && [ -f "$SPEKDDIR/$RSTXT" ] && [ "$USERESHSPEKPLUGIN" -eq 0 ]; then ## ReShade is already installed and in use, and ReShade+SpecialK have selected DLL names conflict From b0c96134526b434621efa5fc9e712bd40003bc42 Mon Sep 17 00:00:00 2001 From: Eamonn Rea Date: Mon, 25 Sep 2023 19:44:59 +0100 Subject: [PATCH 10/19] more changes for specialk+reshade --- steamtinkerlaunch | 40 +++++++++++++++++++++++++++------------- 1 file changed, 27 insertions(+), 13 deletions(-) diff --git a/steamtinkerlaunch b/steamtinkerlaunch index 5bf984ee..397d5dd3 100755 --- a/steamtinkerlaunch +++ b/steamtinkerlaunch @@ -6,7 +6,7 @@ PREFIX="/usr" PROGNAME="SteamTinkerLaunch" NICEPROGNAME="Steam Tinker Launch" -PROGVERS="v14.0.20230926-1 (toggle-reshade-spek-plugin)" +PROGVERS="v14.0.20230926-2 (toggle-reshade-spek-plugin)" PROGCMD="${0##*/}" PROGINTERNALPROTNAME="Proton-stl" SHOSTL="stl" @@ -8726,8 +8726,6 @@ function installRSdll { # Manage creating backup if untracked DLL with our selected ReShade DLL name already exists at location # This function could be changed in future to take the path as a parameter as well, but that was not important at time of writing function manageDuplicateRSDLL { - writelog "INFO" "${FUNCNAME[0]} - SPEKENA is '$SPEKENA'" - writelog "WARN" "${FUNCNAME[0]} - DLL with name '$1' found in game dir '$INSTDESTDIR' but is not tracked by us - This is possibly a game/mod DLL" writelog "WARN" "${FUNCNAME[0]} - Backing up DLL at '$INSTDESTDIR/$1' to '$INSTDESTDIR/${1}.bak' and moving our ReShade DLL anyway" @@ -8856,16 +8854,13 @@ function installReshade { if [[ "$USERESHADE" -eq 1 || ( "$USERESHADE" -eq 1 && "$USESPECIALK" -eq 1 && "$USERESHSPEKPLUGIN" -eq 0 ) ]]; then # Check to make sure none of our ReShade names conflict with SpecialK -- This will abort install, and is the only place we need to abort install if [ "$USESPECIALK" -eq 1 ] && [ "$USERESHSPEKPLUGIN" -eq 0 ]; then + getSpecialKGameRenderApi + SPEKREALDLLNAME="$( basename "$SPEKDST" )" for CUSTRSDLL in "${RSDLLNAMEARR[@]}"; do - if [[ "$SPEKRSCHECKDLL" == "$SPEKREALDLLNAME" ]]; then + if [[ "$CUSTRSDLL" = "$SPEKREALDLLNAME" ]]; then writelog "ERROR" "${FUNCNAME[0]} - ReShade is enabled and the chosen ReShade DLL name conflicts with the SpecialK DLL name -- Not installing" notiShow "$( strFix "$NOTY_SPEKRESHDLLCONFLICT" "$RESH" "$SPEK" )" - # Remove ReShade INI - if [ -f "$INSTDESTDIR/$RSINI" ]; then - rm "$INSTDESTDIR/$RSINI" - fi - return fi done @@ -8878,7 +8873,7 @@ function installReshade { #d3d47 - Required for ReShade # NOTE 25/08/23: *Is* it still required? - installd3d47dll "$D3D47_32" "$RSD3D47DLL" + # installd3d47dll "$D3D47_32" "$RSD3D47DLL" # Rewrite the ReShade TXT file to ensure it only has our installed ReShade DLLs if [ -f "$RSTXT" ]; then @@ -8886,7 +8881,7 @@ function installReshade { fi # Add d3dcompiler_47 and custom ReShade DLL names, removing any non-ReShade DLLs (ensures previously entered DLL names get removed and not incorrectly tracked as ReShade DLLs) - appendToRSTXT "$D3D47" + # appendToRSTXT "$D3D47" for CUSTRSDLL in "${RSDLLNAMEARR[@]}"; do writelog "INFO" "${FUNCNAME[0]} - Writing '$CUSTRSDLL' to '$RSTXT'" appendToRSTXT "$CUSTRSDLL" @@ -8911,6 +8906,25 @@ function installReshade { fi } +# Remove ReShade files (i.e. to replace with SpecialK) +# Use later +function removeReShadeInstallation { + while read -r RSDLLREMOVEFILE; do + RSDLLREMOVEPATH="${INSTDESTDIR}/$RSDLLREMOVEFILE" + if [ -f "$RSDLLREMOVEPATH" ]; then + rm "$RSDLLREMOVEPATH" + fi + done < "$INSTDESTDIR/$RSTXT" + + if [ -f "$INSTDESTDIR/$RSINI" ]; then + rm "$INSTDESTDIR/$RSINI" + fi + + if [ -f "$INSTDESTDIR/$RSTXT" ]; then + rm "$INSTDESTDIR/$RSTXT" + fi +} + function installDepth3DReshade { SHADERPOOL="depth3d" @@ -9025,8 +9039,8 @@ function checkReshade { installReshade F fi - writelog "INFO" "${FUNCNAME[0]} - Setting WINEDLLOVERRIDES for ${RESH}: dxgi=n,b;d3d9=n,b;${D3D47//.dll}=n,b;opengl32=n,b" - export WINEDLLOVERRIDES="$WINEDLLOVERRIDES;dxgi=n,b;d3d9=n,b;${D3D47//.dll}=n,b;opengl32=n,b" + writelog "INFO" "${FUNCNAME[0]} - Setting WINEDLLOVERRIDES for ${RESH}: dxgi=n,b;d3d9=n,b;${D3D47//.dll}=n,b;d3d11=n,b;opengl32=n,b" + export WINEDLLOVERRIDES="$WINEDLLOVERRIDES;dxgi=n,b;d3d9=n,b;${D3D47//.dll}=n,b;d3d11=n,b;opengl32=n,b" fi else if [ -f "$FRSINI" ]; then From 9e2cd81e62488803ed0127b2dfd7bc83fe528d5e Mon Sep 17 00:00:00 2001 From: Eamonn Rea Date: Tue, 26 Sep 2023 00:12:05 +0100 Subject: [PATCH 11/19] fix incorrect reshade override logic --- steamtinkerlaunch | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/steamtinkerlaunch b/steamtinkerlaunch index 397d5dd3..fcf79def 100755 --- a/steamtinkerlaunch +++ b/steamtinkerlaunch @@ -6,7 +6,7 @@ PREFIX="/usr" PROGNAME="SteamTinkerLaunch" NICEPROGNAME="Steam Tinker Launch" -PROGVERS="v14.0.20230926-2 (toggle-reshade-spek-plugin)" +PROGVERS="v14.0.20230926-4 (toggle-reshade-spek-plugin)" PROGCMD="${0##*/}" PROGINTERNALPROTNAME="Proton-stl" SHOSTL="stl" @@ -8136,7 +8136,7 @@ function overrideReShadeVersion { else writelog "SKIP" "${FUNCNAME[0]} - '$RESH' Override version and '$RESH' global version match - Not overriding" fi - elif [ "$USESPECIALK" -eq 1 ] && [ "$USERESHADE" -eq 1 ] && [ "$USERSSPEKVERS" -eq 1 ] && [ "$USERESHSPEKPLUGIN" -eq 0 ]; then # Global Menu ReShade version to load when ReShade is loaded via SpecialK + elif [ "$USESPECIALK" -eq 1 ] && [ "$USERESHADE" -eq 1 ] && [ "$USERSSPEKVERS" -eq 1 ] && [ "$USERESHSPEKPLUGIN" -eq 1 ]; then # Global Menu ReShade version to load when ReShade is loaded via SpecialK writelog "INFO" "${FUNCNAME[0]} - Overriding global '$RESH' version '$RSVERS' with SpecialK ReShade version override '$RSSPEKVERS' as it is enabled and ReShade+SpecialK are enabled together" RSVERS="$RSSPEKVERS" else From cc46e853b7d33e951150549432324186e0b32fd0 Mon Sep 17 00:00:00 2001 From: Eamonn Rea Date: Tue, 26 Sep 2023 00:49:52 +0100 Subject: [PATCH 12/19] check conflict file exists before aborting install --- steamtinkerlaunch | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/steamtinkerlaunch b/steamtinkerlaunch index fcf79def..28e2ec20 100755 --- a/steamtinkerlaunch +++ b/steamtinkerlaunch @@ -8857,7 +8857,7 @@ function installReshade { getSpecialKGameRenderApi SPEKREALDLLNAME="$( basename "$SPEKDST" )" for CUSTRSDLL in "${RSDLLNAMEARR[@]}"; do - if [[ "$CUSTRSDLL" = "$SPEKREALDLLNAME" ]]; then + if [[ "$CUSTRSDLL" = "$SPEKREALDLLNAME" ]] && [ -f "$CUSTRSDLL" ]; then writelog "ERROR" "${FUNCNAME[0]} - ReShade is enabled and the chosen ReShade DLL name conflicts with the SpecialK DLL name -- Not installing" notiShow "$( strFix "$NOTY_SPEKRESHDLLCONFLICT" "$RESH" "$SPEK" )" @@ -8871,6 +8871,9 @@ function installReshade { installRSdll "$CUSTRSDLL" "0" "$RSARCHDLL" done + ## TODO add notifier for ReShade install, like we have for SpecialK + ## TODO Improve SpecialK and ReShade notifier strings + #d3d47 - Required for ReShade # NOTE 25/08/23: *Is* it still required? # installd3d47dll "$D3D47_32" "$RSD3D47DLL" @@ -9277,7 +9280,7 @@ function useSpecialK { SPEKREALDLLNAME="$( basename "$SPEKDST" )" # Makes sure we don't compare against 'auto' for SPEKRSCHECKDLL in "${SPEKRSDLLNAMECHECKARR[@]}"; do - if [[ "$SPEKRSCHECKDLL" == "$SPEKREALDLLNAME" ]]; then + if [[ "$SPEKRSCHECKDLL" == "$SPEKREALDLLNAME" ]] && [ -f "$SPEKREALDLLNAME" ]; then writelog "ERROR" "${FUNCNAME[0]} - ReShade is enabled and the chosen ReShade DLL name conflicts with the SpecialK DLL name -- Not installing" notiShow "$( strFix "$NOTY_SPEKRESHDLLCONFLICT" "$RESH" "$SPEK" )" SPEKDLLCONFLICTFOUND=1 From 26a2ba6627f4aa9004740df2de1b341f85f068cb Mon Sep 17 00:00:00 2001 From: Eamonn Rea Date: Tue, 26 Sep 2023 00:51:59 +0100 Subject: [PATCH 13/19] re-add reshade ini generation that went missing --- steamtinkerlaunch | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/steamtinkerlaunch b/steamtinkerlaunch index 28e2ec20..01c2467b 100755 --- a/steamtinkerlaunch +++ b/steamtinkerlaunch @@ -9008,6 +9008,27 @@ function checkReshade { fi if [ "$USERESHADE" -eq 1 ]; then + if [ -f "$FRSINI" ]; then + if grep -q "EffectSearchPaths=.\$RSSUB\Shaders" "$FRSINI"; then + writelog "SKIP" "${FUNCNAME[0]} - Already have '$FRSINI' with default paths pointing to '$RSSUB'" + else + writelog "SKIP" "${FUNCNAME[0]} - Found a '$FRSINI' without default paths pointing to '$RSSUB' - not touching it" + fi + else + if [ -f "$FRSOINI" ] && grep -q "EffectSearchPaths=.*$RSSUB.*Shaders" "$FRSOINI"; then + writelog "INFO" "${FUNCNAME[0]} - Re-enabling previously disabled '$FRSOINI'" + mv "$FRSOINI" "$FRSINI" + else + writelog "INFO" "${FUNCNAME[0]} - Creating initial '$FRSINI' with default paths pointing to '$RSSUB'" + { + echo "[GENERAL]" + echo "EffectSearchPaths=.\\$RSSUB\Shaders" + echo "TextureSearchPaths=.\\$RSSUB\Textures" + echo "PreprocessorDefinitions=RESHADE_DEPTH_LINEARIZATION_FAR_PLANE=1000.0,RESHADE_DEPTH_INPUT_IS_UPSIDE_DOWN=0,RESHADE_DEPTH_INPUT_IS_REVERSED=1,RESHADE_DEPTH_INPUT_IS_LOGARITHMIC=0" + } > "$FRSINI" + fi + fi + # EXPERIMENTALLY RE-ENABLED # NOTE that this has no ReShade updating or version override checks, so it is missing many features that regular ReShade has! if [ "$USESPECIALK" -eq 1 ] && [ "$USERESHSPEKPLUGIN" -eq 1 ]; then From 51ccf2f7731d72da164714c8ef1be528fe170c5a Mon Sep 17 00:00:00 2001 From: Eamonn Rea Date: Tue, 26 Sep 2023 00:52:13 +0100 Subject: [PATCH 14/19] version increase --- steamtinkerlaunch | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/steamtinkerlaunch b/steamtinkerlaunch index 01c2467b..e7e29a2c 100755 --- a/steamtinkerlaunch +++ b/steamtinkerlaunch @@ -6,7 +6,7 @@ PREFIX="/usr" PROGNAME="SteamTinkerLaunch" NICEPROGNAME="Steam Tinker Launch" -PROGVERS="v14.0.20230926-4 (toggle-reshade-spek-plugin)" +PROGVERS="v14.0.20230926-7 (toggle-reshade-spek-plugin)" PROGCMD="${0##*/}" PROGINTERNALPROTNAME="Proton-stl" SHOSTL="stl" From 7f16fed05d9b440ffab7ca84b50a2ceec0c71a8f Mon Sep 17 00:00:00 2001 From: Eamonn Rea Date: Tue, 26 Sep 2023 01:10:27 +0100 Subject: [PATCH 15/19] fix reshade specialk priority order, improve logging and notifier --- lang/english.txt | 2 +- steamtinkerlaunch | 15 +++++++++------ 2 files changed, 10 insertions(+), 7 deletions(-) diff --git a/lang/english.txt b/lang/english.txt index 921da531..c66a226f 100644 --- a/lang/english.txt +++ b/lang/english.txt @@ -1222,7 +1222,7 @@ GUI_PERGAMEWINEDPI="Wine DPI Scaling" DESC_PERGAMEWINEDPI="set a Wine DPI value for this game only, this will override any global Wine DPI value - Default is '96' as set by Wine" GUI_SPEKDLLNAME="SpecialK DLL Name" DESC_SPEKDLLNAME="Choose the name for the SpecialK DLL, default is 'auto' and chosen based on game renderer (if known) - Override to set specific DLL name for specific rendering backend or to avoid DLL name conflicts" -NOTY_SPEKRESHDLLCONFLICT="XXX is enabled and the chosen XXX DLL name conflicts with the YYY DLL nme -- Not installing" +NOTY_SPEKRESHDLLCONFLICT="XXX is enabled and the chosen YYY DLL name conflicts with the XXX DLL name -- Not installing YYY" NOTY_SPEKDLLCONFLICT="SpecialK DLL name has unresolvable with existing DLL in game files -- Not installing" GUI_GSRSEP="ReShade Effects Path" DESC_GSRSEP="select the ReShade Effect for GameScope to load" diff --git a/steamtinkerlaunch b/steamtinkerlaunch index e7e29a2c..2d68f899 100755 --- a/steamtinkerlaunch +++ b/steamtinkerlaunch @@ -6,7 +6,7 @@ PREFIX="/usr" PROGNAME="SteamTinkerLaunch" NICEPROGNAME="Steam Tinker Launch" -PROGVERS="v14.0.20230926-7 (toggle-reshade-spek-plugin)" +PROGVERS="v14.0.20230926-9 (toggle-reshade-spek-plugin)" PROGCMD="${0##*/}" PROGINTERNALPROTNAME="Proton-stl" SHOSTL="stl" @@ -8857,9 +8857,12 @@ function installReshade { getSpecialKGameRenderApi SPEKREALDLLNAME="$( basename "$SPEKDST" )" for CUSTRSDLL in "${RSDLLNAMEARR[@]}"; do - if [[ "$CUSTRSDLL" = "$SPEKREALDLLNAME" ]] && [ -f "$CUSTRSDLL" ]; then - writelog "ERROR" "${FUNCNAME[0]} - ReShade is enabled and the chosen ReShade DLL name conflicts with the SpecialK DLL name -- Not installing" - notiShow "$( strFix "$NOTY_SPEKRESHDLLCONFLICT" "$RESH" "$SPEK" )" + if [[ "$CUSTRSDLL" = "$SPEKREALDLLNAME" ]] && [ -f "$SPEKREALDLLNAME" ] && [ ! -f "$INSTDESTDIR/$RSTXT" ]; then + # If our ReShade DLL matches the chosen SpecialK DLL name, if the SpecialK DLL is already in the game files, and if it's not a ReShade DLL (i.e. RSTXT doesn't exist), assume we have a SpecialK conflict + # If ReShade+SpecialK are installed fresh at the same time, ReShade is installed early, and this logic prevents logging that ReShade won't be installed because it conflicts with SpecialK + # Which is incorrect because it's detecting our installed ReShade DLLs as SpecialK DLLs + writelog "ERROR" "${FUNCNAME[0]} - SpecialK is enabled and the chosen ReShade DLL name conflicts with the SpecialK DLL name -- Not installing ReShade" + notiShow "$( strFix "$NOTY_SPEKRESHDLLCONFLICT" "$SPEK" "$RESH" )" return fi @@ -9301,8 +9304,8 @@ function useSpecialK { SPEKREALDLLNAME="$( basename "$SPEKDST" )" # Makes sure we don't compare against 'auto' for SPEKRSCHECKDLL in "${SPEKRSDLLNAMECHECKARR[@]}"; do - if [[ "$SPEKRSCHECKDLL" == "$SPEKREALDLLNAME" ]] && [ -f "$SPEKREALDLLNAME" ]; then - writelog "ERROR" "${FUNCNAME[0]} - ReShade is enabled and the chosen ReShade DLL name conflicts with the SpecialK DLL name -- Not installing" + if [[ "$SPEKRSCHECKDLL" == "$SPEKREALDLLNAME" ]] && [ -f "$SPEKRSCHECKDLL" ]; then + writelog "ERROR" "${FUNCNAME[0]} - ReShade is enabled and the chosen SpecialK DLL name conflicts with the ReShade DLL name -- Not installing SpecialK" notiShow "$( strFix "$NOTY_SPEKRESHDLLCONFLICT" "$RESH" "$SPEK" )" SPEKDLLCONFLICTFOUND=1 break From 95fc8573bdac4e8837dcb53ec428a8505f510667 Mon Sep 17 00:00:00 2001 From: Eamonn Rea Date: Tue, 26 Sep 2023 01:19:08 +0100 Subject: [PATCH 16/19] fix reshade specialk plugin logic breakage --- steamtinkerlaunch | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/steamtinkerlaunch b/steamtinkerlaunch index 2d68f899..dedc93fe 100755 --- a/steamtinkerlaunch +++ b/steamtinkerlaunch @@ -6,7 +6,7 @@ PREFIX="/usr" PROGNAME="SteamTinkerLaunch" NICEPROGNAME="Steam Tinker Launch" -PROGVERS="v14.0.20230926-9 (toggle-reshade-spek-plugin)" +PROGVERS="v14.0.20230926-11 (toggle-reshade-spek-plugin)" PROGCMD="${0##*/}" PROGINTERNALPROTNAME="Proton-stl" SHOSTL="stl" @@ -8850,8 +8850,8 @@ function installReshade { # Common conditional to install either 32bit/64bit ReShade DLLs, since process is same, just different DLL names # USESPECIALK check needed because we can't use custom DLL names when using SpecialK -- It expects the raw ReShade32/ReShade64 DLL names # - # Only install ReShade "normally" if (ReShade is on) or (if ReShade+SpecialK are on and ReShade SpecialK Plugin is disabled) - if [[ "$USERESHADE" -eq 1 || ( "$USERESHADE" -eq 1 && "$USESPECIALK" -eq 1 && "$USERESHSPEKPLUGIN" -eq 0 ) ]]; then + # Only install ReShade "normally" if (ReShade is on and SpecialK is off) or (if ReShade+SpecialK are on and ReShade SpecialK Plugin is disabled) + if [[ ( "$USERESHADE" -eq 1 && "$USESPECIALK" -eq 0 ) || ( "$USERESHADE" -eq 1 && "$USESPECIALK" -eq 1 && "$USERESHSPEKPLUGIN" -eq 0 ) ]]; then # Check to make sure none of our ReShade names conflict with SpecialK -- This will abort install, and is the only place we need to abort install if [ "$USESPECIALK" -eq 1 ] && [ "$USERESHSPEKPLUGIN" -eq 0 ]; then getSpecialKGameRenderApi From 6a786a08a2880abdc2a4d51c9b1eddb9896db861 Mon Sep 17 00:00:00 2001 From: Eamonn Rea Date: Tue, 26 Sep 2023 01:25:47 +0100 Subject: [PATCH 17/19] add reshade notifier --- lang/english.txt | 1 + steamtinkerlaunch | 6 +++--- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/lang/english.txt b/lang/english.txt index c66a226f..175ee0e7 100644 --- a/lang/english.txt +++ b/lang/english.txt @@ -1234,3 +1234,4 @@ GUI_RSSPEKVERS="SpecialK ReShade Version Override" DESC_RSSPEKVERS="Version of ReShade to use when installing ReShade as a SpecialK Plugin" GUI_USERESHSPEKPLUGIN="Load ReShade as SpecialK Plugin" DESC_USERESHSPEKPLUGIN="copy ReShade DLLs without renaming them and let SpecialK manage loading them - If disabled, ReShade will be loaded by the game instead of SpecialK and will IGNORE any Global SpecialK ReShade Override Version, which may be more desirable in some cases" +NOTY_RESHADEINSTALLING="Installing ReShade..." \ No newline at end of file diff --git a/steamtinkerlaunch b/steamtinkerlaunch index dedc93fe..1e91007d 100755 --- a/steamtinkerlaunch +++ b/steamtinkerlaunch @@ -8834,12 +8834,12 @@ function installReshade { if [ "$(getArch "$CHARCH")" == "32" ]; then #32bit: writelog "INFO" "${FUNCNAME[0]} - Installing 32bit ${RESH} as '$CHARCH' is 32bit" - RSD3D47DLL="$D3D47_32" + # RSD3D47DLL="$D3D47_32" RSARCHDLL="$RS_32" elif [ "$(getArch "$CHARCH")" == "64" ]; then #64bit: writelog "INFO" "${FUNCNAME[0]} - Installing 64bit ${RESH} as '$CHARCH' is 64bit" - RSD3D47DLL="$D3D47_64" + # RSD3D47DLL="$D3D47_64" RSARCHDLL="$RS_64" else #feelsbad.jpg: @@ -8870,12 +8870,12 @@ function installReshade { fi # actual ReShade DLL name (either d3d9/d3d11/dxgi, or a custom user selected name) + notiShow "$NOTY_RESHADEINSTALLING" for CUSTRSDLL in "${RSDLLNAMEARR[@]}"; do installRSdll "$CUSTRSDLL" "0" "$RSARCHDLL" done ## TODO add notifier for ReShade install, like we have for SpecialK - ## TODO Improve SpecialK and ReShade notifier strings #d3d47 - Required for ReShade # NOTE 25/08/23: *Is* it still required? From f55a2d1873679fcc2559b40b016628f20faef4c8 Mon Sep 17 00:00:00 2001 From: Eamonn Rea Date: Tue, 26 Sep 2023 01:27:28 +0100 Subject: [PATCH 18/19] update langfiles --- lang/chinese.txt | 5 ++++- lang/dutch.txt | 5 ++++- lang/english.txt | 2 +- lang/englishUK.txt | 5 ++++- lang/french.txt | 5 ++++- lang/german.txt | 5 ++++- lang/italian.txt | 5 ++++- lang/polish.txt | 5 ++++- lang/russian.txt | 5 ++++- 9 files changed, 33 insertions(+), 9 deletions(-) diff --git a/lang/chinese.txt b/lang/chinese.txt index c346b820..4a58a28c 100644 --- a/lang/chinese.txt +++ b/lang/chinese.txt @@ -1222,7 +1222,7 @@ GUI_PERGAMEWINEDPI="Wine DPI Scaling" DESC_PERGAMEWINEDPI="set a Wine DPI value for this game only, this will override any global Wine DPI value - Default is '96' as set by Wine" GUI_SPEKDLLNAME="SpecialK DLL Name" DESC_SPEKDLLNAME="Choose the name for the SpecialK DLL, default is 'auto' and chosen based on game renderer (if known) - Override to set specific DLL name for specific rendering backend or to avoid DLL name conflicts" -NOTY_SPEKRESHDLLCONFLICT="XXX is enabled and the chosen XXX DLL name conflicts with the YYY DLL nme -- Not installing" +NOTY_SPEKRESHDLLCONFLICT="XXX is enabled and the chosen YYY DLL name conflicts with the XXX DLL name -- Not installing YYY" NOTY_SPEKDLLCONFLICT="SpecialK DLL name has unresolvable with existing DLL in game files -- Not installing" GUI_GSRSEP="ReShade Effects Path" DESC_GSRSEP="select the ReShade Effect for GameScope to load" @@ -1232,3 +1232,6 @@ GUI_USERSSPEKVERS="enable SpecialK ReShade Version Override" DESC_USERSSPEKVERS="force the use of a specific, potentailly more compatible ReShade version when using SpecialK to load ReShade into a game" GUI_RSSPEKVERS="SpecialK ReShade Version Override" DESC_RSSPEKVERS="Version of ReShade to use when installing ReShade as a SpecialK Plugin" +GUI_USERESHSPEKPLUGIN="Load ReShade as SpecialK Plugin" +DESC_USERESHSPEKPLUGIN="copy ReShade DLLs without renaming them and let SpecialK manage loading them - If disabled, ReShade will be loaded by the game instead of SpecialK and will IGNORE any Global SpecialK ReShade Override Version, which may be more desirable in some cases" +NOTY_RESHADEINSTALLING="Installing ReShade..." diff --git a/lang/dutch.txt b/lang/dutch.txt index 348c6f9b..2669373a 100644 --- a/lang/dutch.txt +++ b/lang/dutch.txt @@ -1221,7 +1221,7 @@ GUI_PERGAMEWINEDPI="Wine DPI Scaling" DESC_PERGAMEWINEDPI="set a Wine DPI value for this game only, this will override any global Wine DPI value - Default is '96' as set by Wine" GUI_SPEKDLLNAME="SpecialK DLL Name" DESC_SPEKDLLNAME="Choose the name for the SpecialK DLL, default is 'auto' and chosen based on game renderer (if known) - Override to set specific DLL name for specific rendering backend or to avoid DLL name conflicts" -NOTY_SPEKRESHDLLCONFLICT="XXX is enabled and the chosen XXX DLL name conflicts with the YYY DLL nme -- Not installing" +NOTY_SPEKRESHDLLCONFLICT="XXX is enabled and the chosen YYY DLL name conflicts with the XXX DLL name -- Not installing YYY" NOTY_SPEKDLLCONFLICT="SpecialK DLL name has unresolvable with existing DLL in game files -- Not installing" GUI_GSRSEP="ReShade Effects Path" DESC_GSRSEP="select the ReShade Effect for GameScope to load" @@ -1231,3 +1231,6 @@ GUI_USERSSPEKVERS="enable SpecialK ReShade Version Override" DESC_USERSSPEKVERS="force the use of a specific, potentailly more compatible ReShade version when using SpecialK to load ReShade into a game" GUI_RSSPEKVERS="SpecialK ReShade Version Override" DESC_RSSPEKVERS="Version of ReShade to use when installing ReShade as a SpecialK Plugin" +GUI_USERESHSPEKPLUGIN="Load ReShade as SpecialK Plugin" +DESC_USERESHSPEKPLUGIN="copy ReShade DLLs without renaming them and let SpecialK manage loading them - If disabled, ReShade will be loaded by the game instead of SpecialK and will IGNORE any Global SpecialK ReShade Override Version, which may be more desirable in some cases" +NOTY_RESHADEINSTALLING="Installing ReShade..." diff --git a/lang/english.txt b/lang/english.txt index 175ee0e7..96fdc1ec 100644 --- a/lang/english.txt +++ b/lang/english.txt @@ -1234,4 +1234,4 @@ GUI_RSSPEKVERS="SpecialK ReShade Version Override" DESC_RSSPEKVERS="Version of ReShade to use when installing ReShade as a SpecialK Plugin" GUI_USERESHSPEKPLUGIN="Load ReShade as SpecialK Plugin" DESC_USERESHSPEKPLUGIN="copy ReShade DLLs without renaming them and let SpecialK manage loading them - If disabled, ReShade will be loaded by the game instead of SpecialK and will IGNORE any Global SpecialK ReShade Override Version, which may be more desirable in some cases" -NOTY_RESHADEINSTALLING="Installing ReShade..." \ No newline at end of file +NOTY_RESHADEINSTALLING="Installing ReShade..." diff --git a/lang/englishUK.txt b/lang/englishUK.txt index c3b6e087..38a988e3 100644 --- a/lang/englishUK.txt +++ b/lang/englishUK.txt @@ -1221,7 +1221,7 @@ GUI_PERGAMEWINEDPI="Wine DPI Scaling" DESC_PERGAMEWINEDPI="set a Wine DPI value for this game only, this will override any global Wine DPI value - Default is '96' as set by Wine" GUI_SPEKDLLNAME="SpecialK DLL Name" DESC_SPEKDLLNAME="Choose the name for the SpecialK DLL, default is 'auto' and chosen based on game renderer (if known) - Override to set specific DLL name for specific rendering backend or to avoid DLL name conflicts" -NOTY_SPEKRESHDLLCONFLICT="XXX is enabled and the chosen XXX DLL name conflicts with the YYY DLL nme -- Not installing" +NOTY_SPEKRESHDLLCONFLICT="XXX is enabled and the chosen YYY DLL name conflicts with the XXX DLL name -- Not installing YYY" NOTY_SPEKDLLCONFLICT="SpecialK DLL name has unresolvable with existing DLL in game files -- Not installing" GUI_GSRSEP="ReShade Effects Path" DESC_GSRSEP="select the ReShade Effect for GameScope to load" @@ -1231,3 +1231,6 @@ GUI_USERSSPEKVERS="enable SpecialK ReShade Version Override" DESC_USERSSPEKVERS="force the use of a specific, potentailly more compatible ReShade version when using SpecialK to load ReShade into a game" GUI_RSSPEKVERS="SpecialK ReShade Version Override" DESC_RSSPEKVERS="Version of ReShade to use when installing ReShade as a SpecialK Plugin" +GUI_USERESHSPEKPLUGIN="Load ReShade as SpecialK Plugin" +DESC_USERESHSPEKPLUGIN="copy ReShade DLLs without renaming them and let SpecialK manage loading them - If disabled, ReShade will be loaded by the game instead of SpecialK and will IGNORE any Global SpecialK ReShade Override Version, which may be more desirable in some cases" +NOTY_RESHADEINSTALLING="Installing ReShade..." diff --git a/lang/french.txt b/lang/french.txt index 257cc5d8..ac64421b 100644 --- a/lang/french.txt +++ b/lang/french.txt @@ -1220,7 +1220,7 @@ GUI_PERGAMEWINEDPI="Wine DPI Scaling" DESC_PERGAMEWINEDPI="set a Wine DPI value for this game only, this will override any global Wine DPI value - Default is '96' as set by Wine" GUI_SPEKDLLNAME="SpecialK DLL Name" DESC_SPEKDLLNAME="Choose the name for the SpecialK DLL, default is 'auto' and chosen based on game renderer (if known) - Override to set specific DLL name for specific rendering backend or to avoid DLL name conflicts" -NOTY_SPEKRESHDLLCONFLICT="XXX is enabled and the chosen XXX DLL name conflicts with the YYY DLL nme -- Not installing" +NOTY_SPEKRESHDLLCONFLICT="XXX is enabled and the chosen YYY DLL name conflicts with the XXX DLL name -- Not installing YYY" NOTY_SPEKDLLCONFLICT="SpecialK DLL name has unresolvable with existing DLL in game files -- Not installing" GUI_GSRSEP="ReShade Effects Path" DESC_GSRSEP="select the ReShade Effect for GameScope to load" @@ -1230,3 +1230,6 @@ GUI_USERSSPEKVERS="enable SpecialK ReShade Version Override" DESC_USERSSPEKVERS="force the use of a specific, potentailly more compatible ReShade version when using SpecialK to load ReShade into a game" GUI_RSSPEKVERS="SpecialK ReShade Version Override" DESC_RSSPEKVERS="Version of ReShade to use when installing ReShade as a SpecialK Plugin" +GUI_USERESHSPEKPLUGIN="Load ReShade as SpecialK Plugin" +DESC_USERESHSPEKPLUGIN="copy ReShade DLLs without renaming them and let SpecialK manage loading them - If disabled, ReShade will be loaded by the game instead of SpecialK and will IGNORE any Global SpecialK ReShade Override Version, which may be more desirable in some cases" +NOTY_RESHADEINSTALLING="Installing ReShade..." diff --git a/lang/german.txt b/lang/german.txt index 830bacd6..2a6ebcad 100644 --- a/lang/german.txt +++ b/lang/german.txt @@ -1223,7 +1223,7 @@ GUI_PERGAMEWINEDPI="Wine DPI Scaling" DESC_PERGAMEWINEDPI="set a Wine DPI value for this game only, this will override any global Wine DPI value - Default is '96' as set by Wine" GUI_SPEKDLLNAME="SpecialK DLL Name" DESC_SPEKDLLNAME="Choose the name for the SpecialK DLL, default is 'auto' and chosen based on game renderer (if known) - Override to set specific DLL name for specific rendering backend or to avoid DLL name conflicts" -NOTY_SPEKRESHDLLCONFLICT="XXX is enabled and the chosen XXX DLL name conflicts with the YYY DLL nme -- Not installing" +NOTY_SPEKRESHDLLCONFLICT="XXX is enabled and the chosen YYY DLL name conflicts with the XXX DLL name -- Not installing YYY" NOTY_SPEKDLLCONFLICT="SpecialK DLL name has unresolvable with existing DLL in game files -- Not installing" GUI_GSRSEP="ReShade Effects Path" DESC_GSRSEP="select the ReShade Effect for GameScope to load" @@ -1233,3 +1233,6 @@ GUI_USERSSPEKVERS="enable SpecialK ReShade Version Override" DESC_USERSSPEKVERS="force the use of a specific, potentailly more compatible ReShade version when using SpecialK to load ReShade into a game" GUI_RSSPEKVERS="SpecialK ReShade Version Override" DESC_RSSPEKVERS="Version of ReShade to use when installing ReShade as a SpecialK Plugin" +GUI_USERESHSPEKPLUGIN="Load ReShade as SpecialK Plugin" +DESC_USERESHSPEKPLUGIN="copy ReShade DLLs without renaming them and let SpecialK manage loading them - If disabled, ReShade will be loaded by the game instead of SpecialK and will IGNORE any Global SpecialK ReShade Override Version, which may be more desirable in some cases" +NOTY_RESHADEINSTALLING="Installing ReShade..." diff --git a/lang/italian.txt b/lang/italian.txt index 4af04dfb..e2d7d9d7 100644 --- a/lang/italian.txt +++ b/lang/italian.txt @@ -1221,7 +1221,7 @@ GUI_PERGAMEWINEDPI="Wine DPI Scaling" DESC_PERGAMEWINEDPI="set a Wine DPI value for this game only, this will override any global Wine DPI value - Default is '96' as set by Wine" GUI_SPEKDLLNAME="SpecialK DLL Name" DESC_SPEKDLLNAME="Choose the name for the SpecialK DLL, default is 'auto' and chosen based on game renderer (if known) - Override to set specific DLL name for specific rendering backend or to avoid DLL name conflicts" -NOTY_SPEKRESHDLLCONFLICT="XXX is enabled and the chosen XXX DLL name conflicts with the YYY DLL nme -- Not installing" +NOTY_SPEKRESHDLLCONFLICT="XXX is enabled and the chosen YYY DLL name conflicts with the XXX DLL name -- Not installing YYY" NOTY_SPEKDLLCONFLICT="SpecialK DLL name has unresolvable with existing DLL in game files -- Not installing" GUI_GSRSEP="ReShade Effects Path" DESC_GSRSEP="select the ReShade Effect for GameScope to load" @@ -1231,3 +1231,6 @@ GUI_USERSSPEKVERS="enable SpecialK ReShade Version Override" DESC_USERSSPEKVERS="force the use of a specific, potentailly more compatible ReShade version when using SpecialK to load ReShade into a game" GUI_RSSPEKVERS="SpecialK ReShade Version Override" DESC_RSSPEKVERS="Version of ReShade to use when installing ReShade as a SpecialK Plugin" +GUI_USERESHSPEKPLUGIN="Load ReShade as SpecialK Plugin" +DESC_USERESHSPEKPLUGIN="copy ReShade DLLs without renaming them and let SpecialK manage loading them - If disabled, ReShade will be loaded by the game instead of SpecialK and will IGNORE any Global SpecialK ReShade Override Version, which may be more desirable in some cases" +NOTY_RESHADEINSTALLING="Installing ReShade..." diff --git a/lang/polish.txt b/lang/polish.txt index 30b55fb5..4631b9ea 100644 --- a/lang/polish.txt +++ b/lang/polish.txt @@ -1221,7 +1221,7 @@ GUI_PERGAMEWINEDPI="Wine DPI Scaling" DESC_PERGAMEWINEDPI="set a Wine DPI value for this game only, this will override any global Wine DPI value - Default is '96' as set by Wine" GUI_SPEKDLLNAME="SpecialK DLL Name" DESC_SPEKDLLNAME="Choose the name for the SpecialK DLL, default is 'auto' and chosen based on game renderer (if known) - Override to set specific DLL name for specific rendering backend or to avoid DLL name conflicts" -NOTY_SPEKRESHDLLCONFLICT="XXX is enabled and the chosen XXX DLL name conflicts with the YYY DLL nme -- Not installing" +NOTY_SPEKRESHDLLCONFLICT="XXX is enabled and the chosen YYY DLL name conflicts with the XXX DLL name -- Not installing YYY" NOTY_SPEKDLLCONFLICT="SpecialK DLL name has unresolvable with existing DLL in game files -- Not installing" GUI_GSRSEP="ReShade Effects Path" DESC_GSRSEP="select the ReShade Effect for GameScope to load" @@ -1231,3 +1231,6 @@ GUI_USERSSPEKVERS="enable SpecialK ReShade Version Override" DESC_USERSSPEKVERS="force the use of a specific, potentailly more compatible ReShade version when using SpecialK to load ReShade into a game" GUI_RSSPEKVERS="SpecialK ReShade Version Override" DESC_RSSPEKVERS="Version of ReShade to use when installing ReShade as a SpecialK Plugin" +GUI_USERESHSPEKPLUGIN="Load ReShade as SpecialK Plugin" +DESC_USERESHSPEKPLUGIN="copy ReShade DLLs without renaming them and let SpecialK manage loading them - If disabled, ReShade will be loaded by the game instead of SpecialK and will IGNORE any Global SpecialK ReShade Override Version, which may be more desirable in some cases" +NOTY_RESHADEINSTALLING="Installing ReShade..." diff --git a/lang/russian.txt b/lang/russian.txt index 697f8879..983fdcf7 100644 --- a/lang/russian.txt +++ b/lang/russian.txt @@ -1221,7 +1221,7 @@ GUI_PERGAMEWINEDPI="Wine DPI Scaling" DESC_PERGAMEWINEDPI="set a Wine DPI value for this game only, this will override any global Wine DPI value - Default is '96' as set by Wine" GUI_SPEKDLLNAME="SpecialK DLL Name" DESC_SPEKDLLNAME="Choose the name for the SpecialK DLL, default is 'auto' and chosen based on game renderer (if known) - Override to set specific DLL name for specific rendering backend or to avoid DLL name conflicts" -NOTY_SPEKRESHDLLCONFLICT="XXX is enabled and the chosen XXX DLL name conflicts with the YYY DLL nme -- Not installing" +NOTY_SPEKRESHDLLCONFLICT="XXX is enabled and the chosen YYY DLL name conflicts with the XXX DLL name -- Not installing YYY" NOTY_SPEKDLLCONFLICT="SpecialK DLL name has unresolvable with existing DLL in game files -- Not installing" GUI_GSRSEP="ReShade Effects Path" DESC_GSRSEP="select the ReShade Effect for GameScope to load" @@ -1231,3 +1231,6 @@ GUI_USERSSPEKVERS="enable SpecialK ReShade Version Override" DESC_USERSSPEKVERS="force the use of a specific, potentailly more compatible ReShade version when using SpecialK to load ReShade into a game" GUI_RSSPEKVERS="SpecialK ReShade Version Override" DESC_RSSPEKVERS="Version of ReShade to use when installing ReShade as a SpecialK Plugin" +GUI_USERESHSPEKPLUGIN="Load ReShade as SpecialK Plugin" +DESC_USERESHSPEKPLUGIN="copy ReShade DLLs without renaming them and let SpecialK manage loading them - If disabled, ReShade will be loaded by the game instead of SpecialK and will IGNORE any Global SpecialK ReShade Override Version, which may be more desirable in some cases" +NOTY_RESHADEINSTALLING="Installing ReShade..." From f1a64c26b8bc95ced03ac0b6d46c97a828c30121 Mon Sep 17 00:00:00 2001 From: Eamonn Rea Date: Tue, 26 Sep 2023 01:28:36 +0100 Subject: [PATCH 19/19] version bump --- steamtinkerlaunch | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/steamtinkerlaunch b/steamtinkerlaunch index 1e91007d..8dbe4a79 100755 --- a/steamtinkerlaunch +++ b/steamtinkerlaunch @@ -6,7 +6,7 @@ PREFIX="/usr" PROGNAME="SteamTinkerLaunch" NICEPROGNAME="Steam Tinker Launch" -PROGVERS="v14.0.20230926-11 (toggle-reshade-spek-plugin)" +PROGVERS="v14.0.20230926-1" PROGCMD="${0##*/}" PROGINTERNALPROTNAME="Proton-stl" SHOSTL="stl"