diff options
| author | Kurt Himebauch <136133082+xXJSONDeruloXx@users.noreply.github.com> | 2025-09-09 16:16:48 -0400 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2025-09-09 16:16:48 -0400 |
| commit | 76ee4ac8fc9cedf14b25a5053f5af2cad3754198 (patch) | |
| tree | c6a129e8a9c502a537634ce6f4d1f021290e4a5c | |
| parent | e72d5808f95ad47ec938dbf08a51bd507eeb94de (diff) | |
| download | Decky-Framegen-76ee4ac8fc9cedf14b25a5053f5af2cad3754198.tar.gz Decky-Framegen-76ee4ac8fc9cedf14b25a5053f5af2cad3754198.zip | |
feat: break out extended files in remote bins for extensibility (#133)v0.11.15
| -rwxr-xr-x | defaults/assets/fgmod-uninstaller.sh | 6 | ||||
| -rwxr-xr-x | defaults/assets/fgmod.sh | 6 | ||||
| -rw-r--r-- | main.py | 38 | ||||
| -rw-r--r-- | package.json | 34 |
4 files changed, 68 insertions, 16 deletions
diff --git a/defaults/assets/fgmod-uninstaller.sh b/defaults/assets/fgmod-uninstaller.sh index 93f279f..36808f4 100755 --- a/defaults/assets/fgmod-uninstaller.sh +++ b/defaults/assets/fgmod-uninstaller.sh @@ -75,11 +75,11 @@ rm -f "OptiScaler.ini" "OptiScaler.log" echo "๐งน Removing Nukem FG Mod files..." rm -f "dlssg_to_fsr3_amd_is_better.dll" "dlssg_to_fsr3.ini" "dlssg_to_fsr3.log" rm -f "nvapi64.dll" "fakenvapi.ini" "fakenvapi.log" -rm -f "amdxcffx64.dll" # === Remove Supporting Libraries === echo "๐งน Removing supporting libraries..." -rm -f "libxess.dll" "nvngx.dll" "nvngx.ini" +rm -f "libxess.dll" "libxess_dx11.dll" "nvngx.dll" "nvngx.ini" +rm -f "amd_fidelityfx_dx12.dll" "amd_fidelityfx_framegeneration_dx12.dll" "amd_fidelityfx_upscaler_dx12.dll" "amd_fidelityfx_vk.dll" # === Remove Legacy Files === echo "๐งน Removing legacy files..." @@ -89,7 +89,7 @@ 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_vk.dll" "nvapi64.dll" "amdxcffx64.dll" "libxess.dll") +original_dlls=("d3dcompiler_47.dll" "amd_fidelityfx_dx12.dll" "amd_fidelityfx_framegeneration_dx12.dll" "amd_fidelityfx_upscaler_dx12.dll" "amd_fidelityfx_vk.dll" "nvapi64.dll" "libxess.dll" "libxess_dx11.dll") for dll in "${original_dlls[@]}"; do if [[ -f "${dll}.b" ]]; then mv "${dll}.b" "$dll" diff --git a/defaults/assets/fgmod.sh b/defaults/assets/fgmod.sh index 134ded0..2e1e45b 100755 --- a/defaults/assets/fgmod.sh +++ b/defaults/assets/fgmod.sh @@ -63,7 +63,7 @@ logger -t fgmod "๐ Preserve INI: $preserve_ini" rm -f "$exe_folder_path"/{dxgi.dll,winmm.dll,nvngx.dll,_nvngx.dll,nvngx-wrapper.dll,dlss-enabler.dll,OptiScaler.dll} # === Optional: Backup Original DLLs === -original_dlls=("d3dcompiler_47.dll" "amd_fidelityfx_dx12.dll" "amd_fidelityfx_vk.dll" "nvapi64.dll" "amdxcffx64.dll") +original_dlls=("d3dcompiler_47.dll" "amd_fidelityfx_dx12.dll" "amd_fidelityfx_framegeneration_dx12.dll" "amd_fidelityfx_upscaler_dx12.dll" "amd_fidelityfx_vk.dll" "nvapi64.dll") for dll in "${original_dlls[@]}"; do [[ -f "$exe_folder_path/$dll" && ! -f "$exe_folder_path/$dll.b" ]] && mv -f "$exe_folder_path/$dll" "$exe_folder_path/$dll.b" done @@ -89,7 +89,10 @@ fi # === Supporting Libraries === cp -f "$fgmod_path/libxess.dll" "$exe_folder_path/" || true +cp -f "$fgmod_path/libxess_dx11.dll" "$exe_folder_path/" || true cp -f "$fgmod_path/amd_fidelityfx_dx12.dll" "$exe_folder_path/" || true +cp -f "$fgmod_path/amd_fidelityfx_framegeneration_dx12.dll" "$exe_folder_path/" || true +cp -f "$fgmod_path/amd_fidelityfx_upscaler_dx12.dll" "$exe_folder_path/" || true cp -f "$fgmod_path/amd_fidelityfx_vk.dll" "$exe_folder_path/" || true cp -f "$fgmod_path/nvngx.dll" "$exe_folder_path/" || true @@ -98,7 +101,6 @@ cp -f "$fgmod_path/dlssg_to_fsr3_amd_is_better.dll" "$exe_folder_path/" || true cp -f "$fgmod_path/dlssg_to_fsr3.ini" "$exe_folder_path/" || true cp -f "$fgmod_path/nvapi64.dll" "$exe_folder_path/" || true cp -f "$fgmod_path/fakenvapi.ini" "$exe_folder_path/" || true -cp -f "$fgmod_path/amdxcffx64.dll" "$exe_folder_path/" || true # === Additional Support Files === cp -f "$fgmod_path/d3dcompiler_47.dll" "$exe_folder_path/" || true @@ -92,7 +92,7 @@ class Plugin: return False async def extract_static_optiscaler(self) -> dict: - """Extract OptiScaler from the plugin's bin directory.""" + """Extract OptiScaler from the plugin's bin directory and copy additional files.""" try: # Set up paths bin_path = Path(decky.DECKY_PLUGIN_DIR) / "bin" @@ -101,7 +101,7 @@ class Plugin: # Find the OptiScaler archive in the bin directory optiscaler_archive = None for file in bin_path.glob("*.7z"): - if "OptiScaler" in file.name: + if "OptiScaler" in file.name and not "BUNDLE" in file.name: optiscaler_archive = file break @@ -144,6 +144,28 @@ class Plugin: "message": f"Failed to extract OptiScaler archive: {extract_result.stderr}" } + # Copy additional individual files from bin directory + additional_files = [ + "dlssg_to_fsr3_amd_is_better.dll", + "fakenvapi.ini", + "nvapi64.dll", + "nvngx.dll" + ] + + for file_name in additional_files: + src_file = bin_path / file_name + dest_file = extract_path / file_name + + if src_file.exists(): + shutil.copy2(src_file, dest_file) + decky.logger.info(f"Copied additional file: {file_name}") + else: + decky.logger.warning(f"Additional file not found: {file_name}") + return { + "status": "error", + "message": f"Required file {file_name} not found in plugin bin directory" + } + # Create renamed copies of OptiScaler.dll source_file = extract_path / "OptiScaler.dll" renames_dir = extract_path / "renames" @@ -153,10 +175,10 @@ class Plugin: assets_dir = Path(decky.DECKY_PLUGIN_DIR) / "assets" self._copy_launcher_scripts(assets_dir, extract_path) - # Extract version from filename + # Extract version from filename (e.g., OptiScaler_0.7.9.7z -> v0.7.9) version_match = optiscaler_archive.name.replace('.7z', '') - if '_v' in version_match: - version = 'v' + version_match.split('_v')[1] + if 'OptiScaler_' in version_match: + version = 'v' + version_match.split('OptiScaler_')[1] else: version = version_match @@ -238,13 +260,17 @@ class Plugin: path = Path(decky.HOME) / "fgmod" required_files = [ "OptiScaler.dll", + "OptiScaler.ini", "dlssg_to_fsr3_amd_is_better.dll", "fakenvapi.ini", "nvapi64.dll", - "amdxcffx64.dll", + "nvngx.dll", "amd_fidelityfx_dx12.dll", + "amd_fidelityfx_framegeneration_dx12.dll", + "amd_fidelityfx_upscaler_dx12.dll", "amd_fidelityfx_vk.dll", "libxess.dll", + "libxess_dx11.dll", "fgmod", "fgmod-uninstaller.sh" ] diff --git a/package.json b/package.json index 25323d8..7afd954 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "decky-framegen", - "version": "0.11.12", + "version": "0.11.13", "description": "This plugin installs and manages OptiScaler, a tool that enhances upscaling and enables frame generation in a range of DirectX 12 games.", "type": "module", "scripts": { @@ -53,10 +53,34 @@ "remote_binary": [ { - "sha256hash": "a003276a79b31cebbd3784d7c8d9413bd1c92f34dc14e409ebf06a08b0ac5f22", - "url": "https://github.com/xXJSONDeruloXx/OptiScaler-Bleeding-Edge/releases/download/BUNDLE_OptiScaler_v0.7.8_Typeless-20250817-003642/BUNDLE_OptiScaler_v0.7.8_Typeless-20250817-003642.7z", - "name": "BUNDLE_OptiScaler_v0.7.8_Typeless-20250817-003642.7z", - "size": 61157175 + "sha256hash": "70103bf3746140d368179773edeafb02ec9718efa130276b8da833c3156fbfe3", + "url": "https://github.com/optiscaler/OptiScaler/releases/download/v0.7.9/OptiScaler_0.7.9.7z", + "name": "OptiScaler_0.7.9.7z", + "size": 0 + }, + { + "sha256hash": "7ff6a5e11f85e64a0a89dc9527a22f55485068f8bf9425ab6571137daf0f586a", + "url": "https://github.com/xXJSONDeruloXx/OptiScaler-Bleeding-Edge/releases/download/OptiScaler_v0.7.8-pre0_20250816_unsigned_dll-13b2b5d0/dlssg_to_fsr3_amd_is_better.dll", + "name": "dlssg_to_fsr3_amd_is_better.dll", + "size": 3040768 + }, + { + "sha256hash": "a4bfa3ec7b4badd93ae5e1ad74a582238082d871f54f38f68e7d9fb6384ce772", + "url": "https://github.com/xXJSONDeruloXx/OptiScaler-Bleeding-Edge/releases/download/OptiScaler_v0.7.8-pre0_20250816_unsigned_dll-13b2b5d0/fakenvapi.ini", + "name": "fakenvapi.ini", + "size": 466 + }, + { + "sha256hash": "f4c9e3d35510f2c8b14a41e47721487d3f6663b85441e1be574c45d906b95f06", + "url": "https://github.com/xXJSONDeruloXx/OptiScaler-Bleeding-Edge/releases/download/OptiScaler_v0.7.8-pre0_20250816_unsigned_dll-13b2b5d0/nvapi64.dll", + "name": "nvapi64.dll", + "size": 404992 + }, + { + "sha256hash": "1d75e7c1f37f966517f625aa3cc9602ff89d42ad2a7fcbdfa5fc91dab4674149", + "url": "https://github.com/xXJSONDeruloXx/OptiScaler-Bleeding-Edge/releases/download/OptiScaler_v0.7.8-pre0_20250816_unsigned_dll-13b2b5d0/nvngx.dll", + "name": "nvngx.dll", + "size": 49012784 } ] } |
