summaryrefslogtreecommitdiff
path: root/py_modules/services/assets.py
blob: 69f71ba0e9dbd08aa5423f44fe3c36f60d9468af (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
"""Static asset metadata and patch file inventories."""

OPTISCALER_ARCHIVE_ASSET = {
    "name": "Optiscaler_0.9.4-final.20260718._MM.7z",
    "sha256": "575cb4df866116093df75af607e37fd70e10f5163e0f23fd5c804142e80ef0ad",
    "version": "0.9.4-final.20260718",
}

FSR4_INT8_ASSET = {
    "name": "amd_fidelityfx_upscaler_dx12.dll",
    "sha256": "c7720bc16bede334f59a1a32cd22edbcbbb159685ed5240e61350a5fb0bc8a94",
    "version": "4.0.2c",
}

FSR4_OFFICIAL_411_ASSET = {
    "name": "amdxcffx64.dll",
    "sha256": "a2b136b6affd35a49b141a936be935f7d5ddc8d8f9b8c9afbe62ff9ddb2538a0",
    "version": "4.1.1-official",
}

FSR4_VALVE_411_ASSET = {
    "name": "amdxcffx64_valve_2.3.0.2913.dll",
    "sha256": "4e7dc37aebea3a90e3d3cc43e24cb2b54176b2535315f20dbe63b3b7cfc56b1e",
    "version": "4.1.1-valve-2.3.0.2913",
}

AMDXC64_RDNA2_ASSET = {
    "name": "amdxc64.dll",
    "sha256": "a0a0af61d475e30a70966b3459f3793df772faf8f26ae3261d10554ff592cbd5",
    "version": "8.18.10.0474",
}

OPTISCALER_PRE10_ASSET = {
    "name": "OptiScaler_0.10.0-pre1.20260622_135940.dll",
    "sha256": "b374b19081cc066365d0c6da4808d768e16469b0cbdfc478b6e95999947d5364",
    "version": "0.10.0-pre1.20260622_135940",
}

OPTIPATCHER_ASSET = {
    "name": "OptiPatcher_rolling.asi",
    "sha256": "88b9e1be3559737cd205fdf5f2c8550cf1923fb1def4c603e5bf03c3e84131b1",
    "version": "rolling",
}

FSR4_UPSCALER_FILENAME = "amd_fidelityfx_upscaler_dx12.dll"
FSR4_DRIVER_OVERRIDE_FILENAME = "amdxcffx64.dll"
INSTALL_MANIFEST_FILENAME = "install-manifest.json"
VERSION_FILENAME = "version.txt"
DEFAULT_FSR4_VARIANT = "rdna23-int8"
DEFAULT_FRAMEGEN_BACKEND = "auto"
FRAMEGEN_BACKENDS = {
    "auto": "OptiScaler automatic selection",
    "nukems": "Nukem's DLSSG → FSR3",
}

FSR4_VARIANTS = {
    "rdna23-int8": {
        "label": "4.0.2c / RDNA2-3 compatibility",
        "dir_name": "fsr4-rdna2-3",
        "sha256": "c7720bc16bede334f59a1a32cd22edbcbbb159685ed5240e61350a5fb0bc8a94",
        "source_asset_name": FSR4_INT8_ASSET["name"],
        "source_version": FSR4_INT8_ASSET["version"],
        "uses_archive_native": False,
        "extra_files": [],
    },
    "rdna4-native": {
        "label": "4.1.1 SDK / RDNA3 dGPU + RDNA4",
        "dir_name": "fsr4-rdna4",
        "sha256": "d0dcccc74a43c44ba435b7a369b456e0970d8a4464e4bd683119b374f2c9fb46",
        "source_asset_name": OPTISCALER_ARCHIVE_ASSET["name"],
        "source_version": OPTISCALER_ARCHIVE_ASSET["version"],
        "uses_archive_native": True,
        "extra_files": [],
    },
    "rdna34-official-411": {
        "label": "4.1.1 driver override / RDNA3-4",
        "dir_name": "fsr4-rdna3-4-official-411",
        "sha256": "d0dcccc74a43c44ba435b7a369b456e0970d8a4464e4bd683119b374f2c9fb46",
        "source_asset_name": OPTISCALER_ARCHIVE_ASSET["name"],
        "source_version": OPTISCALER_ARCHIVE_ASSET["version"],
        "uses_archive_native": True,
        "extra_files": [
            {
                "name": FSR4_DRIVER_OVERRIDE_FILENAME,
                "sha256": FSR4_OFFICIAL_411_ASSET["sha256"],
                "source_asset_name": FSR4_OFFICIAL_411_ASSET["name"],
                "source_version": FSR4_OFFICIAL_411_ASSET["version"],
            }
        ],
        "config_overrides": {},
    },
    "rdna2-valve-411-pre10": {
        "label": "4.1.1 Valve RDNA2 compatibility",
        "dir_name": "fsr4-rdna2-valve-411-pre10",
        "sha256": "d0dcccc74a43c44ba435b7a369b456e0970d8a4464e4bd683119b374f2c9fb46",
        "source_asset_name": OPTISCALER_ARCHIVE_ASSET["name"],
        "source_version": OPTISCALER_ARCHIVE_ASSET["version"],
        "uses_archive_native": True,
        "injector": {
            "name": "OptiScaler.dll",
            "sha256": OPTISCALER_PRE10_ASSET["sha256"],
            "source_asset_name": OPTISCALER_PRE10_ASSET["name"],
            "source_version": OPTISCALER_PRE10_ASSET["version"],
        },
        "extra_files": [
            {
                "name": FSR4_DRIVER_OVERRIDE_FILENAME,
                "sha256": FSR4_VALVE_411_ASSET["sha256"],
                "source_asset_name": FSR4_VALVE_411_ASSET["name"],
                "source_version": FSR4_VALVE_411_ASSET["version"],
            },
            {
                "name": "amdxc64.dll",
                "sha256": AMDXC64_RDNA2_ASSET["sha256"],
                "source_asset_name": AMDXC64_RDNA2_ASSET["name"],
                "source_version": AMDXC64_RDNA2_ASSET["version"],
            },
        ],
        "config_overrides": {
            "FSR.Fsr4ForceModel": "2",
            "Plugins.LoadCustomAmdxc64OnRdna2": "true",
        },
    },
}

VARIANT_EXTRA_FILENAMES = sorted(
    {
        extra_file["name"]
        for variant in FSR4_VARIANTS.values()
        for extra_file in variant.get("extra_files", [])
    }
)

PROXY_DLL_BACKUPS = [
    "dxgi.dll",
    "winmm.dll",
    "dbghelp.dll",
    "version.dll",
    "wininet.dll",
    "winhttp.dll",
    "OptiScaler.asi",
]
VALID_DLL_NAMES = set(PROXY_DLL_BACKUPS)

INJECTOR_FILENAMES = [
    *PROXY_DLL_BACKUPS,
    "nvngx.dll",
    "_nvngx.dll",
    "nvngx-wrapper.dll",
    "dlss-enabler.dll",
    "OptiScaler.dll",
]

ORIGINAL_DLL_BACKUPS = [
    "d3dcompiler_47.dll",
    "amd_fidelityfx_dx12.dll",
    "amd_fidelityfx_framegeneration_dx12.dll",
    FSR4_UPSCALER_FILENAME,
    FSR4_DRIVER_OVERRIDE_FILENAME,
    "amdxc64.dll",
    "amd_fidelityfx_vk.dll",
]

RESTORABLE_BACKUP_FILES = [
    *PROXY_DLL_BACKUPS,
    *ORIGINAL_DLL_BACKUPS,
]

SUPPORT_FILES = [
    "libxess.dll",
    "libxess_dx11.dll",
    "libxess_fg.dll",
    "libxell.dll",
    "amd_fidelityfx_dx12.dll",
    "amd_fidelityfx_framegeneration_dx12.dll",
    "amd_fidelityfx_vk.dll",
    "dlssg_to_fsr3_amd_is_better.dll",
    "fakenvapi.dll",
    "fakenvapi.ini",
]

MARKER_FILENAME = "FRAMEGEN_PATCH"
MANIFEST_SCHEMA_VERSION = 2
BACKUP_DIRECTORY_NAME = ".framegen-backups"