Merge branch 'new-install' into 'master'

Add new Windows installer scripts

See merge request STJr/SRB2!356
This commit is contained in:
Digiku 2018-12-03 07:45:05 -05:00
commit 1b6ec9fd33
11 changed files with 565 additions and 0 deletions

9
windows-installer/.gitignore vendored Normal file
View file

@ -0,0 +1,9 @@
*
*.*
!new-install
!sfx
!! MAKE SURE FILES ARE IN new-install ARCHIVE FOLDER !.txt
!BuildInstaller.bat
!README.txt
!VersionFileName.txt
!.gitignore

View file

@ -0,0 +1,67 @@
set "SCRIPTDIR=%~dp0"
set "SCRIPTDIR=%SCRIPTDIR:~0,-1%"
IF [%SRB2VERSIONNAME%] == [] set /p SRB2VERSIONNAME=<"%SCRIPTDIR%\VersionFileName.txt"
:: Find 7z
set SVZIP=
if [%1] == [] (
echo.
) else (
echo.%~1 | findstr /C:"7z" 1>nul
if errorlevel 1 (
echo.
) else (
if exist "%~1" set "SVZIP=%~1"
)
)
if ["%SVZIP%"] == [""] (
if exist "%ProgramFiles(x86)%\7-Zip\7z.exe" set "SVZIP=%ProgramFiles(x86)%\7-Zip\7z.exe"
if exist "%ProgramFiles%\7-Zip\7z.exe" set "SVZIP=%ProgramFiles%\7-Zip\7z.exe"
if exist "%ProgramW6432%\7-Zip\7z.exe" set "SVZIP=%ProgramW6432%\7-Zip\7z.exe"
)
:: Operate on install archives
type NUL > "%SCRIPTDIR%\new-install\staging.txt"
if exist "%SCRIPTDIR%\Installer.7z" (
if ["%SVZIP%"] == [""] (
echo.
) else (
"%SVZIP%" a "%SCRIPTDIR%\Installer.7z" "%SCRIPTDIR%\new-install"
)
copy /y /b "%SCRIPTDIR%\sfx\7zsd_LZMA2.sfx" + "%SCRIPTDIR%\sfx\config-installer.txt" + "%SCRIPTDIR%\Installer.7z" "%SCRIPTDIR%\SRB2-%SRB2VERSIONNAME%-Installer.exe"
)
if exist "%SCRIPTDIR%\Patch.7z" (
if ["%SVZIP%"] == [""] (
echo.
) else (
"%SVZIP%" a "%SCRIPTDIR%\Patch.7z" "%SCRIPTDIR%\new-install\"
)
copy /y /b "%SCRIPTDIR%\sfx\7zsd_LZMA2.sfx" + "%SCRIPTDIR%\sfx\config-patch.txt" + "%SCRIPTDIR%\Patch.7z" "%SCRIPTDIR%\SRB2-%SRB2VERSIONNAME%-Patch.exe"
)
if exist "%SCRIPTDIR%\Installer_x64.7z" (
if ["%SVZIP%"] == [""] (
echo.
) else (
"%SVZIP%" a "%SCRIPTDIR%\Installer_x64.7z" "%SCRIPTDIR%\new-install\"
)
copy /y /b "%SCRIPTDIR%\sfx\7zsd_LZMA2_x64.sfx" + "%SCRIPTDIR%\sfx\config-installer.txt" + "%SCRIPTDIR%\Installer_x64.7z" "%SCRIPTDIR%\SRB2-%SRB2VERSIONNAME%-x64-Installer.exe"
)
if exist "%SCRIPTDIR%\Patch_x64.7z" (
if ["%SVZIP%"] == [""] (
echo.
) else (
"%SVZIP%" a "%SCRIPTDIR%\Patch_x64.7z" "%SCRIPTDIR%\new-install\"
)
copy /y /b "%SCRIPTDIR%\sfx\7zsd_LZMA2_x64.sfx" + "%SCRIPTDIR%\sfx\config-patch.txt" + "%SCRIPTDIR%\Patch_x64.7z" "%SCRIPTDIR%\SRB2-%SRB2VERSIONNAME%-x64-Patch.exe"
)
del /f /q "%SCRIPTDIR%\new-install\staging.txt"

