-
Notifications
You must be signed in to change notification settings - Fork 20
/
Copy pathOptiScaler Setup.bat
294 lines (253 loc) · 7.87 KB
/
OptiScaler Setup.bat
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
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
REM Setup OptiScaler for your game
@echo off
cls
echo :::::::: ::::::::: ::::::::::: ::::::::::: :::::::: :::::::: ::: ::: :::::::::: :::::::::
echo :+: :+: :+: :+: :+: :+: :+: :+: :+: :+: :+: :+: :+: :+: :+: :+:
echo +:+ +:+ +:+ +:+ +:+ +:+ +:+ +:+ +:+ +:+ +:+ +:+ +:+ +:+
echo +#+ +:+ +#++:++#+ +#+ +#+ +#++:++#++ +#+ +#++:++#++: +#+ +#++:++# +#++:++#:
echo +#+ +#+ +#+ +#+ +#+ +#+ +#+ +#+ +#+ +#+ +#+ +#+ +#+
echo #+# #+# #+# #+# #+# #+# #+# #+# #+# #+# #+# #+# #+# #+# #+#
echo ######## ### ### ########### ######## ######## ### ### ########## ########## ### ###
echo.
echo Coping is strong with this one...
echo.
del "!! EXTRACT ALL FILES TO GAME FOLDER !!" 2>nul
setlocal enabledelayedexpansion
if not exist nvngx.dll (
echo OptiScaler "nvngx.dll" file is not found!
goto end
)
REM Set paths based on current directory
set gamePath=%~dp0
set optiScalerFile="%gamePath%\nvngx.dll"
REM Check if the Engine folder exists
if exist "%gamePath%\Engine" (
echo Found Engine folder, if this is an Unreal Engine game then please extract Optiscaler to #CODENAME#\Binaries\Win64
echo.
set /p continueChoice="Continue installation to current folder? [y/n]: "
set continueChoice=!continueChoice: =!
if "!continueChoice!"=="y" (
goto selectFilename
)
goto end
)
REM Prompt user to select a filename for OptiScaler
:selectFilename
echo.
echo Choose a filename for OptiScaler (default is dxgi.dll):
echo [1] dxgi.dll
echo [2] winmm.dll
echo [3] version.dll
echo [4] wininet.dll
echo [5] winhttp.dll
echo [6] OptiScaler.asi
set /p filenameChoice="Enter 1-6 (or press Enter for default): "
if "%filenameChoice%"=="" (
set selectedFilename="dxgi.dll"
) else if "%filenameChoice%"=="1" (
set selectedFilename="dxgi.dll"
) else if "%filenameChoice%"=="2" (
set selectedFilename="winmm.dll"
) else if "%filenameChoice%"=="3" (
set selectedFilename="version.dll"
) else if "%filenameChoice%"=="4" (
set selectedFilename="wininet.dll"
) else if "%filenameChoice%"=="5" (
set selectedFilename="winhttp.dll"
) else if "%filenameChoice%"=="6" (
set selectedFilename="OptiScaler.asi"
) else (
echo Invalid choice. Please select a valid option.
echo.
goto selectFilename
)
if exist %selectedFilename% (
echo.
echo WARNING: %selectedFilename% already exists in the current folder.
echo.
set /p overwriteChoice="Do you want to overwrite %selectedFilename%? [y/n]: "
set overwriteChoice=!overwriteChoice: =!
echo.
if "!overwriteChoice!"=="y" (
goto queryGPU
)
goto selectFilename
)
:queryGPU
if exist %windir%\system32\nvapi64.dll (
echo.
echo Nvidia driver files detected.
set isNvidia=true
) else (
set isNvidia=false
)
REM Query user for GPU type
echo.
echo Are you using an Nvidia GPU or AMD/Intel GPU?
echo [1] AMD/Intel
echo [2] Nvidia
if "isNvidia"=="true" (
set /p gpuChoice="Enter 1 or 2 (or press Enter for Nvidia): "
) else (
set /p gpuChoice="Enter 1 or 2 (or press Enter for AMD/Intel): "
)
if "%gpuChoice%"=="2" (
REM Nvidia
echo Nvidia GPU selected. Skipping "nvngx_dlss.dll" handling step.
goto completeSetup
) else if "%gpuChoice%"=="1" (
REM AMD/Intel
echo AMD/Intel GPU selected. Proceeding with "nvngx_dlss.dll" handling.
goto checkFile
) else (
if "%gpuChoice%"=="" (
if "isNvidia"=="true" (
REM Nvidia
echo Nvidia GPU selected. Skipping "nvngx_dlss.dll" handling step.
set gpuChoice=2
goto completeSetup
)
REM AMD/Intel
echo AMD/Intel GPU selected. Proceeding with "nvngx_dlss.dll" handling.
set gpuChoice=1
goto checkFile
)
echo.
echo Invalid choice. Please enter 1 or 2.
echo.
goto queryGPU
)
:checkFile
set dlssFile =
goto check_nvngx_dlss
:resume_nvngx_dlss
REM Copy nvngx_dlss.dll file
echo.
echo Copying "nvngx_dlss.dll" to game folder...
copy /y "%dlssFile%" .\nvngx_dlss_copy.dll
if errorlevel 1 (
echo.
echo ERROR: Failed to copy "nvngx_dlss.dll".
goto end
)
:completeSetup
REM Rename OptiScaler file
echo.
if "!overwriteChoice!"=="y" (
echo Removing previous %selectedFilename%...
del /F %selectedFilename%
)
echo Renaming OptiScaler file to %selectedFilename%...
rename %optiScalerFile% %selectedFilename%
if errorlevel 1 (
echo.
echo ERROR: Failed to rename OptiScaler file to %selectedFilename%.
goto end
)
REM Rename nvngx_dlss.dll file if AMD/Intel is selected
if "%gpuChoice%"=="1" (
echo Renaming "nvngx_dlss_copy.dll" file to "nvngx.dll"...
rename nvngx_dlss_copy.dll nvngx.dll
if errorlevel 1 (
echo.
echo ERROR: Failed to rename "nvngx_dlss.dll" to "nvngx.dll".
goto end
)
)
goto create_uninstaller
:create_uninstaller_return
cls
echo OptiScaler setup completed successfully...
echo.
echo ___
echo (_ '
echo /__ /) / () (/
echo _/ /
echo.
:end
pause
REM Remove "OptiScaler Setup.bat"
del %0
REM Remove leftover "nvngx_dlss_copy.dll"
if exist "nvngx_dlss_copy.dll" (
del /y "nvngx_dlss_copy.dll"
)
exit /b
REM check for nvngx_dlss.dll
:check_nvngx_dlss
if exist "nvngx_dlss.dll" (
echo Found "nvngx_dlss.dll" in the current folder.
set dlssFile=nvngx_dlss.dll
goto resume_nvngx_dlss
)
REM Search for nvngx_dlss.dll in the current folder and subfolders
set fileToSearch=nvngx_dlss.dll
set foundFile=
for /f "delims=" %%F in ('dir /s /b %fileToSearch% 2^>nul') do (
set dlssFile=%%F
goto fileFound
)
REM Check for UE Win64 folder
cd ..
if exist Win64 (
echo.
echo Going to root folder of Unreal Engine game and searching again
cd ..
cd ..
for /f "delims=" %%F in ('dir /s /b %fileToSearch% 2^>nul') do (
set dlssFile=%%F
goto fileFound
)
)
:fileNotFound
cd %gamePath%
echo ERROR: "nvngx_dlss.dll" not found in expected locations. Please manually copy it and run setup again.
goto end
:fileFound
cd %gamePath%
echo File found at %dlssFile%
goto resume_nvngx_dlss
:create_uninstaller
copy /y NUL "Remove OptiScaler.bat"
(
echo @echo off
echo cls
echo echo :::::::: ::::::::: ::::::::::: ::::::::::: :::::::: :::::::: ::: ::: :::::::::: :::::::::
echo echo :+: :+: :+: :+: :+: :+: :+: :+: :+: :+: :+: :+: :+: :+: :+: :+:
echo echo +:+ +:+ +:+ +:+ +:+ +:+ +:+ +:+ +:+ +:+ +:+ +:+ +:+ +:+
echo echo +#+ +:+ +#++:++#+ +#+ +#+ +#++:++#++ +#+ +#++:++#++: +#+ +#++:++# +#++:++#:
echo echo +#+ +#+ +#+ +#+ +#+ +#+ +#+ +#+ +#+ +#+ +#+ +#+ +#+
echo echo #+# #+# #+# #+# #+# #+# #+# #+# #+# #+# #+# #+# #+# #+# #+#
echo echo ######## ### ### ########### ######## ######## ### ### ########## ########## ### ###
echo echo.
echo echo Coping is strong with this one...
echo echo.
echo.
echo set /p removeChoice="Do you want to remove OptiScaler? [y/n]: "
echo.
echo if "%%removeChoice%%"=="y" ^(
echo del nvngx.dll
echo del OptiScaler.log
echo del %selectedFilename%
echo del DlssOverrides\*
echo rd DlssOverrides
echo del Licenses\*
echo rd Licenses
echo echo.
echo echo OptiScaler removed!
echo echo.
echo ^) else ^(
echo echo.
echo echo Operation cancelled.
echo echo.
echo ^)
echo.
echo pause
echo if "%%removeChoice%%"=="y" ^(
echo del %%0
echo ^)
) >> "Remove OptiScaler.bat"
echo.
echo Uninstaller created.
echo.
goto create_uninstaller_return