From 807b2bc82c9365e5008d3f2d3e524b5a05e12842 Mon Sep 17 00:00:00 2001
From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com>
Date: Sat, 27 Dec 2025 06:00:36 +0000
Subject: [PATCH 1/8] Initial plan
From bd80c398efffb3700b3f9ea79cc1f48ddf005dcc Mon Sep 17 00:00:00 2001
From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com>
Date: Sat, 27 Dec 2025 06:09:23 +0000
Subject: [PATCH 2/8] Update createShaderRepoList to use MediaWiki API and
remove BlueSkyDefender filter
Co-authored-by: zany130 <25832539+zany130@users.noreply.github.com>
---
steamtinkerlaunch | 11 ++++++++---
1 file changed, 8 insertions(+), 3 deletions(-)
diff --git a/steamtinkerlaunch b/steamtinkerlaunch
index 1e14b5aa..3e27963e 100755
--- a/steamtinkerlaunch
+++ b/steamtinkerlaunch
@@ -9154,12 +9154,17 @@ function SHADSRC {
}
function createShaderRepoList {
- SHADREPOURL="https://www.pcgamingwiki.com/wiki/${RESH}"
+ SHADREPOURL="https://www.pcgamingwiki.com/w/api.php?action=parse&page=${RESH}&format=json&prop=text"
MAXAGE=1440
if [ ! -f "$SHADREPOLIST" ] || test "$(find "$SHADREPOLIST" -mmin +"$MAXAGE")"; then
- # if this breaks, we'll use bundled static url list instead
- "$WGET" -q "$SHADREPOURL" -O - 2> >(grep -v "SSL_INIT") | sed -n '/Repository,/table>/p' | grep "^
" | awk 'ORS=NR%3?FS:RS' | grep -v "https://blues" | sed "s: | | :;:; s: | :;:; s:\">:\";:; s: : :; s: ;:;:; s:/tree/master::; s:/reshade/Shaders::" > "$SHADREPOLIST"
+ # Use MediaWiki API to fetch shader repository list
+ if [ -x "$(command -v "$JQ")" ]; then
+ "$WGET" -q "$SHADREPOURL" -O - 2> >(grep -v "SSL_INIT") | "$JQ" -r '.parse.text."*"' | sed -n '/Repository,/table>/p' | grep "^ | " | awk 'ORS=NR%3?FS:RS' | sed "s: | | :;:; s: | :;:; s:\">:\";:; s: : :; s: ;:;:; s:/tree/master::; s:/reshade/Shaders::" > "$SHADREPOLIST"
+ else
+ # Fallback: parse JSON without jq using sed
+ "$WGET" -q "$SHADREPOURL" -O - 2> >(grep -v "SSL_INIT") | sed 's/.*"text":{"\\*":"//' | sed 's/"}}}.*//' | sed 's/\\"/"/g; s/\\n/\n/g; s/\\\//\//g' | sed -n '/Repository,/table>/p' | grep "^ | " | awk 'ORS=NR%3?FS:RS' | sed "s: | | :;:; s: | :;:; s:\">:\";:; s: : :; s: ;:;:; s:/tree/master::; s:/reshade/Shaders::" > "$SHADREPOLIST"
+ fi
fi
RCL="repocustomlist.txt"
From ff2de511aef5fb76675e6bd309c3612ad1fa785c Mon Sep 17 00:00:00 2001
From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com>
Date: Sat, 27 Dec 2025 06:10:58 +0000
Subject: [PATCH 3/8] Use python3 fallback for JSON parsing instead of sed
Co-authored-by: zany130 <25832539+zany130@users.noreply.github.com>
---
steamtinkerlaunch | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/steamtinkerlaunch b/steamtinkerlaunch
index 3e27963e..347c5ee8 100755
--- a/steamtinkerlaunch
+++ b/steamtinkerlaunch
@@ -9161,9 +9161,9 @@ function createShaderRepoList {
# Use MediaWiki API to fetch shader repository list
if [ -x "$(command -v "$JQ")" ]; then
"$WGET" -q "$SHADREPOURL" -O - 2> >(grep -v "SSL_INIT") | "$JQ" -r '.parse.text."*"' | sed -n '/Repository,/table>/p' | grep "^ | " | awk 'ORS=NR%3?FS:RS' | sed "s: | | :;:; s: | :;:; s:\">:\";:; s: : :; s: ;:;:; s:/tree/master::; s:/reshade/Shaders::" > "$SHADREPOLIST"
- else
- # Fallback: parse JSON without jq using sed
- "$WGET" -q "$SHADREPOURL" -O - 2> >(grep -v "SSL_INIT") | sed 's/.*"text":{"\\*":"//' | sed 's/"}}}.*//' | sed 's/\\"/"/g; s/\\n/\n/g; s/\\\//\//g' | sed -n '/Repository,/table>/p' | grep "^ | " | awk 'ORS=NR%3?FS:RS' | sed "s: | | :;:; s: | :;:; s:\">:\";:; s: : :; s: ;:;:; s:/tree/master::; s:/reshade/Shaders::" > "$SHADREPOLIST"
+ elif [ -x "$(command -v python3)" ]; then
+ # Fallback: parse JSON using python3
+ "$WGET" -q "$SHADREPOURL" -O - 2> >(grep -v "SSL_INIT") | python3 -c "import json, sys; print(json.load(sys.stdin)['parse']['text']['*'])" | sed -n '/Repository,/table>/p' | grep "^ | " | awk 'ORS=NR%3?FS:RS' | sed "s: | | :;:; s: | :;:; s:\">:\";:; s: : :; s: ;:;:; s:/tree/master::; s:/reshade/Shaders::" > "$SHADREPOLIST"
fi
fi
From f0c2aee64441bb032bf71f6b37bf670f2f9f5b0d Mon Sep 17 00:00:00 2001
From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com>
Date: Sat, 27 Dec 2025 06:14:03 +0000
Subject: [PATCH 4/8] Add error handling for JSON parsing failures and missing
tools
Co-authored-by: zany130 <25832539+zany130@users.noreply.github.com>
---
steamtinkerlaunch | 14 +++++++++++---
1 file changed, 11 insertions(+), 3 deletions(-)
diff --git a/steamtinkerlaunch b/steamtinkerlaunch
index 347c5ee8..d42f0893 100755
--- a/steamtinkerlaunch
+++ b/steamtinkerlaunch
@@ -9160,10 +9160,18 @@ function createShaderRepoList {
if [ ! -f "$SHADREPOLIST" ] || test "$(find "$SHADREPOLIST" -mmin +"$MAXAGE")"; then
# Use MediaWiki API to fetch shader repository list
if [ -x "$(command -v "$JQ")" ]; then
- "$WGET" -q "$SHADREPOURL" -O - 2> >(grep -v "SSL_INIT") | "$JQ" -r '.parse.text."*"' | sed -n '/Repository,/table>/p' | grep "^ | " | awk 'ORS=NR%3?FS:RS' | sed "s: | | :;:; s: | :;:; s:\">:\";:; s: : :; s: ;:;:; s:/tree/master::; s:/reshade/Shaders::" > "$SHADREPOLIST"
+ "$WGET" -q "$SHADREPOURL" -O - 2> >(grep -v "SSL_INIT") | "$JQ" -r '.parse.text."*"' 2>/dev/null | sed -n '/Repository,/table>/p' | grep "^ | " | awk 'ORS=NR%3?FS:RS' | sed "s: | | :;:; s: | :;:; s:\">:\";:; s: : :; s: ;:;:; s:/tree/master::; s:/reshade/Shaders::" > "$SHADREPOLIST"
elif [ -x "$(command -v python3)" ]; then
- # Fallback: parse JSON using python3
- "$WGET" -q "$SHADREPOURL" -O - 2> >(grep -v "SSL_INIT") | python3 -c "import json, sys; print(json.load(sys.stdin)['parse']['text']['*'])" | sed -n '/Repository,/table>/p' | grep "^ | " | awk 'ORS=NR%3?FS:RS' | sed "s: | | :;:; s: | :;:; s:\">:\";:; s: : :; s: ;:;:; s:/tree/master::; s:/reshade/Shaders::" > "$SHADREPOLIST"
+ # Fallback: parse JSON using python3 with error handling
+ "$WGET" -q "$SHADREPOURL" -O - 2> >(grep -v "SSL_INIT") | python3 -c "import json, sys; data = json.load(sys.stdin); print(data['parse']['text']['*'])" 2>/dev/null | sed -n '/Repository,/table>/p' | grep "^ | " | awk 'ORS=NR%3?FS:RS' | sed "s: | | :;:; s: | :;:; s:\">:\";:; s: : :; s: ;:;:; s:/tree/master::; s:/reshade/Shaders::" > "$SHADREPOLIST"
+ else
+ writelog "WARN" "${FUNCNAME[0]} - Neither jq nor python3 available for JSON parsing - Shader repository list cannot be fetched from API"
+ fi
+
+ # If the fetch failed and the repo list is empty, ensure at least the custom list will be available
+ if [ ! -s "$SHADREPOLIST" ]; then
+ touch "$SHADREPOLIST"
+ writelog "WARN" "${FUNCNAME[0]} - Failed to fetch shader repository list from API - Will use custom list only"
fi
fi
From 638573fb67986151d73179d55e8934f04ee88c3e Mon Sep 17 00:00:00 2001
From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com>
Date: Sat, 27 Dec 2025 17:18:15 +0000
Subject: [PATCH 5/8] Replace hardcoded AstrayFX repo with commented
instructions and example
Co-authored-by: zany130 <25832539+zany130@users.noreply.github.com>
---
misc/repocustomlist.txt | 16 +++++++++++++++-
steamtinkerlaunch | 1 +
2 files changed, 16 insertions(+), 1 deletion(-)
diff --git a/misc/repocustomlist.txt b/misc/repocustomlist.txt
index 10e9c914..421a99a1 100644
--- a/misc/repocustomlist.txt
+++ b/misc/repocustomlist.txt
@@ -1,2 +1,16 @@
-"https://github.com/BlueSkyDefender/AstrayFX";AstrayFX;BlueSkyDefender;Various anti-aliasing shaders and more (used to be part of Depth3D). Home of Smart Sharp, Temporal AA, NFAA, BloomingHDR and others.
+# Custom ReShade Shader Repository List
+#
+# This file allows you to add custom shader repositories that will be merged with the
+# repositories fetched from the PCGamingWiki API.
+#
+# Format: "URL";Name;Author;Description
+# - URL: The GitHub repository URL (include quotes)
+# - Name: Short name for the repository
+# - Author: Repository author/maintainer
+# - Description: Brief description of the shaders included
+#
+# Example (uncomment to use):
+# "https://github.com/BlueSkyDefender/AstrayFX";AstrayFX;BlueSkyDefender;Various anti-aliasing shaders and more (used to be part of Depth3D). Home of Smart Sharp, Temporal AA, NFAA, BloomingHDR and others.
+#
+# Add your custom repositories below:
diff --git a/steamtinkerlaunch b/steamtinkerlaunch
index d42f0893..356be5d1 100755
--- a/steamtinkerlaunch
+++ b/steamtinkerlaunch
@@ -9188,6 +9188,7 @@ function createShaderRepoList {
fi
sed '/^$/d' -i "$SHADREPOLIST"
+ sed '/^#/d' -i "$SHADREPOLIST"
}
function unblockrssub {
From 7aa9710b6adde723d1da11cf9c2cf188f5937d3a Mon Sep 17 00:00:00 2001
From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com>
Date: Sat, 27 Dec 2025 18:05:46 +0000
Subject: [PATCH 6/8] Remove python3 fallback, use jq only for JSON parsing
Co-authored-by: zany130 <25832539+zany130@users.noreply.github.com>
---
steamtinkerlaunch | 5 +----
1 file changed, 1 insertion(+), 4 deletions(-)
diff --git a/steamtinkerlaunch b/steamtinkerlaunch
index 356be5d1..dc48cef4 100755
--- a/steamtinkerlaunch
+++ b/steamtinkerlaunch
@@ -9161,11 +9161,8 @@ function createShaderRepoList {
# Use MediaWiki API to fetch shader repository list
if [ -x "$(command -v "$JQ")" ]; then
"$WGET" -q "$SHADREPOURL" -O - 2> >(grep -v "SSL_INIT") | "$JQ" -r '.parse.text."*"' 2>/dev/null | sed -n '/Repository,/table>/p' | grep "^ | " | awk 'ORS=NR%3?FS:RS' | sed "s: | | :;:; s: | :;:; s:\">:\";:; s: : :; s: ;:;:; s:/tree/master::; s:/reshade/Shaders::" > "$SHADREPOLIST"
- elif [ -x "$(command -v python3)" ]; then
- # Fallback: parse JSON using python3 with error handling
- "$WGET" -q "$SHADREPOURL" -O - 2> >(grep -v "SSL_INIT") | python3 -c "import json, sys; data = json.load(sys.stdin); print(data['parse']['text']['*'])" 2>/dev/null | sed -n '/Repository,/table>/p' | grep "^ | " | awk 'ORS=NR%3?FS:RS' | sed "s: | | :;:; s: | :;:; s:\">:\";:; s: : :; s: ;:;:; s:/tree/master::; s:/reshade/Shaders::" > "$SHADREPOLIST"
else
- writelog "WARN" "${FUNCNAME[0]} - Neither jq nor python3 available for JSON parsing - Shader repository list cannot be fetched from API"
+ writelog "WARN" "${FUNCNAME[0]} - jq is not available for JSON parsing - Shader repository list cannot be fetched from API"
fi
# If the fetch failed and the repo list is empty, ensure at least the custom list will be available
From 9384e52ae137d94aec6e2519dee548bec73e80d6 Mon Sep 17 00:00:00 2001
From: Andres
Date: Sat, 27 Dec 2025 13:22:05 -0500
Subject: [PATCH 7/8] Update version number to v14.0.20251227
---
steamtinkerlaunch | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/steamtinkerlaunch b/steamtinkerlaunch
index dc48cef4..8684f6e7 100755
--- a/steamtinkerlaunch
+++ b/steamtinkerlaunch
@@ -7,7 +7,7 @@
PREFIX="/usr"
PROGNAME="SteamTinkerLaunch"
NICEPROGNAME="Steam Tinker Launch"
-PROGVERS="v14.0.20250602"
+PROGVERS="v14.0.20251227"
PROGCMD="${0##*/}"
PROGINTERNALPROTNAME="Proton-stl"
SHOSTL="stl"
From a635314cb384b3a1ea8a3312e1c3ff9a7811a2af Mon Sep 17 00:00:00 2001
From: Andres
Date: Sat, 27 Dec 2025 18:26:55 -0500
Subject: [PATCH 8/8] Update RSVERS from 5.9.1 to 6.6.2
---
steamtinkerlaunch | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/steamtinkerlaunch b/steamtinkerlaunch
index 8684f6e7..e3541c63 100755
--- a/steamtinkerlaunch
+++ b/steamtinkerlaunch
@@ -3149,7 +3149,7 @@ function setDefaultCfgValues {
if [ -z "$ROBERTAARGS" ] ; then ROBERTAARGS="--wait-before-run"; fi
if [ -z "$LUXTORPEDACMD" ] ; then LUXTORPEDACMD="$STEAMCOMPATOOLS/luxtorpeda/luxtorpeda.sh"; fi
if [ -z "$LUXTORPEDAARGS" ] ; then LUXTORPEDAARGS="wait-before-run"; fi
- if [ -z "$RSVERS" ] ; then RSVERS="5.9.1"; fi
+ if [ -z "$RSVERS" ] ; then RSVERS="6.6.2"; fi
if [ -z "$USERSSPEKVERS" ] ; then USERSSPEKVERS="1"; fi
if [ -z "$RSSPEKVERS" ] ; then RSSPEKVERS="5.4.2"; fi
if [ -z "$AUTOBUMPRESHADE" ] ; then AUTOBUMPRESHADE="0"; fi
|