From 2668d9649bf36d1e279470f81918464dd30f5e3d Mon Sep 17 00:00:00 2001 From: xXJsonDeruloXx Date: Sat, 21 Mar 2026 07:57:48 -0400 Subject: Add per-game config APIs and proxy persistence --- defaults/assets/fgmod.sh | 27 +++++++++++++++++++-------- 1 file changed, 19 insertions(+), 8 deletions(-) (limited to 'defaults/assets') diff --git a/defaults/assets/fgmod.sh b/defaults/assets/fgmod.sh index 7aa62bb..9864ca1 100755 --- a/defaults/assets/fgmod.sh +++ b/defaults/assets/fgmod.sh @@ -24,10 +24,11 @@ error_exit() { bundle_root="${HOME}/fgmod" managed_dir_name="optiscaler-managed" manifest_name="manifest.env" -proxy_name="${OPTISCALER_PROXY:-${DLL:-winmm}}" +default_proxy="winmm" +proxy_name="${OPTISCALER_PROXY:-${DLL:-}}" proxy_name="${proxy_name%.dll}" -proxy_dll="${proxy_name}.dll" -backup_dll="${proxy_name}-original.dll" +proxy_dll="" +backup_dll="" support_files=( "libxess.dll" @@ -44,11 +45,6 @@ support_files=( "fakenvapi.ini" ) -case "$proxy_name" in - winmm|dxgi|version|dbghelp|winhttp|wininet|d3d12) ;; - *) error_exit "Unsupported OPTISCALER_PROXY '$proxy_name'." ;; -esac - [[ -d "$bundle_root" ]] || error_exit "OptiScaler runtime not installed at $bundle_root" [[ -n "${STEAM_COMPAT_DATA_PATH:-}" ]] || error_exit "STEAM_COMPAT_DATA_PATH is required. Use this wrapper from a Steam/Proton launch option." [[ $# -ge 1 ]] || error_exit "Usage: $0 program [program_arguments...]" @@ -85,12 +81,26 @@ cleanup_stage_files() { mkdir -p "$system32_path" "$managed_root" "$managed_plugins" existing_proxy="" +preferred_proxy="" if [[ -f "$manifest_path" ]]; then # shellcheck disable=SC1090 source "$manifest_path" existing_proxy="${MANAGED_PROXY:-}" + preferred_proxy="${PREFERRED_PROXY:-}" +fi + +if [[ -z "$proxy_name" ]]; then + proxy_name="${preferred_proxy:-$default_proxy}" fi +case "$proxy_name" in + winmm|dxgi|version|dbghelp|winhttp|wininet|d3d12) ;; + *) error_exit "Unsupported OPTISCALER_PROXY '$proxy_name'." ;; +esac + +proxy_dll="${proxy_name}.dll" +backup_dll="${proxy_name}-original.dll" + if [[ -n "$existing_proxy" && "$existing_proxy" != "$proxy_name" ]]; then log "Switching managed proxy from $existing_proxy to $proxy_name" cleanup_stage_files "$existing_proxy" @@ -149,6 +159,7 @@ fi cat > "$manifest_path" <