View file

@ -0,0 +1,48 @@
Windows Install Builder
for SRB2
This installer is much like the 7-Zip self-extracting archive, except
this allows for scripting the post-install step.
This also allows for some light customization, including dialog messages
and program shortcuts.
The included install scripts manage the game data location depending on the
install location -- if installed in Program Files or AppData\Local, the
game data location is set to %UserProfile%\SRB2.
Program shortcuts are also added, as well as an uninstaller that
will remove the icons and also selectively uninstall the core game files.
The uninstaller gives you the option to preserve your game data and mods.
How to Use
----------
1. Zip up the install contents in 7z format.
* ALL FILES MUST BE IN THE `new-install/` ARCHIVE SUBFOLDER, OR THE
POST-INSTALL SCRIPT WILL NOT WORK!
* Make sure you are using the LZMA2 algorithm, which is 7-Zip's default.
2. Copy the 7z archive to this folder using the following names:
* Installer.7z - 32-bit full installer
* Patch.7z - 32-bit patch
* Installer_x64.7z - 64-bit full installer
* Patch_x64.7z - 64-bit patch
3. Set the text in VersionFilename.txt to the version identifier for the
installer's filename.
* e.g., v2121 for v2.1.21, from "SRB2-v2121-Installer.exe"
* Also look through sfx/config-installer.txt and sfx/config-patch.txt
and update the version strings. Templating is TODO.
4. Run BuildInstaller.bat [7z.exe install path]
* First argument is the path to 7z.exe. If this is not specified, the
script will try to look for it in C:\Program Files [(x86)]
* This script will automatically add the install scripts to each
installer.
Credit
------
OlegScherbakov/7zSFX
https://github.com/OlegScherbakov/7zSFX

View file

@ -0,0 +1 @@
v2121

View file

