Written by @ItaloKnox
The patch installer (pictured above) was built entirely in Advanced Installer. It consists of two parts, which are going to be covered by this article:
- The main framework (built in Advanced Installer)
- The installation code (built in Windows batch)
The installer uses the default installation method, with no complex changes. The executable bundles all the dependencies (aria2c, 7z) and a script (sample below) that pulls the latest installer code from our Resources repository. It can be easily replaced with a zip containing all the dependencies, a better script that handles the download using available base command line tools or a different installer creator.
@echo off SETLOCAL EnableDelayedExpansion for /F "tokens=1,2 delims=#" %%a in ('"prompt #$H#$E# & echo on & for %%b in (1) do rem"') do ( set "DEL=%%a" ) call :colorEcho a0 "Removing the current installation script..." echo. call :colorEcho 0a "If you get an error, this is completely normal!" echo. del .\install.bat > nul timeout /t 2 > nul call :colorEcho a0 "Downloading the installation script..." echo. timeout /t 3 > nul .\aria2c.exe -o install.bat https://raw.githubusercontent.com/07th-mod/resources/master/onikakushi/install.bat call :colorEcho a0 "Running the installation script..." echo. timeout /t 3 > nul call install.bat exit :colorEcho echo off <nul set /p ".=%DEL%" > "%~2" findstr /v /a:%1 /R "^$" "%~2" nul del "%~2" > nul 2>&1i
After the user selects the install folder and start the installation, the installer will unpack the dependencies into a folder called
temp, that is located at
** equals the chapter number). This
temp folders holds all the base files to install the patch, as pictured below:
7zxa.dllare 7-zip dependencies required to extract the patch.
aria2c.exeis a dependency required to download the patch.
Onikakushi Patch Installer.exeis a converted Windows batch file (
*.bat) that uses the code sampled above. We have a flaw in Advanced Installer that makes us unable to call Powershell using a regular
.batinstead of the
.exefile. See the next page for more details.
installer.batis the file pulled from our Resources repository to download and install the patch. See the next page for more details.
updater.batis the file pulled from our Resources repository to update the patch without requiring a new installation. It uses the file
local.txt(that holds the link to the latest patch) to keep the version tracking. See the next page for more details.
The current installer settings ends prematurely leaving only the command line window (that runs
installer.bat) open. This is a known issue, but it doesn't affect the usage or installation. The ideal scenario would be to have the installation window close after the command line window finished working, closing the two at the same time and showing the success message.
For the breakdown on how the installation code works, see the next page: Code overview.