diff options
Diffstat (limited to 'defaults/assets')
| -rwxr-xr-x | defaults/assets/fgmod-uninstaller.sh | 4 | ||||
| -rwxr-xr-x | defaults/assets/fgmod.sh | 62 |
2 files changed, 62 insertions, 4 deletions
diff --git a/defaults/assets/fgmod-uninstaller.sh b/defaults/assets/fgmod-uninstaller.sh index 5e5143c..3d59eda 100755 --- a/defaults/assets/fgmod-uninstaller.sh +++ b/defaults/assets/fgmod-uninstaller.sh @@ -150,8 +150,8 @@ rm -f "dlssg_to_fsr3_amd_is_better-3.0.dll" # === Restore Original DLLs === echo " Restoring original DLLs..." -original_dlls=("d3dcompiler_47.dll" "amd_fidelityfx_dx12.dll" "amd_fidelityfx_framegeneration_dx12.dll" "amd_fidelityfx_upscaler_dx12.dll" "amd_fidelityfx_vk.dll" "libxess.dll" "libxess_dx11.dll" "libxess_fg.dll" "libxell.dll") -for dll in "${original_dlls[@]}"; do +restorable_dlls=("dxgi.dll" "winmm.dll" "dbghelp.dll" "version.dll" "wininet.dll" "winhttp.dll" "OptiScaler.asi" "d3dcompiler_47.dll" "amd_fidelityfx_dx12.dll" "amd_fidelityfx_framegeneration_dx12.dll" "amd_fidelityfx_upscaler_dx12.dll" "amd_fidelityfx_vk.dll" "libxess.dll" "libxess_dx11.dll" "libxess_fg.dll" "libxell.dll") +for dll in "${restorable_dlls[@]}"; do if [[ -f "${dll}.b" ]]; then mv "${dll}.b" "$dll" echo " Restored original $dll" diff --git a/defaults/assets/fgmod.sh b/defaults/assets/fgmod.sh index 8d0b77b..ed8aaf5 100755 --- a/defaults/assets/fgmod.sh +++ b/defaults/assets/fgmod.sh @@ -96,8 +96,66 @@ logger -t fgmod "Target directory: $exe_folder_path" logger -t fgmod "Using DLL name: $dll_name" logger -t fgmod "Preserve INI: $preserve_ini" -# === Cleanup Old Injectors === -rm -f "$exe_folder_path"/{dxgi.dll,winmm.dll,nvngx.dll,_nvngx.dll,nvngx-wrapper.dll,dlss-enabler.dll,OptiScaler.dll} +proxy_backup_files=( + "dxgi.dll" + "winmm.dll" + "dbghelp.dll" + "version.dll" + "wininet.dll" + "winhttp.dll" + "OptiScaler.asi" +) + +cleanup_files=( + "${proxy_backup_files[@]}" + "OptiScaler.dll" + "nvngx.dll" + "_nvngx.dll" + "nvngx-wrapper.dll" + "nvngx.ini" + "dlss-enabler.dll" + "dlss-enabler-upscaler.dll" + "fakenvapi.log" + "OptiScaler.log" + "dlssg_to_fsr3.log" + "dlssg_to_fsr3_amd_is_better-3.0.dll" +) + +is_bundled_proxy_copy() { + local existing_file="$1" + local bundled_copy="$fgmod_path/renames/$(basename "$existing_file")" + [[ -f "$existing_file" && -f "$bundled_copy" ]] && cmp -s "$existing_file" "$bundled_copy" +} + +has_patch_fingerprint() { + local fingerprint + for fingerprint in "FRAMEGEN_PATCH" "OptiScaler.ini" "fakenvapi.dll" "fakenvapi.ini" "dlssg_to_fsr3_amd_is_better.dll" "D3D12_Optiscaler"; do + [[ -e "$exe_folder_path/$fingerprint" ]] && return 0 + done + return 1 +} + +# === Backup Pre-existing Proxy DLLs Before Cleanup === +for dll in "${proxy_backup_files[@]}"; do + existing_path="$exe_folder_path/$dll" + backup_path="$exe_folder_path/$dll.b" + if [[ -f "$existing_path" && ! -f "$backup_path" ]]; then + if has_patch_fingerprint || is_bundled_proxy_copy "$existing_path"; then + logger -t fgmod "Skipping backup for managed/stale proxy copy: $dll" + else + mv -f "$existing_path" "$backup_path" + echo " Backed up pre-existing $dll" + logger -t fgmod "Backed up pre-existing proxy file: $dll" + fi + fi +done +unset existing_path backup_path fingerprint + +# === Cleanup Old Injectors / Legacy OptiScaler Artifacts === +for cleanup_file in "${cleanup_files[@]}"; do + rm -f "$exe_folder_path/$cleanup_file" +done +unset cleanup_file # === Optional: Backup Original DLLs === original_dlls=("d3dcompiler_47.dll" "amd_fidelityfx_dx12.dll" "amd_fidelityfx_framegeneration_dx12.dll" "amd_fidelityfx_upscaler_dx12.dll" "amd_fidelityfx_vk.dll") |