@ -0,0 +1,253 @@
@echo off
cls
:: SRB2 Install Staging
::
:: This accomplishes the following tasks:
::
:: 1. Creates a user profile folder if SRB2 is installed in AppData or Program Files, and config.cfg is not already in the install folder
::
:: 2. Moves old installation files into old-install
::
:: 3. Moves new installaton files into install folder
::
:: For 2.1.21, we are changing the DLL structure
:: So move everything that's EXE or DLL
set MoveOldExesDlls=1
:: Get Parent folder (the SRB2 install folder)
::
:: https://wiert.me/2011/08/30/batch-file-to-get-parent-directory-not-the-directory-of-the-batch-file-but-the-parent-of-that-directory/
set "STAGINGDIR=%~dp0"
:: strip trailing backslash
set "STAGINGDIR=%STAGINGDIR:~0,-1%"
:: ~dp only works for batch file parameters and loop indexes
for %%d in ("%STAGINGDIR%") do set INSTALLDIR=%%~dpd
set "INSTALLDIR=%INSTALLDIR:~0,-1%"
:: FAILSAFE: Check if staging.txt exists in the directory
:: If not, exit, so we don't mess up anything by accident.
if exist "%STAGINGDIR%\staging.txt" (
echo.
) else (
exit
)
:: Check if we need to create %userprofile%\SRB2
set "USERDIR=%INSTALLDIR%"
:: Is config.cfg in our install dir?
if exist "%INSTALLDIR%\config.cfg" goto MoveOldInstall
:: Are we in AppData?
echo.%STAGINGDIR% | findstr /C:"%LocalAppData%" 1>nul
if errorlevel 1 (
echo.
) else (
goto SetUserDir
)
: Are we in Program Files?
echo.%STAGINGDIR% | findstr /C:"%ProgramFiles%" 1>nul
if errorlevel 1 (
echo.
) else (
goto SetUserDir
)
:: Are we in Program Files (x86)?
echo.%STAGINGDIR% | findstr /C:"%ProgramFiles(X86)%" 1>nul
if errorlevel 1 (
echo.
) else (
goto SetUserDir
)
:: Are we 32-bit and actually in Program Files?
echo.%STAGINGDIR% | findstr /C:"%ProgramW6432%" 1>nul
if errorlevel 1 (
echo.
) else (
goto SetUserDir
)
goto MoveOldInstall
: SetUserDir
:: If the user folder already exists, there's nothing to do
set "USERDIR=%UserProfile%\SRB2"
:: set USERDIREXISTS=
:: if exist "%USERDIR%\*" (
:: set USERDIREXISTS=1
:: )
:: Make the folder!
mkdir "%USERDIR%"
:: Now copy READMEs
:: echo f answers xcopy's prompt as to whether the destination is a file or a folder
echo f | xcopy /y "%STAGINGDIR%\README.txt" "%USERDIR%\README.txt"
echo f | xcopy /y "%STAGINGDIR%\LICENSE.txt" "%USERDIR%\LICENSE.txt"
echo f | xcopy /y "%STAGINGDIR%\LICENSE-3RD-PARTY.txt" "%USERDIR%\LICENSE-3RD-PARTY.txt"
echo Your game data and mods folder is: > "%USERDIR%\! Data and Mods Go Here !.txt"
echo. >> "%USERDIR%\! Data and Mods Go Here !.txt"
echo %USERDIR% >> "%USERDIR%\! Data and Mods Go Here !.txt"
echo. >> "%USERDIR%\! Data and Mods Go Here !.txt"
echo Your install folder is: >> "%USERDIR%\! Data and Mods Go Here !.txt"
echo. >> "%USERDIR%\! Data and Mods Go Here !.txt"
echo %INSTALLDIR% >> "%USERDIR%\! Data and Mods Go Here !.txt"
echo. >> "%USERDIR%\! Data and Mods Go Here !.txt"
echo To run SRB2, go to: >> "%USERDIR%\! Data and Mods Go Here !.txt"
echo. >> "%USERDIR%\! Data and Mods Go Here !.txt"
echo Start Menu ^> Programs ^> Sonic Robo Blast 2 >> "%USERDIR%\! Data and Mods Go Here !.txt"
:: Copy path to install folder
set SCRIPT="%TEMP%\%RANDOM%-%RANDOM%-%RANDOM%-%RANDOM%.vbs"
echo Set oWS = WScript.CreateObject("WScript.Shell") >> %SCRIPT%
echo sLinkFile = "%USERDIR%\! SRB2 Install Folder !.lnk" >> %SCRIPT%
echo Set oLink = oWS.CreateShortcut(sLinkFile) >> %SCRIPT%
echo oLink.TargetPath = "%INSTALLDIR%" >> %SCRIPT%
echo oLink.WorkingDirectory = "%INSTALLDIR%" >> %SCRIPT%
echo oLink.Arguments = "" >> %SCRIPT%
echo oLink.IconLocation = "%INSTALLDIR%\srb2win.exe,0" >> %SCRIPT%
echo oLink.Save >> %SCRIPT%
cscript /nologo %SCRIPT%
del %SCRIPT%
:: Also do it the other way around
set SCRIPT="%TEMP%\%RANDOM%-%RANDOM%-%RANDOM%-%RANDOM%.vbs"
echo Set oWS = WScript.CreateObject("WScript.Shell") >> %SCRIPT%
echo sLinkFile = "%INSTALLDIR%\! SRB2 Data Folder !.lnk" >> %SCRIPT%
echo Set oLink = oWS.CreateShortcut(sLinkFile) >> %SCRIPT%
echo oLink.TargetPath = "%USERDIR%" >> %SCRIPT%
echo oLink.WorkingDirectory = "%USERDIR%" >> %SCRIPT%
echo oLink.Arguments = "" >> %SCRIPT%
echo oLink.IconLocation = "%INSTALLDIR%\srb2win.exe,0" >> %SCRIPT%
echo oLink.Save >> %SCRIPT%
cscript /nologo %SCRIPT%
del %SCRIPT%
: MoveOldInstall
if exist "%INSTALLDIR%\old-install\*" (
set "OLDINSTALLDIR=%INSTALLDIR%\old-install-%RANDOM%"
) else (
set "OLDINSTALLDIR=%INSTALLDIR%\old-install"
)
mkdir "%OLDINSTALLDIR%"
:
: Move all EXEs and DLLs
:
set OLDINSTALLCHANGED=
if ["%MoveOldExesDlls%"] == ["1"] (
goto MoveOldInstallExeDll
) else (
goto MoveOldInstallNewFiles
)
: MoveOldInstallExeDll
xcopy /y /v "%INSTALLDIR%\*.exe" "%OLDINSTALLDIR%"
if errorlevel 0 del /f /q "%INSTALLDIR%\*.exe"
xcopy /y /v "%INSTALLDIR%\*.dll" "%OLDINSTALLDIR%"
if errorlevel 0 del /f /q "%INSTALLDIR%\*.dll"
for %%F in ("%OLDINSTALLDIR%\*") DO (
set OLDINSTALLCHANGED=1
goto MoveOldInstallNewFiles
)
: MoveOldInstallNewFiles
:: Save a list of standard files
:: So the uninstall script will know what to remove
:: Append to any existing file, in case we are a patch
dir /b /a-d "%STAGINGDIR%" >> "%INSTALLDIR%\uninstall-list.txt"
:: Overwrite the last known gamedata folder
echo %USERDIR% > "%INSTALLDIR%\uninstall-userdir.txt"
:: Add the install-generated to the uninstall list
echo uninstall-list.txt >> "%INSTALLDIR%\uninstall-list.txt"
echo uninstall-userdir.txt >> "%INSTALLDIR%\uninstall-list.txt"
echo ! SRB2 Data Folder !.lnk >> "%INSTALLDIR%\uninstall-list.txt"
:: Start moving files
for %%F in ("%STAGINGDIR%\*") DO (
if exist "%INSTALLDIR%\%%~nxF" (
set OLDINSTALLCHANGED=1
move "%INSTALLDIR%\%%~nxF" "%OLDINSTALLDIR%\%%~nxF"
)
if ["%%~nxF"] == ["staging.bat"] (
echo.
) else (
if ["%%~nxF"] == ["staging.txt"] (
echo.
) else (
move "%STAGINGDIR%\%%~nxF" "%INSTALLDIR%\%%~nxF"
)
)
)
: Finished
set MSGEXE=
if exist "%SystemRoot%\System32\msg.exe" (
set MSGEXE=%SystemRoot%\System32\msg.exe
) else (
if exist "%SystemRoot%\Sysnative\msg.exe" (
set MSGEXE=%SystemRoot%\Sysnative\msg.exe
)
)
if ["%OLDINSTALLCHANGED%"] == ["1"] (
"%systemroot%\explorer.exe" /select, "%OLDINSTALLDIR%"
echo Finished! Some of your old installation files were moved to the "old-install" folder. > %TEMP%\srb2msgprompt.txt
echo. >> %TEMP%\srb2msgprompt.txt
echo If you no longer need these files, you may delete the folder safely. >> %TEMP%\srb2msgprompt.txt
echo. >> %TEMP%\srb2msgprompt.txt
echo To run SRB2, go to: Start Menu ^> Programs ^> Sonic Robo Blast 2. >> %TEMP%\srb2msgprompt.txt
%MSGEXE% "%username%" < %TEMP%\srb2msgprompt.txt
del %TEMP%\srb2msgprompt.txt
) else (
if /I ["%USERDIR%"] == ["%INSTALLDIR%"] (
"%systemroot%\explorer.exe" "%INSTALLDIR%"
echo Finished! > %TEMP%\srb2msgprompt.txt
echo. >> %TEMP%\srb2msgprompt.txt
echo To run SRB2, go to: Start Menu ^> Programs ^> Sonic Robo Blast 2. >> %TEMP%\srb2msgprompt.txt
%MSGEXE% "%username%" < %TEMP%\srb2msgprompt.txt
del %TEMP%\srb2msgprompt.txt
) else (
"%systemroot%\explorer.exe" "%USERDIR%"
echo Finished! You may find your game data in this folder: > %TEMP%\srb2msgprompt.txt
echo. >> %TEMP%\srb2msgprompt.txt
echo %USERDIR% >> %TEMP%\srb2msgprompt.txt
echo. >> %TEMP%\srb2msgprompt.txt
echo To run SRB2, go to: Start Menu ^> Programs ^> Sonic Robo Blast 2. >> %TEMP%\srb2msgprompt.txt
%MSGEXE% "%username%" < %TEMP%\srb2msgprompt.txt
del %TEMP%\srb2msgprompt.txt
)
)
: Attempt to remove OLDINSTALLDIR, in case it's empty
rmdir /q "%OLDINSTALLDIR%"
cd \
start "" /b "cmd" /s /c " del /f /q "%STAGINGDIR%\*"&rmdir /s /q "%STAGINGDIR%"&exit /b "

