From a6955e828b1dee7b14f8021a8a470dd51d77e33e Mon Sep 17 00:00:00 2001 From: xXJSONDeruloXx Date: Fri, 3 Apr 2026 09:52:39 -0400 Subject: feat: proxy DLL name picker Expose the proxy DLL rename as a user-selectable option across all injection paths. Previously hardcoded to dxgi.dll with no way to change it short of manually prepending DLL= to the Steam launch option. src/utils/constants.ts - Add PROXY_DLL_OPTIONS (7 entries matching _create_renamed_copies) each with a label and one-line hint - Add DEFAULT_PROXY_DLL constant (dxgi.dll) and ProxyDllValue type src/api/index.ts - runManualPatch now takes [directory, dll_name] so the chosen name reaches the backend src/components/OptiScalerControls.tsx - Own dllName state (default: dxgi.dll) - Render a DropdownItem (visible when installed) showing the 7 options with the selected option's hint as the description - Pass dllName down to both ClipboardCommands and ManualPatchControls src/components/ClipboardCommands.tsx - Accept dllName prop - Patch command is plain ~/fgmod/fgmod %command% for the default; prefixed DLL= ~/fgmod/fgmod %command% for any other choice src/components/CustomPathOverride.tsx - Accept dllName prop - Pass it to runManualPatch - Manual launch cmd clipboard button builds WINEDLLOVERRIDES="=n,b" dynamically; emits bare SteamDeck=0 %command% for OptiScaler.asi (ASI loader path needs no Wine DLL override) main.py - Add VALID_DLL_NAMES set (whitelist matching the renames dir) - manual_patch_directory validates dll_name against the whitelist and returns an error for unknown values - _manual_patch_directory_impl accepts dll_name param; removes the hardcoded "dxgi.dll" line defaults/assets/fgmod.sh - Fix longstanding bug: WINEDLLOVERRIDES was hardcoded to dxgi=n,b regardless of the DLL= env var selection. Now derives the stem from $dll_name and skips the override entirely for .asi files. --- defaults/assets/fgmod.sh | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) (limited to 'defaults/assets/fgmod.sh') diff --git a/defaults/assets/fgmod.sh b/defaults/assets/fgmod.sh index efc1d59..99ea447 100755 --- a/defaults/assets/fgmod.sh +++ b/defaults/assets/fgmod.sh @@ -223,7 +223,13 @@ if [[ $# -gt 1 ]]; then # Execute the original command export SteamDeck=0 - export WINEDLLOVERRIDES="$WINEDLLOVERRIDES,dxgi=n,b" + # Build WINEDLLOVERRIDES from the actual proxy DLL name (strip extension to get the stem) + if [[ "$dll_name" == *.dll ]]; then + _wine_dll="${dll_name%.dll}" + export WINEDLLOVERRIDES="$WINEDLLOVERRIDES,${_wine_dll}=n,b" + unset _wine_dll + fi + # .asi files are loaded by an ASI loader — no WINEDLLOVERRIDES entry needed # Filter out leading -- separators (from Steam launch options) while [[ $# -gt 0 && "$1" == "--" ]]; do -- cgit v1.2.3