| 1 | @echo off | 
 
 
 
 
 | 2 |  | 
 
 
 
 
 | 3 | set MD5_VANILLA="7d96ffd6da21cc3f419e42f7227642fd" | 
 
 
 
 
 | 4 | set MD5_FIRST63="50374bed7f84c51bdcdcefd6300ddb84" | 
 
 
 
 
 | 5 | set MD5_LAST32="c5e46781d21cd4414e92d91502512500" | 
 
 
 
 
 | 6 |  | 
 
 
 
 
 | 7 | echo Welcome to the Oni 2 (Angel Studios) Layout Patch Tool. | 
 
 
 
 
 | 8 |  | 
 
 
 
 
 | 9 | if "%~1" == "" ( | 
 
 
 
 
 | 10 | echo You need to pass me the path to your ISO of Oni 2. Exiting. | 
 
 
 
 
 | 11 | exit /b | 
 
 
 
 
 | 12 | ) | 
 
 
 
 
 | 13 |  | 
 
 
 
 
 | 14 | if not exist "%~1" ( | 
 
 
 
 
 | 15 | echo Hmm, there doesn't seem to be any file at the path you passed me. Exiting. | 
 
 
 
 
 | 16 | exit /b | 
 
 
 
 
 | 17 | ) | 
 
 
 
 
 | 18 |  | 
 
 
 
 
 | 19 | echo Verifying checksum... | 
 
 
 
 
 | 20 |  | 
 
 
 
 
 | 21 | setlocal enableDelayedExpansion | 
 
 
 
 
 | 22 | set count=1 | 
 
 
 
 
 | 23 | for /f "tokens=* USEBACKQ" %%L in (`CertUtil -hashfile %~1 MD5`) do ( | 
 
 
 
 
 | 24 | if !count! == 2 set MD5_INPUT=%%L | 
 
 
 
 
 | 25 | set /a count=!count!+1 | 
 
 
 
 
 | 26 | ) | 
 
 
 
 
 | 27 |  | 
 
 
 
 
 | 28 | if not "!MD5_INPUT!" == !MD5_VANILLA! ( | 
 
 
 
 
 | 29 | if "!MD5_INPUT!" == !MD5_FIRST! ( | 
 
 
 
 
 | 30 | echo This version is already patched to enabled the first 63 layouts! You should see them in the Load Game menu. | 
 
 
 
 
 | 31 | ) else if "!MD5_INPUT!" == !MD5_LAST32! ( | 
 
 
 
 
 | 32 | echo This version is already patched to enabled the last 32 layouts! You should see them in the Load Game menu. | 
 
 
 
 
 | 33 | ) else ( | 
 
 
 
 
 | 34 | echo Unknown checksum! Sorry, this ISO isn't what I expected. | 
 
 
 
 
 | 35 | ) | 
 
 
 
 
 | 36 |  | 
 
 
 
 
 | 37 | echo Exiting | 
 
 
 
 
 | 38 | exit /b | 
 
 
 
 
 | 39 | ) | 
 
 
 
 
 | 40 |  | 
 
 
 
 
 | 41 | echo You have supplied an unmodified ISO of Oni 2. Do you wish to create a patched | 
 
 
 
 
 | 42 | echo copy that enables the first 63 layouts or the last 32? Enter a number from | 
 
 
 
 
 | 43 | echo this menu: | 
 
 
 
 
 | 44 | echo ^(1^) First 63. | 
 
 
 
 
 | 45 | echo ^(2^) Last 32. | 
 
 
 
 
 | 46 | echo ^(anything else^) I changed my mind, please exit. | 
 
 
 
 
 | 47 | set /p the_answer= | 
 
 
 
 
 | 48 | if !the_answer! == 1 ( | 
 
 
 
 
 | 49 | echo Creating patched version... | 
 
 
 
 
 | 50 | xdelta3win.exe -ds "%~1" patchFromVanTo63.xd3 oni2dev_ps2_first63layouts.iso | 
 
 
 
 
 | 51 | echo Verifying checksum.... | 
 
 
 
 
 | 52 | set count=1 | 
 
 
 
 
 | 53 | for /f "tokens=* USEBACKQ" %%L in (`CertUtil -hashfile oni2dev_ps2_first63layouts.iso MD5`) do ( | 
 
 
 
 
 | 54 | if !count! == 2 set MD5_OUTPUT=%%L | 
 
 
 
 
 | 55 | set /a count=!count!+1 | 
 
 
 
 
 | 56 | ) | 
 
 
 
 
 | 57 | if not "!MD5_OUTPUT!" == !MD5_FIRST63! ( | 
 
 
 
 
 | 58 | echo Uh-oh, something went wrong^! Patch failed. Exiting. | 
 
 
 
 
 | 59 | exit /b | 
 
 
 
 
 | 60 | ) | 
 
 
 
 
 | 61 | ) else if !the_answer! == 2 ( | 
 
 
 
 
 | 62 | echo Creating patched version... | 
 
 
 
 
 | 63 | xdelta3win.exe -ds "%~1" patchFromVanTo32.xd3 oni2dev_ps2_last32layouts.iso | 
 
 
 
 
 | 64 | echo Verifying checksum.... | 
 
 
 
 
 | 65 | set count=1 | 
 
 
 
 
 | 66 | for /f "tokens=* USEBACKQ" %%L in (`CertUtil -hashfile oni2dev_ps2_last32layouts.iso MD5`) do ( | 
 
 
 
 
 | 67 | if !count! == 2 set MD5_OUTPUT=%%L | 
 
 
 
 
 | 68 | set /a count=!count!+1 | 
 
 
 
 
 | 69 | ) | 
 
 
 
 
 | 70 | if not "!MD5_OUTPUT!" == !MD5_LAST32! ( | 
 
 
 
 
 | 71 | echo Uh-oh, something went wrong^~ Patch failed. Exiting. | 
 
 
 
 
 | 72 | exit /b | 
 
 
 
 
 | 73 | ) | 
 
 
 
 
 | 74 | ) | 
 
 
 
 
 | 75 |  | 
 
 
 
 
 | 76 | echo Goodbye. | 
 
 
 
 
 | 77 | endlocal |