View file

@ -0,0 +1,139 @@
@echo off
cls
set "INSTALLDIR=%~dp0"
set "INSTALLDIR=%INSTALLDIR:~0,-1%"
set /p USERDIR=<"%INSTALLDIR%\uninstall-userdir.txt"
set "USERDIR=%USERDIR:~0,-1%"
: ProceedPrompt
set PROCEED=
set /p PROCEED="Are you sure you want to uninstall SRB2? [yes/no] "
if /I ["%PROCEED:~0,1%"] == ["n"] exit
if /I ["%PROCEED%"] == ["y"] (
echo Type Yes or No
echo.
goto ProceedPrompt
) else (
if /I ["%PROCEED%"] == ["yes"] (
set PROCEED=1
) else (
echo.
goto ProceedPrompt
)
)
:: Failsafe, in case we Ctrl+C and decline "Terminate batch file?"
if ["%PROCEED%"] == ["1"] (
echo.
) else (
exit
)
: DeleteFiles
for /F "usebackq tokens=*" %%A in ("%INSTALLDIR%\uninstall-list.txt") do (
if exist "%INSTALLDIR%\%%A" (
if ["%%A"] == ["%~nx0"] (
echo.
) else (
echo Deleting %INSTALLDIR%\%%A
del /q /f "%INSTALLDIR%\%%A"
)
)
)
: AllDone
:: Delete the program icons
echo Deleting your program icons...
echo.
cd \
rmdir /s /q "%AppData%\Microsoft\Windows\Start Menu\Programs\Sonic Robo Blast 2"
:: Check if our install folder is non-empty
set USERDIRFILLED=
set INSTALLDIRFILLED=
for /F %%i in ('dir /b /a "%USERDIR%\*"') do (
if ["%%i"] == ["%~nx0"] (
echo.
) else (
set USERDIRFILLED=1
goto InstallFilledCheck
)
)
: InstallFilledCheck
if /I ["%USERDIR%"] == ["%INSTALLDIR%"] (
echo.
) else (
for /F %%i in ('dir /b /a "%INSTALLDIR%\*"') do (
if ["%%i"] == ["%~nx0"] (
echo.
) else (
set INSTALLDIRFILLED=1
goto Final
)
)
)
: Final
echo All done! Visit http://www.srb2.org if you want to play SRB2 again!
echo.
set "FINALPROMPT=Press Enter key to exit."
if ["%USERDIRFILLED%"] == ["1"] (
echo We left your game data and mods alone, so you may delete those manually.
echo.
echo %USERDIR%
echo.
set "FINALPROMPT=Do you want to view your data? [yes/no]"
)
if ["%INSTALLDIRFILLED%"] == ["1"] (
echo We left some extra files alone in your install folder.
echo.
echo %INSTALLDIR%
echo.
set "FINALPROMPT=Do you want to view your data? [yes/no]"
)
set FINALRESPONSE=
set /p FINALRESPONSE="%FINALPROMPT% "
if ["%FINALPROMPT%"] == ["Press Enter key to exit."] (
echo.
) else (
if /I ["%FINALRESPONSE:~0,1%"] == ["y"] (
if ["%USERDIRFILLED%"] == ["1"] (
"%SystemRoot%\explorer.exe" "%USERDIR%"
)
if ["%INSTALLDIRFILLED%"] == ["1"] (
"%SystemRoot%\explorer.exe" "%INSTALLDIR%"
)
) else (
if ["%FINALRESPONSE%"] == [""] (
if ["%USERDIRFILLED%"] == ["1"] (
"%SystemRoot%\explorer.exe" "%USERDIR%"
)
if ["%INSTALLDIRFILLED%"] == ["1"] (
"%SystemRoot%\explorer.exe" "%INSTALLDIR%"
)
)
)
)
: DeferredDelete
:: Now let's delete our installation folder!
cd \
start "" /b "cmd" /s /c " del /q /f "%INSTALLDIR%\uninstall.bat"&timeout /t 2 > NUL&rmdir "%INSTALLDIR%"&exit /b "

Binary file not shown.

Binary file not shown.

View file

@ -0,0 +1,24 @@
;!@Install@!UTF-8!
GUIFlags="8+32+64+4096"
GUIMode="1"
Title="Sonic Robo Blast 2 v2.1.21"
BeginPrompt="Sonic Robo Blast 2 v2.1.21\nFull Installer\n\nSelect a folder to install SRB2 in.\n\nIf you install in AppData\\Local or Program Files, your game data will be saved to:\n%UserProfile%\\SRB2\n\nOtherwise, your game data will be in the installation folder.\n\nShortcuts will be created in your Start Menu."
ExtractPathText="Installation folder:"
InstallPath="%LocalAppData%\\SRB2"
ExtractTitle="Installing..."
ExtractDialogText="Installing SRB2 v2.1.21...\n\nCheck out our modding community!\nWe make levels, characters, and much more!\n\nVisit http://www.srb2.org/mods"
Shortcut="Pu,{%%T\\srb2win.exe},{},{Sonic Robo Blast 2},{Sonic Robo Blast 2 (SRB2), a 3D Sonic the Hedgehog fangame.},{SRB2},{%%T\\},{%%T\\srb2win.exe},{0}"
Shortcut="Pu,{%%T\\srb2win.exe},{-win},{Sonic Robo Blast 2},{Sonic Robo Blast 2 (SRB2), a 3D Sonic the Hedgehog fangame.},{SRB2 (Windowed)},{%%T\\},{%%T\\srb2win.exe},{0}"
Shortcut="Pu,{%%T\\srb2win.exe},{-opengl},{Sonic Robo Blast 2},{Sonic Robo Blast 2 (SRB2), a 3D Sonic the Hedgehog fangame.},{SRB2 (OpenGL)},{%%T\\},{%%T\\srb2win.exe},{0}"
Shortcut="Pu,{%%T\\srb2win.exe},{-opengl -win},{Sonic Robo Blast 2},{Sonic Robo Blast 2 (SRB2), a 3D Sonic the Hedgehog fangame.},{SRB2 (OpenGL, Windowed)},{%%T\\},{%%T\\srb2win.exe},{0}"
Shortcut="Pu,{%%T\\srb2dd.exe},{},{Sonic Robo Blast 2},{Sonic Robo Blast 2 (SRB2), a 3D Sonic the Hedgehog fangame.},{SRB2 (DirectDraw)},{%%T\\},{%%T\\srb2dd.exe},{0}"
Shortcut="Pu,{%%T\\srb2dd.exe},{-win},{Sonic Robo Blast 2},{Sonic Robo Blast 2 (SRB2), a 3D Sonic the Hedgehog fangame.},{SRB2 (DirectDraw, Windowed)},{%%T\\},{%%T\\srb2dd.exe},{0}"
Shortcut="Pu,{cmd.exe},{/c \"%%T\\uninstall.bat\"},{Sonic Robo Blast 2},{Sonic Robo Blast 2 (SRB2), a 3D Sonic the Hedgehog fangame.},{Uninstall SRB2},{%%T\\},{shell32.dll},{31}"
RunProgram="nowait:\"%%T\\new-install\\staging.bat\""
;!@InstallEnd@!

View file

@ -0,0 +1,24 @@
;!@Install@!UTF-8!
GUIFlags="8+32+64+4096"
GUIMode="1"
Title="Sonic Robo Blast 2 v2.1.21"
BeginPrompt="Sonic Robo Blast 2 v2.1.21\nPatch Installer\n\nYou must have at least v2.1.15 to use this patch.\n\nSelect your current SRB2 folder.\n\nShortcuts will be created in your Start Menu."
ExtractPathText="Current SRB2 folder:"
InstallPath="%LocalAppData%\\SRB2"
ExtractTitle="Installing..."
ExtractDialogText="Installing SRB2 v2.1.21...\n\nCheck out our modding community!\nWe make levels, characters, and much more!\n\nVisit http://www.srb2.org/mods"
Shortcut="Pu,{%%T\\srb2win.exe},{},{Sonic Robo Blast 2},{Sonic Robo Blast 2 (SRB2), a 3D Sonic the Hedgehog fangame.},{SRB2},{%%T\\},{%%T\\srb2win.exe},{0}"
Shortcut="Pu,{%%T\\srb2win.exe},{-win},{Sonic Robo Blast 2},{Sonic Robo Blast 2 (SRB2), a 3D Sonic the Hedgehog fangame.},{SRB2 (Windowed)},{%%T\\},{%%T\\srb2win.exe},{0}"
Shortcut="Pu,{%%T\\srb2win.exe},{-opengl},{Sonic Robo Blast 2},{Sonic Robo Blast 2 (SRB2), a 3D Sonic the Hedgehog fangame.},{SRB2 (OpenGL)},{%%T\\},{%%T\\srb2win.exe},{0}"
Shortcut="Pu,{%%T\\srb2win.exe},{-opengl -win},{Sonic Robo Blast 2},{Sonic Robo Blast 2 (SRB2), a 3D Sonic the Hedgehog fangame.},{SRB2 (OpenGL, Windowed)},{%%T\\},{%%T\\srb2win.exe},{0}"
Shortcut="Pu,{%%T\\srb2dd.exe},{},{Sonic Robo Blast 2},{Sonic Robo Blast 2 (SRB2), a 3D Sonic the Hedgehog fangame.},{SRB2 (DirectDraw)},{%%T\\},{%%T\\srb2dd.exe},{0}"
Shortcut="Pu,{%%T\\srb2dd.exe},{-win},{Sonic Robo Blast 2},{Sonic Robo Blast 2 (SRB2), a 3D Sonic the Hedgehog fangame.},{SRB2 (DirectDraw, Windowed)},{%%T\\},{%%T\\srb2dd.exe},{0}"
Shortcut="Pu,{cmd.exe},{/c \"%%T\\uninstall.bat\"},{Sonic Robo Blast 2},{Sonic Robo Blast 2 (SRB2), a 3D Sonic the Hedgehog fangame.},{Uninstall SRB2},{%%T\\},{shell32.dll},{31}"
RunProgram="nowait:\"%%T\\new-install\\staging.bat\""
;!@InstallEnd@!