2025-04-15 11:50:30 +03:00

34801 lines
1.4 MiB

@echo off
setlocal
:top
::chdir /d "%~dp0"
pushd "%~dp0"
cls
if not exist support cd..
set cygwin=nodosfilewarning
set ModMiiDrive=%cd:~0,2%
set "PATH=%SystemRoot%\system32;%SystemRoot%\system32\wbem;%SystemRoot%;%SYSTEMROOT%\System32\WindowsPowerShell\v1.0"
if exist Support\settings.bat call Support\settings.bat
::65001 was used to fix paths with special characters like é for Sneek Installer, but caused rare slowdowns for some users so reverted back to 437. Other downloads may still fail if a special character exists in the path, but work fine if using the default COPY_TO_SD relative path.
chcp 437>nul
::chcp 65001>nul
::chcp 850>nul
::chcp 1252>nul
::PUSHD "%cd%"
::::PUSHD "%~dp0"
::POPD
set currentversion=8.0.3
set d2x-bundled=11-beta3
set currentversioncopy=%currentversion%
set agreedversion=
set "WiiPy=Support\wiipy\wiipy.exe"
::let's make this easy
set redtext=Red
set bluetext=Blue
set yellowtext=Yellow
set greentext=Green
set magentatext=Magenta
set cyantext=Cyan
set backgroundcolor=1
set whitetext=f
::-------------------CMD LINE SUPPORT----------------------
::getting args sent to ModMii, if applicable
::"ModMii" a b c d e f g h i
::equals
::"ModMii" %1 %2 %3 %4 %5 %6 %7 %8 %9
set one=
set "one=%~1"
::if not "%one%"=="" set cmdlinemode=Y \\ this check crashes if variable contains a single quote (as sometimes will happen when dragging a drive letter onto ModMii.exe, fixed below)
::instead check if ONE is defined by set (search for "one=") then set cmd line mode and remove quotes only if it exists
set|findstr /I /B /C:"one=">nul
IF NOT ERRORLEVEL 1 set cmdlinemode=Y
if /i "%cmdlinemode%" EQU "Y" set one=%one:"=%
set "two=%~2"
set "three=%~3"
set "four=%~4"
set "five=%~5"
set "six=%~6"
set "seven=%~7"
set "eight=%~8"
set "nine=%~9"
::one-nine will change single carets (^) to double (^^) ONLY when run via EXE (i.e. when ModMii.lnk exists), fixed below
if not exist Support\ModMii.lnk goto:nofix
set "one=%one:^^=^%"
set "two=%two:^^=^%"
set "three=%three:^^=^%"
set "four=%four:^^=^%"
set "five=%five:^^=^%"
set "six=%six:^^=^%"
set "seven=%seven:^^=^%"
set "eight=%eight:^^=^%"
set "nine=%nine:^^=^%"
:nofix
if exist Support\ModMii.lnk del Support\ModMii.lnk>nul
setlocal enableDelayedExpansion
set cmdinput="
set "cmdinput=!cmdcmdline!"
::if ONE is a function and not a dropped file, then revert to secondary method [set cmdinput=%*] primary method only works if calling the exe, not the bat
if /i "%one%" EQU "help" set cmdinput=%*
if /i "%one%" EQU "O" set cmdinput=%*
if /i "%one%" EQU "D" set cmdinput=%*
if /i "%one%" EQU "W" set cmdinput=%*
if /i "%one%" EQU "HS" set cmdinput=%*
if /i "%one%" EQU "RC" set cmdinput=%*
if /i "%one%" EQU "S" set cmdinput=%*
if /i "%one%" EQU "SE" set cmdinput=%*
if /i "%one%" EQU "U" set cmdinput=%*
if /i "%one%" EQU "E" set cmdinput=%*
if /i "%one%" EQU "AW" set cmdinput=%*
if /i "%one%" EQU "L" set cmdinput=%*
if /i "%one%" EQU "SU" set cmdinput=%*
::slash is wrong direction when launched via exe, correct it here:
set "cmdinput=!cmdinput:/Support/ModMii.bat=\Support\ModMii.bat!"
::remove bat name from cmdinput, appears sometimes depending how it's launched, actually replace with " to be removed later
set "cmdinput=!cmdinput:*%~f0="!"
::remove first term "C:\WINDOWS\system32\cmd.exe"
::set "cmdinput=!cmdinput:* =!"
::remove 2nd term "/c"
::set "cmdinput=!cmdinput:* =!"
::strip out unnecessary chars at start, disabled is it removed the first arg from cmdinput
::set "cmdinput=!cmdinput:*" =!"
::remove quotes
set "cmdinput=!cmdinput:"=!"
setlocal DISABLEDELAYEDEXPANSION
::remove leading space if applicable
if "%cmdinput%"=="" goto:skipfix
if /i "%cmdinput:~0,1%" EQU " " set "cmdinput=%cmdinput:~1%"
:skipfix
::in some cases above method will yield "C:\Windows\System32\cmd.exe", for these fall back on secondary method
if /i "%cmdinput%" NEQ "%homedrive%\Windows\System32\cmd.exe" goto:skipfix
set cmdinput=%*
set "cmdinput=%cmdinput:"=%"
:skipfix
::echo cmdinput: "%cmdinput%"
::echo one: "%one%"
::pause
::multidrop stuff done later!
NET SESSION >nul 2>&1
IF %ERRORLEVEL% EQU 0 (set adminmode=Y) else (set adminmode=N)
if /i "%adminmode%" EQU "Y" goto:donecheck
::check for write access
if exist "temp\test" goto:skip
mkdir "temp\test"
if not exist "temp\test" (goto:WriteError) else (goto:donecheck)
:skip
if not exist temp\test\test.txt goto:skip
del temp\test\test.txt>nul
if exist temp\test\test.txt (goto:WriteError) else (goto:donecheck)
:skip
echo test>temp\test\test.txt
if exist temp\test\test.txt goto:donecheck
:WriteError
::for skin mode, force screen to be visible
::support\nircmd.exe win activate ititle "ModMiiSkinCMD"
::support\nircmd.exe win trans ititle "ModMiiSkinCMD" 255
cls
echo ModMii needs to be run as an Administrator if saved to this directory.
echo Please either run ModMii from somewhere else like C:\ModMii or run as admin
echo.
echo Press any key to update shortcuts and run ModMii as administrator...
pause>nul
if not "%cmdinput%"=="" support\nircmd.exe shortcut "%cd%\ModMii.exe" "%temp%" "ModMii" "%cmdinput%"
if "%cmdinput%"=="" support\nircmd.exe shortcut "%cd%\ModMii.exe" "%temp%" "ModMii"
support\hexalter.exe "%temp%\ModMii.lnk" 0x15=0x20>nul
if exist "%userprofile%\Desktop\ModMii.lnk" support\hexalter.exe "%userprofile%\Desktop\ModMii.lnk" 0x15=0x20>nul
if exist "%userprofile%\Desktop\ModMii Skin.lnk" support\hexalter.exe "%userprofile%\Desktop\ModMii Skin.lnk" 0x15=0x20>nul
if exist "%appdata%\Microsoft\Windows\Start Menu\Programs\ModMii\ModMii.lnk" support\hexalter.exe "%appdata%\Microsoft\Windows\Start Menu\Programs\ModMii\ModMii.lnk" 0x15=0x20>nul
if exist "%appdata%\Microsoft\Windows\Start Menu\Programs\ModMii\ModMii Skin.lnk" support\hexalter.exe "%appdata%\Microsoft\Windows\Start Menu\Programs\ModMii\ModMii Skin.lnk" 0x15=0x20>nul
if exist "%appdata%\Microsoft\Windows\Start Menu\Programs\ModMii\Uninstall.lnk" support\hexalter.exe "%appdata%\Microsoft\Windows\Start Menu\Programs\ModMii\Uninstall.lnk" 0x15=0x20>nul
cd "%temp%"
start ModMii.lnk
exit
:donecheck
if exist "temp\test" rd /s /q "temp\test"> nul
IF "%AudioOption%"=="" set AudioOption=on
if "%ModMiiverbose%"=="" set ModMiiverbose=off
if "%skin%"=="" set skin=Default
if exist Support\settings.bat call Support\settings.bat
if exist "Support\Skins\%skin%\Success.mp3" (set "Success.mp3=Support\Skins\%skin%\Success.mp3") else (set "Success.mp3=Support\Skins\Default\Success.mp3")
if exist "Support\Skins\%skin%\Fail.mp3" (set "Fail.mp3=Support\Skins\%skin%\Fail.mp3") else (set "Fail.mp3=Support\Skins\Default\Fail.mp3")
if exist "Support\Skins\%skin%\splash.png" (set "splash.png=Support\Skins\%skin%\splash.png") else (set "splash.png=Support\Skins\Default\splash.png")
set CurrentDLNAME=
call "Support\subscripts\DB.bat"
if "%DRIVE%"=="" set DRIVE=COPY_TO_SD
::check if drive folder exists--if second char is ":" check if drive exists
if /i "%DRIVE:~1,1%" NEQ ":" goto:skipcheck
if exist Support\settings.bat support\sfk filter -spat Support\settings.bat -lsrep _"Set*Drive=%cd:_=\x5f%\\"_"Set Drive="_ -write -yes>nul
if exist Support\settings.bat support\sfk filter -spat Support\settings.bat -lsrep _"Set Drive="_"Set \x22Drive="_ -write -yes>nul
if exist Support\settings.bat call Support\settings.bat
if /i "%DRIVE:~1,1%" NEQ ":" goto:skipcheck
if exist "%DRIVE:~0,2%" (goto:skipcheck) else (set DRIVE=COPY_TO_SD)
if exist Support\settings.bat support\sfk filter Support\settings.bat -ls!"Set*Drive=" -write -yes>nul
echo Set "Drive=%DRIVE%">>Support\settings.bat
:skipcheck
if "%DRIVEU%"=="" set DRIVEU=COPY_TO_USB
::check if DRIVEU folder exists--if second char is ":" check if DRIVEU exists
if /i "%DRIVEU:~1,1%" NEQ ":" goto:skipcheck
::if /i "%DRIVEU%" EQU "%cd%\COPY_TO_USB" set DRIVEU=COPY_TO_USB
if exist Support\settings.bat support\sfk filter -spat Support\settings.bat -lsrep _"Set*DriveU=%cd:_=\x5f%\\"_"Set DriveU="_ -write -yes>nul
if exist Support\settings.bat support\sfk filter Support\settings.bat -lsrep _"Set DriveU="_"Set \x22DriveU="_ -write -yes>nul
if exist Support\settings.bat call Support\settings.bat
if /i "%DriveU:~1,1%" NEQ ":" goto:skipcheck
if exist "%DRIVEU:~0,2%" (goto:skipcheck) else (set DRIVEU=COPY_TO_USB)
if exist Support\settings.bat support\sfk filter Support\settings.bat -ls!"Set*DriveU=" -write -yes>nul
echo Set "DriveU=%DRIVEU%">>Support\settings.bat
:skipcheck
set d2x-beta-rev=%d2x-bundled%
if exist support\d2x-beta\d2x-beta.bat call support\d2x-beta\d2x-beta.bat
::get windows version, only 8.1 and above supported effective ModMii 8.0.0
if exist "temp\temp.txt" del "temp\temp.txt">nul
ver>temp\temp.txt
findStr /I /C:" 8.1" "temp\temp.txt" >nul
IF NOT ERRORLEVEL 1 (set winver=9) & (goto:continue)
support\sfk filter -quiet "temp\temp.txt" -rep _*" "__ -rep _"."*__ -write -yes
support\sfk filter -quiet "temp\temp.txt" -no-empty-lines -no-blank-lines -write -yes
set /p winver= <temp\temp.txt
::echo %winver%
if not exist "%homedrive%\Program Files (x86)" goto:winwarning
if /i %winver% GEQ 9 goto:continue
:winwarning
echo ModMii v8.0.0 and above requires 64-bit Windows 8.1 or higher
echo.
echo Some ModMii features will not work properly (i.e. NUS downloading, WAD (un)packing, building some non-d2x cIOSs, some EmuNANDs features, theme building, WAD editing, etc.)
echo.
if not exist ModMii_64bit.exe echo Should you continue, an alternate ModMii.exe Launcher will be downloaded to make things a bit better.
echo Hit any key to use ModMii anyway
pause>nul
if exist Support\settings.bat support\sfk filter Support\settings.bat -ls!"Set LegacyCIOS=" -write -yes>nul
Set LegacyCIOS=Y
echo Set LegacyCIOS=Y>>Support\settings.bat
::if exist "%homedrive%\Program Files (x86)" goto:skip
if exist ModMii_64bit.exe goto:skip
echo.
echo Downloading alternate ModMii.exe Launcher...
if not exist "temp\ModMii_Launcher_2.4_32bit.zip" support\wget --no-check-certificate -t 3 "https://raw.githubusercontent.com/modmii/modmii.github.io/master/temp/ModMii_Launcher_2.4_32bit.zip" -O "temp\ModMii_Launcher_2.4_32bit.zip" -q --show-progress
if not exist "temp\ModMii_Launcher_2.4_32bit.zip" (echo Download Failed, use Support\ModMii.bat, ModMii 7.0.3, or upgrade your Windows...) & (@ping 127.0.0.1 -n 2 -w 1000> nul) & (goto:skip)
support\7za x -aoa "temp\ModMii_Launcher_2.4_32bit.zip" -r ModMii_32bit.exe
if not exist ModMii_32bit.exe (del "temp\ModMii_Launcher_2.4_32bit.zip">nul) & (echo Download Failed, use Support\ModMii.bat, ModMii 7.0.3, or upgrade your Windows...) & (@ping 127.0.0.1 -n 2 -w 1000> nul) & (goto:skip)
move /y ModMii.exe ModMii_64bit.exe>nul
move /y ModMii_32bit.exe ModMii.exe>nul
goto:skip
:continue
::check for "microsoft visual c++ 2015-2022"
::if exist "%homedrive%\Program Files (x86)" (set dlname=hashmyfiles-x64.zip) else (set dlname=hashmyfiles.zip)
set MVCattempt=1
:MVC
if exist "temp\temp.reg" del "temp\temp.reg">nul
if exist "temp\temp.txt" del "temp\temp.txt">nul
if exist "%homedrive%\Program Files (x86)" START /MIN /WAIT REG EXPORT HKLM\SOFTWARE\WOW6432Node\Microsoft\VisualStudio\14.0\VC\Runtimes\X64 "temp\temp.reg" /Y
if not exist "%homedrive%\Program Files (x86)" START /MIN /WAIT REG EXPORT HKLM\SOFTWARE\WOW6432Node\Microsoft\VisualStudio\14.0\VC\Runtimes\X86 "temp\temp.reg" /Y
::if not exist temp\temp.reg (set MVCversion=0) & (goto:skip)
::cmd /a /c type "temp\temp.reg">"temp\temp.txt"
::support\sfk filter -spat -quiet "temp\temp.txt" -+"Version\x22=" -rep _"*=\x22v"__ -rep _"\x22"__ -write -yes
::set /p MVCversion= <temp\temp.txt
::if exist "temp\temp.txt" del "temp\temp.txt">nul
if exist temp\temp.reg goto:skip
if /i "%MVCattempt%" EQU "2" goto:MVCfail
::missing "microsoft visual c++ 2015-2022"
::https://learn.microsoft.com/en-us/cpp/windows/latest-supported-vc-redist?view=msvc-170&wt.mc_id=studentamb_203301#latest-microsoft-visual-c-redistributable-version
if exist "%homedrive%\Program Files (x86)" set "code2=https://aka.ms/vs/17/release/vc_redist.x64.exe" & set "dlname=vc_redist.x64.exe"
if not exist "%homedrive%\Program Files (x86)" set "code2=https://aka.ms/vs/17/release/vc_redist.x86.exe" & set "dlname=vc_redist.x86.exe"
echo ModMii v8.0.0 and above ^& WiiPy requires Microsoft Visual C++ 2015-2022
echo.
echo Downloading and launching installer...
echo.
support\wget --no-check-certificate -t 3 "%code2%" -O "temp\%dlname%" -q --show-progress
::delete if file is empty (if empty)
>nul findstr "^" "temp\%dlname%" || del "temp\%dlname%"
if exist "temp\%dlname%" goto:MVCinstall
echo Download Failed, check your connection or install it manually
echo.
echo Some ModMii features will not work properly (i.e. NUS downloading, WAD (un)packing, building some non-d2x cIOSs, some EmuNANDs features, theme building, WAD editing, etc.)
echo.
echo Hit any key to use ModMii anyway
pause>nul
goto:skip
:MVCfail
echo Installation Failed, try installing it manually
echo.
echo Some ModMii features will not work properly (i.e. NUS downloading, WAD (un)packing, building some non-d2x cIOSs, some EmuNANDs features, theme building, WAD editing, etc.)
echo.
echo Hit any key to use ModMii anyway
pause>nul
goto:skip
:MVCinstall
echo Launching installer and waiting for installation to finish...
echo.
::temp\%dlname% /install /passive /norestart
start /wait temp\%dlname% /install /passive /norestart
echo Rechecking...
echo.
if exist "temp\%dlname%" del "temp\%dlname%">nul
SET /a MVCattempt=%MVCattempt%+1
goto:MVC
:skip
if exist "temp\temp.reg" del "temp\temp.reg">nul
::in case game dump is left over for interrupted deflicker process, delete it now as it could potentially be pretty large
if exist "temp\witdump" rd /s /q "temp\witdump">nul
if exist "temp\__channel" rd /s /q "temp\__channel"> nul
if exist "temp\HBC_Transfer_" rd /s /q "temp\HBC_Transfer_">nul
::if not exist temp mkdir temp
if not exist temp\DownloadQueues mkdir temp\DownloadQueues
if exist Support\DownloadQueues\* move /y Support\DownloadQueues\* temp\DownloadQueues>nul
if exist Support\DownloadQueues rd /s /q "Support\DownloadQueues">nul
if not exist Support\More-cIOSs mkdir Support\More-cIOSs
::check for InstallForge Uninstall.exe, uninstall.dat and uninstall_l.ifl then move\rename to Support folder
if not exist uninstall.dat goto:skip
if exist uninstall.dat move /y uninstall.dat Support\uninstall.dat>nul
if exist uninstall_l.ifl move /y uninstall_l.ifl Support\uninstall_l.ifl>nul
if exist Uninstall.exe move /y Uninstall.exe Support\Uninstall2.exe>nul
:skip
if exist "support\subscripts\Uninstaller.exe" move /y "support\subscripts\Uninstaller.exe" Uninstall.exe>nul
if not exist "%appdata%\Microsoft\Windows\Start Menu\Programs\ModMii\" goto:skip
if not exist "%appdata%\Microsoft\Windows\Start Menu\Programs\ModMii\ModMii.lnk" support\nircmd.exe shortcut "%cd%\ModMii.exe" "~$folder.programs$\ModMii" "ModMii"
if not exist "%appdata%\Microsoft\Windows\Start Menu\Programs\ModMii\ModMii Skin.lnk" support\nircmd.exe shortcut "%cd%\ModMiiSkin.exe" "~$folder.programs$\ModMii" "ModMii Skin"
if not exist "%appdata%\Microsoft\Windows\Start Menu\Programs\ModMii\Uninstall.lnk" support\nircmd.exe shortcut "%cd%\Uninstall.exe" "~$folder.programs$\ModMii" "Uninstall"
if not exist "%appdata%\Microsoft\Windows\Start Menu\Programs\ModMii\Website & Help.lnk" support\nircmd.exe shortcut "https://modmii.github.io" "~$folder.programs$\ModMii" "Website & Help"
if not exist "%appdata%\Microsoft\Windows\Start Menu\Programs\ModMii\Open ModMii Folder.lnk" support\nircmd.exe shortcut "%windir%\explorer.exe" "~$folder.programs$\ModMii" "Open ModMii Folder" "%cd%\"
:skip
set UPDATENAME=ModMii
::set UPDATENAME=ModMii_IT_
if /i "%debug%" EQU "on" goto:skip
if exist Updatetemp.bat attrib -h Updatetemp.bat
if exist Updatetemp.bat del Updatetemp.bat>nul
:skip
::this next line will force d2x online version checks to be done once every time modmii is opened (as opposed to just once per day)
if exist "temp\d2xlist*.txt" del /f /q "temp\d2xlist*.txt"
::set to Y to keep some invalid files for debug purposes (or add "set KeepInvalidOverride=Y" to settings.bat), be sure to revert afterwards
if "%KeepInvalidOverride%"=="" set KeepInvalidOverride=N
if /i "%LegacyCIOS%" NEQ "Y" goto:skip
call Support\subscripts\dependency.bat LegacyCIOS
if /i "%dependency%" EQU "F" goto:RevertOverride
::.NET Framework 3.5 check+installation
call Support\subscripts\dependency.bat NETframework
if /i "%dependency%" EQU "F" goto:RevertOverride
goto:skip
:RevertOverride
echo Removing "set LegacyCIOS=Y" from settings because:
if not exist Support\WadMii.exe echo - Support\WadMii.exe is missing
if not exist Support\libWiiSharp.dll echo - Support\libWiiSharp.dll is missing
if not exist Support\tmdedit.exe echo - Support\tmdedit.exe is missing
if not exist Support\patchios.exe echo - Support\patchios.exe is missing
if not exist "%windir%\Microsoft.NET\Framework\v3.5" echo - .NET Framework 3.5 not installed
set LegacyCIOS=
if exist Support\settings.bat support\sfk filter Support\settings.bat -ls!"Set LegacyCIOS=" -write -yes>nul
@ping 127.0.0.1 -n 2 -w 1000> nul
:skip
::cmd line stuff
if /i "%cmdlinemode%" NEQ "Y" goto:notcmd
if /i "%two%" EQU "Help" goto:specificCMDhelp
if /i "%one%" EQU "O" goto:cmdlineOPTIONShelp
if /i "%one%" EQU "D" goto:cmdlineDhelp
if /i "%one%" EQU "W" goto:hardcodedoptions
if /i "%one%" EQU "HS" goto:hardcodedoptions
if /i "%one%" EQU "RC" goto:hardcodedoptions
if /i "%one%" EQU "S" goto:hardcodedoptions
if /i "%one%" EQU "SE" goto:hardcodedoptions
if /i "%one%" EQU "U" goto:hardcodedoptions
if /i "%one%" EQU "E" goto:hardcodedoptions
if /i "%one%" EQU "AW" goto:hardcodedoptions
if /i "%one%" EQU "L" goto:hardcodedoptions
if /i "%one%" EQU "SU" goto:hardcodedoptions
::---pure drag and drop stuff below---
::multidrop support, insert line breaks to split different dragged files arguments
::add check for multiple files by searching for more 2 or more colons ":"
set "string=%cmdinput%"
set /a filecount=0
setlocal EnableDelayedExpansion
if defined string (set ^"strtmp=!string::=^
%= empty string =%
!^") else set "strtmp="
for /F %%C in ('cmd /V /C echo(^^!strtmp^^!^| find /C /V ""') do set /A "filecount=%%C-1"
setlocal DISABLEDELAYEDEXPANSION
::echo "!string!" contains %filecount% files
if %filecount% LSS 2 goto:notMulti
echo "%cmdinput%">temp\MultiDrop.txt
support\sfk -spat filter temp\MultiDrop.txt -rep _\x22__ -rep _" A:"_"\nA:"_ -rep _" B:"_"\nB:"_ -rep _" C:"_"\nC:"_ -rep _" D:"_"\nD:"_ -rep _" E:"_"\nE:"_ -rep _" F:"_"\nF:"_ -rep _" G:"_"\nG:"_ -rep _" H:"_"\nH:"_ -rep _" I:"_"\nI:"_ -rep _" J:"_"\nJ:"_ -rep _" K:"_"\nK:"_ -rep _" L:"_"\nL:"_ -rep _" M:"_"\nM:"_ -rep _" N:"_"\nN:"_ -rep _" O:"_"\nO:"_ -rep _" P:"_"\nP:"_ -rep _" Q:"_"\nQ:"_ -rep _" R:"_"\nR:"_ -rep _" S:"_"\nS:"_ -rep _" T:"_"\nT:"_ -rep _" U:"_"\nU:"_ -rep _" V:"_"\nV:"_ -rep _" W:"_"\nW:"_ -rep _" X:"_"\nX:"_ -rep _" Y:"_"\nY:"_ -rep _" Z:"_"\nZ:"_ -rep _"^^"_"^"_ -write -yes>nul
set /p testme= <temp\MultiDrop.txt
if not exist "%testme%" goto:cmdlinehelp
start support\subscripts\MultiDrop.exe
exit
:notMulti
::recommended d2x version check = "RecD2XcIOS", but check no more than once per day
if not exist "%cmdinput%" goto:proceed
FOR /F "tokens=*" %%g IN ('support\sfk date') do (SET CurDate=%%g)
if not exist temp\d2xClassicCheck.txt echo whatever>temp\d2xClassicCheck.txt
findStr /I /X /C:"%CurDate% " "temp\d2xClassicCheck.txt" >nul
IF NOT ERRORLEVEL 1 goto:proceed
if exist temp\RecD2XcIOS.txt del temp\RecD2XcIOS.txt>nul
support\wget --no-check-certificate "https://github.com/xflak/stats/releases/latest/download/classic.txt" -O temp\RecD2XcIOS.txt -q
::delete if file is empty (if empty)
if exist "temp\RecD2XcIOS.txt" >nul findstr "^" "temp\RecD2XcIOS.txt" || del "temp\RecD2XcIOS.txt"
if not exist temp\RecD2XcIOS.txt goto:proceed
set /p RecD2XcIOS= <temp\RecD2XcIOS.txt
del "temp\RecD2XcIOS.txt">nul
if exist "Support\settings.bat" support\sfk filter -spat "Support\settings.bat" -ls!"set \x22RecD2XcIOS=" -write -yes>nul
echo Set "RecD2XcIOS=%RecD2XcIOS%">> Support\settings.bat
echo %CurDate% >temp\d2xClassicCheck.txt
:proceed
::syscheck updater drag and drop
if /i "%cmdinput:~-4%" EQU ".csv" (set one=SU) & (set cmdlinemodeswitchoff=Y) & (goto:hardcodedoptions)
::\bootmii.ini updater drag and drop
if /i "%cmdinput:~-12%" EQU "\bootmii.ini" set "bootmiiINI=%cmdinput%"
if /i "%cmdinput:~-12%" EQU "\bootmii.ini" (set one=BM) & (set cmdlinemodeswitchoff=Y) & (set MENU1=C) & (set configfile=BM) & (goto:nohardcodedoptions)
if /i "%cmdinput:~-4%" NEQ ".bat" goto:notbat
::check for "- Wizard Settings -"
findStr /I /C:"- Wizard Settings -" "%cmdinput%" >nul
IF NOT ERRORLEVEL 1 (set cmdlinemodeswitchoff=Y) & (set one=WL) & (set LoadWizSettings=Y) & (goto:go)
::check for download queue
findStr /I /C:":endofqueue" "%cmdinput%" >nul
IF ERRORLEVEL 1 goto:notbat
set one=L
set cmdlinemodeswitchoff=Y
goto:hardcodedoptions
:notbat
::---------------ModMii nand tools---------------
if /i "%cmdinput:~-4%" NEQ ".bin" goto:notbin
if not exist "%cmdinput%" goto:notbin
if exist "%cmdinput%\" goto:notbin
title ModMii nand tools
::Checking files size...
for %%A in ("%cmdinput%") do set binsize=%%~zA
::echo file size: %binsize% bytes
if /i "%binsize%" EQU "553649152" goto:binDrop
if /i "%binsize%" EQU "553648128" goto:nandfix
::bin file is not a nand
cls
support\sfk echo [%redtext%]ModMii v%currentversion% nand tools
echo.
support\sfk echo [%bluetext%]"%cmdinput%"
echo.
support\sfk echo [%yellowtext%]*This file is not a Wii nand.bin backup! Filesize is %binsize% bytes (553649152 expected)
echo.
echo You can close this window now, or press any key to calculate the hash of this file...
pause> nul
goto:HashMyFiles
:nandfix
cls
support\sfk echo [%redtext%]ModMii v%currentversion% nand tools
echo.
support\sfk echo [%bluetext%]"%cmdinput%"
echo.
support\sfk echo [%yellowtext%]Incomplete nand detected! Missing keys!
echo.
echo Older versions of bootmii created nand backups without embedding the Wii's keys.
echo Similarly vWii nand backups made by nanddumper are created without embedded keys.
echo These broken nand backups cannot be restored or used for some other purposes without fixing it first.
echo.
if /i "%adminmode%" EQU "N" support\sfk.exe echo [%bluetext%]To fix your nand backup, drag the keys.bin or otp.bin file for THE SAME console onto this window and press enter
if /i "%adminmode%" EQU "Y" support\sfk.exe echo [%bluetext%]To fix your nand backup, enter the path to the keys.bin or otp.bin file for THE SAME console
echo Note that ModMii will NOT overwrite the original file
echo.
support\sfk echo [%yellowtext%]Warning! Make sure you provide the keys.bin or otp.bin file for THE SAME console this nand was dumped from!
echo.
set nandkeys="
set /p nandkeys=Enter Selection Here:
set "nandkeys=%nandkeys:"=%"
::echo nandkeys "%nandkeys%"
::echo mympath "%mympath%"
if "%nandkeys%"=="" (echo You Have Entered an Incorrect Key) & (@ping 127.0.0.1 -n 2 -w 1000> nul) & (goto:nandfix)
if not exist "%nandkeys%" (echo You Have Entered an Incorrect Key) & (@ping 127.0.0.1 -n 2 -w 1000> nul) & (goto:nandfix)
If /i "%nandkeys:~-4%" NEQ ".bin" (echo This isn't a bin file, try again...) & (@ping 127.0.0.1 -n 2 -w 1000> nul) & (goto:nandfix)
:checkkey
for %%A in ("%nandkeys%") do set keyssize=%%~zA
::echo file size: %keyssize% bytes
if /i "%keyssize%" NEQ "1024" (echo This isn't the right filesize [1024 bytes], try again...) & (@ping 127.0.0.1 -n 3 -w 1000> nul) & (goto:nandfix)
::check for "ConsoleID" in keys file hex search hex
set ERRORLEVEL=
support\sfk.exe hexfind "%nandkeys%" -pat /ConsoleID/ >nul
::ERRORLEVEL 1 means "ConsoleID" found, 0 means not found
::echo ERRORLEVEL %ERRORLEVEL%
IF ERRORLEVEL 1 goto:noOTPrepair
call Support\subscripts\dependency.bat ShowMiiVWiiKeys
if /i "%dependency%" EQU "F" (echo Exiting...) & (@ping 127.0.0.1 -n 3 -w 1000> nul) & (exit)
echo.
::get nandkeysfile and nandkeyspath names, i.e. get filename and get folder full path not including filename
set "nandkeysfile=%nandkeys:*\=%"
set "nandkeyspath=%nandkeys%"
:stripnandkeysfile
set "nandkeysfile=%nandkeysfile:*\=%"
echo "%nandkeysfile%">temp\temp.txt
findStr \\ temp\temp.txt>nul
IF NOT ERRORLEVEL 1 goto:stripnandkeysfile
echo set "nandkeyspath=%%nandkeyspath:%nandkeysfile%=%%">temp\temp.bat
call temp\temp.bat
set "nandkeyspath=%nandkeys%"
echo set "nandkeyspathback=%%nandkeyspath:\%nandkeysfile%=%%">temp\temp.bat
call temp\temp.bat
::echo nandkeysfile: "%nandkeysfile%"
::echo nandkeyspath: "%nandkeyspath%"
::echo nandkeyspathback: "%nandkeyspathback%"
if exist "temp\keys.bin" del "temp\keys.bin">nul
if exist "temp\keys.txt" del "temp\keys.txt">nul
copy /y "%nandkeys%" "temp\otp.bin">nul
cd temp
ShowMiiVWiiKeys.exe>nul
cd..
if not exist temp\keys.bin (echo ShowMiiVWiiKeys failed, exiting...) & (@ping 127.0.0.1 -n 5 -w 1000> nul) & (exit)
if exist "%nandkeyspathback%\%nandkeysfile:~0,-4%-keys.bin" move /y "%nandkeyspathback%\%nandkeysfile:~0,-4%-keys.bin" "%nandkeyspathback%\%nandkeysfile:~0,-4%-keys.bin.bak">nul
if exist "%nandkeyspathback%\%nandkeysfile:~0,-4%-keys.txt" move /y "%nandkeyspathback%\%nandkeysfile:~0,-4%-keys.txt" "%nandkeyspathback%\%nandkeysfile:~0,-4%-keys.txt.bak">nul
move /y "temp\keys.bin" "%nandkeyspathback%\%nandkeysfile:~0,-4%-keys.bin">nul
if exist "temp\keys.txt" move /y "temp\keys.txt" "%nandkeyspathback%\%nandkeysfile:~0,-4%-keys.txt">nul
if exist "temp\otp.bin" del "temp\otp.bin">nul
set "nandkeys=%nandkeyspathback%\%nandkeysfile:~0,-4%-keys.bin"
::echo %nandkeys%
goto:checkkey
:noOTPrepair
echo.
support\sfk.exe echo Appending [%cyantext%]"%nandkeys%" to "%cmdinput%"...
copy /b /y "%cmdinput%"+"%nandkeys%" "%cmdinput:~0,-4%-repaired%cmdinput:~-4%"
echo.
if not exist "%cmdinput:~0,-4%-repaired%cmdinput:~-4%" goto:notrepaired
::Checking files size...
::echo old file size: %binsize% bytes
for %%A in ("%cmdinput:~0,-4%-repaired%cmdinput:~-4%") do set binsize=%%~zA
::echo new file size: %binsize% bytes
if /i "%binsize%" NEQ "553649152" goto:notrepaired
set "cmdinput=%cmdinput:~0,-4%-repaired%cmdinput:~-4%"
support\sfk.exe echo [%greentext%]Nand successfully repaired, continuing...
@ping 127.0.0.1 -n 3 -w 1000> nul
goto:binDrop
:notrepaired
::cleanup
if exist "%cmdinput:~0,-4%-repaired%cmdinput:~-4%" del "%cmdinput:~0,-4%-repaired%cmdinput:~-4%">nul
support\sfk.exe echo [%redtext%]Something went wrong, press any key to try again...) & (pause> nul) & (goto:nandfix)
:binDrop
set binAction="
cls
support\sfk echo [%redtext%]ModMii v%currentversion% nand tools
echo.
echo What would you like to do with this nand file?
echo.
support\sfk echo [%bluetext%]"%cmdinput%"
support\sfk echo [%yellowtext%]*If this isn't a Wii or vWii nand backup, you should close this window now!
echo.
echo E = Extract it to use as an Emulated nand
echo C = Check it using nandBinCheck
echo CAB = Clone A to B; use this Wii's nand.bin ("A") to build a nand for a different "B" Wii; i.e. "A" is donor
echo CBA = Clone B to A; build new nand for this Wii ("A") cloned from a different "B" Wii nand.bin; i.e. "A" is recipient
echo D = DefragMii; speed up your nand by defragmenting it; can also update old nand backups to avoid new bad blocks
echo.
set binAction="
set /p binAction=Enter Selection Here:
set "binAction=%binAction:"=%"
if /i "%binAction%" EQU "E" goto:nandextract
if /i "%binAction%" EQU "C" goto:nandBinCheck
if /i "%binAction%" EQU "CAB" goto:Punetwiin
if /i "%binAction%" EQU "CBA" goto:Punetwiin
if /i "%binAction%" EQU "D" goto:DefragMii
echo You Have Entered an Incorrect Key
@ping 127.0.0.1 -n 2 -w 1000> nul
goto:binDrop
:nandextract
cls
support\sfk echo [%redtext%]ModMii v%currentversion% nand tools
call Support\subscripts\dependency.bat nand-tools
if /i "%dependency%" EQU "F" (echo Exiting...) & (@ping 127.0.0.1 -n 3 -w 1000> nul) & (exit)
echo.
echo Extracting "%cmdinput%":
echo.
echo Please be patient, this may take a minute...
echo.
::get nandfile and nandfolder names
set "nandfile=%cmdinput:*\=%"
set "nandfolder=%cmdinput%"
:stripnandfile
set "nandfile=%nandfile:*\=%"
echo "%nandfile%">temp\temp.txt
findStr \\ temp\temp.txt>nul
IF NOT ERRORLEVEL 1 goto:stripnandfile
echo set "nandfolder=%%nandfolder:\%nandfile%=%%">temp\temp.bat
call temp\temp.bat
::echo nandfile: %nandfile%
::echo nandfolder: %nandfolder%
set "ModMiiDir=%cd%"
if /i "%binAction%" NEQ "D" goto:notDefragmii
if /i "%nand1%" EQU "%nand2%" set "nandfile1=%nandfile%"
if /i "%nand1%" EQU "%nand2%" set "nandfolder1=%nandfolder%"
if /i "%nand1%" EQU "%nand2%" goto:skipkeys
:notDefragmii
cd /d "%nandfolder%"
if /i "%nandfile%" EQU "nand.bin" goto:skip
if exist nand.bin move /y nand.bin nand.bin.modmii.bak>nul
if exist nand-key.bin move /y nand-key.bin nand-key.bin.modmii.bak>nul
move /y "%nandfile%" nand.bin>nul
:skip
echo @echo Off>"%ModMiiDir%\temp\temp.bat"
echo title nand-aes-dump-cmd>>"%ModMiiDir%\temp\temp.bat"
echo cd /d "%nandfolder%">>"%ModMiiDir%\temp\temp.bat"
echo "%ModMiiDir%\temp\nand-tools\nand-aes-dump.exe">>"%ModMiiDir%\temp\temp.bat"
cd "%ModMiiDir%\temp"
start /min temp.bat
cd /d "%nandfolder%"
if not exist nand-key.bin @ping 127.0.0.1 -n 1 -w 1000> nul
if not exist nand-key.bin @ping 127.0.0.1 -n 1 -w 1000> nul
if not exist nand-key.bin @ping 127.0.0.1 -n 1 -w 1000> nul
if not exist nand-key.bin @ping 127.0.0.1 -n 1 -w 1000> nul
if not exist nand-key.bin @ping 127.0.0.1 -n 1 -w 1000> nul
if not exist nand-key.bin @ping 127.0.0.1 -n 1 -w 1000> nul
if not exist nand-key.bin @ping 127.0.0.1 -n 1 -w 1000> nul
if not exist nand-key.bin @ping 127.0.0.1 -n 1 -w 1000> nul
if not exist nand-key.bin @ping 127.0.0.1 -n 1 -w 1000> nul
if not exist nand-key.bin @ping 127.0.0.1 -n 1 -w 1000> nul
@ping 127.0.0.1 -n 2 -w 1000> nul
::nand-aes-dump.exe doesn't exit when done!
if exist nand-key.bin taskkill /F /IM "nand-aes-dump.exe" /T >nul
if exist nand-key.bin taskkill /F /FI "WindowTitle eq nand-aes-dump-cmd" /T >nul
if exist nand-key.bin taskkill /F /FI "WindowTitle eq Administrator: nand-aes-dump-cmd" /T >nul
move /y nand.bin "%nandfile%">nul
if exist nand.bin.modmii.bak move /y nand.bin.modmii.bak nand.bin>nul
if not exist nand-key.bin (echo unable to retrieve nand-key.bin, exiting...) & (@ping 127.0.0.1 -n 5 -w 1000> nul) & (exit)
if /i "%binAction%" EQU "D" goto:%afterkeys%
"%ModMiiDir%\temp\nand-tools\NAND-bin2raw.exe" "%nandfile%" "%nandfile:~0,-4%_dec.bin"
"%ModMiiDir%\temp\nand-tools\zestig.exe" nand-key.bin "%nandfile:~0,-4%_dec.bin" "%nandfile:~0,-4%"
if exist "%nandfile:~0,-4%_dec.bin" del /f /q "%nandfile:~0,-4%_dec.bin"
if exist "nand-key.bin" del /f /q "nand-key.bin"
if exist "%nandfolder%\nand-key.bin.modmii.bak" move /y "%nandfolder%\nand-key.bin.modmii.bak" "%nandfolder%\nand-key.bin">nul
echo.
cd /d "%ModMiiDir%"
if /i "%AudioOption%" NEQ "on" goto:nosound
if exist "%nandfolder%\%nandfile:~0,-4%" (start support\nircmd.exe mediaplay 3000 "%Success.mp3%") else (start support\nircmd.exe mediaplay 3000 "%Fail.mp3%")
:nosound
if not exist "%nandfolder%\%nandfile:~0,-4%" (echo Something went wrong, press any key to exit...) & (pause> nul) & (exit)
"%ModMiiDir%\support\sfk.exe" echo [%greentext%]FINISHED!
echo.
echo "%nandfolder%\%nandfile%" has been extracted to:
echo "%nandfolder%\%nandfile:~0,-4%"
echo.
"%ModMiiDir%\support\sfk.exe" echo [%bluetext%]To Open output folder and exit enter O
echo.
echo (To exit you can close this window or press enter)
echo.
set promptO="
set /p promptO=Enter Selection Here:
set "promptO=%promptO:"=%"
If /i "%promptO%" NEQ "O" exit
if exist "%nandfolder%\%nandfile:~0,-4%" explorer "%nandfolder%\%nandfile:~0,-4%"
exit
:nandBinCheck
call Support\subscripts\dependency.bat nandBinCheck
if /i "%dependency%" EQU "F" (echo Exiting...) & (@ping 127.0.0.1 -n 3 -w 1000> nul) & (exit)
echo @echo Off>temp\nandBinCheck\script.bat
echo title ModMii: Checking "%cmdinput%">>temp\nandBinCheck\script.bat
echo cd /d "%cd%\Support" >>temp\nandBinCheck\script.bat
echo sfk echo [%bluetext%]Checking "%cmdinput%">>temp\nandBinCheck\script.bat
echo echo ------------------>>temp\nandBinCheck\script.bat
if /i "%ModMiiverbose%" EQU "off" echo "%cd%\temp\nandBinCheck\nandBinCheck.exe" "%cmdinput%" -all>>temp\nandBinCheck\script.bat
if /i "%ModMiiverbose%" NEQ "off" echo "%cd%\temp\nandBinCheck\nandBinCheck.exe" "%cmdinput%" -all -v>>temp\nandBinCheck\script.bat
echo echo ------------------>>temp\nandBinCheck\script.bat
echo sfk echo [%greentext%]Finished checking "%cmdinput%">>temp\nandBinCheck\script.bat
echo echo ------------------>>temp\nandBinCheck\script.bat
echo echo When finished reviewing checks, press any key to exit. >>temp\nandBinCheck\script.bat
if /i "%AudioOption%" EQU "on" echo start nircmd.exe mediaplay 3000 "%Success.mp3:~8%">>temp\nandBinCheck\script.bat
echo pause^>nul >>temp\nandBinCheck\script.bat
echo exit >>temp\nandBinCheck\script.bat
start temp\nandBinCheck\script.bat
exit
:Punetwiin
set nandfolder2=
cls
support\sfk echo [%redtext%]ModMii v%currentversion% nand tools
echo.
support\sfk echo [%cyantext%]CloneMii
echo.
support\sfk echo [%yellowtext%]WARNING:[def] Using CloneMii\Punetwiin has some risks if the target console does not have bootmii boot2.
echo Do NOT try to clone a vWii nand to a Wii or vice versa!
echo Generally this is not something that should be done frequently.
echo Make sure the target console's nand was dumped recently so Punetwiin is aware of all the latest bad blocks.
echo.
if /i "%binAction%" EQU "CAB" echo This is the selected donor Wii's nand.bin:
if /i "%binAction%" EQU "CBA" echo This is the recipient\target Wii's nand.bin:
echo "%cmdinput%"
echo.
if /i "%adminmode%" EQU "N" if /i "%binAction%" EQU "CAB" support\sfk echo [%bluetext%] Drag and drop the recipient\target Wii's nand.bin onto this window then hit Enter
if /i "%adminmode%" EQU "N" if /i "%binAction%" EQU "CBA" support\sfk echo [%bluetext%] Drag and drop the donor Wii's nand.bin onto this window then hit Enter
if /i "%adminmode%" EQU "Y" if /i "%binAction%" EQU "CAB" support\sfk echo [%bluetext%] Enter the path of the recipient\target Wii's nand.bin then hit Enter
if /i "%adminmode%" EQU "Y" if /i "%binAction%" EQU "CBA" support\sfk echo [%bluetext%] Enter the path of the donor Wii's nand.bin then hit Enter
echo.
echo B = Back
echo.
set nandfolder2="
set /p nandfolder2=Enter Selection Here:
set "nandfolder2=%nandfolder2:"=%"
if "%nandfolder2%"=="" goto:badkey
if /i "%nandfolder2%" NEQ "%cmdinput%" goto:notduplicate
echo You cannot use the same nand
@ping 127.0.0.1 -n 2 -w 1000> nul
goto:Punetwiin
:notduplicate
if /i "%nandfolder2%" EQU "B" goto:binDrop
if /i "%nandfolder2:~-4%" NEQ ".bin" goto:badkey
if not exist "%nandfolder2%" goto:badkey
goto:PunetwiinConfirm
:badkey
echo You Have Entered an Incorrect Key
@ping 127.0.0.1 -n 2 -w 1000> nul
goto:Punetwiin
:PunetwiinConfirm
set PunetwiinConfirm=
cls
::Add age check of nand2.bin?
if /i "%binAction%" EQU "CAB" set "nand2=%nandfolder2%"
if /i "%binAction%" EQU "CBA" set "nand2=%cmdinput%"
dir /T:W "%nand2%">temp\temp.txt
support\sfk filter -quiet temp\temp.txt -and+".bin" -rep _" *"__ -write -yes
set /p nanddate= <temp\temp.txt
support\sfk echo [%redtext%]ModMii v%currentversion% nand tools
echo.
support\sfk echo [%cyantext%]CloneMii
echo.
support\sfk echo [%yellowtext%]WARNING:[def] Using CloneMii\Punetwiin has some risks if the target console does not have bootmii boot2.
echo Do NOT try to clone a vWii nand to a Wii or vice versa!
echo Generally this is not something that should be done frequently.
support\sfk -spat echo \x20 \x20 \x20 \x20 \x20[%yellowtext%]Make sure to use a recent dump[def] of the target Wii's nand so Punetwiin is aware of all the latest bad blocks.
echo.
echo This is the selected donor Wii's nand.bin:
if /i "%binAction%" EQU "CAB" support\sfk echo [%bluetext%] "%cmdinput%"
if /i "%binAction%" EQU "CBA" support\sfk echo [%bluetext%] "%nandfolder2%"
echo.
echo This is the recipient\target Wii's nand.bin:
if /i "%binAction%" EQU "CAB" support\sfk echo [%bluetext%] "%nandfolder2%"
if /i "%binAction%" EQU "CBA" support\sfk echo [%bluetext%] "%cmdinput%"
support\sfk -spat echo \x20Date of recipient\x5ctarget Wii's nand.bin: [%yellowtext%]%nanddate%
echo.
echo Are these settings correct?
echo.
echo Y = Yes, run Punetwiin then check the new nand with nandBinCheck!
echo N = No, the donor and target are reversed
echo B = Back
echo.
set PunetwiinConfirm="
set /p PunetwiinConfirm=Enter Selection Here:
set "PunetwiinConfirm=%PunetwiinConfirm:"=%"
if "%PunetwiinConfirm%"=="" goto:badkey
if /i "%PunetwiinConfirm%" EQU "B" goto:Punetwiin
if /i "%PunetwiinConfirm%" NEQ "N" goto:skip
if /i "%binAction%" EQU "CAB" (set binAction=CBA) else (set binAction=CAB)
goto:PunetwiinConfirm
:skip
if /i "%PunetwiinConfirm%" EQU "Y" goto:RunPunetwiin
:badkey
echo You Have Entered an Incorrect Key
@ping 127.0.0.1 -n 2 -w 1000> nul
goto:PunetwiinConfirm
:RunPunetwiin
cls
support\sfk echo [%redtext%]ModMii v%currentversion% nand tools
if /i "%binAction%" EQU "CAB" set "nand1=%cmdinput%"
if /i "%binAction%" EQU "CAB" set "nand2=%nandfolder2%"
if /i "%binAction%" EQU "CBA" set "nand1=%nandfolder2%"
if /i "%binAction%" EQU "CBA" set "nand2=%cmdinput%"
call Support\subscripts\dependency.bat Punetwiin
if /i "%dependency%" EQU "F" (echo Exiting...) & (@ping 127.0.0.1 -n 3 -w 1000> nul) & (exit)
call Support\subscripts\dependency.bat nandBinCheck
if /i "%dependency%" EQU "F" (echo Exiting...) & (@ping 127.0.0.1 -n 3 -w 1000> nul) & (exit)
echo.
echo Making preparations to run Punetwiin and clone the nand...
echo Built: "%nand1:~0,-4%_Punetwiin.bin">"%nand1:~0,-4%_Punetwiin_Info.txt"
echo From Donor: "%nand1%">>"%nand1:~0,-4%_Punetwiin_Info.txt"
echo For Target: "%nand2%">>"%nand1:~0,-4%_Punetwiin_Info.txt"
echo @echo Off>temp\Punetwiin\script.bat
echo title ModMii: Cloning "%nand1%">>temp\Punetwiin\script.bat
echo echo Building: "%nand1:~0,-4%_Punetwiin.bin">>temp\Punetwiin\script.bat
echo echo From Donor: "%nand1%">>temp\Punetwiin\script.bat
echo echo For Target: "%nand2%">>temp\Punetwiin\script.bat
echo echo ------------------>>temp\Punetwiin\script.bat
::save a copy of nand2 so it doesn't overwrite the original
echo echo Saving a copy of "%nand2%" to avoid overwriting the original...>>temp\Punetwiin\script.bat
echo echo ------------------>>temp\Punetwiin\script.bat
echo copy /y /v "%nand2%" "%nand1:~0,-4%_incomplete.bin"^>nul>>temp\Punetwiin\script.bat
echo echo Running Punetwiin...>>temp\Punetwiin\script.bat
echo echo ------------------>>temp\Punetwiin\script.bat
echo "%cd%\temp\Punetwiin\punetwiin.exe" "%nand1%" "%nand1:~0,-4%_incomplete.bin" -force>>temp\Punetwiin\script.bat
echo move /y "%nand1:~0,-4%_incomplete.bin" "%nand1:~0,-4%_Punetwiin.bin"^>nul>>temp\Punetwiin\script.bat
echo echo ------------------>>temp\Punetwiin\script.bat
echo echo Checking "%nand1:~0,-4%_Punetwiin.bin" with nandBinCheck>>temp\Punetwiin\script.bat
echo echo ------------------>>temp\Punetwiin\script.bat
if /i "%ModMiiverbose%" EQU "off" echo "%cd%\temp\nandBinCheck\nandBinCheck.exe" "%nand1:~0,-4%_Punetwiin.bin" -all>>temp\Punetwiin\script.bat
if /i "%ModMiiverbose%" NEQ "off" echo "%cd%\temp\nandBinCheck\nandBinCheck.exe" "%nand1:~0,-4%_Punetwiin.bin" -all -v>>temp\Punetwiin\script.bat
echo echo ------------------>>temp\Punetwiin\script.bat
echo cd /d "%cd%\Support" >>temp\Punetwiin\script.bat
echo sfk echo [%bluetext%]FINISHED CLONING >>temp\Punetwiin\script.bat
echo echo ------------------>>temp\Punetwiin\script.bat
echo echo Built and checked: "%nand1:~0,-4%_Punetwiin.bin">>temp\Punetwiin\script.bat
echo echo From Donor: "%nand1%">>temp\Punetwiin\script.bat
echo echo For Target: "%nand2%">>temp\Punetwiin\script.bat
echo echo Build info saved here: "%nand1:~0,-4%_Punetwiin_Info.txt">>temp\Punetwiin\script.bat
echo echo ------------------>>temp\Punetwiin\script.bat
echo sfk echo [%yellowtext%]YOU SHOULD REVIEW THE ABOVE OUTPUT FROM PUNETWIIN AND NANDBINCHECK BEFORE RESTORING>>temp\Punetwiin\script.bat
echo sfk echo [%yellowtext%]And remember that restoring this nand has some risks if the target console does not have bootmii boot2.>>temp\Punetwiin\script.bat
echo sfk echo [%yellowtext%]Generally this is not something that should be done frequently.>>temp\Punetwiin\script.bat
echo echo ------------------>>temp\Punetwiin\script.bat
echo echo Press any key to exit.>>temp\Punetwiin\script.bat
if /i "%AudioOption%" EQU "on" echo start nircmd.exe mediaplay 3000 "%Success.mp3:~8%">>temp\Punetwiin\script.bat
echo pause^>nul>>temp\Punetwiin\script.bat
echo exit>>temp\Punetwiin\script.bat
start temp\Punetwiin\script.bat
exit
:DefragMii
::get date of nand
dir /T:W "%cmdinput%">temp\temp.txt
support\sfk filter -quiet temp\temp.txt -and+".bin" -rep _" *"__ -write -yes
set /p nand0date= <temp\temp.txt
set nandfolder2=
cls
support\sfk echo [%redtext%]ModMii v%currentversion% nand tools
echo.
support\sfk echo [%cyantext%]DefragMii
echo.
support\sfk echo [%yellowtext%]WARNING:[def] Using DefragMii\Punetwiin has some risks if the target console does not have bootmii boot2.
echo Generally this is not something that should be done frequently.
echo Make sure the target console's nand was dumped recently so Punetwiin is aware of all the latest bad blocks.
echo.
support\sfk echo [%bluetext%] Supplied nand.bin: "%cmdinput%"
support\sfk -spat echo \x20Date of supplied nand.bin: [%yellowtext%]%nand0date%
echo.
echo Choose an action:
echo.
echo D = Defragment nand now and check it with nandBinCheck
echo [nand.bin] = Supply a more recent nand backup from the same Wii to avoid new bad blocks, then run nandBinCheck
echo B = Back
echo.
if /i "%adminmode%" EQU "N" support\sfk echo [%bluetext%] Optional: update this nand backup to avoid new bad blocks by dragging a more recent nand backup from the same Wii
if /i "%adminmode%" EQU "N" support\sfk echo [%bluetext%] onto this window and hitting Enter
if /i "%adminmode%" EQU "Y" support\sfk echo [%bluetext%] Optional: update this nand backup to avoid new bad blocks by entering the path to a more recent nand backup from the same Wii
echo.
set nandfolder2="
set /p nandfolder2=Enter Selection Here:
set "nandfolder2=%nandfolder2:"=%"
if "%nandfolder2%"=="" goto:badkey
if /i "%nandfolder2%" EQU "D" set "nandfolder2=%cmdinput%"
if /i "%nandfolder2%" EQU "B" goto:binDrop
if /i "%nandfolder2:~-4%" NEQ ".bin" goto:badkey
if not exist "%nandfolder2%" goto:badkey
goto:DefragMii2
:badkey
echo You Have Entered an Incorrect Key
@ping 127.0.0.1 -n 2 -w 1000> nul
goto:Punetwiin
:DefragMii2
cls
support\sfk echo [%redtext%]ModMii v%currentversion% nand tools
set "nand1=%cmdinput%"
set "nand2=%nandfolder2%"
::confirm keys are the same if using 2 different nands
if /i "%nand1%" NEQ "%nand2%" goto:getkeys
::get nandfile and nandfolder names
set "nandfile=%nand1:*\=%"
set "nandfolder=%nand1%"
goto:stripnandfile
:getkeys
call Support\subscripts\dependency.bat nand-tools
if /i "%dependency%" EQU "F" (echo Exiting...) & (@ping 127.0.0.1 -n 3 -w 1000> nul) & (exit)
echo.
echo Confirming nands are for the same console...
echo.
::get nandfile and nandfolder names
set "nandfile=%nand1:*\=%"
set "nandfolder=%nand1%"
set afterkeys=stripnandfile2
goto:stripnandfile
:stripnandfile2
set "nandfile1=%nandfile%"
set "nandfolder1=%nandfolder%"
move /y nand-key.bin "%ModMiiDir%\temp\nand-key1.bin">nul
if exist "%nandfolder%\nand-key.bin.modmii.bak" move /y "%nandfolder%\nand-key.bin.modmii.bak" "%nandfolder%\nand-key.bin">nul
cd /d "%ModMiiDir%"
set "nandfile=%nand2:*\=%"
set "nandfolder=%nand2%"
set afterkeys=comparekeys
goto:stripnandfile
:comparekeys
set "nandfile2=%nandfile%"
set "nandfolder2=%nandfolder%"
move /y nand-key.bin "%ModMiiDir%\temp\nand-key2.bin">nul
if exist "%nandfolder%\nand-key.bin.modmii.bak" move /y "%nandfolder%\nand-key.bin.modmii.bak" "%nandfolder%\nand-key.bin">nul
cd /d "%ModMiiDir%"
support\sfk md5 -quiet "temp\nand-key1.bin" "temp\nand-key2.bin"
if not errorlevel 1 (echo Confirmed!) & (goto:skipkeys)
echo Nands are for different Wii's, try cloning the Nand instead. Exiting...
@ping 127.0.0.1 -n 5 -w 1000> nul
exit
:skipkeys
cd /d "%ModMiiDir%"
if exist temp\nand-key1.bin del temp\nand-key1.bin >nul
if exist temp\nand-key2.bin del temp\nand-key2.bin >nul
call Support\subscripts\dependency.bat Punetwiin
if /i "%dependency%" EQU "F" (echo Exiting...) & (@ping 127.0.0.1 -n 3 -w 1000> nul) & (exit)
call Support\subscripts\dependency.bat nandBinCheck
if /i "%dependency%" EQU "F" (echo Exiting...) & (@ping 127.0.0.1 -n 3 -w 1000> nul) & (exit)
echo.
echo Making preparations to run Punetwiin and defragment the nand...
::echo Built: "%nand1:~0,-4%_Defragged.bin">"%nand1:~0,-4%_Defragged_Info.txt"
::echo From Donor: "%nand1%">>"%nand1:~0,-4%_Defragged_Info.txt"
::echo For Target: "%nand2%">>"%nand1:~0,-4%_Defragged_Info.txt"
echo @echo Off>temp\Punetwiin\script.bat
echo title ModMii: Defragmenting "%nand1%">>temp\Punetwiin\script.bat
echo echo Building: "%nand1:~0,-4%_Defragged.bin">>temp\Punetwiin\script.bat
if /i "%nand1%" NEQ "%nand2%" echo echo Source: "%nand1%">>temp\Punetwiin\script.bat
if /i "%nand1%" NEQ "%nand2%" echo echo Avoiding Bad Blocks from: "%nand2%">>temp\Punetwiin\script.bat
echo echo ------------------>>temp\Punetwiin\script.bat
::save a copy of nand2 so it doesn't overwrite the original
echo echo Saving a copy of "%nand2%" to avoid overwriting the original...>>temp\Punetwiin\script.bat
echo echo ------------------>>temp\Punetwiin\script.bat
echo copy /y /v "%nand2%" "%nand1:~0,-4%_incomplete.bin"^>nul>>temp\Punetwiin\script.bat
echo echo Running Punetwiin...>>temp\Punetwiin\script.bat
echo echo ------------------>>temp\Punetwiin\script.bat
echo "%cd%\temp\Punetwiin\punetwiin.exe" "%nand1%" "%nand1:~0,-4%_incomplete.bin" -force>>temp\Punetwiin\script.bat
echo move /y "%nand1:~0,-4%_incomplete.bin" "%nand1:~0,-4%_Defragged.bin"^>nul>>temp\Punetwiin\script.bat
echo echo ------------------>>temp\Punetwiin\script.bat
echo echo Checking "%nand1:~0,-4%_Defragged.bin" with nandBinCheck>>temp\Punetwiin\script.bat
echo echo ------------------>>temp\Punetwiin\script.bat
if /i "%ModMiiverbose%" EQU "off" echo "%cd%\temp\nandBinCheck\nandBinCheck.exe" "%nand1:~0,-4%_Defragged.bin" -all>>temp\Punetwiin\script.bat
if /i "%ModMiiverbose%" NEQ "off" echo "%cd%\temp\nandBinCheck\nandBinCheck.exe" "%nand1:~0,-4%_Defragged.bin" -all -v>>temp\Punetwiin\script.bat
echo echo ------------------>>temp\Punetwiin\script.bat
echo cd /d "%cd%\Support" >>temp\Punetwiin\script.bat
echo sfk echo [%bluetext%]FINISHED DEFRAGGING >>temp\Punetwiin\script.bat
echo echo ------------------>>temp\Punetwiin\script.bat
echo echo Built and checked: "%nand1:~0,-4%_Defragged.bin">>temp\Punetwiin\script.bat
echo echo From Donor: "%nand1%">>temp\Punetwiin\script.bat
echo echo For Target: "%nand2%">>temp\Punetwiin\script.bat
::echo echo Build info saved here: "%nand1:~0,-4%_Defragged_Info.txt">>temp\Punetwiin\script.bat
echo echo ------------------>>temp\Punetwiin\script.bat
echo sfk echo [%yellowtext%]YOU SHOULD REVIEW THE ABOVE OUTPUT FROM PUNETWIIN AND NANDBINCHECK BEFORE RESTORING>>temp\Punetwiin\script.bat
echo sfk echo [%yellowtext%]And remember that restoring this nand has some risks if the target console does not have bootmii boot2.>>temp\Punetwiin\script.bat
echo sfk echo [%yellowtext%]Generally this is not something that should be done frequently.>>temp\Punetwiin\script.bat
echo echo ------------------>>temp\Punetwiin\script.bat
echo sfk echo You can close this window now, or [%bluetext%]press any key to exit and open the output folder.>>temp\Punetwiin\script.bat
if /i "%AudioOption%" EQU "on" echo start nircmd.exe mediaplay 3000 "%Success.mp3:~8%">>temp\Punetwiin\script.bat
echo pause^>nul>>temp\Punetwiin\script.bat
echo explorer "%nandfolder1%">>temp\Punetwiin\script.bat
echo exit>>temp\Punetwiin\script.bat
start temp\Punetwiin\script.bat
exit
:notbin
::----------wiiload zip drag and drop---------------
if /i "%cmdinput:~-4%" EQU ".zip" goto:Wiiloadzip
if /i "%cmdinput:~-4%" EQU ".rar" goto:Wiiloadzip
if /i "%cmdinput:~-3%" EQU ".7z" goto:Wiiloadzip
goto:notWiiloadzip
:Wiiloadzip
set cmdinputrar=
::support\sfk echo [%redtext%]ModMii v%currentversion%
if not exist "%cmdinput%" goto:notWiiloadzip
::pass, get folder to open when any key is pressed
::get binary and mympath and zip names, i.e. get filename and get folder full path not including filename
set "binary=%cmdinput:*\=%"
set "binarypath=%cmdinput%"
:stripbinary2
set "binary=%binary:*\=%"
echo "%binary%">temp\temp.txt
findStr \\ temp\temp.txt>nul
IF NOT ERRORLEVEL 1 goto:stripbinary2
echo set "binarypath=%%binarypath:%binary%=%%">temp\temp.bat
call temp\temp.bat
set "binarypath=%binarypath:~0,-1%"
::echo binary: "%binary%"
::echo binarypath: "%binarypath%"
::echo Checking archive is not too large to transmit...
::disabled filesize check, validated on receiver
goto:disablesizecheck
setlocal ENABLEDELAYEDEXPANSION
::check if over 25MB (I think limit is actually 20MB)
set GetFileSize=
support\sfk stat "!cmdinput!">"temp\tmp.txt"
support\sfk filter "temp\tmp.txt" -rep _" bytes*"__ -rep _"* "__ >temp\hexdump.txt
set /p GetFileSize= <temp\hexdump.txt
::set to 1 if nul in case check fails, but new sfk method shouldn't
if "%GetFileSize%"=="" set GetFileSize=1
if %GetFileSize% LEQ 26214400 goto:not2big
support\sfk echo [%redtext%]ModMii v%currentversion% HBC Transfer Tool
echo.
echo Wirelessly save apps to devices connected to your Wii\vWii.
echo.
support\sfk echo [%yellowtext%]"%cmdinput%" is too large to send over the internet
echo.
echo Loading other tools...
@ping 127.0.0.1 -n 4 -w 1000> nul
goto:HashMyFiles
:not2big
setlocal DISABLEDELAYEDEXPANSION
:disablesizecheck
:nometazip
set WiiIP=
if exist temp\WiiIP.txt set /p WiiIP= <temp\WiiIP.txt
cls
support\sfk echo [%redtext%]ModMii v%currentversion% HBC Transfer Tool
echo.
echo Wirelessly save apps to devices connected to your Wii\vWii.
echo.
echo ModMii supports transferring archives (zip, 7z, rar) both with and without an \apps\ folder (e.g. usbloader_gx or apps\usbloader_gx). Only one app per archive can be transferred at a time, and because the HBC's managing access is limited to the \apps\ folder any files outside of the apps folder will be skipped (e.g. roms, games, resources, etc.). Archives must include a boot.dol or boot.elf file in the app folder (but not both); other files and subfolders like meta\icon\etc. will get copied as well.
echo.
echo Start the Homebrew Channel and select destination device before continuing.
echo.
support\sfk echo [%bluetext%]Would you like to upload the contents of [%cyantext%]"%binary%" [%bluetext%]?
echo.
if not "%WiiIP%"=="" support\sfk echo If [%bluetext%]%WiiIP%[def] is your Wii\vWii IP address, enter Y or leave the selection blank to upload the app
if not "%WiiIP%"=="" echo.
if not "%WiiIP%"=="" echo To update your Wii\vWii IP address and copy the app, enter the new address now; e.g 192.168.1.6
if "%WiiIP%"=="" support\sfk echo [%bluetext%]Enter your Wii\vWii IP Address and press enter to launch the loaded app; e.g 192.168.1.6
::echo.
::support\sfk echo [%bluetext%]wiiload.exe \""%cmdinput%"\"
echo.
echo To check your Wii\vWii IP address press home while in the HBC, but remember to exit the Home Menu before
echo continuing. If you see 'Network Not Initialized' you must first connect the console to the internet.
echo.
echo Enter "Help" for an instructional video on checking your Wii\vWii IP Address.
echo.
set WiiLoadPrompt="
if not "%WiiIP%"=="" set WiiLoadPrompt=Y
set /p WiiLoadPrompt=Enter Selection Here:
set WiiLoadPrompt=%WiiLoadPrompt:"=%
if "%WiiLoadPrompt%"=="" goto:badkey
if /i "%WiiLoadPrompt%" EQU "help" (start https://www.youtube.com/embed/JSyIDx35TVo) & (goto:nometazip)
if "%WiiIP%"=="" goto:skip
If /i "%WiiLoadPrompt%" EQU "Y" set "WiiLoadPrompt=%WiiIP%"
:skip
::check valid IP
powershell -nologo -noprofile -Command "[ipaddress]::TryParse('%WiiLoadPrompt%',[ref][ipaddress]::Loopback)" | findstr "False">NUL && goto:badkey
::check for 3 periods
set "string=%WiiLoadPrompt%"
set /a dotcount=0
setlocal EnableDelayedExpansion
if defined string (set ^"strtmp=!string:.=^
%= empty string =%
!^") else set "strtmp="
for /F %%C in ('cmd /V /C echo(^^!strtmp^^!^| find /C /V ""') do set /A "dotcount=%%C-1"
setlocal DISABLEDELAYEDEXPANSION
::echo "!string!" contains %dotcount% periods.
if /i "%dotcount%" EQU "3" goto:pingme
:badkey
echo You Have Entered an Incorrect Key
@ping 127.0.0.1 -n 2 -w 1000> nul
goto:nometazip
:pingme
::check if Wii is reachable
::echo.
::echo Pinging Wii to see if reachable...
ping -n 1 "%WiiLoadPrompt%"|findstr /I /C:"ms">nul
IF NOT ERRORLEVEL 1 goto:Pinged
support\sfk echo [%yellowtext%]Unable to reach IP %WiiLoadPrompt%, check your settings and try again...
@ping 127.0.0.1 -n 2 -w 1000> nul
goto:nometazip
:Pinged
cls
set "WiiIP=%WiiLoadPrompt%"
> "temp\WiiIP.txt" ECHO %WiiIP%
support\sfk echo [%redtext%]ModMii v%currentversion% HBC Transfer Tool
echo.
if /i "%cmdinput:~-4%" NEQ ".rar" goto:notrar
call Support\subscripts\dependency.bat UnRAR
if /i "%dependency%" EQU "F" (echo Exiting...) & (@ping 127.0.0.1 -n 3 -w 1000> nul) & (exit)
echo The HBC only accepts ZIPs, ModMii will extract the RAR contents and save a temporary ZIP copy for transmission...
if exist "temp\rar" rd /s /q "temp\rar"> nul
mkdir temp\rar
temp\unrar.exe x -y "%cmdinput%" "temp\rar"
::check if folder is empty
dir /b /s /a "temp\rar\" | findstr .>nul || rd /s /q "temp\rar"> nul
if not exist "temp\rar\" (echo UnRAR failed, exiting...) & (@ping 127.0.0.1 -n 5 -w 1000> nul) & (exit)
echo.
::change cmdinput to zip, but flag original
set "cmdinputrar=%cmdinput%"
set "cmdinput=%cmdinput:~0,-4%.zip"
cd temp\rar
..\..\support\7za a "%cmdinput%" * >nul
cd ..\..
if exist "temp\rar" rd /s /q "temp\rar"> nul
:notrar
set "HBC_Transfer=%cmdinput%"
set password=
set passwordcmd=
::check zip structure
if "%cmdinputrar%"=="" echo If this window immediately freezes after this line the archive requires a password, press any key to continue
if "%cmdinputrar%"=="" echo.
support\7za l "%cmdinput%" > "%temp%\zip.txt"
support\sfk filter -quiet "%temp%\zip.txt" -ls!"Listing archive:" -ls!"Path = " -write -yes
::check for password, check only works if file names are encrypted
findStr /I /B "Enter password" "%temp%\zip.txt" >nul
IF ERRORLEVEL 1 goto:nopassword1
::get password from user
for /f "usebackq tokens=*" %%p in (`powershell -Command "$pword = read-host 'Enter Password' -AsSecureString ; $BSTR=[System.Runtime.InteropServices.Marshal]::SecureStringToBSTR($pword); [System.Runtime.InteropServices.Marshal]::PtrToStringAuto($BSTR)"`) do set password=%%p
echo.
::echo "%password%"
set "passwordcmd= -p"%password%""
::echo %passwordcmd%
support\7za l "%cmdinput%"%passwordcmd% > "%temp%\zip.txt"
support\sfk filter -quiet "%temp%\zip.txt" -ls!"Listing archive:" -ls!"Path = " -write -yes
:nopassword1
set foundDOL=
set foundELF=
findStr /I /E "boot.dol" "%temp%\zip.txt" >nul
IF NOT ERRORLEVEL 1 set foundDOL=Y
findStr /I /E "boot.elf" "%temp%\zip.txt" >nul
IF NOT ERRORLEVEL 1 set foundELF=Y
if /i "%foundDOL%" EQU "Y" goto:foundbin
if /i "%foundELF%" EQU "Y" goto:foundbin
support\sfk echo [%yellowtext%]"%cmdinput%" does not contain a dol or an elf file
echo.
echo exiting...
if exist "temp\HBC_Transfer.zip" del "temp\HBC_Transfer.zip">nul
if exist "temp\HBC_Transfer_" rd /s /q "temp\HBC_Transfer_">nul
@ping 127.0.0.1 -n 4 -w 1000> nul
exit
:foundbin
::check2 for password, this check is when filenames aren't protected but extraction is
if not "%password%"=="" goto:nopassword2
if exist temp\boot.dol del temp\boot.dol>nul
if exist temp\boot.elf del temp\boot.elf>nul
support\7za e -aoa "%cmdinput%" -o"temp" boot.dol boot.elf -r >nul
if exist temp\boot.dol for /F %%A in ("temp\boot.dol") do If %%~zA equ 0 del "temp\boot.dol"
if exist temp\boot.elf for /F %%A in ("temp\boot.elf") do If %%~zA equ 0 del "temp\boot.elf"
if exist temp\boot.dol goto:nopassword2
if exist temp\boot.elf goto:nopassword2
::get password from user
for /f "usebackq tokens=*" %%p in (`powershell -Command "$pword = read-host 'Enter Password' -AsSecureString ; $BSTR=[System.Runtime.InteropServices.Marshal]::SecureStringToBSTR($pword); [System.Runtime.InteropServices.Marshal]::PtrToStringAuto($BSTR)"`) do set password=%%p
echo.
::echo "%password%"
set "passwordcmd= -p"%password%""
::echo %passwordcmd%
::support\7za l "%cmdinput%"%passwordcmd% > "%temp%\zip.txt"
::support\sfk filter -quiet "%temp%\zip.txt" -ls!"Listing archive:" -ls!"Path = " -write -yes
:nopassword2
if exist temp\boot.dol del temp\boot.dol>nul
if exist temp\boot.elf del temp\boot.elf>nul
findStr /I apps\ "%temp%\zip.txt" >nul
IF ERRORLEVEL 1 goto:noAppsDir
::support\sfk -spat echo [%yellowtext%]"%cmdinput%"
echo The selected archive file includes an "apps" directory and is not transferable in it's current state
if /i "%cmdinput:~-4%" EQU ".zip" echo ModMii will create a temporary usable copy of the ZIP for transmission...
if /i "%cmdinput:~-4%" NEQ ".zip" echo The HBC only accepts ZIPs, ModMii will create a temporary usable ZIP copy of the %cmdinput:~-3%
if exist "temp\HBC_Transfer.zip" del "temp\HBC_Transfer.zip">nul
if exist "temp\zip" rd /s /q "temp\zip"> nul
::if not exist "temp\zip" mkdir "temp\zip"
if not exist temp\zip\apps mkdir temp\zip\apps
support\7za x -aoa "%cmdinput%"%passwordcmd% -o"temp\zip"> nul
cd temp\zip\apps
del /f /q *.*
..\..\..\support\7za a "..\..\HBC_Transfer.zip" *>nul
cd ..\..\..
::"%cmdinput%"
echo.
set "HBC_Transfer=%cd%\temp\HBC_Transfer.zip"
::---check for folders outside of apps folder and display yellow warning if exist
rd /s /q "temp\zip\apps"> nul
::anything left in temp\zip is not getting sent, check if zip folder is empty...
::empty folder check, if not empty goto something, if empty delete it
dir /A /B "temp\zip" | findstr /R ".">NUL && goto:notempty
::empty
goto:letsgo
:notempty
::not empty, show warning
support\sfk -spat echo [%yellowtext%]Warning: this archive contains the following items that are outside of the apps folder that will NOT get transferred.
support\sfk -spat echo [%yellowtext%]Files outside of /apps need to be transferred manually, the HBC won't touch those.
dir /b temp\zip
if exist "temp\zip" rd /s /q "temp\zip"> nul
echo.
goto:letsgo
:noAppsDir
::need to repack without password if it has a password (and not already repacked to correct apps folder)
if /i "%cmdinput:~-4%" NEQ ".zip" goto:forceRepack
if "%password%"=="" goto:letsgo
:forceRepack
::support\sfk -spat echo [%yellowtext%]"%cmdinput%"
echo A copy of the archive without a password is needed to transfer for the HBC
if /i "%cmdinput:~-4%" EQU ".zip" echo ModMii will create a temporary usable copy of the ZIP for transmission...
if /i "%cmdinput:~-4%" NEQ ".zip" echo The HBC only accepts ZIPs, ModMii will create a temporary usable ZIP copy of the %cmdinput:~-3% for transmission...
if exist "temp\HBC_Transfer.zip" del "temp\HBC_Transfer.zip">nul
if exist "temp\zip" rd /s /q "temp\zip"> nul
if not exist "temp\zip" mkdir "temp\zip"
support\7za x -aoa "%cmdinput%"%passwordcmd% -o"temp\zip"> nul
cd temp\zip
..\..\support\7za a "..\HBC_Transfer.zip" *>nul
cd ..\..
::"%cmdinput%"
echo.
set "HBC_Transfer=%cd%\temp\HBC_Transfer.zip"
:letsgo
::check if both boot.dol and boot.elf exist, if yes, rename boot.dol to bootAlt.dol
if /i "%foundDOL%" NEQ "Y" goto:tinyskip
if /i "%foundELF%" NEQ "Y" goto:tinyskip
echo The selected archive file includes both a boot.elf and a boot.dol and is not transferable in it's current state
echo ModMii will rename the dol to create a temporary usable copy of the ZIP for transmission...
if exist "temp\zip" rd /s /q "temp\zip"> nul
if not exist "temp\zip" mkdir "temp\zip"
support\7za x -aoa "%HBC_Transfer%" -o"temp\zip"> nul
if exist "temp\HBC_Transfer.zip" del "temp\HBC_Transfer.zip">nul
set dolpath=
dir /b /s temp\zip\*boot.dol>temp\dolpath.txt
set /p dolpath= <temp\dolpath.txt
if exist "temp\dolpath.txt" del "temp\dolpath.txt">nul
if exist "%dolpath%" move /y "%dolpath%" "%dolpath:~0,-4%Alt.dol">nul
cd temp\zip
..\..\support\7za a "..\HBC_Transfer.zip" * >nul
cd ..\..
::"%cmdinput%"
echo.
set "HBC_Transfer=%cd%\temp\HBC_Transfer.zip"
:tinyskip
if exist temp\wiiload.exe goto:skip
if exist index.html del index.html>nul
call Support\subscripts\dependency.bat wiiload
if /i "%dependency%" NEQ "F" goto:skip
if /i "%AudioOption%" EQU "on" start support\nircmd.exe mediaplay 3000 "%Fail.mp3%"
echo Unable to download wiiload, press any key to exit...
if exist "temp\HBC_Transfer.zip" del "temp\HBC_Transfer.zip">nul
if exist "temp\HBC_Transfer_" rd /s /q "temp\HBC_Transfer_">nul
pause>nul
exit
:skip
support\sfk echo Upload from archive: [%bluetext%]"%cmdinput%"
support\sfk echo To IP Address: [%bluetext%]"%WiiIP%"
echo.
echo The following will be uploaded to the "apps" folder of the device currently loaded by the HBC (e.g. SD or USB):
echo.
support\7za l "%HBC_Transfer%" > "%temp%\zip.txt"
support\sfk filter -quiet "%temp%\zip.txt" -cut "*" to "----" -write -yes
type "%temp%\zip.txt"
echo.
echo Make sure you have the HBC open but that you are not inside its Home Menu,
echo Then press any key to start the upload...
pause>nul
set "WIILOAD=tcp:%WiiIP%"
echo.
support\sfk echo Sending command: [%cyantext%]wiiload.exe \""%HBC_Transfer%"\"
echo.
echo If you have issues, before trying again, make sure you have the HBC open but that you are not inside its Home Menu,
echo Double check the Wii IP address and make sure both this device and the Wii are on the same network.
echo.
temp\wiiload.exe "%HBC_Transfer%"
echo.
echo exiting...
@ping 127.0.0.1 -n 3 -w 1000> nul
::delete copy if applicable
if exist "temp\HBC_Transfer.zip" del "temp\HBC_Transfer.zip">nul
if exist "temp\HBC_Transfer_" rd /s /q "temp\HBC_Transfer_">nul
::if cmdinputrar is not nul, cmdinput is a zip copy of the original rar and should be deleted
if not "%cmdinputrar%"=="" del "%cmdinput%">nul
@ping 127.0.0.1 -n 7 -w 1000> nul
exit
:notWiiloadzip
::----------Wad drag and drop (single files) unpack and send to wii---------------
if /i "%cmdinput:~-4%" NEQ ".wad" goto:notwad
if not exist "%cmdinput%" goto:notwad
if exist "%cmdinput%\" goto:notwad
title ModMii WAD tools
support\nircmd.exe win setsize ititle "ModMii WAD tools" 0 0 895 780
set "WadInput=%cmdinput%"
call "Support\subscripts\CollectWadInfo.bat"
if exist temp\WADinfo.txt del temp\WADinfo.txt>nul
If /i "%wadtype%" EQU "Invalid" (echo.) & (echo This is not a valid WAD file! Press any key to exit...) & (pause>nul) & (exit)
::Detect NandLoader if %AutoDetectNL% setting is enabled, WADcontents is not GTR than 3 (so channels like Region Select & bomberman aren't attempted), and wadtype is channel or hidden
if %WadContents% LEQ 1 goto:AutoDetectNLpickup
if %WadContents% GTR 3 goto:AutoDetectNLpickup
If /i "%wadtype%" EQU "channel" goto:AutoDetectNL
If /i "%wadtype%" NEQ "hidden" goto:AutoDetectNLpickup
:AutoDetectNL
::Careful editing cmdinput!
::if not "%AutoDetectNL%"=="" set "cmdinput=%WadInput%"
if not "%AutoDetectNL%"=="" (set WadNandLoader=D) & (set DetectNLpickup=AutoDetectNLpickup) & (goto:NLcount)
:AutoDetectNLpickup
:WADdrop
::title ModMii WAD tools
set SendWAD=
set WiiIP=
if exist temp\WiiIP.txt set /p WiiIP= <temp\WiiIP.txt
cls
support\sfk echo [%redtext%]ModMii v%currentversion% WAD tools
echo.
echo What would you like to do with this WAD?
echo.
support\sfk.exe echo [%bluetext%]"%cmdinput%"
echo.
::set "WADinfo=%cmdinput%"
::if exist "%WADcopy%" set "WADinfo=%WADcopy%"
call "Support\subscripts\DisplayWadInfo.bat"
echo.
if %GetFileSize% GTR 8388576 goto:disableSEND
if not "%WiiIP%"=="" support\sfk.exe -spat echo \x20 \x20 S = Send WAD to Homebrew Channel using [%bluetext%]Saved IP address: %WiiIP%
echo [IP] = Send WAD to Homebrew Channel with IP entered; e.g 192.168.1.6
echo HELP = Instructional video on checking your Wii\vWii IP Address
:disableSEND
set "NLtext=NandLoader, "
If /i "%wadtype%" EQU "channelsystem" set NLtext=
::if content count is greater than 3 then skip (so channels like Region Select aren't attempted)
if %WadContents% GTR 3 set NLtext=
if %WadContents% LEQ 1 set NLtext=
set DFtext=
If /i "%channelpath%" EQU "00010001" set "DFtext=Deflicker, "
If /i "%channelpath%" EQU "00010002" set "DFtext=Deflicker, "
If /i "%channelpath%" EQU "00010004" set "DFtext=Deflicker, "
If /i "%channelpath%" EQU "00010008" set "DFtext=Deflicker, "
::if content count is LEQ 3 then skip (so forwarder channels aren't attempted)
if %WadContents% LEQ 3 set DFtext=
if "%WADtit%"=="" (set TITtext=) else (set "TITtext=Title, ")
::%wadtype:~0,7% to permit channel and channelsystem types
If /i "%wadtype:~0,7%" EQU "channel" echo M = Modify Channel WAD (%TITtext%Title ID, IOS, DOL, AHB^|DVD, %NLtext%Fakesign, %DFtext%Visibility)
If /i "%wadtype%" EQU "hidden" echo M = Modify Channel WAD (%TITtext%Title ID, IOS, DOL, AHB^|DVD, %NLtext%Fakesign, %DFtext%Visibility)
If /i "%wadtype%" EQU "ios" echo M = Modify IOS WAD (Patches, Slot, Version)
::If /i "%wadtype%" EQU "ios" echo Note: if WAD is not an IOS modifications will fail
echo U = Unpack WAD
echo O = Unpack WAD and Open Output Directory
echo I = Inspector Wadget; Inspect and display more WAD Information
echo E = Exit
echo.
support\sfk.exe echo [%bluetext%]Notes on Sending WADs to HBC:
echo.
if %GetFileSize% GTR 8388576 support\sfk echo [%redtext%]WAD is larger than 8MB and cannot be sent to the Wii\vWii over the internet.
if %GetFileSize% LEQ 8388576 echo Start the Homebrew Channel before trying to send a WAD to your Wii\vWii.
if %GetFileSize% LEQ 8388576 echo WADs larger than 8MB cannot be sent to the Wii\vWii over the internet.
echo.
support\sfk -spat echo \x20 \x20 [%yellowtext%]Installing the wrong WAD can cause brick, choose wisely and make sure you have Priiloader and
support\sfk -spat echo \x20 \x20 [%yellowtext%]a nand backup. Use the ModMii Wizard or SysCheck Updater Wizard for brick protection!
echo.
if %GetFileSize% LEQ 8388576 echo To check your Wii\vWii IP address press home while in the HBC, but remember to exit the Home Menu before
if %GetFileSize% LEQ 8388576 echo continuing. If you see 'Network Not Initialized' you must first connect the console to the internet.
if %GetFileSize% LEQ 8388576 echo Enter 'Help' if you need it.
if %GetFileSize% LEQ 8388576 echo.
set SendWAD="
set /p SendWAD=Enter Selection Here:
set "SendWAD=%SendWAD:"=%"
if "%SendWAD%"=="" goto:badkey
if /i "%SendWAD%" EQU "U" goto:unpackwad
if /i "%SendWAD%" EQU "O" goto:unpackwad
if /i "%SendWAD%" EQU "E" exit
if /i "%SendWAD%" NEQ "I" goto:skip
Set ODBinfo=Y
Set WiiPyInfo=Y
Set SendWADs=I
set wad2count=1
echo "%cmdinput%">temp\temp.txt
support\sfk -spat filter temp\temp.txt -rep _"\x22"__ -write -yes>nul
cls
title ModMii Inspector Wadget
support\sfk echo [%redtext%]ModMii v%currentversion% Inspector Wadget
goto:WadBulkInfo
:skip
::%wadtype:~0,7% to permit channel and channelsystem types
If /i "%wadtype:~0,7%" EQU "channel" goto:permit
If /i "%wadtype%" EQU "hidden" goto:permit
If /i "%wadtype%" EQU "ios" goto:permit
goto:skip
:permit
if /i "%SendWAD%" EQU "M" goto:modifywad
:skip
if %GetFileSize% GTR 8388576 goto:badkey
if /i "%SendWAD%" EQU "help" (start https://www.youtube.com/embed/JSyIDx35TVo) & (goto:WADdrop)
if "%WiiIP%"=="" goto:skip
If /i "%SendWAD%" EQU "S" set "SendWAD=%WiiIP%"
:skip
::check valid IP
powershell -nologo -noprofile -Command "[ipaddress]::TryParse('%SendWAD%',[ref][ipaddress]::Loopback)" | findstr "False">NUL && goto:badkey
::check for 3 periods
set "string=%SendWAD%"
set /a dotcount=0
setlocal EnableDelayedExpansion
if defined string (set ^"strtmp=!string:.=^
%= empty string =%
!^") else set "strtmp="
for /F %%C in ('cmd /V /C echo(^^!strtmp^^!^| find /C /V ""') do set /A "dotcount=%%C-1"
setlocal DISABLEDELAYEDEXPANSION
::echo "!string!" contains %dotcount% periods.
if /i "%dotcount%" EQU "3" goto:pingme
:badkey
echo You Have Entered an Incorrect Key
@ping 127.0.0.1 -n 2 -w 1000> nul
goto:WADdrop
:pingme
call Support\subscripts\dependency.bat Sharpii
if /i "%dependency%" EQU "F" (@ping 127.0.0.1 -n 3 -w 1000> nul) & (goto:WADdrop)
::check if Wii is reachable
::echo.
::echo Pinging Wii to see if reachable...
ping -n 1 "%SendWAD%"|findstr /I /C:"ms">nul
IF NOT ERRORLEVEL 1 goto:Pinged
support\sfk echo [%yellowtext%]Unable to reach IP %SendWAD%, check your settings and try again...
@ping 127.0.0.1 -n 2 -w 1000> nul
goto:WADdrop
:Pinged
cls
set "WiiIP=%SendWAD%"
> "temp\WiiIP.txt" ECHO %WiiIP%
support\sfk echo [%redtext%]ModMii v%currentversion% WAD tools
echo.
support\sfk echo Sending Wad: [%bluetext%]"%cmdinput%"
support\sfk echo To IP Address: [%bluetext%]"%WiiIP%"
echo.
echo If you have issues make sure you have the HBC open but that you are not inside its Home Menu,
echo Double check the Wii IP address and make sure both this device and the Wii are on the same network.
echo.
support\sfk -spat echo "Sending command: [%cyantext%]sharpii.exe SendWad -ip "%WiiIP%" -wad \x22"%cmdinput%"\x22 -ahb"
echo.
temp\Sharpii.exe SendWad -ip %WiiIP% -wad "%cmdinput%" -ahb
echo.
echo exiting...
@ping 127.0.0.1 -n 5 -w 1000> nul
exit
:unpackwad
if not exist "%cmdinput:~0,-4%" mkdir "%cmdinput:~0,-4%"
set errorlevel=
%WiiPy% wad unpack --skip-hash "%cmdinput%" "%cmdinput:~0,-4%">nul
if /i "%errorlevel%" NEQ "0" goto:UnpackFail
if not exist "%cmdinput:~0,-4%\*.tmd" goto:UnpackFail
if /i "%AudioOption%" EQU "on" start support\nircmd.exe mediaplay 3000 "%Success.mp3%"
echo.
echo WAD unpacked to folder: "%cmdinput:~0,-4%"
echo.
echo exiting...
if /i "%SendWAD%" EQU "O" explorer "%cmdinput:~0,-4%"
@ping 127.0.0.1 -n 5 -w 1000> nul
exit
:UnpackFail
if /i "%AudioOption%" EQU "on" start support\nircmd.exe mediaplay 3000 "%Fail.mp3%"
::empty folder check, if not empty goto something, if empty delete it
dir /A /B "%cmdinput:~0,-4%" | findstr /R ".">NUL && goto:notempty
rd /s /q "%cmdinput:~0,-4%"> nul
:notempty
echo.
(echo Something went wrong, press any key to exit...) & (pause>nul) & (exit)
:modifywad
If /i "%wadtype%" EQU "ios" goto:modifyIOSwad
:FirstRandom
if not "%RandomNum%"=="" goto:notFirstRandom
set "RandomNum=%random%"
set "WADcopy=%cmdinput:~0,-4%-Mod%RandomNum%.wad"
if exist "%WADcopy%" (set RandomNum=) & (goto:FirstRandom)
:notFirstRandom
if "%WADtit%"=="" goto:modifyID
cls
support\sfk echo [%redtext%]ModMii v%currentversion% WAD tools
echo.
support\sfk echo Modify Channel WAD: [%cyantext%]Title[def], Title ID, IOS, DOL, AHB^|DVD, %NLtext%Fakesign, %DFtext%Visibility
echo.
support\sfk.exe echo Input : [%bluetext%]"%cmdinput%"
support\sfk.exe echo Output: [%bluetext%]"%cmdinput:~0,-4%[%redtext%]-Mod%RandomNum%[%bluetext%].wad"
echo.
::set "WADinfo=%cmdinput%"
::if exist "%WADcopy%" set "WADinfo=%WADcopy%"
call "Support\subscripts\DisplayWadInfo.bat"
echo.
support\sfk -spat echo \x20 \x20 \x20 \x20 \x20 [%cyantext%]Modify Channel Title
echo.
echo If you would like to change the Title, enter a new Title now (max length is 40 chars).
echo.
echo To leave the Title unchanged, leave the selection blank and press Enter.
echo.
echo B = Back
echo E = Exit
echo.
set WADtitle="
set /p WADtitle=Enter Selection Here:
set "WADtitle=%WADtitle:"=%"
if "%WADtitle%"=="" goto:modifyID
if /i "%WADtitle%" EQU "B" goto:WADdrop
if /i "%WADtitle%" EQU "E" exit
::title 40 chars length check
if /i "%WADtitle:~40,1%" NEQ "" goto:badkey
::save copy and apply change
if not exist "%WADcopy%" copy /y "%cmdinput%" "%WADcopy%">nul
%WiiPy% wad edit --channel-name "%WADtitle%" "%WADcopy%"
if not errorlevel 0 goto:WADfail
set "WADtit=%WADtitle%"
set SigningStatus=Fakesigned
@ping 127.0.0.1 -n 2 -w 1000> nul
goto:modifyID
:badkey
echo Title is greater than 40 character maximum...
@ping 127.0.0.1 -n 2 -w 1000> nul
goto:modifywad
:modifyID
cls
support\sfk echo [%redtext%]ModMii v%currentversion% WAD tools
echo.
support\sfk echo Modify Channel WAD: %TITtext%[%cyantext%]Title ID[def], IOS, DOL, AHB^|DVD, %NLtext%Fakesign, %DFtext%Visibility
echo.
support\sfk.exe echo Input : [%bluetext%]"%cmdinput%"
support\sfk.exe echo Output: [%bluetext%]"%cmdinput:~0,-4%[%redtext%]-Mod%RandomNum%[%bluetext%].wad"
echo.
::set "WADinfo=%cmdinput%"
::if exist "%WADcopy%" set "WADinfo=%WADcopy%"
call "Support\subscripts\DisplayWadInfo.bat"
echo.
support\sfk -spat echo \x20 \x20 \x20 \x20 \x20 [%cyantext%]Modify Channel Title ID
echo.
echo If you would like to change the Title ID, enter a new 4-character Title ID now.
::echo Note: letters and numbers only; cannot contain spaces or special characters.
echo.
echo To leave the Title ID unchanged, leave the selection blank and press Enter.
echo.
::check for title ID's that cause issues on vWii https://hackmd.io/@Ingunar/43OnlyWii#Structure-and-rules (pillarboxing be resolved using priiloader system menu hack instead)
::https://github.com/DacoTaco/priiloader/blob/master/docs/HACKSLIST.md#remove-pillarboxing-completely-vwii
::pillarboxing
if /i "%TitID:~0,1%" EQU "C" goto:titleIDwarning
if /i "%TitID:~0,1%" EQU "F" goto:titleIDwarning
if /i "%TitID:~0,1%" EQU "J" goto:titleIDwarning
if /i "%TitID:~0,1%" EQU "L" goto:titleIDwarning
if /i "%TitID:~0,1%" EQU "N" goto:titleIDwarning
if /i "%TitID:~0,1%" EQU "P" goto:titleIDwarning
if /i "%TitID:~0,1%" EQU "Q" goto:titleIDwarning
::Titles starting with D, R, S, T are checked for in discdb.bin- Wii Disc IDs and Disk Channels
if /i "%TitID:~0,1%" EQU "D" goto:titleIDwarning
if /i "%TitID:~0,1%" EQU "R" goto:titleIDwarning
if /i "%TitID:~0,1%" EQU "T" goto:titleIDwarning
if /i "%TitID:~0,1%" EQU "S" goto:titleIDwarning
::Titles starting with E are complicated, if the second letter is I-Z or 2-7 it's checked in the vcadb.bin - Virtual Console Arcade Titles, if the second letter is A-H it's 4:3 #E[A-H]xxxx - NeoGeo Virtual Console games games, All other titles are 16:9
if /i "%TitID:~0,1%" EQU "E" goto:titleIDwarning
::Titles starting with H, W are checked for in the wwdb.bin - All Wii System Menu Channels and WiiWare Titles
if /i "%TitID:~0,1%" EQU "H" goto:titleIDwarning
if /i "%TitID:~0,1%" EQU "W" goto:titleIDwarning
::Titles starting with M followed by C3 are always 16:9, all others with M are 4:3
if /i "%TitID:~0,1%" EQU "M" goto:titleIDwarning
::Titles starting with X followed by A-G are 4:3, all others are checked for in the wwdb.bin - All WiiWare Demos
if /i "%TitID:~0,1%" EQU "X" goto:titleIDwarning
goto:skipwarning
:titleIDwarning
support\sfk -spat echo \x20 \x20 \x20 \x20 \x20 [%redtext%]Warning![def] \x22"%TitID%"\x22 Title ID will force title checks or 4:3 aspect ratio (pillarboxing) on vWii
echo UNLESS Priiloader's pillarboxing system menu hacks are enabled. To avoid this without needing
echo Priiloader hacks use a new Title ID that does not begin any of these letters:
support\sfk -spat echo \x20 \x20 \x20 \x20 \x20 C,D,E,F,H,J,L,M,N,P,Q,R,S,T,W,X (e.g. B"%TitID:~1,3%")
echo.
:skipwarning
echo B = Back
echo E = Exit
echo.
set WADtitleID="
set /p WADtitleID=Enter Selection Here:
set "WADtitleID=%WADtitleID:"=%"
if "%WADtitleID%"=="" goto:modifyIOS
if /i "%WADtitleID%" NEQ "B" goto:notback
if "%WADtit%"=="" goto:WADdrop
goto:modifywad
:notback
if /i "%WADtitleID%" EQU "E" exit
::title 4 chars length check
if /i "%WADtitleID:~4,1%" NEQ "" goto:badkey
if /i "%WADtitleID:~3,1%" EQU "" goto:badkey
::space check
::if /i "%WADtitleID:~0,1%" EQU " " goto:badkey
::if /i "%WADtitleID:~1,1%" EQU " " goto:badkey
::if /i "%WADtitleID:~2,1%" EQU " " goto:badkey
::if /i "%WADtitleID:~3,1%" EQU " " goto:badkey
::skip if same value entered
if /i "%TitID%" EQU "%WADtitleID%" goto:modifyIOS
::check for title ID's that cause issues on vWii https://hackmd.io/@Ingunar/43OnlyWii#Structure-and-rules (pillarboxing be resolved using priiloader system menu hack instead)
::https://github.com/DacoTaco/priiloader/blob/master/docs/HACKSLIST.md#remove-pillarboxing-completely-vwii
::pillarboxing
if /i "%WADtitleID:~0,1%" EQU "C" goto:titleIDwarning
if /i "%WADtitleID:~0,1%" EQU "F" goto:titleIDwarning
if /i "%WADtitleID:~0,1%" EQU "J" goto:titleIDwarning
if /i "%WADtitleID:~0,1%" EQU "L" goto:titleIDwarning
if /i "%WADtitleID:~0,1%" EQU "N" goto:titleIDwarning
if /i "%WADtitleID:~0,1%" EQU "P" goto:titleIDwarning
if /i "%WADtitleID:~0,1%" EQU "Q" goto:titleIDwarning
::Titles starting with D, R, S, T are checked for in discdb.bin- Wii Disc IDs and Disk Channels
if /i "%WADtitleID:~0,1%" EQU "D" goto:titleIDwarning
if /i "%WADtitleID:~0,1%" EQU "R" goto:titleIDwarning
if /i "%WADtitleID:~0,1%" EQU "T" goto:titleIDwarning
if /i "%WADtitleID:~0,1%" EQU "S" goto:titleIDwarning
::Titles starting with E are complicated, if the second letter is I-Z or 2-7 it's checked in the vcadb.bin - Virtual Console Arcade Titles, if the second letter is A-H it's 4:3 #E[A-H]xxxx - NeoGeo Virtual Console games games, All other titles are 16:9
if /i "%WADtitleID:~0,1%" EQU "E" goto:titleIDwarning
::Titles starting with H, W are checked for in the wwdb.bin - All Wii System Menu Channels and WiiWare Titles
if /i "%WADtitleID:~0,1%" EQU "H" goto:titleIDwarning
if /i "%WADtitleID:~0,1%" EQU "W" goto:titleIDwarning
::Titles starting with M followed by C3 are always 16:9, all others with M are 4:3
if /i "%WADtitleID:~0,1%" EQU "M" goto:titleIDwarning
::Titles starting with X followed by A-G are 4:3, all others are checked for in the wwdb.bin - All WiiWare Demos
if /i "%WADtitleID:~0,1%" EQU "X" goto:titleIDwarning
goto:skipwarning
:titleIDwarning
echo.
support\sfk -spat echo \x20 \x20 \x20 \x20 \x20 [%redtext%]Warning![def] \x22%WADtitleID%\x22 Title ID will force title checks or 4:3 aspect ratio (pillarboxing) on vWii
echo UNLESS Priiloader's pillarboxing system menu hacks are enabled. To avoid this without needing
echo Priiloader hacks use a new Title ID that does not begin any of these letters:
echo C,D,E,F,H,J,L,M,N,P,Q,R,S,T,W,X (e.g. B%WADtitleID:~1,3%)
echo.
:titleIDwarning2
set titleIDwarning="
set /p titleIDwarning= Do you still want to change the Title ID to "%WADtitleID%"? (Y/N):
set "titleIDwarning=%titleIDwarning:"=%"
if /i "%titleIDwarning%" EQU "N" goto:modifyID
if /i "%titleIDwarning%" EQU "Y" goto:skipwarning
echo You Have Entered an Incorrect Key
echo.
goto:titleIDwarning2
:skipwarning
::save copy and apply change
if not exist "%WADcopy%" copy /y "%cmdinput%" "%WADcopy%">nul
%WiiPy% wad edit --tid "%WADtitleID%" "%WADcopy%"
if not errorlevel 0 goto:WADfail
set SigningStatus=Fakesigned
set "TitID=%WADtitleID%"
@ping 127.0.0.1 -n 2 -w 1000> nul
goto:modifyIOS
:badkey
echo Title ID must be 4 characters...
@ping 127.0.0.1 -n 2 -w 1000> nul
goto:modifyID
:modifyIOS
cls
support\sfk echo [%redtext%]ModMii v%currentversion% WAD tools
echo.
support\sfk echo Modify Channel WAD: %TITtext%Title ID, [%cyantext%]IOS[def], DOL, AHB^|DVD, %NLtext%Fakesign, %DFtext%Visibility
echo.
support\sfk.exe echo Input : [%bluetext%]"%cmdinput%"
support\sfk.exe echo Output: [%bluetext%]"%cmdinput:~0,-4%[%redtext%]-Mod%RandomNum%[%bluetext%].wad"
echo.
::set "WADinfo=%cmdinput%"
::if exist "%WADcopy%" set "WADinfo=%WADcopy%"
call "Support\subscripts\DisplayWadInfo.bat"
echo.
support\sfk -spat echo \x20 \x20 \x20 \x20 \x20 [%cyantext%]Modify Channel IOS
echo.
echo If you would like to change the IOS used by the channel, enter it now (must be between 3-254).
echo Note: The selected IOS should be installed on the Wii\vWii and capable of launching this title.
echo.
echo To leave the IOS unchanged, leave the selection blank and press Enter.
echo.
::IOS61 Warning for vWii
If /i "%iosslot%" NEQ "61" goto:skipwarning
support\sfk -spat echo \x20 \x20 \x20 [%redtext%]Warning![def] IOS61 is normally not installed on vWii unless you used ModMii or System Channel Restorer.
echo Keeping the IOS at 61 may prevent the channel from loading on vWii.
echo Choose another IOS to avoid this issue (e.g. 58).
echo.
:skipwarning
echo B = Back
echo E = Exit
echo.
set WADios="
set /p WADios=Enter Selection Here:
set "WADios=%WADios:"=%"
if "%WADios%"=="" goto:modifyDOL
if /i "%WADios%" EQU "B" goto:modifyID
if /i "%WADios%" EQU "E" exit
::if not numeric goto:badkey
for %%A in ("%WADios%") do (for /f "tokens=1 delims=0123456789" %%B in ("%%~A") do goto:badkey)
::Remove leading zeros
for /f "tokens=* delims=0" %%A in ("%WADios%") do set "WADios=%%A"
::Set to 0 if entire input is all zeros
if "%WADios%"=="" set "WADios=0"
::IOS 3-254 check
::limit user input to X# of digits
if not "%WADios:~3%"=="" goto:badkey
if %WADios% LSS 3 goto:badkey
if %WADios% GTR 254 goto:badkey
::skip if same value entered
if /i "%WADios%" EQU "%iosslot%" goto:modifyDOL
::IOS61 Warning for vWii
if /i "%WADios%" NEQ "61" goto:skipwarning
echo.
support\sfk -spat echo \x20 \x20 \x20 [%redtext%]Warning![def] IOS61 is normally not installed on vWii unless you used ModMii or System Channel Restorer.
echo Keeping the IOS at 61 may prevent the channel from loading on vWii.
echo Choose another IOS to avoid this issue (e.g. 58).
echo.
:IOS61warning
set IOS61warning="
set /p IOS61warning= Do you still want to change the IOS to 61? (Y/N):
set "IOS61warning=%IOS61warning:"=%"
if /i "%IOS61warning%" EQU "N" goto:modifyIOS
if /i "%IOS61warning%" EQU "Y" goto:skipwarning
echo You Have Entered an Incorrect Key
echo.
goto:IOS61warning
:skipwarning
::save copy and apply change
if not exist "%WADcopy%" copy /y "%cmdinput%" "%WADcopy%">nul
set ERRORLEVEL=
%WiiPy% wad edit --ios "%WADios%" "%WADcopy%"
if not errorlevel 0 goto:WADfail
set SigningStatus=Fakesigned
set "iosslot=%WADios%"
@ping 127.0.0.1 -n 2 -w 1000> nul
goto:modifyDOL
:badkey
echo IOS must be between 3-254, try again...
@ping 127.0.0.1 -n 2 -w 1000> nul
goto:modifyIOS
:modifyDOL
cls
support\sfk echo [%redtext%]ModMii v%currentversion% WAD tools
echo.
support\sfk echo Modify Channel WAD: %TITtext%Title ID, IOS, [%cyantext%]DOL[def], AHB^|DVD, %NLtext%Fakesign, %DFtext%Visibility
echo.
support\sfk.exe echo Input : [%bluetext%]"%cmdinput%"
support\sfk.exe echo Output: [%bluetext%]"%cmdinput:~0,-4%[%redtext%]-Mod%RandomNum%[%bluetext%].wad"
echo.
::set "WADinfo=%cmdinput%"
::if exist "%WADcopy%" set "WADinfo=%WADcopy%"
call "Support\subscripts\DisplayWadInfo.bat"
echo.
support\sfk -spat echo \x20 \x20 \x20 \x20 \x20 [%cyantext%]Modify Channel DOL
echo.
echo To change the DOL used by this channel enter the path of the new DOL or WAD to use instead.
if /i "%adminmode%" EQU "N" echo Note: You can drag and drop the new DOL or WAD onto this window instead of manually typing it.
echo.
echo To leave the DOL unchanged, leave the selection blank and press Enter.
echo.
echo B = Back
echo E = Exit
echo.
set WADdol="
set /p WADdol=Enter Selection Here:
set "WADdol=%WADdol:"=%"
if "%WADdol%"=="" goto:modifyAHB
if /i "%WADdol%" EQU "B" goto:modifyIOS
if /i "%WADdol%" EQU "E" exit
if not exist "%WADdol%" goto:badkey
::if newDolNL=Y it means new dol (or dol embedded in wad) has an integrated nand loader, same goes for oldDolNL (i.e. wad that was dragged)
if %WadContents% GTR 2 (set oldDolNL=N) else (set oldDolNL=Y)
set newDolNL=N
if /i "%WADdol:~-4%" NEQ ".wad" goto:skipWADcheck
::only accept channels and hidden channels
set channelpathTEMP=
if exist temp\hexdump.txt del temp\hexdump.txt>nul
support\sfk hexdump -pure -nofile -offlen 0xE8C 0x04 "%WADdol%">temp\hexdump.txt
set /p channelpathTEMP= <temp\hexdump.txt
If /i "%channelpathTEMP%" EQU "00010001" goto:skip
If /i "%channelpathTEMP%" EQU "00010008" goto:skip
echo This WAD and cannot be used for this purpose...
@ping 127.0.0.1 -n 2 -w 1000> nul
goto:modifyDOL
:skip
::new module count (in hex) in tmd at offset 0x1DE (len 2), or offset 0xEDE of wad (offset is 0xD00 or 3328 greater in WAD than tmd)
if exist temp\hexdump.txt del temp\hexdump.txt>nul
support\sfk hexdump -pure -nofile -offlen 0xEDE 0x02 "%WADdol%">temp\hexdump.txt
set /p NewWadContents= <temp\hexdump.txt
support\sfk dec %NewWadContents%>temp\hexdump.txt
set /p NewWadContents= <temp\hexdump.txt
set NewWadContents=%NewWadContents:~0,-1%
::if not "%NewWadContents%"=="" echo New WAD Content Files: %NewWadContents%
if %NewWadContents% GTR 2 (set newDolNL=N) else (set newDolNL=Y)
::get boot index (at offset 0x1E0 of TMD or 0xEE0 of WAD)
if exist temp\hexdump.txt del temp\hexdump.txt>nul
support\sfk hexdump -pure -nofile -offlen 0xEE0 0x02 "%WADdol%">temp\hexdump.txt
set /p NewBootIndex= <temp\hexdump.txt
If /i "%NewBootIndex%" EQU "0001" goto:continue
If /i "%NewBootIndex%" EQU "0002" goto:continue
echo "%WADdol%" contains an unexpected Boot Index (%NewBootIndex%), aborting...
@ping 127.0.0.1 -n 3 -w 1000> nul
goto:modifyDOL
:continue
::if wad, unpack to get new dol
if exist "temp\__channel" rd /s /q "temp\__channel"> nul
mkdir "temp\__channel"
%WiiPy% wad unpack --skip-hash "%WADdol%" "temp\__channel">nul
::00000003.app should not exist
if exist "temp\__channel\00000003.app" (echo 00000003.app unexpected in donor WAD...) & (goto:WADfail)
if not exist "temp\__channel\00000001.app" (echo 00000001.app missing in donor WAD...) & (goto:WADfail)
::if exist "temp\__channel" rd /s /q "temp\__channel"> nul
If /i "%NewBootIndex%" EQU "0001" set "WADdol=temp\__channel\00000002.app"
If /i "%NewBootIndex%" EQU "0002" set "WADdol=temp\__channel\00000001.app"
if not exist "temp\__channel\00000002.app" set "WADdol=temp\__channel\00000001.app"
If /i "%newDolNL%" EQU "Y" set "WADdol=temp\__channel\00000001.app"
goto:skip
:skipWADcheck
if /i "%WADdol:~-4%" NEQ ".dol" goto:badkey
::.dol: check if new dol has integrated nandloader
call Support\subscripts\dependency.bat ODB
if /i "%dependency%" EQU "F" (@ping 127.0.0.1 -n 3 -w 1000> nul) & (goto:modifyDOL)
::double check this is a NandLoader, if OpenDolBoot.exe -i output contains 0x00003400 or 0x80003400 then it's a nandloader
temp\OpenDolBoot.exe -i "%WADdol%" | findstr 0x00003400>NUL && set newDolNL=Y
temp\OpenDolBoot.exe -i "%WADdol%" | findstr 0x80003400>NUL && set newDolNL=Y
:skip
if not exist "%WADcopy%" (set "WADtemp=%cmdinput%") else (set "WADtemp=%WADcopy%")
::get boot index (at offset 0x1E0 of TMD or 0xEE0 of WAD)
if exist temp\hexdump.txt del temp\hexdump.txt>nul
support\sfk hexdump -pure -nofile -offlen 0xEE0 0x02 "%WADtemp%">temp\hexdump.txt
set /p OldBootIndex= <temp\hexdump.txt
If /i "%OldBootIndex%" EQU "0001" goto:continue
If /i "%OldBootIndex%" EQU "0002" goto:continue
echo Unexpected Boot Index (%OldBootIndex%), aborting...
@ping 127.0.0.1 -n 2 -w 1000> nul
goto:modifyDOL
:continue
::At this point if "%WADdol%" was a wad, now it's a dol
::if oldDolNL=Y and newDolNL=N, need to inject nandloader into dol
If /i "%oldDolNL%" NEQ "Y" goto:skip
If /i "%newDolNL%" NEQ "N" goto:skip
echo.
echo Old dol has integrated NandLoader but new dol does not...
echo Integrating OpenDolBoot's NandLoader to new dol before adding to WAD...
call Support\subscripts\dependency.bat ODB
if /i "%dependency%" EQU "F" (@ping 127.0.0.1 -n 3 -w 1000> nul) & (goto:modifyDOL)
if exist "temp\main.dol" del "temp\main.dol">nul
temp\OpenDolBoot.exe "%WADdol%" -f "temp\main.dol">nul
if not errorlevel 0 goto:WADfail
set "WADdol=temp\main.dol"
set "WadNL=OpenDolBoot [integrated]"
set newDolNL=Y
:skip
::apply change to copy
if not exist "%WADcopy%" copy /y "%cmdinput%" "%WADcopy%">nul
::if oldDolNL=Y and newDolNL=N impossible scenario now, as it would have already been changed to both be =Y
::if oldDolNL=N and newDolNL=Y, replace content #1 and remove content #2
::if oldDolNL=Y and newDolNL=Y, just replace content #1
If /i "%newDolNL%" NEQ "Y" goto:skip
%WiiPy% wad set -i 1 "%WADcopy%" "%WADdol%"
if /i "%errorlevel%" NEQ "0" goto:WADfail
If /i "%oldDolNL%" EQU "N" %WiiPy% wad remove -i 2 "%WADcopy%"
if /i "%errorlevel%" NEQ "0" goto:WADfail
If /i "%oldDolNL%" EQU "N" set /a WadContents=%WadContents%-1
echo Operation completed succesfully!
if exist "temp\__channel" rd /s /q "temp\__channel"> nul
set SigningStatus=Fakesigned
::get WAD updated size (1 of 3)
%WiiPy% info "%WADcopy%">temp\WADinfo.txt
::check if file is empty, if empty it means WiiPy errored; likely with "This is not a valid WAD file!"
>nul findstr "^" "temp\WADinfo.txt" || set wadtype=Invalid
If /i "%wadtype%" NEQ "Invalid" goto:notInvalid
support\sfk echo [%yellowtext%]This is not a valid WAD file
if exist temp\WADinfo.txt del temp\WADinfo.txt>nul
goto:WADfail
:notInvalid
::get WAD size in bytes, megabytes and blocks
support\sfk filter -quiet temp\WADinfo.txt -ls+" Installed Size: " -rep _*": "__>temp\WADinfo2.txt
set /p WadBlocks= <temp\WADinfo2.txt
support\sfk filter -quiet temp\WADinfo.txt -ls+" Installed Size (MB): " -rep _*": "__>temp\WADinfo2.txt
set /p GetFileSizeMB= <temp\WADinfo2.txt
support\sfk stat "%WadInput%">"temp\WADinfo.txt"
support\sfk filter "temp\WADinfo.txt" -rep _" bytes*"__ -rep _"* "__ >temp\WADinfo2.txt
set /p GetFileSize= <temp\WADinfo2.txt
if exist temp\WADinfo.txt del temp\WADinfo.txt>nul
if exist temp\WADinfo2.txt del temp\WADinfo2.txt>nul
::---redetect new Nandloader if autodetect enabled---
::if %WadContents% LEQ 1 goto:AutoDetectNLpickup3
::if %WadContents% GTR 3 goto:AutoDetectNLpickup3
::If /i "%wadtype%" EQU "channel" goto:AutoDetectNL3
::If /i "%wadtype%" NEQ "hidden" goto:AutoDetectNLpickup3
:::AutoDetectNL3
set WadNL=
set "cmdinputcopy=%cmdinput%"
if "%AutoDetectNL%"=="" goto:AutoDetectNLpickup3
echo.
echo Autodetecting new NandLoader as per settings...
set WadNandLoader=D
set DetectNLpickup=AutoDetectNLpickup3
::Careful editing cmdinput!
::done above::set "cmdinputcopy=%cmdinput%"
set "cmdinput=%WADcopy%"
goto:NLcount
:AutoDetectNLpickup3
set "cmdinput=%cmdinputcopy%"
@ping 127.0.0.1 -n 1 -w 1000> nul
goto:modifyAHB
:skip
::if oldDolNL=N and newDolNL=N, replace correct content
If /i "%OldBootIndex%" EQU "0001" %WiiPy% wad set -i 2 "%WADcopy%" "%WADdol%"
If /i "%OldBootIndex%" EQU "0002" %WiiPy% wad set -i 1 "%WADcopy%" "%WADdol%"
if /i "%errorlevel%" NEQ "0" goto:WADfail
echo Operation completed succesfully!
if exist "temp\__channel" rd /s /q "temp\__channel"> nul
set SigningStatus=Fakesigned
::get WAD updated size (2 of 3)
%WiiPy% info "%WADcopy%">temp\WADinfo.txt
::check if file is empty, if empty it means WiiPy errored; likely with "This is not a valid WAD file!"
>nul findstr "^" "temp\WADinfo.txt" || set wadtype=Invalid
If /i "%wadtype%" NEQ "Invalid" goto:notInvalid
support\sfk echo [%yellowtext%]This is not a valid WAD file
if exist temp\WADinfo.txt del temp\WADinfo.txt>nul
goto:WADfail
:notInvalid
::get WAD size in bytes, megabytes and blocks
support\sfk filter -quiet temp\WADinfo.txt -ls+" Installed Size: " -rep _*": "__>temp\WADinfo2.txt
set /p WadBlocks= <temp\WADinfo2.txt
support\sfk filter -quiet temp\WADinfo.txt -ls+" Installed Size (MB): " -rep _*": "__>temp\WADinfo2.txt
set /p GetFileSizeMB= <temp\WADinfo2.txt
support\sfk stat "%WadInput%">"temp\WADinfo.txt"
support\sfk filter "temp\WADinfo.txt" -rep _" bytes*"__ -rep _"* "__ >temp\WADinfo2.txt
set /p GetFileSize= <temp\WADinfo2.txt
if exist temp\WADinfo.txt del temp\WADinfo.txt>nul
if exist temp\WADinfo2.txt del temp\WADinfo2.txt>nul
@ping 127.0.0.1 -n 2 -w 1000> nul
goto:modifyAHB
:badkey
echo You Have Entered an Incorrect Key
@ping 127.0.0.1 -n 2 -w 1000> nul
goto:modifyDOL
:modifyAHB
cls
support\sfk echo [%redtext%]ModMii v%currentversion% WAD tools
echo.
support\sfk echo Modify Channel WAD: %TITtext%Title ID, IOS, DOL, [%cyantext%]AHB^|DVD[def], %NLtext%Fakesign, %DFtext%Visibility
echo.
support\sfk.exe echo Input : [%bluetext%]"%cmdinput%"
support\sfk.exe echo Output: [%bluetext%]"%cmdinput:~0,-4%[%redtext%]-Mod%RandomNum%[%bluetext%].wad"
echo.
::set "WADinfo=%cmdinput%"
::if exist "%WADcopy%" set "WADinfo=%WADcopy%"
call "Support\subscripts\DisplayWadInfo.bat"
echo.
support\sfk -spat echo \x20 \x20 \x20 \x20 \x20 [%cyantext%]Modify AHB or DVD Video Access Rights
echo.
echo 2 = Enable both AHB (full PPC hardware) and DVD Video access rights
echo A = enable AHB Access only and disable DVD Video access
echo D = enable DVD Video access Only and disable AHB access
echo N = None; disable both AHB and DVD Video Access for some reason
echo.
echo To leave AHB Access unchanged, leave the selection blank and press Enter.
echo.
echo B = Back
echo E = Exit
echo.
set WadAHB="
set /p WadAHB=Enter Selection Here:
set "WadAHB=%WadAHB:"=%"
if not "%WadAHB%"=="" goto:notempty
if "%NLtext%"=="" goto:modifyFakesign
goto:modifyNandLoader
:notempty
if /i "%WadAHB%" EQU "B" goto:modifyDOL
if /i "%WadAHB%" EQU "E" exit
if /i "%WadAHB%" EQU "2" goto:continue
if /i "%WadAHB%" EQU "A" goto:continue
if /i "%WadAHB%" EQU "D" goto:continue
if /i "%WadAHB%" EQU "N" goto:continue
goto:badkey
:continue
::7 6 5 4 3 2 1 0 - bits
::if position 0 = 1 then AHB Access is enabled
::if position 1 = 1 then DVD Access is enabled
set "AccessRightsBinNew=%AccessRightsBin%"
if /i "%WadAHB%" EQU "A" set "AccessRightsBinNew=%AccessRightsBinNew:~0,6%01"
if /i "%WadAHB%" EQU "D" set "AccessRightsBinNew=%AccessRightsBinNew:~0,6%10"
if /i "%WadAHB%" EQU "N" set "AccessRightsBinNew=%AccessRightsBinNew:~0,6%00"
if /i "%WadAHB%" EQU "2" set "AccessRightsBinNew=%AccessRightsBinNew:~0,6%11"
::echo AccessRightsBin:"%AccessRightsBin%"
::echo AccessRightsBinNew:"%AccessRightsBinNew%"
if /i "%AccessRightsBinNew%" EQU "%AccessRightsBin%" (echo No changes selected...) & (goto:NextThing)
::convert AccessRightsBinNew to hex and apply patch
support\sfk num -show hex 0b%AccessRightsBinNew%>temp\hexdump.txt
set /p AccessRightsHexNew= <temp\hexdump.txt
set AccessRightsHexNew=%AccessRightsHexNew:~-2%
::echo AccessRightsHexNew:"%AccessRightsHexNew%"
::save copy and apply change
if not exist "%WADcopy%" copy /y "%cmdinput%" "%WADcopy%">nul
set ERRORLEVEL=
support\sfk setbytes "%WADcopy%" 0xEDB 0x%AccessRightsHexNew% -yes>nul
if not errorlevel 0 goto:WADfail
set AccessRightsHex=%AccessRightsHexNew%
set AccessRightsBin=%AccessRightsBinNew%
If /i "%AccessRightsBin:~-1%" EQU "1" (set ahbprot=Enabled) else (set ahbprot=Disabled)
::echo AHB Access: %ahbprot%
If /i "%AccessRightsBin:~-2,1%" EQU "1" (set DVDvid=Enabled) else (set DVDvid=Disabled)
::echo DVD Video Access: %DVDvid%
echo Operation completed succesfully!
:NextThing
@ping 127.0.0.1 -n 2 -w 1000> nul
if "%NLtext%"=="" goto:modifyFakesign
goto:modifyNandLoader
:badkey
echo You Have Entered an Incorrect Key
@ping 127.0.0.1 -n 2 -w 1000> nul
goto:modifyAHB
:WADfail
::If SendWAD is nul and we're here, then it means AutoDetectNL is enabled
if "%SendWAD%"=="" (set "WadNL=Unable to detect") & (goto:%DetectNLpickup%)
If /i "%droptype%" EQU "folder" (support\sfk echo [%redtext%]Something went wrong, skipping...) & (set /a wads2error=%wads2error%+1) & (goto:%EOF%)
if /i "%AudioOption%" EQU "on" start support\nircmd.exe mediaplay 3000 "%Fail.mp3%"
echo Something went wrong, exiting...
if exist "temp\__channel" rd /s /q "temp\__channel"> nul
@ping 127.0.0.1 -n 5 -w 1000> nul
exit
:modifyNandLoader
set DetectNLpickup=modifyNandLoader
cls
support\sfk echo [%redtext%]ModMii v%currentversion% WAD tools
echo.
support\sfk echo Modify Channel WAD: %TITtext%Title ID, IOS, DOL, AHB^|DVD, [%cyantext%]NandLoader[def], Fakesign, %DFtext%Visibility
echo.
support\sfk.exe echo Input : [%bluetext%]"%cmdinput%"
support\sfk.exe echo Output: [%bluetext%]"%cmdinput:~0,-4%[%redtext%]-Mod%RandomNum%[%bluetext%].wad"
echo.
::set "WADinfo=%cmdinput%"
::if exist "%WADcopy%" set "WADinfo=%WADcopy%"
call "Support\subscripts\DisplayWadInfo.bat"
echo.
support\sfk -spat echo \x20 \x20 \x20 \x20 \x20 [%cyantext%]Modify NandLoader
echo.
echo To leave NandLoader unchanged, leave the selection blank and press Enter.
:modifyNandLoader2
If /i "%droptype%" NEQ "folder" goto:notfolder
cls
support\sfk echo [%redtext%]ModMii v%currentversion% Bulk WAD NandLoader Updater
echo.
echo What NandLoader you would like to inject into this folder of WADs?
echo.
support\sfk.exe echo [%bluetext%]"%wadpath%"
echo.
echo Note: Inapplicable channels will be skipped.
echo Changes will be applied to copies of the original WADs.
:notfolder
echo.
echo If a channel fails to launch, changing its NandLoader may get it working.
echo * OpenDolBoot ^& OpenHBC should work on both Wii and vWii
echo * Tiny vWii only works with vWii
echo * All other NandLoaders only work on the Wii
echo.
echo O = OpenDolBoot [Integrated] NandLoader (Recommended)
echo C = Choose another NandLoader
If /i "%droptype%" EQU "folder" goto:tinyskip
::when detecting NL, checks are also done for visible channels to see if a minimalist banner is installed
if "%WadNL%"=="" echo D = Detect which NandLoader is currently used
if "%AutoDetectNL%"=="" echo D+ = Detect NandLoader now and immediately when opening applicable Channel WADs
if not "%AutoDetectNL%"=="" echo D+ = Disable automatic NandLoader detection when opening applicable Channel WADs
:tinyskip
echo B = Back
echo E = Exit
echo.
set WadNandLoader="
set /p WadNandLoader=Enter Selection Here:
set "WadNandLoader=%WadNandLoader:"=%"
if "%WadNandLoader%"=="" goto:modifyFakesign
if /i "%WadNandLoader%" NEQ "B" goto:notback
If /i "%droptype%" EQU "folder" goto:wadfolder2
goto:modifyAHB
:notback
if /i "%WadNandLoader%" EQU "E" exit
::if /i "%WadNandLoader%" NEQ "Y" goto:badkey
::Detect NandLoader, start by building bin files for all external NandLoaders (if not already done), then unpack unpack channel to temp\__channel get data and return to :DetectNandLoader
set "cmdinputcopy=%cmdinput%"
If /i "%droptype%" EQU "folder" goto:AfterDetection
::enable AutoDetectNL (D+) if not already enabled, and detect if not already detected
if not "%AutoDetectNL%"=="" goto:skip
if /i "%WadNandLoader%" NEQ "D+" goto:skip
Set AutoDetectNL=Y
echo Set AutoDetectNL=Y>>Support\settings.bat
if not "%WadNL%"=="" goto:modifyNandLoader
set WadNandLoader=D
goto:skip2
:skip
::disable AutoDetectNL (D+) if enabled (if previously enabled then already detected)
if "%AutoDetectNL%"=="" goto:skip2
if /i "%WadNandLoader%" NEQ "D+" goto:skip2
Set AutoDetectNL=
if exist Support\settings.bat support\sfk filter Support\settings.bat -ls!"Set AutoDetectNL=" -write -yes>nul
goto:modifyNandLoader
:skip2
set "cmdinputcopy=%cmdinput%"
if not "%WadNL%"=="" goto:AfterDetection
if exist "%WADcopy%" set "cmdinput=%WADcopy%"
::::set already::set DetectNLpickup=modifyNandLoader
if /i "%WadNandLoader%" EQU "D" goto:NLcount
:DetectNandLoader
if /i "%WadNandLoader%" NEQ "D" goto:AfterDetection
temp\OpenDolBoot.exe -i "temp\__channel\%NANDloadLoc%" >"temp\NandLoader.nfo"
support\sfk filter "temp\NandLoader.nfo" -cut "*" to "Sections" -+"0x00003400" -+"0x80003400" >"temp\tmp.txt"
::del "temp\NandLoader.nfo">nul
::0x09 is tab
support\sfk filter -spat "temp\tmp.txt" -rep _"*offset*0x"__ -rep _"\x09*"__ -rep _" *"__ >"temp\offset.txt"
set offset=
set /p offset= <"temp\offset.txt"
support\sfk filter -spat "temp\tmp.txt" -rep _"*size*0x"__ -rep _"\x09*"__ -rep _" *"__ >"temp\size.txt"
set size=
set /p size= <"temp\size.txt"
::If SendWAD is nul and we're here, then it means AutoDetectNL is enabled
if "%SendWAD%"=="" goto:tinyskip
if "%offset%"=="" (echo Unable to detect NandLoader...) & (@ping 127.0.0.1 -n 2 -w 1000> nul) & (goto:modifyNandLoader)
if "%size%"=="" (echo Unable to detect NandLoader...) & (@ping 127.0.0.1 -n 2 -w 1000> nul) & (goto:modifyNandLoader)
:tinyskip
if "%offset%"=="" (set "WadNL=Unable to detect") & (goto:%DetectNLpickup%)
if "%size%"=="" (set "WadNL=Unable to detect") & (goto:%DetectNLpickup%)
::Check for ODB magicword (0xC4951034) at %offset%+4 len4
set magicword=
if exist temp\hexdump.txt del temp\hexdump.txt>nul
support\sfk hexdump -pure -nofile -offlen 0x%offset% 0x08 "temp\__channel\%NANDloadLoc%">temp\hexdump.txt
set /p magicword= <temp\hexdump.txt
set "magicword=%magicword:~8%"
if /i "%magicword%" EQU "C4951034" (set WadNL=OpenDolBoot) & (goto:intVSext)
if exist "temp\NandLoader.bin" del "temp\NandLoader.bin">nul
if exist "temp\NandLoader.md5" del "temp\NandLoader.md5">nul
if exist "temp\NandLoaders.md5" del "temp\NandLoaders.md5">nul
support\sfk hexdump -nofile -offlen 0x%offset% 0x%size% "temp\__channel\%NANDloadLoc%" +hextobin "temp\NandLoader.bin">nul
::nul out entrypoint
::temp\OpenDolBoot.exe -i "temp\__channel\%NANDloadLoc%" >"temp\NandLoader.nfo"
support\sfk filter -quiet "temp\NandLoader.nfo" -cut "*" to "Sections" -!"0x00003400" -!"0x80003400" -write -yes
::0x09 is tab
support\sfk filter -quiet -spat "temp\NandLoader.nfo" -rep _"*address*0x"__ -rep _"\x09*"__ -rep _" *"__ -write -yes
set address=
set /p address= <"temp\NandLoader.nfo"
del "temp\NandLoader.nfo">nul
::echo address %address%
set entrypoint=00000000
::xhexfind instead of sfk hexfind to use wildcards i.e. [2 bytes]
support\sfk xhexfind "temp\NandLoader.bin" -text "/\x%address:~0,2%\x%address:~2,2%[2 bytes]\x%address:~4,2%\x%address:~6,2%/">"temp\NandLoader.nfo"
::count number of matches \ hits to confirm just 1
set hits=
find /C "hit at offset" < "temp\NandLoader.nfo">"temp\hits.txt"
set /p hits= <"temp\hits.txt"
del "temp\hits.txt">nul
::echo %hits% hits
::instead of going to :wadfail going to :skipnul2 if something fails, just means we can't detect, no need to exit
if /i "%hits%" NEQ "1" goto:skipnul2
::get offset
support\sfk filter -quiet "temp\NandLoader.nfo" -+"hit at offset 0x" -rep _"*hit at offset 0x"__ -rep _" *"__ -write -yes
set /p BinOffset= <"temp\NandLoader.nfo"
::echo support\hexalter.exe "temp\NandLoader.bin" 0x%BinOffset%=0x%entrypoint:~0,2%,0x%entrypoint:~2,2%
support\hexalter.exe "temp\NandLoader.bin" 0x%BinOffset%=0x%entrypoint:~0,2%,0x%entrypoint:~2,2%>nul
if not errorlevel 0 goto:skipnul2
support\sfk calc -hex 0x%BinOffset%+0x4>"temp\NandLoader.nfo"
set /p BinOffset= <"temp\NandLoader.nfo"
set BinOffset=%BinOffset:~2%
del "temp\NandLoader.nfo">nul
::echo support\hexalter.exe "temp\NandLoader.bin" 0x%BinOffset%=0x%entrypoint:~4,2%,0x%entrypoint:~6,2%
support\hexalter.exe "temp\NandLoader.bin" 0x%BinOffset%=0x%entrypoint:~4,2%,0x%entrypoint:~6,2%>nul
if not errorlevel 0 goto:skipnul2
:skipnul2
::hashcheck "temp\NandLoader.bin" against "Support\NandLoaders\*.nul" to detect, also check if integrated or not
support\sfk md5 "temp\NandLoader.bin">"temp\NandLoader.md5"
if exist "temp\NandLoader.bin" del "temp\NandLoader.bin">nul
set /p md5= <"temp\NandLoader.md5"
support\sfk select "Support\NandLoaders" .nul +md5>"temp\NandLoaders.md5"
support\sfk filter -quiet "temp\NandLoaders.md5" -+"%md5%" -rep _*Support\NandLoaders\__ -rep _.nul__ -write -yes>nul
::delete if file is empty
>nul findstr "^" "temp\NandLoaders.md5" || del "temp\NandLoaders.md5"
if exist "temp\NandLoaders.md5" set /p WadNL= <"temp\NandLoaders.md5"
if not exist "temp\NandLoaders.md5" set WadNL=Unknown
:intVSext
if not exist "temp\__channel\00000002.app" set WadNL=%WadNL% [Integrated]
if exist "temp\__channel\00000002.app" set WadNL=%WadNL% [External]
::If SendWAD is nul and we're here, then it means AutoDetectNL is enabled
if "%SendWAD%"=="" goto:%DetectNLpickup%
::if not "%AutoDetectNL%"=="" goto:%DetectNLpickup%
if /i "%SendWAD%" EQU "I" goto:%DetectNLpickup%
echo NandLoader: %WadNL%
@ping 127.0.0.1 -n 2 -w 1000> nul
::DetectNLpickup=modifyNandLoader if launched from this screen directly
goto:%DetectNLpickup%
::goto:modifyNandLoader
:AfterDetection
set "cmdinput=%cmdinputcopy%"
if /i "%WadNandLoader%" EQU "O" goto:nextstep2
if /i "%WadNandLoader%" NEQ "C" goto:notClassicNandLoader
echo.
echo Choose from one of the following NandLoader options:
echo.
:NLcount
call Support\subscripts\dependency.bat ODB
::If SendWAD is nul and we're here, then it means AutoDetectNL is enabled
if "%SendWAD%"=="" goto:tinyskip
if /i "%dependency%" EQU "F" (@ping 127.0.0.1 -n 3 -w 1000> nul) & (goto:modifyNandLoader)
:tinyskip
if /i "%dependency%" EQU "F" (echo NandLoader: Unable to detect without OpenDolBoot) & (goto:%DetectNLpickup%)
set /a NLcount=0
dir /b /a-d "Support\NandLoaders\*.bin">temp\NandLoaders.txt
dir /b /a-d "Support\NandLoaders\*.app">>temp\NandLoaders.txt
support\sfk filter "temp\NandLoaders.txt" -lerep _.app__ -lerep _.bin__ -write -yes>nul
support\sfk filter "temp\NandLoaders.txt" -unique -no-empty-lines -no-blank-lines -write -yes>nul
::Loop through the following once for EACH line in *.txt
for /F "tokens=*" %%A in (temp\NandLoaders.txt) do call :processNLlist %%A
goto:nextstep
:processNLlist
set NL=%*
set /a NLcount=%NLcount%+1
if /i "%WadNandLoader%" NEQ "D" echo %NLcount% = %NL%
if exist "temp\NandLoader.nfo" del "temp\NandLoader.nfo">nul
::strip out just nandloader bin
if exist "Support\NandLoaders\%NL%.bin" goto:skiptrim
if not exist "Support\NandLoaders\%NL%.app" goto:skiptrim
temp\OpenDolBoot.exe -i "Support\NandLoaders\%NL%.app" >"temp\NandLoader.nfo"
support\sfk filter "temp\NandLoader.nfo" -cut "*" to "Sections" -+"0x00003400" -+"0x80003400" >"temp\tmp.txt"
::0x09 is tab
support\sfk filter -spat "temp\tmp.txt" -rep _"*offset*0x"__ -rep _"\x09*"__ -rep _" *"__ >"temp\offset.txt"
set offset=
set /p offset= <"temp\offset.txt"
support\sfk filter -spat "temp\tmp.txt" -rep _"*size*0x"__ -rep _"\x09*"__ -rep _" *"__ >"temp\size.txt"
set size=
set /p size= <"temp\size.txt"
if "%offset%"=="" (echo Warning! %NL%.app does not appear to be a NandLoader...) & (goto:skiptrim)
if "%size%"=="" (echo Warning! %NL%.app does not appear to be a NandLoader...) & (goto:skiptrim)
support\sfk hexdump -nofile -offlen 0x%offset% 0x%size% "Support\NandLoaders\%NL%.app" +hextobin "Support\NandLoaders\%NL%.bin">nul
:skiptrim
::create *.nul files for detection purposes
::For improved nand detection, need to null out entrypoint of mem address in current wad bin and copies of base nandloader bins before comparing hashes, double check that only 1 replacement is made
if exist "Support\NandLoaders\%NL%.nul" goto:skipnul
if not exist "Support\NandLoaders\%NL%.bin" goto:skipnul
::2) analyze nandloader.app for the non-NandLoader text section (i.e. ODB -i %NANDloadLoc%: the one without 0x00003400 or 0x80003400) to get its mem address (old entrypoint)
::if no *.app to retrieve address from (e.g. maybe OpenHBC.bin), try typical addresses (80004000 & later 81330000)
::marcan.bin, taiko.bin & waninkoko.bin is jumping to 0x81330000, majority are jumping to 0x80004000
set address=
if not exist "Support\NandLoaders\%NL%.app" (set address=80004000) & (goto:step3b)
temp\OpenDolBoot.exe -i "Support\NandLoaders\%NL%.app" >"temp\NandLoader.nfo"
support\sfk filter -quiet "temp\NandLoader.nfo" -cut "*" to "Sections" -!"0x00003400" -!"0x80003400" -write -yes
::0x09 is tab
support\sfk filter -quiet -spat "temp\NandLoader.nfo" -rep _"*address*0x"__ -rep _"\x09*"__ -rep _" *"__ -write -yes
set address=
set /p address= <"temp\NandLoader.nfo"
del "temp\NandLoader.nfo">nul
::echo address %address%
:step3b
::3) save a copy of nandloader.bin and edit\replace with nul entrypoint
set entrypoint=00000000
::mem address in the nandloader bin is usually preceeding by 0x3C60 and separated in the middle by 0x6063, i.e. if it's 0x8133000 search and replace 0x3C60****6063**** with 0x3C60%xxxx%6063%xxxx%; however comex is different (3863 instead of 6063), and OpenDol boot has no separators at all but ODB.exe handles that anyway
::search for %address% with any 2 bytes in the middle to get offset(s)
copy /y "Support\NandLoaders\%NL%.bin" "temp\NandLoader.bin">nul
::xhexfind instead of sfk hexfind to use wildcards i.e. [2 bytes]
support\sfk xhexfind "temp\NandLoader.bin" -text "/\x%address:~0,2%\x%address:~2,2%[2 bytes]\x%address:~4,2%\x%address:~6,2%/">"temp\NandLoader.nfo"
::count number of matches \ hits to confirm just 1
set hits=
find /C "hit at offset" < "temp\NandLoader.nfo">"temp\hits.txt"
set /p hits= <"temp\hits.txt"
del "temp\hits.txt">nul
::echo %hits% hits
::instead of going to :wadfail going to :skipnul if something fails, just means we can't detect, no need to exit
if /i "%hits%" EQU "1" goto:skip
if /i "%address%" EQU "81330000" goto:skipnul
::try again
if not exist "Support\NandLoaders\%NL%.app" (set address=81330000) & (goto:step3b)
goto:skipnul
:skip
::get offset
support\sfk filter -quiet "temp\NandLoader.nfo" -+"hit at offset 0x" -rep _"*hit at offset 0x"__ -rep _" *"__ -write -yes
set /p BinOffset= <"temp\NandLoader.nfo"
::echo support\hexalter.exe "temp\NandLoader.bin" 0x%BinOffset%=0x%entrypoint:~0,2%,0x%entrypoint:~2,2%
support\hexalter.exe "temp\NandLoader.bin" 0x%BinOffset%=0x%entrypoint:~0,2%,0x%entrypoint:~2,2%>nul
if not errorlevel 0 goto:skipnul
support\sfk calc -hex 0x%BinOffset%+0x4>"temp\NandLoader.nfo"
set /p BinOffset= <"temp\NandLoader.nfo"
set BinOffset=%BinOffset:~2%
del "temp\NandLoader.nfo">nul
::echo support\hexalter.exe "temp\NandLoader.bin" 0x%BinOffset%=0x%entrypoint:~4,2%,0x%entrypoint:~6,2%
support\hexalter.exe "temp\NandLoader.bin" 0x%BinOffset%=0x%entrypoint:~4,2%,0x%entrypoint:~6,2%>nul
if not errorlevel 0 goto:skipnul
move /y "temp\NandLoader.bin" "Support\NandLoaders\%NL%.nul">nul
:skipnul
goto:EOF
:nextstep
if /i "%WadNandLoader%" NEQ "D" goto:NotDetect
if exist "temp\__channel" rd /s /q "temp\__channel"> nul
mkdir "temp\__channel"
%WiiPy% wad unpack --skip-hash "%cmdinput%" "temp\__channel">nul
goto:unpack2temp
:NotDetect
echo.
echo B = Back \ Cancel
echo.
echo Additional NandLoaders can be added to ModMii by saving app or bin files here:
echo "%cd%\Support\NandLoaders"
echo.
set ClassicNLChoice="
set /p ClassicNLChoice=Enter Selection Here:
set "ClassicNLChoice=%ClassicNLChoice:"=%"
if "%ClassicNLChoice%"=="" goto:badkey
if /i "%ClassicNLChoice%" EQU "B" goto:modifyNandLoader
::if not numeric goto:badkey
for %%A in ("%ClassicNLChoice%") do (for /f "tokens=1 delims=0123456789" %%B in ("%%~A") do goto:badkey)
::Remove leading zeros
for /f "tokens=* delims=0" %%A in ("%ClassicNLChoice%") do set "ClassicNLChoice=%%A"
::Set to 0 if entire input is all zeros
if "%ClassicNLChoice%"=="" set "ClassicNLChoice=0"
if %ClassicNLChoice% GTR %NLcount% goto:badkey
if %ClassicNLChoice% LEQ 0 goto:badkey
set /a NLcount=0
::Loop through the following once for EACH line in *.txt
for /F "tokens=*" %%A in (temp\NandLoaders.txt) do call :processNLlist2 %%A
goto:badkey
:processNLlist2
set NL=%*
set /a NLcount=%NLcount%+1
if /i "%NLcount%" EQU "%ClassicNLChoice%" goto:nextstep2
goto:EOF
:nextstep2
call Support\subscripts\dependency.bat ODB
if /i "%dependency%" EQU "F" (@ping 127.0.0.1 -n 3 -w 1000> nul) & (goto:modifyNandLoader)
::if not .app then no external support
if not exist "Support\NandLoaders\%NL%.app" (set IntegrateNL=Y) & (goto:skipQ)
if /i "%WadNandLoader%" EQU "O" goto:ConfirmedNL
::double check this is a NandLoader, if OpenDolBoot.exe -i output contains 0x00003400 or 0x80003400 then it's a nandloader
temp\OpenDolBoot.exe -i "Support\NandLoaders\%NL%.app" | findstr 0x00003400>NUL && goto:ConfirmedNL
temp\OpenDolBoot.exe -i "Support\NandLoaders\%NL%.app" | findstr 0x80003400>NUL && goto:ConfirmedNL
echo The selected option is not a NandLoader, I won't delete it but it should not be in the Support\NandLoaders folder...
@ping 127.0.0.1 -n 5 -w 1000> nul
goto:modifyNandLoader
:ConfirmedNL
If /i "%droptype%" NEQ "folder" goto:skipQ
if /i "%WadNandLoader%" EQU "O" (set IntegrateNL=Y) & (goto:skipQ)
if not exist "Support\NandLoaders\%NL%.bin" (set IntegrateNL=N) & (goto:skipQ)
echo.
echo Would you like to integrate\merge the NandLoader with the main dol of each WAD? (Y/N):
echo.
echo If you say no, ModMii will keep the NandLoader position the same as the source WAD.
echo i.e. If source WAD NandLoader is integrated it will stay integrated, if separate it will stay separate.
echo.
set IntegrateNL="
set /p IntegrateNL=Enter Selection Here:
set "IntegrateNL=%IntegrateNL:"=%"
if /i "%IntegrateNL%" EQU "Y" goto:skipQ
if /i "%IntegrateNL%" EQU "N" goto:skipQ
goto:badkey
:skipQ
If /i "%droptype%" EQU "folder" goto:BulkNandLoader
:BulkNandLoaderPickup
::save copy and apply change
if not exist "%WADcopy%" copy /y "%cmdinput%" "%WADcopy%">nul
::unpack WAD to temp dir
if exist "temp\__channel" rd /s /q "temp\__channel"> nul
mkdir "temp\__channel"
%WiiPy% wad unpack --skip-hash "%WADcopy%" "temp\__channel">nul
:unpack2temp
::If SendWAD is nul and we're here, then it means AutoDetectNL is enabled
if "%SendWAD%"=="" goto:tinyskip
if exist "temp\__channel\00000003.app" (echo 00000003.app unexpected...) & (goto:WADfail)
:tinyskip
if exist "temp\__channel\00000003.app" goto:WADfail
if not exist "temp\__channel\00000001.app" (echo 00000001.app missing...) & (goto:WADfail)
set NANDloadLoc=
set MainBinLoc=
::determine if 00000001.app or 00000002.app is nandloader (note 00000002.app may be missing if already integrated)
temp\OpenDolBoot.exe -i "temp\__channel\00000001.app" | findstr 0x00003400>NUL && set "NANDloadLoc=00000001.app" && set "MainBinLoc=00000002.app"
temp\OpenDolBoot.exe -i "temp\__channel\00000001.app" | findstr 0x80003400>NUL && set "NANDloadLoc=00000001.app" && set "MainBinLoc=00000002.app"
if not exist "temp\__channel\00000002.app" set MainBinLoc=00000001.app
if exist "temp\__channel\00000002.app" temp\OpenDolBoot.exe -i "temp\__channel\00000002.app" | findstr 0x00003400>NUL && set "NANDloadLoc=00000002.app" && set "MainBinLoc=00000001.app"
if exist "temp\__channel\00000002.app" temp\OpenDolBoot.exe -i "temp\__channel\00000002.app" | findstr 0x80003400>NUL && set "NANDloadLoc=00000002.app" && set "MainBinLoc=00000001.app"
::echo NANDloadLoc %NANDloadLoc%
::echo MainBinLoc %MainBinLoc%
if not "%NANDloadLoc%"=="" goto:NLlocated
::If SendWAD is nul and we're here, then it means AutoDetectNL is enabled
::if "%SendWAD%"=="" goto:WADfail
if "%SendWAD%"=="" (set "WadNL=Missing?!") & (goto:%DetectNLpickup%)
if not exist "temp\__channel\00000001.app" (echo Unable to locate current NandLoader...) & (goto:WADfail)
if exist "temp\__channel\00000002.app" (echo Unable to locate current NandLoader...) & (goto:WADfail)
support\sfk echo [%yellowtext%]The WAD appears to be missing a NandLoader and broken.
support\sfk echo [%yellowtext%]ModMii will try to repair it by integrating one into 00000001.app
@ping 127.0.0.1 -n 2 -w 1000> nul
set MainBinLoc=00000001.app
set IntegrateNL=Y
goto:skipQ
:NLlocated
if /i "%WadNandLoader%" EQU "D" goto:DetectNandLoader
If /i "%droptype%" EQU "folder" goto:skipQ
if /i "%WadNandLoader%" EQU "O" (set IntegrateNL=Y) & (goto:skipQ)
::if not .app then no external support
if not exist "Support\NandLoaders\%NL%.app" (set IntegrateNL=Y) & (goto:skipQ)
::if 00000002.app exists prompt if users if they want to integrate NandLoader with main dol or leave separate
if not exist "temp\__channel\00000002.app" (set IntegrateNL=Y) & (goto:skipQ)
if not exist "Support\NandLoaders\%NL%.bin" (set IntegrateNL=N) & (goto:skipQ)
echo.
echo Would you like to integrate\merge the NandLoader with the main dol? (Y/N):
echo If you say no, the NandLoader will be kept as a separate\external file.
echo.
set IntegrateNL="
set /p IntegrateNL=Enter Selection Here:
set "IntegrateNL=%IntegrateNL:"=%"
if /i "%IntegrateNL%" EQU "Y" goto:skipQ
if /i "%IntegrateNL%" EQU "N" goto:skipQ
goto:badkey
:skipQ
::Update nandloader.bin address\entrypoint to align with main.dol (only for integrated NLs excluding ODB) before injecting\merging with dol, but the offsets to change differ from bin to bin
if /i "%IntegrateNL%" EQU "N" goto:donestep3
if /i "%WadNandLoader%" EQU "O" goto:donestep3
::1) analyze main.dol\app for new entrypoint with ODB.exe, or get it from dol directly at 0xE0 len 0x04
if exist temp\hexdump.txt del temp\hexdump.txt>nul
support\sfk hexdump -pure -nofile -offlen 0xE0 0x04 "temp\__channel\%MainBinLoc%">temp\hexdump.txt
set /p entrypoint= <temp\hexdump.txt
::echo entrypoint %entrypoint%
::2) analyze nandloader.app for the non-NandLoader text section (i.e. ODB -i %NANDloadLoc%: the one without 0x00003400 or 0x80003400) to get its mem address (old entrypoint)
::if no *.app to retrieve address from (e.g. maybe OpenHBC.bin), try typical addresses (80004000 & later 81330000)
::marcan.bin, taiko.bin & waninkoko.bin is jumping to 0x81330000, majority are jumping to 0x80004000
set address=
if not exist "Support\NandLoaders\%NL%.app" (set address=80004000) & (goto:step3)
temp\OpenDolBoot.exe -i "Support\NandLoaders\%NL%.app" >"temp\NandLoader.nfo"
support\sfk filter -quiet "temp\NandLoader.nfo" -cut "*" to "Sections" -!"0x00003400" -!"0x80003400" -write -yes
::0x09 is tab
support\sfk filter -quiet -spat "temp\NandLoader.nfo" -rep _"*address*0x"__ -rep _"\x09*"__ -rep _" *"__ -write -yes
set address=
set /p address= <"temp\NandLoader.nfo"
del "temp\NandLoader.nfo">nul
::echo address %address%
:step3
::3) save a copy of nandloader.bin and edit\replace the new entrypoint from the main.dol before merging them using ODB.exe
::mem address in the nandloader bin is usually preceeding by 0x3C60 and separated in the middle by 0x6063, i.e. if it's 0x8133000 search and replace 0x3C60****6063**** with 0x3C60%xxxx%6063%xxxx%; however comex is different (3863 instead of 6063), and OpenDol boot has no separators at all but ODB.exe handles that anyway
::search for %address% with any 2 bytes in the middle to get offset(s)
copy /y "Support\NandLoaders\%NL%.bin" "temp\NandLoader.bin">nul
if /i "%address%" EQU "%entrypoint%" goto:donestep3
::xhexfind instead of sfk hexfind to use wildcards i.e. [2 bytes]
support\sfk xhexfind "temp\NandLoader.bin" -text "/\x%address:~0,2%\x%address:~2,2%[2 bytes]\x%address:~4,2%\x%address:~6,2%/">"temp\NandLoader.nfo"
::count number of matches \ hits to confirm just 1
set hits=
find /C "hit at offset" < "temp\NandLoader.nfo">"temp\hits.txt"
set /p hits= <"temp\hits.txt"
del "temp\hits.txt">nul
::echo %hits% hits
if /i "%hits%" EQU "1" goto:skip
if /i "%address%" EQU "81330000" goto:wadfail
::try again
if not exist "Support\NandLoaders\%NL%.app" (set address=81330000) & (goto:step3)
goto:wadfail
:skip
::get offset
support\sfk filter -quiet "temp\NandLoader.nfo" -+"hit at offset 0x" -rep _"*hit at offset 0x"__ -rep _" *"__ -write -yes
set /p BinOffset= <"temp\NandLoader.nfo"
::echo support\hexalter.exe "temp\NandLoader.bin" 0x%BinOffset%=0x%entrypoint:~0,2%,0x%entrypoint:~2,2%
support\hexalter.exe "temp\NandLoader.bin" 0x%BinOffset%=0x%entrypoint:~0,2%,0x%entrypoint:~2,2%>nul
if not errorlevel 0 goto:WADfail
support\sfk calc -hex 0x%BinOffset%+0x4>"temp\NandLoader.nfo"
set /p BinOffset= <"temp\NandLoader.nfo"
set BinOffset=%BinOffset:~2%
del "temp\NandLoader.nfo">nul
::echo support\hexalter.exe "temp\NandLoader.bin" 0x%BinOffset%=0x%entrypoint:~4,2%,0x%entrypoint:~6,2%
support\hexalter.exe "temp\NandLoader.bin" 0x%BinOffset%=0x%entrypoint:~4,2%,0x%entrypoint:~6,2%>nul
if not errorlevel 0 goto:WADfail
::old hex search hex replace method that only worked if all nandloaders followed this pattern: 3C60%address:~0,4%6063%address:~4,4%
::support\sfk replace "temp\NandLoader.bin" -binary /3C60%address:~0,4%6063%address:~4,4%/3C60%entrypoint:~0,4%6063%entrypoint:~4,4%/ -yes>"temp\NandLoader.nfo"
::ERRORLEVEL 1 means replacement successful
::IF not ERRORLEVEL 1 goto:wadfail
::confirm 1 change made in 1 file by finding this output "[001/1/0] temp\NandLoader.bin"
::findStr /I /C:"[001/1/0] temp\NandLoader.bin" "temp\NandLoader.nfo" >nul
::ERRORLEVEL 1 means not found
::IF ERRORLEVEL 1 goto:wadfail
:donestep3
::get tmd name
dir /b /a-d "temp\__channel\*.tmd">"temp\__tmd.txt"
set /p tmd= <"temp\__tmd.txt"
del "temp\__tmd.txt">nul
if /i "%IntegrateNL%" EQU "N" copy /y "Support\NandLoaders\%NL%.app" "temp\__channel\%NANDloadLoc%">nul
if /i "%IntegrateNL%" NEQ "Y" goto:skip
set errorlevel=
if /i "%WadNandLoader%" EQU "O" temp\OpenDolBoot.exe "temp\__channel\%MainBinLoc%" -f "temp\__channel\main.app">nul
if /i "%WadNandLoader%" NEQ "O" temp\OpenDolBoot.exe "temp\__channel\%MainBinLoc%" -f -n "temp\NandLoader.bin" "temp\__channel\main.app">nul
if not errorlevel 0 goto:WADfail
move /y temp\__channel\main.app temp\__channel\00000001.app>nul
::echo Remove ID 2 from tmd only if exists and we are integrating, then delete
::if exist "temp\__channel\00000002.app" support\TMdedit.exe -e "temp\__channel\%tmd%" -delID 2 -q
if exist "temp\__channel\00000002.app" %WiiPy% tmd remove -i 2 "temp\__channel\%tmd%"
::Set boot index to 1 in tmd when integrating (in case position changed)
if exist "temp\__channel\00000002.app" support\sfk setbytes "temp\__channel\%tmd%" 0x1E0 0x0001 -yes>nul
if exist "temp\__channel\00000002.app" (del "temp\__channel\00000002.app">nul) & (set /a WadContents=%WadContents%-1)
:skip
::echo Removing ID 0 and 1 from tmd (2 already removed if applicable) - no longer necessary given WiiPy updates hashes automatically during repacking
::support\TMdedit.exe -e "temp\__channel\%tmd%" -delID 0 -q
::support\TMdedit.exe -e "temp\__channel\%tmd%" -delID 1 -q
::if exist "temp\__channel\00000002.app" support\TMdedit.exe -e "temp\__channel\%tmd%" -delID 2 -q
::add back ID 0 & 1 (and 2 if applicable) to tmd with updated hashes
::support\TMdedit.exe -e "temp\__channel\%tmd%" -add 0 Normal 0 "temp\__channel\00000000.app" -q
::support\TMdedit.exe -e "temp\__channel\%tmd%" -add 1 Normal 1 "temp\__channel\00000001.app" -q
::if exist "temp\__channel\00000002.app" support\TMdedit.exe -e "temp\__channel\%tmd%" -add 2 Normal 2 "temp\__channel\00000002.app" -q
::Repack!
if exist "temp\__channel.wad" del "temp\__channel.wad">nul
set errorlevel=
%WiiPy% wad pack --fakesign "temp\__channel" "temp\__channel.wad">nul
set SigningStatus=Fakesigned
::support\sharpii.exe wad -p "temp\__channel" "temp\__channel.wad"
if /i "%errorlevel%" NEQ "0" goto:WADfail
if not exist "temp\__channel.wad" goto:WADfail
move /y "temp\__channel.wad" "%WADcopy%">nul
If /i "%droptype%" EQU "folder" (support\sfk.exe echo [%greentext%]Operation completed succesfully!) & (set /a wadsSuccess=%wadsSuccess%+1) & (goto:%EOF%)
echo Operation completed succesfully!
::get WAD updated size (3 of 3)
%WiiPy% info "%WADcopy%">temp\WADinfo.txt
::check if file is empty, if empty it means WiiPy errored; likely with "This is not a valid WAD file!"
>nul findstr "^" "temp\WADinfo.txt" || set wadtype=Invalid
If /i "%wadtype%" NEQ "Invalid" goto:notInvalid
support\sfk echo [%yellowtext%]This is not a valid WAD file
if exist temp\WADinfo.txt del temp\WADinfo.txt>nul
goto:WADfail
:notInvalid
::get WAD size in bytes, megabytes and blocks
support\sfk filter -quiet temp\WADinfo.txt -ls+" Installed Size: " -rep _*": "__>temp\WADinfo2.txt
set /p WadBlocks= <temp\WADinfo2.txt
support\sfk filter -quiet temp\WADinfo.txt -ls+" Installed Size (MB): " -rep _*": "__>temp\WADinfo2.txt
set /p GetFileSizeMB= <temp\WADinfo2.txt
support\sfk stat "%WadInput%">"temp\WADinfo.txt"
support\sfk filter "temp\WADinfo.txt" -rep _" bytes*"__ -rep _"* "__ >temp\WADinfo2.txt
set /p GetFileSize= <temp\WADinfo2.txt
if exist temp\WADinfo.txt del temp\WADinfo.txt>nul
if exist temp\WADinfo2.txt del temp\WADinfo2.txt>nul
@ping 127.0.0.1 -n 1 -w 1000> nul
if /i "%WadNandLoader%" EQU "O" set WadNL=OpenDolBoot
if /i "%WadNandLoader%" NEQ "O" set "WadNL=%NL%"
if /i "%IntegrateNL%" EQU "Y" set WadNL=%WadNL% [Integrated]
if /i "%IntegrateNL%" EQU "N" set WadNL=%WadNL% [External]
goto:modifyFakesign
:notClassicNandLoader
:badkey
echo You Have Entered an Incorrect Key
@ping 127.0.0.1 -n 2 -w 1000> nul
goto:modifyNandLoader
:BulkNandLoader
cls
support\sfk echo [%redtext%]ModMii v%currentversion% Bulk WAD NandLoader Updater
echo.
::echo wad2folder: "%wad2folder%"
::echo wadpath: "%wadpath%"
::echo wadpathback: "%wadpathback%"
if /i "%IntegrateNL%" EQU "N" (set NLtype=) else (set NLtype= [Integrated])
if /i "%WadNandLoader%" EQU "O" echo NandLoader: OpenDolBoot%NLtype%
if /i "%WadNandLoader%" NEQ "O" echo NandLoader: %NL%%NLtype%
set wadsSkipped=0
set wadsSuccess=0
set wads2error=0
set wadnum=0
::Loop through the following once for EACH line in *.txt, alt method without FOR command to support & ^ and ! without using setlocal ENABLEDELAYEDEXPANSION
:wadnum
set EOF=wadnum
::use goto:above (or goto:%EOF%) instead of goto:EOF
set CurrentWAD=
::check if file is empty, if empty it means list completed and goto:continue
>nul findstr "^" "temp\temp.txt" || goto:skipwadnum
::set variable equal to top line
set /p CurrentWAD= <temp\temp.txt
::Remove top line from list
more +1 "temp\temp.txt" > "temp\temp2.txt"
::"more" limits lines to about 65535 bytes/characters and the file to about 65535 lines. Also TABs become expanded to spaces
move /y temp\temp2.txt temp\temp.txt>nul
set /a wadnum=%wadnum%+1
echo.
echo WAD %wadnum% of %wad2count%: "%CurrentWAD%"
set "cmdinput=%CurrentWAD%"
if /i "%WadNandLoader%" EQU "O" set "WADcopy=%CurrentWAD:~0,-4%_OpenDolBoot.wad"
if /i "%WadNandLoader%" NEQ "O" set "WADcopy=%CurrentWAD:~0,-4%_%NL%.wad"
::echo "%cmdinput%"
::echo "%WADcopy%"
::confirm if channel or hidden channel
::hidden channels will have 00010008 in tmd at offset 0x18C (len 4), or offset at 0xE8C of wad (offset is 0xD00 or 3328 greater in WAD than tmd), if converting type it may not be enough to edit tmd as Sharpii makes other changes (including 0xC1C of wad)
if exist temp\hexdump.txt del temp\hexdump.txt>nul
support\sfk hexdump -pure -nofile -offlen 0xE8C 0x04 "%cmdinput%">temp\hexdump.txt
set /p channelpath= <temp\hexdump.txt
set wadtype=Invalid
::"Essential System Titles"
If /i "%channelpath%" EQU "00000001" set wadtype=system
::00010000 is actually "Disc-based games" but labelled channelsystem so it gets treated the same as 00010002 titles, shouldn't apply anyway
If /i "%channelpath%" EQU "00010000" set wadtype=channelsystem
::"Downloadable channels"
If /i "%channelpath%" EQU "00010001" set wadtype=channel
If /i "%channelpath%" EQU "00010002" set wadtype=channelsystem
::00010004 is actually "Game channels and games that use them" but labelled channelsystem so it gets treated the same as 00010002 titles
If /i "%channelpath%" EQU "00010004" set wadtype=channelsystem
If /i "%channelpath%" EQU "00010005" set wadtype=DLC
If /i "%channelpath%" EQU "00010008" set wadtype=hidden
::00010003, 00010006 & 00010007 are actually "Unconfirmed" but labelled channelsystem so it gets treated the same as 00010002 titles, shouldn't apply anyway
If /i "%channelpath%" EQU "00010003" set wadtype=channelsystem
If /i "%channelpath%" EQU "00010006" set wadtype=channelsystem
If /i "%channelpath%" EQU "00010007" set wadtype=channelsystem
::module count (in hex) in tmd at offset 0x1DE (len 2), or offset 0xEDE of wad (offset is 0xD00 or 3328 greater in WAD than tmd)
if exist temp\hexdump.txt del temp\hexdump.txt>nul
support\sfk hexdump -pure -nofile -offlen 0xEDE 0x02 "%cmdinput%">temp\hexdump.txt
set /p WadContents= <temp\hexdump.txt
support\sfk dec %WadContents%>temp\hexdump.txt
set /p WadContents= <temp\hexdump.txt
set WadContents=%WadContents:~0,-1%
::if not "%WadContents%"=="" echo Content Files: %WadContents%
::if content count is greater than 3 then skip (so channels like Region Select aren't attempted)
if %WadContents% LEQ 1 goto:skip
if %WadContents% GTR 3 goto:skip
if /i "%wadtype%" EQU "hidden" goto:BulkNandLoaderPickup
if /i "%wadtype%" EQU "channel" goto:BulkNandLoaderPickup
:skip
support\sfk echo [%yellowtext%]This WAD does not appear to be a supported channel, skipping...
set /a wadsSkipped=%wadsSkipped%+1
goto:wadnum
:skipwadnum
::setlocal DISABLEDELAYEDEXPANSION
if /i "%AudioOption%" NEQ "on" goto:nosound
if /i "%wads2error%" EQU "0" (start support\nircmd.exe mediaplay 3000 "%Success.mp3%") else (start support\nircmd.exe mediaplay 3000 "%Fail.mp3%")
:nosound
echo.
echo.
if /i "%WadNandLoader%" EQU "O" support\sfk.exe echo [%cyantext%]Finished injecting OpenDolBoot%NLtype% NandLoader into Channel WADs saved here:
if /i "%WadNandLoader%" NEQ "O" support\sfk.exe echo [%cyantext%]Finished injecting %NL%%NLtype% NandLoader into Channel WADs saved here:
support\sfk.exe echo [%bluetext%]"%wadpath%"
echo.
if /i "%wadsSuccess%" NEQ "0" support\sfk.exe echo [%greentext%]%wadsSuccess% Channel WADs updated successfully!
if /i "%wadsSkipped%" NEQ "0" support\sfk.exe echo [%yellowtext%]%wadsSkipped% WADs skipped
if /i "%wads2error%" NEQ "0" support\sfk.exe echo [%redtext%]%wads2error% WADs failed
echo Scroll up for details
echo.
support\sfk.exe echo [%bluetext%]To Open output folder and exit enter O
echo.
support\sfk.exe echo [%cyantext%]To copy this information press Ctrl+A then Ctrl+C
echo (To exit you can close this window or press enter)
echo.
set promptO="
set /p promptO=Enter Selection Here:
set "promptO=%promptO:"=%"
If /i "%promptO%" NEQ "O" exit
if exist "%wadpath%" explorer "%wadpath%"
exit
::---------------------------------------
:BulkInvisible
cls
support\sfk echo [%redtext%]ModMii v%currentversion% Bulk Hidden Channel Converter
echo.
::echo wad2folder: "%wad2folder%"
::echo wadpath: "%wadpath%"
::echo wadpathback: "%wadpathback%"
::echo WADvisibility: "%WADvisibility%"
::echo Y = Yes, make it invisible
::echo M = make invisible and inject Minimalist banner to reduce size
if /i "%WADvisibility%" EQU "Y" echo Hiding Channel WADs saved to this folder:
if /i "%WADvisibility%" EQU "M" echo Hiding Channels and injecting Minimalist banner to WADs saved to this folder:
echo.
support\sfk.exe echo [%bluetext%]"%wadpath%"
echo.
echo Note: Inapplicable channels will be skipped.
echo Changes will be applied to copies of the original WADs.
::if not exist "%WADcopy%" copy /y "%cmdinput%" "%WADcopy%">nul
set wadsSkipped=0
set wadsSuccess=0
set wads2error=0
set wadsAlrHidden=0
set wadnum=0
::Loop through the following once for EACH line in *.txt, alt method without FOR command to support & ^ and ! without using setlocal ENABLEDELAYEDEXPANSION
:WADhideEOF
set EOF=WADhideEOF
::use goto:above (or goto:%EOF%) instead of goto:EOF
set CurrentWAD=
::check if file is empty, if empty it means list completed and goto:continue
>nul findstr "^" "temp\temp.txt" || goto:skipwadnum2
::set variable equal to top line
set /p CurrentWAD= <temp\temp.txt
::Remove top line from list
more +1 "temp\temp.txt" > "temp\temp2.txt"
::"more" limits lines to about 65535 bytes/characters and the file to about 65535 lines. Also TABs become expanded to spaces
move /y temp\temp2.txt temp\temp.txt>nul
::Remove previous entry from list - sfk method
::if not "%CurrentWAD%"=="" support\sfk filter -quiet temp\temp.txt -!"%CurrentWAD%" -write -yes
::Remove previous entry from list - findstr method (without numbered list)
::::alt method to remove previous entry from list that doesn't require sfk.exe
::if not "%CurrentWAD%"=="" findstr /V /I /C:"%CurrentWAD%" temp\temp.txt >temp\temp2.txt
::if not "%CurrentWAD%"=="" move /y temp\temp2.txt temp\temp.txt>nul
set /a wadnum=%wadnum%+1
echo.
echo Hiding %wadnum% of %wad2count%: "%CurrentWAD%"
set "cmdinput=%CurrentWAD%"
set "WADcopy=%CurrentWAD:~0,-4%_hidden.wad"
::echo "%cmdinput%"
::echo "%WADcopy%"
::confirm if channel or hidden channel
::hidden channels will have 00010008 in tmd at offset 0x18C (len 4), or offset at 0xE8C of wad (offset is 0xD00 or 3328 greater in WAD than tmd), if converting type it may not be enough to edit tmd as Sharpii makes other changes (including 0xC1C of wad)
if exist temp\hexdump.txt del temp\hexdump.txt>nul
support\sfk hexdump -pure -nofile -offlen 0xE8C 0x04 "%cmdinput%">temp\hexdump.txt
set /p channelpath= <temp\hexdump.txt
set wadtype=Invalid
::"Essential System Titles"
If /i "%channelpath%" EQU "00000001" set wadtype=system
::00010000 is actually "Disc-based games" but labelled channelsystem so it gets treated the same as 00010002 titles, shouldn't apply anyway
If /i "%channelpath%" EQU "00010000" set wadtype=channelsystem
::"Downloadable channels"
If /i "%channelpath%" EQU "00010001" set wadtype=channel
If /i "%channelpath%" EQU "00010002" set wadtype=channelsystem
::00010004 is actually "Game channels and games that use them" but labelled channelsystem so it gets treated the same as 00010002 titles
If /i "%channelpath%" EQU "00010004" set wadtype=channelsystem
If /i "%channelpath%" EQU "00010005" set wadtype=DLC
If /i "%channelpath%" EQU "00010008" set wadtype=hidden
::00010003, 00010006 & 00010007 are actually "Unconfirmed" but labelled channelsystem so it gets treated the same as 00010002 titles, shouldn't apply anyway
If /i "%channelpath%" EQU "00010003" set wadtype=channelsystem
If /i "%channelpath%" EQU "00010006" set wadtype=channelsystem
If /i "%channelpath%" EQU "00010007" set wadtype=channelsystem
If /i "%wadtype:~0,7%" EQU "channel" goto:continue
If /i "%wadtype%" EQU "hidden" goto:continue
support\sfk echo [%yellowtext%]This WAD does not appear to be a supported channel, skipping...
set /a wadsSkipped=%wadsSkipped%+1
goto:%EOF%
:continue
if /i "%wadtype%" NEQ "hidden" goto:tinyskip
if /i "%WADvisibility%" NEQ "Y" goto:MinBanner
support\sfk echo [%yellowtext%]This Channel is already hidden, skipping...
set /a wadsAlrHidden=%wadsAlrHidden%+1
goto:%EOF%
:MinBanner
::simple bannerless check, detect minimalist banner in channels if 00000000.app is 64bytes exactly
::If /i "%wadtype:~0,7%" EQU "channel" goto:doit
::If /i "%wadtype%" NEQ "hidden" goto:skip
:::doit
::get banner bytes
%WiiPy% info "%cmdinput%">temp\WADinfo.txt
::check if file is empty, if empty it means WiiPy errored; likely with "This is not a valid WAD file!"
>nul findstr "^" "temp\WADinfo.txt" || set wadtype=Invalid
If /i "%wadtype%" NEQ "Invalid" goto:notInvalid
support\sfk echo [%yellowtext%]This is not a valid WAD file, skipping...
set /a wadsSkipped=%wadsSkipped%+1
if exist temp\WADinfo.txt del temp\WADinfo.txt>nul
goto:%EOF%
:notInvalid
set WadBannerless=
support\sfk filter -quiet temp\WADinfo.txt -nocheck -inc "Content Index: 0" to "Content Hash" -and+"Content Size: " -rep _*": "__ -rep _" "*__ -write -yes
set /p WadBannerless= <temp\WADinfo.txt
if exist temp\WADinfo.txt del temp\WADinfo.txt>nul
if %WadBannerless% GTR 64 goto:tinyskip
support\sfk echo [%yellowtext%]This Channel is already hidden with a Minimalist banner, skipping...
set /a wadsAlrHidden=%wadsAlrHidden%+1
goto:%EOF%
:tinyskip
goto:MakeInvisible2
:skipwadnum2
::setlocal DISABLEDELAYEDEXPANSION
if /i "%AudioOption%" NEQ "on" goto:nosound
if /i "%wads2error%" EQU "0" (start support\nircmd.exe mediaplay 3000 "%Success.mp3%") else (start support\nircmd.exe mediaplay 3000 "%Fail.mp3%")
:nosound
echo.
echo.
if /i "%WADvisibility%" EQU "Y" support\sfk.exe echo [%cyantext%]Finished hiding Channel WADs saved here:
if /i "%WADvisibility%" EQU "M" support\sfk.exe echo [%cyantext%]Finished hiding Channels and injecting Minimalist banner to WADs saved here:
support\sfk.exe echo [%bluetext%]"%wadpath%"
echo.
if /i "%wadsSuccess%" NEQ "0" support\sfk.exe echo [%greentext%]%wadsSuccess% Channel WADs converted successfully!
if /i "%wadsAlrHidden%" EQU "0" goto:skip
if /i "%WADvisibility%" EQU "Y" support\sfk.exe echo [%yellowtext%]%wadsAlrHidden% WADs were already hidden and skipped
if /i "%WADvisibility%" EQU "M" support\sfk.exe echo [%yellowtext%]%wadsAlrHidden% WADs were already hidden with Minimalist banners and skipped
:skip
if /i "%wadsSkipped%" NEQ "0" support\sfk.exe echo [%yellowtext%]%wadsSkipped% WADs skipped
if /i "%wads2error%" NEQ "0" support\sfk.exe echo [%redtext%]%wads2error% WADs failed
echo Scroll up for details
echo.
support\sfk.exe echo [%bluetext%]To Open output folder and exit enter O
echo.
echo (To exit you can close this window or press enter)
echo.
set promptO="
set /p promptO=Enter Selection Here:
set "promptO=%promptO:"=%"
If /i "%promptO%" NEQ "O" exit
if exist "%wadpath%" explorer "%wadpath%"
exit
::---------------------------------------
:BulkWADdeflicker
cls
support\sfk echo [%redtext%]ModMii v%currentversion% Bulk Deflicker Filter Changer
echo.
if /i "%WADdeflickerQ%" EQU "D" support\sfk echo [%cyantext%]Disabling Deflicker Filter for WADs saved to this folder:
if /i "%WADdeflickerQ%" EQU "R" support\sfk echo [%cyantext%]Re-enabling Deflicker Filter for WADs saved to this folder:
echo.
support\sfk.exe echo [%bluetext%]"%wadpath%"
echo.
if /i "%ExpPakQ%" EQU "Y" (echo N64 Expansion Pak patch will be applied where possible) & (echo.)
if /i "%ExpPakQ%" EQU "R" (echo N64 Expansion Pak patch will be removed where possible) & (echo.)
if /i "%CopyQ%" EQU "Y" support\sfk echo Changes will be saved to a [%cyantext%]COPY[def] of the file
if /i "%CopyQ%" EQU "N" support\sfk echo Changes will [%cyantext%]OVERWRITE[def] the original file
echo Note: Inapplicable channels will be skipped.
echo.
set wadsSkipped=0
set wadsSuccess=0
set wads2error=0
set wadsAlrDone=0
set wadnum=0
::Loop through the following once for EACH line in *.txt, alt method without FOR command to support & ^ and ! without using setlocal ENABLEDELAYEDEXPANSION
:DeflickProcess
set EOF=DeflickProcess
::use goto:above (or goto:%EOF%) instead of goto:EOF
set CurrentWAD=
::check if file is empty, if empty it means list completed and goto:continue
>nul findstr "^" "temp\temp.txt" || goto:skipwadnum3
::set variable equal to top line
set /p CurrentWAD= <temp\temp.txt
::Remove top line from list
more +1 "temp\temp.txt" > "temp\temp2.txt"
::"more" limits lines to about 65535 bytes/characters and the file to about 65535 lines. Also TABs become expanded to spaces
move /y temp\temp2.txt temp\temp.txt>nul
set /a wadnum=%wadnum%+1
echo.
support\sfk.exe echo [%cyantext%]%wadnum% of %wad2count%: "%CurrentWAD%"
set "cmdinput=%CurrentWAD%"
if /i "%WADdeflickerQ%" EQU "D" set "WADcopy=%CurrentWAD:~0,-4%_DeflickerOff.wad"
if /i "%WADdeflickerQ%" EQU "R" set "WADcopy=%CurrentWAD:~0,-4%_DeflickerOn.wad"
if /i "%CopyQ%" EQU "N" set "WADcopy=%CurrentWAD%"
::echo wadpath: "%wadpath%"
::echo wadpathback: "%wadpathback%"
::echo cmdinput:"%cmdinput%"
::echo WADcopy:"%WADcopy%"
::---Continue only for 00010001, 00010002, 00010004, 00010008 channels with content GTR 3 (so forwarder channels aren't attempted)
::hidden channels will have 00010008 in tmd at offset 0x18C (len 4), or offset at 0xE8C of wad (offset is 0xD00 or 3328 greater in WAD than tmd), if converting type it may not be enough to edit tmd as Sharpii makes other changes (including 0xC1C of wad)
set channelpath=
set wadtype=Invalid
if exist temp\hexdump.txt del temp\hexdump.txt>nul
support\sfk hexdump -pure -nofile -offlen 0xE8C 0x04 "%CurrentWAD%">temp\hexdump.txt
set /p channelpath= <temp\hexdump.txt
If /i "%channelpath%" EQU "00010001" set wadtype=channel
::00010004 is actually "Game channels and games that use them" but labelled channel so it gets treated the same as 00010001 titles (may not be needed in this case but just in case)
If /i "%channelpath%" EQU "00010004" set wadtype=channel
If /i "%channelpath%" EQU "00010002" set wadtype=channel
If /i "%channelpath%" EQU "00010008" set wadtype=channel
if /i "%wadtype%" NEQ "channel" (support\sfk echo [%yellowtext%]This WAD does not appear to be a supported channel, skipping...) & (set /a wadsSkipped=%wadsSkipped%+1) & (goto:%EOF%)
::module count (in hex) in tmd at offset 0x1DE (len 2), or offset 0xEDE of wad (offset is 0xD00 or 3328 greater in WAD than tmd)
set WadContents=0
if exist temp\hexdump.txt del temp\hexdump.txt>nul
support\sfk hexdump -pure -nofile -offlen 0xEDE 0x02 "%CurrentWAD%">temp\hexdump.txt
set /p WadContents= <temp\hexdump.txt
support\sfk dec %WadContents%>temp\hexdump.txt
set /p WadContents= <temp\hexdump.txt
set WadContents=%WadContents:~0,-1%
::if not "%WadContents%"=="" echo Content Files: %WadContents%
if %WadContents% LEQ 3 (support\sfk echo [%yellowtext%]This WAD does not appear to be a supported channel, skipping...) & (set /a wadsSkipped=%wadsSkipped%+1) & (goto:%EOF%)
::also need TitID for N64 files, and to doubly exclude channels without ID like IOSs
::Title ID will be at tmd offset 0x190, 0xE90 of wad (len 4)
set TitIDhex=
set TitID=
if exist temp\hexdump.txt del temp\hexdump.txt>nul
support\sfk hexdump -pure -nofile -offlen 0xE90 0x04 "%CurrentWAD%">temp\hexdump.txt
set /p TitIDhex= <temp\hexdump.txt
::convert hex to ascii
support\sfk num -hex %TitIDhex%>temp\hexdump.txt
support\sfk filter -quiet temp\hexdump.txt -rep _"*>"__ -rep _"<*"__ -write -yes
set /p TitID= <temp\hexdump.txt
::if "%TitID%"=="" set "TitID=...."
::IOS60 includes a "<" sign and is being stripped to become ... instead of .... ; correct it below
If /i "%TitID:~3,1%" EQU "" (support\sfk echo [%yellowtext%]This WAD does not appear to be a supported channel, skipping...) & (set /a wadsSkipped=%wadsSkipped%+1) & (goto:%EOF%)
If /i "%TitID%" EQU "...." (support\sfk echo [%yellowtext%]This WAD does not appear to be a supported channel, skipping...) & (set /a wadsSkipped=%wadsSkipped%+1) & (goto:%EOF%)
::unpack WAD to temp dir
if exist "temp\__channel" rd /s /q "temp\__channel"> nul
mkdir "temp\__channel"
%WiiPy% wad unpack --skip-hash "%cmdinput%" "temp\__channel">nul
if not exist "temp\__channel\00000001.app" (support\sfk echo [%redtext%]Error, 00000001.app missing...) & (set /a wads2error=%wads2error%+1) & (goto:%EOF%)
::as long as darkfilter is not nul, patches will be attempted based on TitID
::dark filter from the few N64 VC titles
set darkfilter=
If /i "%TitID%" EQU "NAAE" set "darkfilter= and N64 Dark Filter"
If /i "%TitID%" EQU "NABE" set "darkfilter= and N64 Dark Filter"
If /i "%TitID%" EQU "NATE" set "darkfilter= and N64 Dark Filter"
If /i "%TitID%" EQU "NAIE" set "darkfilter= and N64 Dark Filter"
If /i "%TitID%" EQU "NASE" set "darkfilter= and N64 Dark Filter"
If /i "%TitID%" EQU "NAIP" set "darkfilter= and N64 Dark Filter"
If /i "%TitID%" EQU "NAAP" set "darkfilter= and N64 Dark Filter"
If /i "%TitID%" EQU "NABP" set "darkfilter= and N64 Dark Filter"
If /i "%TitID%" EQU "NATP" set "darkfilter= and N64 Dark Filter"
If /i "%TitID%" EQU "NAST" set "darkfilter= and N64 Dark Filter"
goto:WadDeflicker
:skipwadnum3
if /i "%AudioOption%" NEQ "on" goto:nosound
if /i "%wads2error%" EQU "0" (start support\nircmd.exe mediaplay 3000 "%Success.mp3%") else (start support\nircmd.exe mediaplay 3000 "%Fail.mp3%")
:nosound
echo.
echo.
if /i "%WADdeflickerQ%" EQU "D" support\sfk.exe echo [%cyantext%]Finished Disabling Deflicker Filter for Channel WADs saved here:
if /i "%WADdeflickerQ%" EQU "R" support\sfk.exe echo [%cyantext%]Finished Re-enabling Deflicker Filter for Channel WADs saved here:
support\sfk.exe echo [%bluetext%]"%wadpath%"
echo.
if /i "%wadsSuccess%" NEQ "0" support\sfk.exe echo [%greentext%]%wadsSuccess% Channel WADs patched successfully!
if /i "%wadsAlrDone%" EQU "0" goto:skip
if /i "%WADdeflickerQ%" EQU "D" support\sfk.exe echo [%greentext%]%wadsAlrDone% WADs already had the Deflicker Filter Disabled
if /i "%WADdeflickerQ%" EQU "R" support\sfk.exe echo [%greentext%]%wadsAlrDone% WADs already had the Deflicker Filter Enabled
:skip
if /i "%wadsSkipped%" NEQ "0" support\sfk.exe echo [%yellowtext%]%wadsSkipped% WADs skipped
if /i "%wads2error%" NEQ "0" support\sfk.exe echo [%redtext%]%wads2error% WADs failed
echo Scroll up for details
echo.
support\sfk.exe echo [%bluetext%]To Open output folder and exit enter O
echo.
support\sfk.exe echo [%cyantext%]To copy this information press Ctrl+A then Ctrl+C
echo (To exit you can close this window or press enter)
echo.
set promptO="
set /p promptO=Enter Selection Here:
set "promptO=%promptO:"=%"
If /i "%promptO%" NEQ "O" exit
if exist "%wadpath%" explorer "%wadpath%"
exit
::---------------------------------------
:modifyFakesign
cls
support\sfk echo [%redtext%]ModMii v%currentversion% WAD tools
echo.
support\sfk echo Modify Channel WAD: %TITtext%Title ID, IOS, DOL, AHB^|DVD, %NLtext%[%cyantext%]Fakesign[def], %DFtext%Visibility
echo.
support\sfk.exe echo Input : [%bluetext%]"%cmdinput%"
support\sfk.exe echo Output: [%bluetext%]"%cmdinput:~0,-4%[%redtext%]-Mod%RandomNum%[%bluetext%].wad"
echo.
::set "WADinfo=%cmdinput%"
::if exist "%WADcopy%" set "WADinfo=%WADcopy%"
call "Support\subscripts\DisplayWadInfo.bat"
echo.
support\sfk -spat echo \x20 \x20 \x20 \x20 \x20 [%cyantext%]Fakesign Channel
echo.
If /i "%SigningStatus%" EQU "Fakesigned" goto:FakesignedAlready
echo Would you like to Fakesign the WAD?
echo.
echo To leave the WAD unchanged, leave the selection blank and press Enter.
echo.
echo Y = Yes, fakesign it
echo N = No, don't fakesign it
goto:skip
:FakesignedAlready
echo The WAD is already Fakesigned
echo.
echo Leave the selection blank and press Enter to continue.
echo.
:skip
echo B = Back
echo E = Exit
echo.
set WADfake="
set /p WADfake=Enter Selection Here:
set "WADfake=%WADfake:"=%"
if not "%WADfake%"=="" goto:notempty
if "%DFtext%"=="" goto:modifyVisibility
goto:modifyDeflickerWAD
:notempty
if /i "%WADfake%" NEQ "B" goto:notback
if "%NLtext%"=="" goto:modifyAHB
goto:modifyNandLoader
:notback
if /i "%WADfake%" EQU "E" exit
::Y and N not options if already fakesigned
If /i "%SigningStatus%" EQU "Fakesigned" goto:badkey
If /i "%WADfake%" NEQ "N" goto:skip
if "%DFtext%"=="" goto:modifyVisibility
goto:modifyDeflickerWAD
:skip
if /i "%WADfake%" NEQ "Y" goto:badkey
::save copy and apply change
if not exist "%WADcopy%" copy /y "%cmdinput%" "%WADcopy%">nul
set ERRORLEVEL=
::support\sharpii.exe Wad -e "%WADcopy%" "%WADcopy%" -f
::fakesign!
%WiiPy% fakesign "%WADcopy%"
if not errorlevel 0 goto:WADfail
set SigningStatus=Fakesigned
@ping 127.0.0.1 -n 2 -w 1000> nul
if "%DFtext%"=="" goto:modifyVisibility
goto:modifyDeflickerWAD
:badkey
echo You Have Entered an Incorrect Key
@ping 127.0.0.1 -n 2 -w 1000> nul
goto:modifyFakesign
:modifyDeflickerWAD
cls
::setting these to zero for bulk Deflicker WAD processing, counts are meaningless when in individual wad modding mode
set wadsSkipped=0
set wadsSuccess=0
set wads2error=0
set wadsAlrDone=0
support\sfk echo [%redtext%]ModMii v%currentversion% WAD tools
echo.
support\sfk echo Modify Channel WAD: %TITtext%Title ID, IOS, DOL, AHB^|DVD, %NLtext%Fakesign, [%cyantext%]Deflicker[def], Visibility
echo.
support\sfk.exe echo Input : [%bluetext%]"%cmdinput%"
support\sfk.exe echo Output: [%bluetext%]"%cmdinput:~0,-4%[%redtext%]-Mod%RandomNum%[%bluetext%].wad"
echo.
::set "WADinfo=%cmdinput%"
::if exist "%WADcopy%" set "WADinfo=%WADcopy%"
call "Support\subscripts\DisplayWadInfo.bat"
::dark filter from the few N64 VC titles
set darkfilter=
If /i "%TitID%" EQU "NAAE" set "darkfilter= and N64 Dark Filter"
If /i "%TitID%" EQU "NABE" set "darkfilter= and N64 Dark Filter"
If /i "%TitID%" EQU "NATE" set "darkfilter= and N64 Dark Filter"
If /i "%TitID%" EQU "NAIE" set "darkfilter= and N64 Dark Filter"
If /i "%TitID%" EQU "NASE" set "darkfilter= and N64 Dark Filter"
If /i "%TitID%" EQU "NAIP" set "darkfilter= and N64 Dark Filter"
If /i "%TitID%" EQU "NAAP" set "darkfilter= and N64 Dark Filter"
If /i "%TitID%" EQU "NABP" set "darkfilter= and N64 Dark Filter"
If /i "%TitID%" EQU "NATP" set "darkfilter= and N64 Dark Filter"
If /i "%TitID%" EQU "NAST" set "darkfilter= and N64 Dark Filter"
echo.
If /i "%droptype%" EQU "folder" goto:NoExpPak
::confirm N*** title ID
If /i "%TitID:~0,1%" NEQ "N" goto:NoExpPak
if "%TitID:~3%"=="" goto:NoExpPak
if not "%TitID:~4%"=="" goto:NoExpPak
If /i "%N64ExpPatch%" EQU "N/A" goto:NoExpPak
::fails for Mario Tennis (NAT*)
If /i "%TitID:~0,3%" EQU "NAT" goto:NoExpPak
support\sfk -spat echo \x20 \x20 \x20 \x20 \x20 [%cyantext%]Modify Deflicker Settings ^& N64 Expansion Pak Patch
echo.
if "%N64ExpPatch%"=="" echo Note, later you may also be asked if you want to apply or remove the N64 Expansion Pak Patch.
If /i "%N64ExpPatch%" EQU "Enabled" echo Note you will later also be asked if you want to remove the N64 Expansion Pak Patch.
If /i "%N64ExpPatch%" EQU "Disabled" echo Note you will later also be asked if you want to apply the N64 Expansion Pak Patch.
goto:NoExpPak2
:NoExpPak
support\sfk -spat echo \x20 \x20 \x20 \x20 \x20 [%cyantext%]Modify Deflicker Settings
:NoExpPak2
echo.
if /i "%WADdeflicker%" EQU "Disabled" goto:skip
echo D = Disable Deflicker Filter%darkfilter%
echo * Disables blur filter; recommended when using 480p display mode to improve video quality
echo.
:skip
if /i "%WADdeflicker%" EQU "Enabled" goto:skip
echo R = Re-enable Deflicker Filter%darkfilter%
echo * Re-enables blur filter; recommended when using 480i display mode on a CRT TV
echo.
:skip
If /i "%droptype%" EQU "folder" goto:tinyskip
if "%WADdeflicker%"=="" echo C = Check Deflicker setting currently used
If /i "%AutoDetectDF%" NEQ "Y" echo C+ = Check Deflicker setting now and immediately when opening applicable Channel WADs
If /i "%AutoDetectDF%" EQU "Y" echo C+ = Cancel automatic deflicker setting Checks when opening applicable Channel WADs
echo.
:tinyskip
echo B = Back
echo E = Exit
echo.
set WADdeflickerQ="
set /p WADdeflickerQ=Enter Selection Here:
set "WADdeflickerQ=%WADdeflickerQ:"=%"
if "%WADdeflickerQ%"=="" goto:modifyVisibility
if /i "%WADdeflickerQ%" EQU "B" goto:modifyFakesign
if /i "%WADdeflickerQ%" EQU "E" exit
if /i "%WADdeflicker%" EQU "Disabled" goto:skip
if /i "%WADdeflickerQ%" EQU "D" goto:continue
:skip
if /i "%WADdeflicker%" EQU "Enabled" goto:skip
if /i "%WADdeflickerQ%" EQU "R" goto:continue
:skip
If /i "%droptype%" EQU "folder" goto:NoCstuff
if not "%WADdeflicker%"=="" goto:skip
if /i "%WADdeflickerQ%" EQU "C" goto:continue
:skip
if /i "%WADdeflickerQ%" NEQ "C+" goto:NoCstuff
if /i "%AutoDetectDF%" NEQ "Y" (Set AutoDetectDF=Y) & (support\sfk filter Support\settings.bat -ls!"Set AutoDetectDF=" -write -yes>nul) & (echo Set AutoDetectDF=Y>>Support\settings.bat) & (goto:tinyskip)
if /i "%AutoDetectDF%" EQU "Y" (Set AutoDetectDF=) & (support\sfk filter Support\settings.bat -ls!"Set AutoDetectDF=" -write -yes>nul)
:tinyskip
if "%WADdeflicker%"=="" goto:continue
goto:modifyDeflickerWAD
:NoCstuff
goto:badkey
:continue
::save copy and apply change
::if not exist "%WADcopy%" copy /y "%cmdinput%" "%WADcopy%">nul
::unpack WAD to temp dir
if exist "temp\__channel" rd /s /q "temp\__channel"> nul
mkdir "temp\__channel"
if not exist "%WADcopy%" %WiiPy% wad unpack --skip-hash "%cmdinput%" "temp\__channel">nul
if exist "%WADcopy%" %WiiPy% wad unpack --skip-hash "%WADcopy%" "temp\__channel">nul
if not exist "temp\__channel\00000001.app" (echo 00000001.app missing...) & (goto:WADfail)
:WadDeflicker
If /i "%droptype%" EQU "folder" (set pingtime=0) else (set pingtime=3)
If /i "%droptype%" EQU "folder" (set gotoNext=%EOF%) else (set gotoNext=modifyVisibility)
If /i "%droptype%" EQU "folder" (set gotoPrev=%EOF%) else (set gotoPrev=modifyDeflickerWAD)
::string is always in 00000001.app, some games will require decompressing with wwcxtool, while others can be edited as is
::if decompressed with wwcxtool, it needs to be compressed again in original compression style before repacking
set "ImageDol=temp\__channel\00000001.app"
::Disabling GXSetCopyFilter for Wii games
::Replace
set str1=5439800000508BC00E99498000500CC00E906980009949800090E98000994980009109800041820040
::longer version of str1, only last 4 bytes change ::set str1=2C030000418200F8890400003800000089440001386000005100073E88E40006514026368904000C50E3073E38E000005107073E8944000D8964000739000000514726368944000289240012516326365140452E8944000E5128073E892400135147452E894400035128263689240014514064268944000F5128452E89240015514764268944000489640008512864265140831E89440010892400165163452E896400095147831E894400055128831E89240011516364268964000A5140A2168944000B5127A21688840017392000015163831E5143A2165088A2165120C00E3940000239200003388000045143C00E5127C00E5088C00E480000243D0001663C6002663CE003663C800466380866663863666638E76666390466663D20CC0139400061994980002C0500003880005339600000900980003800005439800000508BC00E99498000500CC00E906980009949800090E98000994980009109800041820040
::with
set str2=5439800000508BC00E99498000500CC00E906980009949800090E98000994980009109800048000040
::longer version of str2, only last 4 bytes change ::set str2=2C030000418200F8890400003800000089440001386000005100073E88E40006514026368904000C50E3073E38E000005107073E8944000D8964000739000000514726368944000289240012516326365140452E8944000E5128073E892400135147452E894400035128263689240014514064268944000F5128452E89240015514764268944000489640008512864265140831E89440010892400165163452E896400095147831E894400055128831E89240011516364268964000A5140A2168944000B5127A21688840017392000015163831E5143A2165088A2165120C00E3940000239200003388000045143C00E5127C00E5088C00E480000243D0001663C6002663CE003663C800466380866663863666638E76666390466663D20CC0139400061994980002C0500003880005339600000900980003800005439800000508BC00E99498000500CC00E906980009949800090E98000994980009109800048000040
set WADdeflicker=
::check if already patched (easier to do first) binary search \ hex search (see CollectWadInfo.bat for e.g. of searching multiple files)
support\sfk hexfind "%ImageDol%" -binary /%str2%/ >nul
::ERRORLEVEL 1 means found, 0 means not found
IF ERRORLEVEL 1 set WADdeflicker=Disabled
support\sfk hexfind "%ImageDol%" -binary /%str1%/ >nul
IF ERRORLEVEL 1 set WADdeflicker=Enabled
::N64ExpPatch
If /i "%TitID:~0,1%" NEQ "N" goto:NoExpPak
if "%TitID:~3%"=="" goto:NoExpPak
if not "%TitID:~4%"=="" goto:NoExpPak
set "N64ExpPatch=N/A"
set str3=418200083C800080
set str4=600000003C800080
support\sfk hexfind "%ImageDol%" -binary /%str4%/ >nul
::ERRORLEVEL 1 means found, 0 means not found
IF ERRORLEVEL 1 set N64ExpPatch=Enabled
support\sfk hexfind "%ImageDol%" -binary /%str3%/ >nul
IF ERRORLEVEL 1 set N64ExpPatch=Disabled
:NoExpPak
if not "%WADdeflicker%"=="" goto:FoundStr
::--------compressed stuff ----------
::if exist "%ImageDol%.bak" it means "%ImageDol%" has already been decompressed
if exist "%ImageDol%.bak" (support\sfk echo [%yellowtext%]Unable to locate strings to patch, skipping...) & (@ping 127.0.0.1 -n %pingtime% -w 1000> nul) & (set /a wadsSkipped=%wadsSkipped%+1) & (goto:%gotoNext%)
call Support\subscripts\dependency.bat wwcxtool
if /i "%dependency%" EQU "F" (@ping 127.0.0.1 -n %pingtime% -w 1000> nul) & (set /a wads2error=%wads2error%+1) & (goto:%gotoPrev%)
::if exist "%ImageDol%.bak" it means "%ImageDol%" has already been decompressed
move /y "%ImageDol%" "%ImageDol%.bak">nul
temp\wwcxtool.exe /u "%ImageDol%.bak" "%ImageDol%">nul
if not errorlevel 0 (support\sfk echo [%redtext%]Decompressing FAILED...) & (@ping 127.0.0.1 -n %pingtime% -w 1000> nul) & (set /a wads2error=%wads2error%+1) & (goto:%gotoPrev%)
if not exist "%ImageDol%" (support\sfk echo [%redtext%]Decompressing FAILED...) & (@ping 127.0.0.1 -n %pingtime% -w 1000> nul) & (set /a wads2error=%wads2error%+1) & (goto:%gotoPrev%)
goto:WadDeflicker
:FoundStr
if /i "%WADdeflickerQ%" EQU "C" goto:reportC
if /i "%WADdeflickerQ%" NEQ "C+" goto:skip
:reportC
echo Deflicker: %WADdeflicker%
if not "%N64ExpPatch%"=="" echo N64 Expansion Pak: %N64ExpPatch%
@ping 127.0.0.1 -n 2 -w 1000> nul
goto:modifyDeflickerWAD
:skip
::check if patches already applied
if /i "%WADdeflickerQ%" NEQ "D" goto:skip
if /i "%WADdeflicker%" EQU "Disabled" goto:NoDarkFilter
::if /i "%WADdeflicker%" EQU "Disabled" (support\sfk echo [%greentext%]Deflicker Already Disabled!) & (@ping 127.0.0.1 -n %pingtime% -w 1000> nul) & (set /a wadsAlrDone=%wadsAlrDone%+1) & (goto:%gotoNext%)
:skip
if /i "%WADdeflickerQ%" NEQ "R" goto:skip
if /i "%WADdeflicker%" EQU "Enabled" goto:NoDarkFilter
::if /i "%WADdeflicker%" EQU "Enabled" (support\sfk echo [%greentext%]Deflicker Already Enabled!) & (@ping 127.0.0.1 -n %pingtime% -w 1000> nul) & (set /a wadsAlrDone=%wadsAlrDone%+1) & (goto:%gotoNext%)
:skip
::apply patch
::-firsthit arg used so it will only replace the first hit, have it on good authority that there will never be more than 1 so this speeds things up a bit
if /i "%WADdeflickerQ%" EQU "D" support\sfk replace "%ImageDol%" -binary /%str1%/%str2%/ -firsthit -yes>"temp\patches.txt"
if /i "%WADdeflickerQ%" EQU "R" support\sfk replace "%ImageDol%" -binary /%str2%/%str1%/ -firsthit -yes>"temp\patches.txt"
::ERRORLEVEL 1 means replacement successful
IF not ERRORLEVEL 1 (support\sfk echo [%redtext%]Patching FAILED...) & (@ping 127.0.0.1 -n %pingtime% -w 1000> nul) & (set /a wads2error=%wads2error%+1) & (goto:%gotoPrev%)
::::confirm 1 change made in 1 file by finding this output "[001/1/0] " :: NO POINT WHEN USING -firsthit
::findStr /I /C:"[001/1/0] " "temp\patches.txt" >nul
::::ERRORLEVEL 1 means not found
::IF not ERRORLEVEL 1 goto:PatchSuccess
::::if here it means multiple patches applied
::goto:SomeNewErrorPlace...Abort!
::---INSERT N64 DARK FILTER STUFF HERE...
if "%darkfilter%"=="" goto:NoDarkFilter
::For Mario 64 NTSC-US (ID NAAE)
If /i "%TitID%" EQU "NAAE" set str1=013961004048104DCD800100447C0803A6382100404E8000209421FFE0
If /i "%TitID%" EQU "NAAE" set str2=013961004048104DCD800100447C0803A6382100404E8000204E800020
::For Mario Kart NTSC-US (ID NABE)
If /i "%TitID%" EQU "NABE" set str1=013961004048105A29800100447C0803A6382100404E8000209421FFE0
If /i "%TitID%" EQU "NABE" set str2=013961004048105A29800100447C0803A6382100404E8000204E800020
::For Mario Tennis NTSC-US (ID NATE) - THIS REQUIRES TO DECOMPRESS 00000001.app!
If /i "%TitID%" EQU "NATE" set str1=547C0803A6382100504E8000200000000000000000000000009421FFE0
If /i "%TitID%" EQU "NATE" set str2=547C0803A6382100504E8000200000000000000000000000004E800020
::For Wave Race NTSC-US (ID NAIE)
If /i "%TitID%" EQU "NAIE" set str1=013961004048113451800100447C0803A6382100404E8000209421FFE0
If /i "%TitID%" EQU "NAIE" set str2=013961004048113451800100447C0803A6382100404E8000204E800020
::Cruisin' USA NTSC (ID NASE)
If /i "%TitID%" EQU "NASE" set str1=0139610050480ECCE1800100547C0803A6382100504E8000209421FFE0
If /i "%TitID%" EQU "NASE" set str2=0139610050480ECCE1800100547C0803A6382100504E8000204E800020
::Wave Race PAL (ID NAIP)
If /i "%TitID%" EQU "NAIP" set str1=0139610040481134AD800100447C0803A6382100404E8000209421FFE0
If /i "%TitID%" EQU "NAIP" set str2=0139610040481134AD800100447C0803A6382100404E8000204E800020
::Super Mario 64 PAL (ID NAAP)
If /i "%TitID%" EQU "NAAP" set str1=013961004048105679800100447C0803A6382100404E8000209421FFE0
If /i "%TitID%" EQU "NAAP" set str2=013961004048105679800100447C0803A6382100404E8000204E800020
::Mario Kart 64 PAL (ID NABP)
If /i "%TitID%" EQU "NABP" set str1=013961004048105A85800100447C0803A6382100404E8000209421FFE0
If /i "%TitID%" EQU "NABP" set str2=013961004048105A85800100447C0803A6382100404E8000204E800020
::Mario Tennis PAL (ID NATP)
If /i "%TitID%" EQU "NATP" set str1=0139610050481208C5800100547C0803A6382100504E800020000000009421FFE0
If /i "%TitID%" EQU "NATP" set str2=0139610050481208C5800100547C0803A6382100504E800020000000004E800020
::Cruisin' USA PAL (ID NAST)
If /i "%TitID%" EQU "NAST" set str1=0139610050480ECD45800100547C0803A6382100504E8000209421FFE0
If /i "%TitID%" EQU "NAST" set str2=0139610050480ECD45800100547C0803A6382100504E8000204E800020
if /i "%WADdeflickerQ%" EQU "D" set DeflickerAction=Applied
if /i "%WADdeflickerQ%" EQU "R" set DeflickerAction=Removed
::-firsthit arg used so it will only replace the first hit, have it on good authority that there will never be more than 1 so this speeds things up a bit
if /i "%WADdeflickerQ%" EQU "D" support\sfk replace "%ImageDol%" -binary /%str1%/%str2%/ -firsthit -yes>"temp\patches.txt"
if /i "%WADdeflickerQ%" EQU "R" support\sfk replace "%ImageDol%" -binary /%str2%/%str1%/ -firsthit -yes>"temp\patches.txt"
::ERRORLEVEL 1 means replacement successful
IF not ERRORLEVEL 1 (support\sfk echo [%magentatext%]N64 Dark Filter Patching FAILED) else (echo N64 Dark Filter Patch %DeflickerAction%)
:NoDarkFilter
::N64 Expansion Pak Patch to double 4MB of RAM to 8MB. For some games the patch is great, for most games the patch is benign (can be played fine but with no differences), but a few games could crash if the Expansion Pak is present but not supported (depends on the original N64 game).
::info: https://gbatemp.net/threads/n64-expansion-pak-emulation-on-wii-vc-8-mb-of-ram-on-n64-vc.584066
If /i "%droptype%" EQU "folder" if /i "%ExpPakQ%" EQU "N" goto:NoExpPak
::confirm N*** title ID
If /i "%droptype%" EQU "folder" set N64ExpPatch=
If /i "%TitID:~0,1%" NEQ "N" goto:NoExpPak
if "%TitID:~3%"=="" goto:NoExpPak
if not "%TitID:~4%"=="" goto:NoExpPak
If /i "%N64ExpPatch%" EQU "N/A" goto:NoExpPak
::fails for Mario Tennis (NAT*)
If /i "%TitID:~0,3%" EQU "NAT" goto:NoExpPakWarning
goto:ExpPakNext
:NoExpPakWarning
If /i "%droptype%" EQU "folder" echo N64 Expansion Pak Patch is known to break this title, skipping...
goto:NoExpPak
:ExpPakNext
set str1=418200083C800080
set str2=600000003C800080
if not "%N64ExpPatch%"=="" goto:skipPakCheck
set "N64ExpPatch=N/A"
support\sfk hexfind "%ImageDol%" -binary /%str2%/ >nul
::ERRORLEVEL 1 means found, 0 means not found
IF ERRORLEVEL 1 set N64ExpPatch=Enabled
If /i "%droptype%" EQU "folder" If /i "%N64ExpPatch%" EQU "Enabled" if /i "%ExpPakQ%" EQU "Y" echo N64 Expansion Pak Patch is already applied
support\sfk hexfind "%ImageDol%" -binary /%str1%/ >nul
IF ERRORLEVEL 1 set N64ExpPatch=Disabled
If /i "%droptype%" EQU "folder" If /i "%N64ExpPatch%" EQU "Disabled" if /i "%ExpPakQ%" EQU "R" echo N64 Expansion Pak Patch is already removed
If /i "%N64ExpPatch%" EQU "N/A" (echo N64 Expansion Pak Patch not applicable, continuing...) & (goto:NoExpPak)
:skipPakCheck
If /i "%droptype%" EQU "folder" goto:ContinueExpPak
echo.
echo Would you like to apply the N64 Expansion Pak Patch to double 4MB of RAM to 8MB?
echo.
echo Note: the patch works for some games, for many games it has no impact,
echo but it may cause some games to crash (depends on original N64 game).
echo.
echo The N64 Expansion Pak Patch is currently %N64ExpPatch%
echo.
If /i "%N64ExpPatch%" NEQ "Enabled" echo Y = Yes, apply N64 Expansion Pak patch
If /i "%N64ExpPatch%" NEQ "Disabled" echo R = Remove N64 Expansion Pak patch
echo N = No, do not apply any N64 Expansion Pak patches
echo.
:ExpPakQ
set ExpPakQ="
set /p ExpPakQ=Enter Selection Here:
set "ExpPakQ=%ExpPakQ:"=%"
if /i "%ExpPakQ%" EQU "N" goto:NoExpPak
If /i "%N64ExpPatch%" NEQ "Enabled" if /i "%ExpPakQ%" EQU "Y" goto:ContinueExpPak
If /i "%N64ExpPatch%" NEQ "Disabled" if /i "%ExpPakQ%" EQU "R" goto:ContinueExpPak
echo You Have Entered an Incorrect Key
echo.
goto:ExpPakQ
:ContinueExpPak
::set str1=418200083C800080
::set str2=600000003C800080
If /i "%N64ExpPatch%" EQU "Enabled" if /i "%ExpPakQ%" EQU "Y" goto:NoExpPak
If /i "%N64ExpPatch%" EQU "Disabled" if /i "%ExpPakQ%" EQU "R" goto:NoExpPak
if /i "%ExpPakQ%" EQU "Y" support\sfk replace "%ImageDol%" -binary /%str1%/%str2%/ -firsthit -yes>"temp\patches.txt"
if /i "%ExpPakQ%" EQU "R" support\sfk replace "%ImageDol%" -binary /%str2%/%str1%/ -firsthit -yes>"temp\patches.txt"
::ERRORLEVEL 1 means replacement successful
IF not ERRORLEVEL 1 (support\sfk echo [%magentatext%]N64 Expansion Pak Patching FAILED) & (goto:NoExpPak2)
if /i "%ExpPakQ%" EQU "Y" (set N64ExpPatch=Enabled) & (echo N64 Expansion Pak Patch Applied)
if /i "%ExpPakQ%" EQU "R" (set N64ExpPatch=Disabled) & (echo N64 Expansion Pak Patch Removed)
goto:NoExpPak2
:NoExpPak
::check if patches already applied
if /i "%WADdeflickerQ%" NEQ "D" goto:skip
if /i "%WADdeflicker%" EQU "Disabled" (support\sfk echo [%greentext%]Deflicker Already Disabled!) & (@ping 127.0.0.1 -n %pingtime% -w 1000> nul) & (set /a wadsAlrDone=%wadsAlrDone%+1) & (goto:%gotoNext%)
:skip
if /i "%WADdeflickerQ%" NEQ "R" goto:skip
if /i "%WADdeflicker%" EQU "Enabled" (support\sfk echo [%greentext%]Deflicker Already Enabled!) & (@ping 127.0.0.1 -n %pingtime% -w 1000> nul) & (set /a wadsAlrDone=%wadsAlrDone%+1) & (goto:%gotoNext%)
:skip
:NoExpPak2
::if decompressed with wwcxtool, it needs to be compressed again in original compression style before repacking
::if exist "%ImageDol%.bak" it means "%ImageDol%" has already been decompressed
if not exist "%ImageDol%.bak" goto:AfterRecompress
temp\wwcxtool.exe /cr "%ImageDol%.bak" "%ImageDol%" "%ImageDol%.new">nul
if not errorlevel 0 (support\sfk echo [%redtext%]Recompressing FAILED...) & (@ping 127.0.0.1 -n %pingtime% -w 1000> nul) & (set /a wads2error=%wads2error%+1) & (goto:%gotoPrev%)
if not exist "%ImageDol%.new" (support\sfk echo [%redtext%]Recompressing FAILED...) & (@ping 127.0.0.1 -n %pingtime% -w 1000> nul) & (set /a wads2error=%wads2error%+1) & (goto:%gotoPrev%)
move /y "%ImageDol%.new" "%ImageDol%">nul
if exist "%ImageDol%.bak" del "%ImageDol%.bak">nul
:AfterRecompress
::Repack!
if exist "temp\__channel.wad" del "temp\__channel.wad">nul
set errorlevel=
%WiiPy% wad pack --fakesign "temp\__channel" "temp\__channel.wad">nul
set SigningStatus=Fakesigned
::support\sharpii.exe wad -p "temp\__channel" "temp\__channel.wad"
If /i "%droptype%" EQU "folder" goto:skip
if /i "%errorlevel%" NEQ "0" goto:WADfail
if not exist "temp\__channel.wad" goto:WADfail
:skip
if /i "%errorlevel%" NEQ "0" (support\sfk echo [%redtext%]Repacking WAD FAILED...) & (set /a wads2error=%wads2error%+1) & (goto:%EOF%)
if not exist "temp\__channel.wad" (support\sfk echo [%redtext%]Repacking WAD FAILED...) & (set /a wads2error=%wads2error%+1) & (goto:%EOF%)
move /y "temp\__channel.wad" "%WADcopy%">nul
if exist "temp\__channel" rd /s /q "temp\__channel"> nul
If /i "%droptype%" NEQ "folder" echo Operation completed succesfully!
If /i "%droptype%" EQU "folder" (support\sfk echo [%greentext%]Patched Successfully!) & (set /a wadsSuccess=%wadsSuccess%+1) & (goto:%EOF%)
if /i "%WADdeflickerQ%" EQU "D" set WADdeflicker=Disabled
if /i "%WADdeflickerQ%" EQU "R" set WADdeflicker=Enabled
@ping 127.0.0.1 -n 2 -w 1000> nul
goto:modifyVisibility
:badkey
echo You Have Entered an Incorrect Key
@ping 127.0.0.1 -n 2 -w 1000> nul
goto:modifyDeflickerWAD
::-------------------------------
:modifyVisibility
cls
support\sfk echo [%redtext%]ModMii v%currentversion% WAD tools
echo.
support\sfk echo Modify Channel WAD: %TITtext%Title ID, IOS, DOL, AHB^|DVD, %NLtext%Fakesign, %DFtext%[%cyantext%]Visibility
echo.
support\sfk.exe echo Input : [%bluetext%]"%cmdinput%"
support\sfk.exe echo Output: [%bluetext%]"%cmdinput:~0,-4%[%redtext%]-Mod%RandomNum%[%bluetext%].wad"
echo.
::set "WADinfo=%cmdinput%"
::if exist "%WADcopy%" set "WADinfo=%WADcopy%"
call "Support\subscripts\DisplayWadInfo.bat"
echo.
support\sfk -spat echo \x20 \x20 \x20 \x20 \x20 [%cyantext%]Modify Channel Visibility
echo.
If /i "%wadtype%" EQU "hidden" goto:hidden
echo Would you like to make the Channel Hidden\Invisible?
echo.
echo Y = Yes, hide it and exit
echo M = make invisible and inject Minimalist banner to reduce size and exit
echo N = No, don't make it invisible and exit
goto:skip
:hidden
echo Would you like to make the Channel visible\unhidden?
echo.
If /i "%WadBannerless%" EQU " [Minimalist Banner]" support\sfk -spat echo \x20 \x20 \x20 \x20 \x20 [%yellowtext%]WAD is Bannerless, making it visible is restricted as it may cause banner brick
If /i "%WadBannerless%" EQU " [Minimalist Banner]" support\sfk -spat echo \x20 \x20 \x20 \x20 \x20 [%yellowtext%]To make visible first add a banner to the WAD using CustomizeMii or similar tool
If /i "%WadBannerless%" EQU " [Minimalist Banner]" echo.
If /i "%WadBannerless%" NEQ " [Minimalist Banner]" echo Y = Yes, make it visible (Channel ID: 00010001) and exit
echo N = No, don't make it visible and exit
:skip
echo B = Back
echo E = Exit
echo.
set WADvisibility="
set /p WADvisibility=Enter Selection Here:
set "WADvisibility=%WADvisibility:"=%"
::last screen, don't exit if nothing entered
::if "%WADvisibility%"=="" goto:modifyFin
if /i "%WADvisibility%" NEQ "B" goto:skip
if "%DFtext%"=="" goto:modifyFakesign
goto:modifyDeflickerWAD
:skip
if /i "%WADvisibility%" EQU "E" exit
If /i "%WADvisibility%" EQU "N" goto:modifyFin
if /i "%WADvisibility%" EQU "Y" goto:MakeInvisible
If /i "%wadtype%" EQU "hidden" goto:badkey
if /i "%WADvisibility%" NEQ "M" goto:badkey
:MakeInvisible
If /i "%wadtype%" EQU "hidden" goto:Makevisible
:MakeInvisible2
::hidden channels will have 00010008 in tmd at offset 0x18C (len 4), or offset at 0xE8C of wad (offset is 0xD00 or 3328 greater in WAD than tmd), if converting type it may not be enough to edit tmd as Sharpii makes other changes (including 0xC1C of wad)
::save copy and apply change
if not exist "%WADcopy%" copy /y "%cmdinput%" "%WADcopy%">nul
::set ERRORLEVEL=
::support\hexalter.exe "%WADcopy%" 0xE8C=0x00,0x01,0x00,0x08
::If /i "%ERRORLEVEL%" NEQ "0" goto:WADfail
set ERRORLEVEL=
%WiiPy% wad edit --type HiddenChannel "%WADcopy%"
::support\sharpii.exe Wad -e "%WADcopy%" "%WADcopy%" -type HiddenChannels>nul
if not errorlevel 0 goto:WADfail
::%WiiPy% fakesign "%WADcopy%">nul
::if not errorlevel 0 goto:WADfail
set SigningStatus=Fakesigned
set channelpath=00010008
set wadtype=hidden
if /i "%WADvisibility%" EQU "Y" goto:modifyFin
::replace banner
if exist "temp\__channel" rd /s /q "temp\__channel"> nul
mkdir "temp\__channel"
::silently build minimalist modmii banner placeholder for hidden channels (00000000.app)
support\sfk echo 4D6F644D69692E31373038333731333537000000000000000000000000000000000000000000000000000000010100014D6F642E4D6969404D4F442E4D494900 +hextobin "temp\__channel\00000000.app">nul
if not exist "temp\__channel\00000000.app" goto:WADfail
%WiiPy% wad set -i 0 "%WADcopy%" "temp\__channel\00000000.app"
if /i "%errorlevel%" NEQ "0" goto:WADfail
set SigningStatus=Fakesigned
if exist "temp\__channel" rd /s /q "temp\__channel"> nul
If /i "%droptype%" NEQ "folder" echo Minimalist banner injected succesfully!
If /i "%droptype%" NEQ "folder" set "WadBannerless= [Minimalist Banner]"
goto:modifyFin
:Makevisible
::simple bannerless check
If /i "%WadBannerless%" EQU " [Minimalist Banner]" goto:badkey
::hidden channels will have 00010008 in tmd at offset 0x18C (len 4), or offset at 0xE8C of wad (offset is 0xD00 or 3328 greater in WAD than tmd), if converting type it may not be enough to edit tmd as Sharpii makes other changes (including 0xC1C of wad)
::save copy and apply change
if not exist "%WADcopy%" copy /y "%cmdinput%" "%WADcopy%">nul
::set ERRORLEVEL=
::support\hexalter.exe "%WADcopy%" 0xE8C=0x00,0x01,0x00,0x01
::If /i "%ERRORLEVEL%" NEQ "0" goto:WADfail
set ERRORLEVEL=
%WiiPy% wad edit --type Channel "%WADcopy%"
::support\sharpii.exe Wad -e "%WADcopy%" "%WADcopy%" -type Channel>nul
if not errorlevel 0 goto:WADfail
set channelpath=00010001
set wadtype=channel
::%WiiPy% fakesign "%WADcopy%">nul
::if not errorlevel 0 goto:WADfail
set SigningStatus=Fakesigned
::goto:modifyFin
:modifyFin
If /i "%droptype%" EQU "folder" (support\sfk echo [%greentext%]Operation completed succesfully!) & (set /a wadsSuccess=%wadsSuccess%+1) & (goto:%EOF%)
::echo Operation completed succesfully!
echo.
echo Channel modifications finished, exiting...
if exist "temp\__channel" rd /s /q "temp\__channel"> nul
@ping 127.0.0.1 -n 5 -w 1000> nul
exit
:badkey
echo You Have Entered an Incorrect Key
@ping 127.0.0.1 -n 2 -w 1000> nul
goto:modifyVisibility
:modifyIOSwad
cls
support\sfk echo [%redtext%]ModMii v%currentversion% WAD tools
echo.
support\sfk echo Modify IOS WAD: [%cyantext%]Patches[def], Slot, Version, Confirmation
echo.
support\sfk.exe echo Input: [%bluetext%]"%cmdinput%"
echo Note : Changes will be applied to a copy of the original WAD
echo.
::set "WADinfo=%cmdinput%"
::if exist "%WADcopy%" set "WADinfo=%WADcopy%"
call "Support\subscripts\DisplayWadInfo.bat"
echo.
support\sfk -spat echo \x20 \x20 \x20 \x20 \x20[%cyantext%]Apply Patches to IOS
echo.
echo A = All 4 available patches Select multiple patches by separating them with spaces
echo N = No Patches (or leave selection blank) ------------------------------------------------------
echo -FS = FakeSigning Patch Examples:
echo -ES = ES Identify Patch -FS -ES -NP
echo -NP = Nand Permission Patch -NP -FS
echo -VP = Version Patch -FS -ES -NP -VP
echo B = Back etc.
echo E = Exit
echo.
set ADVPATCH="
set /p ADVPATCH=Enter Selection Here:
set "ADVPATCH=%ADVPATCH:"=%"
if "%ADVPATCH%"=="" goto:modifySlot
If /i "%ADVPATCH%" EQU "N" (set ADVPATCH=) & (goto:modifySlot)
if /i "%ADVPATCH%" EQU "B" goto:WADdrop
if /i "%ADVPATCH%" EQU "E" exit
if /i "%ADVPATCH%" EQU "A" (set ADVPATCH=-FS -ES -NP -VP) & (goto:modifySlot)
::if lower case letters entered change to upper
if /i "%ADVPATCH%" EQU "-FS" (set ADVPATCH=-FS) & (goto:modifySlot)
if /i "%ADVPATCH%" EQU "-ES" (set ADVPATCH=-ES) & (goto:modifySlot)
if /i "%ADVPATCH%" EQU "-NP" (set ADVPATCH=-NP) & (goto:modifySlot)
if /i "%ADVPATCH%" EQU "-VP" (set ADVPATCH=-VP) & (goto:modifySlot)
if /i "%ADVPATCH%" EQU "-FS -ES" (set ADVPATCH=-FS -ES) & (goto:modifySlot)
if /i "%ADVPATCH%" EQU "-ES -FS" (set ADVPATCH=-ES -FS) & (goto:modifySlot)
if /i "%ADVPATCH%" EQU "-FS -NP" (set ADVPATCH=-FS -NP) & (goto:modifySlot)
if /i "%ADVPATCH%" EQU "-NP -FS" (set ADVPATCH=-NP -FS) & (goto:modifySlot)
if /i "%ADVPATCH%" EQU "-FS -VP" (set ADVPATCH=-FS -VP) & (goto:modifySlot)
if /i "%ADVPATCH%" EQU "-VP -FS" (set ADVPATCH=-VP -FS) & (goto:modifySlot)
if /i "%ADVPATCH%" EQU "-ES -NP" (set ADVPATCH=-ES -NP) & (goto:modifySlot)
if /i "%ADVPATCH%" EQU "-NP -ES" (set ADVPATCH=-NP -ES) & (goto:modifySlot)
if /i "%ADVPATCH%" EQU "-ES -VP" (set ADVPATCH=-ES -VP) & (goto:modifySlot)
if /i "%ADVPATCH%" EQU "-VP -ES" (set ADVPATCH=-VP -ES) & (goto:modifySlot)
if /i "%ADVPATCH%" EQU "-NP -VP" (set ADVPATCH=-NP -VP) & (goto:modifySlot)
if /i "%ADVPATCH%" EQU "-VP -NP" (set ADVPATCH=-VP -NP) & (goto:modifySlot)
if /i "%ADVPATCH%" EQU "-FS -ES -NP" (set ADVPATCH=-FS -ES -NP) & (goto:modifySlot)
if /i "%ADVPATCH%" EQU "-FS -NP -ES" (set ADVPATCH=-FS -NP -ES) & (goto:modifySlot)
if /i "%ADVPATCH%" EQU "-ES -FS -NP" (set ADVPATCH=-ES -FS -NP) & (goto:modifySlot)
if /i "%ADVPATCH%" EQU "-ES -NP -FS" (set ADVPATCH=-ES -NP -FS) & (goto:modifySlot)
if /i "%ADVPATCH%" EQU "-NP -FS -ES" (set ADVPATCH=-NP -FS -ES) & (goto:modifySlot)
if /i "%ADVPATCH%" EQU "-NP -ES -FS" (set ADVPATCH=-NP -ES -FS) & (goto:modifySlot)
if /i "%ADVPATCH%" EQU "-FS -ES -VP" (set ADVPATCH=-FS -ES -VP) & (goto:modifySlot)
if /i "%ADVPATCH%" EQU "-FS -VP -ES" (set ADVPATCH=-FS -VP -ES) & (goto:modifySlot)
if /i "%ADVPATCH%" EQU "-ES -FS -VP" (set ADVPATCH=-ES -FS -VP) & (goto:modifySlot)
if /i "%ADVPATCH%" EQU "-ES -VP -FS" (set ADVPATCH=-ES -VP -FS) & (goto:modifySlot)
if /i "%ADVPATCH%" EQU "-VP -FS -ES" (set ADVPATCH=-VP -FS -ES) & (goto:modifySlot)
if /i "%ADVPATCH%" EQU "-VP -ES -FS" (set ADVPATCH=-VP -ES -FS) & (goto:modifySlot)
if /i "%ADVPATCH%" EQU "-FS -NP -VP" (set ADVPATCH=-FS -NP -VP) & (goto:modifySlot)
if /i "%ADVPATCH%" EQU "-FS -VP -NP" (set ADVPATCH=-FS -VP -NP) & (goto:modifySlot)
if /i "%ADVPATCH%" EQU "-NP -FS -VP" (set ADVPATCH=-NP -FS -VP) & (goto:modifySlot)
if /i "%ADVPATCH%" EQU "-NP -VP -FS" (set ADVPATCH=-NP -VP -FS) & (goto:modifySlot)
if /i "%ADVPATCH%" EQU "-VP -NP -FS" (set ADVPATCH=-VP -NP -FS) & (goto:modifySlot)
if /i "%ADVPATCH%" EQU "-VP -FS -NP" (set ADVPATCH=-VP -FS -NP) & (goto:modifySlot)
if /i "%ADVPATCH%" EQU "-ES -NP -VP" (set ADVPATCH=-ES -NP -VP) & (goto:modifySlot)
if /i "%ADVPATCH%" EQU "-ES -VP -NP" (set ADVPATCH=-ES -VP -NP) & (goto:modifySlot)
if /i "%ADVPATCH%" EQU "-NP -ES -VP" (set ADVPATCH=-NP -ES -VP) & (goto:modifySlot)
if /i "%ADVPATCH%" EQU "-NP -VP -ES" (set ADVPATCH=-NP -VP -ES) & (goto:modifySlot)
if /i "%ADVPATCH%" EQU "-VP -ES -NP" (set ADVPATCH=-VP -ES -NP) & (goto:modifySlot)
if /i "%ADVPATCH%" EQU "-VP -NP -ES" (set ADVPATCH=-VP -NP -ES) & (goto:modifySlot)
if /i "%ADVPATCH%" EQU "-VP -FS -ES -NP" (set ADVPATCH=-VP -FS -ES -NP) & (goto:modifySlot)
if /i "%ADVPATCH%" EQU "-VP -FS -NP -ES" (set ADVPATCH=-VP -FS -NP -ES) & (goto:modifySlot)
if /i "%ADVPATCH%" EQU "-VP -ES -FS -NP" (set ADVPATCH=-VP -ES -FS -NP) & (goto:modifySlot)
if /i "%ADVPATCH%" EQU "-VP -ES -NP -FS" (set ADVPATCH=-VP -ES -NP -FS) & (goto:modifySlot)
if /i "%ADVPATCH%" EQU "-VP -NP -FS -ES" (set ADVPATCH=-VP -NP -FS -ES) & (goto:modifySlot)
if /i "%ADVPATCH%" EQU "-VP -NP -ES -FS" (set ADVPATCH=-VP -NP -ES -FS) & (goto:modifySlot)
if /i "%ADVPATCH%" EQU "-NP -FS -ES -VP" (set ADVPATCH=-NP -FS -ES -VP) & (goto:modifySlot)
if /i "%ADVPATCH%" EQU "-NP -FS -VP -ES" (set ADVPATCH=-NP -FS -VP -ES) & (goto:modifySlot)
if /i "%ADVPATCH%" EQU "-NP -ES -FS -VP" (set ADVPATCH=-NP -ES -FS -VP) & (goto:modifySlot)
if /i "%ADVPATCH%" EQU "-NP -ES -VP -FS" (set ADVPATCH=-NP -ES -VP -FS) & (goto:modifySlot)
if /i "%ADVPATCH%" EQU "-NP -VP -FS -ES" (set ADVPATCH=-NP -VP -FS -ES) & (goto:modifySlot)
if /i "%ADVPATCH%" EQU "-NP -VP -ES -FS" (set ADVPATCH=-NP -VP -ES -FS) & (goto:modifySlot)
if /i "%ADVPATCH%" EQU "-ES -FS -NP -VP" (set ADVPATCH=-ES -FS -NP -VP) & (goto:modifySlot)
if /i "%ADVPATCH%" EQU "-ES -FS -VP -NP" (set ADVPATCH=-ES -FS -VP -NP) & (goto:modifySlot)
if /i "%ADVPATCH%" EQU "-ES -NP -FS -VP" (set ADVPATCH=-ES -NP -FS -VP) & (goto:modifySlot)
if /i "%ADVPATCH%" EQU "-ES -NP -VP -FS" (set ADVPATCH=-ES -NP -VP -FS) & (goto:modifySlot)
if /i "%ADVPATCH%" EQU "-ES -VP -NP -FS" (set ADVPATCH=-ES -VP -NP -FS) & (goto:modifySlot)
if /i "%ADVPATCH%" EQU "-ES -VP -FS -NP" (set ADVPATCH=-ES -VP -FS -NP) & (goto:modifySlot)
if /i "%ADVPATCH%" EQU "-FS -ES -NP -VP" (set ADVPATCH=-FS -ES -NP -VP) & (goto:modifySlot)
if /i "%ADVPATCH%" EQU "-FS -ES -VP -NP" (set ADVPATCH=-FS -ES -VP -NP) & (goto:modifySlot)
if /i "%ADVPATCH%" EQU "-FS -NP -ES -VP" (set ADVPATCH=-FS -NP -ES -VP) & (goto:modifySlot)
if /i "%ADVPATCH%" EQU "-FS -NP -VP -ES" (set ADVPATCH=-FS -NP -VP -ES) & (goto:modifySlot)
if /i "%ADVPATCH%" EQU "-FS -VP -ES -NP" (set ADVPATCH=-FS -VP -ES -NP) & (goto:modifySlot)
if /i "%ADVPATCH%" EQU "-FS -VP -NP -ES" (set ADVPATCH=-FS -VP -NP -ES) & (goto:modifySlot)
:badkey
echo You Have Entered an Incorrect Key
@ping 127.0.0.1 -n 2 -w 1000> nul
goto:modifyIOSwad
:modifySlot
cls
support\sfk echo [%redtext%]ModMii v%currentversion% WAD tools
echo.
support\sfk echo Modify IOS WAD: Patches, [%cyantext%]Slot[def], Version, Confirmation
echo.
support\sfk.exe echo Input: [%bluetext%]"%cmdinput%"
echo Note : Changes will be applied to a copy of the original WAD
echo.
::set "WADinfo=%cmdinput%"
::if exist "%WADcopy%" set "WADinfo=%WADcopy%"
call "Support\subscripts\DisplayWadInfo.bat"
echo.
support\sfk -spat echo \x20 \x20 \x20 \x20 \x20 [%cyantext%]Change IOS Slot
echo.
support\sfk -spat echo \x20 \x20 \x20 \x20 \x20 [%yellowtext%]Warning:[def] Be careful what IOS slot you choose, if it overwrites a crucial IOS it can cause brick!
echo.
echo If you would like to change the IOS slot enter it now (must be between 3-254).
echo.
echo To leave the IOS slot unchanged (%iosslot%), leave the selection blank and press Enter.
echo.
echo B = Back
echo E = Exit
echo.
set WADios="
set /p WADios=Enter Selection Here:
set "WADios=%WADios:"=%"
if "%WADios%"=="" (set WADios=?) & (goto:modifyVersion)
if /i "%WADios%" EQU "B" goto:modifyIOSwad
if /i "%WADios%" EQU "E" exit
::if not numeric goto:badkey
for %%A in ("%WADios%") do (for /f "tokens=1 delims=0123456789" %%B in ("%%~A") do goto:badkey)
::Remove leading zeros
for /f "tokens=* delims=0" %%A in ("%WADios%") do set "WADios=%%A"
::Set to 0 if entire input is all zeros
if "%WADios%"=="" set "WADios=0"
::IOS 3-254 check
::limit user input to X# of digits
if not "%WADios:~3%"=="" goto:badkey
if %WADios% LSS 3 goto:badkey
if %WADios% GTR 254 goto:badkey
if "%WadStub%"=="" goto:modifyVersion
::STUBS!
if %WADios% NEQ 80 if %WADios% NEQ 70 if %WADios% NEQ 60 if %WADios% NEQ 52 if %WADios% NEQ 50 if %WADios% NEQ 40 if %WADios% NEQ 30 if %WADios% NEQ 20 if %WADios% NEQ 11 if %WADios% NEQ 10 if %WADios% NEQ 9 if %WADios% NEQ 4 goto:modifyVersion
if /i "%debug%" NEQ "on" goto:badkeystub
:StubConfirm
echo.
echo Warning! Are you sure you want to change the slot of a stubbed IOS to %WADios%? (Y/N):
set StubConfirm="
set /p StubConfirm=Enter Selection Here:
set "StubConfirm=%StubConfirm:"=%"
if /i "%StubConfirm%" EQU "Y" goto:modifyVersion
if /i "%StubConfirm%" EQU "N" goto:modifySlot
echo You Have Entered an Incorrect Key
@ping 127.0.0.1 -n 2 -w 1000> nul
goto:StubConfirm
:badkeystub
echo For your safety I refuse change the slot of a stubbed IOS to %WADios%
::ref: debug mode serves as a discreet reminder this can be bypassed by enabling debug mode
echo (ref: debug mode)
@ping 127.0.0.1 -n 3 -w 1000> nul
goto:modifySlot
:badkey
echo IOS must be between 3-254, try again...
@ping 127.0.0.1 -n 2 -w 1000> nul
goto:modifySlot
:modifyVersion
cls
support\sfk echo [%redtext%]ModMii v%currentversion% WAD tools
echo.
support\sfk echo Modify IOS WAD: Patches, Slot, [%cyantext%]Version[def], Confirmation
echo.
support\sfk.exe echo Input: [%bluetext%]"%cmdinput%"
echo Note : Changes will be applied to a copy of the original WAD
echo.
::set "WADinfo=%cmdinput%"
::if exist "%WADcopy%" set "WADinfo=%WADcopy%"
call "Support\subscripts\DisplayWadInfo.bat"
echo.
support\sfk -spat echo \x20 \x20 \x20 \x20 \x20 [%cyantext%]Change Version Number
echo.
echo If you would like to change the Version number enter it now (must be between 0-65535).
echo.
echo To leave the Version number unchanged (%iosversion%), leave the selection blank and press Enter.
echo.
echo B = Back
echo E = Exit
echo.
set ADVVERSION="
set /p ADVVERSION=Enter Selection Here:
set "ADVVERSION=%ADVVERSION:"=%"
if "%ADVVERSION%"=="" (set ADVVERSION=?) & (goto:IOSwadConfirm)
if /i "%ADVVERSION%" EQU "B" goto:modifySlot
if /i "%ADVVERSION%" EQU "E" exit
::if not numeric goto:badkey
for %%A in ("%ADVVERSION%") do (for /f "tokens=1 delims=0123456789" %%B in ("%%~A") do goto:badkey)
::Remove leading zeros
for /f "tokens=* delims=0" %%A in ("%ADVVERSION%") do set "ADVVERSION=%%A"
::Set to 0 if entire input is all zeros
if "%ADVVERSION%"=="" set "ADVVERSION=0"
::IOS 0-65535 check
::limit user input to X# of digits
if not "%ADVVERSION:~5%"=="" goto:badkey
if %ADVVERSION% LSS 0 goto:badkey
if %ADVVERSION% GTR 65535 goto:badkey
goto:IOSwadConfirm
:badkey
echo Version must be between 0-65535, try again...
@ping 127.0.0.1 -n 2 -w 1000> nul
goto:modifyVersion
:IOSwadConfirm
cls
support\sfk echo [%redtext%]ModMii v%currentversion% WAD tools
echo.
support\sfk echo Modify IOS WAD: Patches, Slot, Version, [%cyantext%]Confirmation
echo.
support\sfk.exe echo Input : [%bluetext%]"%cmdinput%"
::check for changes...
if not "%ADVPATCH%"=="" goto:skip
If /i "%WADios%" NEQ "?" goto:skip
If /i "%ADVVERSION%" NEQ "?" goto:skip
::no changes
echo.
echo.
::set "WADinfo=%cmdinput%"
::if exist "%WADcopy%" set "WADinfo=%WADcopy%"
call "Support\subscripts\DisplayWadInfo.bat"
echo.
support\sfk -spat echo \x20 \x20 \x20 \x20 \x20 [%cyantext%]You have not selected any changes
echo.
echo B = Back
echo E = Exit
echo.
set ADVCONFIRM="
set /p ADVCONFIRM=Enter Selection Here:
set "ADVCONFIRM=%ADVCONFIRM:"=%"
if /i "%ADVCONFIRM%" EQU "B" goto:modifyVersion
if /i "%ADVCONFIRM%" EQU "E" exit
echo You Have Entered an Incorrect Key
@ping 127.0.0.1 -n 2 -w 1000> nul
goto:IOSwadConfirm
:skip
::get new name
set patchcode=
set patchname=
set SLOTCODE=
set SLOTNAME=
set versioncode=
set versionname=
if "%ADVPATCH%"=="" goto:skip
::add leading space for patchcode
set patchcode= %ADVPATCH%
::remove leading dash and space for patchname
echo [%ADVPATCH:~1%]>temp\temp.txt
support\sfk filter -quiet temp\temp.txt -rep _" "__ -write -yes
set /p patchname= <temp\temp.txt
del temp\temp.txt>nul
:skip
If /i "%WADios%" EQU "?" goto:skip
set SLOTCODE= -slot %WADios%
set SLOTNAME=-slot%WADios%
:skip
If /i "%ADVVERSION%" EQU "?" goto:skip
set versioncode= -v %ADVVERSION%
set versionname=-[v%ADVVERSION%]
:skip
set "WADcopy=%cmdinput:~0,-4%%patchname%%SLOTNAME%%versionname%.wad"
support\sfk.exe echo Output: [%bluetext%]"%cmdinput:~0,-4%[%redtext%]%patchname%%SLOTNAME%%versionname%[%bluetext%].wad"
echo.
::set "WADinfo=%cmdinput%"
::if exist "%WADcopy%" set "WADinfo=%WADcopy%"
call "Support\subscripts\DisplayWadInfo.bat"
echo.
support\sfk -spat echo \x20 \x20 \x20 \x20 \x20 [%cyantext%]Confirmation
echo.
echo Proceed with the changes highlighted in %redtext% above?
echo.
echo Y = Yes, save a copy, apply changes, and exit
echo B = Back
echo E = Exit
echo.
set ADVCONFIRM="
setlocal ENABLEDELAYEDEXPANSION
set /p ADVCONFIRM=Enter Selection Here:
set "ADVCONFIRM=%ADVCONFIRM:"=%"
if /i "%ADVCONFIRM%" EQU "B" goto:modifyVersion
if /i "%ADVCONFIRM%" EQU "E" exit
if /i "%ADVCONFIRM%" NEQ "Y" goto:badkey
::save copy and apply change
::copy /y "%cmdinput%" "%WADcopy%">nul
::cd support
::patchios "%WADcopy%"%PATCHCODE%%slotcode%%versioncode%
::cd..
::::fakesign!
::%WiiPy% fakesign "%WADcopy%">nul
::convert %SLOTCODE% from legacy patchios format " -slot ###" to " -s ###" for wiipy
if not "%SLOTCODE%"=="" set "SLOTCODE= -s %SLOTCODE:~7%"
::convert %PATCHCODE% from legacy patchios format to wiipy format
if "%PATCHCODE%"=="" goto:tinyskip
echo %PATCHCODE%>temp\patchcode.txt
support\sfk filter -quiet "temp\patchcode.txt" -rep _-FS_-fs_ -rep _-ES_-ei_ -rep _-NP_-na_ -rep _-VP_-vd_ -write -yes
set /p PATCHCODE= <temp\patchcode.txt
:tinyskip
%WiiPy% iospatch%PATCHCODE%%slotcode%%versioncode% -o "%WADcopy%" "%cmdinput%"
if /i "%errorlevel%" EQU "0" goto:skip
echo.
::echo Something went wrong, were all the patches already applied?
echo Exiting...
@ping 127.0.0.1 -n 5 -w 1000> nul
exit
:skip
if "%PATCHCODE%"=="" goto:tinyskip
echo.
echo Double checking applied patches...
::check if patches applied successfully
set "WadInput=%WADcopy%"
call "Support\subscripts\CollectWadInfo.bat"
set "patchname=["
if /i "%FSpatch%" EQU "Y" set "patchname=%patchname%FS"
if /i "%ESpatch%" EQU "Y" set "patchname=%patchname%-ES"
if /i "%NPpatch%" EQU "Y" set "patchname=%patchname%-NP"
if /i "%VPpatch%" EQU "Y" set "patchname=%patchname%-VP"
if /i "%patchname:~0,2%" EQU "[-" set "patchname=[%patchname:~2%"
set "patchname=%patchname%]"
if /i "%patchname%" EQU "[]" set patchname=
if /i "%WADcopy%" EQU "%cmdinput:~0,-4%%patchname%%SLOTNAME%%versionname%.wad" echo Everything looks good!
if /i "%WADcopy%" EQU "%cmdinput:~0,-4%%patchname%%SLOTNAME%%versionname%.wad" goto:tinyskip
echo Renaming file to align with applied patches as follows:
support\sfk.exe echo [%bluetext%]"%cmdinput:~0,-4%[%redtext%]%patchname%[%bluetext%]%SLOTNAME%%versionname%.wad"
echo.
move /y "%WADcopy%" "%cmdinput:~0,-4%%patchname%%SLOTNAME%%versionname%.wad">nul
:tinyskip
echo Exiting...
@ping 127.0.0.1 -n 5 -w 1000> nul
exit
:badkey
echo You Have Entered an Incorrect Key
@ping 127.0.0.1 -n 2 -w 1000> nul
goto:IOSwadConfirm
:notwad
::----------mym2csm converter---------------
if /i "%cmdinput:~-4%" NEQ ".mym" goto:notmym2csm
if not exist "%cmdinput%" goto:notmym2csm
if exist "%cmdinput%\" goto:notmym2csm
:mym2csm
cls
support\sfk echo [%redtext%]ModMii v%currentversion% Theme Builder
echo.
if /i "%droptype%" EQU "folder" echo Folder of mym themes loaded: "%cmdinput%"
if /i "%droptype%" NEQ "folder" echo Loaded theme: "%cmdinput%"
echo.
echo Enter the System Menu version you would like to create a csm theme for
echo For vWii (WiiU) enter "v" followed by your region letter (UEJ)
echo For Wii Mini enter "m" followed by your region letter (UE)
echo.
support\sfk -spat echo \x20 \x20 [%yellowtext%]Installing themes for the wrong System Menu version can cause brick, make sure you have Priiloader ^& a nand backup.
support\sfk -spat echo \x20 \x20 [%yellowtext%]Use the ModMii Wizard or SysCheck Updater Wizard for brick protection before applying themes!
support\sfk -spat echo \x20 \x20 [%yellowtext%]If using vWii (WiiU) DO NOT use MyMenuifyMod, instead USE csm-installer!
support\sfk -spat echo \x20 \x20 [%yellowtext%]vWii and Mini themes are experimental and not every MYM will work properly with vWii and Mini
echo.
echo Install themes for YOUR System Menu version using csm-installer from ModMii's Download Page 3.
echo More themes available at wiithemer.org and wii.hacks.guide/themes
echo.
echo Note: to check your System Menu version, turn on your Wii, click the Wii button in the
echo bottom left of the main system menu, click Wii Settings, then you should see the
echo System Menu version in the top right of the screen (ie. 4.2U, 4.1J, 3.2E, etc.)
echo.
echo Wii Options: 4.1-4.3 UEJK vWii Options: vU vE vJ Wii Mini Options: mU mE
echo.
echo Wii Examples: 4.3U vWii Examples: vU Wii Mini Examples: mU
echo 4.2E vE mE
echo 4.1K, etc. vJ
echo.
echo Or enter "Help" for an instructional video on checking your System Menu Version.
echo.
set mym2csm="
set /p mym2csm=Enter Selection Here:
set "mym2csm=%mym2csm:"=%"
If /i "%mym2csm%" EQU "4.1J" (set appfile=78) & (set A78=*) & (goto:mym2csm2)
If /i "%mym2csm%" EQU "4.1K" (set appfile=81) & (set A81=*) & (goto:mym2csm2)
If /i "%mym2csm%" EQU "4.1U" (set appfile=7b) & (set A7b=*) & (goto:mym2csm2)
If /i "%mym2csm%" EQU "4.1E" (set appfile=7e) & (set A7e=*) & (goto:mym2csm2)
If /i "%mym2csm%" EQU "4.2J" (set appfile=84) & (set A84=*) & (goto:mym2csm2)
If /i "%mym2csm%" EQU "4.2U" (set appfile=87) & (set A87=*) & (goto:mym2csm2)
If /i "%mym2csm%" EQU "4.2E" (set appfile=8a) & (set A8a=*) & (goto:mym2csm2)
If /i "%mym2csm%" EQU "4.2K" (set appfile=8d) & (set A8d=*) & (goto:mym2csm2)
If /i "%mym2csm%" EQU "4.3J" (set appfile=94) & (set A94=*) & (goto:mym2csm2)
If /i "%mym2csm%" EQU "4.3U" (set appfile=97) & (set A97=*) & (goto:mym2csm2)
If /i "%mym2csm%" EQU "4.3E" (set appfile=9a) & (set A9a=*) & (goto:mym2csm2)
If /i "%mym2csm%" EQU "4.3K" (set appfile=9d) & (set A9d=*) & (goto:mym2csm2)
If /i "%mym2csm%" EQU "vJ" (set appfile=1c) & (set A1c=*) & (goto:mym2csm2)
If /i "%mym2csm%" EQU "vU" (set appfile=1f) & (set A1f=*) & (goto:mym2csm2)
If /i "%mym2csm%" EQU "vE" (set appfile=22) & (set A22=*) & (goto:mym2csm2)
If /i "%mym2csm%" EQU "mU" (set wadname=00000001_4.3U_Wii_Mini.app) & (set md5=80d6b23797c8959aea2872f01befc744) & (goto:checkapp)
If /i "%mym2csm%" EQU "mE" (set wadname=00000001_4.3E_Wii_Mini.app) & (set md5=6288582ee122e9b2443fe178e72cd0ef) & (goto:checkapp)
if /i "%mym2csm%" EQU "help" (start https://www.youtube.com/embed/1Z2MtFcllTY) & (goto:mym2csm)
echo You Have Entered an Incorrect Key
@ping 127.0.0.1 -n 2 -w 1000> nul
goto:mym2csm
:checkapp
::check md5 if exists already
if not exist "temp\%wadname%" goto:skip
support\sfk md5 -quiet -verify %md5% "temp\%wadname%"
if not errorlevel 1 goto:mym2csm2
::if not errorlevel 1 (echo %wadname% for constructing %mym2csm% themes found and verified, continuing...) & (echo.) & (goto:mym2csm2)
del "temp\%wadname%">nul
::support\sfk.exe echo [%redtext%]%wadname% already exists but failed MD5 verification...
::@ping 127.0.0.1 -n 2 -w 1000> nul
:skip
cls
support\sfk echo [%redtext%]ModMii v%currentversion% Theme Builder
echo.
if /i "%droptype%" EQU "folder" echo Folder of mym themes loaded: "%cmdinput%"
if /i "%droptype%" NEQ "folder" echo Loaded theme: "%cmdinput%"
echo.
echo The file required to build this Wii Mini theme is not available online so you must provide it yourself.
echo.
if /i "%adminmode%" EQU "N" If /i "%mym2csm%" EQU "mU" support\sfk.exe echo [%bluetext%]To build your theme drag the 00000001.app file from the 4.3U Wii Mini System Menu (v4609), or a WAD of the System Menu itself, onto this window and press enter
if /i "%adminmode%" EQU "N" If /i "%mym2csm%" EQU "mE" support\sfk.exe echo [%bluetext%]To build your theme drag the 00000001.app file from the 4.3E Wii Mini System Menu (v4610), or a WAD of the System Menu itself, onto this window and press enter
if /i "%adminmode%" EQU "Y" If /i "%mym2csm%" EQU "mU" support\sfk.exe echo [%bluetext%]To build your theme enter the path to the 00000001.app file from the 4.3U Wii Mini System Menu (v4609), or a WAD of the System Menu itself
if /i "%adminmode%" EQU "Y" If /i "%mym2csm%" EQU "mE" support\sfk.exe echo [%bluetext%]To build your theme enter the path to the 00000001.app file from the 4.3E Wii Mini System Menu (v4610), or a WAD of the System Menu itself
echo.
set MiniApp="
set /p MiniApp=Enter Selection Here:
set "MiniApp=%MiniApp:"=%"
::echo MiniApp "%MiniApp%"
if "%MiniApp%"=="" (echo You Have Entered an Incorrect Key) & (@ping 127.0.0.1 -n 2 -w 1000> nul) & (goto:checkapp)
if not exist "%MiniApp%" (echo You Have Entered an Incorrect Key) & (@ping 127.0.0.1 -n 2 -w 1000> nul) & (goto:checkapp)
If /i "%MiniApp:~-4%" NEQ ".wad" goto:skip
::unpack wad and check
if exist "temp\MiniTemp\" rd /s /q "temp\MiniTemp\"> nul
mkdir "temp\MiniTemp"
%WiiPy% wad unpack --skip-hash "%MiniApp%" "temp\MiniTemp">nul
if not exist "temp\MiniTemp\00000001.app" (echo Something went wrong, try again with a different file...) & (@ping 127.0.0.1 -n 2 -w 1000> nul)
if exist "temp\MiniTemp\00000001.app" move /y "temp\MiniTemp\00000001.app" "temp\%wadname%">nul
if exist "temp\MiniTemp\" rd /s /q "temp\MiniTemp\"> nul
goto:checkapp
:skip
If /i "%MiniApp:~-4%" NEQ ".app" goto:skip
copy /y "%MiniApp%" "temp\%wadname%">nul
goto:checkapp
:skip
echo This isn't an APP or a WAD file, try again...
@ping 127.0.0.1 -n 2 -w 1000> nul
goto:checkapp
:mym2csm2
cls
support\sfk echo [%redtext%]ModMii v%currentversion% Theme Builder
echo.
support\sfk -spat echo \x20 \x20 [%yellowtext%]Installing themes for the wrong System Menu version can cause brick, make sure you have Priiloader ^& a nand backup.
support\sfk -spat echo \x20 \x20 [%yellowtext%]Use the ModMii Wizard or SysCheck Updater Wizard for brick protection before applying themes!
support\sfk -spat echo \x20 \x20 [%yellowtext%]If using vWii (WiiU) DO NOT use MyMenuifyMod, instead USE csm-installer!
support\sfk -spat echo \x20 \x20 [%yellowtext%]vWii and Mini themes are experimental and not every MYM will work properly with vWii and Mini
echo.
echo Install themes for YOUR System Menu version using csm-installer from ModMii's Download Page 3.
echo More themes available at wiithemer.org and wii.hacks.guide/themes
echo.
call Support\subscripts\dependency.bat themewii
if /i "%dependency%" EQU "F" (echo Exiting...) & (@ping 127.0.0.1 -n 3 -w 1000> nul) & (exit)
::skip this part for Wii Mini
If /i "%mym2csm:~0,1%" EQU "m" (set mym2csm=%wadname:~9,-4%) & (goto:gotbase)
set loadorgo=load4mym2csm
If /i "%mym2csm:~0,1%" EQU "v" set CurrentDLNAME=A%appfile%
If /i "%mym2csm:~0,1%" NEQ "v" set CurrentDLNAME=NUSGRABBER%appfile%
call "Support\subscripts\DB.bat"
:load4mym2csm
::make sure caps, cuz OCD (i.e. 4.3u turns into 4.3U)
set "mym2csm=%wadname:~9,-4%"
set "dlname=%wadname:~0,8%.app"
::echo cmdinput: "%cmdinput%"
::echo dlname: "%dlname%"
::echo mym2csm: %mym2csm%
::echo name: %name%
::echo wadname: %wadname%
::echo code1: %code1%
::echo code2: %code2%
::echo version: %version%
::echo md5: %md5%
::check md5 if exists already
if not exist "temp\%wadname%" goto:skip
support\sfk md5 -quiet -verify %md5% "temp\%wadname%"
if not errorlevel 1 (echo %wadname% for constructing %mym2csm% themes already downloaded and verified, continuing...) & (echo.) & (goto:gotbase)
support\sfk.exe echo [%redtext%]%wadname% already exists but failed MD5 verification, redownloading...
del "temp\%wadname%">nul
:skip
echo Downloading %wadname% for constructing %mym2csm% themes ...
echo.
%WiiPy% nus content -v %version% -o "temp\%dlname%" -d %code1%%code2% %dlname:~0,8%
if /i "%code1%%code2%" NEQ "0000000700000002" goto:skip
echo.
echo Fixing vWii aspect ratio for Everybody Votes and Check Mii Out channels...
%WiiPy% u8 unpack "temp\%dlname%" "temp\%dlname:~0,-4%"
::fixes aspect ratio on vWii for Everybody Votes and Check Mii Out channels
::use partcopy and partcopy +append to remove 8 bytes from 0x10-0x17 [48 41 4A 00 48 41 50 00], and also change 0x82 to 0x80 at offset 0xB
support\sfk partcopy "temp\%dlname:~0,-4%\titlelist\wwdb.bin" -fromto 0x0 0x10 "temp\wwdb.bin" -yes +sfk partcopy "temp\%dlname:~0,-4%\titlelist\wwdb.bin" -allfrom 0x18 "temp\wwdb.bin" -yes -append>nul
support\sfk setbytes "temp\wwdb.bin" 0xB 0x80 -yes>nul
if exist "temp\wwdb.bin" move /y "temp\wwdb.bin" "temp\%dlname:~0,-4%\titlelist\wwdb.bin">nul
%WiiPy% u8 pack "temp\%dlname:~0,-4%" "temp\%dlname%"
if exist "temp\%dlname:~0,-4%" rd /s /q "temp\%dlname:~0,-4%"
:skip
echo.
if not exist "temp\%dlname%" (support\sfk.exe echo [%redtext%]Failed to download %wadname%, exiting...) & (@ping 127.0.0.1 -n 5 -w 1000> nul) & (exit)
move /Y "temp\%dlname%" "temp\%wadname%">nul
::check md5
support\sfk md5 -quiet -verify %md5% "temp\%wadname%"
if errorlevel 1 (support\sfk.exe echo [%redtext%]%wadname% failed MD5 verification, exiting...) & (del "temp\%wadname%">nul) & (@ping 127.0.0.1 -n 5 -w 1000> nul) & (exit)
:gotbase
::base app verified
if /i "%droptype%" EQU "folder" goto:mymfolder
set "outputcsm=%cmdinput:~0,-4%-%mym2csm%.csm"
set "inputmym=%cmdinput%"
::pass, get folder to open when any key is pressed
::get mymfile and mympath names, i.e. get filename and get folder full path not including filename
:mymgetfolder
set "mymfile=%cmdinput:*\=%"
set "mympath=%cmdinput%"
:stripmymfile
set "mymfile=%mymfile:*\=%"
echo "%mymfile%">temp\temp.txt
findStr \\ temp\temp.txt>nul
IF NOT ERRORLEVEL 1 goto:stripmymfile
echo set "mympath=%%mympath:%mymfile%=%%">temp\temp.bat
call temp\temp.bat
set "mympath=%cmdinput%"
echo set "mympathback=%%mympath:\%mymfile%=%%">temp\temp.bat
call temp\temp.bat
::echo mymfile: "%mymfile%"
::echo mympath: "%mympath%"
::echo mympathback: "%mympathback%"
support\sfk.exe echo Building [%cyantext%]"%outputcsm%"...
echo.
cd /d temp\themewii
themewii.exe "%inputmym%" "..\%wadname%" "%outputcsm%"
cd ..\..
echo.
::%WiiPy% theme mym "%inputmym%" "temp\%wadname%" "%outputcsm%"
::if /i "%errorlevel%" NEQ "0" if exist "%outputcsm%" del "%outputcsm%">nul
if /i "%AudioOption%" NEQ "on" goto:nosound
if exist "%outputcsm%" (start support\nircmd.exe mediaplay 3000 "%Success.mp3%") else (start support\nircmd.exe mediaplay 3000 "%Fail.mp3%")
:nosound
if not exist "%outputcsm%" (echo Something went wrong, press any key to exit...) & (pause>nul) & (exit)
:mymfinish
support\sfk.exe echo [%greentext%]CSM created successfully!
echo.
if /i "%adminmode%" EQU "N" support\sfk.exe echo [%bluetext%]If this theme needs more MYMs to complete, drag the next MYM here and press enter
if /i "%adminmode%" EQU "Y" support\sfk.exe echo [%bluetext%]If this theme needs more MYMs to complete, enter the path of the next MYM and press enter
support\sfk.exe echo [%bluetext%]To Open output folder and exit enter O
echo.
echo (To exit you can close this window or leave selection blank and press enter)
echo.
set multimym="
set /p multimym=Enter Selection Here:
set "multimym=%multimym:"=%"
::echo multimym "%multimym%"
::echo mympath "%mympath%"
if "%multimym%"=="" exit
If /i "%multimym%" EQU "O" (explorer "%mympath%") & (exit)
if not exist "%multimym%" (echo Something went wrong, press any key to exit...) & (pause>nul) & (exit)
If /i "%multimym:~-4%" NEQ ".mym" (echo That isn't a mym file, exiting...) & (@ping 127.0.0.1 -n 3 -w 1000> nul) & (exit)
::apply second mym
echo.
support\sfk.exe echo Applying [%cyantext%]"%multimym%"...
echo.
cd /d temp\themewii
themewii.exe "%multimym%" "%outputcsm%" "%outputcsm%"
cd ..\..
echo.
::%WiiPy% theme mym "%multimym%" "%outputcsm%" "%outputcsm%"
::if /i "%errorlevel%" NEQ "0" if exist "%outputcsm%" del "%outputcsm%">nul
if /i "%AudioOption%" NEQ "on" goto:nosound
if exist "%outputcsm%" (start support\nircmd.exe mediaplay 3000 "%Success.mp3%") else (start support\nircmd.exe mediaplay 3000 "%Fail.mp3%")
:nosound
if not exist "%outputcsm%" (echo Something went wrong, press any key to exit...) & (pause>nul) & (exit)
set multimym=?
goto:mymfinish
:notmym2csm
::--------------------------------
::----------csm2csm converter---------------
if /i "%cmdinput:~-4%" NEQ ".csm" goto:notcsm2csm
if not exist "%cmdinput%" goto:notcsm2csm
if exist "%cmdinput%\" goto:notcsm2csm
:csm2csm
cls
support\sfk echo [%redtext%]ModMii v%currentversion% Theme Builder
echo.
if /i "%droptype%" EQU "folder" echo Folder of csm themes loaded: "%cmdinput%"
if /i "%droptype%" NEQ "folder" echo Loaded theme: "%cmdinput%"
echo.
support\sfk echo [%bluetext%]If the csm doesn't match your System Menu version, convert it to mym with ThemeMii Mod from ModMii's Download Page 5.
echo.
echo Some themes may come with additional\optional myms to apply different effects (e.g. spinning channel effect)
echo.
if /i "%adminmode%" EQU "N" support\sfk echo [%bluetext%]To apply an additional mym to the loaded theme(s), drag it here and press enter
if /i "%adminmode%" EQU "Y" support\sfk echo [%bluetext%]To apply an additional mym to the loaded theme(s), enter its path now
echo.
support\sfk -spat echo \x20 \x20 [%yellowtext%]Installing themes for the wrong System Menu version can cause brick, make sure you have Priiloader ^& a nand backup.
support\sfk -spat echo \x20 \x20 [%yellowtext%]If using vWii (WiiU) DO NOT use MyMenuifyMod, instead USE csm-installer!
support\sfk -spat echo \x20 \x20 [%yellowtext%]Use the ModMii Wizard or SysCheck Updater Wizard for brick protection before applying themes!
echo.
echo Install themes for YOUR System Menu version using csm-installer from ModMii's Download Page 3.
echo More themes available at wiithemer.org and wii.hacks.guide/themes
echo.
set multimym="
set /p multimym= Enter mym here:
set "multimym=%multimym:"=%"
if "%multimym%"=="" goto:badkey
::echo multimym "%multimym%"
::echo mympath "%mympath%"
if "%multimym%"=="" goto:badkey
if not exist "%multimym%" goto:badkey
If /i "%multimym:~-4%" NEQ ".mym" goto:badkey
call Support\subscripts\dependency.bat themewii
if /i "%dependency%" EQU "F" (echo Exiting...) & (@ping 127.0.0.1 -n 3 -w 1000> nul) & (exit)
::apply second mym
if /i "%droptype%" EQU "folder" goto:csmfolder
echo.
support\sfk.exe echo Applying [%cyantext%]"%multimym%"...
echo.
move /y "%cmdinput%" "%cmdinput:~0,-4%_original.csm">nul
cd /d temp\themewii
themewii.exe "%multimym%" "%cmdinput:~0,-4%_original.csm" "%cmdinput%"
cd ..\..
echo.
::%WiiPy% theme mym "%multimym%" "%cmdinput:~0,-4%_original.csm" "%cmdinput%"
::if /i "%errorlevel%" NEQ "0" if exist "%cmdinput%" del "%cmdinput%">nul
if /i "%AudioOption%" NEQ "on" goto:nosound
if exist "%cmdinput%" (start support\nircmd.exe mediaplay 3000 "%Success.mp3%") else (start support\nircmd.exe mediaplay 3000 "%Fail.mp3%")
:nosound
if not exist "%cmdinput%" (echo Something went wrong, press any key to exit...) & (pause>nul) & (exit)
::success
set multimym=?
set "outputcsm=%cmdinput%"
goto:csmgetfolder
:badkey
echo You Have Entered an Incorrect Key
@ping 127.0.0.1 -n 2 -w 1000> nul
goto:csm2csm
::pass, get folder to open when any key is pressed
::get mymfile and mympath names, i.e. get filename and get folder full path not including filename
:csmgetfolder
set "mymfile=%cmdinput:*\=%"
set "mympath=%cmdinput%"
:stripmymfile2
set "mymfile=%mymfile:*\=%"
echo "%mymfile%">temp\temp.txt
findStr \\ temp\temp.txt>nul
IF NOT ERRORLEVEL 1 goto:stripmymfile2
echo set "mympath=%%mympath:%mymfile%=%%">temp\temp.bat
call temp\temp.bat
set "mympath=%cmdinput%"
echo set "mympathback=%%mympath:\%mymfile%=%%">temp\temp.bat
call temp\temp.bat
::echo mymfile: "%mymfile%"
::echo mympath: "%mympath%"
::echo mympathback: "%mympathback%"
goto:mymfinish
:notcsm2csm
::--------------------------------
::drag and drop for file cleanup and app updater, and other dropped items not piped already
:fixitnow
set fixslash=
if /i "%cmdinput:~-1%" EQU "\" set fixslash=yes
if /i "%cmdinput:~-1%" EQU "/" set fixslash=yes
if /i "%fixslash%" EQU "yes" set "cmdinput=%cmdinput:~0,-1%"
if /i "%fixslash%" EQU "yes" goto:fixitnow
if not exist "%cmdinput%\apps\" if not exist "%cmdinput%\wiiu\" if not exist "%cmdinput%\*ModMii*.html" if not exist "%cmdinput%\00000001\" if not exist "%cmdinput%\00010001\" if not exist "%cmdinput%\00010002\" if not exist "%cmdinput%\00010008\" if not exist "%cmdinput%\bootmii\" if not exist "%cmdinput%\WAD\" if not exist "%cmdinput%\private\wii\" goto:Nothing2CleanCMD
set "DRIVEtemp=%cmdinput%"
set "REALDRIVE=%DRIVE%"
set "DRIVE=%cmdinput%"
set MENU1=FC
set cmdlinemodeswitchoff=Y
goto:go
:Nothing2CleanCMD
if /i "%cmdinput:~-5%" EQU ".wbfs" goto:gameimage
if /i "%cmdinput:~-5%" EQU ".ciso" goto:gameimage
::if /i "%cmdinput:~-8%" EQU "nkit.iso" goto:tinyskip
if /i "%cmdinput:~-4%" EQU ".iso" goto:gameimage
:tinyskip
::----------wiiload drag and drop---------------
if not exist "%cmdinput%" goto:notWiiload
set WiiLoadU=
if exist "%cmdinput%\boot.elf" set "cmdinput=%cmdinput%\boot.elf"
if exist "%cmdinput%\boot.dol" set "cmdinput=%cmdinput%\boot.dol"
if /i "%cmdinput:~-4%" EQU ".elf" goto:WiiloadDragged
if /i "%cmdinput:~-4%" EQU ".dol" goto:WiiloadDragged
if /i "%cmdinput:~-5%" EQU ".wuhb" (set WiiLoadU=Y) & (goto:WiiloadDragged)
if /i "%cmdinput:~-4%" EQU ".rpx" (set WiiLoadU=Y) & (goto:WiiloadDragged)
if /i "%cmdinput:~-4%" EQU ".wps" (set WiiLoadU=Y) & (goto:WiiloadDragged)
goto:notWiiload
::support\sfk echo [%redtext%]ModMii v%currentversion%
:WiiloadDragged
set GetFileSize=1
::pass, get folder to open when any key is pressed
::get binary and mympath names, i.e. get filename and get folder full path not including filename
set "binary=%cmdinput:*\=%"
set "binarypath=%cmdinput%"
:stripbinary
set "binary=%binary:*\=%"
echo "%binary%">temp\temp.txt
findStr \\ temp\temp.txt>nul
IF NOT ERRORLEVEL 1 goto:stripbinary
echo set "binarypath=%%binarypath:%binary%=%%">temp\temp.bat
call temp\temp.bat
set "binarypath=%binarypath:~0,-1%"
::echo binary: "%binary%"
::echo binarypath: "%binarypath%"
if /i "%WiiLoadU%" EQU "Y" goto:nometa
if not exist "%binarypath%\meta.xml" goto:nometa
::below fixes meta's that have 00 bytes and may make the OHBC 1.1.4 or ModMii crash upon inspecting the meta
support\sfk replace "%binarypath%\meta.xml" -binary /00// -yes>nul
::remove comments from a copy of the meta
copy /y "%binarypath%\meta.xml" "temp\temp.xml">nul
support\sfk filter temp\temp.xml -rep _"<!--*-->"__ -write -yes>nul
support\sfk filter temp\temp.xml -cut "<!--" to "-->" -cut "<disabled_arguments>" to "</disabled_arguments>" -write -yes>nul
::get metaname
support\sfk filter temp\temp.xml -nocheck -inc "<name>" to "</name>" -and+"<name>" -rep _*"<name>"_" "_ -rep _"</name>"*__ -join>"temp\temp.txt"
set MetaName=
set /p MetaName= <"temp\temp.txt"
::echo "%AppName%"
set wiiloadArg=
findStr /I "<ahb_access/>" "temp\temp.xml" >nul
IF NOT ERRORLEVEL 1 set "wiiloadArg= ahb_access"
findStr /I "<ahb_access />" "temp\temp.xml" >nul
IF NOT ERRORLEVEL 1 set "wiiloadArg= ahb_access"
findStr /I "<no_ios_reload/>" "temp\temp.xml" >nul
IF NOT ERRORLEVEL 1 set "wiiloadArg=%wiiloadArg% no_ios_reload"
support\sfk filter temp\temp.xml -nocheck -inc "<arg>" to "</arg>" -and+"<arg>" -rep _*"<arg>"_" "_ -rep _"</arg>"*__ -join>"temp\temp.txt"
set MoreWiiloadArgs=
set /p MoreWiiloadArgs= <"temp\temp.txt"
if "%MoreWiiloadArgs%"=="" goto:nometa
set "wiiloadArg=%wiiloadArg%%MoreWiiloadArgs%"
:nometa
set WiiIP=
if exist temp\WiiIP.txt set /p WiiIP= <temp\WiiIP.txt
cls
support\sfk echo [%redtext%]ModMii v%currentversion% App Launcher
echo.
if /i "%WiiLoadU%" EQU "Y" goto:skip
if not "%MetaName%"=="" support\sfk echo Launching [%bluetext%]"%MetaName%"
if not "%MetaName%"=="" echo.
echo Start the Homebrew Channel before continuing and make sure both the console and this device are on the same network
echo.
if not "%WiiIP%"=="" support\sfk echo If [%bluetext%]%WiiIP%[def] is your Wii\vWii IP address, enter Y or leave the selection blank to launch the app
if not "%WiiIP%"=="" echo.
if not "%WiiIP%"=="" echo To update your Wii\vWii IP address and launch the app, enter the new address now; e.g 192.168.1.6
if "%WiiIP%"=="" support\sfk echo [%bluetext%]Enter your Wii\vWii IP Address and press enter to launch the loaded app; e.g 192.168.1.6
echo.
support\sfk -spat echo [%bluetext%]wiiload.exe \x22"%cmdinput%"\x22"%wiiloadArg%"
echo.
echo To check your Wii\vWii IP address press home while in the HBC, but remember to exit the Home Menu before
echo continuing. If you see 'Network Not Initialized' you must first connect the console to the internet.
echo.
echo Enter "Help" for an instructional video on checking your Wii\vWii IP Address.
echo.
echo Enter "+" to add a new argument, e.g. --skipIOS=0 for SysCheck to skip an IOS, just change 0 to the IOS to skip
if not "%wiiloadArg%"=="" echo Enter "-" to remove last argument
echo.
::disabled filesize check, validated on receiver
::if %GetFileSize% GTR 26214400 goto:skip
if /i "%cmdinput%" EQU "%homedrive%\boot.elf" goto:skip
if /i "%cmdinput%" EQU "%homedrive%\boot.dol" goto:skip
If /i "%binary%" EQU "boot.elf" (echo Enter "S" to wirelessly Save this app to devices connected to your Wii\vWii using ModMii's HBC Transfer Tool.) & (echo.)
If /i "%binary%" EQU "boot.dol" (echo Enter "S" to wirelessly Save this app to devices connected to your Wii\vWii using ModMii's HBC Transfer Tool.) & (echo.)
goto:skipWiiU
:skip
echo Make sure the Wiiload Plugin is enabled on your WiiU and that you are not in Wii mode.
echo - Access the Aroma plugin menu by pressing L + Down + SELECT (-) on the WiiU GamePad
echo - If you're missing the Wiiload Plugin you can download it from ModMii Classic's Download Page 5
echo - Also make sure both the console and this device are on the same internet network
echo.
if not "%WiiIP%"=="" support\sfk echo If [%bluetext%]%WiiIP%[def] is your WiiU IP address, enter Y or leave the selection blank to launch the app
if not "%WiiIP%"=="" echo.
if not "%WiiIP%"=="" echo To update your WiiU IP address and launch the app, enter the new address now; e.g 192.168.1.6
if "%WiiIP%"=="" support\sfk echo [%bluetext%]Enter your WiiU IP Address and press enter to launch the loaded app; e.g 192.168.1.6
echo.
support\sfk -spat echo [%bluetext%]wiiload.exe \x22"%cmdinput%"\x22"%wiiloadArg%"
echo.
echo To check your WiiU IP address open Aroma's plugin menu and launch the FTPiiU Plugin (see ModMii's Download Page 5),
echo or press the home button while in the Homebrew Channel if your vWii is also softmodded.
echo If you see 'Network Not Initialized' or a different error double check that the console is connected to the internet.
echo.
echo Enter "Help" for an instructional video on checking your vWii IP Address.
echo.
:skipWiiU
set WiiLoadPrompt="
if not "%WiiIP%"=="" set WiiLoadPrompt=Y
set /p WiiLoadPrompt=Enter Selection Here:
set WiiLoadPrompt=%WiiLoadPrompt:"=%
if "%WiiLoadPrompt%"=="" goto:badkey
if /i "%WiiLoadPrompt%" EQU "help" (start https://www.youtube.com/embed/JSyIDx35TVo) & (goto:nometa)
::disabled filesize check, validated on receiver
::if %GetFileSize% GTR 26214400 goto:nocheckSend
if /i "%WiiLoadU%" EQU "Y" goto:nocheckSend
if /i "%cmdinput%" EQU "%homedrive%\boot.elf" goto:nocheckSend
if /i "%cmdinput%" EQU "%homedrive%\boot.dol" goto:nocheckSend
If /i "%binary%" EQU "boot.elf" goto:checkSend
If /i "%binary%" NEQ "boot.dol" goto:nocheckSend
:checkSend
If /i "%WiiLoadPrompt%" NEQ "S" goto:nocheckSend
if exist "temp\HBC_Transfer_" rd /s /q "temp\HBC_Transfer_">nul
if not exist temp\HBC_Transfer_ mkdir temp\HBC_Transfer_
set binaryfolder=
echo "%binarypath%">temp\temp.txt
support\sfk filter -spat temp\temp.txt -lerep _\*__ -rep _*\__ -rep _\x22__ -write -yes>nul
set /p binaryfolder= <temp\temp.txt
::echo binaryfolder:"%binaryfolder%"
::disabled filesize check, validated on receiver
goto:not2big2
::check if over 25MB (I think limit is actually 20MB)
set GetFileSize=
support\sfk stat -sum "%binarypath%">"temp\tmp.txt"
support\sfk filter "temp\tmp.txt" -rep _" bytes*"__ -rep _"* "__ >temp\hexdump.txt
set /p GetFileSize= <temp\hexdump.txt
::set to 1 if nul in case check fails, but new sfk method shouldn't
if "%GetFileSize%"=="" set GetFileSize=1
::echo GetFileSize: %GetFileSize% bytes
if %GetFileSize% LEQ 26214400 goto:not2big2
support\sfk echo [%yellowtext%]"%binarypath%" is too large to send over the internet
@ping 127.0.0.1 -n 4 -w 1000> nul
goto:nometa
:not2big2
set "ModMiiDir=%cd%"
cd /d "%binarypath%"
cd..
"%ModMiiDir%\support\7za" a "%ModMiiDir%\temp\HBC_Transfer_\%binaryfolder%.zip" "%binaryfolder%">nul
cd /d "%ModMiiDir%"
set "cmdinput=%ModMiiDir%\temp\HBC_Transfer_\%binaryfolder%.zip"
goto:Wiiloadzip
:nocheckSend
if /i "%WiiLoadU%" EQU "Y" goto:noargs
if /i "%WiiLoadPrompt%" EQU "+" goto:AddArgument
::remove last arg
if "%wiiloadArg%"=="" goto:noargs
if /i "%WiiLoadPrompt%" NEQ "-" goto:noargs
:getlastarg
set "lastarg=%wiiloadArg:~1%"
set "lastarg=%lastarg:* =%"
::set "mympath=%wiiloadArg%"
:striplastarg
set "lastarg=%lastarg:* =%"
echo "%lastarg%">temp\temp.txt
findStr /C:" " temp\temp.txt>nul
IF NOT ERRORLEVEL 1 goto:striplastarg
echo "%wiiloadArg%">temp\temp.txt
set "lastarg=%lastarg:_=\x5f%"
::echo %lastarg%
support\sfk filter -spat temp\temp.txt -lsrep _"\x22"__ -lerep _" %lastarg%\x22"__ -write -yes>nul
set /p wiiloadArg= <temp\temp.txt
set testarg=
set /p testarg= <temp\temp.txt
if "%testarg%"=="" set wiiloadArg=
goto:nometa
:noargs
if "%WiiIP%"=="" goto:skip
If /i "%WiiLoadPrompt%" EQU "Y" set "WiiLoadPrompt=%WiiIP%"
:skip
::check valid IP
powershell -nologo -noprofile -Command "[ipaddress]::TryParse('%WiiLoadPrompt%',[ref][ipaddress]::Loopback)" | findstr "False">NUL && goto:badkey
::check for 3 periods
set "string=%WiiLoadPrompt%"
set /a dotcount=0
setlocal EnableDelayedExpansion
if defined string (set ^"strtmp=!string:.=^
%= empty string =%
!^") else set "strtmp="
for /F %%C in ('cmd /V /C echo(^^!strtmp^^!^| find /C /V ""') do set /A "dotcount=%%C-1"
setlocal DISABLEDELAYEDEXPANSION
::echo "!string!" contains %dotcount% periods.
if /i "%dotcount%" EQU "3" goto:pingme
:badkey
echo You Have Entered an Incorrect Key
@ping 127.0.0.1 -n 2 -w 1000> nul
goto:nometa
:AddArgument
echo.
echo Include ONE space in-between arguments to add multiple arguments at the same time.
echo.
set AddArgument="
set /p AddArgument= Add argument(s):
set "AddArgument=%AddArgument:"=%"
::echo %AddArgument%
if "%AddArgument%"=="" goto:nometa
::check for insane argument with 2 spaces
echo "%AddArgument%"|findstr /I /C:" ">nul
IF NOT ERRORLEVEL 1 (echo Too many spaces in between arguments...) & (@ping 127.0.0.1 -n 2 -w 1000> nul) & (goto:nometa)
if /i "%AddArgument:~0,1%" EQU " " set "AddArgument=%AddArgument:~1%"
if /i "%AddArgument:~-1%" EQU " " set "AddArgument=%AddArgument:~0,-1%"
set "wiiloadArg=%wiiloadArg% %AddArgument%"
goto:nometa
:pingme
::check if Wii is reachable
::echo.
::echo Pinging Wii to see if reachable...
ping -n 1 "%WiiLoadPrompt%"|findstr /I /C:"ms">nul
IF NOT ERRORLEVEL 1 goto:Pinged
support\sfk echo [%yellowtext%]Unable to reach IP %WiiLoadPrompt%, check your settings and try again...
@ping 127.0.0.1 -n 2 -w 1000> nul
goto:nometa
:Pinged
cls
set "WiiIP=%WiiLoadPrompt%"
> "temp\WiiIP.txt" ECHO %WiiIP%
support\sfk echo [%redtext%]ModMii v%currentversion% App Launcher
echo.
if not "%MetaName%"=="" support\sfk echo Launching app: [%bluetext%]"%MetaName%"
if "%MetaName%"=="" support\sfk echo Launching app: [%bluetext%]"%cmdinput%"
support\sfk echo To IP Address: [%bluetext%]"%WiiIP%"
echo.
if /i "%WiiLoadU%" NEQ "Y" echo If you have issues make sure you have the HBC open but that you are not inside its Home Menu,
if /i "%WiiLoadU%" EQU "Y" echo If you have issues make sure the Wiiload Plugin is enabled in Aroma and that you are not in Wii mode,
echo Double check the console's IP address and make sure both it and this device are on the same network.
if exist temp\wiiload.exe goto:skip
if exist index.html del index.html>nul
call Support\subscripts\dependency.bat wiiload
if /i "%dependency%" NEQ "F" goto:skip
if /i "%AudioOption%" EQU "on" start support\nircmd.exe mediaplay 3000 "%Fail.mp3%"
echo Unable to download wiiload, press any key to exit...
pause>nul
exit
:skip
set "WIILOAD=tcp:%WiiIP%"
echo.
support\sfk -spat echo Sending command: [%cyantext%]wiiload.exe \x22"%cmdinput%"\x22%wiiloadArg%
echo.
temp\wiiload.exe "%cmdinput%"%wiiloadArg%
echo.
echo exiting...
@ping 127.0.0.1 -n 4 -w 1000> nul
exit
:notWiiload
::emunand modifier drag and drop
if exist "%cmdinput%\title\00000001\00000002\content\title.tmd" set "DRIVETEMP=%cmdinput%"
if exist "%cmdinput%\title\00000001\00000002\content\title.tmd" (SET MENU1=S) & (set SNEEKSELECT=5) &(set one=EMUMOD) & (set cmdlinemodeswitchoff=Y) & (goto:go)
::----------Folder drag and drop (Wad Packer, wad unpacker entry, mym folder, etc)---------------
::keep near the bottom of cmd line stuff for reasons, just in case
::check if file or folder
if exist "%cmdinput%" (dir "%cmdinput%" | findstr /I /R /C:"<DIR>">NUL) else (goto:notwadfolder)
IF ERRORLEVEL 1 (set droptype=file) else (set droptype=folder)
if /i "%droptype%" EQU "folder" goto:skip
if /i "%cmdinput:~-4%" EQU ".app" goto:skip
if /i "%cmdinput:~-4%" EQU ".tik" goto:skip
if /i "%cmdinput:~-4%" EQU ".tmd" goto:skip
if /i "%cmdinput:~-5%" EQU ".cert" goto:skip
if /i "%cmdinput:~-7%" EQU ".footer" goto:skip
goto:notwadfolder
:skip
::get wadfile and wadpath names, i.e. get filename and get folder full path not including filename
set "wadfile=%cmdinput:*\=%"
set "wadpath=%cmdinput%"
:stripwadfile
set "wadfile=%wadfile:*\=%"
echo "%wadfile%">temp\temp.txt
findStr \\ temp\temp.txt>nul
IF NOT ERRORLEVEL 1 goto:stripwadfile
echo set "wadpath=%%wadpath:%wadfile%=%%">temp\temp.bat
call temp\temp.bat
set "wadpath=%cmdinput%"
echo set "wadpathback=%%wadpath:\%wadfile%=%%">temp\temp.bat
call temp\temp.bat
::echo wadfile: "%wadfile%"
::echo wadpath: "%wadpath%"
::echo wadpathback: "%wadpathback%"
::::below doesn't work with multiple subdirs
::if exist "%wadpath%\*.wad" goto:wadfolder
::if exist "%wadpath%\*.mym" goto:mym2csm
::if exist "%wadpath%\*.csm" goto:csm2csm
::WAD FOLDER CHECK
::check for file types, also in subdirectories
if exist temp\temp.txt del temp\temp.txt>nul
2>nul dir /s /b /a-d "%wadpath%\*.wad">temp\temp.txt
::delete if file is empty
>nul findstr "^" "temp\temp.txt" || del "temp\temp.txt"
if exist temp\temp.txt goto:wadfolder
::MYM FOLDER CHECK
::check for file types, also in subdirectories
if exist temp\temp.txt del temp\temp.txt>nul
2>nul dir /s /b /a-d "%wadpath%\*.mym">temp\temp.txt
::delete if file is empty
>nul findstr "^" "temp\temp.txt" || del "temp\temp.txt"
if exist temp\temp.txt goto:mym2csm
::CSM FOLDER CHECK
::check for file types, also in subdirectories
if exist temp\temp.txt del temp\temp.txt>nul
2>nul dir /s /b /a-d "%wadpath%\*.csm">temp\temp.txt
::delete if file is empty
>nul findstr "^" "temp\temp.txt" || del "temp\temp.txt"
if exist temp\temp.txt goto:csm2csm
::GAME IMAGE FOLDER CHECK
::check for file types, also in subdirectories
if exist temp\temp.txt del temp\temp.txt>nul
2>nul dir /s /b /a-d "%wadpath%\*.wbfs" "%wadpath%\*.iso" "%wadpath%\*.ciso">temp\temp.txt
::support\sfk -spat filter temp\temp.txt -le!"nkit.iso" -write -yes>nul
::delete if file is empty
>nul findstr "^" "temp\temp.txt" || del "temp\temp.txt"
if exist temp\temp.txt goto:gameimage
if /i "%droptype%" EQU "folder" set "wadpathback=%wadpath%"
if not exist "%wadpathback%\*.app" goto:notwadfolder
if not exist "%wadpathback%\*.tik" goto:notwadfolder
if not exist "%wadpathback%\*.tmd" goto:notwadfolder
if not exist "%wadpathback%\*.cert" goto:notwadfolder
::if not exist "%wadpath%*.footer" goto:notwadfolder
::footer unnecessary when packing wads
support\sfk echo [%redtext%]ModMii v%currentversion% WAD tools
echo.
echo Repacking: "%wadpathback%"
echo To WAD: "%wadpathback%.wad"
echo.
if exist "%wadpathback%.wad" (support\sfk.exe echo [%yellowtext%]This WAD already exists, press any key to send it to the recycling bin and continue, or close this window to abort) & (pause> nul)
if exist "%wadpathback%.wad" echo.
::RECYCLING POWERSHELL CODE, works for directories too
if exist "%wadpathback%.wad" powershell -nologo -noprofile -Command "& {Add-Type -AssemblyName 'Microsoft.VisualBasic'; Get-ChildItem -Path '"%wadpathback%.wad"' | ForEach-Object { if ($_ -is [System.IO.DirectoryInfo]) { [Microsoft.VisualBasic.FileIO.FileSystem]::DeleteDirectory($_.FullName,'OnlyErrorDialogs','SendToRecycleBin') } else { [Microsoft.VisualBasic.FileIO.FileSystem]::DeleteFile($_.FullName,'OnlyErrorDialogs','SendToRecycleBin') } } }"
set errorlevel=
%WiiPy% wad pack --fakesign "%wadpathback%" "%wadpathback%.wad">nul
if /i "%errorlevel%" NEQ "0" goto:RepackFail
if not exist "%wadpathback%.wad" goto:RepackFail
if /i "%AudioOption%" EQU "on" start support\nircmd.exe mediaplay 3000 "%Success.mp3%"
support\sfk.exe echo [%greentext%]Wad repacked successfully!
echo.
support\sfk.exe echo [%bluetext%]To Open output folder and exit enter O
echo.
echo (To exit you can close this window or press enter)
echo.
set promptO="
set /p promptO=Enter Selection Here:
set "promptO=%promptO:"=%"
If /i "%promptO%" NEQ "O" exit
if exist "%wadpathback%" explorer "%wadpathback%"
exit
:noRepack
:RepackFail
if /i "%AudioOption%" EQU "on" start support\nircmd.exe mediaplay 3000 "%Fail.mp3%"
echo Something went wrong, press any key to exit...
pause> nul
exit
::--------------------------------------------------------
goto:notwadfolder
:wadfolder
FINDSTR /N . temp\temp.txt>temp\temp2.txt
title ModMii WAD tools
support\nircmd.exe win setsize ititle "ModMii WAD tools" 0 0 895 780
:wadfolder2
set WiiIP=
if exist temp\WiiIP.txt set /p WiiIP= <temp\WiiIP.txt
cls
::set "wad2folder=%wadfile%"
::echo wad2folder: "%wad2folder%"
::echo wadpath: "%wadpath%"
::echo wadpathback: "%wadpathback%"
dir /s /b /a-d "%wadpath%\*.wad">temp\temp.txt
::copy /y temp\temp.txt temp\wad2folder.txt>nul
::count # of lines
set /a wad2count=0
for /f %%a in (temp\temp.txt) do set /a wad2count+=1
support\sfk echo [%redtext%]ModMii v%currentversion% WAD tools
echo.
echo What would you like to do with this folder of WADs?
echo.
support\sfk.exe echo [%bluetext%]"%wadpath%"
::list wads (numbered)
::FINDSTR /N . temp\temp.txt>temp\temp2.txt
type temp\temp2.txt
echo.
support\sfk -spat echo [%bluetext%]Start the Homebrew Channel before trying to send WADs to your Wii!
echo.
support\sfk -spat echo \x20 \x20 [%yellowtext%]Installing the wrong WAD can cause brick, choose wisely and make sure you have Priiloader and
support\sfk -spat echo \x20 \x20 [%yellowtext%]a nand backup. Use the ModMii Wizard or SysCheck Updater Wizard for brick protection!
echo.
echo U = Unpack WADs; each will be unpacked into a folder of the same name in the same directory.
if not "%WiiIP%"=="" support\sfk.exe -spat echo \x20 \x20 \x20 \x20 \x20 S = Send WADs to Homebrew Channel using [%bluetext%]Saved IP address: %WiiIP%
echo [IP] = Send WADs to Homebrew Channel with IP entered; e.g 192.168.1.6
echo D = Deflicker Filter Changer; improves video quality (inapplicable channels will be skipped)
echo - Can also apply\remove N64 Expansion Pak and N64 Dark Filter patches for applicable N64 WADs
echo N = NandLoader Updater (inapplicable channels will be skipped)
echo H = Hidden Channel Converter (inapplicable channels will be skipped)
::echo V = make Visible (Channel WADs only, others will be skipped)
Set WiiPyColour=%redtext%
Set ODBColour=%redtext%
if /i "%WiiPyInfo%" EQU "Y" Set WiiPyColour=%greentext%
if /i "%ODBInfo%" EQU "Y" Set ODBColour=%greentext%
support\sfk.exe -spat echo \x20 \x20 \x20 \x20 \x20 I = Inspector Wadget; Inspect and display WAD Information ( Extra Info[%cyantext%]*[def] : [%WiiPyColour%]WiiPy [def]\x7c[%ODBColour%] ODB [def])
support\sfk.exe -spat echo \x20 \x20 \x20 \x20 \x20 \x20 \x20 [%cyantext%]*[def] Enter \x22WiiPy\x22 or \x22ODB\x22 to toggle extra WiiPy\x5cOpenDolBoot info [%greentext%]on[def] \x26 [%redtext%]off[def] for applicable WADs
echo HELP = Instructional video on checking your Wii\vWii IP Address
echo E = Exit
echo.
echo To check your Wii\vWii IP address press Home while in the HBC, but exit the Home Menu before continuing.
echo If you see 'Network Not Initialized' you must first connect the console to the internet.
echo.
echo Notes: - WADs larger than 8MB cannot be sent to the Wii over the internet
echo - When sending WADs you will have the option to skip or approve sending each individual WAD
echo.
set SendWADs="
set /p SendWADs=Enter Selection Here:
set "SendWADs=%SendWADs:"=%"
if "%SendWADs%"=="" goto:badkey
if /i "%SendWADs%" EQU "help" (start https://www.youtube.com/embed/JSyIDx35TVo) & (goto:wadfolder2)
if /i "%SendWADs%" EQU "E" exit
if /i "%SendWADs%" EQU "U" goto:BulkWADUnpacker
if /i "%SendWADs%" EQU "N" (set SendWAD=M) & (goto:modifyNandLoader2)
if /i "%SendWADs%" NEQ "WiiPy" goto:skip
if /i "%WiiPyInfo%" NEQ "Y" (Set WiiPyInfo=Y) & (echo Set WiiPyInfo=Y>>Support\settings.bat) & (goto:wadfolder2)
if /i "%WiiPyInfo%" EQU "Y" (Set WiiPyInfo=) & (support\sfk filter Support\settings.bat -ls!"Set WiiPyInfo=" -write -yes>nul) & (goto:wadfolder2)
:skip
if /i "%SendWADs%" NEQ "ODB" goto:skip
if /i "%ODBInfo%" NEQ "Y" (Set ODBInfo=Y) & (echo Set ODBInfo=Y>>Support\settings.bat) & (goto:wadfolder2)
if /i "%ODBInfo%" EQU "Y" (Set ODBInfo=) & (support\sfk filter Support\settings.bat -ls!"Set ODBInfo=" -write -yes>nul) & (goto:wadfolder2)
:skip
if /i "%SendWADs%" NEQ "H" goto:notinvisible
echo.
echo Would you like to also inject a Minimalist banner to reduce size? (Y/N):
echo.
set WADvisibility="
set /p WADvisibility=Enter Selection Here:
set "WADvisibility=%WADvisibility:"=%"
::echo Y = Yes, make it invisible
::echo M = make invisible and inject Minimalist banner to reduce size
if /i "%WADvisibility%" EQU "Y" (set WADvisibility=M) & (goto:BulkInvisible)
if /i "%WADvisibility%" EQU "N" (set WADvisibility=Y) & (goto:BulkInvisible)
goto:badkey
:notinvisible
if /i "%SendWADs%" NEQ "D" goto:notdeflicker
echo.
support\sfk -spat echo \x20 \x20 \x20 \x20 \x20 [%cyantext%]Modify Deflicker Settings
echo.
echo D = Disable Deflicker Filter (and N64 Dark Filter for applicable games)
echo * Disables blur filter; recommended when using 480p display mode to improve video quality
echo.
echo R = Re-enable Deflicker Filter (and N64 Dark Filter for applicable games)
echo * Re-enables blur filter; recommended when using 480i display mode on a CRT TV
echo.
set WADdeflickerQ="
set /p WADdeflickerQ=Enter Selection Here:
set "WADdeflickerQ=%WADdeflickerQ:"=%"
if /i "%WADdeflickerQ%" EQU "D" goto:continue
if /i "%WADdeflickerQ%" EQU "R" goto:continue
goto:badkey
:continue
echo.
support\sfk -spat echo \x20 \x20 \x20 \x20 \x20 [%cyantext%]Would you like to apply the N64 Expansion Pak Patch to double 4MB of RAM to 8MB?
echo.
echo This patch will only be applied to applicable N64 games
echo.
echo Note: the patch works for some games, for many games it has no impact,
echo but it may cause some games to crash (depends on original N64 game).
echo.
echo Y = Yes, apply N64 Expansion Pak patch
echo R = Remove N64 Expansion Pak patch (if applicable)
echo N = No, do not apply any N64 Expansion Pak patches
echo.
:ExpPakQ2
set ExpPakQ="
set /p ExpPakQ=Enter Selection Here:
set "ExpPakQ=%ExpPakQ:"=%"
if /i "%ExpPakQ%" EQU "N" goto:continue
if /i "%ExpPakQ%" EQU "Y" goto:continue
if /i "%ExpPakQ%" EQU "R" goto:continue
goto:badkey
:continue
echo.
support\sfk -spat echo \x20 \x20 \x20 \x20 \x20 [%cyantext%]Would you like changes to be made to a COPY of the file? (Y/N)
echo * To edit the original file enter "N"
echo.
set CopyQ="
set /p CopyQ=Enter Selection Here:
set "CopyQ=%CopyQ:"=%"
if /i "%CopyQ%" EQU "Y" goto:BulkWADdeflicker
if /i "%CopyQ%" EQU "N" goto:BulkWADdeflicker
goto:badkey
:notdeflicker
If /i "%SendWADs%" NEQ "I" goto:skip
cls
title ModMii Inspector Wadget
support\sfk echo [%redtext%]ModMii v%currentversion% Inspector Wadget
echo.
echo Analyzing WADs from this folder:
support\sfk.exe echo [%bluetext%]"%wadpath%"
echo.
If /i "%WiiPyInfo%" NEQ "Y" support\sfk.exe echo Extra WiiPy WAD Info: [%redtext%]Disabled
If /i "%WiiPyInfo%" EQU "Y" support\sfk.exe echo Extra WiiPy WAD Info: [%greentext%]Enabled
If /i "%ODBinfo%" NEQ "Y" support\sfk.exe echo Extra OpenDolBoot Info: [%redtext%]Disabled[def] (only applies to NandLoader ^& Main Dol for supported WADs)
If /i "%ODBinfo%" EQU "Y" support\sfk.exe echo Extra OpenDolBoot Info: [%greentext%]Enabled[def] (only applies to NandLoader ^& Main Dol for supported WADs)
goto:WadBulkInfo
:WadBulkInfoPickUp
if exist "temp\__channel" rd /s /q "temp\__channel"> nul
if /i "%AudioOption%" EQU "on" start support\nircmd.exe mediaplay 3000 "%Success.mp3%"
echo.
support\sfk.exe echo [%greentext%]Finished Analyzing WADs from folder:
support\sfk.exe echo [%bluetext%]"%wadpath%"
echo.
support\sfk.exe echo [%cyantext%]To copy this information press Ctrl+A then Ctrl+C
echo (To exit you can close this window or press enter)
set /p promptO=
exit
:skip
if "%WiiIP%"=="" goto:skip
If /i "%SendWADs%" EQU "S" set "SendWADs=%WiiIP%"
:skip
::check valid IP
powershell -nologo -noprofile -Command "[ipaddress]::TryParse('%SendWADs%',[ref][ipaddress]::Loopback)" | findstr "False">NUL && goto:badkey
::check for 3 periods
set "string=%SendWADs%"
set /a dotcount=0
setlocal EnableDelayedExpansion
if defined string (set ^"strtmp=!string:.=^
%= empty string =%
!^") else set "strtmp="
for /F %%C in ('cmd /V /C echo(^^!strtmp^^!^| find /C /V ""') do set /A "dotcount=%%C-1"
setlocal DISABLEDELAYEDEXPANSION
::echo "!string!" contains %dotcount% periods.
if /i "%dotcount%" EQU "3" goto:pingme
:badkey
echo You Have Entered an Incorrect Key
@ping 127.0.0.1 -n 2 -w 1000> nul
goto:wadfolder2
:pingme
call Support\subscripts\dependency.bat Sharpii
if /i "%dependency%" EQU "F" (@ping 127.0.0.1 -n 3 -w 1000> nul) & (goto:wadfolder2)
::check if Wii is reachable
::echo.
::echo Pinging Wii to see if reachable...
ping -n 1 "%SendWADs%"|findstr /I /C:"ms">nul
IF NOT ERRORLEVEL 1 goto:Pinged
support\sfk echo [%yellowtext%]Unable to reach IP %SendWADs%, check your settings and try again...
@ping 127.0.0.1 -n 2 -w 1000> nul
goto:wadfolder2
:Pinged
cls
set "WiiIP=%SendWADs%"
> "temp\WiiIP.txt" ECHO %WiiIP%
support\sfk echo [%redtext%]ModMii v%currentversion% WAD tools
echo.
::echo wad2folder: "%wad2folder%"
::echo wadpath: "%wadpath%"
::echo wadpathback: "%wadpathback%"
support\sfk -spat echo [%bluetext%]Start the Homebrew Channel before trying to send WADs to your Wii.
echo.
echo If you have issues make sure you have the HBC open but that you are not inside its Home Menu,
echo Double check the Wii IP address and make sure both this device and the Wii are on the same network.
echo.
support\sfk -spat echo \x20 \x20 [%yellowtext%]Installing the wrong WAD can cause brick, choose wisely and make sure you have Priiloader and
support\sfk -spat echo \x20 \x20 [%yellowtext%]a nand backup. Use the ModMii Wizard or SysCheck Updater Wizard for brick protection!
echo.
support\sfk.exe -spat echo [%bluetext%]Sending WADs to Homebrew Channel using IP address: %WiiIP%
:WadBulkInfo
set wads2count=0
::Loop through the following once for EACH line in *.txt, alt method without FOR command to support & ^ and ! without using setlocal ENABLEDELAYEDEXPANSION
:wads2count2
set EOF=wads2count2
::use goto:above (or goto:%EOF%) instead of goto:EOF
set CurrentWAD=
::check if file is empty, if empty it means list completed and goto:continue
If /i "%SendWADs%" EQU "I" (set NextStep=WadBulkInfoPickUp) else (set NextStep=skipwads2count)
>nul findstr "^" "temp\temp.txt" || goto:%NextStep%
::set variable equal to top line
set /p CurrentWAD= <temp\temp.txt
::Remove top line from list
more +1 "temp\temp.txt" > "temp\temp2.txt"
::"more" limits lines to about 65535 bytes/characters and the file to about 65535 lines. Also TABs become expanded to spaces
move /y temp\temp2.txt temp\temp.txt>nul
set /a wads2count=%wads2count%+1
echo.
support\sfk echo [%redtext%]%wads2count% of %wad2count%: "%CurrentWAD%"
echo.
If /i "%SendWADs%" EQU "I" goto:not2big
::check if over 8MB, check fails with some special characters so set to 1 if nul
set GetFileSize=
echo set "GetFileSize=%%~z1" > %temp%\GetFileSize.bat
call %temp%\GetFileSize "%CurrentWAD%"
if "%GetFileSize%"=="" set GetFileSize=1
if %GetFileSize% LEQ 8388576 goto:not2big
support\sfk echo [%yellowtext%]WAD is too large to send over the internet, skipping...
goto:%EOF%
:not2big
set "WadInput=%CurrentWAD%"
If /i "%SendWADs%" EQU "I" (set AutoDetectDF=Y) & (set AutoDetectNL=Y)
call "Support\subscripts\CollectWadInfo.bat"
If /i "%wadtype%" EQU "Invalid" goto:%EOF%
::Detect NandLoader if %AutoDetectNL% setting is enabled, WADcontents is not GTR than 3 (so channels like Region Select & bomberman aren't attempted), and wadtype is channel or hidden
if "%AutoDetectNL%"=="" goto:AutoDetectNLpickup2
if %WadContents% LEQ 1 goto:AutoDetectNLpickup2
if %WadContents% GTR 3 goto:AutoDetectNLpickup2
If /i "%wadtype%" EQU "channel" goto:AutoDetectNL2
If /i "%wadtype%" NEQ "hidden" goto:AutoDetectNLpickup2
:AutoDetectNL2
set WadNandLoader=D
set DetectNLpickup=AutoDetectNLpickup2
::Careful editing cmdinput!
set "cmdinput=%CurrentWAD%"
goto:NLcount
:AutoDetectNLpickup2
::set "WADinfo=%CurrentWAD%"
::if exist "%WADcopy%" set "WADinfo=%WADcopy%"
call "Support\subscripts\DisplayWadInfo.bat"
If /i "%SendWADs%" NEQ "I" goto:skip2
::Extra WiiPy Info
If /i "%WiiPyinfo%" NEQ "Y" goto:skip
echo.
support\sfk echo [%cyantext%]WiiPy Info:
type temp\WADinfo.txt
::%WiiPy% info "%CurrentWAD%"
:skip
::Extra NandLoader Info
If /i "%ODBinfo%" NEQ "Y" goto:skip2
if "%WadNL%"=="" goto:skip2
If /i "%WadNL%" EQU "Unable to detect" goto:skip2
echo.
If /i "%NANDloadLoc%" EQU "%MainBinLoc%" support\sfk echo [%cyantext%]NandLoader and Main Dol ODB Info:
If /i "%NANDloadLoc%" NEQ "%MainBinLoc%" support\sfk echo [%cyantext%]NandLoader ODB Info:
temp\OpenDolBoot.exe -i "temp\__channel\%NANDloadLoc%"
If /i "%NANDloadLoc%" EQU "%MainBinLoc%" goto:skip2
echo.
support\sfk echo [%cyantext%]Main Dol ODB Info:
temp\OpenDolBoot.exe -i "temp\__channel\%MainBinLoc%"
:skip2
If /i "%SendWADs%" EQU "I" goto:%EOF%
echo.
:confirmsend
if %wads2count% GEQ 2 (echo Wait until you are back in the homebrew channel before sending the next WAD) & (echo.)
:confirmsend2
set confirmsend="
set /p confirmsend= Send WAD to Wii now? (Y/N):
set "confirmsend=%confirmsend:"=%"
if /i "%confirmsend%" EQU "N" goto:%EOF%
if /i "%confirmsend%" EQU "Y" goto:skip
echo You Have Entered an Incorrect Key
echo.
goto:confirmsend2
:skip
::send wad and loop!
::check if back in the HBC
ping -n 1 "%WiiIP%"|findstr /I /C:"ms">nul
IF ERRORLEVEL 1 (support\sfk echo [%yellowtext%]Unable to reach IP %SendWADs%, wait until you're back in the Homebrew Channel...) & (goto:confirmsend)
echo.
echo To cancel in the middle of sending a WAD, type Ctrl+C, then N, then Enter
support\sfk -spat echo "Sending command: [%cyantext%]sharpii.exe SendWad -ip "%WiiIP%" -wad \x22"%CurrentWAD:&=^&%"\x22 -ahb"
temp\Sharpii.exe SendWad -ip %WiiIP% -wad "%CurrentWAD%" -ahb
goto:%EOF%
:skipwads2count
::setlocal DISABLEDELAYEDEXPANSION
if /i "%AudioOption%" EQU "on" start support\nircmd.exe mediaplay 3000 "%Success.mp3%"
echo.
support\sfk.exe echo [%greentext%]Finished Sending WADs from folder:
support\sfk.exe echo [%bluetext%]"%wadpath%"
echo.
echo Press any key to exit
pause>nul
exit
:BulkWADUnpacker
cls
support\sfk echo [%redtext%]ModMii v%currentversion% Bulk WAD Unpacker
::echo wad2folder: "%wad2folder%"
::echo wadpath: "%wadpath%"
::echo wadpathback: "%wadpathback%"
set wads2error=0
set wads2count=0
::Loop through the following once for EACH line in *.txt, alt method without FOR command to support & ^ and ! without using setlocal ENABLEDELAYEDEXPANSION
:wads2count
set EOF=wads2count
::use goto:above (or goto:%EOF%) instead of goto:EOF
set CurrentWAD=
::check if file is empty, if empty it means list completed and goto:continue
>nul findstr "^" "temp\temp.txt" || goto:skipwads2count
::set variable equal to top line
set /p CurrentWAD= <temp\temp.txt
::Remove top line from list
more +1 "temp\temp.txt" > "temp\temp2.txt"
::"more" limits lines to about 65535 bytes/characters and the file to about 65535 lines. Also TABs become expanded to spaces
move /y temp\temp2.txt temp\temp.txt>nul
set /a wads2count=%wads2count%+1
echo.
echo Unpacking %wads2count% of %wad2count%: "%CurrentWAD%"
::if not exist "%CurrentWAD:~0,-4%" mkdir "%CurrentWAD:~0,-4%"
set errorlevel=
%WiiPy% wad unpack --skip-hash "%CurrentWAD%" "%CurrentWAD:~0,-4%">nul
if /i "%errorlevel%" NEQ "0" goto:UnpackFail2
::success
if exist "%CurrentWAD:~0,-4%\*.tmd" (echo WAD Unpacked) & (goto:%EOF%)
::fail
:UnpackFail2
support\sfk.exe echo [%redtext%]Error Unpacking "%CurrentWAD%"
echo %DATE%-%TIME:~0,-6% - Error Unpacking "%CurrentWAD%">>"%wadpath%\WadUnpackerError.log"
set /a wads2error=%wads2error%+1
::empty folder check, if not empty goto:%EOF%, if empty delete it
dir /A /B "%CurrentWAD:~0,-4%" | findstr /R ".">NUL && goto:%EOF%
rd /s /q "%CurrentWAD:~0,-4%"> nul
goto:%EOF%
:skipwads2count
if /i "%AudioOption%" NEQ "on" goto:nosound
if /i "%wads2error%" EQU "0" (start support\nircmd.exe mediaplay 3000 "%Success.mp3%") else (start support\nircmd.exe mediaplay 3000 "%Fail.mp3%")
:nosound
echo.
echo Finished processing WADs saved here:
support\sfk.exe echo [%bluetext%]"%wadpath%"
echo.
if /i "%wads2error%" NEQ "0" goto:fail
support\sfk.exe echo [%greentext%]%wad2count% WADs unpacked successfully!
echo.
support\sfk.exe echo [%bluetext%]To Open output folder and exit enter O
echo.
support\sfk.exe echo [%cyantext%]To copy this information press Ctrl+A then Ctrl+C
echo (To exit you can close this window or press enter)
echo.
set promptO="
set /p promptO=Enter Selection Here:
set "promptO=%promptO:"=%"
If /i "%promptO%" NEQ "O" exit
if exist "%wadpath%" explorer "%wadpath%"
exit
:fail
support\sfk.exe echo [%redtext%]%wads2error% of %wad2count% WADs failed to unpack, see above for more information.
echo %wads2error% error(s) logged to: "%wadpath%\WadUnpackerError.log"
echo.
support\sfk.exe echo [%bluetext%]To Open output folder and exit enter O
echo.
support\sfk.exe echo [%cyantext%]To copy this information press Ctrl+A then Ctrl+C
echo (To exit you can close this window or press enter)
echo.
set promptO="
set /p promptO=Enter Selection Here:
set "promptO=%promptO:"=%"
If /i "%promptO%" NEQ "O" exit
if exist "%wadpath%" explorer "%wadpath%"
exit
:notwadfolder
::---------------------------------------
goto:notmymfolder
:mymfolder
::cls
set "Folder=%wadfile%"
set "FullPath=%wadpath%"
set "FullPathback=%wadpathback%"
support\sfk.exe echo [%bluetext%]Building %mym2csm% csms from myms saved here: "%FullPath%"
::echo Folder: "%Folder%"
::echo FullPath: "%FullPath%"
::echo FullPathback: "%FullPathback%"
dir /s /b /a-d "%FullPath%\*.mym">temp\temp.txt
::copy /y temp\temp.txt temp\Folder.txt>nul
::set "TotalFiles=%filecount%"
::line count
set /a TotalFiles=0
for /f %%a in (temp\temp.txt) do set /a TotalFiles+=1
set /a counter=0
set /a Files2error=0
::Loop through the following once for EACH line in *.txt, alt method without FOR command to support & ^ and ! without using setlocal ENABLEDELAYEDEXPANSION
:mymfolderprocess
set EOF=mymfolderprocess
::use goto:above (or goto:%EOF%) instead of goto:EOF
set CurrentFile=
::check if file is empty, if empty it means list completed and goto:continue
>nul findstr "^" "temp\temp.txt" || goto:skipcounter
::set variable equal to top line
set /p CurrentFile= <temp\temp.txt
::Remove top line from list
more +1 "temp\temp.txt" > "temp\temp2.txt"
::"more" limits lines to about 65535 bytes/characters and the file to about 65535 lines. Also TABs become expanded to spaces
move /y temp\temp2.txt temp\temp.txt>nul
set /a counter=%counter%+1
echo set "filenameX=%%CurrentFile:%FullPath%\=%%">temp\temp.bat
call temp\temp.bat
::echo filenameX: "%filenameX%"
::if not exist "%FullPath%\csm" mkdir "%FullPath%\csm"
::set "outputcsm=%FullPath%\csm\%filenameX:~0,-4%-%mym2csm%.csm"
set "outputcsm=%CurrentFile:~0,-4%-%mym2csm%.csm"
echo.
support\sfk.exe echo [%cyantext%]Theming %counter% of %TotalFiles%: "%filenameX:~0,-4%-%mym2csm%.csm"
::echo cmdinput: "%cmdinput%"
::echo dlname: "%dlname%"
::echo mym2csm: %mym2csm%
::echo name: %name%
::echo wadname: %wadname%
::echo code1: %code1%
::echo code1: %version%
::echo md5: %md5%
cd /d temp\themewii
themewii.exe "%CurrentFile%" "..\%wadname%" "%outputcsm%"
cd ..\..
echo.
::%WiiPy% theme mym "%CurrentFile%" "temp\%wadname%" "%outputcsm%"
::if /i "%errorlevel%" NEQ "0" if exist "%outputcsm%" del "%outputcsm%">nul
::success
if exist "%outputcsm%" (support\sfk.exe echo [%greentext%]CSM Created) & (goto:%EOF%)
::fail
support\sfk.exe echo [%redtext%]Error Creating CSM
echo %DATE%-%TIME:~0,-6% - Error Creating CSM "%outputcsm%">>"%FullPath%\ModMii.log"
set /a Files2error=%Files2error%+1
goto:%EOF%
:skipcounter
::setlocal DISABLEDELAYEDEXPANSION
::call support\subscripts\TMCL_Portable_Fix_Reversal.bat
::empty folder check, if not empty goto:%EOF%, if empty delete it
::dir /A /B "%FullPath%\csm" | findstr /R ".">NUL
::IF ERRORLEVEL 1 rd /s /q "%FullPath%\csm"> nul
if /i "%AudioOption%" NEQ "on" goto:nosound
if /i "%Files2error%" EQU "0" (start support\nircmd.exe mediaplay 3000 "%Success.mp3%") else (start support\nircmd.exe mediaplay 3000 "%Fail.mp3%")
:nosound
echo.
echo Finished building csms from myms saved here:
support\sfk.exe echo [%bluetext%]"%FullPath%"
echo.
if /i "%Files2error%" NEQ "0" goto:fail
support\sfk.exe echo [%greentext%]%TotalFiles% CSMs were created successfully!
echo.
support\sfk.exe echo [%bluetext%]To Open output folder and exit enter O
echo.
support\sfk.exe echo [%cyantext%]To copy this information press Ctrl+A then Ctrl+C
echo (To exit you can close this window or press enter)
echo.
set promptO="
set /p promptO=Enter Selection Here:
set "promptO=%promptO:"=%"
If /i "%promptO%" NEQ "O" exit
if exist "%FullPath%" explorer "%FullPath%"
exit
:fail
support\sfk.exe echo [%redtext%]Failed to construct %Files2error% of %TotalFiles% CSMs, see above for more information.
echo %Files2error% error(s) logged to: "%FullPath%\ModMii.log"
echo.
support\sfk.exe echo [%bluetext%]To Open output folder and exit enter O
echo.
support\sfk.exe echo [%cyantext%]To copy this information press Ctrl+A then Ctrl+C
echo (To exit you can close this window or press enter)
echo.
echo.
set promptO="
set /p promptO=Enter Selection Here:
set "promptO=%promptO:"=%"
If /i "%promptO%" NEQ "O" exit
if exist "%FullPath%" explorer "%FullPath%"
exit
:notmymfolder
::---------------------------------------
goto:notcsmfolder
:csmfolder
::cls
set "Folder=%wadfile%"
set "FullPath=%wadpath%"
set "FullPathback=%wadpathback%"
echo.
support\sfk.exe echo [%bluetext%]Updating csms saved here: "%FullPath%"
::echo Folder: "%Folder%"
::echo FullPath: "%FullPath%"
::echo FullPathback: "%FullPathback%"
::echo multimym: "%multimym%"
::echo cmdinput: "%cmdinput%"
::echo mym2csm: %mym2csm%
dir /s /b /a-d "%FullPath%\*.csm">temp\temp.txt
::copy /y temp\temp.txt temp\Folder.txt>nul
::set "TotalFiles=%filecount%"
::line count
set /a TotalFiles=0
for /f %%a in (temp\temp.txt) do set /a TotalFiles+=1
set /a counter=0
set /a Files2error=0
::Loop through the following once for EACH line in *.txt, alt method without FOR command to support & ^ and ! without using setlocal ENABLEDELAYEDEXPANSION
:csmfolderprocess
set EOF=csmfolderprocess
::use goto:above (or goto:%EOF%) instead of goto:EOF
set CurrentFile=
::check if file is empty, if empty it means list completed and goto:continue
>nul findstr "^" "temp\temp.txt" || goto:skipcounter
::set variable equal to top line
set /p CurrentFile= <temp\temp.txt
::Remove top line from list
more +1 "temp\temp.txt" > "temp\temp2.txt"
::"more" limits lines to about 65535 bytes/characters and the file to about 65535 lines. Also TABs become expanded to spaces
move /y temp\temp2.txt temp\temp.txt>nul
set /a counter=%counter%+1
echo set "filenameX=%%CurrentFile:%FullPath%\=%%">temp\temp.bat
call temp\temp.bat
::echo filenameX: "%filenameX%"
set "outputcsm=%FullPath%\%filenameX%"
echo.
support\sfk.exe echo [%cyantext%]Theming %counter% of %TotalFiles%: "%filenameX%"
move /y "%outputcsm%" "%FullPath%\%filenameX:~0,-4%_original.csm">nul
cd /d temp\themewii
themewii.exe "%multimym%" "%FullPath%\%filenameX:~0,-4%_original.csm" "%outputcsm%"
cd ..\..
echo.
::%WiiPy% theme mym "%multimym%" "%FullPath%\%filenameX:~0,-4%_original.csm" "%outputcsm%"
::if /i "%errorlevel%" NEQ "0" if exist "%outputcsm%" del "%outputcsm%">nul
::success
if exist "%outputcsm%" (support\sfk.exe echo [%greentext%]CSM Created) & (goto:%EOF%)
::fail
support\sfk.exe echo [%redtext%]Error Creating CSM
echo %DATE%-%TIME:~0,-6% - Error Creating CSM "%outputcsm%">>"%FullPath%\ModMii.log"
set /a Files2error=%Files2error%+1
goto:%EOF%
:skipcounter
::setlocal DISABLEDELAYEDEXPANSION
::call support\subscripts\TMCL_Portable_Fix_Reversal.bat
::empty folder check, if not empty goto:EOF, if empty delete it
::dir /A /B "%FullPath%\csm" | findstr /R ".">NUL
::IF ERRORLEVEL 1 rd /s /q "%FullPath%\csm"> nul
if /i "%AudioOption%" NEQ "on" goto:nosound
if /i "%Files2error%" EQU "0" (start support\nircmd.exe mediaplay 3000 "%Success.mp3%") else (start support\nircmd.exe mediaplay 3000 "%Fail.mp3%")
:nosound
echo.
echo Finished building csms from myms saved here:
support\sfk.exe echo [%bluetext%]"%FullPath%"
echo.
if /i "%Files2error%" NEQ "0" goto:fail
support\sfk.exe echo [%greentext%]%TotalFiles% CSMs were updated successfully!
echo.
support\sfk.exe echo [%bluetext%]To Open output folder and exit enter O
echo.
support\sfk.exe echo [%cyantext%]To copy this information press Ctrl+A then Ctrl+C
echo (To exit you can close this window or press enter)
echo.
set promptO="
set /p promptO=Enter Selection Here:
set "promptO=%promptO:"=%"
If /i "%promptO%" NEQ "O" exit
if exist "%FullPath%" explorer "%FullPath%"
exit
:fail
support\sfk.exe echo [%redtext%]Failed to updated %Files2error% of %TotalFiles% CSMs, see above for more information.
echo %Files2error% error(s) logged to: "%FullPath%\ModMii.log"
echo.
support\sfk.exe echo [%bluetext%]To Open output folder and exit enter O
echo.
support\sfk.exe echo [%cyantext%]To copy this information press Ctrl+A then Ctrl+C
echo (To exit you can close this window or press enter)
echo.
set promptO="
set /p promptO=Enter Selection Here:
set "promptO=%promptO:"=%"
If /i "%promptO%" NEQ "O" exit
if exist "%FullPath%" explorer "%FullPath%"
exit
:notcsmfolder
::------------------GAME IMAGE---------------------
goto:notgameimage
:gameimage
if exist "%cmdinput%\" goto:imagefolder
echo "%cmdinput%">temp\GameImages.txt
support\sfk -spat filter temp\GameImages.txt -rep _\x22__ -write -yes>nul
goto:gameimage1
:imagefolder
::check for file types, also in subdirectories
2>nul dir /s /b /a-d "%cmdinput%\*.wbfs" "%cmdinput%\*.iso" "%cmdinput%\*.ciso">temp\GameImages.txt
sort temp\GameImages.txt /o temp\GameImages.txt
::support\sfk -spat filter temp\GameImages.txt -le!"nkit.iso" -write -yes>nul
:gameimage1
::count # of lines
SET Imagetotal=0
for /f %%a in (temp\GameImages.txt) do set /a Imagetotal+=1
::list files (numbered)
FINDSTR /N . temp\GameImages.txt>temp\GameImages2.txt
type temp\GameImages2.txt
:gameimage2
cls
set imageAction="
title ModMii Game Image tools
support\sfk echo [%redtext%]ModMii v%currentversion% Game Image tools
echo.
if exist "%cmdinput%\" support\sfk echo [%cyantext%]What would you like to do with these Game Images?
if not exist "%cmdinput%\" support\sfk echo [%cyantext%]What would you like to do with this Game Image?
echo.
::list files (numbered)
::FINDSTR /N . temp\GameImages.txt>temp\GameImages2.txt
type temp\GameImages2.txt
echo.
support\sfk echo -spat [%cyantext%] \x20 D = Disable Deflicker
echo * Disables blur filter; recommended when using 480p display mode to improve video quality
echo.
support\sfk echo -spat [%cyantext%] \x20 R = Re-enable Deflicker
echo * Re-enable blur filter; recommended when using 480i display mode on a CRT TV
echo.
support\sfk echo -spat [%cyantext%] \x20 E = Extract game contents
echo * Extracted format required for OLDER versions of SNEEK
echo.
set /p imageAction=Enter Selection Here:
set "imageAction=%imageAction:"=%"
if /i "%imageAction%" NEQ "E" goto:skip
call Support\subscripts\dependency.bat wit
if /i "%dependency%" EQU "F" (@ping 127.0.0.1 -n 3 -w 1000> nul) & (goto:gameimage2)
::bulk extractor
SET MENU1=S
set cmdlinemodeswitchoff=Y
set SNEEKSELECT=4
set "DRIVETEMP=%cmdinput%"
cls
::set "ISOFOLDER=%cmdinput%"
::goto:hardcodedoptions
goto:go
::goto:doublecheckISOFOLDER
:skip
if /i "%imageAction%" EQU "D" goto:CopyOverwrite
if /i "%imageAction%" NEQ "R" goto:skip
:CopyOverwrite
echo.
support\sfk echo [%cyantext%]Would you like changes to be made to a COPY of the file? (Y/N)
echo * To edit the original file enter "N"; this requires less free space and patches Gamecube games faster
echo.
:CopyQ
set CopyQ="
set /p CopyQ=Enter Selection Here:
set "CopyQ=%CopyQ:"=%"
if /i "%CopyQ%" EQU "Y" goto:deflicker
if /i "%CopyQ%" EQU "N" goto:deflicker
echo You Have Entered an Incorrect Key
echo.
goto:CopyQ
:skip
echo You Have Entered an Incorrect Key
@ping 127.0.0.1 -n 2 -w 1000> nul
goto:gameimage2
:deflicker
cls
support\sfk echo [%redtext%]ModMii v%currentversion% Game Image tools
echo.
if /i "%imageAction%" EQU "D" support\sfk echo [%cyantext%]Disabling Deflicker...
if /i "%imageAction%" EQU "R" support\sfk echo [%cyantext%]Re-enabling Deflicker...
if /i "%CopyQ%" EQU "Y" support\sfk echo Changes will be saved to a [%cyantext%]COPY[def] of the file
if /i "%CopyQ%" EQU "N" support\sfk echo Changes will [%cyantext%]OVERWRITE[def] the original file
::if destination drive is FAT32, force split WBFS later
set ForceSplit=
::DISABLED: if ISOs and CISOs are already on the drive then presumably size constraints not an issue
goto:disabled
echo powershell "Invoke-Command {Get-CimInstance -ClassName Win32_LogicalDisk | Where-Object {$PSItem.FileSystem -ne $null} | Select-Object DeviceID,Filesystem}" ^>format2.txt>"%temp%\Get-Disk.bat"
echo exit>>"%temp%\Get-Disk.bat"
::vbs to run script invisibly, "nircmd.exe exec hide" can run hidden but not hide+wait
echo Set ws = WScript.CreateObject("WScript.Shell")>"%temp%\Get-Disk.vbs"
echo cmd = "%temp%\Get-Disk.bat">>"%temp%\Get-Disk.vbs"
echo ret = ws.Run(cmd, 0, True)>>"%temp%\Get-Disk.vbs"
echo Set ws = Nothing>>"%temp%\Get-Disk.vbs"
if exist "%temp%\format2.txt" del "%temp%\format2.txt">nul
set "ModMiiDir=%cd%"
cd /d "%temp%"
@ping 127.0.0.1 -n 1 -w 1000> nul
start /wait Get-Disk.vbs
cd /d "%ModMiiDir%"
::if not exist "%temp%\format2.txt" echo goto:SkipUSBSpoiler
support\sfk filter -quiet "%temp%\format2.txt" -and+FAT32 -rep _:*__ -write -yes
findStr /I /C:"%cmdinput:~0,1%" "%temp%\format2.txt" >nul
IF ERRORLEVEL 1 (set ForceSplit=) else (set "ForceSplit= --split")
:disabled
set /a image2count=0
set /a ImagesSkipped=0
set /a ImagesPatched=0
set /a ImagesBroken=0
set /a PatchedAlready=0
set /a PartiallyPatched=0
call Support\subscripts\dependency.bat wit
if /i "%dependency%" EQU "F" (@ping 127.0.0.1 -n 3 -w 1000> nul) & (goto:gameimage2)
::Loop through the following once for EACH line in *.txt, alt method without FOR command to support & ^ and ! without using setlocal ENABLEDELAYEDEXPANSION
:image2count2
set EOF=image2count2
::use goto:above (or goto:%EOF%) instead of goto:EOF
set CurrentImage=
::check if file is empty, if empty it means list completed and goto:continue
>nul findstr "^" "temp\GameImages.txt" || goto:skipimage2count2
::set variable equal to top line
set /p CurrentImage= <temp\GameImages.txt
::Remove top line from list
more +1 "temp\GameImages.txt" > "temp\temp2.txt"
::"more" limits lines to about 65535 bytes/characters and the file to about 65535 lines. Also TABs become expanded to spaces
move /y temp\temp2.txt temp\GameImages.txt>nul
set /a image2count=%image2count%+1
set /a DolsPatched=0
set /a DolsAlreadyPatched=0
::the below may change if a copy is being made
set "CurrentImageAdj=%CurrentImage%"
echo.
support\sfk echo [%cyantext%]%image2count% of %Imagetotal%: "%CurrentImage%"
::wit.exe dump command to determine if Wii or GC game
if exist temp\temp.txt del temp\temp.txt>nul
if exist temp\witdump.txt del temp\witdump.txt>nul
%wit% d "%CurrentImage%">temp\witdump.txt
support\sfk filter "temp\witdump.txt" -+"disc type" >"temp\temp.txt"
::delete if file is empty (if empty)
>nul findstr "^" "temp\temp.txt" || del "temp\temp.txt"
if not exist temp\temp.txt goto:NotGame
::get type
set gametype=
findStr /I /E /C:"Gamecube" temp\temp.txt >nul
IF not ERRORLEVEL 1 set gametype=GC
findStr /I /E /C:"Wii" temp\temp.txt >nul
IF not ERRORLEVEL 1 set gametype=Wii
::echo gametype:%gametype%:
if not "%gametype%"=="" goto:continue
::SKIP, not a game!
:NotGame
support\sfk -spat echo [%yellowtext%]This does not appear to be a Wii or GC game, skipping...
set /a ImagesSkipped=%ImagesSkipped%+1
goto:%EOF%
:continue
::get imagefile and imagepath names, i.e. get filename and get folder full path not including filename
set "imagefile=%CurrentImage:*\=%"
set "imagepath=%CurrentImage%"
:stripimagefile
set "imagefile=%imagefile:*\=%"
echo "%imagefile%">temp\temp.txt
findStr \\ temp\temp.txt>nul
IF NOT ERRORLEVEL 1 goto:stripimagefile
echo set "imagepath=%%imagepath:%imagefile%=%%">temp\temp.bat
call temp\temp.bat
set "imagepath=%CurrentImage%"
echo set "imagepathback=%%imagepath:\%imagefile%=%%">temp\temp.bat
call temp\temp.bat
::echo imagefile: "%imagefile%"
::echo imagepath: "%imagepath%"
::echo imagepathback: "%imagepathback%"
if /i "%gametype%" NEQ "GC" goto:skipGC
::save a copy if applicable
if /i "%CopyQ%" EQU "N" goto:NoCopy
::check if enough free space check
set MegaBytesRequired=1
%wit% list-l --recurse "%CurrentImage%">temp\gametotal.bat
::%wit% list-l --unit GB --recurse "%CurrentImage%">temp\gametotal.bat
::---get required MB-------
support\sfk filter temp\gametotal.bat -ls+Total -rep _*", "_"set MegaBytesRequired="_ -rep _" MiB*"__ -write -yes>nul
if exist temp\gametotal.bat call temp\gametotal.bat
if exist temp\gametotal.bat del temp\gametotal.bat>nul
::add a bit of buffer just in case
set /a MegaBytesRequired=%MegaBytesRequired%+20
::echo Game size (MegaBytesRequired) is %MegaBytesRequired% MB
::---check for free space---
if /i "%CurrentImage:~1,1%" EQU ":" (set BackupDrive=%CurrentImage:~0,2%) else (set set BackupDrive=%cd:~0,2%)
set freespaceMB=99999999999999
if exist temp\freespaceMB.txt del temp\freespaceMB.txt>nul
support\sfk space "%BackupDrive%">temp\freespaceMB.txt
support\sfk filter "temp\freespaceMB.txt" -rep _"*freemb="__ -write -yes>nul
set /p freespaceMB= <temp\freespaceMB.txt
if exist temp\freespaceMB.txt del temp\freespaceMB.txt>nul
::echo freespaceMB needed on "%BackupDrive%" is %freespaceMB% MB
if %MegaBytesRequired% GEQ %freespaceMB% goto:NoSpace
::echo MegaBytesRequired is %MegaBytesRequired% MB
::echo Total Free Space is approximately %freespaceMB% MB
if /i "%imageAction%" EQU "D" set "imagepathbackAdj=%imagepathback%_DeflickerOff"
if /i "%imageAction%" EQU "R" set "imagepathbackAdj=%imagepathback%_DeflickerOn"
set "CurrentImageAdj=%imagepathbackAdj%\%imagefile%"
if not exist "%imagepathbackAdj%" mkdir "%imagepathbackAdj%"
echo Copying...
::sfk copy only if newer, -mirror arg will overwrite even if older
support\sfk copy "%CurrentImage%" "%CurrentImageAdj%" -mirror -yes
echo Saved to "%CurrentImageAdj%"
:NoCopy
::Disabling GXSetCopyFilter for GameCube games https://gbatemp.net/threads/possible-to-disable-the-wiis-de-flicker-filter.477163/post-9492091
echo Patching...
::Version 1 (for games compiled with gx.a); e.g. Resident Evil - Code Veronica X
::Replace
set str1=91238000988380009143800041820068
::with
set str2=91238000988380009143800048000068
::check if already patched (easier to do first) binary search \ hex search (see CollectWadInfo.bat for e.g. of searching multiple files)
if /i "%imageAction%" EQU "D" support\sfk hexfind "%CurrentImageAdj%" -binary /%str2%/ >nul
if /i "%imageAction%" EQU "R" support\sfk hexfind "%CurrentImageAdj%" -binary /%str1%/ >nul
::ERRORLEVEL 1 means found, 0 means not found
IF ERRORLEVEL 1 goto:PatchedAlready
::-firsthit arg used so it will only replace the first hit, have it on good authority that there will never be more than 1 so this speeds things up a bit
if /i "%imageAction%" EQU "D" support\sfk replace "%CurrentImageAdj%" -binary /%str1%/%str2%/ -firsthit -yes>"temp\patches.txt"
if /i "%imageAction%" EQU "R" support\sfk replace "%CurrentImageAdj%" -binary /%str2%/%str1%/ -firsthit -yes>"temp\patches.txt"
::ERRORLEVEL 1 means replacement successful
IF not ERRORLEVEL 1 goto:nextversion
::confirm 1 change made in 1 file by finding this output "[001/1/0] "
findStr /I /C:"[001/1/0] " "temp\patches.txt" >nul
::ERRORLEVEL 1 means not found
IF not ERRORLEVEL 1 goto:PatchSuccess
::if here it means multiple patches applied
goto:PatchError
:nextversion
::Version 2 (for games compiled with Dolphin.a); e.g. "Spider-Man 2 [GK2P52]"
::Replace
set str1=91048000994480009124800041820040
::with
set str2=91048000994480009124800048000040
::check if already patched (easier to do first) binary search \ hex search (see CollectWadInfo.bat for e.g. of searching multiple files)
if /i "%imageAction%" EQU "D" support\sfk hexfind "%CurrentImageAdj%" -binary /%str2%/ >nul
if /i "%imageAction%" EQU "R" support\sfk hexfind "%CurrentImageAdj%" -binary /%str1%/ >nul
::ERRORLEVEL 1 means found, 0 means not found
IF ERRORLEVEL 1 goto:PatchedAlready
::-firsthit arg used so it will only replace the first hit, have it on good authority that there will never be more than 1 so this speeds things up a bit
if /i "%imageAction%" EQU "D" support\sfk replace "%CurrentImageAdj%" -binary /%str1%/%str2%/ -firsthit -yes>"temp\patches.txt"
if /i "%imageAction%" EQU "R" support\sfk replace "%CurrentImageAdj%" -binary /%str2%/%str1%/ -firsthit -yes>"temp\patches.txt"
::ERRORLEVEL 1 means replacement successful
IF not ERRORLEVEL 1 goto:nextversion
::confirm 1 change made in 1 file by finding this output "[001/1/0] "
findStr /I /C:"[001/1/0] " "temp\patches.txt" >nul
::ERRORLEVEL 1 means not found
IF not ERRORLEVEL 1 goto:PatchSuccess
::if here it means multiple patches applied
goto:PatchError
:nextversion
::Version 3 (for games compiled with SN Systems ProDG SDK)
::Replace
set str1=912B8000980B8000910B80004182005C
::with
set str2=912B8000980B8000910B80004800005C
::check if already patched (easier to do first) binary search \ hex search (see CollectWadInfo.bat for e.g. of searching multiple files)
if /i "%imageAction%" EQU "D" support\sfk hexfind "%CurrentImageAdj%" -binary /%str2%/ >nul
if /i "%imageAction%" EQU "R" support\sfk hexfind "%CurrentImageAdj%" -binary /%str1%/ >nul
::ERRORLEVEL 1 means found, 0 means not found
IF ERRORLEVEL 1 goto:PatchedAlready
::-firsthit arg used so it will only replace the first hit, have it on good authority that there will never be more than 1 so this speeds things up a bit
if /i "%imageAction%" EQU "D" support\sfk replace "%CurrentImageAdj%" -binary /%str1%/%str2%/ -firsthit -yes>"temp\patches.txt"
if /i "%imageAction%" EQU "R" support\sfk replace "%CurrentImageAdj%" -binary /%str2%/%str1%/ -firsthit -yes>"temp\patches.txt"
::ERRORLEVEL 1 means replacement successful
IF not ERRORLEVEL 1 goto:nextversion
::confirm 1 change made in 1 file by finding this output "[001/1/0] "
findStr /I /C:"[001/1/0] " "temp\patches.txt" >nul
::ERRORLEVEL 1 means not found
IF not ERRORLEVEL 1 goto:PatchSuccess
::if here it means multiple patches applied
goto:PatchError
:nextversion
::DISABLED: Version 4 (for games compiled with gxD.a); e.g. "Sega Soccer Slam"; only 1 example?
::disabled as string gets replaced 3 times and almost no games use it. Can maybe be done with enough research, would need to convert ciso to iso and extract start.dol using gcr.exe (www.romhacking.net/utilities/619) then patch following the process from below link, repack, and analyze changes to ciso\iso to determine how to automate without unpacking
::https://gbatemp.net/threads/possible-to-disable-the-wiis-de-flicker-filter.477163/page-28#post-9623347
goto:NoPatch
::Replace
set str1=7C0802A6900100049421FFC0BF61002C986100087C9E237898A100103B660000
::with
set str2=4E800020900100049421FFC0BF61002C986100087C9E237898A100103B660000
::check if already patched (easier to do first) binary search \ hex search (see CollectWadInfo.bat for e.g. of searching multiple files)
if /i "%imageAction%" EQU "D" support\sfk hexfind "%CurrentImageAdj%" -binary /%str2%/ >nul
if /i "%imageAction%" EQU "R" support\sfk hexfind "%CurrentImageAdj%" -binary /%str1%/ >nul
::ERRORLEVEL 1 means found, 0 means not found
IF ERRORLEVEL 1 goto:PatchedAlready
::-firsthit not included in the below as there may be more than one hit if something goes wrong
if /i "%imageAction%" EQU "D" support\sfk replace "%CurrentImageAdj%" -binary /%str1%/%str2%/ -yes>"temp\patches.txt"
if /i "%imageAction%" EQU "R" support\sfk replace "%CurrentImageAdj%" -binary /%str2%/%str1%/ -yes>"temp\patches.txt"
::ERRORLEVEL 1 means replacement successful
IF not ERRORLEVEL 1 goto:NoPatch
::confirm 1 change made in 1 file by finding this output "[001/1/0] "
findStr /I /C:"[001/1/0] " "temp\patches.txt" >nul
::ERRORLEVEL 1 means not found
IF not ERRORLEVEL 1 goto:PatchSuccess
::if here it means multiple patches applied
goto:PatchError
::shouldn't make it here
goto:%EOF%
:skipGC
if /i "%gametype%" NEQ "Wii" goto:skipWiiGame
::echo imagefile: "%imagefile%"
::echo imagepath: "%imagepath%"
::echo imagepathback: "%imagepathback%"
::save a copy if applicable
if /i "%CopyQ%" EQU "N" goto:NoCopy
if /i "%imageAction%" EQU "D" set "imagepathbackAdj=%imagepathback%_DeflickerOff"
if /i "%imageAction%" EQU "R" set "imagepathbackAdj=%imagepathback%_DeflickerOn"
set "CurrentImageAdj=%imagepathbackAdj%\%imagefile%"
::echo imagepathbackAdj: "%imagepathbackAdj%"
::echo CurrentImageAdj: "%CurrentImageAdj%"
:NoCopy
echo Extracting game contents...
::check if enough free space check
set MegaBytesRequired=1
%wit% list-l --recurse "%CurrentImage%">temp\gametotal.bat
::%wit% list-l --unit GB --recurse "%CurrentImage%">temp\gametotal.bat
::---get required MB-------
support\sfk filter temp\gametotal.bat -ls+Total -rep _*", "_"set MegaBytesRequired="_ -rep _" MiB*"__ -write -yes>nul
if exist temp\gametotal.bat call temp\gametotal.bat
if exist temp\gametotal.bat del temp\gametotal.bat>nul
::add a bit of buffer just in case
set /a MegaBytesRequired=%MegaBytesRequired%+20
::echo Game size (MegaBytesRequired) is %MegaBytesRequired% MB
::Will need double space if copying ONLY IF file saved to same drive as modmii\temp\witdump
if /i "%CopyQ%" EQU "N" goto:NoCopy
set BackupDrive=
if /i "%CurrentImage:~1,1%" EQU ":" (set BackupDrive=%CurrentImage:~0,2%) else (set set BackupDrive=%cd:~0,2%)
if /i "%BackupDrive%" NEQ "%cd:~0,2%" goto:NoCopy
support\sfk calc %MegaBytesRequired%*2>temp\MBrequired.txt
support\sfk filter temp\MBrequired.txt -rep _".*"__ -write -yes>nul
set /p MegaBytesRequired= <temp\MBrequired.txt
if exist temp\MBrequired.txt del temp\MBrequired.txt>nul
:NoCopy
::---check for free space---
set freespaceMB=99999999999999
if exist temp\freespaceMB.txt del temp\freespaceMB.txt>nul
support\sfk space "%cd:~0,2%">temp\freespaceMB.txt
support\sfk filter "temp\freespaceMB.txt" -rep _"*freemb="__ -write -yes>nul
set /p freespaceMB= <temp\freespaceMB.txt
if exist temp\freespaceMB.txt del temp\freespaceMB.txt>nul
::echo freespaceMB needed on "%cd:~0,2%" is %freespaceMB% MB
if %MegaBytesRequired% GEQ %freespaceMB% goto:NoSpace
::---check for free space x2---
if /i "%BackupDrive%" EQU "%cd:~0,2%" goto:skip
set freespaceMB=99999999999999
if exist temp\freespaceMB.txt del temp\freespaceMB.txt>nul
support\sfk space "%BackupDrive%">temp\freespaceMB.txt
support\sfk filter "temp\freespaceMB.txt" -rep _"*freemb="__ -write -yes>nul
set /p freespaceMB= <temp\freespaceMB.txt
if exist temp\freespaceMB.txt del temp\freespaceMB.txt>nul
::echo freespaceMB needed on "%BackupDrive%" is %freespaceMB% MB
if %MegaBytesRequired% GEQ %freespaceMB% goto:NoSpace
:skip
::echo MegaBytesRequired is %MegaBytesRequired% MB
::echo Total Free Space is approximately %freespaceMB% MB
if exist "temp\witdump" rd /s /q "temp\witdump">nul
::"--neek" is an Abbreviation of "--psel data --pmode none --files :neek --copy-gc"; it works fine for Wii games but "--copy-gc" is not desirable for GC
%wit% x --neek "%CurrentImage%" --DEST "temp\witdump" --progress
::Errorlevel 0 means success
IF ERRORLEVEL 0 goto:continue
::ERROR: unable to unpack
if exist "temp\witdump" rd /s /q "temp\witdump">nul
support\sfk -spat echo [%yellowtext%]Error extracting game contents, skipping...
set /a ImagesSkipped=%ImagesSkipped%+1
::an empty cygdrive folder may be created previous directory, so delete it!
if exist cygdrive rd /s /q cygdrive
goto:%EOF%
:continue
::an empty cygdrive folder may be created previous directory, so delete it!
if exist cygdrive rd /s /q cygdrive
::get list of dols
if exist temp\GameDols.txt del temp\GameDols.txt>nul
::check for file types, also in subdirectories
2>nul dir /s /b /a-d "temp\witdump\*.dol">temp\GameDols.txt
set /a DolNum=0
:NextDol
set /a DolNum=%DolNum%+1
if exist "temp\ImageDol.txt" del "temp\ImageDol.txt">nul
support\sfk filter temp\GameDols.txt -line=%DolNum% -+"?">"temp\ImageDol.txt"
::delete if file is empty, if empty it means we're out of dols
>nul findstr "^" "temp\ImageDol.txt" || del "temp\ImageDol.txt"
if exist "temp\ImageDol.txt" goto:continue
::No (more) dols!
if /i "%DolNum%" NEQ "1" goto:DoneDolPatching
::ERROR: NO DOLS FOUND! Erase dump\copy and skip image
if exist "temp\witdump" rd /s /q "temp\witdump">nul
support\sfk -spat echo [%yellowtext%]Error! No dols found to patch, skipping...
set /a ImagesSkipped=%ImagesSkipped%+1
goto:%EOF%
:continue
echo.
::patch each dol
set /p ImageDol= <"temp\ImageDol.txt"
echo Patching dol %DolNum%: "%ImageDol%"
::patch dol
::Disabling GXSetCopyFilter for Wii games
::Replace
set str1=5439800000508BC00E99498000500CC00E906980009949800090E98000994980009109800041820040
::longer version of str1, only last 4 bytes change ::set str1=2C030000418200F8890400003800000089440001386000005100073E88E40006514026368904000C50E3073E38E000005107073E8944000D8964000739000000514726368944000289240012516326365140452E8944000E5128073E892400135147452E894400035128263689240014514064268944000F5128452E89240015514764268944000489640008512864265140831E89440010892400165163452E896400095147831E894400055128831E89240011516364268964000A5140A2168944000B5127A21688840017392000015163831E5143A2165088A2165120C00E3940000239200003388000045143C00E5127C00E5088C00E480000243D0001663C6002663CE003663C800466380866663863666638E76666390466663D20CC0139400061994980002C0500003880005339600000900980003800005439800000508BC00E99498000500CC00E906980009949800090E98000994980009109800041820040
::with
set str2=5439800000508BC00E99498000500CC00E906980009949800090E98000994980009109800048000040
::longer version of str2, only last 4 bytes change ::set str2=2C030000418200F8890400003800000089440001386000005100073E88E40006514026368904000C50E3073E38E000005107073E8944000D8964000739000000514726368944000289240012516326365140452E8944000E5128073E892400135147452E894400035128263689240014514064268944000F5128452E89240015514764268944000489640008512864265140831E89440010892400165163452E896400095147831E894400055128831E89240011516364268964000A5140A2168944000B5127A21688840017392000015163831E5143A2165088A2165120C00E3940000239200003388000045143C00E5127C00E5088C00E480000243D0001663C6002663CE003663C800466380866663863666638E76666390466663D20CC0139400061994980002C0500003880005339600000900980003800005439800000508BC00E99498000500CC00E906980009949800090E98000994980009109800048000040
::check if already patched (easier to do first) binary search \ hex search (see CollectWadInfo.bat for e.g. of searching multiple files)
if /i "%imageAction%" EQU "D" support\sfk hexfind "%ImageDol%" -binary /%str2%/ >nul
if /i "%imageAction%" EQU "R" support\sfk hexfind "%ImageDol%" -binary /%str1%/ >nul
::ERRORLEVEL 1 means found, 0 means not found
IF ERRORLEVEL 1 (echo dol patched already) & (set /a DolsAlreadyPatched=%DolsAlreadyPatched%+1) & (goto:NextDol)
::-firsthit arg used so it will only replace the first hit, have it on good authority that there will never be more than 1 so this speeds things up a bit
if /i "%imageAction%" EQU "D" support\sfk replace "%ImageDol%" -binary /%str1%/%str2%/ -firsthit -yes>"temp\patches.txt"
if /i "%imageAction%" EQU "R" support\sfk replace "%ImageDol%" -binary /%str2%/%str1%/ -firsthit -yes>"temp\patches.txt"
::ERRORLEVEL 1 means replacement successful
IF ERRORLEVEL 1 (echo dol patched successfully) & (set /a DolsPatched=%DolsPatched%+1) & (goto:NextDol)
echo dol NOT patched, continuing...
goto:NextDol
::::confirm 1 change made in 1 file by finding this output "[001/1/0] " :: NO POINT WHEN USING -firsthit
::findStr /I /C:"[001/1/0] " "temp\patches.txt" >nul
::::ERRORLEVEL 1 means not found
::IF not ERRORLEVEL 1 goto:PatchSuccess
::::if here it means multiple patches applied
::goto:SomeNewErrorPlace...Abort!
:DoneDolPatching
::processed 1 or more dols here
::Correct\reduce DolNum count by 1
set /a DolNum=%DolNum%-1
echo.
if /i "%DolsAlreadyPatched%" EQU "0" echo %DolNum% dol(s) found: %DolsPatched% patched
if /i "%DolsAlreadyPatched%" NEQ "0" echo %DolNum% dol(s) found: %DolsPatched% patched and %DolsAlreadyPatched% already patched
if /i "%DolsPatched%" NEQ "0" goto:continue
::No Dols patched! Now determine if already fully patched or already partially patched
if /i "%DolsAlreadyPatched%" EQU "%DolNum%" goto:PatchedAlreadyWii
if /i "%DolsAlreadyPatched%" NEQ "0" goto:PartiallyPatchedAlreadyWii
if /i "%DolsAlreadyPatched%" EQU "0" goto:NoPatchWii
:continue
::Some Dols patched! Repack now
if /i "%CopyQ%" EQU "N" goto:NoCopy
if not exist "%imagepathbackAdj%" mkdir "%imagepathbackAdj%"
:NoCopy
echo.
echo Reconstructing game file(s)...
::::if destination drive is FAT32, force split WBFS
::if not "%ForceSplit%"=="" goto:noForce
::if /i "%CurrentImageAdj:~-4%" EQU ".iso" echo Destination Drive is FAT32! Forcing ISO output to be split into WBFS files
::if /i "%CurrentImageAdj:~-4%" EQU ".iso" set "CurrentImageAdj=%CurrentImageAdj:~0,-4%.wbfs"
::if /i "%CurrentImageAdj:~-5%" EQU ".ciso" echo Destination Drive is FAT32! Forcing CISO output to be split into WBFS files
::if /i "%CurrentImageAdj:~-5%" EQU ".ciso" set "CurrentImageAdj=%CurrentImageAdj:~0,-5%.wbfs"
:::noForce
::ForceSplit is disabled WAY above
::"--raw" wit.exe argument may be useful if any issues encountered (but wbfs files will much larger)
if /i "%CurrentImageAdj:~-4%" EQU ".iso" %wit% copy "temp\witdump" "%CurrentImageAdj%" --iso%ForceSplit% --progress --overwrite
if /i "%CurrentImageAdj:~-5%" EQU ".ciso" %wit% copy "temp\witdump" "%CurrentImageAdj%" --ciso%ForceSplit% --progress --overwrite
::always split WBFS files
if /i "%CurrentImageAdj:~-3%" NEQ "iso" %wit% copy "temp\witdump" "%CurrentImageAdj%" --wbfs --split --progress --overwrite
::Errorlevel 0 means success
IF not ERRORLEVEL 0 goto:RepackErrorWii
if exist "temp\witdump" rd /s /q "temp\witdump">nul
::SUCCESS! Now determine if fully patched or partially patched
set /a TotalDolsPatched=%DolsPatched%+%DolsAlreadyPatched%
if /i "%DolNum%" EQU "%TotalDolsPatched%" goto:PatchSuccess
::Patches made to some but not all dols
::if exist "temp\witdump" rd /s /q "temp\witdump">nul
support\sfk echo [%megantatext%]Partially Patched; %TotalDolsPatched% of %DolNum% dols patched
set /a PartiallyPatched=%PartiallyPatched%+1
goto:%EOF%
:skipWiiGame
::shouldn't make it here, but EOF just in case
goto:%EOF%
::------Logging--------
:PatchSuccess
::if exist "temp\witdump" rd /s /q "temp\witdump">nul
support\sfk echo [%greentext%]Patched Successfully!
set /a ImagesPatched=%ImagesPatched%+1
goto:%EOF%
:NoSpace
::if exist "temp\witdump" rd /s /q "temp\witdump">nul
support\sfk echo [%yellowtext%]Not enough free space on disk, skipping...
set /a ImagesSkipped=%ImagesSkipped%+1
goto:%EOF%
::------GC Logging (with deletions for COPY operations)--------
:PatchedAlready
support\sfk echo [%greentext%]Already Patched!
::delete only if copy
set /a PatchedAlready=%PatchedAlready%+1
if /i "%CopyQ%" EQU "N" goto:%EOF%
if exist "%CurrentImageAdj%" del "%CurrentImageAdj%">nul
::empty folder check, if not empty goto something, if empty delete it
dir /A /B "%imagepathbackAdj%" | findstr /R ".">NUL && goto:notempty
rd /s /q "%imagepathbackAdj%"> nul
:notempty
::already added to count above
::set /a PatchedAlready=%PatchedAlready%+1
goto:%EOF%
:PatchError
if /i "%CopyQ%" EQU "N" (support\sfk echo [%redtext%]Error! Too many replacements made, game may be corrupted...) & (set /a ImagesBroken=%ImagesBroken%+1) & (goto:%EOF%)
::delete ONLY if COPY, and skip
support\sfk -spat echo [%yellowtext%]Error! Too many replacements made in copy, skipping...
if exist "%CurrentImageAdj%" del "%CurrentImageAdj%">nul
::empty folder check, if not empty goto something, if empty delete it
dir /A /B "%imagepathbackAdj%" | findstr /R ".">NUL && goto:notempty
rd /s /q "%imagepathbackAdj%"> nul
:notempty
set /a ImagesSkipped=%ImagesSkipped%+1
goto:%EOF%
:NoPatch
support\sfk echo [%yellowtext%]Unable to locate strings to patch, skipping...
::delete only if copy
set /a ImagesSkipped=%ImagesSkipped%+1
if /i "%CopyQ%" EQU "N" goto:%EOF%
if exist "%CurrentImageAdj%" del "%CurrentImageAdj%">nul
::empty folder check, if not empty goto something, if empty delete it
dir /A /B "%imagepathbackAdj%" | findstr /R ".">NUL && goto:notempty
rd /s /q "%imagepathbackAdj%"> nul
:notempty
::already added to count above
::set /a ImagesSkipped=%ImagesSkipped%+1
goto:%EOF%
::------Wii Logging--------
:NoPatchWii
::ERROR: NO DOLS WERE CHANGED! Erase temp\witdump and skip image
if exist "temp\witdump" rd /s /q "temp\witdump">nul
support\sfk echo [%yellowtext%]Unable to locate strings to patch, skipping...
set /a ImagesSkipped=%ImagesSkipped%+1
goto:%EOF%
:PatchedAlreadyWii
::ALL dols patched already
if exist "temp\witdump" rd /s /q "temp\witdump">nul
support\sfk echo [%greentext%]Already Patched!
set /a PatchedAlready=%PatchedAlready%+1
goto:%EOF%
:PartiallyPatchedAlreadyWii
::SOME dols patched already
if exist "temp\witdump" rd /s /q "temp\witdump">nul
support\sfk echo [%yellowtext%]No changes made, %DolsAlreadyPatched% of %DolNum% dols already patched, skipping...
set /a ImagesSkipped=%ImagesSkipped%+1
goto:%EOF%
:RepackErrorWii
::wit failed to repack
if exist "temp\witdump" rd /s /q "temp\witdump">nul
if /i "%CopyQ%" EQU "N" (support\sfk echo [%redtext%]Error Reconstructing WBFS! Game may be corrupted...) & (set /a ImagesBroken=%ImagesBroken%+1) & (goto:%EOF%)
::delete ONLY if COPY, and skip
support\sfk echo [%yellowtext%]Error Reconstructing copy of WBFS! No changes made, skipping...
if exist "%CurrentImageAdj%" del "%CurrentImageAdj%">nul
::empty folder check, if not empty goto something, if empty delete it
dir /A /B "%imagepathbackAdj%" | findstr /R ".">NUL && goto:notempty
rd /s /q "%imagepathbackAdj%"> nul
:notempty
set /a ImagesSkipped=%ImagesSkipped%+1
goto:%EOF%
:skipimage2count2
echo.
support\sfk echo -spat [%redtext%]Finished Processing %image2count% Game Image\x28s\x29
if /i "%AudioOption%" NEQ "on" goto:nosound
if /i "%ImagesBroken%" EQU "0" (start support\nircmd.exe mediaplay 3000 "%Success.mp3%") else (start support\nircmd.exe mediaplay 3000 "%Fail.mp3%")
:nosound
If /i "%ImagesPatched%" NEQ "0" support\sfk.exe echo -spat [%greentext%]%ImagesPatched% Game\x28s\x29 patched successfully
If /i "%PatchedAlready%" NEQ "0" support\sfk.exe echo -spat [%greentext%]%PatchedAlready% Game\x28s\x29 patched already
If /i "%PartiallyPatched%" NEQ "0" support\sfk.exe echo -spat [%magentatext%]%PartiallyPatched% Game\x28s\x29 partially patched
If /i "%ImagesSkipped%" NEQ "0" support\sfk.exe echo -spat [%yellowtext%]%ImagesSkipped% Game\x28s\x29 skipped
If /i "%ImagesBroken%" NEQ "0" support\sfk.exe echo -spat [%redtext%]%ImagesBroken% Game\x28s\x29 may have been corrupted
echo See above for details.
echo.
support\sfk.exe echo [%cyantext%]To copy this information press Ctrl+A then Ctrl+C
echo (To exit you can close this window or press enter)
set /p promptO=
exit
:notgameimage
::-----------HashMyFiles-----------------
:HashMyFiles
if not exist "%cmdinput%\" goto:skip
::empty folder check, if not empty goto something, if empty do nothing
dir /A /B "%cmdinput%" | findstr /R ".">NUL && goto:HashMyFiles2
::rd /s /q "%cmdinput%"> nul
echo Bro this folder is empty... exiting...
@ping 127.0.0.1 -n 3 -w 1000> nul
exit
:skip
if not exist "%cmdinput%" goto:donthash
::sanity check for LZ77
set start=
if exist "%temp%\hexdump.txt" del "%temp%\hexdump.txt">nul
support\sfk hexdump -pure -nofile -offlen 0x00 0x04 "%cmdinput%">"%temp%\hexdump.txt"
set /p start= <"%temp%\hexdump.txt"
::4C5A3737 is LZ77 in hex
::echo if "%start%" is 4C5A3737 it is already compressed
:HashMyFiles2
if not exist "%cmdinput%" goto:donthash
if /i "%cmdinput%" EQU "%windir%\system32\cmd.exe " goto:donthash
if /i "%cmdinput%" EQU "%windir%\system32\cmd.exe" goto:donthash
cls
support\sfk echo [%redtext%]ModMii v%currentversion%
echo.
support\sfk echo Dropped item: [%bluetext%]"%cmdinput%"
echo.
echo I don't have a dedicated function for this, do you want to perform one of the following:
echo.
if exist "%cmdinput%\" goto:skip
If /i "%start%" NEQ "4C5A3737" echo C = save a Compressed copy using LZ77Helper (file is currently decompressed)
If /i "%start%" EQU "4C5A3737" echo D = save a Decompressed copy using LZ77Helper (file is currently compressed)
:skip
if exist "%cmdinput%\" echo C = Compress folder contents using LZ77Helper
if exist "%cmdinput%\" echo D = Decompress folder contents using LZ77Helper
echo H = Calculate hashes with HashMyFiles
echo E = Exit
echo.
echo Pro tips! To (de)compress multiple files\folders dragged all at once with only one prompt use LZ77 Helper directly.
echo Add HashMyFiles to your right-click by choosing the 'Enable Explorer Context Menu' from its Options menu!
echo To hash files in subfolders, copy ^& paste or drag and drop files into the HashMyFiles window.
echo.
set promptO="
set /p promptO=Enter Selection Here:
set "promptO=%promptO:"=%"
If /i "%promptO%" EQU "E" exit
If /i "%promptO%" NEQ "H" goto:skiphash
if exist "%homedrive%\Program Files (x86)" (set code2=hashmyfiles-x64) else (set code2=hashmyfiles)
if exist temp\%code2%\hashmyfiles.exe goto:skipDL
echo.
echo Downloading %code2% to check "%cmdinput%"
support\wget --no-check-certificate -t 3 "https://www.nirsoft.net/utils/%code2%.zip" -q --show-progress
if exist %code2%.zip support\7za x -aoa "%code2%.zip" -o"temp\%code2%" -r
if exist %code2%.zip move /y %code2%.zip temp\%code2%.zip>nul
:skipDL
if not exist temp\%code2%\hashmyfiles.exe (echo %code2% failed to download, exiting...) & (@ping 127.0.0.1 -n 5 -w 1000> nul) & (exit)
::using the folder command successfully searches subdirectories, but it opens a new instance of the app each time
::if exist "%cmdinput%\" start temp\%code2%\hashmyfiles.exe /folder "%cmdinput%"
::if not exist "%cmdinput%\" start temp\%code2%\hashmyfiles.exe /file "%cmdinput%"
::fix for items dropped with relative path
If /i "%cmdinput:~1,1%" NEQ ":" set "cmdinput=%cd%\%cmdinput%"
start temp\%code2%\hashmyfiles.exe /file "%cmdinput%"
exit
:skiphash
If /i "%promptO%" EQU "C" goto:LaunchLZ77Helper
If /i "%promptO%" NEQ "D" goto:badkey
:LaunchLZ77Helper
if exist "%cmdinput%\" goto:doit
If /i "%start%" NEQ "4C5A3737" goto:skip
If /i "%promptO%" EQU "C" goto:badkey
If /i "%promptO%" EQU "D" goto:doit
:skip
If /i "%promptO%" EQU "D" goto:badkey
:doit
call Support\subscripts\dependency.bat LZ77Helper
if /i "%dependency%" EQU "F" (@ping 127.0.0.1 -n 3 -w 1000> nul) & (goto:HashMyFiles2)
::fix for items dropped with relative path
If /i "%cmdinput:~1,1%" NEQ ":" set "cmdinput=%cd%\%cmdinput%"
start temp\LZ77Helper\LZ77Helper.bat -%promptO% "%cmdinput%"
exit
:badkey
echo You Have Entered an Incorrect Key
@ping 127.0.0.1 -n 2 -w 1000> nul
goto:HashMyFiles2
:donthash
:specificCMDhelp
if /i "%one%" EQU "W" goto:cmdlinewizardhelp
if /i "%one%" EQU "RC" goto:cmdlineRegionChangehelp
if /i "%one%" EQU "HS" goto:cmdlineHMhelp
if /i "%one%" EQU "S" goto:cmdlineSNEEKhelp
if /i "%one%" EQU "SE" goto:cmdlineEMUNANDhelp
if /i "%one%" EQU "U" goto:cmdlineUSBhelp
if /i "%one%" EQU "E" goto:cmdlineEMUNANDhelp
if /i "%one%" EQU "L" goto:cmdlineDLQUEUEhelp
if /i "%one%" EQU "SU" goto:cmdlineSYSCHECKhelp
if /i "%one%" EQU "O" goto:cmdlineOPTIONShelp
if /i "%one%" EQU "AW" goto:cmdlineAWhelp
if /i "%one%" EQU "D" goto:cmdlineDhelp
if not "%one%"=="" (goto:cmdlinehelp)
:cmdlinehelp
::title ModMii Command Line Help
support\sfk echo [%redtext%]ModMii v%currentversion% Command Line Help
echo.
echo Command Line Usage: ModMii [function] [parameters] [Options]
echo.
echo Functions:
echo.
echo W Wizard
echo AW Abstinence Wizard
echo U USB-Loader Set-up
echo HS HackMii Solutions
echo SU SysCheck Updater
echo RC Region Change
echo S SNEEK Installation
echo E Emulated NAND Builder
echo SE SNEEK Installation + Emulated NAND Builder
echo L Load ModMii Download Queue
echo.
echo O ModMii Options: Options cannot be used by themselves
echo but they can be applied to other functions. Saved\default
echo settings will be restored after each command. If an
echo option is not defined saved\default settings are used.
echo.
echo D Drag and Drop Help and Info on supported files\folders
echo.
echo NOTE: Too see detailed descriptions and parameters for any of the above,
echo use 'ModMii [function] Help'
echo.
::echo Press Any Key to Close the Help Menu...
pause
exit /b
:cmdlineRegionChangehelp
::title ModMii Region Change Command Line Help
support\sfk echo [%redtext%]ModMii Region Change Command Line Help
echo.
echo ModMii.exe RC DesiredSystemMenu Extras Options
echo.
echo DesiredSystemMenu: #.#X
echo where; "#.#" can be "4.1", "4.2" or "4.3" and "X" can be "U", "E", "J", "K"
echo.
echo Extras:
echo "Red" Red Theme [cannot be used simultaneously with other themes]
echo "Green" Green Theme [cannot be used simultaneously with other themes]
echo "Blue" Blue Theme [cannot be used simultaneously with other themes]
echo "Orange" Orange Theme [cannot be used simultaneously with other themes]
echo.
echo "Guide" Generate Guide ONLY
echo.
support\sfk echo [%bluetext%]Examples:
echo ModMii.exe RC 4.1U
echo ModMii.exe RC 4.2E Red
echo ModMii.exe RC 4.3J Orange Guide
echo.
::echo Press Any Key to Close the Help Menu...
pause
exit /b
:cmdlinewizardhelp
::title ModMii Wizard Command Line Help
support\sfk echo [%redtext%]ModMii Wizard Command Line Help
echo.
echo ModMii.exe W CurrentFirm Region DesiredFirm Extras Options
echo.
echo ModMii.exe 1 2 3 4 5 Extras Options
echo.
echo 1) Wizard "W"
echo 2) CurrentSystemMenu: Wii Options: "4.3","4.2","4.1","4.0","3.X" [3.0-3.5], "O" [other ^<2.2]
echo WiiU Options: "U2" [WiiU+vWii mods], "U" [WiiU only mods], "V" [vWii only mods]
echo 3) Region: Wii Options: "U","E","J","K"
echo WiiU Options: "U","E","J"
echo. If your Region has been changed select the Region you are currently on
echo 4) DesiredSystemMenu (Optional): Wii Options: "4.1", "4.2", "4.3" [n\a for WiiU or vWii]
echo Note: If DesiredSystemMenu not specified ModMii uses recommended System Menu
echo.
echo Extras:
echo "Guide" Generate Guide ONLY
echo.
echo Extras for Wii ^& vWii (including WiiU+vWii):
echo.
echo "Default" Reinstall Default Theme [cannot be used simultaneously with other themes]
echo "Red" Red Theme [cannot be used simultaneously with other themes]
echo "Green" Green Theme [cannot be used simultaneously with other themes]
echo "Blue" Blue Theme [cannot be used simultaneously with other themes]
echo "Orange" Orange Theme [cannot be used simultaneously with other themes]
echo.
echo "USB" Set-up a USB-loader [choose no more than one of each A and B]
echo A - "CFG" Use Configurable USB-Loader
echo "FLOW" Use WiiFlow
echo "GX" Use USB-Loader GX [default]
echo "CFG-FLOW-GX" Use Configurable USB-Loader, WiiFlow and USB-Loader GX
echo B - "USBConfig" Save USB-Loader Config files to USB [default]
echo "SDConfig" Save USB-Loader Config files to SD Card
echo.
echo Extras for Wii only:
echo.
echo "CH" All Wii Channels [ie. Photo, Mii, etc.]
echo "PHOTO" Photo Channel
echo "SHOP" Shopping Channel [and IOS56]
echo "MII" Mii Channel
::echo "SPEAK" Wii Speak Channel [not applicable to Korean Wiis]
::echo "NEWS" News Channel [not applicable to Korean Wiis]
echo "NET" Internet Channel [not applicable to Korean Wiis]
::echo "WEATHER" Weather Channel [not applicable to Korean Wiis]
echo.
echo "Min" Minimal Update - Choose one or more of the following updates:
echo "HBC" Homebrew Channel and\or Bootmii
echo "REC" Recommended cIOSs (and cMIOS if enabled in options)
echo "Pri" Priiloader and hacks_hash.ini
echo.
echo "str2hax" to use str2hax
echo "MAC:aabbccddeeff" to use Wilbrand 4.3 exploit
echo "LetterBomb" to use LetterBomb 4.3 exploit
echo.
echo Force a disc based exploit for 4.3 and ^<2.2 Wii's
echo "SmashStack" Smash Stack (U\E\J\K)
echo "IndianaPwns" IndianaPwns (U\E\J)
echo "Bathaxx" Bathaxx (U\E\J)
echo "ROTJ" Return of the Jodi (U\E\J)
echo "YuGiOwned" Yu-Gi Owned (U\E\J)
echo "EriHakawai" Eri Hakawai (U\E\J)
echo "Twilight" Twilight Hack (^<2.2 U\E\J\K)
echo "AllExploits" All Exploits
echo.
echo Notes:
echo Default for 4.3 Wii's is "AllExploits"
echo Default for ^<2.2 Wii's is "AllExploits"
echo Guides for 3.0-4.2 Wii's always use Bannerbomb as primary
echo.
echo Extras for vWii only (excluding WiiU+vWii):
echo.
echo Force an exploit
echo "Browser" Browser Exploit (U\E\J)
echo "SmashStack" Smash Stack (U\E\J)
echo "IndianaPwns" IndianaPwns (U\E\J)
echo "Bathaxx" Bathaxx (U\E\J)
echo "ROTJ" Return of the Jodi (U\E\J)
echo "YuGiOwned" Yu-Gi Owned (U\E\J)
echo "EriHakawai" Eri Hakawai (U\E\J)
echo "AllExploits" All Exploits [Default]
echo.
support\sfk echo [%bluetext%]Examples:
echo ModMii.exe W 4.3 U
echo ModMii.exe W 4.1 U 4.2 Blue CH USB
echo ModMii.exe W 4.3 E 4.1 MII PHOTO Min REC Green
echo ModMii.exe W O J Green USB Flow SDConfig
echo ModMii.exe W U Guide
echo ModMii.exe W U2 E Default USB
echo ModMii.exe W V J Red Browser
echo.
::echo Press Any Key to Close the Help Menu...
pause
exit /b
:cmdlineAWhelp
::title ModMii Abstinence Wizard Command Line Help
support\sfk echo [%redtext%]ModMii Abstinence Wizard Command Line Help
echo.
echo ModMii.exe AW SystemMenu SNEEK-TYPE SNKSystemMenu SNKRegion Extras Options
echo.
echo ModMii.exe 1 2 3 4 5 Extras Options
echo.
echo 1) Abstinence Wizard "AW"
echo 2) SystemMenu: "4.3","4.2","4.1","4.0","3.X" [3.0-3.5], "O" [other ^<2.2]
echo 3) SNEEK-TYPE: "S" SNEEK, "U" UNEEK, "SD" SNEEK+DI, "UD" UNEEK+DI
echo 4) SNKSystemMenu: "4.1", "4.2", "4.3"
echo 5) SNKRegion: "U","E","J","K"
echo.
echo Extras:
echo "Guide" Generate Guide ONLY
echo.
echo "str2hax" to use str2hax
echo "MAC:aabbccddeeff" to use Wilbrand 4.3 exploit
echo "LetterBomb" to use LetterBomb 4.3 exploit
echo.
echo Force a disc based exploit for 4.3 and ^<2.2 Wii's
echo "SmashStack" Smash Stack (U\E\J\K)
echo "IndianaPwns" IndianaPwns (U\E\J)
echo "Bathaxx" Bathaxx (U\E\J)
echo "ROTJ" Return of the Jodi (U\E\J)
echo "YuGiOwned" Yu-Gi Owned (U\E\J)
echo "EriHakawai" Eri Hakawai (U\E\J)
echo "Twilight" Twilight Hack (^<2.2 U\E\J\K)
echo "AllExploits" All Exploits
echo.
echo Notes:
echo Default for 4.3 Wii's is "AllExploits"
echo Default for ^<2.2 Wii's is "AllExploits"
echo Guides for 3.0-4.2 Wii's always use Bannerbomb as primary
echo.
echo "Rev:#" Build a Specific Rev # of neek or neek2o
echo.
echo Note: If a Rev # is not specified ModMii will build the
echo rev currently Featured on the google-code page
echo (or newest version saved locally if you are offline).
echo If using this, you should also use the n2o argument.
echo.
echo "Red" Red Theme [cannot be used simultaneously with other themes]
echo "Green" Green Theme [cannot be used simultaneously with other themes]
echo "Blue" Blue Theme [cannot be used simultaneously with other themes]
echo "Orange" Orange Theme [cannot be used simultaneously with other themes]
echo.
echo "OHBC" Open Homebrew Channel (LULZ)
echo "PLC" postLoader Channel
echo "249" cIOS249 rev14
echo "Pri" Priiloader (and hacks)
echo "FLOW" WiiFlow Forwarder and App
echo.
echo "SN:Serial-Number" - default serial will be used if not specified
echo.
echo "CH" All Wii Channels [ie. Photo, Mii, etc.]
echo "PHOTO" Photo Channel
echo "SHOP" Shopping Channel
echo "MII" Mii Channel
::echo "SPEAK" Wii Speak Channel [not applicable to Korean NANDs]
::echo "NEWS" News Channel [not applicable to Korean NANDs]
echo "NET" Internet Channel [not applicable to Korean NANDs]
::echo "WEATHER" Weather Channel [not applicable to Korean NANDs]
echo.
echo "WADdir:Path?" - Optionally specify custom folder of WADs to install.
echo Note: do not forget the "?" which marks the end of the path
echo.
echo "n2o:E" Optional: force override settings to enable neek2o
echo "n2o:D" Optional: force override settings to disable neek2o
echo.
support\sfk echo [%bluetext%]Examples:
echo ModMii.exe AW 4.2 SD 4.3 U
echo ModMii.exe AW o SD 4.3 J SmashStack
echo ModMii.exe AW 4.1 UD 4.2 E Orange PLC 249 Pri FLOW CH Rev:64 n2o:E
echo.
::echo Press Any Key to Close the Help Menu...
pause
exit /b
:cmdlineUSBhelp
::title ModMii USB-Loader Set-up Command Line Help
support\sfk echo [%redtext%]ModMii USB-Loader Set-up Command Line Help
echo.
echo ModMii.exe U Extras Options
echo.
echo Extras:
echo Choose no more than one of each A and B:
echo A - "CFG" Use Configurable USB-Loader
echo "FLOW" Use WiiFlow
echo "GX" Use USB-Loader GX [default]
echo "CFG-FLOW-GX" Use Configurable USB-Loader, WiiFlow and USB-Loader GX
echo B - "USBConfig" Save USB-Loader Config files to USB [default]
echo "SDConfig" Save USB-Loader Config files to SD Card
echo.
echo "Guide" Generate Guide ONLY
echo.
support\sfk echo [%bluetext%]Examples:
echo ModMii.exe U
echo ModMii.exe U Flow
echo ModMii.exe U CFG-Flow SDConfig
echo.
::echo Press Any Key to Close the Help Menu...
pause
exit /b
:cmdlineHMhelp
::title ModMii HackMii Solutions Command Line Help
support\sfk echo [%redtext%]ModMii HackMii Solutions Command Line Help
echo.
echo ModMii.exe HS SystemMenu Extras Options
echo.
echo ModMii.exe 1 2 Extras Options
echo.
echo 1) HackMii Solutions "HS"
echo 2) SystemMenu: "4.3","4.2","4.1","4.0","3.X" [3.0-3.5], "O" [other ^<2.2]
echo.
echo Extras:
echo "Guide" Generate Guide ONLY
echo.
echo "str2hax" to use str2hax
echo "MAC:aabbccddeeff" to use Wilbrand 4.3 exploit
echo "LetterBomb" to use LetterBomb 4.3 exploit
echo.
echo Force a disc based exploit for 4.3 and ^<2.2 Wii's
echo "SmashStack" Smash Stack (U\E\J\K)
echo "IndianaPwns" IndianaPwns (U\E\J)
echo "Bathaxx" Bathaxx (U\E\J)
echo "ROTJ" Return of the Jodi (U\E\J)
echo "YuGiOwned" Yu-Gi Owned (U\E\J)
echo "EriHakawai" Eri Hakawai (U\E\J)
echo "Twilight" Twilight Hack (^<2.2 U\E\J\K)
echo "AllExploits" All Exploits
echo.
echo Notes:
echo Default for 4.3 Wii's is "AllExploits"
echo Default for ^<2.2 Wii's is "AllExploits"
echo Guides for 3.0-4.2 Wii's always use Bannerbomb as primary
echo.
support\sfk echo [%bluetext%]Examples:
echo ModMii.exe HS 4.3
echo ModMii.exe HS 4.1
echo ModMii.exe HS 3.X
echo ModMii.exe HS o SmashStack
echo.
::echo Press Any Key to Close the Help Menu...
pause
exit /b
:cmdlineSYSCHECKhelp
::title ModMii SysCheck Updater Command Line Help
support\sfk echo [%redtext%]ModMii SysCheck Updater Command Line Help
echo.
echo ModMii.exe SU SysCheck.csv Extras Options
echo.
echo ModMii.exe 1 2 Extras Options
echo.
echo 1) SysCheck Updater "SU"
echo 2) SysCheck Log Path\Name
echo.
echo Extras:
echo "Guide" Generate Guide ONLY
echo.
support\sfk echo [%bluetext%]Examples:
echo ModMii.exe SU SysCheck.csv
echo ModMii.exe SU X:\New Folder\SysCheck.csv
echo ModMii.exe SU "XFlaks-SysCheck.csv" Guide
echo.
::echo Press Any Key to Close the Help Menu...
pause
exit /b
:cmdlineSNEEKhelp
::title ModMii SNEEK Installation Command Line Help
support\sfk echo [%redtext%]ModMii SNEEK Installation Command Line Help
echo.
echo ModMii.exe S SNEEK-TYPE Extras Options
echo.
echo SNEEK-TYPE: "S" SNEEK, "U" UNEEK, "SD" SNEEK+DI, "UD" UNEEK+DI
echo.
echo Extras:
echo "Rev:#" Build a Specific Rev # of neek or neek2o
echo.
echo Note: If a Rev # is not specified ModMii will build the
echo rev currently Featured on the google-code page
echo (or newest version saved locally if you are offline).
echo If using this, you should also use the n2o argument.
echo.
echo "n2o:E" Optional: force override settings to enable neek2o
echo "n2o:D" Optional: force override settings to disable neek2o
echo.
support\sfk echo [%bluetext%]Example:
echo ModMii.exe S UD
echo ModMii.exe S SD Rev:64 n2o:E
echo.
echo Note: You can install S\UNEEK and simultaneously build an emulated
echo NAND using the Emulated NAND builder instructions below.
echo.
:cmdlineEMUNANDhelp
::title ModMii Emulated NAND Builder Command Line Help
support\sfk echo [%redtext%]ModMii Emulated NAND Builder Command Line Help
echo.
echo ModMii.exe E SNEEK-TYPE SystemMenu Region Extras Options
echo.
echo ModMii.exe 1 2 3 4 Extras Options
echo.
echo 1) Emulated NAND Builder "E" [or "SE" to install S\UNEEK AND build a NAND]
echo 2) SNEEK-TYPE: "S" SNEEK, "U" UNEEK, "SD" SNEEK+DI, "UD" UNEEK+DI
echo 3) SystemMenu: "4.1", "4.2", "4.3", "V" [for vWii EmuNAND building Only]
echo 4) Region: "U","E","J","K" [K not an option for vWii]
echo.
echo Extras:
echo "Rev:#" Build a Specific Rev # of neek or neek2o
echo.
echo Note: If a Rev # is not specified ModMii will build the
echo rev currently Featured on the google-code page
echo (or newest version saved locally if you are offline).
echo If using this, you should also use the n2o argument.
echo.
echo "Red" Red Theme [cannot be used simultaneously with other themes]
echo "Green" Green Theme [cannot be used simultaneously with other themes]
echo "Blue" Blue Theme [cannot be used simultaneously with other themes]
echo "Orange" Orange Theme [cannot be used simultaneously with other themes]
echo.
echo "OHBC" Open Homebrew Channel (LULZ)
echo "PLC" postLoader Channel
echo "FLOW" WiiFlow Forwarder and App
echo "249"* cIOS249 rev14
echo "nswitch" nSwitch Channel
echo "S2U"* Switch2Uneek [only for UNEEK or UNEEK+DI when neek2o disabled]
echo "Pri"* Priiloader and hacks
echo "NMM"* No More Memory Cards [cannot be used simultaneously with DML]
echo "DML"* Dios Mios Lite [only for SNEEK+DI]
echo * Not available when bulding a vWii EmuNAND
echo.
echo "SN:Serial-Number" - default serial will be used if not specified
echo.
echo "CH" All Wii Channels [ie. Photo, Mii, etc.]
echo "PHOTO" Photo Channel
echo "SHOP" Shopping Channel
echo "MII" Mii Channel
::echo "SPEAK" Wii Speak Channel [not applicable to Korean NANDs]
::echo "NEWS" News Channel [not applicable to Korean NANDs]
echo "NET" Internet Channel [not applicable to Korean NANDs]
::echo "WEATHER" Weather Channel [not applicable to Korean NANDs]
echo.
echo "WADdir:Path?" - Optionally specify custom folder of WADs to install.
echo Note: do not forget the "?" which marks the end of the path
echo.
echo "n2o:E" Optional: force override settings to enable neek2o
echo "n2o:D" Optional: force override settings to disable neek2o
echo.
echo.
support\sfk echo [%bluetext%]Examples:
echo ModMii.exe E U 4.3 U
echo ModMii.exe SE UD 4.2 U Orange PLC 249 NMM S2U Pri FLOW CH Rev:64 n2o:E
echo ModMii.exe E SD V J nswitch
echo.
::echo Press Any Key to Close the Help Menu...
pause
exit /b
:cmdlineDLQUEUEhelp
::title ModMii Download Queue Command Line Help
support\sfk echo [%redtext%]ModMii Download Queue Command Line Help
echo.
echo ModMii.exe L DownloadQueue Options
echo.
echo Note: Download Queue must exist and be saved in temp\DownloadQueues\
echo.
support\sfk echo [%bluetext%]Examples:
echo ModMii.exe L cIOSs
echo ModMii.exe L My Fav Themes.bat
echo.
::echo Press Any Key to Close the Help Menu...
pause
exit /b
:cmdlineOPTIONShelp
::title ModMii Options Command Line Help
support\sfk echo [%redtext%]ModMii Options Command Line Help
echo.
echo Define ModMii's options using the following commands.
echo.
echo Note: If an option is not defined ModMii will use saved\default settings.
echo Saved\default settings will be restored after each command.
echo If you're unsure of what an option does, read the description
echo in ModMii's options page.
echo.
support\sfk echo [%cyantext%]Drive Letter or Path setting for SD Card
echo ModMii.exe [base command] Drive:Path?
echo.
support\sfk echo [%bluetext%]Examples:
echo ModMii.exe [base command] Drive:new folder?
echo ModMii.exe [base command] Drive:E:?
echo.
echo Note: do not forget the "?" which marks the end of the path
echo.
support\sfk echo [%cyantext%]Drive Letter or Path setting for USB Hard Drive
echo ModMii.exe [base command] DriveU:Path?
echo.
support\sfk echo [%bluetext%]Examples:
echo ModMii.exe [base command] DriveU:new folder?
echo ModMii.exe [base command] DriveU:H:?
echo.
echo Note: do not forget the "?" which marks the end of the path
echo.
support\sfk echo [%cyantext%]PC Program Save Location
echo ModMii.exe [base command] PC:A
echo ModMii.exe [base command] PC:L
echo ModMii.exe [base command] PC:P
echo.
echo Where;
echo A = Auto, L = Local, and P = Portable
echo.
support\sfk echo [%cyantext%]Root Save
echo ModMii.exe [base command] RS:E
echo ModMii.exe [base command] RS:D
echo.
echo Where;
echo E = Enabled and D = Disabled
echo.
support\sfk echo [%cyantext%]Channel Effect
echo ModMii.exe [base command] CE:NS
echo ModMii.exe [base command] CE:S
echo ModMii.exe [base command] CE:FS
echo.
echo Where;
echo NS = No Spin, S = Spin and FS = Fast Spin
echo.
::support\sfk echo [%cyantext%]Keep 00000001 Folder and\or NUS Folder
::echo ModMii.exe [base command] 1:0
::echo ModMii.exe [base command] 1:1
::echo ModMii.exe [base command] 1:N
::echo ModMii.exe [base command] 1:A
::echo.
::echo Where;
::echo 0 = do not keep, 1 = keep 00000001, N = keep NUS and A = keep All
::echo.
support\sfk echo [%cyantext%]Update Active IOSs
echo ModMii.exe [base command] UIOS:E
echo ModMii.exe [base command] UIOS:D
echo.
echo Where;
echo E = Enabled and D = Disabled
echo.
support\sfk echo [%cyantext%]Auto-Updating downloads will skip update check if cached
echo ModMii.exe [base command] AUSKIP:E
echo ModMii.exe [base command] AUSKIP:D
echo.
echo Where;
echo E = Enabled and D = Disabled
echo.
support\sfk echo [%cyantext%]Include cMIOS in ModMii Wizard Downloads
echo ModMii.exe [base command] CMIOS:E
echo ModMii.exe [base command] CMIOS:D
echo.
echo Where;
echo E = Enabled and D = Disabled
echo.
support\sfk echo [%cyantext%]Include hermes cIOSs in ModMii's Recommended cIOSs
echo ModMii.exe [base command] hermes:E
echo ModMii.exe [base command] hermes:D
echo.
echo Where;
echo E = Enabled and D = Disabled
echo.
support\sfk echo [%cyantext%]Play Sound at Finish
echo ModMii.exe [base command] SOUND:E
echo ModMii.exe [base command] SOUND:D
echo.
echo Where;
echo E = Enabled and D = Disabled
echo.
support\sfk echo [%cyantext%]Include USB-Loader Forwarder Channel in ModMii Wizard Downloads
echo ModMii.exe [base command] FWD:E
echo ModMii.exe [base command] FWD:D
echo.
echo Where;
echo E = Enabled and D = Disabled
echo.
support\sfk echo [%cyantext%]Verbose Output for ModMii and SNEEK Installer
echo ModMii.exe [base command] VERBOSE:E
echo ModMii.exe [base command] VERBOSE:D
echo.
echo Where;
echo E = Enabled and D = Disabled
echo.
support\sfk echo [%cyantext%]neek2o - build neek2o mod of s\uneek by OverjoY and obcd
echo ModMii.exe [base command] n2o:E
echo ModMii.exe [base command] n2o:D
echo.
echo Where;
echo E = Enabled and D = Disabled
echo.
support\sfk echo [%cyantext%]SNEEK and SNEEK+DI SD Access
echo ModMii.exe [base command] SSD:E
echo ModMii.exe [base command] SSD:D
echo.
echo Where;
echo E = Enabled and D = Disabled
echo.
support\sfk echo [%cyantext%]SNEEK Verbose Output
echo ModMii.exe [base command] SNKVERBOSE:E
echo ModMii.exe [base command] SNKVERBOSE:D
echo.
echo Where;
echo E = Enabled and D = Disabled
echo.
support\sfk echo [%cyantext%]Font.bin Colour for SNEEK/UNEEK
echo ModMii.exe [base command] Font:B
echo ModMii.exe [base command] Font:W
echo ModMii.exe [base command] Font:R
echo.
echo Where;
echo B = Black and W = White and R = Red
echo.
echo.
::echo Press Any Key to Close the Help Menu...
pause
exit /b
:cmdlineDhelp
title ModMii Drag and Drop Help and Info
support\sfk echo [%redtext%]ModMii Drag and Drop Help and Info
echo.
echo Individual or multiple items can be dragged and dropped onto ModMii
echo or a ModMii shortcut; check out the ModMii Toolbar for quicklaunch access!
echo.
echo You can also right-click an item and choose to open it with ModMii.
echo.
echo Note: If dragging a folder launches into a "wrong" activity, check that there aren't
echo other file types saved in the same folder; i.e. if trying to load a folder of
echo myms, make sure there aren't any WADs saved to the same folder or subfolders.
echo.
support\sfk echo [%bluetext%]nand tools [%cyantext%](nand.bin, slccmpt.bin)[def]; Extract, Check, Clone or Defragment a Wii or vWii nand
echo Examples: nand.bin, slccmpt.bin, anything.bin
echo.
support\sfk echo [%bluetext%]Game Image tools [%cyantext%](wbfs, iso, ciso, folder containing these file types)[def];
echo Disable Deflicker, Re-enable Deflicker, or Extract game contents of Wii and Gamecube games
echo Examples: SMNP01.wbfs, game.iso, anything.ciso, WBFS Folder, GAMES Folder
echo.
support\sfk echo [%bluetext%]HBC Transfer Tool [%cyantext%](zip, 7z, rar, boot.dol, boot.elf, folder containing boot.dol or boot.elf)[def];
echo Wirelessly transfer apps to the device selected in the Homebrew Channnel (e.g. SD, USB)
echo Examples: usbloader_gx.7z, yawmME.zip, anyfile.rar, boot.dol, boot.elf, AppFolder (which contains boot.dol or boot.elf)
echo.
support\sfk echo [%bluetext%]App Launcher [%cyantext%](wuhb, rpx, wps, dol, elf, folder containing boot.dol or boot.elf)[def];
echo Launch apps from a PC to a Wii\vWii\WiiU via the internet, without needing the app on an SD Card or USB drive
echo Examples: anyfile.wuhb, anyfile.rpx, anyfile.wps, anyfile.dol, anyfile.elf, AppFolder containing boot.dol or boot.elf
echo.
support\sfk echo [%bluetext%]WAD Sender [%cyantext%](WAD, folder of WADs)[def]; install WADs ^<8MB from your PC to your Wii\vWii via the internet, no SD\USB required
echo Examples: anything.wad, or any folder containing WADs
echo.
support\sfk echo [%bluetext%]WAD Modifier [%cyantext%](WAD)[def]; Modify Channel WAD or IOS WAD Attributes
echo Modifiable Channel WAD Attributes: Title, Title ID, IOS, DOL, AHB^|DVD, NandLoader, Fakesign, Deflicker*, Visibility
echo Modifiable IOS WAD Attributes: Patches, Slot, Version
echo Examples: anything.wad
echo * Can also apply\remove N64 Expansion Pak and N64 Dark Filter patches for applicable N64 WADs
echo.
support\sfk echo [%bluetext%]WAD Unpacker [%cyantext%](WAD, folder of WADs)[def]; unpack WADs
echo Examples: anything.wad, or any folder containing WADs
echo.
support\sfk echo [%bluetext%]WAD Packer [%cyantext%](unpacked WAD folder or component file: app, cert, footer, tik, tmd)[def]; repack WAD
echo Examples: Any_Unpacked_WAD_Folder, or any file inside an unpacked WAD folder (e.g. 00000000.app, cert, footer, tik, tmd)
echo.
support\sfk echo [%bluetext%]CSM Theme Builder [%cyantext%](mym, csm, folder of myms, folder of csms)[def]; Create csm files to install Wii\vWii\Wii-Mini themes
echo Examples: DarkWii_Purple.mym, Random_Theme_4.1U.csm, MYM_Folder, CSM_Folder
echo.
support\sfk echo [%bluetext%]SysCheck Updater [%cyantext%](SysCheck.csv)[def]; update only your outdated softmods
echo Examples: SysCheck.csv, or any csv that was created by SysCheck and renamed
echo.
support\sfk echo [%bluetext%]App Updater ^& File Cleanup [%cyantext%](SD\USB Drives or Folders)[def]; Update Apps and\or remove un-needed files
echo Examples: W:, X:, COPY_TO_SD, COPY_TO_USB
echo.
support\sfk echo [%bluetext%]Emulated Nand Modifer [%cyantext%](EmuNand Folder)[def]; Edit an Emulated NAND
echo Examples: pl_us, or any folder containing an Emulated NAND System Menu; i.e. \title\00000001\00000002\content\title.tmd
echo.
support\sfk echo [%bluetext%]Load Download Queue [%cyantext%](ModMii_Download_Queue.bat)[def]; Load a ModMii Download Queue
echo Examples: ModMii_Download_Queue.bat, or any download queue that was created by ModMii
echo.
support\sfk echo [%bluetext%]Load Wizard Settings [%cyantext%](Wizard_Settings.bat)[def]; Load Saved ModMii Wizard Settings from previous session
echo Examples: Wizard_Settings.bat, or any Wizard_Settings.bat that was created by ModMii and renamed
echo.
support\sfk echo [%bluetext%]Edit Bootmii Config Settings [%cyantext%](bootmii.ini)[def]; Load and edit bootmii.ini config settings
echo Example: bootmii.ini
echo.
support\sfk echo [%bluetext%]Bulk WAD Deflicker Filter Changer [%cyantext%](folder of WADs)[def]; Modify Deflicker* settings to improve video quality
echo Examples: Any folder containing WADs (inapplicable channels will be skipped)
echo * Can also apply\remove N64 Expansion Pak and N64 Dark Filter patches for applicable N64 WADs
echo.
support\sfk echo [%bluetext%]Bulk WAD NandLoader Updater [%cyantext%](folder of WADs)[def]; inject a new NandLoader into Channel WADs
echo Examples: Any folder containing WADs (inapplicable channels will be skipped)
echo.
support\sfk echo [%bluetext%]Bulk WAD Hidden Channel Converter [%cyantext%](folder of WADs)[def];
echo Convert Channel WADs to hidden type and optionally inject a Minimalist banner to reduce size
echo Examples: Any folder containing WADs (inapplicable channels will be skipped)
echo.
support\sfk echo [%bluetext%]Inspector Wadget [%cyantext%](WAD, folder of WADs)[def]; Inspect ^& display WAD Info like cIOS tags, AHB^|DVD, NandLoader, Deflicker, etc.
echo Examples: anything.wad, or any folder containing WADs
echo.
support\sfk echo [%bluetext%]LZ77 (De)Compression [%cyantext%](everything else)[def]; Compress\Decompress files\folders using LZ77Helper
echo Examples: iplSetting.js, *.*, New_Folder, any file or folder not mentioned above
echo.
support\sfk echo [%bluetext%]Calculate Hashes [%cyantext%](everything else)[def]; Calculate file hashes using HashMyFiles
echo Examples: anything.doc, *.*, New_Folder, any file or folder not mentioned above
echo.
echo Press Any Key to Close the Help Menu...
pause>nul
exit
::-----------------------------------
:hardcodedoptions
echo "%cmdinput%">temp\cmdinput.txt
support\sfk -spat filter temp\cmdinput.txt -lsrep _\x22__ -lerep _\x22__ -write -yes>nul
findStr /I ":" temp\cmdinput.txt >nul
IF ERRORLEVEL 1 goto:nohardcodedoptions
::backup current settings (in order to revert after cmd)
if not exist support\settings.bat echo ::ModMii Settings >support\settings.bat
copy /y support\settings.bat support\settings.bak>nul
::-----------DRIVE: (ie. DRIVE:whatever_ test?)---------------
findStr /I /C:" Drive:" temp\cmdinput.txt >nul
IF ERRORLEVEL 1 (goto:nodrivecmd) else (copy /y temp\cmdinput.txt temp\cmdinput2.txt>nul)
::check if a ? was entered
findStr /I /C:"?" temp\cmdinput.txt >nul
IF ERRORLEVEL 1 (echo Please mark the end of your Drive setting using a question mark "?", try again...) & (if exist support\settings.bak move /y support\settings.bak support\settings.bat>nul) & (@ping 127.0.0.1 -n 5 -w 1000> nul) & (exit)
support\sfk filter -spat temp\cmdinput2.txt -rep _"* DRIVE:"__ -rep _\x3f*__ -write -yes>nul
support\sfk filter temp\cmdinput2.txt -rep _"^"_"^^"_ -rep _"&"_"^&"_ -rep _"("_"^("_ -rep _")"_"^)"_ -write -yes>nul
set /p DRIVE= <temp\cmdinput2.txt
set DRIVE=%DRIVE:"=%
:doublecheckcmd1
set fixslash=
if /i "%DRIVE:~-1%" EQU "\" set fixslash=yes
if /i "%DRIVE:~-1%" EQU "/" set fixslash=yes
if /i "%fixslash%" EQU "yes" set "DRIVE=%DRIVE:~0,-1%"
if /i "%fixslash%" EQU "yes" goto:doublecheckcmd1
::if second char is ":" check if drive exists
if /i "%DRIVE:~1,1%" NEQ ":" goto:skipcheck
if exist "%DRIVE:~0,2%" (goto:skipcheck) else (echo "%DRIVE:~0,2%" doesn't exist, please try again...)
if exist support\settings.bak move /y support\settings.bak support\settings.bat>nul
@ping 127.0.0.1 -n 5 -w 1000> nul
exit
:skipcheck
::overwrite option in settings.bat
if exist Support\settings.bat support\sfk filter Support\settings.bat -ls!"Set*Drive=" -write -yes>nul
echo Set "Drive=%DRIVE%">>Support\settings.bat
::remove from temp\cmdinput.txt (compensate for _'s by replacing them with \x5f)
support\sfk -spat filter temp\cmdinput2.txt -rep _\x5f_\x5c\x22_ -write -yes>nul
support\sfk -spat filter -quiet temp\cmdinput2.txt -rep _\x22_x5f_ -write -yes
::support\sfk -spat filter temp\cmdinput2.txt -rep _\x5f_\x22_ -write -yes>nul
::support\sfk filter -quiet temp\cmdinput2.txt -rep _"""_\x5f_ -write -yes
::remove hard option from cmdinput.txt
set /p removeme= <temp\cmdinput2.txt
support\sfk -spat filter temp\cmdinput.txt -rep _" Drive:%removeme%?"__ -write -yes>nul
:nodrivecmd
::-----------DRIVEU: (ie. DRIVEU:whatever_ test?)---------------
findStr /I /C:" DRIVEU:" temp\cmdinput.txt >nul
IF ERRORLEVEL 1 (goto:noDRIVEUcmd) else (copy /y temp\cmdinput.txt temp\cmdinput2.txt>nul)
::check if a ? was entered
findStr /I /C:"?" temp\cmdinput.txt >nul
IF ERRORLEVEL 1 (echo Please mark the end of your DriveU setting using a question mark "?", try again...) & (if exist support\settings.bak move /y support\settings.bak support\settings.bat>nul) & (@ping 127.0.0.1 -n 5 -w 1000> nul) & (exit)
support\sfk filter -spat temp\cmdinput2.txt -rep _"* DRIVEU:"__ -rep _\x3f*__ -write -yes>nul
support\sfk filter temp\cmdinput2.txt -rep _"^"_"^^"_ -rep _"&"_"^&"_ -rep _"("_"^("_ -rep _")"_"^)"_ -write -yes>nul
set /p DRIVEU= <temp\cmdinput2.txt
set DRIVEU=%DRIVEU:"=%
:doublecheckcmd
set fixslash=
if /i "%DRIVEU:~-1%" EQU "\" set fixslash=yes
if /i "%DRIVEU:~-1%" EQU "/" set fixslash=yes
if /i "%fixslash%" EQU "yes" set "DRIVEU=%DRIVEU:~0,-1%"
if /i "%fixslash%" EQU "yes" goto:doublecheckcmd
::if second char is ":" check if DRIVEU exists
if /i "%DRIVEU:~1,1%" NEQ ":" goto:skipcheck
if exist "%DRIVEU:~0,2%" (goto:skipcheck) else (echo "%DRIVEU:~0,2%" doesn't exist, please try again...)
if exist support\settings.bak move /y support\settings.bak support\settings.bat>nul
@ping 127.0.0.1 -n 5 -w 1000> nul
exit
:skipcheck
::overwrite option in settings.bat
if exist Support\settings.bat support\sfk filter Support\settings.bat -ls!"Set*DRIVEU=" -write -yes>nul
echo Set "DRIVEU=%DRIVEU%">>Support\settings.bat
::remove from temp\cmdinput.txt (compensate for _'s by replacing them with \x5f)
support\sfk -spat filter temp\cmdinput2.txt -rep _\x5f_\x5c\x22_ -write -yes>nul
support\sfk -spat filter -quiet temp\cmdinput2.txt -rep _\x22_x5f_ -write -yes
::support\sfk -spat filter temp\cmdinput2.txt -rep _\x5f_\x22_ -write -yes>nul
::support\sfk filter -quiet temp\cmdinput2.txt -rep _"""_\x5f_ -write -yes
::remove hard option from cmdinput.txt
set /p removeme= <temp\cmdinput2.txt
support\sfk -spat filter temp\cmdinput.txt -rep _" DRIVEU:%removeme%?"__ -write -yes>nul
:noDRIVEUcmd
::-----------WADdir: (ie. WADdir:whatever_ test?)---------------
findStr /I /C:" WADdir:" temp\cmdinput.txt >nul
IF ERRORLEVEL 1 (goto:noWADdircmd) else (copy /y temp\cmdinput.txt temp\cmdinput2.txt>nul)
::check if a ? was entered
findStr /I /C:"?" temp\cmdinput.txt >nul
IF ERRORLEVEL 1 (echo Please mark the end of your WADdir setting using a question mark "?", try again...) & (if exist support\settings.bak move /y support\settings.bak support\settings.bat>nul) & (@ping 127.0.0.1 -n 5 -w 1000> nul) & (exit)
support\sfk filter -spat temp\cmdinput2.txt -rep _"* WADdir:"__ -rep _\x3f*__ -write -yes>nul
set /p addwadfolder= <temp\cmdinput2.txt
:doublecheckcmd2
set fixslash=
if /i "%addwadfolder:~-1%" EQU "\" set fixslash=yes
if /i "%addwadfolder:~-1%" EQU "/" set fixslash=yes
if /i "%fixslash%" EQU "yes" set "addwadfolder=%addwadfolder:~0,-1%"
if /i "%fixslash%" EQU "yes" goto:doublecheckcmd2
if not exist "%addwadfolder%" (echo %addwadfolder% doesn't exist, please try again...) & (if exist support\settings.bak move /y support\settings.bak support\settings.bat>nul) & (@ping 127.0.0.1 -n 2 -w 1000> nul) & (exit)
::make sure second char is ":"
if /i "%addwadfolder:~1,1%" NEQ ":" (echo Enter the full path including the drive letter, please try again...) & (if exist support\settings.bak move /y support\settings.bak support\settings.bat>nul) & (@ping 127.0.0.1 -n 2 -w 1000> nul) & (exit)
if not exist "%addwadfolder%\*.wad" (echo No Wads found in %addwadfolder%, please try a different folder...) & (if exist support\settings.bak move /y support\settings.bak support\settings.bat>nul) & (@ping 127.0.0.1 -n 2 -w 1000> nul) & (exit)
::remove from temp\cmdinput.txt (compensate for _'s by replacing them with \x5f)
support\sfk -spat filter temp\cmdinput2.txt -rep _\x5f_\x5c\x22_ -write -yes>nul
support\sfk -spat filter -quiet temp\cmdinput2.txt -rep _\x22_x5f_ -write -yes
::support\sfk -spat filter temp\cmdinput2.txt -rep _\x5f_\x22_ -write -yes>nul
::support\sfk filter -quiet temp\cmdinput2.txt -rep _"""_\x5f_ -write -yes
::remove hard option from cmdinput.txt
set /p removeme= <temp\cmdinput2.txt
support\sfk -spat filter temp\cmdinput.txt -rep _" WADdir:%removeme%?"__ -write -yes>nul
:noWADdircmd
::-----------PC: Option---------------
findStr /I /C:" PC:" temp\cmdinput.txt >nul
IF ERRORLEVEL 1 (goto:noPCcmd) else (copy /y temp\cmdinput.txt temp\cmdinput2.txt>nul)
support\sfk filter -spat temp\cmdinput2.txt -rep _"* PC:"__ -rep _\x20*__ -write -yes>nul
set /p PCSAVEcmd= <temp\cmdinput2.txt
if /i "%PCSAVEcmd%" EQU "A" set PCSAVE=Auto
if /i "%PCSAVEcmd%" EQU "L" set PCSAVE=Local
if /i "%PCSAVEcmd%" EQU "P" set PCSAVE=Portable
::overwrite option in settings.bat
if exist Support\settings.bat support\sfk filter Support\settings.bat -ls!"Set PCSAVE=" -write -yes>nul
echo Set PCSAVE=%PCSAVE%>>Support\settings.bat
::remove hard option from cmdinput.txt
set /p removeme= <temp\cmdinput2.txt
support\sfk filter temp\cmdinput.txt -rep _" PC:%removeme%"__ -write -yes>nul
:noPCcmd
::-----------RS: Option---------------
findStr /I /C:" RS:" temp\cmdinput.txt >nul
IF ERRORLEVEL 1 (goto:noRScmd) else (copy /y temp\cmdinput.txt temp\cmdinput2.txt>nul)
support\sfk filter -spat temp\cmdinput2.txt -rep _"* RS:"__ -rep _\x20*__ -write -yes>nul
set /p ROOTSAVEcmd= <temp\cmdinput2.txt
if /i "%ROOTSAVEcmd%" EQU "E" set ROOTSAVE=ON
if /i "%ROOTSAVEcmd%" EQU "D" set ROOTSAVE=OFF
::overwrite option in settings.bat
if exist Support\settings.bat support\sfk filter Support\settings.bat -ls!"Set ROOTSAVE=" -write -yes>nul
echo Set ROOTSAVE=%ROOTSAVE%>>Support\settings.bat
::remove hard option from cmdinput.txt
set /p removeme= <temp\cmdinput2.txt
support\sfk filter temp\cmdinput.txt -rep _" RS:%removeme%"__ -write -yes>nul
:noRScmd
::-----------CE: Option---------------
findStr /I /C:" CE:" temp\cmdinput.txt >nul
IF ERRORLEVEL 1 (goto:noCEcmd) else (copy /y temp\cmdinput.txt temp\cmdinput2.txt>nul)
support\sfk filter -spat temp\cmdinput2.txt -rep _"* CE:"__ -rep _\x20*__ -write -yes>nul
set /p effectcmd= <temp\cmdinput2.txt
if /i "%effectcmd%" EQU "NS" set effect=No-Spin
if /i "%effectcmd%" EQU "S" set effect=Spin
if /i "%effectcmd%" EQU "FS" set effect=Fast-Spin
::overwrite option in settings.bat
if exist Support\settings.bat support\sfk filter Support\settings.bat -ls!"Set effect=" -write -yes>nul
echo Set effect=%effect%>>Support\settings.bat
::remove hard option from cmdinput.txt
set /p removeme= <temp\cmdinput2.txt
support\sfk filter temp\cmdinput.txt -rep _" CE:%removeme%"__ -write -yes>nul
:noCEcmd
::-----------keep *01 or NUS Folders---------------
::option1 disabled
goto:no1cmd
findStr /I /C:" 1:" temp\cmdinput.txt >nul
IF ERRORLEVEL 1 (goto:no1cmd) else (copy /y temp\cmdinput.txt temp\cmdinput2.txt>nul)
support\sfk filter -spat temp\cmdinput2.txt -rep _"* 1:"__ -rep _\x20*__ -write -yes>nul
set /p Option1cmd= <temp\cmdinput2.txt
if /i "%Option1cmd%" EQU "0" set Option1=off
if /i "%Option1cmd%" EQU "1" set Option1=on
if /i "%Option1cmd%" EQU "N" set Option1=nus
if /i "%Option1cmd%" EQU "A" set Option1=all
::overwrite option in settings.bat
if exist Support\settings.bat support\sfk filter Support\settings.bat -ls!"Set Option1=" -write -yes>nul
echo Set Option1=%Option1%>>Support\settings.bat
::remove hard option from cmdinput.txt
set /p removeme= <temp\cmdinput2.txt
support\sfk filter temp\cmdinput.txt -rep _" 1:%removeme%"__ -write -yes>nul
:no1cmd
::-----------UIOS: Option---------------
findStr /I /C:" UIOS:" temp\cmdinput.txt >nul
IF ERRORLEVEL 1 (goto:noUIOScmd) else (copy /y temp\cmdinput.txt temp\cmdinput2.txt>nul)
support\sfk filter -spat temp\cmdinput2.txt -rep _"* UIOS:"__ -rep _\x20*__ -write -yes>nul
set /p ACTIVEIOScmd= <temp\cmdinput2.txt
if /i "%ACTIVEIOScmd%" EQU "E" set ACTIVEIOS=ON
if /i "%ACTIVEIOScmd%" EQU "D" set ACTIVEIOS=OFF
::overwrite option in settings.bat
if exist Support\settings.bat support\sfk filter Support\settings.bat -ls!"Set ACTIVEIOS=" -write -yes>nul
echo Set ACTIVEIOS=%ACTIVEIOS%>>Support\settings.bat
::remove hard option from cmdinput.txt
set /p removeme= <temp\cmdinput2.txt
support\sfk filter temp\cmdinput.txt -rep _" UIOS:%removeme%"__ -write -yes>nul
:noUIOScmd
::-----------AUSKIP: Option---------------
findStr /I /C:" AUSKIP:" temp\cmdinput.txt >nul
IF ERRORLEVEL 1 (goto:noAUSKIPcmd) else (copy /y temp\cmdinput.txt temp\cmdinput2.txt>nul)
support\sfk filter -spat temp\cmdinput2.txt -rep _"* AUSKIP:"__ -rep _\x20*__ -write -yes>nul
set /p AUSKIPcmd= <temp\cmdinput2.txt
if /i "%AUSKIPcmd%" EQU "E" set AUSKIP=ON
if /i "%AUSKIPcmd%" EQU "D" set AUSKIP=OFF
::overwrite option in settings.bat
if exist Support\settings.bat support\sfk filter Support\settings.bat -ls!"Set AUSKIP=" -write -yes>nul
echo Set AUSKIP=%AUSKIP%>>Support\settings.bat
::remove hard option from cmdinput.txt
set /p removeme= <temp\cmdinput2.txt
support\sfk filter temp\cmdinput.txt -rep _" AUSKIP:%removeme%"__ -write -yes>nul
:noAUSKIPcmd
::-----------SOUND: Option---------------
findStr /I /C:" SOUND:" temp\cmdinput.txt >nul
IF ERRORLEVEL 1 (goto:noSOUNDcmd) else (copy /y temp\cmdinput.txt temp\cmdinput2.txt>nul)
support\sfk filter -spat temp\cmdinput2.txt -rep _"* SOUND:"__ -rep _\x20*__ -write -yes>nul
set /p AudioOptioncmd= <temp\cmdinput2.txt
if /i "%AudioOptioncmd%" EQU "E" set AudioOption=ON
if /i "%AudioOptioncmd%" EQU "D" set AudioOption=OFF
::overwrite option in settings.bat
if exist Support\settings.bat support\sfk filter Support\settings.bat -ls!"Set AudioOption=" -write -yes>nul
echo Set AudioOption=%AudioOption%>>Support\settings.bat
::remove hard option from cmdinput.txt
set /p removeme= <temp\cmdinput2.txt
support\sfk filter temp\cmdinput.txt -rep _" SOUND:%removeme%"__ -write -yes>nul
:noSOUNDcmd
::-----------CMIOS: Option---------------
findStr /I /C:" CMIOS:" temp\cmdinput.txt >nul
IF ERRORLEVEL 1 (goto:noCMIOScmd) else (copy /y temp\cmdinput.txt temp\cmdinput2.txt>nul)
support\sfk filter -spat temp\cmdinput2.txt -rep _"* CMIOS:"__ -rep _\x20*__ -write -yes>nul
set /p CMIOSOPTIONcmd= <temp\cmdinput2.txt
if /i "%CMIOSOPTIONcmd%" EQU "E" set CMIOSOPTION=ON
if /i "%CMIOSOPTIONcmd%" EQU "D" set CMIOSOPTION=OFF
::overwrite option in settings.bat
if exist Support\settings.bat support\sfk filter Support\settings.bat -ls!"Set CMIOSOPTION=" -write -yes>nul
echo Set CMIOSOPTION=%CMIOSOPTION%>>Support\settings.bat
::remove hard option from cmdinput.txt
set /p removeme= <temp\cmdinput2.txt
support\sfk filter temp\cmdinput.txt -rep _" CMIOS:%removeme%"__ -write -yes>nul
:noCMIOScmd
::-----------hermes: Option---------------
findStr /I /C:" hermes:" temp\cmdinput.txt >nul
IF ERRORLEVEL 1 (goto:nohermescmd) else (copy /y temp\cmdinput.txt temp\cmdinput2.txt>nul)
support\sfk filter -spat temp\cmdinput2.txt -rep _"* hermes:"__ -rep _\x20*__ -write -yes>nul
set /p hermesOPTIONcmd= <temp\cmdinput2.txt
if /i "%hermesOPTIONcmd%" EQU "E" set hermesOPTION=ON
if /i "%hermesOPTIONcmd%" EQU "D" set hermesOPTION=OFF
::overwrite option in settings.bat
if exist Support\settings.bat support\sfk filter Support\settings.bat -ls!"Set hermesOPTION=" -write -yes>nul
echo Set hermesOPTION=%hermesOPTION%>>Support\settings.bat
::remove hard option from cmdinput.txt
set /p removeme= <temp\cmdinput2.txt
support\sfk filter temp\cmdinput.txt -rep _" hermes:%removeme%"__ -write -yes>nul
:nohermescmd
::-----------USB-Loader Forwarder: Option---------------
findStr /I /C:" FWD:" temp\cmdinput.txt >nul
IF ERRORLEVEL 1 (goto:noFWDcmd) else (copy /y temp\cmdinput.txt temp\cmdinput2.txt>nul)
support\sfk filter -spat temp\cmdinput2.txt -rep _"* FWD:"__ -rep _\x20*__ -write -yes>nul
set /p FWDOPTIONcmd= <temp\cmdinput2.txt
if /i "%FWDOPTIONcmd%" EQU "E" set FWDOPTION=ON
if /i "%FWDOPTIONcmd%" EQU "D" set FWDOPTION=OFF
::overwrite option in settings.bat
if exist Support\settings.bat support\sfk filter Support\settings.bat -ls!"Set FWDOPTION=" -write -yes>nul
echo Set FWDOPTION=%FWDOPTION%>>Support\settings.bat
::remove hard option from cmdinput.txt
set /p removeme= <temp\cmdinput2.txt
support\sfk filter temp\cmdinput.txt -rep _" FWD:%removeme%"__ -write -yes>nul
:noFWDcmd
::-----------VERBOSE: Option---------------
findStr /I /C:" VERBOSE:" temp\cmdinput.txt >nul
IF ERRORLEVEL 1 (goto:noVERBOSEcmd) else (copy /y temp\cmdinput.txt temp\cmdinput2.txt>nul)
support\sfk filter -spat temp\cmdinput2.txt -rep _"* VERBOSE:"__ -rep _\x20*__ -write -yes>nul
set /p ModMiiverbosecmd= <temp\cmdinput2.txt
if /i "%ModMiiverbosecmd%" EQU "E" set ModMiiverbose=ON
if /i "%ModMiiverbosecmd%" EQU "D" set ModMiiverbose=OFF
::overwrite option in settings.bat
if exist Support\settings.bat support\sfk filter Support\settings.bat -ls!"Set ModMiiverbose=" -write -yes>nul
echo Set ModMiiverbose=%ModMiiverbose%>>Support\settings.bat
::remove hard option from cmdinput.txt
set /p removeme= <temp\cmdinput2.txt
support\sfk filter temp\cmdinput.txt -rep _" VERBOSE:%removeme%"__ -write -yes>nul
:noVERBOSEcmd
::-----------n2o: Option---------------
findStr /I /C:" n2o:" temp\cmdinput.txt >nul
IF ERRORLEVEL 1 (goto:non2ocmd) else (copy /y temp\cmdinput.txt temp\cmdinput2.txt>nul)
support\sfk filter -spat temp\cmdinput2.txt -rep _"* n2o:"__ -rep _\x20*__ -write -yes>nul
set /p NEEKcmd= <temp\cmdinput2.txt
if /i "%NEEKcmd%" EQU "E" set neek2o=ON
if /i "%NEEKcmd%" EQU "D" set neek2o=OFF
::overwrite option in settings.bat
if exist Support\settings.bat support\sfk filter Support\settings.bat -ls!"Set neek2o=" -write -yes>nul
echo Set neek2o=%neek2o%>>Support\settings.bat
::remove hard option from cmdinput.txt
set /p removeme= <temp\cmdinput2.txt
support\sfk filter temp\cmdinput.txt -rep _" n2o:%removeme%"__ -write -yes>nul
:non2ocmd
::-----------SSD: Option---------------
findStr /I /C:" SSD:" temp\cmdinput.txt >nul
IF ERRORLEVEL 1 (goto:noSSDcmd) else (copy /y temp\cmdinput.txt temp\cmdinput2.txt>nul)
support\sfk filter -spat temp\cmdinput2.txt -rep _"* SSD:"__ -rep _\x20*__ -write -yes>nul
set /p SSDcmd= <temp\cmdinput2.txt
if /i "%SSDcmd%" EQU "E" set SSD=ON
if /i "%SSDcmd%" EQU "D" set SSD=OFF
::overwrite option in settings.bat
if exist Support\settings.bat support\sfk filter Support\settings.bat -ls!"Set SSD=" -write -yes>nul
echo Set SSD=%SSD%>>Support\settings.bat
::remove hard option from cmdinput.txt
set /p removeme= <temp\cmdinput2.txt
support\sfk filter temp\cmdinput.txt -rep _" SSD:%removeme%"__ -write -yes>nul
:noSSDcmd
::-----------snkverbose: Option---------------
findStr /I /C:" snkverbose:" temp\cmdinput.txt >nul
IF ERRORLEVEL 1 (goto:nosnkverbosecmd) else (copy /y temp\cmdinput.txt temp\cmdinput2.txt>nul)
support\sfk filter -spat temp\cmdinput2.txt -rep _"* snkverbose:"__ -rep _\x20*__ -write -yes>nul
set /p sneekverbosecmd= <temp\cmdinput2.txt
if /i "%sneekverbosecmd%" EQU "E" set sneekverbose=ON
if /i "%sneekverbosecmd%" EQU "D" set sneekverbose=OFF
::overwrite option in settings.bat
if exist Support\settings.bat support\sfk filter Support\settings.bat -ls!"Set sneekverbose=" -write -yes>nul
echo Set sneekverbose=%sneekverbose%>>Support\settings.bat
::remove hard option from cmdinput.txt
set /p removeme= <temp\cmdinput2.txt
support\sfk filter temp\cmdinput.txt -rep _" snkverbose:%removeme%"__ -write -yes>nul
:nosnkverbosecmd
::-----------Font: Option---------------
findStr /I /C:" Font:" temp\cmdinput.txt >nul
IF ERRORLEVEL 1 (goto:noFontcmd) else (copy /y temp\cmdinput.txt temp\cmdinput2.txt>nul)
support\sfk filter -spat temp\cmdinput2.txt -rep _"* Font:"__ -rep _\x20*__ -write -yes>nul
set /p SNKFONTcmd= <temp\cmdinput2.txt
if /i "%SNKFONTcmd%" EQU "B" set SNKFONT=B
if /i "%SNKFONTcmd%" EQU "W" set SNKFONT=W
if /i "%SNKFONTcmd%" EQU "R" set SNKFONT=R
::overwrite option in settings.bat
if exist Support\settings.bat support\sfk filter Support\settings.bat -ls!"Set SNKFONT=" -write -yes>nul
echo Set SNKFONT=%SNKFONT%>>Support\settings.bat
::remove hard option from cmdinput.txt
set /p removeme= <temp\cmdinput2.txt
support\sfk filter temp\cmdinput.txt -rep _" Font:%removeme%"__ -write -yes>nul
:noFontcmd
::-----------GUI: Option---------------
findStr /I /C:" GUI:" temp\cmdinput.txt >nul
IF ERRORLEVEL 1 (goto:noGUIcmd) else (copy /y temp\cmdinput.txt temp\cmdinput2.txt>nul)
support\sfk filter -spat temp\cmdinput2.txt -rep _"* GUI:"__ -rep _\x20*__ -write -yes>nul
set /p GUIModecmd= <temp\cmdinput2.txt
if /i "%GUIModecmd%" EQU "E" (set GUIMode=Y) & (set SkinMode=Y)
if /i "%GUIModecmd%" EQU "D" set GUIMode=
::remove hard option from cmdinput.txt
set /p removeme= <temp\cmdinput2.txt
support\sfk filter temp\cmdinput.txt -rep _" GUI:%removeme%"__ -write -yes>nul
::GUI mode mostly the same as Skin Mode except no "wizapp PB OPEN" command, not enabled yet
goto:noSkincmd
:noGUIcmd
::-----------Skin: Option---------------
findStr /I /C:" Skin:" temp\cmdinput.txt >nul
IF ERRORLEVEL 1 (goto:noSkincmd) else (copy /y temp\cmdinput.txt temp\cmdinput2.txt>nul)
support\sfk filter -spat temp\cmdinput2.txt -rep _"* Skin:"__ -rep _\x20*__ -write -yes>nul
set /p SkinModecmd= <temp\cmdinput2.txt
if /i "%SkinModecmd%" EQU "E" set SkinMode=Y
if /i "%SkinModecmd%" EQU "D" set SkinMode=
if /i "%SkinMode%" NEQ "Y" goto:noprogress
set watitle=ModMii Skin
if exist "Support\Skins\%skin%\skin.ico" (set "waico=Support\Skins\%skin%\skin.ico") else (set "waico=Support\Skins\Default\skin.ico")
if exist "Support\Skins\%skin%\CLASSIC.bmp" (set "wabmp=Support\Skins\%skin%\CLASSIC.bmp") else (set "wabmp=Support\Skins\Default\CLASSIC.bmp")
::set temp=temp
set wabat=temp\wabat.bat
set wasig=ModMii v%currentversion% by XFlak
set watext=~~~ModMii Classic Working...
::support\nircmd.exe win activate ititle "ModMiiSkinCMD"
::support\nircmd.exe win hide ititle "ModMiiSkinCMD"
start support\wizapp PB OPEN
::------Check for old Windows Versions-------
::ver | findstr /i "5\.0\." > nul
::IF %ERRORLEVEL% EQU 0 set OSYS=2000
::ver | findstr /i "5\.1\." > nul
::IF %ERRORLEVEL% EQU 0 set OSYS=XP
::ver | findstr /i "5\.2\." > nul
::IF %ERRORLEVEL% EQU 0 set OSYS=2003
::::ver | findstr /i "6\.0\." > nul
::::IF %ERRORLEVEL% EQU 0 set OSYS=VISTA
::::ver | findstr /i "6\.1\." > nul
::::IF %ERRORLEVEL% EQU 0 set OSYS=SEVEN
::if not "%OSYS%"=="" title ModMii
:noprogress
::remove hard option from cmdinput.txt
set /p removeme= <temp\cmdinput2.txt
support\sfk filter temp\cmdinput.txt -rep _" Skin:%removeme%"__ -write -yes>nul
:noSkincmd
::remove hard options from %cmdinput% to avoid conflict
set /p cmdinput= <temp\cmdinput.txt
:nohardcodedoptions
::recommended d2x version check = "RecD2XcIOS", but check no more than once per day
if /i "%SkinMode%" EQU "Y" goto:proceed
if /i "%cmdlinemode%" NEQ "Y" goto:proceed
FOR /F "tokens=*" %%g IN ('support\sfk date') do (SET CurDate=%%g)
if not exist temp\d2xClassicCheck.txt echo whatever>temp\d2xClassicCheck.txt
findStr /I /X /C:"%CurDate% " "temp\d2xClassicCheck.txt" >nul
IF NOT ERRORLEVEL 1 goto:proceed
if exist temp\RecD2XcIOS.txt del temp\RecD2XcIOS.txt>nul
support\wget --no-check-certificate "https://github.com/xflak/stats/releases/latest/download/classic.txt" -O temp\RecD2XcIOS.txt -q
::delete if file is empty (if empty)
if exist "temp\RecD2XcIOS.txt" >nul findstr "^" "temp\RecD2XcIOS.txt" || del "temp\RecD2XcIOS.txt"
if not exist temp\RecD2XcIOS.txt goto:proceed
set /p RecD2XcIOS= <temp\RecD2XcIOS.txt
del "temp\RecD2XcIOS.txt">nul
if exist "Support\settings.bat" support\sfk filter -spat "Support\settings.bat" -ls!"set \x22RecD2XcIOS=" -write -yes>nul
echo Set "RecD2XcIOS=%RecD2XcIOS%">> Support\settings.bat
echo %CurDate% >temp\d2xClassicCheck.txt
:proceed
if /i "%one%" EQU "W" goto:cmdlinewizard
if /i "%one%" EQU "RC" goto:cmdlineRegionChange
if /i "%one%" EQU "HS" goto:cmdlinehackmiisolutions
if /i "%one%" EQU "S" goto:cmdlinesneekinstaller
if /i "%one%" EQU "U" goto:cmdlineUSBLoaderSetup
if /i "%one%" EQU "SE" goto:cmdlineemunandbuilder
if /i "%one%" EQU "E" goto:cmdlineemunandbuilder
if /i "%one%" EQU "L" goto:cmdlineloadqueue
if /i "%one%" EQU "SU" goto:cmdlinesyscheck
if /i "%one%" EQU "AW" goto:cmdlineabstinenceWizard
if /i "%one%" EQU "BM" goto:go
::-----------------------------------
:cmdlinewizard
set MENU1=%one%
set ctype=Wii
if /i "%two%" EQU "U" (set FIRMSTART=U) & (set ctype=WiiU) & (goto:nofirmdefaults)
if /i "%two%" EQU "U2" (set FIRMSTART=U2) & (set ctype=WiiU)
if /i "%two%" EQU "V" (set FIRMSTART=V) & (set ctype=WiiU)
if /i "%two%" EQU "4.3" set FIRMSTART=%two%
if /i "%two%" EQU "4.2" set FIRMSTART=%two%
if /i "%two%" EQU "4.1" set FIRMSTART=%two%
if /i "%two%" EQU "4.0" set FIRMSTART=%two%
if /i "%two%" EQU "3.X" set FIRMSTART=3.X
if /i "%two%" EQU "O" set FIRMSTART=O
if "%firmstart%"=="" (echo "%two%" is not a valid input, try again...) & (if exist support\settings.bak move /y support\settings.bak support\settings.bat>nul) & (@ping 127.0.0.1 -n 5 -w 1000> nul) & (exit)
set REGION=
if /i "%three%" EQU "U" set REGION=U
if /i "%three%" EQU "E" set REGION=E
if /i "%three%" EQU "J" set REGION=J
::K region not available for vWii
if /i "%ctype%" EQU "WiiU" goto:skip
if /i "%three%" EQU "K" set REGION=K
:skip
if "%region%"=="" (echo "%three%" is not a valid Region input, try again...) & (if exist support\settings.bak move /y support\settings.bak support\settings.bat>nul) & (@ping 127.0.0.1 -n 5 -w 1000> nul) & (exit)
if /i "%ctype%" EQU "WiiU" goto:nofirmdefaults
set VIRGIN=Y
if /i "%four%" EQU "4.3" set FIRM=%four%
if /i "%four%" EQU "4.2" set FIRM=%four%
if /i "%four%" EQU "4.1" set FIRM=%four%
if not "%FIRM%"=="" goto:nofirmdefaults
set FIRM=4.3
if /i "%FIRMSTART%" EQU "4.2" set FIRM=4.2
if /i "%FIRMSTART%" EQU "4.1" set FIRM=4.1
:nofirmdefaults
findStr /I /C:" Guide" temp\cmdinput.txt >nul
IF ERRORLEVEL 1 (set cmdguide=) else (set cmdguide=G)
if /i "%cmdguide%" EQU "G" set settings=G
::WiiU Only is done
if /i "%FIRMSTART%" EQU "U" goto:go
::----EXtras------
::set defaults
set ThemeSelection=N
set MIIQ=N
set PIC=N
set NET=N
set WEATHER=N
set NEWS=N
set SHOP=N
set SPEAK=N
set USBGUIDE=N
::----themes----
findStr /I /C:" Red" temp\cmdinput.txt >nul
IF ERRORLEVEL 1 (set ThemeSelection=N) else (set ThemeSelection=R)
if /i "%ThemeSelection%" EQU "R" goto:donecmdthemes
findStr /I /C:" Green" temp\cmdinput.txt >nul
IF ERRORLEVEL 1 (set ThemeSelection=N) else (set ThemeSelection=G)
if /i "%ThemeSelection%" EQU "G" goto:donecmdthemes
findStr /I /C:" Blue" temp\cmdinput.txt >nul
IF ERRORLEVEL 1 (set ThemeSelection=N) else (set ThemeSelection=BL)
if /i "%ThemeSelection%" EQU "BL" goto:donecmdthemes
findStr /I /C:" Orange" temp\cmdinput.txt >nul
IF ERRORLEVEL 1 (set ThemeSelection=N) else (set ThemeSelection=O)
if /i "%ThemeSelection%" EQU "O" goto:donecmdthemes
:donecmdthemes
if /i "%FIRMSTART%" EQU "U2" goto:defaultcheck
if /i "%FIRMSTART%" EQU "V" goto:defaultcheck
if /i "%FIRMSTART%" NEQ "%FIRM%" goto:donecmdthemes
:defaultcheck
findStr /I /C:" Default" temp\cmdinput.txt >nul
IF ERRORLEVEL 1 (set ThemeSelection=N) else (set ThemeSelection=D)
if /i "%ThemeSelection%" EQU "D" goto:donecmdthemes
:donecmdthemes
findStr /I /C:" USB" temp\cmdinput.txt >nul
IF ERRORLEVEL 1 (goto:noUSBcmd) else (set USBGUIDE=Y)
::Loader - GX (or 1) is default
set LOADER=GX
findStr /I /C:" CFG-FLOW-GX" temp\cmdinput.txt >nul
IF NOT ERRORLEVEL 1 (set LOADER=ALL) & (goto:donecmdloader)
findStr /I /C:" CFG" temp\cmdinput.txt >nul
IF NOT ERRORLEVEL 1 (set LOADER=CFG) & (goto:donecmdloader)
findStr /I /C:" FLOW" temp\cmdinput.txt >nul
IF NOT ERRORLEVEL 1 set LOADER=FLOW
:donecmdloader
::USB-Loader Config files (USB is default)
findStr /I /C:" SDConfig" temp\cmdinput.txt >nul
IF ERRORLEVEL 1 (set USBCONFIG=USB) else (set USBCONFIG=SD)
:noUSBcmd
::WiiU+vWii is done (WiiU Only done already above)
if /i "%FIRMSTART%" EQU "U2" goto:go
::vWii only just needs to collect exploit args then is done
if /i "%FIRMSTART%" EQU "V" goto:cmdlineDiscExploits
findStr /I /C:" CH" temp\cmdinput.txt >nul
IF ERRORLEVEL 1 (set MIIQ=N) else (set MIIQ=Y)
::if /i "%MIIQ%" EQU "Y" set MIIQ=Y
if /i "%MIIQ%" EQU "Y" set PIC=Y
if /i "%MIIQ%" EQU "Y" set SHOP=Y
if /i "%REGION%" EQU "K" goto:nomoreKchannels
if /i "%MIIQ%" EQU "Y" set NET=Y
::if /i "%MIIQ%" EQU "Y" set WEATHER=Y
::if /i "%MIIQ%" EQU "Y" set NEWS=Y
::if /i "%MIIQ%" EQU "Y" set SPEAK=Y
:nomoreKchannels
if /i "%MIIQ%" EQU "Y" goto:alreadygotallchannels
findStr /I /C:" PHOTO" temp\cmdinput.txt >nul
IF ERRORLEVEL 1 (set PIC=N) else (set PIC=Y)
findStr /I /C:" SHOP" temp\cmdinput.txt >nul
IF ERRORLEVEL 1 (set SHOP=N) else (set SHOP=Y)
findStr /I /C:" MII" temp\cmdinput.txt >nul
IF ERRORLEVEL 1 (set MIIQ=N) else (set MIIQ=Y)
if /i "%REGION%" EQU "K" goto:alreadygotallchannels
::findStr /I /C:" SPEAK" temp\cmdinput.txt >nul
::IF ERRORLEVEL 1 (set SPEAK=N) else (set SPEAK=Y)
::findStr /I /C:" NEWS" temp\cmdinput.txt >nul
::IF ERRORLEVEL 1 (set NEWS=N) else (set NEWS=Y)
findStr /I /C:" NET" temp\cmdinput.txt >nul
IF ERRORLEVEL 1 (set NET=N) else (set NET=Y)
::findStr /I /C:" WEATHER" temp\cmdinput.txt >nul
::IF ERRORLEVEL 1 (set WEATHER=N) else (set WEATHER=Y)
:alreadygotallchannels
findStr /I /C:" Min" temp\cmdinput.txt >nul
IF ERRORLEVEL 1 (goto:notminupdate) else (set VIRGIN=N)
findStr /I /C:" HBC" temp\cmdinput.txt >nul
IF ERRORLEVEL 1 (set HMInstaller=N) else (set HMInstaller=Y)
findStr /I /C:" REC" temp\cmdinput.txt >nul
IF ERRORLEVEL 1 (set RECCIOS=N) else (set RECCIOS=Y)
findStr /I /C:" Pri" temp\cmdinput.txt >nul
IF ERRORLEVEL 1 (set PRIQ=N) else (set PRIQ=Y)
:notminupdate
goto:cmdlineExploitCheck
::---------------------------------
:cmdlinehackmiisolutions
set MENU1=H
if /i "%two%" EQU "4.3" set FIRMSTART=%two%
if /i "%two%" EQU "4.2" set FIRMSTART=%two%
if /i "%two%" EQU "4.1" set FIRMSTART=%two%
if /i "%two%" EQU "4.0" set FIRMSTART=%two%
if /i "%two%" EQU "3.X" set FIRMSTART=%two%
if /i "%two%" EQU "o" set FIRMSTART=%two%
if "%firmstart%"=="" (echo "%two%" is not a valid input, try again...) & (if exist support\settings.bak move /y support\settings.bak support\settings.bat>nul) & (@ping 127.0.0.1 -n 5 -w 1000> nul) & (exit)
findStr /I /C:" Guide" temp\cmdinput.txt >nul
IF ERRORLEVEL 1 (set cmdguide=) else (set cmdguide=G)
if /i "%cmdguide%" EQU "G" set settings=G
:cmdlineExploitCheck
if /i "%FIRMSTART%" EQU "4.3" goto:cmdline4.3Exploits
if /i "%FIRMSTART%" EQU "o" goto:cmdlineDiscExploits
goto:nocmdlineDiscExploits
::-----------MAC:*---------------
:cmdline4.3Exploits
findStr /I /C:" MAC:" temp\cmdinput.txt >nul
IF ERRORLEVEL 1 (goto:noMACcmd) else (copy /y temp\cmdinput.txt temp\cmdinput2.txt>nul)
set EXPLOIT=W
support\sfk filter -spat temp\cmdinput2.txt -rep _"* MAC:"__ -rep _\x20*__ -rep _"-"__ -rep _":"__ -write -yes>nul
set /p macaddress= <temp\cmdinput2.txt
if "%macaddress%" EQU "s" goto:quickskip
if "%macaddress%" EQU "S" goto:quickskip
::confirm 12 digits
if "%macaddress:~11%"=="" goto:badkey
if not "%macaddress:~12%"=="" goto:badkey
::confirm MAC addy is hex chars
set digit=0
:confirmMACaddycmd
if /i "%SkinMode%" EQU "Y" goto:quickskip
set /a digit=%digit%+1
set testme=
if /i "%digit%" EQU "1" set testme=%macaddress:~0,1%
if /i "%digit%" EQU "2" set testme=%macaddress:~1,1%
if /i "%digit%" EQU "3" set testme=%macaddress:~2,1%
if /i "%digit%" EQU "4" set testme=%macaddress:~3,1%
if /i "%digit%" EQU "5" set testme=%macaddress:~4,1%
if /i "%digit%" EQU "6" set testme=%macaddress:~5,1%
if /i "%digit%" EQU "7" set testme=%macaddress:~6,1%
if /i "%digit%" EQU "8" set testme=%macaddress:~7,1%
if /i "%digit%" EQU "9" set testme=%macaddress:~8,1%
if /i "%digit%" EQU "10" set testme=%macaddress:~9,1%
if /i "%digit%" EQU "11" set testme=%macaddress:~10,1%
if /i "%digit%" EQU "12" set testme=%macaddress:~11,1%
if "%testme%"=="" goto:quickskip
if /i "%testme%" EQU "0" goto:confirmMACaddycmd
if /i "%testme%" EQU "1" goto:confirmMACaddycmd
if /i "%testme%" EQU "2" goto:confirmMACaddycmd
if /i "%testme%" EQU "3" goto:confirmMACaddycmd
if /i "%testme%" EQU "4" goto:confirmMACaddycmd
if /i "%testme%" EQU "5" goto:confirmMACaddycmd
if /i "%testme%" EQU "6" goto:confirmMACaddycmd
if /i "%testme%" EQU "7" goto:confirmMACaddycmd
if /i "%testme%" EQU "8" goto:confirmMACaddycmd
if /i "%testme%" EQU "9" goto:confirmMACaddycmd
if /i "%testme%" EQU "a" goto:confirmMACaddycmd
if /i "%testme%" EQU "b" goto:confirmMACaddycmd
if /i "%testme%" EQU "c" goto:confirmMACaddycmd
if /i "%testme%" EQU "d" goto:confirmMACaddycmd
if /i "%testme%" EQU "e" goto:confirmMACaddycmd
if /i "%testme%" EQU "f" goto:confirmMACaddycmd
goto:badkey
:quickskip
::pass
goto:noMACcmd
:badkey
echo "%macaddress%" is not a valid MAC Address, try again...
if exist support\settings.bak move /y support\settings.bak support\settings.bat>nul
@ping 127.0.0.1 -n 5 -w 1000> nul
exit
:noMACcmd
findStr /I /C:" LetterBomb" temp\cmdinput.txt >nul
IF not ERRORLEVEL 1 (set EXPLOIT=W) & (set macaddress=S)
:cmdlineDiscExploits
findStr /I /C:" IndianaPwns" temp\cmdinput.txt >nul
IF not ERRORLEVEL 1 set EXPLOIT=L
findStr /I /C:" Bathaxx" temp\cmdinput.txt >nul
IF not ERRORLEVEL 1 set EXPLOIT=LB
findStr /I /C:" ROTJ" temp\cmdinput.txt >nul
IF not ERRORLEVEL 1 set EXPLOIT=LS
findStr /I /C:" YuGiOwned" temp\cmdinput.txt >nul
IF not ERRORLEVEL 1 set EXPLOIT=Y
findStr /I /C:" SmashStack" temp\cmdinput.txt >nul
IF not ERRORLEVEL 1 set EXPLOIT=S
if /i "%FIRMSTART%" NEQ "o" goto:notwi
findStr /I /C:" Twilight" temp\cmdinput.txt >nul
IF not ERRORLEVEL 1 set EXPLOIT=T
:notwi
if /i "%FIRMSTART%" NEQ "V" goto:noBE
findStr /I /C:" Browser" temp\cmdinput.txt >nul
IF not ERRORLEVEL 1 set EXPLOIT=BE
:noBE
findStr /I /C:" AllExploits" temp\cmdinput.txt >nul
IF not ERRORLEVEL 1 set EXPLOIT=?
::apply default exploits
if not "%EXPLOIT%"=="" goto:nocmdlineDiscExploits
if /i "%firmstart%" EQU "4.3" set EXPLOIT=?
if /i "%firmstart%" EQU "o" set EXPLOIT=?
if /i "%firmstart%" EQU "V" set EXPLOIT=?
:nocmdlineDiscExploits
::set macaddress to (S)kip for letterbomb if no MAC provided and all exploits selected
if not "%macaddress%"=="" goto:skip
if /i "%EXPLOIT%" NEQ "?" goto:skip
if /i "%firmstart%" EQU "4.3" set macaddress=S
:skip
goto:go
::---------------------------------
:cmdlineRegionChange
set MENU1=%one%
set FIRMSTART=
if /i "%two:~0,3%" EQU "4.3" set FIRM=%two:~0,3%
if /i "%two:~0,3%" EQU "4.2" set FIRM=%two:~0,3%
if /i "%two:~0,3%" EQU "4.1" set FIRM=%two:~0,3%
if "%firm%"=="" (echo "%two:~0,3%" is not a valid input, try again...) & (if exist support\settings.bak move /y support\settings.bak support\settings.bat>nul) & (@ping 127.0.0.1 -n 5 -w 1000> nul) & (exit)
if /i "%two:~3,1%" EQU "U" set REGION=%two:~3,1%
if /i "%two:~3,1%" EQU "E" set REGION=%two:~3,1%
if /i "%two:~3,1%" EQU "J" set REGION=%two:~3,1%
if /i "%two:~3,1%" EQU "K" set REGION=%two:~3,1%
if "%region%"=="" (echo "%two:~3,1%" is not a valid input, try again...) & (if exist support\settings.bak move /y support\settings.bak support\settings.bat>nul) & (@ping 127.0.0.1 -n 5 -w 1000> nul) & (exit)
findStr /I /C:" Guide" temp\cmdinput.txt >nul
IF ERRORLEVEL 1 (set cmdguide=) else (set cmdguide=G)
if /i "%cmdguide%" EQU "G" set settings=G
::----themes----
findStr /I /C:" Red" temp\cmdinput.txt >nul
IF ERRORLEVEL 1 (set ThemeSelection=N) else (set ThemeSelection=R)
if /i "%ThemeSelection%" EQU "R" goto:donecmdthemes
findStr /I /C:" Green" temp\cmdinput.txt >nul
IF ERRORLEVEL 1 (set ThemeSelection=N) else (set ThemeSelection=G)
if /i "%ThemeSelection%" EQU "G" goto:donecmdthemes
findStr /I /C:" Blue" temp\cmdinput.txt >nul
IF ERRORLEVEL 1 (set ThemeSelection=N) else (set ThemeSelection=BL)
if /i "%ThemeSelection%" EQU "BL" goto:donecmdthemes
findStr /I /C:" Orange" temp\cmdinput.txt >nul
IF ERRORLEVEL 1 (set ThemeSelection=N) else (set ThemeSelection=O)
if /i "%ThemeSelection%" EQU "O" goto:donecmdthemes
:donecmdthemes
goto:go
::---------------------------------
:cmdlineUSBLoaderSetup
set MENU1=%one%
::Loader - GX (or 1) is default
set LOADER=GX
findStr /I /C:" CFG-FLOW-GX" temp\cmdinput.txt >nul
IF NOT ERRORLEVEL 1 (set LOADER=ALL) & (goto:donecmdloader)
findStr /I /C:" CFG" temp\cmdinput.txt >nul
IF NOT ERRORLEVEL 1 (set LOADER=CFG) & (goto:donecmdloader)
findStr /I /C:" FLOW" temp\cmdinput.txt >nul
IF NOT ERRORLEVEL 1 set LOADER=FLOW
:donecmdloader
::USB-Loader Config files (USB is default)
findStr /I /C:" SDConfig" temp\cmdinput.txt >nul
IF ERRORLEVEL 1 (set USBCONFIG=USB) else (set USBCONFIG=SD)
findStr /I /C:" Guide" temp\cmdinput.txt >nul
IF ERRORLEVEL 1 (set cmdguide=) else (set cmdguide=G)
if /i "%cmdguide%" EQU "G" set settings=G
goto:go
::---------------------------------
:cmdlinesyscheck
set MENU1=SU
findStr /I /C:".csv" temp\cmdinput.txt >nul
IF ERRORLEVEL 1 (echo A csv file was not identified, try again...) & (if exist support\settings.bak move /y support\settings.bak support\settings.bat>nul) & (@ping 127.0.0.1 -n 5 -w 1000> nul) & (exit)
copy /y temp\cmdinput.txt temp\cmdinput2.txt>nul
support\sfk filter -spat temp\cmdinput2.txt -rep _".csv*"_".csv"_ -write -yes>nul
set /p sysCheckName= <temp\cmdinput2.txt
if /i "%syscheckname:~0,3%" EQU "SU " set "syscheckname=%syscheckname:~3%"
if not exist "%sysCheckName%" (echo The csv file identified does not exist, try again...) & (if exist support\settings.bak move /y support\settings.bak support\settings.bat>nul) & (@ping 127.0.0.1 -n 5 -w 1000> nul) & (exit)
findStr /I /C:"syscheck" "%sysCheckName%" >nul
IF ERRORLEVEL 1 (echo This is not a valid SysCheck log, try again...) & (if exist support\settings.bak move /y support\settings.bak support\settings.bat>nul) & (@ping 127.0.0.1 -n 5 -w 1000> nul) & (exit)
echo "%syscheckname%">temp\cmdinput2.txt
::remove from temp\cmdinput.txt (compensate for _'s by replacing them with \x5f)
support\sfk -spat filter temp\cmdinput2.txt -lsrep _\x22__ -lerep _\x22__ -rep _\x5f_\x5c\x22_ -write -yes>nul
support\sfk -spat filter -quiet temp\cmdinput2.txt -rep _\x22_x5f_ -write -yes
::remove cmdinput.txt
set /p removeme= <temp\cmdinput2.txt
support\sfk -spat filter temp\cmdinput.txt -rep _" %removeme%"__ -write -yes>nul
del temp\cmdinput2.txt>nul
findStr /I /C:" Guide" temp\cmdinput.txt >nul
IF ERRORLEVEL 1 (set cmdguide=) else (set cmdguide=G)
if /i "%cmdguide%" EQU "G" set settings=G
::goto:sysCheckAnalyzer
goto:go
::---------------------------------
:cmdlineloadqueue
set MENU1=L
if /i "%cmdlinemodeswitchoff%" NEQ "Y" goto:notdragged
::dragged
findStr /I /C:":endofqueue" "%cmdinput%" >nul
IF ERRORLEVEL 1 (echo Not a valid ModMii Download Queue...) & (if exist support\settings.bak move /y support\settings.bak support\settings.bat>nul) & (@ping 127.0.0.1 -n 5 -w 1000> nul) & (exit)
support\sfk filter -spat temp\cmdinput.txt -rep _*\__ -write -yes>nul
set /p two= <temp\cmdinput.txt
if not exist "temp\DownloadQueues" mkdir "temp\DownloadQueues"
copy /y "%cmdinput%" "temp\DownloadQueues\%two%">nul
goto:skip
:notdragged
set "two=%cmdinput:~2%"
:skip
if "%two:~-4%" EQU ".bat" set "two=%two:~0,-4%"
if exist "temp\DownloadQueues\%two%.bat" set "DLQUEUE=%two%"
if "%DLQUEUE%"=="" (echo "%two%" does not exist, try again...) & (if exist support\settings.bak move /y support\settings.bak support\settings.bat>nul) & (@ping 127.0.0.1 -n 5 -w 1000> nul) & (exit)
set "CurrentQueue=%DLQUEUE%.bat"
goto:go
::---------------------------------
:cmdlineabstinenceWizard
set MENU1=S
set AbstinenceWiz=Y
set SNEEKSELECT=3
if /i "%two%" EQU "4.3" set FIRMSTART=%two%
if /i "%two%" EQU "4.2" set FIRMSTART=%two%
if /i "%two%" EQU "4.1" set FIRMSTART=%two%
if /i "%two%" EQU "4.0" set FIRMSTART=%two%
if /i "%two%" EQU "3.X" set FIRMSTART=%two%
if /i "%two%" EQU "o" set FIRMSTART=%two%
if "%firmstart%"=="" (echo "%two%" is not a valid input, try again...) & (if exist support\settings.bak move /y support\settings.bak support\settings.bat>nul) & (@ping 127.0.0.1 -n 5 -w 1000> nul) & (exit)
if /i "%three%" EQU "S" set SNEEKTYPE=%three%
if /i "%three%" EQU "U" set SNEEKTYPE=%three%
if /i "%three%" EQU "SD" set SNEEKTYPE=%three%
if /i "%three%" EQU "UD" set SNEEKTYPE=%three%
if "%SNEEKTYPE%"=="" (echo "%three%" is not a valid input, try again...) & (if exist support\settings.bak move /y support\settings.bak support\settings.bat>nul) & (@ping 127.0.0.1 -n 5 -w 1000> nul) & (exit)
set DITYPE=off
if /i "%SNEEKTYPE%" EQU "UD" set DITYPE=on
if /i "%SNEEKTYPE%" EQU "SD" set DITYPE=on
if /i "%four%" EQU "4.3" set SNKVERSION=%four%
if /i "%four%" EQU "4.2" set SNKVERSION=%four%
if /i "%four%" EQU "4.1" set SNKVERSION=%four%
if "%SNKVERSION%"=="" (echo "%four%" is not a valid input, try again...) & (if exist support\settings.bak move /y support\settings.bak support\settings.bat>nul) & (@ping 127.0.0.1 -n 5 -w 1000> nul) & (exit)
if /i "%five%" EQU "U" set SNKREGION=%five%
if /i "%five%" EQU "E" set SNKREGION=%five%
if /i "%five%" EQU "J" set SNKREGION=%five%
if /i "%five%" EQU "K" set SNKREGION=%five%
if "%SNKREGION%"=="" (echo "%five%" is not a valid input, try again...) & (if exist support\settings.bak move /y support\settings.bak support\settings.bat>nul) & (@ping 127.0.0.1 -n 5 -w 1000> nul) & (exit)
findStr /I /C:" Guide" temp\cmdinput.txt >nul
IF ERRORLEVEL 1 (set cmdguide=) else (set cmdguide=G)
if /i "%cmdguide%" EQU "G" set settings=G
::parse other variables from other sections
goto:SNKserialCMD
::then after goto:cmdlineExploitCheck
::---------------------------------
:cmdlinesneekinstaller
::if not "%three%"=="" goto:cmdlineemunandbuilder
set MENU1=S
set SNEEKSELECT=1
if /i "%two%" EQU "S" set SNEEKTYPE=%two%
if /i "%two%" EQU "U" set SNEEKTYPE=%two%
if /i "%two%" EQU "SD" set SNEEKTYPE=%two%
if /i "%two%" EQU "UD" set SNEEKTYPE=%two%
if "%SNEEKTYPE%"=="" (echo "%two%" is not a valid input, try again...) & (if exist support\settings.bak move /y support\settings.bak support\settings.bat>nul) & (@ping 127.0.0.1 -n 5 -w 1000> nul) & (exit)
::-----------Rev:#---------------
set neekrev=1
findStr /I /C:" Rev:" temp\cmdinput.txt >nul
IF ERRORLEVEL 1 (goto:noRevcmd) else (copy /y temp\cmdinput.txt temp\cmdinput2.txt>nul)
set neekrev=
support\sfk filter -spat temp\cmdinput2.txt -rep _"* Rev:"__ -rep _\x20*__ -write -yes>nul
set /p CurrentRev= <temp\cmdinput2.txt
::remove hard option from cmdinput.txt
set /p removeme= <temp\cmdinput2.txt
support\sfk -spat filter temp\cmdinput.txt -rep _" Rev:%removeme%"__ -write -yes>nul
if /i "%neek2o%" EQU "ON" (set googlecode=neek2o) & (set neekname=neek2o)
if /i "%neek2o%" NEQ "ON" (set googlecode=sneeky-compiler-modmii) & (set neekname=neek)
if exist "temp\%neekname%\%neekname%-rev%CurrentRev%.zip" goto:noRevcmd
echo Downloading %neekname%-rev%CurrentRev%.zip...
support\wget --no-check-certificate -t 3 "https://master.dl.sourceforge.net/project/%googlecode%/%neekname%-rev%CurrentRev%.zip" -q --show-progress
if not exist "%neekname%-rev%CurrentRev%.zip" (echo "%CurrentRev%" is not a valid input, using latest version instead...) & (echo check this URL for available versions: https://sourceforge.net/projects/%googlecode%/files/?source=navbar) & (@ping 127.0.0.1 -n 5 -w 1000> nul) & (set neekrev=1) & (set CurrentRev=) & (goto:noRevcmd)
if not exist "temp\%neekname%" mkdir "temp\%neekname%"
move /y "%neekname%-rev%CurrentRev%.zip" "temp\%neekname%\%neekname%-rev%CurrentRev%.zip">nul
:noRevcmd
goto:go
::---------------------------------
:cmdlineemunandbuilder
set MENU1=S
if /i "%one%" EQU "E" set SNEEKSELECT=2
if /i "%one%" EQU "SE" set SNEEKSELECT=3
if /i "%two%" EQU "S" set SNEEKTYPE=%two%
if /i "%two%" EQU "U" set SNEEKTYPE=%two%
if /i "%two%" EQU "SD" set SNEEKTYPE=%two%
if /i "%two%" EQU "UD" set SNEEKTYPE=%two%
if "%SNEEKTYPE%"=="" (echo "%two%" is not a valid input, try again...) & (if exist support\settings.bak move /y support\settings.bak support\settings.bat>nul) & (@ping 127.0.0.1 -n 5 -w 1000> nul) & (exit)
set DITYPE=off
if /i "%SNEEKTYPE%" EQU "UD" set DITYPE=on
if /i "%SNEEKTYPE%" EQU "SD" set DITYPE=on
if /i "%three%" EQU "4.3" set SNKVERSION=%three%
if /i "%three%" EQU "4.2" set SNKVERSION=%three%
if /i "%three%" EQU "4.1" set SNKVERSION=%three%
if /i "%SNEEKSELECT%" EQU "3" goto:skip
if /i "%three%" EQU "V" set SNKVERSION=%three%
:skip
if "%SNKVERSION%"=="" (echo "%three%" is not a valid input, try again...) & (if exist support\settings.bak move /y support\settings.bak support\settings.bat>nul) & (@ping 127.0.0.1 -n 5 -w 1000> nul) & (exit)
if /i "%four%" EQU "U" set SNKREGION=%four%
if /i "%four%" EQU "E" set SNKREGION=%four%
if /i "%four%" EQU "J" set SNKREGION=%four%
if /i "%SNKVERSION%" EQU "V" goto:skip
if /i "%four%" EQU "K" set SNKREGION=%four%
:skip
if "%SNKREGION%"=="" (echo "%four%" is not a valid input, try again...) & (if exist support\settings.bak move /y support\settings.bak support\settings.bat>nul) & (@ping 127.0.0.1 -n 5 -w 1000> nul) & (exit)
:SNKserialCMD
::-----------SN: (ie. SN:LU111111111)---------------
findStr /I /C:" SN:" temp\cmdinput.txt >nul
if ERRORLEVEL 1 (goto:noSNcmd) else (copy /y temp\cmdinput.txt temp\cmdinput2.txt>nul)
support\sfk filter -spat temp\cmdinput2.txt -rep _"* SN:"__ -rep _\x20*__ -write -yes>nul
set /p SNKSERIAL= <temp\cmdinput2.txt
::remove hard option from cmdinput.txt
set /p removeme= <temp\cmdinput2.txt
support\sfk -spat filter temp\cmdinput.txt -rep _" SN:%removeme%"__ -write -yes>nul
::limit user input to X# of digits
if "%SNKSERIAL:~2%"=="" (goto:badsnkkey)
if "%SNKSERIAL:~3%"=="" (goto:badsnkkey)
if "%SNKSERIAL:~4%"=="" (goto:badsnkkey)
if "%SNKSERIAL:~5%"=="" (goto:badsnkkey)
if "%SNKSERIAL:~6%"=="" (goto:badsnkkey)
if "%SNKSERIAL:~7%"=="" (goto:badsnkkey)
if "%SNKSERIAL:~8%"=="" (goto:badsnkkey)
if "%SNKSERIAL:~9%"=="" (goto:badsnkkey)
if "%SNKSERIAL:~10%"=="" (goto:badsnkkey)
if /i "%SNKREGION%" EQU "U" goto:skip
::if "%SNKSERIAL:~11%"=="" (goto:badsnkkey)
:skip
if not "%SNKSERIAL:~12%"=="" (goto:badsnkkey)
::next page
goto:skipSNdefaults
:badsnkkey
echo "%SNKSERIAL%" is not a valid input, try again...
if exist support\settings.bak move /y support\settings.bak support\settings.bat>nul
@ping 127.0.0.1 -n 5 -w 1000> nul
exit
:noSNcmd
if /i "%SNKREGION%" EQU "U" set SNKSERIAL=LU521175683
if /i "%SNKREGION%" EQU "E" set SNKSERIAL=LEH133789940
if /i "%SNKREGION%" EQU "J" set SNKSERIAL=LJM101175683
if /i "%SNKREGION%" EQU "K" set SNKSERIAL=LKM101175683
:skipSNdefaults
::-----------Rev:#---------------
set neekrev=1
findStr /I /C:" Rev:" temp\cmdinput.txt >nul
IF ERRORLEVEL 1 (goto:noRevcmd) else (copy /y temp\cmdinput.txt temp\cmdinput2.txt>nul)
set neekrev=
support\sfk filter -spat temp\cmdinput2.txt -rep _"* Rev:"__ -rep _\x20*__ -write -yes>nul
set /p CurrentRev= <temp\cmdinput2.txt
::remove hard option from cmdinput.txt
set /p removeme= <temp\cmdinput2.txt
support\sfk -spat filter temp\cmdinput.txt -rep _" Rev:%removeme%"__ -write -yes>nul
if /i "%neek2o%" EQU "ON" (set googlecode=neek2o) & (set neekname=neek2o)
if /i "%neek2o%" NEQ "ON" (set googlecode=sneeky-compiler-modmii) & (set neekname=neek)
::---------------SKIN MODE-------------
if /i "%SkinMode%" EQU "Y" goto:noRevcmd
if exist "temp\%neekname%\%neekname%-rev%CurrentRev%.zip" goto:noRevcmd
echo Downloading %neekname%-rev%CurrentRev%.zip...
support\wget --no-check-certificate -t 3 "https://master.dl.sourceforge.net/project/%googlecode%/%neekname%-rev%CurrentRev%.zip" -q --show-progress
if not exist "%neekname%-rev%CurrentRev%.zip" (echo "%CurrentRev%" is not a valid input, using latest version instead...) & (echo check this URL for available versions: https://sourceforge.net/projects/%googlecode%/files/?source=navbar) & (@ping 127.0.0.1 -n 5 -w 1000> nul) & (set neekrev=1) & (set CurrentRev=) & (goto:noRevcmd)
if not exist "temp\%neekname%" mkdir "temp\%neekname%"
move /y "%neekname%-rev%CurrentRev%.zip" "temp\%neekname%\%neekname%-rev%CurrentRev%.zip">nul
:noRevcmd
::----------Other-----------
::set defaults
set ThemeSelection=N
set SNKPLC=N
set SNKOHBC=N
set SNKCIOS=N
set SNKcBC=N
set SNKPRI=N
set SNKFLOW=N
set SNKS2U=N
set SNKnswitch=N
set MIIQ=N
set PIC=N
set NET=N
set WEATHER=N
set NEWS=N
set SHOP=N
set SPEAK=N
if /i "%SNKVERSION%" EQU "V" goto:notUorUD
if /i "%SNEEKTYPE:~0,1%" NEQ "U" goto:notUorUD
findStr /I /C:" S2U" temp\cmdinput.txt >nul
IF ERRORLEVEL 1 (set SNKS2U=N) else (set SNKS2U=Y)
:notUorUD
findStr /I /C:" nswitch" temp\cmdinput.txt >nul
IF ERRORLEVEL 1 (set SNKnswitch=N) else (set SNKnswitch=Y)
findStr /I /C:" CH" temp\cmdinput.txt >nul
IF ERRORLEVEL 1 (set MIIQ=N) else (set MIIQ=Y)
::if /i "%MIIQ%" EQU "Y" set MIIQ=Y
if /i "%MIIQ%" EQU "Y" set PIC=Y
if /i "%MIIQ%" EQU "Y" set SHOP=Y
if /i "%SNKREGION%" EQU "K" goto:nomoreKchannels
if /i "%MIIQ%" EQU "Y" set NET=Y
::if /i "%MIIQ%" EQU "Y" set WEATHER=Y
::if /i "%MIIQ%" EQU "Y" set NEWS=Y
::if /i "%MIIQ%" EQU "Y" set SPEAK=Y
:nomoreKchannels
if /i "%MIIQ%" EQU "Y" goto:alreadygotallchannels
findStr /I /C:" PHOTO" temp\cmdinput.txt >nul
IF ERRORLEVEL 1 (set PIC=N) else (set PIC=Y)
findStr /I /C:" SHOP" temp\cmdinput.txt >nul
IF ERRORLEVEL 1 (set SHOP=N) else (set SHOP=Y)
findStr /I /C:" MII" temp\cmdinput.txt >nul
IF ERRORLEVEL 1 (set MIIQ=N) else (set MIIQ=Y)
if /i "%SNKREGION%" EQU "K" goto:alreadygotallchannels
::findStr /I /C:" SPEAK" temp\cmdinput.txt >nul
::IF ERRORLEVEL 1 (set SPEAK=N) else (set SPEAK=Y)
::findStr /I /C:" NEWS" temp\cmdinput.txt >nul
::IF ERRORLEVEL 1 (set NEWS=N) else (set NEWS=Y)
findStr /I /C:" NET" temp\cmdinput.txt >nul
IF ERRORLEVEL 1 (set NET=N) else (set NET=Y)
::findStr /I /C:" WEATHER" temp\cmdinput.txt >nul
::IF ERRORLEVEL 1 (set WEATHER=N) else (set WEATHER=Y)
:alreadygotallchannels
findStr /I /C:" PLC" temp\cmdinput.txt >nul
IF ERRORLEVEL 1 (set SNKPLC=N) else (set SNKPLC=Y)
findStr /I /C:" OHBC" temp\cmdinput.txt >nul
IF ERRORLEVEL 1 (set SNKOHBC=N) else (set SNKOHBC=Y)
if /i "%SNKVERSION%" EQU "V" goto:skipPri
findStr /I /C:" 249" temp\cmdinput.txt >nul
IF ERRORLEVEL 1 (set SNKcIOS=N) else (set SNKcIOS=Y)
findStr /I /C:" NMM" temp\cmdinput.txt >nul
IF ERRORLEVEL 1 (set SNKcBC=N) else (set SNKcBC=NMM)
::DML only if using SNEEK+DI and if NMM is not also selected
if /i "%SNKcBC%" EQU "NMM" goto:skipDMLcmd
if /i "%SNEEKTYPE%" NEQ "SD" goto:skipDMLcmd
findStr /I /C:" DML" temp\cmdinput.txt >nul
IF ERRORLEVEL 1 (set SNKcBC=N) else (set SNKcBC=DML)
:skipDMLcmd
findStr /I /C:" Pri" temp\cmdinput.txt >nul
IF ERRORLEVEL 1 (set SNKPRI=N) else (set SNKPRI=Y)
:skipPri
findStr /I /C:" FLOW" temp\cmdinput.txt >nul
IF ERRORLEVEL 1 (set SNKFLOW=N) else (set SNKFLOW=Y)
::----themes----
findStr /I /C:" Red" temp\cmdinput.txt >nul
IF ERRORLEVEL 1 (set ThemeSelection=N) else (set ThemeSelection=R)
if /i "%ThemeSelection%" EQU "R" goto:donecmdthemes
findStr /I /C:" Green" temp\cmdinput.txt >nul
IF ERRORLEVEL 1 (set ThemeSelection=N) else (set ThemeSelection=G)
if /i "%ThemeSelection%" EQU "G" goto:donecmdthemes
findStr /I /C:" Blue" temp\cmdinput.txt >nul
IF ERRORLEVEL 1 (set ThemeSelection=N) else (set ThemeSelection=BL)
if /i "%ThemeSelection%" EQU "BL" goto:donecmdthemes
findStr /I /C:" Orange" temp\cmdinput.txt >nul
IF ERRORLEVEL 1 (set ThemeSelection=N) else (set ThemeSelection=O)
if /i "%ThemeSelection%" EQU "O" goto:donecmdthemes
:donecmdthemes
if /i "%AbstinenceWiz%" EQU "Y" goto:cmdlineExploitCheck
goto:go
::---------------------------------
:go
title ModMii...
if exist temp\cmdinput.txt del temp\cmdinput.txt>nul
if exist temp\cmdinput2.txt del temp\cmdinput2.txt>nul
::mode con cols=85 lines=54
support\nircmd.exe win setsize ititle "ModMii..." 0 0 705 820
::support\nircmd.exe win setsize title "Administrator: ModMii..." 0 0 705 820
title ModMii
::support\cmdow.exe ModMii /siz 650 820
color %backgroundcolor%%whitetext%
goto:defaultsettings
:notcmd
::---------------------------------------------------------
title ModMii...
::mode con cols=85 lines=54
support\nircmd.exe win setsize ititle "ModMii..." 0 0 705 820
::support\nircmd.exe win setsize title "Administrator: ModMii..." 0 0 705 820
title ModMii
::support\cmdow.exe ModMii /siz 650 820
color %backgroundcolor%%whitetext%
::SET FILENAME=%~nx0 //this returns the name of the batch file running (doesn't work when packaged in an exe)
::SET PATHNAME=%0 //this returns the filename but also with absolute path
if exist support\skipscam.txt goto:skip
if /i "%agreedversion%" EQU "%currentversion%" goto:skip
::Bushing from Team Twizzers specifically requested ModMii include a scam warning
set warning="
echo ModMii
echo by XFlak
echo.
echo.
echo.
support\sfk echo -spat \x20 \x20 \x20 \x20 \x20 \x20 \x20 \x20 \x20 \x20 \x20 \x20 \x20 [%redtext%] THIS SOFTWARE IS NOT FOR SALE.
echo.
echo IF YOU PAID FOR THIS SOFTWARE OR RECEIVED IT AS PART OF A "BUNDLE"
echo YOU HAVE BEEN SCAMMED AND YOU SHOULD DEMAND YOUR MONEY BACK IMMEDIATELY
echo.
echo.
support\sfk echo -spat \x20 \x20 \x20 \x20 \x20 \x20 \x20 \x20 \x20 \x20 \x20 \x20 \x20 \x20 [%redtext%] USE THIS AT YOUR OWN RISK!
echo.
echo THIS PACKAGE COMES WITH ABSOLUTELY NO WARRANTY, NEITHER STATED NOR IMPLIED.
echo NO ONE BUT YOURSELF IS TO BE HELD RESPONSIBLE FOR ANY DAMAGE THIS MAY CAUSE
echo TO YOUR NINTENDO WII CONSOLE!
echo.
echo.
echo.
echo Please type the word "I" followed by the word "Agree"
echo with a space between those two words and
echo then press "Enter" to continue.
echo.
echo If you can't follow those instructions,
echo then you have no business modding anything.
echo.
echo.
echo.
echo.
echo.
echo.
echo.
set /p warning=Enter Selection Here:
set "warning=%warning:"=%"
if /i "%warning%" EQU "I Agree" goto:skip
if /i "%warning%" EQU "skipscam" goto:doit
if /i "%warning%" NEQ "skip scam" goto:dontdoit
:doit
if exist support\skipscam.txt attrib -r -h -s support\skipscam.txt
echo %currentversion%>Support\skipscam.txt
attrib +r +h +s support\skipscam.txt
goto:skip
:dontdoit
echo.
echo Exiting ModMii...
@ping 127.0.0.1 -n 2 -w 1000> nul
Exit
:skip
::Save version agreed to
if exist Support\settings.bat support\sfk filter -quiet Support\settings.bat -ls!"set AGREEDVERSION=" -write -yes
echo set AGREEDVERSION=%currentversion%>> Support\settings.bat
:DefaultSettings
::----LOAD SETTINGS (if exist)----
if exist Support\settings.bat call Support\settings.bat
call "Support\subscripts\DB.bat"
::-----default settings (default applies even if a single variable is missing from settings.bat)------
IF "%ROOTSAVE%"=="" set ROOTSAVE=off
IF "%effect%"=="" set effect=No-Spin
IF "%PCSAVE%"=="" set PCSAVE=Auto
::IF "%OPTION1%"=="" set OPTION1=off
IF "%AudioOption%"=="" set AudioOption=on
IF "%hermesOPTION%"=="" set hermesOPTION=off
IF "%CMIOSOPTION%"=="" set CMIOSOPTION=off
IF "%FWDOPTION%"=="" set FWDOPTION=on
IF "%ExtraProtectionOPTION%"=="" set ExtraProtectionOPTION=on
IF "%Drive%"=="" set Drive=COPY_TO_SD
IF "%DriveU%"=="" set DriveU=COPY_TO_USB
IF "%ACTIVEIOS%"=="" set ACTIVEIOS=on
IF "%AUSKIP%"=="" set AUSKIP=off
IF "%AUTOUPDATE%"=="" set AUTOUPDATE=on
IF "%ModMiiverbose%"=="" set ModMiiverbose=off
IF "%sneekverbose%"=="" set sneekverbose=off
IF "%neek2o%"=="" set neek2o=on
IF "%SSD%"=="" set SSD=off
::IF "%discexverify%"=="" set discexverify=off
IF "%SNKFONT%"=="" set SNKFONT=B
IF "%skin%"=="" set skin=Default
::IF "%AutoDetectNL%"=="" set AutoDetectNL=
::IF "%AutoDetectDF%"=="" set AutoDetectDF=
if exist "Support\Skins\%skin%\Success.mp3" (set "Success.mp3=Support\Skins\%skin%\Success.mp3") else (set "Success.mp3=Support\Skins\Default\Success.mp3")
if exist "Support\Skins\%skin%\Fail.mp3" (set "Fail.mp3=Support\Skins\%skin%\Fail.mp3") else (set "Fail.mp3=Support\Skins\Default\Fail.mp3")
if exist "Support\Skins\%skin%\splash.png" (set "splash.png=Support\Skins\%skin%\splash.png") else (set "splash.png=Support\Skins\Default\splash.png")
::by default legacy apps are disabled (107 at present) less retroarch which should be updated later in 2025 (but will continue to exclude more_ra_arcade & more_ra_cores which are relatively large downloads)
if not exist Support\settings_skipped_apps.txt powershell echo "?100_Boxes_Wiiu?`n?AM64DSPatcher?`n?AocPatcher?`n?asturoids?`n?Bloopair?`n?cave?`n?cbhc?`n?cfwbooter?`n?CHIP8?`n?clock?`n?CloseHBL?`n?controller-test?`n?Crispy-Doom?`n?ddd?`n?diibugger?`n?disc2app?`n?disc2appWUTPort?`n?drc-test?`n?Fake-08?`n?fireplace-nx-wiiu?`n?flappy_bird?`n?flappy_bird_3d?`n?fsdumper?`n?ft2sd?`n?ftpiiu-cbhc?`n?ftpiiu?`n?ftpiiu_everywhere?`n?fuckyoustick?`n?gacubeboy?`n?GamepadTester?`n?gbiine?`n?geckiine?`n?haxchi?`n?HBL_Dpad?`n?hbl2hbc?`n?hid_keyboard_monitor?`n?hidtest?`n?hidtovpad?`n?homebrew_launcher?`n?IOSreboot?`n?iosuotp?`n?jezzballu?`n?keyboard_example?`n?lameIRCU?`n?LiveSynthesisU?`n?loadiine_gx2?`n?loadiine_gx2_y?`n?MegaZeux?`n?menu_sort?`n?Minesweeper_WiiU?`n?mocha?`n?mocha_fat32?`n?mocha_fshax?`n?mocha_sd_access?`n?more_ra_arcade?`n?more_ra_cores?`n?nanddumper?`n?nnupatcher?`n?Opensupaplex?`n?otp2sd?`n?ourloader?`n?PacmanGX2?`n?Pokemini?`n?PokeMiniU?`n?pong?`n?RemotePad?`n?savemii?`n?savemii_inject_mod?`n?saviine?`n?SDcafiine?`n?SDGeckiine?`n?seeprom2sd?`n?shutdown-hbl?`n?sign_c2w_patcher?`n?sigpatcher2HBL?`n?sigpatcher2sysmenu?`n?Simple_SDL_Snake?`n?sm4sh2sd?`n?snake?`n?spacegame?`n?spiik?`n?SuDokuL?`n?swapdrc?`n?swapdrc_lite?`n?swipswapme?`n?TetrisU?`n?tictactoe?`n?tik2sd?`n?timingu?`n?u-paint?`n?Uclick?`n?UFDiine?`n?UselessHomebrew?`n?VidChanger?`n?vwii-compat-installer?`n?vWii-NAND-Restorer?`n?vWii_decaffeinator?`n?WiiAlarmU?`n?wiiu-vnc?`n?wim?`n?wudump?`n?wup_installer_gx2?`n?wup_installer_gx2_mod?`n?wuphax?`n?wupinstaller?`n?wupymod?`n?yapesdl?">Support\settings_skipped_apps.txt
::check for supporting apps that AVs are known to remove
if not exist support\hexalter.exe (echo One or more of ModMii's supporting files are missing, redownloading...) & (set currentversion=0.0.0) & (@ping 127.0.0.1 -n 2 -w 1000> nul) & (goto:UpdateModMii)
if not exist support\nircmd.exe (echo One or more of ModMii's supporting files are missing, redownloading...) & (set currentversion=0.0.0) & (@ping 127.0.0.1 -n 2 -w 1000> nul) & (goto:UpdateModMii)
if not exist support\sfk.exe (echo One or more of ModMii's supporting files are missing, redownloading...) & (set currentversion=0.0.0) & (@ping 127.0.0.1 -n 2 -w 1000> nul) & (goto:UpdateModMii)
if not exist %WiiPy% (echo One or more of ModMii's supporting files are missing, redownloading...) & (set currentversion=0.0.0) & (@ping 127.0.0.1 -n 2 -w 1000> nul) & (goto:UpdateModMii)
if not exist support\wget.exe (echo One or more of ModMii's supporting files are missing, redownloading...) & (set currentversion=0.0.0) & (@ping 127.0.0.1 -n 2 -w 1000> nul) & (goto:UpdateModMii)
if not exist support\7za.exe (echo One or more of ModMii's supporting files are missing, redownloading...) & (set currentversion=0.0.0) & (@ping 127.0.0.1 -n 2 -w 1000> nul) & (goto:UpdateModMii)
if not exist support\jptch.exe (echo One or more of ModMii's supporting files are missing, redownloading...) & (set currentversion=0.0.0) & (@ping 127.0.0.1 -n 2 -w 1000> nul) & (goto:UpdateModMii)
::WizApp.exe only needed for skin
::recommended d2x version check = "RecD2XcIOS", but check no more than once per day
FOR /F "tokens=*" %%g IN ('support\sfk date') do (SET CurDate=%%g)
if not exist temp\d2xClassicCheck.txt echo whatever>temp\d2xClassicCheck.txt
findStr /I /X /C:"%CurDate% " "temp\d2xClassicCheck.txt" >nul
IF NOT ERRORLEVEL 1 goto:proceed
if exist temp\RecD2XcIOS.txt del temp\RecD2XcIOS.txt>nul
support\wget --no-check-certificate "https://github.com/xflak/stats/releases/latest/download/classic.txt" -O temp\RecD2XcIOS.txt -q
::delete if file is empty (if empty)
if exist "temp\RecD2XcIOS.txt" >nul findstr "^" "temp\RecD2XcIOS.txt" || del "temp\RecD2XcIOS.txt"
if not exist temp\RecD2XcIOS.txt goto:proceed
set /p RecD2XcIOS= <temp\RecD2XcIOS.txt
del "temp\RecD2XcIOS.txt">nul
if exist "Support\settings.bat" support\sfk filter -spat "Support\settings.bat" -ls!"set \x22RecD2XcIOS=" -write -yes>nul
echo Set "RecD2XcIOS=%RecD2XcIOS%">> Support\settings.bat
echo %CurDate% >temp\d2xClassicCheck.txt
:proceed
if /i "%cmdlinemode%" NEQ "Y" if /i "%AUTOUPDATE%" EQU "on" goto:UpdateModMii
::......................................................MAIN MENU..............................................
:MENU
color %backgroundcolor%%whitetext%
if exist temp\ModMii_Log.bat del temp\ModMii_Log.bat>nul
if exist temp\DLgotos-copy.txt del temp\DLgotos-copy.txt>nul
::----restore settings if applicable (download queue and sneek nand builder)----
IF "%MENU1%"=="" goto:NOCLEAR
if /i "%MENU1%" NEQ "O" goto:Cleartempsettings
goto:NOCLEAR
:Cleartempsettings
Set ROOTSAVE=%ROOTSAVETEMP%
::Set Option1=%Option1TEMP%
if exist Support\settings.bat call Support\settings.bat
:NOCLEAR
::---SET TEMP SETTINGS FOR DL QUE---
Set ROOTSAVETEMP=%ROOTSAVE%
::Set Option1TEMP=%Option1%
::variables that interfere with cmd line wizard
::---------------CMD LINE MODE-------------
if /i "%cmdlinemode%" EQU "Y" goto:MENUafterbadvars
SET VIRGIN=
set REGIONCHANGE=
SET FIRMSTART=
set ctype=
set macaddress=
set PIC=
set NET=
set WEATHER=
set NEWS=
set SHOP=
set SPEAK=
set MIIQ=
set REGION=
set SNKREGION=
set UpdatesIOSQ=
set SNEEKTYPE=
set SNEEKSELECT=
set USBGUIDE=
set LOADER=
SET EXPLOIT=default
if /i "%USBCONFIG%" EQU "USB" set "DRIVE=%DRIVETEMP%"
set addwadfolder=
set AbstinenceWiz=
:MENUafterbadvars
set ADVSLOT2=247
set ADVVERSION2=65535
set REALDRIVE=
set MORE=
SET DEC=
SET HEX=
SET VER=
SET CONFIRM=
set loadorgo=go
set SMAPP=
set customSMfix=
set secondmmmrun=
::SET EXPLOIT=default
set exploitselection=
set COPY=
set DLTOTAL=0
set OPTIONS=
set DB=N
::if /i "%USBCONFIG%" EQU "USB" set "DRIVE=%DRIVETEMP%"
::set USBGUIDE=
::set LOADER=
::set SNEEKTYPE=
::set SNEEKSELECT=
::set patchIOSnum=36 or 236
::--followup--
IF "%Drive%"=="" set Drive=COPY_TO_SD
IF "%DriveU%"=="" set DriveU=COPY_TO_USB
set DRIVErestore=
if /i "%cmdlinemode%" NEQ "Y" set USBCONFIG=
::set USBCONFIG=
::if second char is ":" check if drive exists
if /i "%DRIVE:~1,1%" NEQ ":" goto:skipcheck
if not exist "%DRIVE:~0,2%" set DRIVE=COPY_TO_SD
:skipcheck
::if second char is ":" check if driveU exists
if /i "%DRIVEU:~1,1%" NEQ ":" goto:skipcheck
if not exist "%DRIVEU:~0,2%" set DRIVE=COPY_TO_USB
:skipcheck
:CLEAR
set basewad=none
set basewadb=none
set CurrentDLNAME=
set AdvNumber=0
if exist temp\DLnamesADV.txt del temp\DLnamesADV.txt>nul
if exist temp\DLgotosADV.txt del temp\DLgotosADV.txt>nul
set EULAU=
set EULAE=
set EULAJ=
set EULAK=
set RSU=
set RSE=
set RSJ=
set RSK=
set HAZA=
set vRSU=
set vRSE=
set vRSJ=
set BC=
set BCnand=
set BCwfs=
set SM4.1U=
set SM4.2U=
set SM4.3U=
set SM4.1E=
set SM4.2E=
set SM4.3E=
set SM4.1J=
set SM4.2J=
set SM4.3J=
set SM4.1K=
set SM4.2K=
set SM4.3K=
set vSM4.3U=
set vSM4.3E=
set vSM4.3J=
set SM4.3U-DWR=
set SM4.2U-DWR=
set SM4.1U-DWR=
set SM4.3E-DWR=
set SM4.2E-DWR=
set SM4.1E-DWR=
set SM4.3J-DWR=
set SM4.2J-DWR=
set SM4.1J-DWR=
set SM4.3K-DWR=
set SM4.2K-DWR=
set SM4.1K-DWR=
set SM4.3U-DWG=
set SM4.2U-DWG=
set SM4.1U-DWG=
set SM4.3E-DWG=
set SM4.2E-DWG=
set SM4.1E-DWG=
set SM4.3J-DWG=
set SM4.2J-DWG=
set SM4.1J-DWG=
set SM4.3K-DWG=
set SM4.2K-DWG=
set SM4.1K-DWG=
set SM4.3U-DWB=
set SM4.2U-DWB=
set SM4.1U-DWB=
set SM4.3E-DWB=
set SM4.2E-DWB=
set SM4.1E-DWB=
set SM4.3J-DWB=
set SM4.2J-DWB=
set SM4.1J-DWB=
set SM4.3K-DWB=
set SM4.2K-DWB=
set SM4.1K-DWB=
set SM4.3U-DWO=
set SM4.2U-DWO=
set SM4.1U-DWO=
set SM4.3E-DWO=
set SM4.2E-DWO=
set SM4.1E-DWO=
set SM4.3J-DWO=
set SM4.2J-DWO=
set SM4.1J-DWO=
set SM4.3K-DWO=
set SM4.2K-DWO=
set SM4.1K-DWO=
set IOS30=
set IOS30P60=
set IOS40P60=
set IOS20P60=
set IOS11P60=
set IOS50P=
set IOS52P=
set IOS60=
set IOS60P=
set IOS70=
set IOS80=
set IOS236=
set IOS70K=
set IOS80K=
set BB1=
set BB2=
set HM=
set IOS236Installer=
set SIP=
set DumpMii=
set casper=
set Wilbrand=
set syscheck=
set locked=
set AccioHacks=
set usbgx=
set nintendont=
set MyM=
set HBB=
set WII64=
set Not64=
set Dolphin=
set FILEZILLA=
set hxd=
set Diskitude=
set WiiLink=
set Cemu=
set Nkit=
set RC24=
set SDTEST=
set HashMF=
set ThemeMiiMod=
set UStealth=
set UWUVCI=
set GCBM=
set NUSGet=
set ftpii=
set CheatZip=
set AccountSwap=
set OSClib=
set HBASlib=
set OSC=
set WIISX=
set bootmiisd=
set pwns=
set twi=
set twi2=
set YUGI=
set Bathaxx=
set ROTJ=
set TOS=
set smash=
set mmm=
set CleanRip=
set clean=
set code1=
set OSCmode=
set HBASmode=
set ARC=
set KK=
set yawm=
set neogamma=
set usbfolder=
set WiiMC=
set Bloopair=
set Inkay=
set Aroma=
set wup_installer_gx2_wuhb=
set wudd=
set GiveMiiYouTube=
set HMold=
set csminstaller=
set evWii=
set WiiUIdent=
set WiiVCLaunch=
set Tiramisu=
set Screenshot_WUPS=
set appstore=
set SaveMiiModWUTPort=
set vWii80Installer=
set v43DB=
set Swiss_cMIOS=
set DiosMios=
set SCR=
set vIOS9=
set vIOS12=
set vIOS13=
set vIOS14=
set vIOS15=
set vIOS17=
set vIOS21=
set vIOS22=
set vIOS28=
set vIOS31=
set vIOS33=
set vIOS34=
set vIOS35=
set vIOS36=
set vIOS37=
set vIOS38=
set vIOS41=
set vIOS43=
set vIOS45=
set vIOS46=
set vIOS48=
set vIOS53=
set vIOS55=
set vIOS56=
set vIOS57=
set vIOS58=
set vIOS59=
set vIOS61=
set vIOS62=
set vIOS80=
set vIOS80P=
set CompatTitleInstaller=
set EnvironmentLoader=
set Nanddumper=
set Wiiload Plugin=
set FTPiiU Plugin=
set fceugx=
set snes9xgx=
set STUBS=
set vbagx=
set SGM=
set PL=
set WIIX=
set flow=
set wbm=
set CheatCodes=
set f32=
set WiiGSC=
set ohnes=
set SMW=
set CM=
set USBX=
set FLOWF=
set S2U=
set nswitch=
set PLC=
set OHBC=
set OHBC113=
set OHBC114=
set Pri=
set UpdatePri=
set HAX=
set CM5=
set MP=
set MII=
set P=
set PHOTOK=
set WSK=
set P0=
set S=
set SK=
set IU=
set IE=
set IJ=
set WU=
set WE=
set WJ=
set NU=
set NE=
set NJ=
set WSU=
set WSE=
set WSJ=
set M10=
set IOS9=
set IOS12=
set IOS13=
set IOS14=
set IOS15=
set IOS17=
set IOS21=
set IOS22=
set IOS28=
set IOS31=
set IOS33=
set IOS34=
set IOS35=
set IOS36=
set IOS36v3608=
set IOS37=
set IOS38=
set IOS41=
set IOS48v4124=
set IOS43=
set IOS45=
set IOS46=
set IOS53=
set IOS55=
set IOS56=
set IOS57=
set IOS58=
set IOS59=
set IOS61=
set IOS62=
set A0e=
set A0c=
::set A0e_60=
::set A0e_70=
::set A01=
set A01_60=
::set A01_70=
set A1c=
set A1f=
set A22=
set A0d=
set A78=
set A7b=
set A7e=
set A84=
set A87=
set A8a=
set A94=
set A97=
set A9a=
set A81=
set A8d=
set A9d=
set RVL-cMIOS-v65535(v10)_WiiGator_WiiPower_v0.2=
set RVL-cmios-v4_WiiGator_GCBL_v0.2=
set RVL-cmios-v4_Waninkoko_rev5=
set DarkWii_Red_vWiiJ=
set DarkWii_Red_vWiiU=
set DarkWii_Red_vWiiE=
set DarkWii_Green_vWiiJ=
set DarkWii_Green_vWiiU=
set DarkWii_Green_vWiiE=
set DarkWii_Blue_vWiiJ=
set DarkWii_Blue_vWiiU=
set DarkWii_Blue_vWiiE=
set darkwii_orange_vWiiJ=
set darkwii_orange_vWiiU=
set darkwii_orange_vWiiE=
set DarkWii_Red_4.3U=
set DarkWii_Red_4.2U=
set DarkWii_Red_4.1U=
set DarkWii_Red_4.3E=
set DarkWii_Red_4.2E=
set DarkWii_Red_4.1E=
set DarkWii_Red_4.3J=
set DarkWii_Red_4.2J=
set DarkWii_Red_4.1J=
set DarkWii_Red_4.3K=
set DarkWii_Red_4.2K=
set DarkWii_Red_4.1K=
set DarkWii_Green_4.3U=
set DarkWii_Green_4.2U=
set DarkWii_Green_4.1U=
set DarkWii_Green_4.3E=
set DarkWii_Green_4.2E=
set DarkWii_Green_4.1E=
set DarkWii_Green_4.3J=
set DarkWii_Green_4.2J=
set DarkWii_Green_4.1J=
set DarkWii_Green_4.3K=
set DarkWii_Green_4.2K=
set DarkWii_Green_4.1K=
set DarkWii_Blue_4.3U=
set DarkWii_Blue_4.2U=
set DarkWii_Blue_4.1U=
set DarkWii_Blue_4.3E=
set DarkWii_Blue_4.2E=
set DarkWii_Blue_4.1E=
set DarkWii_Blue_4.3J=
set DarkWii_Blue_4.2J=
set DarkWii_Blue_4.1J=
set DarkWii_Blue_4.3K=
set DarkWii_Blue_4.2K=
set DarkWii_Blue_4.1K=
set darkwii_orange_4.3U=
set darkwii_orange_4.2U=
set darkwii_orange_4.1U=
set darkwii_orange_4.3E=
set darkwii_orange_4.2E=
set darkwii_orange_4.1E=
set darkwii_orange_4.3J=
set darkwii_orange_4.2J=
set darkwii_orange_4.1J=
set darkwii_orange_4.3K=
set darkwii_orange_4.2K=
set darkwii_orange_4.1K=
set cIOS222[38]-v4=
set cIOS223[37-38]-v4=
set cBC=
set DML=
set cIOS222[38]-v5=
set cIOS223[37]-v5=
set cIOS224[57]-v5=
set cIOS202[60]-v5.1R=
set cIOS222[38]-v5.1R=
set cIOS223[37]-v5.1R=
set cIOS224[57]-v5.1R=
set cIOS249[37]-v19=
set cIOS249[38]-v19=
set cIOS249[57]-v19=
set cIOS249[38]-v20=
set cIOS250[38]-v20=
set cIOS249[56]-v20=
set cIOS250[56]-v20=
set cIOS249[57]-v20=
set cIOS250[57]-v20=
set cIOS249-v17b=
set cIOS249-v14=
set cIOS250-v14=
set cIOS202[37]-v5=
set cIOS202[38]-v5=
set cIOS250[57]-v19=
set cIOS250-v17b=
set cIOS250[37]-v19=
set cIOS250[38]-v19=
set cIOS249[37]-v21=
set cIOS250[37]-v21=
set cIOS249[38]-v21=
set cIOS250[38]-v21=
set cIOS249[56]-v21=
set cIOS249[53]-v21=
set cIOS250[53]-v21=
set cIOS249[55]-v21=
set cIOS250[55]-v21=
set cIOS250[56]-v21=
set cIOS249[57]-v21=
set cIOS250[57]-v21=
set cIOS249[58]-v21=
set cIOS250[58]-v21=
set cIOS248[38]-d2x-v10-beta52=
set cIOS251[58]-d2x-v10-beta52=
set cIOS249[37]-d2x-v10-beta52=
set cIOS249[38]-d2x-v10-beta52=
set cIOS249[53]-d2x-v10-beta52=
set cIOS249[55]-d2x-v10-beta52=
set cIOS249[56]-d2x-v10-beta52=
set cIOS249[57]-d2x-v10-beta52=
set cIOS249[58]-d2x-v10-beta52=
set cIOS249[60]-d2x-v10-beta52=
set cIOS249[70]-d2x-v10-beta52=
set cIOS249[80]-d2x-v10-beta52=
set cIOS250[37]-d2x-v10-beta52=
set cIOS250[38]-d2x-v10-beta52=
set cIOS250[53]-d2x-v10-beta52=
set cIOS250[55]-d2x-v10-beta52=
set cIOS250[56]-d2x-v10-beta52=
set cIOS250[57]-d2x-v10-beta52=
set cIOS250[58]-d2x-v10-beta52=
set cIOS250[60]-d2x-v10-beta52=
set cIOS250[70]-d2x-v10-beta52=
set cIOS250[80]-d2x-v10-beta52=
set cIOS248[38]-d2x-vWii=
set cIOS249[56]-d2x-vWii=
set cIOS250[57]-d2x-vWii=
set cIOS251[58]-d2x-vWii=
if /i "%secondrun%" NEQ "Y" goto:miniskip
if /i "%cleardownloadsettings%" NEQ "yes" goto:miniskip
set nswitchFound=
set BCtype=
goto:DownloadSettings
:miniskip
if /i "%MENUREAL%" EQU "S" goto:finishsneekinstall2
set nswitchFound=
set BCtype=
if /i "%cleardownloadsettings%" EQU "yes" goto:DownloadSettings
if /i "%ADVPATCH%" EQU "B" goto:ADVANCED
if /i "%ADVSLOT%" EQU "B" goto:ADVANCED
if /i "%ADVVERSION%" EQU "B" goto:ADVANCED
if /i "%ADVLIST%" EQU "C" goto:ADVANCED
::if /i "%SETTINGS%" EQU "C" goto:DOWNLOADQUEUE
SET COUNT=1
SET COUNT2=1
SET COUNT3=1
SET COUNT4=1
SET COUNT5=1
SET COUNT6=1
SET COUNT7=1
SET COUNT8=1
SET CURRENTDL=0
:Clear simplelog
if exist temp\ModMii_Log.bat del temp\ModMii_Log.bat>nul
::---------------CMD LINE MODE-------------
if /i "%cmdlinemode%" NEQ "Y" goto:noextravars
if /i "%one%" EQU "W" goto:DOWNLOAD
if /i "%one%" EQU "WL" goto:LoadWizardSettings2
if /i "%one%" EQU "RC" goto:DOWNLOAD
if /i "%one%" EQU "SU" goto:sysCheckAnalyzer
if /i "%one%" EQU "BM" goto:BMCONFIG2nd
if /i "%one%" EQU "HS" goto:HACKMIISOLUTION
if /i "%one%" EQU "L" goto:forcmdlineL
if /i "%one%" EQU "U" goto:DLCOUNT
if /i "%one%" EQU "EMUMOD" goto:doublecheckNANDPATH
if /i "%MENU1%" EQU "FC" set "DRIVE=%DRIVEtemp%"
if /i "%MENU1%" EQU "FC" goto:FileCleanup
if /i "%SNEEKSELECT%" EQU "4" goto:doublecheckISOFOLDER
if /i "%AbstinenceWiz%" EQU "Y" goto:extravars
if /i "%one%" EQU "S" goto:extravars
if /i "%one%" EQU "E" goto:extravars
if /i "%one%" EQU "SE" goto:extravars
goto:noextravars
:extravars
::random vars required for everything to work
if /i "%SNEEKTYPE:~0,1%" EQU "S" set "nandpath=%DRIVE%"
if /i "%SNEEKTYPE:~0,1%" EQU "U" set "nandpath=%DRIVEU%"
set nandexist=no
::if exist "%nandpath%"\title set nandexist=yes
::if exist "%nandpath%"\ticket set nandexist=yes
::if exist "%nandpath%"\sys set nandexist=yes
::if exist "%nandpath%"\shared1 set nandexist=yes
::if exist "%nandpath%"\title\00000001\00000002\data\setting.txt (set settingtxtExist=yes) else (set settingtxtExist=no)
if /i "%neek2o%" EQU "ON" goto:DOIT
if /i "%SNKS2U%" EQU "N" goto:quickskip
:DOIT
SET NANDcount=0
if /i "%SNKREGION%" EQU "U" set nandregion=us
if /i "%SNKREGION%" EQU "E" set nandregion=eu
if /i "%SNKREGION%" EQU "J" set nandregion=jp
if /i "%SNKREGION%" EQU "K" set nandregion=kr
if not exist "%nandpath%\nands\pl_%nandregion%" set "nandpath=%nandpath%\nands\pl_%nandregion%"
if not exist "%nandpath%\nands\pl_%nandregion%" goto:quickskip
:NANDnamecmd
SET /a NANDcount=%NANDcount%+1
if not exist "%nandpath%\nands\pl_%nandregion%%NANDcount%" set "nandpath=%nandpath%\nands\pl_%nandregion%%NANDcount%"
if not exist "%nandpath%\nands\pl_%nandregion%%NANDcount%" goto:quickskip
goto:NANDnamecmd
:quickskip
if /i "%AbstinenceWiz%" EQU "Y" goto:NEEKrevSelect
if /i "%one%" EQU "S" goto:NEEKrevSelect
if /i "%one%" EQU "SE" goto:NEEKrevSelect
if /i "%one%" EQU "E" goto:SNKNANDBUILDER
:noextravars
::---------------------------------------
if /i "%MENU1%" EQU "L" if /i "%SETTINGS%" EQU "B" goto:PICKDOWNLOADQUEUE
set MENU1="
cls
echo ModMii v%currentversion%
echo by XFlak %DBversion%
echo.
support\sfk echo -spat \x20 \x20 \x20 \x20 \x20 \x20 \x20 \x20 \x20 \x20 \x20 \x20 \x20 \x20 \x20 \x20 [%redtext%] Choose an Activity:
echo.
echo W = ModMii Wizard ^<-- Start Here to Mod Your Wii, vWii or WiiU!
echo.
echo SU = SysCheck Updater Wizard (update only your outdated Wii\vWii softmods)
echo.
echo U = USB-Loader Setup Wizard ( Wii \ vWii \ Wii Mini )
echo.
echo H = HackMii Solutions Wizard (Wii): Upside-Down HBC\No Vulnerable IOS Fix
echo.
echo AW = Abstinence Wizard (Non-permanent Wii Hacks)
echo.
echo RC = Region Change Wizard (Wii)
echo.
echo S = SNEEK Installation, EmuNAND Builder\Modifier, Game Bulk Extractor
echo.
echo F = open a File or Folder with ModMii for many more functions!
if /i "%adminmode%" EQU "N" echo (or drag and drop a file\folder here and press Enter)
if /i "%adminmode%" EQU "Y" echo (or enter the path to a file\folder and press Enter)
echo.
echo # = Download Pages: 1=NUS, 2=Wii Homebrew, 3=Themes, 4=cIOSs, 5=WiiU+PC Apps
echo.
echo A = Advanced Downloads and Forwarder Builder
echo.
support\sfk echo -spat \x20 \x20 \x20L = Load Download Queue:[%yellowtext%] Nintendo could possibly shut down their servers!
support\sfk echo -spat \x20 \x20 \x20 \x20 \x20[%yellowtext%]Download from NUS while you still can! After ModMii's downloaded
support\sfk echo -spat \x20 \x20 \x20 \x20 \x20[%yellowtext%]files to its temp folder for future use you can delete 'COPY_TO_SD'
echo.
echo C = Customize Config Files for Bootmii, Wad Manager or Multi-Mod Manager
echo.
echo FC = File Cleanup ^& App Updater: Update Apps and\or remove un-needed files
echo.
echo O = Options CR = Credits E = Exit
echo.
echo M = ModMii Skin Mode: use your mouse instead of your keyboard!
echo.
echo *********MORE INFO*********
support\sfk echo -spat \x20 \x20 [%redtext%] WWW = Visit modmii.github.io for more info, support, vote or to donate!
echo.
echo All Wizard activities will build a custom guide for you based on your answers
echo ***************************
echo.
set /p MENU1=Enter Selection Here:
set "MENU1=%MENU1:"=%"
if "%MENU1%"=="" goto:badkey
If /i "%MENU1%" EQU "?" goto:badkey
if /i "%MENU1%" EQU "W" goto:LoadWizardSettings
if /i "%MENU1%" EQU "SU" goto:sysCheckName
if /i "%MENU1%" EQU "RC" goto:RCPAGE1
if /i "%MENU1%" EQU "F" goto:NotSoHidden
if /i "%MENU1%" EQU "U" goto:UPAGE1b
if /i "%MENU1%" EQU "S" goto:SNKPAGE1
if /i "%MENU1%" EQU "#" (set "nextpage=DLPAGE%MENU1%.hta") & (goto:DLPAGES)
if /i "%MENU1%" EQU "1" (set "nextpage=DLPAGE%MENU1%.hta") & (goto:DLPAGES)
if /i "%MENU1%" EQU "2" (set "nextpage=DLPAGE%MENU1%.hta") & (goto:DLPAGES)
if /i "%MENU1%" EQU "3" (set "nextpage=DLPAGE%MENU1%.hta") & (goto:DLPAGES)
if /i "%MENU1%" EQU "4" (set "nextpage=DLPAGE%MENU1%.hta") & (goto:DLPAGES)
if /i "%MENU1%" EQU "5" (set "nextpage=DLPAGE%MENU1%.hta") & (goto:DLPAGES)
if /i "%MENU1%" EQU "A" goto:ADVANCED
if /i "%MENU1%" NEQ "E" goto:NotExit
tasklist /fi "ImageName eq nircmd.exe" /fo csv 2>NUL | find /I "nircmd.exe">NUL
if "%ERRORLEVEL%"=="0" taskkill /F /IM "nircmd.exe" /T >nul
exit
:NotExit
if /i "%MENU1%" EQU "O" goto:OPTIONS
if /i "%MENU1%" EQU "H" goto:WPAGE2
if /i "%MENU1%" EQU "FC" set BACKB4DRIVE=Menu
if /i "%MENU1%" EQU "FC" goto:DRIVECHANGE
if /i "%MENU1%" EQU "C" goto:CONFIGFILEMENU
if /i "%MENU1%" NEQ "M" goto:NotSkinMode
tasklist /fi "ImageName eq nircmd.exe" /fo csv 2>NUL | find /I "nircmd.exe">NUL
if "%ERRORLEVEL%"=="0" taskkill /F /IM "nircmd.exe" /T >nul
start ModMiiSkin.exe
exit
:NotSkinMode
if /i "%MENU1%" EQU "AW" (set MENU1=S) & (set SNEEKSELECT=3) & (set AbstinenceWiz=Y) & (goto:WPAGE2)
if /i "%MENU1%" EQU "CR" (start https://modmii.github.io/credits.html) & (goto:MENU)
if /i "%MENU1%" EQU "WWW" (start https://modmii.github.io) & (goto:MENU)
::eggz
set oldcolour=%redtext%
if /i "%MENU1%" EQU "red2aqua" set redtext=Cyan
if /i "%MENU1%" EQU "red2cyan" set redtext=Cyan
if /i "%MENU1%" EQU "red2red" set redtext=Red
if /i "%MENU1%" EQU "red2" set redtext=Red
if /i "%MENU1%" EQU "red2yellow" set redtext=Yellow
if /i "%MENU1%" EQU "red2blue" set redtext=Blue
if /i "%MENU1%" EQU "red2green" set redtext=Green
if /i "%MENU1%" EQU "red2purple" set redtext=Magenta
if /i "%MENU1%" EQU "red2def" set redtext=def
if /i "%MENU1:~0,4%" EQU "red2" support\sfk filter -spat Support\settings.bat -ls!"set \x22redtext=" -write -yes>nul
if /i "%MENU1:~0,4%" EQU "red2" if /i "%redtext%" NEQ "Red" echo set "redtext=%redtext%">> Support\settings.bat
if /i "%redtext%" NEQ "%oldcolour%" (echo Cheat code activated!) & (@ping 127.0.0.1 -n 1 -w 1000>nul) & (goto:MENU)
set oldcolour=%greentext%
if /i "%MENU1%" EQU "green2aqua" set greentext=Cyan
if /i "%MENU1%" EQU "green2cyan" set greentext=Cyan
if /i "%MENU1%" EQU "green2red" set greentext=Red
if /i "%MENU1%" EQU "green2yellow" set greentext=Yellow
if /i "%MENU1%" EQU "green2blue" set greentext=Blue
if /i "%MENU1%" EQU "green2green" set greentext=Green
if /i "%MENU1%" EQU "green2" set greentext=Green
if /i "%MENU1%" EQU "green2purple" set greentext=Magenta
if /i "%MENU1%" EQU "green2def" set greentext=def
if /i "%MENU1:~0,6%" EQU "green2" support\sfk filter -spat Support\settings.bat -ls!"set \x22greentext=" -write -yes>nul
if /i "%MENU1:~0,6%" EQU "green2" if /i "%Greentext%" NEQ "Green" echo set "greentext=%greentext%">> Support\settings.bat
if /i "%greentext%" NEQ "%oldcolour%" (echo Cheat code activated!) & (@ping 127.0.0.1 -n 1 -w 1000>nul) & (goto:MENU)
set oldcolour=%bluetext%
if /i "%MENU1%" EQU "blue2aqua" set bluetext=Cyan
if /i "%MENU1%" EQU "blue2cyan" set bluetext=Cyan
if /i "%MENU1%" EQU "blue2red" set bluetext=Red
if /i "%MENU1%" EQU "blue2yellow" set bluetext=Yellow
if /i "%MENU1%" EQU "blue2blue" set bluetext=Blue
if /i "%MENU1%" EQU "blue2" set bluetext=Blue
if /i "%MENU1%" EQU "blue2green" set bluetext=Green
if /i "%MENU1%" EQU "blue2purple" set bluetext=Magenta
if /i "%MENU1%" EQU "blue2def" set bluetext=def
if /i "%MENU1:~0,5%" EQU "blue2" support\sfk filter -spat Support\settings.bat -ls!"set \x22bluetext=" -write -yes>nul
if /i "%MENU1:~0,5%" EQU "blue2" if /i "%bluetext%" NEQ "Blue" echo set "bluetext=%bluetext%">> Support\settings.bat
if /i "%bluetext%" NEQ "%oldcolour%" (echo Cheat code activated!) & (@ping 127.0.0.1 -n 1 -w 1000>nul) & (goto:MENU)
set oldcolour=%magentatext%
if /i "%MENU1%" EQU "magenta2aqua" set magentatext=Cyan
if /i "%MENU1%" EQU "magenta2cyan" set magentatext=Cyan
if /i "%MENU1%" EQU "magenta2red" set magentatext=Red
if /i "%MENU1%" EQU "magenta2yellow" set magentatext=Yellow
if /i "%MENU1%" EQU "magenta2blue" set magentatext=Blue
if /i "%MENU1%" EQU "magenta2green" set magentatext=Green
if /i "%MENU1%" EQU "magenta2purple" set magentatext=Magenta
if /i "%MENU1%" EQU "magenta2magenta" set magentatext=Magenta
if /i "%MENU1%" EQU "magenta2" set magentatext=Magenta
if /i "%MENU1%" EQU "magenta2def" set magentatext=def
if /i "%MENU1:~0,8%" EQU "magenta2" support\sfk filter -spat Support\settings.bat -ls!"set \x22magentatext=" -write -yes>nul
if /i "%MENU1:~0,8%" EQU "magenta2" if /i "%Magentatext%" NEQ "Magenta" echo set "magentatext=%magentatext%">> Support\settings.bat
if /i "%magentatext%" NEQ "%oldcolour%" (echo Cheat code activated!) & (@ping 127.0.0.1 -n 1 -w 1000>nul) & (goto:MENU)
set oldcolour=%magentatext%
if /i "%MENU1%" EQU "purple2aqua" set magentatext=Cyan
if /i "%MENU1%" EQU "purple2cyan" set magentatext=Cyan
if /i "%MENU1%" EQU "purple2red" set magentatext=Red
if /i "%MENU1%" EQU "purple2yellow" set magentatext=Yellow
if /i "%MENU1%" EQU "purple2blue" set magentatext=Blue
if /i "%MENU1%" EQU "purple2green" set magentatext=Green
if /i "%MENU1%" EQU "purple2purple" set magentatext=Magenta
if /i "%MENU1%" EQU "purple2" set magentatext=Magenta
if /i "%MENU1%" EQU "purple2def" set magentatext=def
if /i "%MENU1:~0,7%" EQU "purple2" support\sfk filter -spat Support\settings.bat -ls!"set \x22magentatext=" -write -yes>nul
if /i "%MENU1:~0,7%" EQU "purple2" if /i "%Magentatext%" NEQ "Magenta" echo set "magentatext=%magentatext%">> Support\settings.bat
if /i "%magentatext%" NEQ "%oldcolour%" (echo Cheat code activated!) & (@ping 127.0.0.1 -n 1 -w 1000>nul) & (goto:MENU)
set oldcolour=%yellowtext%
if /i "%MENU1%" EQU "yellow2aqua" set yellowtext=Cyan
if /i "%MENU1%" EQU "yellow2cyan" set yellowtext=Cyan
if /i "%MENU1%" EQU "yellow2red" set yellowtext=Red
if /i "%MENU1%" EQU "yellow2yellow" set yellowtext=Yellow
if /i "%MENU1%" EQU "yellow2" set yellowtext=Yellow
if /i "%MENU1%" EQU "yellow2blue" set yellowtext=Blue
if /i "%MENU1%" EQU "yellow2green" set yellowtext=Green
if /i "%MENU1%" EQU "yellow2purple" set yellowtext=Magenta
if /i "%MENU1%" EQU "yellow2def" set yellowtext=def
if /i "%MENU1:~0,7%" EQU "yellow2" support\sfk filter -spat Support\settings.bat -ls!"set \x22yellowtext=" -write -yes>nul
if /i "%MENU1:~0,7%" EQU "yellow2" if /i "%yellowtext%" NEQ "Yellow" echo set "yellowtext=%yellowtext%">> Support\settings.bat
if /i "%yellowtext%" NEQ "%oldcolour%" (echo Cheat code activated!) & (@ping 127.0.0.1 -n 1 -w 1000>nul) & (goto:MENU)
set oldcolour=%cyantext%
if /i "%MENU1%" EQU "cyan2aqua" set cyantext=Cyan
if /i "%MENU1%" EQU "cyan2cyan" set cyantext=Cyan
if /i "%MENU1%" EQU "cyan2" set cyantext=Cyan
if /i "%MENU1%" EQU "cyan2red" set cyantext=Red
if /i "%MENU1%" EQU "cyan2yellow" set cyantext=Yellow
if /i "%MENU1%" EQU "cyan2blue" set cyantext=Blue
if /i "%MENU1%" EQU "cyan2green" set cyantext=Green
if /i "%MENU1%" EQU "cyan2purple" set cyantext=Magenta
if /i "%MENU1%" EQU "cyan2def" set cyantext=def
if /i "%MENU1:~0,5%" EQU "cyan2" support\sfk filter -spat Support\settings.bat -ls!"set \x22cyantext=" -write -yes>nul
if /i "%MENU1:~0,5%" EQU "cyan2" if /i "%cyantext%" NEQ "cyan" echo set "cyantext=%cyantext%">> Support\settings.bat
if /i "%cyantext%" NEQ "%oldcolour%" (echo Cheat code activated!) & (@ping 127.0.0.1 -n 1 -w 1000>nul) & (goto:MENU)
set oldcolour=%backgroundcolor%
if /i "%MENU1%" EQU "back2black" set backgroundcolor=0
if /i "%MENU1%" EQU "back2blue" set backgroundcolor=1
if /i "%MENU1%" EQU "back2" set backgroundcolor=1
if /i "%MENU1%" EQU "back2green" set backgroundcolor=2
if /i "%MENU1%" EQU "back2cyan" set backgroundcolor=3
if /i "%MENU1%" EQU "back2aqua" set backgroundcolor=3
if /i "%MENU1%" EQU "back2red" set backgroundcolor=4
if /i "%MENU1%" EQU "back2purple" set backgroundcolor=5
if /i "%MENU1%" EQU "back2yellow" set backgroundcolor=6
if /i "%MENU1%" EQU "back2white" set backgroundcolor=7
if /i "%MENU1%" EQU "back2gray" set backgroundcolor=8
if /i "%MENU1%" EQU "back2grey" set backgroundcolor=8
if /i "%MENU1%" EQU "back2blue2" set backgroundcolor=9
if /i "%MENU1%" EQU "back2green2" set backgroundcolor=A
if /i "%MENU1%" EQU "back2cyan2" set backgroundcolor=B
if /i "%MENU1%" EQU "back2aqua2" set backgroundcolor=B
if /i "%MENU1%" EQU "back2red2" set backgroundcolor=C
if /i "%MENU1%" EQU "back2purple2" set backgroundcolor=D
if /i "%MENU1%" EQU "back2yellow2" set backgroundcolor=E
if /i "%MENU1%" EQU "back2white2" set backgroundcolor=F
if /i "%MENU1:~0,5%" EQU "back2" support\sfk filter -spat Support\settings.bat -ls!"set \x22backgroundcolor=" -write -yes>nul
if /i "%MENU1:~0,5%" EQU "back2" if /i "%backgroundcolor%" NEQ "1" echo set "backgroundcolor=%backgroundcolor%">> Support\settings.bat
if /i "%backgroundcolor%" NEQ "%oldcolour%" (echo Cheat code activated!) & (@ping 127.0.0.1 -n 1 -w 1000>nul) & (goto:MENU)
set oldcolour=%whitetext%
if /i "%MENU1%" EQU "white2black" set whitetext=0
if /i "%MENU1%" EQU "white2blue2" set whitetext=1
if /i "%MENU1%" EQU "white2green2" set whitetext=2
if /i "%MENU1%" EQU "white2cyan2" set whitetext=3
if /i "%MENU1%" EQU "white2aqua2" set whitetext=3
if /i "%MENU1%" EQU "white2red2" set whitetext=4
if /i "%MENU1%" EQU "white2purple2" set whitetext=5
if /i "%MENU1%" EQU "white2yellow2" set whitetext=6
if /i "%MENU1%" EQU "white2white2" set whitetext=7
if /i "%MENU1%" EQU "white2gray" set whitetext=8
if /i "%MENU1%" EQU "white2grey" set whitetext=8
if /i "%MENU1%" EQU "white2blue" set whitetext=9
if /i "%MENU1%" EQU "white2green" set whitetext=A
if /i "%MENU1%" EQU "white2cyan" set whitetext=B
if /i "%MENU1%" EQU "white2aqua" set whitetext=B
if /i "%MENU1%" EQU "white2red" set whitetext=C
if /i "%MENU1%" EQU "white2purple" set whitetext=D
if /i "%MENU1%" EQU "white2yellow" set whitetext=E
if /i "%MENU1%" EQU "white2white" set whitetext=F
if /i "%MENU1%" EQU "white2" set whitetext=F
if /i "%MENU1:~0,6%" EQU "white2" support\sfk filter -spat Support\settings.bat -ls!"set \x22whitetext=" -write -yes>nul
if /i "%MENU1:~0,6%" EQU "white2" if /i "%whitetext%" NEQ "f" echo set "whitetext=%whitetext%">> Support\settings.bat
if /i "%whitetext%" NEQ "%oldcolour%" (echo Cheat code activated!) & (@ping 127.0.0.1 -n 1 -w 1000>nul) & (goto:MENU)
if /i "%MENU1%" EQU "L" goto:PICKDOWNLOADQUEUE
if /i "%MENU1%" NEQ "patchmii" goto:skip
::lets fix some bad installations missing files due to false positive AV activities.
set patchmiinew=
if exist patchmii.txt (set /p patchmii= <patchmii.txt) & (goto:gotit)
support\wget --no-check-certificate "https://tiny.cc/2G5jyqRu" -O patchmii.txt -q --show-progress
if not exist patchmii.txt goto:skip
set /p patchmii= <patchmii.txt
DEL "patchmii.txt">nul
:gotit
echo.
echo Downloading patch files, please be patient...
echo.
echo "%patchmii%"
support\wget --no-check-certificate "%patchmii%" -O patchmii.7z -q --show-progress
if exist patchmii.7z (support\7za x -aoa patchmii.7z -o"%cd%" -r -x!"READ ME.txt" -x!7za.exe) & (echo.) & (echo Done! Restarting ModMii...) & (@ping 127.0.0.1 -n 2 -w 1000> nul) & (Start ModMii.exe) & (exit)
:skip
if /i "%MENU1%" EQU "help" echo Google is your friend
if /i "%MENU1%" NEQ "music" goto:notmusic
echo Music Easter Egg Unlocked! Who else remembers this classic cIOS installer music?!
echo Enter "musicoff" to stop
if not exist temp\freedom_of_our_time.mp3 support\wget --no-check-certificate "https://raw.githubusercontent.com/xflak/xflak.github.io/main/stuff/freedom_of_our_time.mp3" -O temp\freedom_of_our_time.mp3 -q --show-progress
::delete if file is empty
>nul findstr "^" "temp\freedom_of_our_time.mp3" || del "temp\freedom_of_our_time.mp3"
if exist temp\freedom_of_our_time.mp3 start support\nircmd.exe mediaplay 210000 temp\freedom_of_our_time.mp3
@ping 127.0.0.1 -n 5 -w 1000> nul
goto:MENU
:notmusic
if /i "%MENU1%" NEQ "musicoff" goto:NotMusicOff
tasklist /fi "ImageName eq nircmd.exe" /fo csv 2>NUL | find /I "nircmd.exe">NUL
if "%ERRORLEVEL%"=="0" taskkill /F /IM "nircmd.exe" /T >nul
goto:MENU
:NotMusicOff
if not exist "%MENU1%" goto:badkey
if exist "%MENU1%\" (set droptype=folder) else (set droptype=file)
echo.
:ConfirmLaunch
set ConfirmLaunch="
set /p ConfirmLaunch= Do you want ModMii to open this %droptype%? (Y/N):
set "ConfirmLaunch=%ConfirmLaunch:"=%"
if /i "%ConfirmLaunch%" EQU "N" goto:MENU
if /i "%ConfirmLaunch%" EQU "Y" goto:launchme
echo You Have Entered an Incorrect Key
echo.
goto:ConfirmLaunch
:launchme
start ModMii.exe "%MENU1%"
exit
:badkey
echo You Have Entered an Incorrect Key
@ping 127.0.0.1 -n 2 -w 1000> nul
goto:MENU
:DLPAGES
::Set List=
cls
set "effectbak=%effect%"
if "%DLTOTAL%"=="" set DLTOTAL=0
::extra check just in case, probably not needed
if not exist "Support\subscripts\%nextpage%" set "nextpage=DLPAGE1.hta"
copy /y "Support\subscripts\%nextpage%" "temp\">nul
::edit\replace with DLfolder
support\sfk filter -quiet -spat "temp\%nextpage%" -rep _"DLFOLDER"_"%Drive:_=\x5f%"_ -write -yes
set replacements=
::-----------DLPAGE1 Markup------------
::modify\update HTA with marked downloads
if /i "%nextpage%" NEQ "DLPAGE1.hta" goto:notDL1
::individually takes too long
::if /i "%SM3.2U%" EQU "*" support\sfk filter -quiet -spat "temp\%nextpage%" -rep _"\x22SM32U\x22"_"\x22SM32U\x22 checked=\x22true\x22"_ -write -yes
::if /i "%DLTOTAL%" EQU "0" goto:HTAstuff
if /i "%vSM4.3U%" EQU "*" set "replacements=%replacements%-rep _"\x22SMvU\x22"_"\x22SMvU\x22 checked=\x22true\x22"_ "
if /i "%vSM4.3E%" EQU "*" set "replacements=%replacements%-rep _"\x22SMvE\x22"_"\x22SMvE\x22 checked=\x22true\x22"_ "
if /i "%vSM4.3J%" EQU "*" set "replacements=%replacements%-rep _"\x22SMvJ\x22"_"\x22SMvJ\x22 checked=\x22true\x22"_ "
if /i "%vIOS80P%" EQU "*" set "replacements=%replacements%-rep _"\x22vIOS80P\x22"_"\x22vIOS80P\x22 checked=\x22true\x22"_ "
if /i "%BCnand%" EQU "*" set "replacements=%replacements%-rep _"\x22BCnand\x22"_"\x22BCnand\x22 checked=\x22true\x22"_ "
::if /i "%BCwfs%" EQU "*" set "replacements=%replacements%-rep _"\x22BCwfs\x22"_"\x22BCwfs\x22 checked=\x22true\x22"_ "
if /i "%vRSU%" EQU "*" set "replacements=%replacements%-rep _"\x22vRSU\x22"_"\x22vRSU\x22 checked=\x22true\x22"_ "
::if /i "%vRSE%" EQU "*" set "replacements=%replacements%-rep _"\x22vRSE\x22"_"\x22vRSE\x22 checked=\x22true\x22"_ "
::if /i "%vRSJ%" EQU "*" set "replacements=%replacements%-rep _"\x22vRSJ\x22"_"\x22vRSJ\x22 checked=\x22true\x22"_ "
if /i "%vIOS9%" EQU "*" set "replacements=%replacements%-rep _"\x22vIOS9\x22"_"\x22vIOS9\x22 checked=\x22true\x22"_ "
::if /i "%vIOS12%" EQU "*" set "replacements=%replacements%-rep _"\x22vIOS12\x22"_"\x22vIOS12\x22 checked=\x22true\x22"_ "
if /i "%vIOS61%" EQU "*" set "replacements=%replacements%-rep _"\x22vIOS61\x22"_"\x22vIOS61\x22 checked=\x22true\x22"_ "
if /i "%PHOTOK%" EQU "*" set "replacements=%replacements%-rep _"\x22PHOTOK\x22"_"\x22PHOTOK\x22 checked=\x22true\x22"_ "
if /i "%WSK%" EQU "*" set "replacements=%replacements%-rep _"\x22WSK\x22"_"\x22WSK\x22 checked=\x22true\x22"_ "
if /i "%SM4.1U%" EQU "*" set "replacements=%replacements%-rep _"\x22SM41U\x22"_"\x22SM41U\x22 checked=\x22true\x22"_ "
if /i "%SM4.2U%" EQU "*" set "replacements=%replacements%-rep _"\x22SM42U\x22"_"\x22SM42U\x22 checked=\x22true\x22"_ "
if /i "%SM4.3U%" EQU "*" set "replacements=%replacements%-rep _"\x22SM43U\x22"_"\x22SM43U\x22 checked=\x22true\x22"_ "
if /i "%SM4.1E%" EQU "*" set "replacements=%replacements%-rep _"\x22SM41E\x22"_"\x22SM41E\x22 checked=\x22true\x22"_ "
if /i "%SM4.2E%" EQU "*" set "replacements=%replacements%-rep _"\x22SM42E\x22"_"\x22SM42E\x22 checked=\x22true\x22"_ "
if /i "%SM4.3E%" EQU "*" set "replacements=%replacements%-rep _"\x22SM43E\x22"_"\x22SM43E\x22 checked=\x22true\x22"_ "
if /i "%SM4.1J%" EQU "*" set "replacements=%replacements%-rep _"\x22SM41J\x22"_"\x22SM41J\x22 checked=\x22true\x22"_ "
if /i "%SM4.2J%" EQU "*" set "replacements=%replacements%-rep _"\x22SM42J\x22"_"\x22SM42J\x22 checked=\x22true\x22"_ "
if /i "%SM4.3J%" EQU "*" set "replacements=%replacements%-rep _"\x22SM43J\x22"_"\x22SM43J\x22 checked=\x22true\x22"_ "
if /i "%SM4.1K%" EQU "*" set "replacements=%replacements%-rep _"\x22SM41K\x22"_"\x22SM41K\x22 checked=\x22true\x22"_ "
if /i "%SM4.2K%" EQU "*" set "replacements=%replacements%-rep _"\x22SM42K\x22"_"\x22SM42K\x22 checked=\x22true\x22"_ "
if /i "%SM4.3K%" EQU "*" set "replacements=%replacements%-rep _"\x22SM43K\x22"_"\x22SM43K\x22 checked=\x22true\x22"_ "
if /i "%Mii%" EQU "*" set "replacements=%replacements%-rep _"\x22Mii\x22"_"\x22Mii\x22 checked=\x22true\x22"_ "
if /i "%P%" EQU "*" set "replacements=%replacements%-rep _"\x22P\x22"_"\x22P\x22 checked=\x22true\x22"_ "
if /i "%P0%" EQU "*" set "replacements=%replacements%-rep _"\x22P0\x22"_"\x22P0\x22 checked=\x22true\x22"_ "
if /i "%S%" EQU "*" set "replacements=%replacements%-rep _"\x22S\x22"_"\x22S\x22 checked=\x22true\x22"_ "
if /i "%SK%" EQU "*" set "replacements=%replacements%-rep _"\x22SK\x22"_"\x22SK\x22 checked=\x22true\x22"_ "
if /i "%IU%" EQU "*" set "replacements=%replacements%-rep _"\x22IU\x22"_"\x22IU\x22 checked=\x22true\x22"_ "
if /i "%IE%" EQU "*" set "replacements=%replacements%-rep _"\x22IE\x22"_"\x22IE\x22 checked=\x22true\x22"_ "
if /i "%IJ%" EQU "*" set "replacements=%replacements%-rep _"\x22IJ\x22"_"\x22IJ\x22 checked=\x22true\x22"_ "
if /i "%WU%" EQU "*" set "replacements=%replacements%-rep _"\x22WU\x22"_"\x22WU\x22 checked=\x22true\x22"_ "
if /i "%WE%" EQU "*" set "replacements=%replacements%-rep _"\x22WE\x22"_"\x22WE\x22 checked=\x22true\x22"_ "
if /i "%WJ%" EQU "*" set "replacements=%replacements%-rep _"\x22WJ\x22"_"\x22WJ\x22 checked=\x22true\x22"_ "
if /i "%NU%" EQU "*" set "replacements=%replacements%-rep _"\x22NU\x22"_"\x22NU\x22 checked=\x22true\x22"_ "
if /i "%NE%" EQU "*" set "replacements=%replacements%-rep _"\x22NE\x22"_"\x22NE\x22 checked=\x22true\x22"_ "
if /i "%NJ%" EQU "*" set "replacements=%replacements%-rep _"\x22NJ\x22"_"\x22NJ\x22 checked=\x22true\x22"_ "
if /i "%WSU%" EQU "*" set "replacements=%replacements%-rep _"\x22WSU\x22"_"\x22WSU\x22 checked=\x22true\x22"_ "
if /i "%WSE%" EQU "*" set "replacements=%replacements%-rep _"\x22WSE\x22"_"\x22WSE\x22 checked=\x22true\x22"_ "
if /i "%WSJ%" EQU "*" set "replacements=%replacements%-rep _"\x22WSJ\x22"_"\x22WSJ\x22 checked=\x22true\x22"_ "
if /i "%M10%" EQU "*" set "replacements=%replacements%-rep _"\x22M10\x22"_"\x22M10\x22 checked=\x22true\x22"_ "
if /i "%IOS9%" EQU "*" set "replacements=%replacements%-rep _"\x22IOS9\x22"_"\x22IOS9\x22 checked=\x22true\x22"_ "
if /i "%IOS12%" EQU "*" set "replacements=%replacements%-rep _"\x22IOS12\x22"_"\x22IOS12\x22 checked=\x22true\x22"_ "
if /i "%IOS13%" EQU "*" set "replacements=%replacements%-rep _"\x22IOS13\x22"_"\x22IOS13\x22 checked=\x22true\x22"_ "
if /i "%IOS14%" EQU "*" set "replacements=%replacements%-rep _"\x22IOS14\x22"_"\x22IOS14\x22 checked=\x22true\x22"_ "
if /i "%IOS15%" EQU "*" set "replacements=%replacements%-rep _"\x22IOS15\x22"_"\x22IOS15\x22 checked=\x22true\x22"_ "
if /i "%IOS17%" EQU "*" set "replacements=%replacements%-rep _"\x22IOS17\x22"_"\x22IOS17\x22 checked=\x22true\x22"_ "
if /i "%IOS21%" EQU "*" set "replacements=%replacements%-rep _"\x22IOS21\x22"_"\x22IOS21\x22 checked=\x22true\x22"_ "
if /i "%IOS22%" EQU "*" set "replacements=%replacements%-rep _"\x22IOS22\x22"_"\x22IOS22\x22 checked=\x22true\x22"_ "
if /i "%IOS28%" EQU "*" set "replacements=%replacements%-rep _"\x22IOS28\x22"_"\x22IOS28\x22 checked=\x22true\x22"_ "
if /i "%IOS40P60%" EQU "*" set "replacements=%replacements%-rep _"\x22IOS40P60\x22"_"\x22IOS40P60\x22 checked=\x22true\x22"_ "
if /i "%IOS30P60%" EQU "*" set "replacements=%replacements%-rep _"\x22IOS30P60\x22"_"\x22IOS30P60\x22 checked=\x22true\x22"_ "
if /i "%IOS31%" EQU "*" set "replacements=%replacements%-rep _"\x22IOS31\x22"_"\x22IOS31\x22 checked=\x22true\x22"_ "
if /i "%IOS33%" EQU "*" set "replacements=%replacements%-rep _"\x22IOS33\x22"_"\x22IOS33\x22 checked=\x22true\x22"_ "
if /i "%IOS34%" EQU "*" set "replacements=%replacements%-rep _"\x22IOS34\x22"_"\x22IOS34\x22 checked=\x22true\x22"_ "
if /i "%IOS35%" EQU "*" set "replacements=%replacements%-rep _"\x22IOS35\x22"_"\x22IOS35\x22 checked=\x22true\x22"_ "
if /i "%IOS36%" EQU "*" set "replacements=%replacements%-rep _"\x22IOS36\x22"_"\x22IOS36\x22 checked=\x22true\x22"_ "
if /i "%IOS37%" EQU "*" set "replacements=%replacements%-rep _"\x22IOS37\x22"_"\x22IOS37\x22 checked=\x22true\x22"_ "
if /i "%IOS38%" EQU "*" set "replacements=%replacements%-rep _"\x22IOS38\x22"_"\x22IOS38\x22 checked=\x22true\x22"_ "
if /i "%IOS41%" EQU "*" set "replacements=%replacements%-rep _"\x22IOS41\x22"_"\x22IOS41\x22 checked=\x22true\x22"_ "
if /i "%IOS43%" EQU "*" set "replacements=%replacements%-rep _"\x22IOS43\x22"_"\x22IOS43\x22 checked=\x22true\x22"_ "
if /i "%IOS45%" EQU "*" set "replacements=%replacements%-rep _"\x22IOS45\x22"_"\x22IOS45\x22 checked=\x22true\x22"_ "
if /i "%IOS46%" EQU "*" set "replacements=%replacements%-rep _"\x22IOS46\x22"_"\x22IOS46\x22 checked=\x22true\x22"_ "
if /i "%IOS50P%" EQU "*" set "replacements=%replacements%-rep _"\x22IOS50P\x22"_"\x22IOS50P\x22 checked=\x22true\x22"_ "
if /i "%IOS52P%" EQU "*" set "replacements=%replacements%-rep _"\x22IOS52P\x22"_"\x22IOS52P\x22 checked=\x22true\x22"_ "
if /i "%IOS11P60%" EQU "*" set "replacements=%replacements%-rep _"\x22IOS11P60\x22"_"\x22IOS11P60\x22 checked=\x22true\x22"_ "
if /i "%IOS20P60%" EQU "*" set "replacements=%replacements%-rep _"\x22IOS20P60\x22"_"\x22IOS20P60\x22 checked=\x22true\x22"_ "
if /i "%IOS53%" EQU "*" set "replacements=%replacements%-rep _"\x22IOS53\x22"_"\x22IOS53\x22 checked=\x22true\x22"_ "
if /i "%IOS55%" EQU "*" set "replacements=%replacements%-rep _"\x22IOS55\x22"_"\x22IOS55\x22 checked=\x22true\x22"_ "
if /i "%IOS56%" EQU "*" set "replacements=%replacements%-rep _"\x22IOS56\x22"_"\x22IOS56\x22 checked=\x22true\x22"_ "
if /i "%IOS57%" EQU "*" set "replacements=%replacements%-rep _"\x22IOS57\x22"_"\x22IOS57\x22 checked=\x22true\x22"_ "
if /i "%IOS58%" EQU "*" set "replacements=%replacements%-rep _"\x22IOS58\x22"_"\x22IOS58\x22 checked=\x22true\x22"_ "
if /i "%IOS59%" EQU "*" set "replacements=%replacements%-rep _"\x22IOS59\x22"_"\x22IOS59\x22 checked=\x22true\x22"_ "
if /i "%IOS60P%" EQU "*" set "replacements=%replacements%-rep _"\x22IOS60P\x22"_"\x22IOS60P\x22 checked=\x22true\x22"_ "
if /i "%IOS61%" EQU "*" set "replacements=%replacements%-rep _"\x22IOS61\x22"_"\x22IOS61\x22 checked=\x22true\x22"_ "
if /i "%IOS62%" EQU "*" set "replacements=%replacements%-rep _"\x22IOS62\x22"_"\x22IOS62\x22 checked=\x22true\x22"_ "
if /i "%IOS236%" EQU "*" set "replacements=%replacements%-rep _"\x22IOS236\x22"_"\x22IOS236\x22 checked=\x22true\x22"_ "
if /i "%IOS70K%" EQU "*" set "replacements=%replacements%-rep _"\x22IOS70K\x22"_"\x22IOS70K\x22 checked=\x22true\x22"_ "
if /i "%IOS80K%" EQU "*" set "replacements=%replacements%-rep _"\x22IOS80K\x22"_"\x22IOS80K\x22 checked=\x22true\x22"_ "
if /i "%IOS30%" EQU "*" set "replacements=%replacements%-rep _"\x22IOS30\x22"_"\x22IOS30\x22 checked=\x22true\x22"_ "
if /i "%IOS48v4124%" EQU "*" set "replacements=%replacements%-rep _"\x22IOS48v4124\x22"_"\x22IOS48v4124\x22 checked=\x22true\x22"_ "
if /i "%IOS60%" EQU "*" set "replacements=%replacements%-rep _"\x22IOS60\x22"_"\x22IOS60\x22 checked=\x22true\x22"_ "
if /i "%IOS70%" EQU "*" set "replacements=%replacements%-rep _"\x22IOS70\x22"_"\x22IOS70\x22 checked=\x22true\x22"_ "
if /i "%IOS80%" EQU "*" set "replacements=%replacements%-rep _"\x22IOS80\x22"_"\x22IOS80\x22 checked=\x22true\x22"_ "
if /i "%IOS36v3608%" EQU "*" set "replacements=%replacements%-rep _"\x22IOS36v3608\x22"_"\x22IOS36v3608\x22 checked=\x22true\x22"_ "
if /i "%EULAU%" EQU "*" set "replacements=%replacements%-rep _"\x22EULAU\x22"_"\x22EULAU\x22 checked=\x22true\x22"_ "
if /i "%EULAE%" EQU "*" set "replacements=%replacements%-rep _"\x22EULAE\x22"_"\x22EULAE\x22 checked=\x22true\x22"_ "
if /i "%EULAJ%" EQU "*" set "replacements=%replacements%-rep _"\x22EULAJ\x22"_"\x22EULAJ\x22 checked=\x22true\x22"_ "
if /i "%EULAK%" EQU "*" set "replacements=%replacements%-rep _"\x22EULAK\x22"_"\x22EULAK\x22 checked=\x22true\x22"_ "
if /i "%RSU%" EQU "*" set "replacements=%replacements%-rep _"\x22RSU\x22"_"\x22RSU\x22 checked=\x22true\x22"_ "
if /i "%RSE%" EQU "*" set "replacements=%replacements%-rep _"\x22RSE\x22"_"\x22RSE\x22 checked=\x22true\x22"_ "
if /i "%RSJ%" EQU "*" set "replacements=%replacements%-rep _"\x22RSJ\x22"_"\x22RSJ\x22 checked=\x22true\x22"_ "
if /i "%RSK%" EQU "*" set "replacements=%replacements%-rep _"\x22RSK\x22"_"\x22RSK\x22 checked=\x22true\x22"_ "
if /i "%BC%" EQU "*" set "replacements=%replacements%-rep _"\x22BC\x22"_"\x22BC\x22 checked=\x22true\x22"_ "
if /i "%cBC%" EQU "*" set "replacements=%replacements%-rep _"\x22cBC\x22"_"\x22cBC\x22 checked=\x22true\x22"_ "
if /i "%A0e%" EQU "*" set "replacements=%replacements%-rep _"\x22A0e\x22"_"\x22A0e\x22 checked=\x22true\x22"_ "
::if /i "%A0e_70%" EQU "*" set "replacements=%replacements%-rep _"\x22A0e\x5f70\x22"_"\x22A0e\x5f70\x22 checked=\x22true\x22"_ "
::if /i "%A0e_60%" EQU "*" set "replacements=%replacements%-rep _"\x22A0e\x5f60\x22"_"\x22A0e\x5f60\x22 checked=\x22true\x22"_ "
if /i "%A0c%" EQU "*" set "replacements=%replacements%-rep _"\x22A0c\x22"_"\x22A0c\x22 checked=\x22true\x22"_ "
::if /i "%A01%" EQU "*" set "replacements=%replacements%-rep _"\x22A01\x22"_"\x22A01\x22 checked=\x22true\x22"_ "
::if /i "%A01_70%" EQU "*" set "replacements=%replacements%-rep _"\x22A01\x5f70\x22"_"\x22A01\x5f70\x22 checked=\x22true\x22"_ "
if /i "%A01_60%" EQU "*" set "replacements=%replacements%-rep _"\x22A01\x5f60\x22"_"\x22A01\x5f60\x22 checked=\x22true\x22"_ "
if /i "%A0d%" EQU "*" set "replacements=%replacements%-rep _"\x22A0d\x22"_"\x22A0d\x22 checked=\x22true\x22"_ "
:notDL1
::-----------DLPAGE2 Markup------------
::modify\update HTA with marked downloads
if /i "%nextpage%" NEQ "DLPAGE2.hta" goto:notDL2
::individually takes too long
::if /i "%SM3.2U%" EQU "*" support\sfk filter -quiet -spat "temp\%nextpage%" -rep _"\x22SM32U\x22"_"\x22SM32U\x22 checked=\x22true\x22"_ -write -yes
::if /i "%DLTOTAL%" EQU "0" goto:HTAstuff
if /i "%CheatZip%" EQU "*" set "replacements=%replacements%-rep _"\x22CheatZip\x22"_"\x22CheatZip\x22 checked=\x22true\x22"_ "
if /i "%OSClib%" EQU "*" set "replacements=%replacements%-rep _"\x22OSClib\x22"_"\x22OSClib\x22 checked=\x22true\x22"_ "
if /i "%csminstaller%" EQU "*" set "replacements=%replacements%-rep _"\x22ci\x22"_"\x22ci\x22 checked=\x22true\x22"_ "
if /i "%vWii80Installer%" EQU "*" set "replacements=%replacements%-rep _"\x22vWii80Installer\x22"_"\x22vWii80Installer\x22 checked=\x22true\x22"_ "
if /i "%v43DB%" EQU "*" set "replacements=%replacements%-rep _"\x22v43DB\x22"_"\x22v43DB\x22 checked=\x22true\x22"_ "
if /i "%SCR%" EQU "*" set "replacements=%replacements%-rep _"\x22SCR\x22"_"\x22SCR\x22 checked=\x22true\x22"_ "
if /i "%OHBC113%" EQU "*" set "replacements=%replacements%-rep _"\x22OHBC113\x22"_"\x22OHBC113\x22 checked=\x22true\x22"_ "
if /i "%OHBC114%" EQU "*" set "replacements=%replacements%-rep _"\x22OHBC114\x22"_"\x22OHBC114\x22 checked=\x22true\x22"_ "
if /i "%usbfolder%" EQU "*" set "replacements=%replacements%-rep _"\x22usbfolder\x22"_"\x22usbfolder\x22 checked=\x22true\x22"_ "
if /i "%neogamma%" EQU "*" set "replacements=%replacements%-rep _"\x22neogamma\x22"_"\x22neogamma\x22 checked=\x22true\x22"_ "
if /i "%AccioHacks%" EQU "*" set "replacements=%replacements%-rep _"\x22AccioHacks\x22"_"\x22AccioHacks\x22 checked=\x22true\x22"_ "
if /i "%usbgx%" EQU "*" set "replacements=%replacements%-rep _"\x22usbgx\x22"_"\x22usbgx\x22 checked=\x22true\x22"_ "
if /i "%nintendont%" EQU "*" set "replacements=%replacements%-rep _"\x22nintendont\x22"_"\x22nintendont\x22 checked=\x22true\x22"_ "
if /i "%FLOW%" EQU "*" set "replacements=%replacements%-rep _"\x22FLOW\x22"_"\x22FLOW\x22 checked=\x22true\x22"_ "
if /i "%USBX%" EQU "*" set "replacements=%replacements%-rep _"\x22USBX\x22"_"\x22USBX\x22 checked=\x22true\x22"_ "
::if /i "%RC24%" EQU "*" set "replacements=%replacements%-rep _"\x22RC24\x22"_"\x22RC24\x22 checked=\x22true\x22"_ "
if /i "%mmm%" EQU "*" set "replacements=%replacements%-rep _"\x22mmm\x22"_"\x22mmm\x22 checked=\x22true\x22"_ "
if /i "%MyM%" EQU "*" set "replacements=%replacements%-rep _"\x22MyM\x22"_"\x22MyM\x22 checked=\x22true\x22"_ "
if /i "%CleanRip%" EQU "*" set "replacements=%replacements%-rep _"\x22CleanRip\x22"_"\x22CleanRip\x22 checked=\x22true\x22"_ "
if /i "%ARC%" EQU "*" set "replacements=%replacements%-rep _"\x22ARC\x22"_"\x22ARC\x22 checked=\x22true\x22"_ "
if /i "%KK%" EQU "*" set "replacements=%replacements%-rep _"\x22KK\x22"_"\x22KK\x22 checked=\x22true\x22"_ "
if /i "%HM%" EQU "*" set "replacements=%replacements%-rep _"\x22HM\x22"_"\x22HM\x22 checked=\x22true\x22"_ "
if /i "%HMold%" EQU "*" set "replacements=%replacements%-rep _"\x22HMold\x22"_"\x22HMold\x22 checked=\x22true\x22"_ "
if /i "%DumpMii%" EQU "*" set "replacements=%replacements%-rep _"\x22DumpMii\x22"_"\x22DumpMii\x22 checked=\x22true\x22"_ "
if /i "%syscheck%" EQU "*" set "replacements=%replacements%-rep _"\x22syscheck\x22"_"\x22syscheck\x22 checked=\x22true\x22"_ "
if /i "%yawm%" EQU "*" set "replacements=%replacements%-rep _"\x22yawm\x22"_"\x22yawm\x22 checked=\x22true\x22"_ "
if /i "%Pri%" EQU "*" set "replacements=%replacements%-rep _"\x22Pri\x22"_"\x22Pri\x22 checked=\x22true\x22"_ "
if /i "%IOS236Installer%" EQU "*" set "replacements=%replacements%-rep _"\x22IOS236Installer\x22"_"\x22IOS236Installer\x22 checked=\x22true\x22"_ "
if /i "%SIP%" EQU "*" set "replacements=%replacements%-rep _"\x22SIP\x22"_"\x22SIP\x22 checked=\x22true\x22"_ "
if /i "%PLC%" EQU "*" set "replacements=%replacements%-rep _"\x22PLC\x22"_"\x22PLC\x22 checked=\x22true\x22"_ "
if /i "%OHBC%" EQU "*" set "replacements=%replacements%-rep _"\x22OHBC\x22"_"\x22OHBC\x22 checked=\x22true\x22"_ "
if /i "%bootmiisd%" EQU "*" set "replacements=%replacements%-rep _"\x22bootmiisd\x22"_"\x22bootmiisd\x22 checked=\x22true\x22"_ "
if /i "%PL%" EQU "*" set "replacements=%replacements%-rep _"\x22PL\x22"_"\x22PL\x22 checked=\x22true\x22"_ "
if /i "%Casper%" EQU "*" set "replacements=%replacements%-rep _"\x22Casper\x22"_"\x22Casper\x22 checked=\x22true\x22"_ "
if /i "%ftpii%" EQU "*" set "replacements=%replacements%-rep _"\x22ftpii\x22"_"\x22ftpii\x22 checked=\x22true\x22"_ "
if /i "%WiiMC%" EQU "*" set "replacements=%replacements%-rep _"\x22WiiMC\x22"_"\x22WiiMC\x22 checked=\x22true\x22"_ "
if /i "%fceugx%" EQU "*" set "replacements=%replacements%-rep _"\x22fceugx\x22"_"\x22fceugx\x22 checked=\x22true\x22"_ "
if /i "%snes9xgx%" EQU "*" set "replacements=%replacements%-rep _"\x22snes9xgx\x22"_"\x22snes9xgx\x22 checked=\x22true\x22"_ "
if /i "%vbagx%" EQU "*" set "replacements=%replacements%-rep _"\x22vbagx\x22"_"\x22vbagx\x22 checked=\x22true\x22"_ "
if /i "%SGM%" EQU "*" set "replacements=%replacements%-rep _"\x22SGM\x22"_"\x22SGM\x22 checked=\x22true\x22"_ "
if /i "%WIIX%" EQU "*" set "replacements=%replacements%-rep _"\x22WIIX\x22"_"\x22WIIX\x22 checked=\x22true\x22"_ "
if /i "%HBB%" EQU "*" set "replacements=%replacements%-rep _"\x22HBB\x22"_"\x22HBB\x22 checked=\x22true\x22"_ "
if /i "%WII64%" EQU "*" set "replacements=%replacements%-rep _"\x22WII64\x22"_"\x22WII64\x22 checked=\x22true\x22"_ "
if /i "%Not64%" EQU "*" set "replacements=%replacements%-rep _"\x22Not64\x22"_"\x22Not64\x22 checked=\x22true\x22"_ "
if /i "%WIISX%" EQU "*" set "replacements=%replacements%-rep _"\x22WIISX\x22"_"\x22WIISX\x22 checked=\x22true\x22"_ "
if /i "%locked%" EQU "*" set "replacements=%replacements%-rep _"\x22locked\x22"_"\x22locked\x22 checked=\x22true\x22"_ "
if /i "%FLOWF%" EQU "*" set "replacements=%replacements%-rep _"\x22FLOWF\x22"_"\x22FLOWF\x22 checked=\x22true\x22"_ "
if /i "%S2U%" EQU "*" set "replacements=%replacements%-rep _"\x22S2U\x22"_"\x22S2U\x22 checked=\x22true\x22"_ "
if /i "%nswitch%" EQU "*" set "replacements=%replacements%-rep _"\x22nswitch\x22"_"\x22nswitch\x22 checked=\x22true\x22"_ "
if /i "%BB1%" EQU "*" set "replacements=%replacements%-rep _"\x22BB1\x22"_"\x22BB1\x22 checked=\x22true\x22"_ "
if /i "%BB2%" EQU "*" set "replacements=%replacements%-rep _"\x22BB2\x22"_"\x22BB2\x22 checked=\x22true\x22"_ "
if /i "%Twi%" EQU "*" set "replacements=%replacements%-rep _"\x22Twi\x22"_"\x22Twi\x22 checked=\x22true\x22"_ "
if /i "%Twi2%" EQU "*" set "replacements=%replacements%-rep _"\x22Twi2\x22"_"\x22Twi2\x22 checked=\x22true\x22"_ "
if /i "%YUGI%" EQU "*" set "replacements=%replacements%-rep _"\x22YUGI\x22"_"\x22YUGI\x22 checked=\x22true\x22"_ "
if /i "%Bathaxx%" EQU "*" set "replacements=%replacements%-rep _"\x22Bathaxx\x22"_"\x22Bathaxx\x22 checked=\x22true\x22"_ "
if /i "%ROTJ%" EQU "*" set "replacements=%replacements%-rep _"\x22ROTJ\x22"_"\x22ROTJ\x22 checked=\x22true\x22"_ "
if /i "%TOS%" EQU "*" set "replacements=%replacements%-rep _"\x22TOS\x22"_"\x22TOS\x22 checked=\x22true\x22"_ "
if /i "%smash%" EQU "*" set "replacements=%replacements%-rep _"\x22smash\x22"_"\x22smash\x22 checked=\x22true\x22"_ "
if /i "%pwns%" EQU "*" set "replacements=%replacements%-rep _"\x22pwns\x22"_"\x22pwns\x22 checked=\x22true\x22"_ "
if /i "%Wilbrand%" EQU "*" set "replacements=%replacements%-rep _"\x22Wilbrand\x22"_"\x22Wilbrand\x22 checked=\x22true\x22"_ "
:notDL2
::-----------DLPAGE3 Markup------------
::modify\update HTA with marked downloads
if /i "%nextpage%" NEQ "DLPAGE3.hta" goto:notDL3
set "replacements=%replacements%-rep _"\x22%effect%\x22"_"\x22%effect%\x22 checked=\x22true\x22"_ "
::if /i "%DLTOTAL%" EQU "0" goto:HTAstuff
if /i "%MyM%" EQU "*" set "replacements=%replacements%-rep _"\x22MyM\x22"_"\x22MyM\x22 checked=\x22true\x22"_ "
if /i "%csminstaller%" EQU "*" set "replacements=%replacements%-rep _"\x22ci\x22"_"\x22ci\x22 checked=\x22true\x22"_ "
if /i "%A1c%" EQU "*" set "replacements=%replacements%-rep _"\x22A1c\x22"_"\x22A1c\x22 checked=\x22true\x22"_ "
if /i "%A1f%" EQU "*" set "replacements=%replacements%-rep _"\x22A1f\x22"_"\x22A1f\x22 checked=\x22true\x22"_ "
if /i "%A22%" EQU "*" set "replacements=%replacements%-rep _"\x22A22\x22"_"\x22A22\x22 checked=\x22true\x22"_ "
if /i "%DarkWii_Red_vWiiU%" EQU "*" set "replacements=%replacements%-rep _"\x22R\x5fvU\x22"_"\x22R\x5fvU\x22 checked=\x22true\x22"_ "
if /i "%DarkWii_Green_vWiiU%" EQU "*" set "replacements=%replacements%-rep _"\x22G\x5fvU\x22"_"\x22G\x5fvU\x22 checked=\x22true\x22"_ "
if /i "%DarkWii_Blue_vWiiU%" EQU "*" set "replacements=%replacements%-rep _"\x22B\x5fvU\x22"_"\x22B\x5fvU\x22 checked=\x22true\x22"_ "
if /i "%darkwii_orange_vWiiU%" EQU "*" set "replacements=%replacements%-rep _"\x22O\x5fvU\x22"_"\x22O\x5fvU\x22 checked=\x22true\x22"_ "
if /i "%DarkWii_Red_vWiiJ%" EQU "*" set "replacements=%replacements%-rep _"\x22R\x5fvJ\x22"_"\x22R\x5fvJ\x22 checked=\x22true\x22"_ "
if /i "%DarkWii_Green_vWiiJ%" EQU "*" set "replacements=%replacements%-rep _"\x22G\x5fvJ\x22"_"\x22G\x5fvJ\x22 checked=\x22true\x22"_ "
if /i "%DarkWii_Blue_vWiiJ%" EQU "*" set "replacements=%replacements%-rep _"\x22B\x5fvJ\x22"_"\x22B\x5fvJ\x22 checked=\x22true\x22"_ "
if /i "%darkwii_orange_vWiiJ%" EQU "*" set "replacements=%replacements%-rep _"\x22O\x5fvJ\x22"_"\x22O\x5fvJ\x22 checked=\x22true\x22"_ "
if /i "%DarkWii_Red_vWiiE%" EQU "*" set "replacements=%replacements%-rep _"\x22R\x5fvE\x22"_"\x22R\x5fvE\x22 checked=\x22true\x22"_ "
if /i "%DarkWii_Green_vWiiE%" EQU "*" set "replacements=%replacements%-rep _"\x22G\x5fvE\x22"_"\x22G\x5fvE\x22 checked=\x22true\x22"_ "
if /i "%DarkWii_Blue_vWiiE%" EQU "*" set "replacements=%replacements%-rep _"\x22B\x5fvE\x22"_"\x22B\x5fvE\x22 checked=\x22true\x22"_ "
if /i "%darkwii_orange_vWiiE%" EQU "*" set "replacements=%replacements%-rep _"\x22O\x5fvE\x22"_"\x22O\x5fvE\x22 checked=\x22true\x22"_ "
if /i "%DarkWii_Red_4.3U%" EQU "*" set "replacements=%replacements%-rep _"\x22DarkWii\x5fRed\x5f43U\x22"_"\x22DarkWii\x5fRed\x5f43U\x22 checked=\x22true\x22"_ "
if /i "%DarkWii_Red_4.2U%" EQU "*" set "replacements=%replacements%-rep _"\x22DarkWii\x5fRed\x5f42U\x22"_"\x22DarkWii\x5fRed\x5f42U\x22 checked=\x22true\x22"_ "
if /i "%DarkWii_Green_4.3U%" EQU "*" set "replacements=%replacements%-rep _"\x22DarkWii\x5fGreen\x5f43U\x22"_"\x22DarkWii\x5fGreen\x5f43U\x22 checked=\x22true\x22"_ "
if /i "%DarkWii_Red_4.1U%" EQU "*" set "replacements=%replacements%-rep _"\x22DarkWii\x5fRed\x5f41U\x22"_"\x22DarkWii\x5fRed\x5f41U\x22 checked=\x22true\x22"_ "
if /i "%DarkWii_Green_4.2U%" EQU "*" set "replacements=%replacements%-rep _"\x22DarkWii\x5fGreen\x5f42U\x22"_"\x22DarkWii\x5fGreen\x5f42U\x22 checked=\x22true\x22"_ "
if /i "%DarkWii_Green_4.1U%" EQU "*" set "replacements=%replacements%-rep _"\x22DarkWii\x5fGreen\x5f41U\x22"_"\x22DarkWii\x5fGreen\x5f41U\x22 checked=\x22true\x22"_ "
if /i "%DarkWii_Blue_4.3U%" EQU "*" set "replacements=%replacements%-rep _"\x22DarkWii\x5fBlue\x5f43U\x22"_"\x22DarkWii\x5fBlue\x5f43U\x22 checked=\x22true\x22"_ "
if /i "%DarkWii_Blue_4.2U%" EQU "*" set "replacements=%replacements%-rep _"\x22DarkWii\x5fBlue\x5f42U\x22"_"\x22DarkWii\x5fBlue\x5f42U\x22 checked=\x22true\x22"_ "
if /i "%DarkWii_Blue_4.1U%" EQU "*" set "replacements=%replacements%-rep _"\x22DarkWii\x5fBlue\x5f41U\x22"_"\x22DarkWii\x5fBlue\x5f41U\x22 checked=\x22true\x22"_ "
if /i "%darkwii_orange_4.3U%" EQU "*" set "replacements=%replacements%-rep _"\x22DarkWii\x5forange\x5f43U\x22"_"\x22DarkWii\x5forange\x5f43U\x22 checked=\x22true\x22"_ "
if /i "%darkwii_orange_4.2U%" EQU "*" set "replacements=%replacements%-rep _"\x22DarkWii\x5forange\x5f42U\x22"_"\x22DarkWii\x5forange\x5f42U\x22 checked=\x22true\x22"_ "
if /i "%darkwii_orange_4.1U%" EQU "*" set "replacements=%replacements%-rep _"\x22DarkWii\x5forange\x5f41U\x22"_"\x22DarkWii\x5forange\x5f41U\x22 checked=\x22true\x22"_ "
if /i "%DarkWii_Red_4.3E%" EQU "*" set "replacements=%replacements%-rep _"\x22DarkWii\x5fRed\x5f43E\x22"_"\x22DarkWii\x5fRed\x5f43E\x22 checked=\x22true\x22"_ "
if /i "%DarkWii_Red_4.2E%" EQU "*" set "replacements=%replacements%-rep _"\x22DarkWii\x5fRed\x5f42E\x22"_"\x22DarkWii\x5fRed\x5f42E\x22 checked=\x22true\x22"_ "
if /i "%DarkWii_Red_4.1E%" EQU "*" set "replacements=%replacements%-rep _"\x22DarkWii\x5fRed\x5f41E\x22"_"\x22DarkWii\x5fRed\x5f41E\x22 checked=\x22true\x22"_ "
if /i "%DarkWii_Green_4.3E%" EQU "*" set "replacements=%replacements%-rep _"\x22DarkWii\x5fGreen\x5f43E\x22"_"\x22DarkWii\x5fGreen\x5f43E\x22 checked=\x22true\x22"_ "
if /i "%DarkWii_Green_4.2E%" EQU "*" set "replacements=%replacements%-rep _"\x22DarkWii\x5fGreen\x5f42E\x22"_"\x22DarkWii\x5fGreen\x5f42E\x22 checked=\x22true\x22"_ "
if /i "%DarkWii_Green_4.1E%" EQU "*" set "replacements=%replacements%-rep _"\x22DarkWii\x5fGreen\x5f41E\x22"_"\x22DarkWii\x5fGreen\x5f41E\x22 checked=\x22true\x22"_ "
if /i "%DarkWii_Blue_4.3E%" EQU "*" set "replacements=%replacements%-rep _"\x22DarkWii\x5fBlue\x5f43E\x22"_"\x22DarkWii\x5fBlue\x5f43E\x22 checked=\x22true\x22"_ "
if /i "%DarkWii_Blue_4.2E%" EQU "*" set "replacements=%replacements%-rep _"\x22DarkWii\x5fBlue\x5f42E\x22"_"\x22DarkWii\x5fBlue\x5f42E\x22 checked=\x22true\x22"_ "
if /i "%DarkWii_Blue_4.1E%" EQU "*" set "replacements=%replacements%-rep _"\x22DarkWii\x5fBlue\x5f41E\x22"_"\x22DarkWii\x5fBlue\x5f41E\x22 checked=\x22true\x22"_ "
if /i "%darkwii_orange_4.3E%" EQU "*" set "replacements=%replacements%-rep _"\x22DarkWii\x5forange\x5f43E\x22"_"\x22DarkWii\x5forange\x5f43E\x22 checked=\x22true\x22"_ "
if /i "%darkwii_orange_4.2E%" EQU "*" set "replacements=%replacements%-rep _"\x22DarkWii\x5forange\x5f42E\x22"_"\x22DarkWii\x5forange\x5f42E\x22 checked=\x22true\x22"_ "
if /i "%darkwii_orange_4.1E%" EQU "*" set "replacements=%replacements%-rep _"\x22DarkWii\x5forange\x5f41E\x22"_"\x22DarkWii\x5forange\x5f41E\x22 checked=\x22true\x22"_ "
if /i "%DarkWii_Red_4.3J%" EQU "*" set "replacements=%replacements%-rep _"\x22DarkWii\x5fRed\x5f43J\x22"_"\x22DarkWii\x5fRed\x5f43J\x22 checked=\x22true\x22"_ "
if /i "%DarkWii_Red_4.2J%" EQU "*" set "replacements=%replacements%-rep _"\x22DarkWii\x5fRed\x5f42J\x22"_"\x22DarkWii\x5fRed\x5f42J\x22 checked=\x22true\x22"_ "
if /i "%DarkWii_Red_4.1J%" EQU "*" set "replacements=%replacements%-rep _"\x22DarkWii\x5fRed\x5f41J\x22"_"\x22DarkWii\x5fRed\x5f41J\x22 checked=\x22true\x22"_ "
if /i "%DarkWii_Green_4.3J%" EQU "*" set "replacements=%replacements%-rep _"\x22DarkWii\x5fGreen\x5f43J\x22"_"\x22DarkWii\x5fGreen\x5f43J\x22 checked=\x22true\x22"_ "
if /i "%DarkWii_Green_4.2J%" EQU "*" set "replacements=%replacements%-rep _"\x22DarkWii\x5fGreen\x5f42J\x22"_"\x22DarkWii\x5fGreen\x5f42J\x22 checked=\x22true\x22"_ "
if /i "%DarkWii_Green_4.1J%" EQU "*" set "replacements=%replacements%-rep _"\x22DarkWii\x5fGreen\x5f41J\x22"_"\x22DarkWii\x5fGreen\x5f41J\x22 checked=\x22true\x22"_ "
if /i "%DarkWii_Blue_4.3J%" EQU "*" set "replacements=%replacements%-rep _"\x22DarkWii\x5fBlue\x5f43J\x22"_"\x22DarkWii\x5fBlue\x5f43J\x22 checked=\x22true\x22"_ "
if /i "%DarkWii_Blue_4.2J%" EQU "*" set "replacements=%replacements%-rep _"\x22DarkWii\x5fBlue\x5f42J\x22"_"\x22DarkWii\x5fBlue\x5f42J\x22 checked=\x22true\x22"_ "
if /i "%DarkWii_Blue_4.1J%" EQU "*" set "replacements=%replacements%-rep _"\x22DarkWii\x5fBlue\x5f41J\x22"_"\x22DarkWii\x5fBlue\x5f41J\x22 checked=\x22true\x22"_ "
if /i "%darkwii_orange_4.3J%" EQU "*" set "replacements=%replacements%-rep _"\x22DarkWii\x5forange\x5f43J\x22"_"\x22DarkWii\x5forange\x5f43J\x22 checked=\x22true\x22"_ "
if /i "%darkwii_orange_4.2J%" EQU "*" set "replacements=%replacements%-rep _"\x22DarkWii\x5forange\x5f42J\x22"_"\x22DarkWii\x5forange\x5f42J\x22 checked=\x22true\x22"_ "
if /i "%darkwii_orange_4.1J%" EQU "*" set "replacements=%replacements%-rep _"\x22DarkWii\x5forange\x5f41J\x22"_"\x22DarkWii\x5forange\x5f41J\x22 checked=\x22true\x22"_ "
if /i "%DarkWii_Red_4.3K%" EQU "*" set "replacements=%replacements%-rep _"\x22DarkWii\x5fRed\x5f43K\x22"_"\x22DarkWii\x5fRed\x5f43K\x22 checked=\x22true\x22"_ "
if /i "%DarkWii_Red_4.2K%" EQU "*" set "replacements=%replacements%-rep _"\x22DarkWii\x5fRed\x5f42K\x22"_"\x22DarkWii\x5fRed\x5f42K\x22 checked=\x22true\x22"_ "
if /i "%DarkWii_Red_4.1K%" EQU "*" set "replacements=%replacements%-rep _"\x22DarkWii\x5fRed\x5f41K\x22"_"\x22DarkWii\x5fRed\x5f41K\x22 checked=\x22true\x22"_ "
if /i "%DarkWii_Green_4.3K%" EQU "*" set "replacements=%replacements%-rep _"\x22DarkWii\x5fGreen\x5f43K\x22"_"\x22DarkWii\x5fGreen\x5f43K\x22 checked=\x22true\x22"_ "
if /i "%DarkWii_Green_4.2K%" EQU "*" set "replacements=%replacements%-rep _"\x22DarkWii\x5fGreen\x5f42K\x22"_"\x22DarkWii\x5fGreen\x5f42K\x22 checked=\x22true\x22"_ "
if /i "%DarkWii_Green_4.1K%" EQU "*" set "replacements=%replacements%-rep _"\x22DarkWii\x5fGreen\x5f41K\x22"_"\x22DarkWii\x5fGreen\x5f41K\x22 checked=\x22true\x22"_ "
if /i "%DarkWii_Blue_4.3K%" EQU "*" set "replacements=%replacements%-rep _"\x22DarkWii\x5fBlue\x5f43K\x22"_"\x22DarkWii\x5fBlue\x5f43K\x22 checked=\x22true\x22"_ "
if /i "%DarkWii_Blue_4.2K%" EQU "*" set "replacements=%replacements%-rep _"\x22DarkWii\x5fBlue\x5f42K\x22"_"\x22DarkWii\x5fBlue\x5f42K\x22 checked=\x22true\x22"_ "
if /i "%DarkWii_Blue_4.1K%" EQU "*" set "replacements=%replacements%-rep _"\x22DarkWii\x5fBlue\x5f41K\x22"_"\x22DarkWii\x5fBlue\x5f41K\x22 checked=\x22true\x22"_ "
if /i "%darkwii_orange_4.3K%" EQU "*" set "replacements=%replacements%-rep _"\x22DarkWii\x5forange\x5f43K\x22"_"\x22DarkWii\x5forange\x5f43K\x22 checked=\x22true\x22"_ "
if /i "%darkwii_orange_4.2K%" EQU "*" set "replacements=%replacements%-rep _"\x22DarkWii\x5forange\x5f42K\x22"_"\x22DarkWii\x5forange\x5f42K\x22 checked=\x22true\x22"_ "
if /i "%darkwii_orange_4.1K%" EQU "*" set "replacements=%replacements%-rep _"\x22DarkWii\x5forange\x5f41K\x22"_"\x22DarkWii\x5forange\x5f41K\x22 checked=\x22true\x22"_ "
::split into 2 commands
support\sfk filter -quiet -spat "temp\%nextpage%" %replacements%-write -yes
set replacements=
if /i "%SM4.3U-DWR%" EQU "*" set "replacements=%replacements%-rep _"\x22SM43U\x5fDWR\x22"_"\x22SM43U\x5fDWR\x22 checked=\x22true\x22"_ "
if /i "%SM4.2U-DWR%" EQU "*" set "replacements=%replacements%-rep _"\x22SM42U\x5fDWR\x22"_"\x22SM42U\x5fDWR\x22 checked=\x22true\x22"_ "
if /i "%SM4.1U-DWR%" EQU "*" set "replacements=%replacements%-rep _"\x22SM41U\x5fDWR\x22"_"\x22SM41U\x5fDWR\x22 checked=\x22true\x22"_ "
if /i "%SM4.3U-DWG%" EQU "*" set "replacements=%replacements%-rep _"\x22SM43U\x5fDWG\x22"_"\x22SM43U\x5fDWG\x22 checked=\x22true\x22"_ "
if /i "%SM4.2U-DWG%" EQU "*" set "replacements=%replacements%-rep _"\x22SM42U\x5fDWG\x22"_"\x22SM42U\x5fDWG\x22 checked=\x22true\x22"_ "
if /i "%SM4.1U-DWG%" EQU "*" set "replacements=%replacements%-rep _"\x22SM41U\x5fDWG\x22"_"\x22SM41U\x5fDWG\x22 checked=\x22true\x22"_ "
if /i "%SM4.3U-DWB%" EQU "*" set "replacements=%replacements%-rep _"\x22SM43U\x5fDWB\x22"_"\x22SM43U\x5fDWB\x22 checked=\x22true\x22"_ "
if /i "%SM4.2U-DWB%" EQU "*" set "replacements=%replacements%-rep _"\x22SM42U\x5fDWB\x22"_"\x22SM42U\x5fDWB\x22 checked=\x22true\x22"_ "
if /i "%SM4.1U-DWB%" EQU "*" set "replacements=%replacements%-rep _"\x22SM41U\x5fDWB\x22"_"\x22SM41U\x5fDWB\x22 checked=\x22true\x22"_ "
if /i "%SM4.3U-DWO%" EQU "*" set "replacements=%replacements%-rep _"\x22SM43U\x5fDWO\x22"_"\x22SM43U\x5fDWO\x22 checked=\x22true\x22"_ "
if /i "%SM4.2U-DWO%" EQU "*" set "replacements=%replacements%-rep _"\x22SM42U\x5fDWO\x22"_"\x22SM42U\x5fDWO\x22 checked=\x22true\x22"_ "
if /i "%SM4.1U-DWO%" EQU "*" set "replacements=%replacements%-rep _"\x22SM41U\x5fDWO\x22"_"\x22SM41U\x5fDWO\x22 checked=\x22true\x22"_ "
if /i "%SM4.3E-DWR%" EQU "*" set "replacements=%replacements%-rep _"\x22SM43E\x5fDWR\x22"_"\x22SM43E\x5fDWR\x22 checked=\x22true\x22"_ "
if /i "%SM4.2E-DWR%" EQU "*" set "replacements=%replacements%-rep _"\x22SM42E\x5fDWR\x22"_"\x22SM42E\x5fDWR\x22 checked=\x22true\x22"_ "
if /i "%SM4.1E-DWR%" EQU "*" set "replacements=%replacements%-rep _"\x22SM41E\x5fDWR\x22"_"\x22SM41E\x5fDWR\x22 checked=\x22true\x22"_ "
if /i "%SM4.3E-DWG%" EQU "*" set "replacements=%replacements%-rep _"\x22SM43E\x5fDWG\x22"_"\x22SM43E\x5fDWG\x22 checked=\x22true\x22"_ "
if /i "%SM4.2E-DWG%" EQU "*" set "replacements=%replacements%-rep _"\x22SM42E\x5fDWG\x22"_"\x22SM42E\x5fDWG\x22 checked=\x22true\x22"_ "
if /i "%SM4.1E-DWG%" EQU "*" set "replacements=%replacements%-rep _"\x22SM41E\x5fDWG\x22"_"\x22SM41E\x5fDWG\x22 checked=\x22true\x22"_ "
if /i "%SM4.3E-DWB%" EQU "*" set "replacements=%replacements%-rep _"\x22SM43E\x5fDWB\x22"_"\x22SM43E\x5fDWB\x22 checked=\x22true\x22"_ "
if /i "%SM4.2E-DWB%" EQU "*" set "replacements=%replacements%-rep _"\x22SM42E\x5fDWB\x22"_"\x22SM42E\x5fDWB\x22 checked=\x22true\x22"_ "
if /i "%SM4.1E-DWB%" EQU "*" set "replacements=%replacements%-rep _"\x22SM41E\x5fDWB\x22"_"\x22SM41E\x5fDWB\x22 checked=\x22true\x22"_ "
if /i "%SM4.3E-DWO%" EQU "*" set "replacements=%replacements%-rep _"\x22SM43E\x5fDWO\x22"_"\x22SM43E\x5fDWO\x22 checked=\x22true\x22"_ "
if /i "%SM4.2E-DWO%" EQU "*" set "replacements=%replacements%-rep _"\x22SM42E\x5fDWO\x22"_"\x22SM42E\x5fDWO\x22 checked=\x22true\x22"_ "
if /i "%SM4.1E-DWO%" EQU "*" set "replacements=%replacements%-rep _"\x22SM41E\x5fDWO\x22"_"\x22SM41E\x5fDWO\x22 checked=\x22true\x22"_ "
if /i "%SM4.3J-DWR%" EQU "*" set "replacements=%replacements%-rep _"\x22SM43J\x5fDWR\x22"_"\x22SM43J\x5fDWR\x22 checked=\x22true\x22"_ "
if /i "%SM4.2J-DWR%" EQU "*" set "replacements=%replacements%-rep _"\x22SM42J\x5fDWR\x22"_"\x22SM42J\x5fDWR\x22 checked=\x22true\x22"_ "
if /i "%SM4.1J-DWR%" EQU "*" set "replacements=%replacements%-rep _"\x22SM41J\x5fDWR\x22"_"\x22SM41J\x5fDWR\x22 checked=\x22true\x22"_ "
if /i "%SM4.3J-DWG%" EQU "*" set "replacements=%replacements%-rep _"\x22SM43J\x5fDWG\x22"_"\x22SM43J\x5fDWG\x22 checked=\x22true\x22"_ "
if /i "%SM4.2J-DWG%" EQU "*" set "replacements=%replacements%-rep _"\x22SM42J\x5fDWG\x22"_"\x22SM42J\x5fDWG\x22 checked=\x22true\x22"_ "
if /i "%SM4.1J-DWG%" EQU "*" set "replacements=%replacements%-rep _"\x22SM41J\x5fDWG\x22"_"\x22SM41J\x5fDWG\x22 checked=\x22true\x22"_ "
if /i "%SM4.3J-DWB%" EQU "*" set "replacements=%replacements%-rep _"\x22SM43J\x5fDWB\x22"_"\x22SM43J\x5fDWB\x22 checked=\x22true\x22"_ "
if /i "%SM4.2J-DWB%" EQU "*" set "replacements=%replacements%-rep _"\x22SM42J\x5fDWB\x22"_"\x22SM42J\x5fDWB\x22 checked=\x22true\x22"_ "
if /i "%SM4.1J-DWB%" EQU "*" set "replacements=%replacements%-rep _"\x22SM41J\x5fDWB\x22"_"\x22SM41J\x5fDWB\x22 checked=\x22true\x22"_ "
if /i "%SM4.3J-DWO%" EQU "*" set "replacements=%replacements%-rep _"\x22SM43J\x5fDWO\x22"_"\x22SM43J\x5fDWO\x22 checked=\x22true\x22"_ "
if /i "%SM4.2J-DWO%" EQU "*" set "replacements=%replacements%-rep _"\x22SM42J\x5fDWO\x22"_"\x22SM42J\x5fDWO\x22 checked=\x22true\x22"_ "
if /i "%SM4.1J-DWO%" EQU "*" set "replacements=%replacements%-rep _"\x22SM41J\x5fDWO\x22"_"\x22SM41J\x5fDWO\x22 checked=\x22true\x22"_ "
if /i "%SM4.3K-DWR%" EQU "*" set "replacements=%replacements%-rep _"\x22SM43K\x5fDWR\x22"_"\x22SM43K\x5fDWR\x22 checked=\x22true\x22"_ "
if /i "%SM4.2K-DWR%" EQU "*" set "replacements=%replacements%-rep _"\x22SM42K\x5fDWR\x22"_"\x22SM42K\x5fDWR\x22 checked=\x22true\x22"_ "
if /i "%SM4.1K-DWR%" EQU "*" set "replacements=%replacements%-rep _"\x22SM41K\x5fDWR\x22"_"\x22SM41K\x5fDWR\x22 checked=\x22true\x22"_ "
if /i "%SM4.3K-DWG%" EQU "*" set "replacements=%replacements%-rep _"\x22SM43K\x5fDWG\x22"_"\x22SM43K\x5fDWG\x22 checked=\x22true\x22"_ "
if /i "%SM4.2K-DWG%" EQU "*" set "replacements=%replacements%-rep _"\x22SM42K\x5fDWG\x22"_"\x22SM42K\x5fDWG\x22 checked=\x22true\x22"_ "
if /i "%SM4.1K-DWG%" EQU "*" set "replacements=%replacements%-rep _"\x22SM41K\x5fDWG\x22"_"\x22SM41K\x5fDWG\x22 checked=\x22true\x22"_ "
if /i "%SM4.3K-DWB%" EQU "*" set "replacements=%replacements%-rep _"\x22SM43K\x5fDWB\x22"_"\x22SM43K\x5fDWB\x22 checked=\x22true\x22"_ "
if /i "%SM4.2K-DWB%" EQU "*" set "replacements=%replacements%-rep _"\x22SM42K\x5fDWB\x22"_"\x22SM42K\x5fDWB\x22 checked=\x22true\x22"_ "
if /i "%SM4.1K-DWB%" EQU "*" set "replacements=%replacements%-rep _"\x22SM41K\x5fDWB\x22"_"\x22SM41K\x5fDWB\x22 checked=\x22true\x22"_ "
if /i "%SM4.3K-DWO%" EQU "*" set "replacements=%replacements%-rep _"\x22SM43K\x5fDWO\x22"_"\x22SM43K\x5fDWO\x22 checked=\x22true\x22"_ "
if /i "%SM4.2K-DWO%" EQU "*" set "replacements=%replacements%-rep _"\x22SM42K\x5fDWO\x22"_"\x22SM42K\x5fDWO\x22 checked=\x22true\x22"_ "
if /i "%SM4.1K-DWO%" EQU "*" set "replacements=%replacements%-rep _"\x22SM41K\x5fDWO\x22"_"\x22SM41K\x5fDWO\x22 checked=\x22true\x22"_ "
if /i "%A7b%" EQU "*" set "replacements=%replacements%-rep _"\x22A7b\x22"_"\x22A7b\x22 checked=\x22true\x22"_ "
if /i "%A87%" EQU "*" set "replacements=%replacements%-rep _"\x22A87\x22"_"\x22A87\x22 checked=\x22true\x22"_ "
if /i "%A97%" EQU "*" set "replacements=%replacements%-rep _"\x22A97\x22"_"\x22A97\x22 checked=\x22true\x22"_ "
if /i "%A7e%" EQU "*" set "replacements=%replacements%-rep _"\x22A7e\x22"_"\x22A7e\x22 checked=\x22true\x22"_ "
if /i "%A8a%" EQU "*" set "replacements=%replacements%-rep _"\x22A8a\x22"_"\x22A8a\x22 checked=\x22true\x22"_ "
if /i "%A9a%" EQU "*" set "replacements=%replacements%-rep _"\x22A9a\x22"_"\x22A9a\x22 checked=\x22true\x22"_ "
if /i "%A78%" EQU "*" set "replacements=%replacements%-rep _"\x22A78\x22"_"\x22A78\x22 checked=\x22true\x22"_ "
if /i "%A84%" EQU "*" set "replacements=%replacements%-rep _"\x22A84\x22"_"\x22A84\x22 checked=\x22true\x22"_ "
if /i "%A94%" EQU "*" set "replacements=%replacements%-rep _"\x22A94\x22"_"\x22A94\x22 checked=\x22true\x22"_ "
if /i "%A81%" EQU "*" set "replacements=%replacements%-rep _"\x22A81\x22"_"\x22A81\x22 checked=\x22true\x22"_ "
if /i "%A8d%" EQU "*" set "replacements=%replacements%-rep _"\x22A8d\x22"_"\x22A8d\x22 checked=\x22true\x22"_ "
if /i "%A9d%" EQU "*" set "replacements=%replacements%-rep _"\x22A9d\x22"_"\x22A9d\x22 checked=\x22true\x22"_ "
:notDL3
::-----------DLPAGE4 Markup------------
::modify\update HTA with marked downloads
if /i "%nextpage%" NEQ "DLPAGE4.hta" goto:notDL4
set "replacements=%replacements%-rep _"d2xversion"_"%d2x-beta-rev%"_ "
::make boxes for d2x bases 60/70/80 disabled IF older than v8 beta 42, as those bases never existed for those older versions
echo "set cIOSversionNum=%d2x-beta-rev%">temp\cIOSrev.bat
support\sfk filter -spat temp\cIOSrev.bat -rep _\x22__ -rep _"-*"__ -write -yes>nul
call temp\cIOSrev.bat
del temp\cIOSrev.bat>nul
if %cIOSversionNum% GEQ 8 goto:skipdisable
set "replacements=%replacements%-rep _"d2xNA--\x3e\x3cth"_"d2xNA--\x3e\x3cth disabled"_ "
set "replacements=%replacements%-rep _" And (c249\x5f60\x5fd2x.checked = True) And (c249\x5f70\x5fd2x.checked = True) And (c249\x5f80\x5fd2x.checked = True)"__ "
set "replacements=%replacements%-rep _" And (c250\x5f60\x5fd2x.checked = True) And (c250\x5f70\x5fd2x.checked = True) And (c250\x5f80\x5fd2x.checked = True)"__ "
set "replacements=%replacements%-rep _"c249\x5f60\x5fd2x.checked = checkstatus"__ "
set "replacements=%replacements%-rep _"c249\x5f70\x5fd2x.checked = checkstatus"__ "
set "replacements=%replacements%-rep _"c249\x5f80\x5fd2x.checked = checkstatus"__ "
set "replacements=%replacements%-rep _"c250\x5f60\x5fd2x.checked = checkstatus"__ "
set "replacements=%replacements%-rep _"c250\x5f70\x5fd2x.checked = checkstatus"__ "
set "replacements=%replacements%-rep _"c250\x5f80\x5fd2x.checked = checkstatus"__ "
set cIOS249[60]-d2x-v10-beta52=
set cIOS249[70]-d2x-v10-beta52=
set cIOS249[80]-d2x-v10-beta52=
set cIOS250[60]-d2x-v10-beta52=
set cIOS250[70]-d2x-v10-beta52=
set cIOS250[80]-d2x-v10-beta52=
:skipdisable
::make boxes for vWii d2x cIOSs disabled IF older than v10, as they didn't exist
::echo "set cIOSversionNum=%d2x-beta-rev%">temp\cIOSrev.bat
::support\sfk filter -spat temp\cIOSrev.bat -rep _\x22__ -rep _"-*"__ -write -yes>nul
::call temp\cIOSrev.bat
::del temp\cIOSrev.bat>nul
::disable when d2x-beta-rev=10-b52-Stealth-RC24, not worth the effort even though technically doable
if exist "Support\d2x-beta\ciosmaps_vWii.xml" goto:skipdisable
if exist "Support\d2x-beta\" goto:disable
::if /i "%d2x-beta-rev%" EQU "10-b52-Stealth-RC24" goto:disable
::if %cIOSversionNum% GEQ 9 goto:skipdisable
goto:skipdisable
:disable
set "replacements=%replacements%-rep _"d2xvWiiNA--\x3e\x3cth"_"d2xvWiiNA--\x3e\x3cth disabled"_ -rep _"d2xvWii38NA--\x3e\x3cth"_"d2xvWii38NA--\x3e\x3cth disabled"_ "
set "replacements=%replacements%-rep _" And (c248\x5f38\x5fd2x\x5fvWii.checked = True) And (c249\x5f56\x5fd2x\x5fvWii.checked = True) And (c250\x5f57\x5fd2x\x5fvWii.checked = True) And (c251\x5f58\x5fd2x\x5fvWii.checked = True)"__ "
set "replacements=%replacements%-rep _"c248\x5f38\x5fd2x\x5fvWii.checked = checkstatus"__ "
set "replacements=%replacements%-rep _"c249\x5f56\x5fd2x\x5fvWii.checked = checkstatus"__ "
set "replacements=%replacements%-rep _"c250\x5f57\x5fd2x\x5fvWii.checked = checkstatus"__ "
set "replacements=%replacements%-rep _"c251\x5f58\x5fd2x\x5fvWii.checked = checkstatus"__ "
set cIOS248[38]-d2x-vWii=
set cIOS249[56]-d2x-vWii=
set cIOS250[57]-d2x-vWii=
set cIOS251[58]-d2x-vWii=
goto:skipdisable2
:skipdisable
::disable cIOS248[38]-d2x-vWii if not supported in ciosmaps_vWii.xml
if not exist "Support\d2x-beta\ciosmaps_vWii.xml" goto:skipdisable2
::check ciosmaps_vWii.xml for 'base ios="38"'
findStr /I /C:"base ios=\"38\"" "Support\d2x-beta\ciosmaps_vWii.xml" >nul
IF NOT ERRORLEVEL 1 goto:skipdisable2
set "replacements=%replacements%-rep _"d2xvWii38NA--\x3e\x3cth"_"d2xvWii38NA--\x3e\x3cth disabled"_ "
set "replacements=%replacements%-rep _" And (c248\x5f38\x5fd2x\x5fvWii.checked = True)"__ "
set "replacements=%replacements%-rep _"c248\x5f38\x5fd2x\x5fvWii.checked = checkstatus"__ "
set cIOS248[38]-d2x-vWii=
:skipdisable2
::if /i "%DLTOTAL%" EQU "0" goto:HTAstuff
if /i "%cIOS223[37-38]-v4%" EQU "*" set "replacements=%replacements%-rep _"\x22c223\x5f37\x5f38\x5fv4\x22"_"\x22c223\x5f37\x5f38\x5fv4\x22 checked=\x22true\x22"_ "
if /i "%cIOS222[38]-v4%" EQU "*" set "replacements=%replacements%-rep _"\x22c222\x5f38\x5fv4\x22"_"\x22c222\x5f38\x5fv4\x22 checked=\x22true\x22"_ "
if /i "%cIOS222[38]-v5%" EQU "*" set "replacements=%replacements%-rep _"\x22c222\x5f38\x5fv5\x22"_"\x22c222\x5f38\x5fv5\x22 checked=\x22true\x22"_ "
if /i "%cIOS224[57]-v5%" EQU "*" set "replacements=%replacements%-rep _"\x22c224\x5f57\x5fv5\x22"_"\x22c224\x5f57\x5fv5\x22 checked=\x22true\x22"_ "
if /i "%cIOS223[37]-v5%" EQU "*" set "replacements=%replacements%-rep _"\x22c223\x5f37\x5fv5\x22"_"\x22c223\x5f37\x5fv5\x22 checked=\x22true\x22"_ "
if /i "%cIOS202[60]-v5.1R%" EQU "*" set "replacements=%replacements%-rep _"\x22c202\x5f60\x5fv51R\x22"_"\x22c202\x5f60\x5fv51R\x22 checked=\x22true\x22"_ "
if /i "%cIOS222[38]-v5.1R%" EQU "*" set "replacements=%replacements%-rep _"\x22c222\x5f38\x5fv51R\x22"_"\x22c222\x5f38\x5fv51R\x22 checked=\x22true\x22"_ "
if /i "%cIOS224[57]-v5.1R%" EQU "*" set "replacements=%replacements%-rep _"\x22c224\x5f57\x5fv51R\x22"_"\x22c224\x5f57\x5fv51R\x22 checked=\x22true\x22"_ "
if /i "%cIOS223[37]-v5.1R%" EQU "*" set "replacements=%replacements%-rep _"\x22c223\x5f37\x5fv51R\x22"_"\x22c223\x5f37\x5fv51R\x22 checked=\x22true\x22"_ "
if /i "%cIOS249-v17b%" EQU "*" set "replacements=%replacements%-rep _"\x22c249\x5fv17b\x22"_"\x22c249\x5fv17b\x22 checked=\x22true\x22"_ "
if /i "%cIOS250-v17b%" EQU "*" set "replacements=%replacements%-rep _"\x22c250\x5fv17b\x22"_"\x22c250\x5fv17b\x22 checked=\x22true\x22"_ "
if /i "%cIOS249-v14%" EQU "*" set "replacements=%replacements%-rep _"\x22c249\x5fv14\x22"_"\x22c249\x5fv14\x22 checked=\x22true\x22"_ "
if /i "%cIOS250-v14%" EQU "*" set "replacements=%replacements%-rep _"\x22c250\x5fv14\x22"_"\x22c250\x5fv14\x22 checked=\x22true\x22"_ "
if /i "%cIOS249[37]-v19%" EQU "*" set "replacements=%replacements%-rep _"\x22c249\x5f37\x5fv19\x22"_"\x22c249\x5f37\x5fv19\x22 checked=\x22true\x22"_ "
if /i "%cIOS249[38]-v19%" EQU "*" set "replacements=%replacements%-rep _"\x22c249\x5f38\x5fv19\x22"_"\x22c249\x5f38\x5fv19\x22 checked=\x22true\x22"_ "
if /i "%cIOS249[57]-v19%" EQU "*" set "replacements=%replacements%-rep _"\x22c249\x5f57\x5fv19\x22"_"\x22c249\x5f57\x5fv19\x22 checked=\x22true\x22"_ "
if /i "%cIOS250[37]-v19%" EQU "*" set "replacements=%replacements%-rep _"\x22c250\x5f37\x5fv19\x22"_"\x22c250\x5f37\x5fv19\x22 checked=\x22true\x22"_ "
if /i "%cIOS250[38]-v19%" EQU "*" set "replacements=%replacements%-rep _"\x22c250\x5f38\x5fv19\x22"_"\x22c250\x5f38\x5fv19\x22 checked=\x22true\x22"_ "
if /i "%cIOS250[57]-v19%" EQU "*" set "replacements=%replacements%-rep _"\x22c250\x5f57\x5fv19\x22"_"\x22c250\x5f57\x5fv19\x22 checked=\x22true\x22"_ "
if /i "%cIOS249[56]-v20%" EQU "*" set "replacements=%replacements%-rep _"\x22c249\x5f56\x5fv20\x22"_"\x22c249\x5f56\x5fv20\x22 checked=\x22true\x22"_ "
if /i "%cIOS250[57]-v20%" EQU "*" set "replacements=%replacements%-rep _"\x22c250\x5f57\x5fv20\x22"_"\x22c250\x5f57\x5fv20\x22 checked=\x22true\x22"_ "
if /i "%cIOS249[38]-v20%" EQU "*" set "replacements=%replacements%-rep _"\x22c249\x5f38\x5fv20\x22"_"\x22c249\x5f38\x5fv20\x22 checked=\x22true\x22"_ "
if /i "%cIOS250[38]-v20%" EQU "*" set "replacements=%replacements%-rep _"\x22c250\x5f38\x5fv20\x22"_"\x22c250\x5f38\x5fv20\x22 checked=\x22true\x22"_ "
if /i "%cIOS250[56]-v20%" EQU "*" set "replacements=%replacements%-rep _"\x22c250\x5f56\x5fv20\x22"_"\x22c250\x5f56\x5fv20\x22 checked=\x22true\x22"_ "
if /i "%cIOS249[57]-v20%" EQU "*" set "replacements=%replacements%-rep _"\x22c249\x5f57\x5fv20\x22"_"\x22c249\x5f57\x5fv20\x22 checked=\x22true\x22"_ "
if /i "%cIOS249[37]-v21%" EQU "*" set "replacements=%replacements%-rep _"\x22c249\x5f37\x5fv21\x22"_"\x22c249\x5f37\x5fv21\x22 checked=\x22true\x22"_ "
if /i "%cIOS250[37]-v21%" EQU "*" set "replacements=%replacements%-rep _"\x22c250\x5f37\x5fv21\x22"_"\x22c250\x5f37\x5fv21\x22 checked=\x22true\x22"_ "
if /i "%cIOS249[38]-v21%" EQU "*" set "replacements=%replacements%-rep _"\x22c249\x5f38\x5fv21\x22"_"\x22c249\x5f38\x5fv21\x22 checked=\x22true\x22"_ "
if /i "%cIOS250[38]-v21%" EQU "*" set "replacements=%replacements%-rep _"\x22c250\x5f38\x5fv21\x22"_"\x22c250\x5f38\x5fv21\x22 checked=\x22true\x22"_ "
if /i "%cIOS249[53]-v21%" EQU "*" set "replacements=%replacements%-rep _"\x22c249\x5f53\x5fv21\x22"_"\x22c249\x5f53\x5fv21\x22 checked=\x22true\x22"_ "
if /i "%cIOS250[53]-v21%" EQU "*" set "replacements=%replacements%-rep _"\x22c250\x5f53\x5fv21\x22"_"\x22c250\x5f53\x5fv21\x22 checked=\x22true\x22"_ "
if /i "%cIOS249[55]-v21%" EQU "*" set "replacements=%replacements%-rep _"\x22c249\x5f55\x5fv21\x22"_"\x22c249\x5f55\x5fv21\x22 checked=\x22true\x22"_ "
if /i "%cIOS250[55]-v21%" EQU "*" set "replacements=%replacements%-rep _"\x22c250\x5f55\x5fv21\x22"_"\x22c250\x5f55\x5fv21\x22 checked=\x22true\x22"_ "
if /i "%cIOS249[56]-v21%" EQU "*" set "replacements=%replacements%-rep _"\x22c249\x5f56\x5fv21\x22"_"\x22c249\x5f56\x5fv21\x22 checked=\x22true\x22"_ "
if /i "%cIOS250[56]-v21%" EQU "*" set "replacements=%replacements%-rep _"\x22c250\x5f56\x5fv21\x22"_"\x22c250\x5f56\x5fv21\x22 checked=\x22true\x22"_ "
if /i "%cIOS249[57]-v21%" EQU "*" set "replacements=%replacements%-rep _"\x22c249\x5f57\x5fv21\x22"_"\x22c249\x5f57\x5fv21\x22 checked=\x22true\x22"_ "
if /i "%cIOS250[57]-v21%" EQU "*" set "replacements=%replacements%-rep _"\x22c250\x5f57\x5fv21\x22"_"\x22c250\x5f57\x5fv21\x22 checked=\x22true\x22"_ "
if /i "%cIOS249[58]-v21%" EQU "*" set "replacements=%replacements%-rep _"\x22c249\x5f58\x5fv21\x22"_"\x22c249\x5f58\x5fv21\x22 checked=\x22true\x22"_ "
if /i "%cIOS250[58]-v21%" EQU "*" set "replacements=%replacements%-rep _"\x22c250\x5f58\x5fv21\x22"_"\x22c250\x5f58\x5fv21\x22 checked=\x22true\x22"_ "
if /i "%cIOS248[38]-d2x-v10-beta52%" EQU "*" set "replacements=%replacements%-rep _"\x22c248\x5f38\x5fd2x\x22"_"\x22c248\x5f38\x5fd2x\x22 checked=\x22true\x22"_ "
if /i "%cIOS251[58]-d2x-v10-beta52%" EQU "*" set "replacements=%replacements%-rep _"\x22c251\x5f58\x5fd2x\x22"_"\x22c251\x5f58\x5fd2x\x22 checked=\x22true\x22"_ "
if /i "%cIOS249[37]-d2x-v10-beta52%" EQU "*" set "replacements=%replacements%-rep _"\x22c249\x5f37\x5fd2x\x22"_"\x22c249\x5f37\x5fd2x\x22 checked=\x22true\x22"_ "
if /i "%cIOS249[38]-d2x-v10-beta52%" EQU "*" set "replacements=%replacements%-rep _"\x22c249\x5f38\x5fd2x\x22"_"\x22c249\x5f38\x5fd2x\x22 checked=\x22true\x22"_ "
if /i "%cIOS249[53]-d2x-v10-beta52%" EQU "*" set "replacements=%replacements%-rep _"\x22c249\x5f53\x5fd2x\x22"_"\x22c249\x5f53\x5fd2x\x22 checked=\x22true\x22"_ "
if /i "%cIOS249[55]-d2x-v10-beta52%" EQU "*" set "replacements=%replacements%-rep _"\x22c249\x5f55\x5fd2x\x22"_"\x22c249\x5f55\x5fd2x\x22 checked=\x22true\x22"_ "
if /i "%cIOS249[56]-d2x-v10-beta52%" EQU "*" set "replacements=%replacements%-rep _"\x22c249\x5f56\x5fd2x\x22"_"\x22c249\x5f56\x5fd2x\x22 checked=\x22true\x22"_ "
if /i "%cIOS249[57]-d2x-v10-beta52%" EQU "*" set "replacements=%replacements%-rep _"\x22c249\x5f57\x5fd2x\x22"_"\x22c249\x5f57\x5fd2x\x22 checked=\x22true\x22"_ "
if /i "%cIOS249[58]-d2x-v10-beta52%" EQU "*" set "replacements=%replacements%-rep _"\x22c249\x5f58\x5fd2x\x22"_"\x22c249\x5f58\x5fd2x\x22 checked=\x22true\x22"_ "
if /i "%cIOS249[60]-d2x-v10-beta52%" EQU "*" set "replacements=%replacements%-rep _"\x22c249\x5f60\x5fd2x\x22"_"\x22c249\x5f60\x5fd2x\x22 checked=\x22true\x22"_ "
if /i "%cIOS249[70]-d2x-v10-beta52%" EQU "*" set "replacements=%replacements%-rep _"\x22c249\x5f70\x5fd2x\x22"_"\x22c249\x5f70\x5fd2x\x22 checked=\x22true\x22"_ "
if /i "%cIOS249[80]-d2x-v10-beta52%" EQU "*" set "replacements=%replacements%-rep _"\x22c249\x5f80\x5fd2x\x22"_"\x22c249\x5f80\x5fd2x\x22 checked=\x22true\x22"_ "
if /i "%cIOS250[37]-d2x-v10-beta52%" EQU "*" set "replacements=%replacements%-rep _"\x22c250\x5f37\x5fd2x\x22"_"\x22c250\x5f37\x5fd2x\x22 checked=\x22true\x22"_ "
if /i "%cIOS250[38]-d2x-v10-beta52%" EQU "*" set "replacements=%replacements%-rep _"\x22c250\x5f38\x5fd2x\x22"_"\x22c250\x5f38\x5fd2x\x22 checked=\x22true\x22"_ "
if /i "%cIOS250[53]-d2x-v10-beta52%" EQU "*" set "replacements=%replacements%-rep _"\x22c250\x5f53\x5fd2x\x22"_"\x22c250\x5f53\x5fd2x\x22 checked=\x22true\x22"_ "
if /i "%cIOS250[55]-d2x-v10-beta52%" EQU "*" set "replacements=%replacements%-rep _"\x22c250\x5f55\x5fd2x\x22"_"\x22c250\x5f55\x5fd2x\x22 checked=\x22true\x22"_ "
if /i "%cIOS250[56]-d2x-v10-beta52%" EQU "*" set "replacements=%replacements%-rep _"\x22c250\x5f56\x5fd2x\x22"_"\x22c250\x5f56\x5fd2x\x22 checked=\x22true\x22"_ "
if /i "%cIOS250[57]-d2x-v10-beta52%" EQU "*" set "replacements=%replacements%-rep _"\x22c250\x5f57\x5fd2x\x22"_"\x22c250\x5f57\x5fd2x\x22 checked=\x22true\x22"_ "
if /i "%cIOS250[58]-d2x-v10-beta52%" EQU "*" set "replacements=%replacements%-rep _"\x22c250\x5f58\x5fd2x\x22"_"\x22c250\x5f58\x5fd2x\x22 checked=\x22true\x22"_ "
if /i "%cIOS250[60]-d2x-v10-beta52%" EQU "*" set "replacements=%replacements%-rep _"\x22c250\x5f60\x5fd2x\x22"_"\x22c250\x5f60\x5fd2x\x22 checked=\x22true\x22"_ "
if /i "%cIOS250[70]-d2x-v10-beta52%" EQU "*" set "replacements=%replacements%-rep _"\x22c250\x5f70\x5fd2x\x22"_"\x22c250\x5f70\x5fd2x\x22 checked=\x22true\x22"_ "
if /i "%cIOS250[80]-d2x-v10-beta52%" EQU "*" set "replacements=%replacements%-rep _"\x22c250\x5f80\x5fd2x\x22"_"\x22c250\x5f80\x5fd2x\x22 checked=\x22true\x22"_ "
if /i "%cIOS248[38]-d2x-vWii%" EQU "*" set "replacements=%replacements%-rep _"\x22c248\x5f38\x5fd2x\x5fvWii\x22"_"\x22c248\x5f38\x5fd2x\x5fvWii\x22 checked=\x22true\x22"_ "
if /i "%cIOS249[56]-d2x-vWii%" EQU "*" set "replacements=%replacements%-rep _"\x22c249\x5f56\x5fd2x\x5fvWii\x22"_"\x22c249\x5f56\x5fd2x\x5fvWii\x22 checked=\x22true\x22"_ "
if /i "%cIOS250[57]-d2x-vWii%" EQU "*" set "replacements=%replacements%-rep _"\x22c250\x5f57\x5fd2x\x5fvWii\x22"_"\x22c250\x5f57\x5fd2x\x5fvWii\x22 checked=\x22true\x22"_ "
if /i "%cIOS251[58]-d2x-vWii%" EQU "*" set "replacements=%replacements%-rep _"\x22c251\x5f58\x5fd2x\x5fvWii\x22"_"\x22c251\x5f58\x5fd2x\x5fvWii\x22 checked=\x22true\x22"_ "
if /i "%Swiss_cMIOS%" EQU "*" set "replacements=%replacements%-rep _"\x22Swiss\x5fcMIOS\x22"_"\x22Swiss\x5fcMIOS\x22 checked=\x22true\x22"_ "
if /i "%RVL-cMIOS-v65535(v10)_WiiGator_WiiPower_v0.2%" EQU "*" set "replacements=%replacements%-rep _"\x22cMIOS\x5fWiiPower\x22"_"\x22cMIOS\x5fWiiPower\x22 checked=\x22true\x22"_ "
if /i "%RVL-cmios-v4_WiiGator_GCBL_v0.2%" EQU "*" set "replacements=%replacements%-rep _"\x22cmios\x5fWiiGator\x22"_"\x22cmios\x5fWiiGator\x22 checked=\x22true\x22"_ "
if /i "%RVL-cmios-v4_Waninkoko_rev5%" EQU "*" set "replacements=%replacements%-rep _"\x22cmios\x5fWanin\x22"_"\x22cmios\x5fWanin\x22 checked=\x22true\x22"_ "
if /i "%DML%" EQU "*" set "replacements=%replacements%-rep _"\x22DML\x22"_"\x22DML\x22 checked=\x22true\x22"_ "
if /i "%DiosMios%" EQU "*" set "replacements=%replacements%-rep _"\x22DiosMios\x22"_"\x22DiosMios\x22 checked=\x22true\x22"_ "
:notDL4
::-----------DLPAGE5 Markup------------
::modify\update HTA with marked downloads
if /i "%nextpage%" NEQ "DLPAGE5.hta" goto:notDL5
::individually takes too long
::if /i "%SM3.2U%" EQU "*" support\sfk filter -quiet -spat "temp\%nextpage%" -rep _"\x22SM32U\x22"_"\x22SM32U\x22 checked=\x22true\x22"_ -write -yes
::if /i "%DLTOTAL%" EQU "0" goto:HTAstuff
if /i "%AccountSwap%" EQU "*" set "replacements=%replacements%-rep _"\x22AccountSwap\x22"_"\x22AccountSwap\x22 checked=\x22true\x22"_ "
if /i "%UWUVCI%" EQU "*" set "replacements=%replacements%-rep _"\x22UWUVCI\x22"_"\x22UWUVCI\x22 checked=\x22true\x22"_ "
if /i "%UStealth%" EQU "*" set "replacements=%replacements%-rep _"\x22UStealth\x22"_"\x22UStealth\x22 checked=\x22true\x22"_ "
if /i "%WiiLink%" EQU "*" set "replacements=%replacements%-rep _"\x22WiiLink\x22"_"\x22WiiLink\x22 checked=\x22true\x22"_ "
if /i "%NUSGet%" EQU "*" set "replacements=%replacements%-rep _"\x22NUSGet\x22"_"\x22NUSGet\x22 checked=\x22true\x22"_ "
if /i "%Cemu%" EQU "*" set "replacements=%replacements%-rep _"\x22Cemu\x22"_"\x22Cemu\x22 checked=\x22true\x22"_ "
if /i "%wbm%" EQU "*" set "replacements=%replacements%-rep _"\x22wbm\x22"_"\x22wbm\x22 checked=\x22true\x22"_ "
if /i "%f32%" EQU "*" set "replacements=%replacements%-rep _"\x22f32\x22"_"\x22f32\x22 checked=\x22true\x22"_ "
if /i "%SMW%" EQU "*" set "replacements=%replacements%-rep _"\x22SMW\x22"_"\x22SMW\x22 checked=\x22true\x22"_ "
if /i "%CM%" EQU "*" set "replacements=%replacements%-rep _"\x22CM\x22"_"\x22CM\x22 checked=\x22true\x22"_ "
if /i "%WiiGSC%" EQU "*" set "replacements=%replacements%-rep _"\x22WiiGSC\x22"_"\x22WiiGSC\x22 checked=\x22true\x22"_ "
if /i "%ohnes%" EQU "*" set "replacements=%replacements%-rep _"\x22ohnes\x22"_"\x22ohnes\x22 checked=\x22true\x22"_ "
if /i "%Dolphin%" EQU "*" set "replacements=%replacements%-rep _"\x22Dolphin\x22"_"\x22Dolphin\x22 checked=\x22true\x22"_ "
if /i "%OSC%" EQU "*" set "replacements=%replacements%-rep _"\x22OSC\x22"_"\x22OSC\x22 checked=\x22true\x22"_ "
if /i "%FILEZILLA%" EQU "*" set "replacements=%replacements%-rep _"\x22FILEZILLA\x22"_"\x22FILEZILLA\x22 checked=\x22true\x22"_ "
if /i "%hxd%" EQU "*" set "replacements=%replacements%-rep _"\x22hxd\x22"_"\x22hxd\x22 checked=\x22true\x22"_ "
if /i "%Diskitude%" EQU "*" set "replacements=%replacements%-rep _"\x22Diskitude\x22"_"\x22Diskitude\x22 checked=\x22true\x22"_ "
if /i "%Nkit%" EQU "*" set "replacements=%replacements%-rep _"\x22Nkit\x22"_"\x22Nkit\x22 checked=\x22true\x22"_ "
if /i "%SDTEST%" EQU "*" set "replacements=%replacements%-rep _"\x22SDTEST\x22"_"\x22SDTEST\x22 checked=\x22true\x22"_ "
if /i "%HashMF%" EQU "*" set "replacements=%replacements%-rep _"\x22HashMF\x22"_"\x22HashMF\x22 checked=\x22true\x22"_ "
if /i "%ThemeMiiMod%" EQU "*" set "replacements=%replacements%-rep _"\x22ThemeMiiMod\x22"_"\x22ThemeMiiMod\x22 checked=\x22true\x22"_ "
if /i "%GCBM%" EQU "*" set "replacements=%replacements%-rep _"\x22GCBM\x22"_"\x22GCBM\x22 checked=\x22true\x22"_ "
if /i "%HBASlib%" EQU "*" set "replacements=%replacements%-rep _"\x22HBASlib\x22"_"\x22HBASlib\x22 checked=\x22true\x22"_ "
if /i "%Bloopair%" EQU "*" set "replacements=%replacements%-rep _"\x22Bloopair\x22"_"\x22Bloopair\x22 checked=\x22true\x22"_ "
if /i "%Inkay%" EQU "*" set "replacements=%replacements%-rep _"\x22Inkay\x22"_"\x22Inkay\x22 checked=\x22true\x22"_ "
if /i "%EnvironmentLoader%" EQU "*" set "replacements=%replacements%-rep _"\x22EnvLoad\x22"_"\x22EnvLoad\x22 checked=\x22true\x22"_ "
if /i "%Nanddumper%" EQU "*" set "replacements=%replacements%-rep _"\x22Nanddumper\x22"_"\x22Nanddumper\x22 checked=\x22true\x22"_ "
if /i "%Wiiload Plugin%" EQU "*" set "replacements=%replacements%-rep _"\x22WiiloadPlugin\x22"_"\x22WiiloadPlugin\x22 checked=\x22true\x22"_ "
if /i "%FTPiiU Plugin%" EQU "*" set "replacements=%replacements%-rep _"\x22FTPiiUPlugin\x22"_"\x22FTPiiUPlugin\x22 checked=\x22true\x22"_ "
if /i "%Aroma%" EQU "*" set "replacements=%replacements%-rep _"\x22Aroma\x22"_"\x22Aroma\x22 checked=\x22true\x22"_ "
if /i "%wudd%" EQU "*" set "replacements=%replacements%-rep _"\x22wudd\x22"_"\x22wudd\x22 checked=\x22true\x22"_ "
if /i "%GiveMiiYouTube%" EQU "*" set "replacements=%replacements%-rep _"\x22GMYT\x22"_"\x22GMYT\x22 checked=\x22true\x22"_ "
if /i "%wup_installer_gx2_wuhb%" EQU "*" set "replacements=%replacements%-rep _"\x22wupgx2\x22"_"\x22wupgx2\x22 checked=\x22true\x22"_ "
if /i "%evWii%" EQU "*" set "replacements=%replacements%-rep _"\x22evWii\x22"_"\x22evWii\x22 checked=\x22true\x22"_ "
if /i "%WiiUIdent%" EQU "*" set "replacements=%replacements%-rep _"\x22WiiUIdent\x22"_"\x22WiiUIdent\x22 checked=\x22true\x22"_ "
if /i "%WiiVCLaunch%" EQU "*" set "replacements=%replacements%-rep _"\x22WiiVCLaunch\x22"_"\x22WiiVCLaunch\x22 checked=\x22true\x22"_ "
if /i "%Tiramisu%" EQU "*" set "replacements=%replacements%-rep _"\x22Tiramisu\x22"_"\x22Tiramisu\x22 checked=\x22true\x22"_ "
if /i "%Screenshot_WUPS%" EQU "*" set "replacements=%replacements%-rep _"\x22ScrWUPS\x22"_"\x22ScrWUPS\x22 checked=\x22true\x22"_ "
if /i "%appstore%" EQU "*" set "replacements=%replacements%-rep _"\x22appstore\x22"_"\x22appstore\x22 checked=\x22true\x22"_ "
if /i "%SaveMiiModWUTPort%" EQU "*" set "replacements=%replacements%-rep _"\x22SaveMii\x22"_"\x22SaveMii\x22 checked=\x22true\x22"_ "
if /i "%CompatTitleInstaller%" EQU "*" set "replacements=%replacements%-rep _"\x22CompatIns\x22"_"\x22CompatIns\x22 checked=\x22true\x22"_ "
:notDL5
:HTAstuff
::edit DLPAGE with saved checkmarks
support\sfk filter -quiet -spat "temp\%nextpage%" %replacements%-write -yes
::make window transparent and hidden
title ModMiiDownloadMode
support\nircmd.exe win trans ititle "ModMiiDownloadMode" 0
support\nircmd.exe win hide ititle "ModMiiDownloadMode"
support\nircmd.exe win trans ititle "Administrator: ModMiiDownloadMode" 0
support\nircmd.exe win hide ititle "Administrator: ModMiiDownloadMode"
::-----------This is where the magic happens------------------
if exist "temp\tempcheck.bat" del /f /q "temp\tempcheck.bat"
::mshta.exe saved to C:\Windows\System32 and\or C:\Windows\SysWOW64; specifying it be used to open hta files in case users don't have proper file associations set up
start /wait mshta "%cd%\temp\%nextpage%"
if not exist "temp\tempcheck.bat" goto:err
set nextgoto=
::set nextpage=
call temp\tempcheck.bat
::if exist "temp\tempcheck.bat" del /f /q "temp\tempcheck.bat"
if /i "%effect%" EQU "%effectbak%" goto:noCEchange
if exist Support\settings.bat support\sfk filter Support\settings.bat -ls!"Set effect=" -write -yes>nul
echo Set effect=%effect%>>Support\settings.bat
:noCEchange
::make window visible, focused and activated
if /i "%nextgoto%" EQU "DLPAGES" goto:stayhidden
start /wait support\nircmd.exe win trans ititle "ModMiiDownloadMode" 255
start /wait support\nircmd.exe win focus ititle "ModMiiDownloadMode"
start /wait support\nircmd.exe win activate ititle "ModMiiDownloadMode"
start /wait support\nircmd.exe win trans ititle "Administrator: ModMiiDownloadMode" 255
start /wait support\nircmd.exe win focus ititle "Administrator: ModMiiDownloadMode"
start /wait support\nircmd.exe win activate ititle "Administrator: ModMiiDownloadMode"
title ModMii
:stayhidden
::if not "%nextpage%"=="" goto:HTAstuff
set BACKB4DRIVE=DLPAGES
set backbeforebetaswitch=DLPAGES
if not "%nextgoto%"=="" goto:%nextgoto%
set BACKB4QUEUE=DLPAGES
set loadorgo=go
if /i "%Wilbrand%" NEQ "*" goto:nowilbrand
if "%macaddress%"=="" goto:macaddress
:nowilbrand
goto:DOWNLOADQUEUE
:err
start /wait support\nircmd.exe win trans ititle "ModMiiDownloadMode" 255
start /wait support\nircmd.exe win focus ititle "ModMiiDownloadMode"
start /wait support\nircmd.exe win activate ititle "ModMiiDownloadMode"
start /wait support\nircmd.exe win trans ititle "Administrator: ModMiiDownloadMode" 255
start /wait support\nircmd.exe win focus ititle "Administrator: ModMiiDownloadMode"
start /wait support\nircmd.exe win activate ititle "Administrator: ModMiiDownloadMode"
title ModMii
echo.
echo ERROR: temp\tempcheck.txt not found!
echo.
echo Potential solution can be found here:
echo https://www.partitionwizard.com/clone-disk/this-operation-has-been-cancelled-due-to-restrictions.html
echo.
pause
cls
goto:MENU
::--------------------------------------------------------------------
::------------------------------Not So Hidden----------------------
:NotSoHidden
cls
set cmdlinemodeswitchoff=
echo ModMii v%currentversion%
echo by XFlak
echo.
echo.
echo.
if /i "%adminmode%" EQU "N" echo Drag and drop a file or folder here and press Enter to open it with ModMii!
if /i "%adminmode%" EQU "Y" echo Enter the path to a file or folder and press Enter to open it with ModMii!
echo.
echo.
echo Multi-item drag and drop is only supported when items are dropped onto ModMii or
echo a ModMii shortcut; check out the ModMii Launchpad Toolbar for quicklaunch access!
echo.
echo You can also right-click an item ^& choose "Open with" and browse for ModMii.exe.
echo Or use the Context Menu Installer to add "Open with ModMii" to your right-click.
echo.
echo If dragging a folder launches into a "wrong" activity, check that there aren't
echo other file types saved in the same folder; e.g. if trying to load a folder of
echo myms, make sure there aren't any WADs saved to the same folder or subfolders.
echo.
echo.
echo.
echo H = Help and Info on supported file\folder types
echo.
echo L = Launchpad Toolbar info and Installer\Uninstaller
echo.
echo C = Context Menu info and Installer\Uninstaller
echo.
echo B = Back
echo M = Main Menu
echo.
set NotSoHidden="
set /p NotSoHidden=Enter Selection Here:
set "NotSoHidden=%NotSoHidden:"=%"
if "%NotSoHidden%"=="" goto:badkey
::echo "%NotSoHidden%"
if /i "%NotSoHidden%" EQU "M" goto:noextravars
if /i "%NotSoHidden%" EQU "B" goto:noextravars
if /i "%NotSoHidden%" EQU "H" (start Support\ModMii.bat D) & (goto:NotSoHidden)
if /i "%NotSoHidden%" EQU "L" (set B4Context=NotSoHidden) & (goto:LaunchpadCheck)
if /i "%NotSoHidden%" EQU "C" (set B4Context=NotSoHidden) & (goto:ContextCheck)
if exist "%NotSoHidden%" start ModMii.exe "%NotSoHidden%"
if exist "%NotSoHidden%" exit
:badkey
echo You Have Entered an Incorrect Key
@ping 127.0.0.1 -n 2 -w 1000> nul
goto:NotSoHidden
:LaunchpadCheck
set one=
set two=
::echo Checking if the ModMii Launchpad Toolbar is already installed...
::make a backup of original toolbar, and hexsearch it for ModMii Launcher
set "cleandate=%date:\=-%"
set "cleandate=%cleandate:/=-%"
set "ToolbarNewBackup=%temp%\Toolbar_backup_%computername%_%cleandate: =-%.reg"
::echo %ToolbarNewBackup%
START /MIN /WAIT REG EXPORT HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Streams\Desktop "%ToolbarNewBackup%" /Y
cmd /a /c type "%ToolbarNewBackup%">"temp\Toolbars_Check2.txt"
support\sfk filter "temp\Toolbars_Check2.txt" -rep _"*]"__ -rep _,__ -rep _\__ -rep _" "__ -join>"temp\Toolbars_Check.txt"
DEL "temp\Toolbars_Check2.txt">nul
::@ping 127.0.0.1 -n 2 -w 1000> nul
::M o d M i i L a u n c h p a d
::4D006F0064004D006900690020004C00610075006E00630068007000610064
if not exist "%cd%\temp\Toolbar_backup" mkdir "%cd%\temp\Toolbar_backup"
findStr /I "4D006F0064004D006900690020004C00610075006E00630068007000610064" temp\Toolbars_Check.txt >nul
IF ERRORLEVEL 1 (move /y "%ToolbarNewBackup%" "%cd%\temp\Toolbar_backup">nul) & (DEL "temp\Toolbars_Check.txt">nul) & (goto:LaunchpadConfirm)
DEL "temp\Toolbars_Check.txt">nul
DEL "%ToolbarNewBackup%">nul
goto:LaunchpadUninstaller
:LaunchpadConfirm
Set LaunchpadConfirm="
cls
echo ModMii v%currentversion%
echo by XFlak
echo.
echo.
echo Would you like to install the ModMii Launchpad to your Toolbar?
echo.
echo The ModMii Launchpad adds a quicklaunch-like toolbar to your taskbar.
echo This will give you easy access to ModMii's many drag and drop functions.
echo.
echo Warning: This will replace existing toolbars you might have installed,
echo but ModMii will allow you to restore your old settings at any time.
echo.
echo This will also close any folders you might currently have open
echo in order to refresh and restart your taskbar.
echo.
echo Note: Having ModMii 'pinned' to the taskbar does not permit drag and drop.
echo.
echo Launchpad shortcuts go here: C:\ModMii\temp\ModMii Launchpad
echo.
echo.
echo Y = Yes, Install the ModMii Launchpad (Reversible)
echo.
echo N = No, take me (B)ack!
echo.
echo M = Main Menu
echo.
echo.
set /p LaunchpadConfirm=Enter Selection Here:
set "LaunchpadConfirm=%LaunchpadConfirm:"=%"
if /i "%LaunchpadConfirm%" EQU "Y" goto:skipprompt
if /i "%LaunchpadConfirm%" EQU "M" goto:noextravars
if /i "%LaunchpadConfirm%" EQU "N" goto:%B4Context%
if /i "%LaunchpadConfirm%" EQU "B" goto:%B4Context%
echo You Have Entered an Incorrect Key
@ping 127.0.0.1 -n 2 -w 1000> nul
goto:LaunchpadConfirm
:skipprompt
::install launchpad now
::creating Toolbar C:\ModMii\temp\ModMii Launchpad
if not exist "C:\ModMii\temp\ModMii Launchpad" mkdir "C:\ModMii\temp\ModMii Launchpad"
::Shortcuts will appear in alphabetical order
support\nircmd.exe shortcut "%cd%\ModMii.exe" "C:\ModMii\temp\ModMii Launchpad" "ModMii"
support\nircmd.exe shortcut "%cd%\ModMiiSkin.exe" "C:\ModMii\temp\ModMii Launchpad" "ModMiiSkin"
> "%TEMP%.\TEMP.REG" ECHO Windows Registry Editor Version 5.00
>>"%TEMP%.\TEMP.REG" ECHO.
>>"%TEMP%.\TEMP.REG" ECHO [HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Streams\Desktop]
>>"%TEMP%.\TEMP.REG" ECHO "TaskbarWinXP"=hex:0c,00,00,00,08,00,00,00,02,00,00,00,00,00,00,00,aa,4f,28,68,\
>>"%TEMP%.\TEMP.REG" ECHO 48,6a,d0,11,8c,78,00,c0,4f,d9,18,b4,a2,05,00,00,c0,0c,00,00,00,00,00,00,32,\
>>"%TEMP%.\TEMP.REG" ECHO 00,00,00,00,00,00,00,00,00,00,00,32,00,00,00,00,00,00,00,01,00,00,00,01,00,\
>>"%TEMP%.\TEMP.REG" ECHO 00,00,b0,e2,2b,d8,64,57,d0,11,a9,6e,00,c0,4f,d7,05,a2,22,00,1c,00,0a,10,00,\
>>"%TEMP%.\TEMP.REG" ECHO 00,01,00,00,00,02,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,4c,00,00,00,\
>>"%TEMP%.\TEMP.REG" ECHO 01,14,02,00,00,00,00,00,c0,00,00,00,00,00,00,46,81,01,00,00,10,00,00,00,c3,\
>>"%TEMP%.\TEMP.REG" ECHO 59,6d,b9,ba,47,d8,01,78,a9,d0,48,7a,48,d8,01,2e,0c,da,76,bb,47,d8,01,00,00,\
>>"%TEMP%.\TEMP.REG" ECHO 00,00,00,00,00,00,01,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,3b,01,14,\
>>"%TEMP%.\TEMP.REG" ECHO 00,1f,50,e0,4f,d0,20,ea,3a,69,10,a2,d8,08,00,2b,30,30,9d,19,00,2f,43,3a,5c,\
>>"%TEMP%.\TEMP.REG" ECHO 00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,54,00,31,00,00,00,\
>>"%TEMP%.\TEMP.REG" ECHO 00,00,84,54,22,ba,10,00,4d,6f,64,4d,69,69,00,00,3e,00,09,00,04,00,ef,be,84,\
>>"%TEMP%.\TEMP.REG" ECHO 54,64,03,84,54,22,ba,2e,00,00,00,49,21,02,00,00,00,17,00,00,00,00,00,00,00,\
>>"%TEMP%.\TEMP.REG" ECHO 00,00,00,00,00,00,00,00,1e,52,44,00,4d,00,6f,00,64,00,4d,00,69,00,69,00,00,\
>>"%TEMP%.\TEMP.REG" ECHO 00,16,00,4e,00,31,00,00,00,00,00,84,54,22,ba,10,00,74,65,6d,70,00,00,3a,00,\
>>"%TEMP%.\TEMP.REG" ECHO 09,00,04,00,ef,be,84,54,20,ba,84,54,22,ba,2e,00,00,00,32,8b,01,00,00,00,0d,\
>>"%TEMP%.\TEMP.REG" ECHO 00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,1e,52,44,00,74,00,65,00,6d,00,\
>>"%TEMP%.\TEMP.REG" ECHO 70,00,00,00,14,00,6a,00,31,00,00,00,00,00,84,54,0f,04,10,00,4d,4f,44,4d,49,\
>>"%TEMP%.\TEMP.REG" ECHO 49,7e,31,00,00,52,00,09,00,04,00,ef,be,84,54,66,03,84,54,19,ba,2e,00,00,00,\
>>"%TEMP%.\TEMP.REG" ECHO 57,21,02,00,00,00,2e,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,d2,56,d7,\
>>"%TEMP%.\TEMP.REG" ECHO 00,4d,00,6f,00,64,00,4d,00,69,00,69,00,20,00,4c,00,61,00,75,00,6e,00,63,00,\
>>"%TEMP%.\TEMP.REG" ECHO 68,00,70,00,61,00,64,00,00,00,18,00,00,00,60,00,00,00,03,00,00,a0,58,00,00,\
>>"%TEMP%.\TEMP.REG" ECHO 00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,b8,8f,8a,53,\
>>"%TEMP%.\TEMP.REG" ECHO 1e,dd,fe,4d,b7,4e,ac,2a,b4,50,fa,18,28,9e,12,f0,4e,b3,ec,11,b0,c6,00,68,eb,\
>>"%TEMP%.\TEMP.REG" ECHO 3e,52,07,b8,8f,8a,53,1e,dd,fe,4d,b7,4e,ac,2a,b4,50,fa,18,28,9e,12,f0,4e,b3,\
>>"%TEMP%.\TEMP.REG" ECHO ec,11,b0,c6,00,68,eb,3e,52,07,45,00,00,00,09,00,00,a0,39,00,00,00,31,53,50,\
>>"%TEMP%.\TEMP.REG" ECHO 53,b1,16,6d,44,ad,8d,70,48,a7,48,40,2e,a4,3d,78,8c,1d,00,00,00,68,00,00,00,\
>>"%TEMP%.\TEMP.REG" ECHO 00,48,00,00,00,d7,be,ba,d3,5e,11,ea,11,ad,c2,04,ed,33,c4,ae,a4,00,00,00,00,\
>>"%TEMP%.\TEMP.REG" ECHO 00,00,00,00,00,00,00,00,00,00,00,00,c0,06,00,00,00,00,00,00,36,00,00,00,00,\
>>"%TEMP%.\TEMP.REG" ECHO 00,00,00,00,00,00,00,36,00,00,00,00,00,00,00,01,00,00,00
>>"%TEMP%.\TEMP.REG" ECHO.
::for some reason [START /WAIT REGEDIT /S "%TEMP%\TEMP.REG] isn't working when launched via modmii.exe, powershell is a workaround https://stackoverflow.com/a/52226150
::to make verbose, remove this part: *>&1 | Out-Null
::"Invoke-Command {reg import \\server\share\test.reg *>&1 | Out-Null}"
powershell "Invoke-Command {reg import '"%TEMP%.\TEMP.REG"' *>&1 | Out-Null}"
DEL "%TEMP%\TEMP.REG">nul
goto:restartexplorer
:LaunchpadUninstaller
::check for backups matching computer name
dir /T:C /O-d "%cd%\temp\Toolbar_backup\Toolbar_backup_%computername%_*.reg">temp\temp.txt
support\sfk filter -quiet temp\temp.txt -and+".reg" -rep _"* "__ -write -yes
set /p ToolbarOldBackup= <temp\temp.txt
:LaunchpadUninstaller2
cls
Set LaunchpadUn="
cls
echo ModMii v%currentversion%
echo by XFlak
echo.
echo.
echo This action will remove the ModMii Launchpad from your taskbar.
echo.
echo.
if "%ToolbarOldBackup%"=="" echo No toolbar backups were found for this PC "%ToolbarOldBackup%"
if not "%ToolbarOldBackup%"=="" echo R = Restore "%ToolbarOldBackup%"
echo.
echo C = Clear toolbar settings entirely and start fresh
echo.
echo.
echo B = Back
echo M = Main Menu
echo.
set /p LaunchpadUn=Enter Selection Here:
set "LaunchpadUn=%LaunchpadUn:"=%"
if /i "%LaunchpadUn%" EQU "C" goto:ClearToolbar
if "%ToolbarOldBackup%"=="" goto:skip
if /i "%LaunchpadUn%" EQU "R" goto:RestoreToolbar
:skip
if /i "%LaunchpadUn%" EQU "M" goto:noextravars
if /i "%LaunchpadUn%" EQU "B" goto:%B4Context%
echo You Have Entered an Incorrect Key
@ping 127.0.0.1 -n 2 -w 1000> nul
goto:LaunchpadUninstaller2
:RestoreToolbar
::echo Restoring "%ToolbarOldBackup%"
::must use full path to reg files
::START /WAIT REGEDIT /S "%ToolbarOldBackup%"
powershell "Invoke-Command {reg import '"%cd%\temp\Toolbar_backup\%ToolbarOldBackup%"' *>&1 | Out-Null}"
DEL "%cd%\temp\Toolbar_backup\%ToolbarOldBackup%">nul
goto:clearlaunchpad
:ClearToolbar
> "%TEMP%.\TEMP.REG" ECHO Windows Registry Editor Version 5.00
>>"%TEMP%.\TEMP.REG" ECHO.
>>"%TEMP%.\TEMP.REG" ECHO [-HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Streams\Desktop]
>>"%TEMP%.\TEMP.REG" ECHO.
::START /WAIT REGEDIT /S "%TEMP%\TEMP.REG"
powershell "Invoke-Command {reg import '"%TEMP%.\TEMP.REG"' *>&1 | Out-Null}"
DEL "%TEMP%\TEMP.REG">nul
goto:clearlaunchpad
:clearlaunchpad
if exist "C:\ModMii\temp\ModMii Launchpad" rd /s /q "C:\ModMii\temp\ModMii Launchpad"> nul
if not exist "C:\ModMii\temp" goto:restartexplorer
dir /A /B "C:\ModMii\temp" | findstr /R ".">NUL && goto:restartexplorer
rd /s /q "C:\ModMii\temp"> nul
if not exist "C:\ModMii" goto:restartexplorer
dir /A /B "C:\ModMii" | findstr /R ".">NUL && goto:restartexplorer
rd /s /q "C:\ModMii"> nul
:restartexplorer
echo.
echo Your folders are about to close, don't worry that's normal.
echo.
@ping 127.0.0.1 -n 2 -w 1000> nul
taskkill /f /im explorer.exe >nul
set "ModMiiDir=%cd%"
cd /d %WINDIR%\system32
start %WINDIR%\explorer.exe
cd /d "%ModMiiDir%"
goto:%B4Context%
:ContextCheck
::echo Checking if the ModMii Context Menu is already installed...
if exist "temp\shellcheck.txt" del "temp\shellcheck.txt">nul
START /MIN /WAIT REG EXPORT "HKCU\SOFTWARE\Classes\*\shell\Open with ModMii" "temp\shellcheck.txt" /Y
if exist "temp\shellcheck.txt" goto:ContextUninstall
Set ContextConfirm="
cls
echo ModMii v%currentversion%
echo by XFlak
echo.
echo.
echo Would you like to add "Open with ModMii" to your right-click context menu?
echo.
echo This can be removed later if you change your mind.
echo.
echo.
echo Warning: Opening multiple files simultaneously from the right-click context
echo menu may lead to conficting instances of ModMii and unexpected results.
echo.
echo Multi-item drag and drop is only supported when items are dropped onto ModMii or
echo a ModMii shortcut; check out the ModMii Launchpad Toolbar for quicklaunch access!
echo.
echo.
echo.
echo Y = Yes, Install the ModMii Context Menu (Reversible)
echo.
echo S = Shift-click install only (Reversible)
echo.
echo.
echo N = No, take me (B)ack!
echo M = Main Menu
echo.
echo.
set /p ContextConfirm=Enter Selection Here:
set "ContextConfirm=%ContextConfirm:"=%"
if /i "%ContextConfirm%" EQU "Y" goto:installcontext
if /i "%ContextConfirm%" EQU "S" goto:installcontext
if /i "%ContextConfirm%" EQU "M" goto:noextravars
if /i "%ContextConfirm%" EQU "N" goto:%B4Context%
if /i "%ContextConfirm%" EQU "B" goto:%B4Context%
echo You Have Entered an Incorrect Key
@ping 127.0.0.1 -n 2 -w 1000> nul
goto:ContextConfirm
:installcontext
> "%TEMP%.\TEMP.REG" ECHO Windows Registry Editor Version 5.00
>>"%TEMP%.\TEMP.REG" ECHO.
::Context menu for any file:
>>"%TEMP%.\TEMP.REG" ECHO [HKEY_CURRENT_USER\SOFTWARE\Classes\*\shell\Open with ModMii]
>>"%TEMP%.\TEMP.REG" ECHO "Icon"="%cd:\=\\%\\ModMii.exe"
if /i "%ContextConfirm%" EQU "S" >>"%TEMP%.\TEMP.REG" ECHO "Extended"=""
>>"%TEMP%.\TEMP.REG" ECHO.
>>"%TEMP%.\TEMP.REG" ECHO [HKEY_CURRENT_USER\SOFTWARE\Classes\*\shell\Open with ModMii\command]
>>"%TEMP%.\TEMP.REG" ECHO @="%cd:\=\\%\\ModMii.exe \"%%1\""
>>"%TEMP%.\TEMP.REG" ECHO.
::Context menu for right click on folders in left panel of Windows Explorer or on BACKGROUND of a directory in right panel (no Args):
::>>"%TEMP%.\TEMP.REG" ECHO [HKEY_CURRENT_USER\Software\Classes\directory\Background\shell\Open ModMii]
::>>"%TEMP%.\TEMP.REG" ECHO "Icon"="%cd:\=\\%\\ModMii.exe"
::if /i "%ContextConfirm%" EQU "S" >>"%TEMP%.\TEMP.REG" ECHO "Extended"=""
::>>"%TEMP%.\TEMP.REG" ECHO.
::>>"%TEMP%.\TEMP.REG" ECHO [HKEY_CURRENT_USER\Software\Classes\directory\Background\shell\Open ModMii\command]
::>>"%TEMP%.\TEMP.REG" ECHO @="%cd:\=\\%\\ModMii.exe"
::>>"%TEMP%.\TEMP.REG" ECHO.
::Context menu for right click on folders in right panel of Windows Explorer:
>>"%TEMP%.\TEMP.REG" ECHO [HKEY_CURRENT_USER\Software\Classes\directory\shell\Open with ModMii]
>>"%TEMP%.\TEMP.REG" ECHO "Icon"="%cd:\=\\%\\ModMii.exe"
if /i "%ContextConfirm%" EQU "S" >>"%TEMP%.\TEMP.REG" ECHO "Extended"=""
>>"%TEMP%.\TEMP.REG" ECHO.
>>"%TEMP%.\TEMP.REG" ECHO [HKEY_CURRENT_USER\Software\Classes\directory\shell\Open with ModMii\command]
>>"%TEMP%.\TEMP.REG" ECHO @="%cd:\=\\%\\ModMii.exe \"%%1\""
>>"%TEMP%.\TEMP.REG" ECHO.
::for some reason [START /WAIT REGEDIT /S "%TEMP%\TEMP.REG] isn't working when launched via modmii.exe, powershell is a workaround https://stackoverflow.com/a/52226150
::to make verbose, remove this part: *>&1 | Out-Null
::"Invoke-Command {reg import \\server\share\test.reg *>&1 | Out-Null}"
echo.
powershell "Invoke-Command {reg import '"%TEMP%.\TEMP.REG"'}"
::powershell "Invoke-Command {reg import '"%TEMP%.\TEMP.REG"' *>&1 | Out-Null}"
DEL "%TEMP%\TEMP.REG">nul
::if exist "temp\shellcheck.txt" del "temp\shellcheck.txt">nul
::START /MIN /WAIT REG EXPORT "HKCU\SOFTWARE\Classes\*\shell\Open with ModMii" "temp\shellcheck.txt" /Y
::echo.
::if exist "temp\shellcheck.txt" (echo Installation Successful) else (echo Installation Failed)
@ping 127.0.0.1 -n 2 -w 1000> nul
goto:%B4Context%
:ContextUninstall
Set ContextConfirm="
cls
echo ModMii v%currentversion%
echo by XFlak
echo.
echo.
echo Would you like to remove "Open with ModMii" from your right-click context menu?
echo.
echo.
echo.
echo Y = Yes, uninstall the ModMii Context Menu
echo.
echo N = No, take me (B)ack!
echo.
echo M = Main Menu
echo.
echo.
set /p ContextConfirm=Enter Selection Here:
set "ContextConfirm=%ContextConfirm:"=%"
if /i "%ContextConfirm%" EQU "Y" goto:uninstallcontext
if /i "%ContextConfirm%" EQU "M" goto:noextravars
if /i "%ContextConfirm%" EQU "N" goto:%B4Context%
if /i "%ContextConfirm%" EQU "B" goto:%B4Context%
echo You Have Entered an Incorrect Key
@ping 127.0.0.1 -n 2 -w 1000> nul
goto:ContextUninstall
:uninstallcontext
> "%TEMP%.\TEMP.REG" ECHO Windows Registry Editor Version 5.00
>>"%TEMP%.\TEMP.REG" ECHO.
::Context menu for any file:
>>"%TEMP%.\TEMP.REG" ECHO [-HKEY_CURRENT_USER\SOFTWARE\Classes\*\shell\Open with ModMii]
::>>"%TEMP%.\TEMP.REG" ECHO "Icon"="%cd:\=\\%\\ModMii.exe"
::if /i "%ContextConfirm%" EQU "S" >>"%TEMP%.\TEMP.REG" ECHO "Extended"=""
::>>"%TEMP%.\TEMP.REG" ECHO.
::>>"%TEMP%.\TEMP.REG" ECHO [HKEY_CURRENT_USER\SOFTWARE\Classes\*\shell\Open with ModMii\command]
::>>"%TEMP%.\TEMP.REG" ECHO @="%cd:\=\\%\\ModMii.exe \"%%1\""
>>"%TEMP%.\TEMP.REG" ECHO.
::Context menu for right click on folders in left panel of Windows Explorer or on BACKGROUND of a directory in right panel (no Args):
::>>"%TEMP%.\TEMP.REG" ECHO [-HKEY_CURRENT_USER\Software\Classes\directory\Background\shell\Open ModMii]
::>>"%TEMP%.\TEMP.REG" ECHO "Icon"="%cd:\=\\%\\ModMii.exe"
::if /i "%ContextConfirm%" EQU "S" >>"%TEMP%.\TEMP.REG" ECHO "Extended"=""
::>>"%TEMP%.\TEMP.REG" ECHO.
::>>"%TEMP%.\TEMP.REG" ECHO [HKEY_CURRENT_USER\Software\Classes\directory\Background\shell\Open ModMii\command]
::>>"%TEMP%.\TEMP.REG" ECHO @="%cd:\=\\%\\ModMii.exe"
::>>"%TEMP%.\TEMP.REG" ECHO.
::Context menu for right click on folders in right panel of Windows Explorer:
>>"%TEMP%.\TEMP.REG" ECHO [-HKEY_CURRENT_USER\Software\Classes\directory\shell\Open with ModMii]
::>>"%TEMP%.\TEMP.REG" ECHO "Icon"="%cd:\=\\%\\ModMii.exe"
::if /i "%ContextConfirm%" EQU "S" >>"%TEMP%.\TEMP.REG" ECHO "Extended"=""
::>>"%TEMP%.\TEMP.REG" ECHO.
::>>"%TEMP%.\TEMP.REG" ECHO [HKEY_CURRENT_USER\Software\Classes\directory\shell\Open with ModMii\command]
::>>"%TEMP%.\TEMP.REG" ECHO @="%cd:\=\\%\\ModMii.exe \"%%1\""
>>"%TEMP%.\TEMP.REG" ECHO.
::for some reason [START /WAIT REGEDIT /S "%TEMP%\TEMP.REG] isn't working when launched via modmii.exe, powershell is a workaround https://stackoverflow.com/a/52226150
::to make verbose, remove this part: *>&1 | Out-Null
::"Invoke-Command {reg import \\server\share\test.reg *>&1 | Out-Null}"
echo.
powershell "Invoke-Command {reg import '"%TEMP%.\TEMP.REG"'}"
::powershell "Invoke-Command {reg import '"%TEMP%.\TEMP.REG"' *>&1 | Out-Null}"
DEL "%TEMP%\TEMP.REG">nul
::if exist "temp\shellcheck.txt" del "temp\shellcheck.txt">nul
::START /MIN /WAIT REG EXPORT "HKCU\SOFTWARE\Classes\*\shell\Open with ModMii" "temp\shellcheck.txt" /Y
::echo.
::if not exist "temp\shellcheck.txt" (echo Uninstallation Successful) else (echo Uninstallation Failed)
@ping 127.0.0.1 -n 2 -w 1000> nul
goto:%B4Context%
::..................................................OPTIONS..................................................
.......
:OPTIONS
Set WLAST=
Set Options="
set cheatoption=
cls
echo ModMii v%currentversion%
echo by XFlak
echo.
support\sfk echo -spat \x20 \x20 \x20 \x20 \x20 \x20 \x20 \x20 \x20 \x20 \x20 \x20 \x20 \x20 \x20 \x20 [%redtext%] Choose an Option:
echo.
::replace \ with itself using "\x5c" so sfk -spat doesn't misinterprate \t or similar as commands
support\sfk echo -spat \x20 \x20 D = Change Drive letter: Current Setting: [%cyantext%]"%Drive:\=\x5c%"
echo.
support\sfk echo -spat \x20 \x20DU = Change Drive letter for USB: Current Setting: [%cyantext%]"%DriveU:\=\x5c%"
echo.
support\sfk echo -spat \x20 d2x = change d2x cIOS version built: Current Setting: [%cyantext%]v%d2x-beta-rev%
echo.
if /i "%hermesOPTION%" EQU "OFF" support\sfk echo -spat \x20 \x20 H = Hermes Wii cIOSs (202 ^& 222-224) will also be recommended [%redtext%](Disabled)
if /i "%hermesOPTION%" EQU "ON" support\sfk echo -spat \x20 \x20 H = Hermes Wii cIOSs (202 ^& 222-224) will also be recommended [%greentext%](Enabled)
::echo * Generally no longer necessary but may still be useful in some cases
echo.
if /i "%CMIOSOPTION%" EQU "OFF" support\sfk echo -spat \x20 \x20CM = cMIOS included with recommended Wii cIOSs [%redtext%](Disabled)
if /i "%CMIOSOPTION%" EQU "ON" support\sfk echo -spat \x20 \x20CM = cMIOS included with recommended Wii cIOSs [%greentext%](Enabled)
echo * A cMIOS allows older non-chipped Wii's to play GameCube backup discs
echo.
if /i "%ExtraProtectionOPTION%" EQU "OFF" support\sfk echo -spat \x20 \x20 E = Extra Brick Protection in ModMii Wizard Wii Guides [%redtext%](Disabled)
if /i "%ExtraProtectionOPTION%" EQU "ON" support\sfk echo -spat \x20 \x20 E = Extra Brick Protection in ModMii Wizard Wii Guides [%greentext%](Enabled)
echo * When enabled, a patched IOS60 will be installed to other system menu
echo IOS slots to prevent bricks from users manually up\downgrading
echo.
if /i "%ACTIVEIOS%" EQU "OFF" support\sfk echo -spat \x20 \x20 U = Update IOSs. Wizard/SysCheck-Updater to update Active IOSs [%redtext%](Disabled)
if /i "%ACTIVEIOS%" EQU "ON" support\sfk echo -spat \x20 \x20 U = Update IOSs. Wizard/SysCheck-Updater to update Active IOSs [%greentext%](Enabled)
echo.
>nul findstr "^" "Support\settings_skipped_apps.txt" || support\sfk echo -spat \x20 \x20SA = Skipped Apps for File Cleanup, App Updater ^& OSC\HBAS Downloads [%cyantext%](None)
>nul findstr "^" "Support\settings_skipped_apps.txt" && support\sfk echo -spat \x20 \x20SA = Skipped Apps for File Cleanup, App Updater, OSC\HBAS Downloads [%yellowtext%](Some)
echo.
if /i "%AUSKIP%" EQU "OFF" support\sfk echo -spat \x20 \x20AU = Auto-Updating downloads will skip update check if cached [%redtext%](Disabled)
if /i "%AUSKIP%" EQU "ON" support\sfk echo -spat \x20 \x20AU = Auto-Updating downloads will skip update check if cached [%greentext%](Enabled)
echo.
if /i "%FWDOPTION%" EQU "OFF" support\sfk echo -spat \x20 FWD = Install USB-Loader Forwarder in ModMii Wizard Guides [%redtext%](Disabled)
if /i "%FWDOPTION%" EQU "ON" support\sfk echo -spat \x20 FWD = Install USB-Loader Forwarder in ModMii Wizard Guides [%greentext%](Enabled)
echo.
support\sfk echo -spat \x20 \x20PC = PC Programs Save Location: Current Setting: [%cyantext%]%PCSAVE%
if /i "%PCSAVE%" EQU "Local" echo * PC Programs saved to %HomeDrive%
if /i "%PCSAVE%" EQU "Local" echo * Shortcuts will be installed to Start Menu and Desktop
if /i "%PCSAVE%" EQU "Portable" echo * PC programs saved portably to one of the above Drive Settings
if /i "%PCSAVE%" NEQ "Auto" goto:skip
echo * PC programs saved to %homedrive% with shortcuts if running ModMii from %homedrive%
echo * PC programs saved portably if not running ModMii from %homedrive%
:skip
echo.
if /i "%ROOTSAVE%" EQU "ON" support\sfk echo -spat \x20 \x20RS = Root Save: Save IOSs\MIOSs to Root instead of WAD Folder [%greentext%](Enabled)
if /i "%ROOTSAVE%" EQU "OFF" support\sfk echo -spat \x20 \x20RS = Root Save: Save IOSs\MIOSs to Root instead of WAD Folder [%redtext%](Disabled)
echo * Does NOT affect ModMii Wizard and only applies to IOSs\MIOSs
::echo * Useful for Wii Apps that require IOSs\MIOSs saved to Root
echo.
if /i "%neek2o%" EQU "off" support\sfk echo -spat \x20 n2o = neek2o - build mod of s\uneek instead of original [%redtext%](Disabled)
if /i "%neek2o%" EQU "on" support\sfk echo -spat \x20 n2o = neek2o - build mod of s\uneek instead of original [%greentext%](Enabled)
if /i "%SSD%" EQU "off" support\sfk echo -spat \x20 SSD = SNEEK and SNEEK+DI SD Access [%redtext%](Disabled)
if /i "%SSD%" EQU "on" support\sfk echo -spat \x20 SSD = SNEEK and SNEEK+DI SD Access [%greentext%](Enabled)
if /i "%SNKFONT%" EQU "W" support\sfk echo -spat \x20 \x20 F = Font.bin Colour for SNEEK/UNEEK [%cyantext%](Black text on White background)
if /i "%SNKFONT%" EQU "B" support\sfk echo -spat \x20 \x20 F = Font.bin Colour for SNEEK/UNEEK [%cyantext%](White text on Black background)
if /i "%SNKFONT%" EQU "R" support\sfk echo -spat \x20 \x20 F = Font.bin Colour for SNEEK/UNEEK [%cyantext%](Red text on Black background)
if /i "%sneekverbose%" EQU "off" support\sfk echo -spat \x20 \x20SV = SNEEK Verbose Output [%redtext%](Disabled)
if /i "%sneekverbose%" EQU "on" support\sfk echo -spat \x20 \x20SV = SNEEK Verbose Output [%greentext%](Enabled)
echo.
if /i "%ModMiiverbose%" EQU "off" support\sfk echo -spat \x20 \x20 V = Verbose for ModMii Skin ^& nandBinCheck [%redtext%](Disabled)
if /i "%ModMiiverbose%" EQU "on" support\sfk echo -spat \x20 \x20 V = Verbose for ModMii Skin ^& nandBinCheck [%greentext%](Enabled)
echo.
if /i "%AudioOption%" EQU "OFF" support\sfk echo -spat \x20 \x20SO = Play sound at Finish [%redtext%](Disabled)
if /i "%AudioOption%" EQU "ON" support\sfk echo -spat \x20 \x20SO = Play sound at Finish [%greentext%](Enabled)
echo.
if /i "%AUTOUPDATE%" EQU "OFF" support\sfk echo -spat \x20 \x20 A = Auto-Update ModMii at program start [%redtext%](Disabled)
if /i "%AUTOUPDATE%" EQU "ON" support\sfk echo -spat \x20 \x20 A = Auto-Update ModMii at program start [%greentext%](Enabled)
echo N = Check for New versions of ModMii right now
echo DD = Download Dependencies now instead of when needed (e.g. wiiload, etc.)
echo C = Context Menu info and Installer\Uninstaller
echo L = Launchpad Toolbar info and Installer\Uninstaller
echo.
echo R = Restore Default Settings M = Main Menu
echo.
set /p OPTIONS=Enter Selection Here:
set "OPTIONS=%OPTIONS:"=%"
::if /i "%OPTIONS%" EQU "S" goto:SaveSettings
if /i "%OPTIONS%" EQU "R" goto:RestoreSettings
if /i "%OPTIONS%" EQU "M" goto:MENU
if /i "%OPTIONS%" EQU "B" goto:MENU
if /i "%OPTIONS%" EQU "SA" goto:SkipUpdateSettings
if /i "%OPTIONS%" EQU "DD" goto:Dependencies
if /i "%OPTIONS%" EQU "N" goto:UpdateModMii
if /i "%OPTIONS%" EQU "L" (set B4Context=OPTIONS) & (goto:LaunchpadCheck)
if /i "%OPTIONS%" EQU "C" (set B4Context=OPTIONS) & (goto:ContextCheck)
if /i "%OPTIONS%" EQU "D" (set BACKB4DRIVE=OPTIONS) & (goto:DRIVECHANGE)
if /i "%OPTIONS%" EQU "DU" (set BACKB4DRIVEU=OPTIONS) & (goto:DRIVEUCHANGE)
if /i "%OPTIONS%" EQU "d2x" (set backbeforebetaswitch=OPTIONS) & (goto:betaswitch)
if /i "%OPTIONS%" NEQ "RS" goto:skip
if /i "%ROOTSAVE%" EQU "ON" (set ROOTSAVE=OFF) else (set ROOTSAVE=ON)
if exist Support\settings.bat support\sfk filter Support\settings.bat -ls!"Set*ROOTSAVE=" -write -yes>nul
echo Set ROOTSAVE=%ROOTSAVE%>> Support\settings.bat
goto:options
:skip
if /i "%OPTIONS%" NEQ "PC" goto:skip
if /i "%PCSAVE%" EQU "Auto" (set PCSAVE=Portable) & (goto:bypass)
if /i "%PCSAVE%" EQU "Portable" (set PCSAVE=Local) & (goto:bypass)
if /i "%PCSAVE%" EQU "Local" set PCSAVE=Auto
:bypass
if exist Support\settings.bat support\sfk filter Support\settings.bat -ls!"Set*PCSAVE=" -write -yes>nul
echo Set PCSAVE=%PCSAVE%>> Support\settings.bat
goto:options
:skip
if /i "%OPTIONS%" NEQ "A" goto:skip
if /i "%AUTOUPDATE%" EQU "ON" (set AUTOUPDATE=OFF) else (set AUTOUPDATE=ON)
if exist Support\settings.bat support\sfk filter Support\settings.bat -ls!"Set*AUTOUPDATE=" -write -yes>nul
echo Set AUTOUPDATE=%AUTOUPDATE%>> Support\settings.bat
goto:options
:skip
if /i "%OPTIONS%" NEQ "SO" goto:skip
if /i "%AudioOption%" EQU "ON" (set AudioOption=OFF) else (set AudioOption=ON)
if exist Support\settings.bat support\sfk filter Support\settings.bat -ls!"Set*AudioOption=" -write -yes>nul
echo Set AudioOption=%AudioOption%>> Support\settings.bat
goto:options
:skip
if /i "%OPTIONS%" NEQ "H" goto:skip
if /i "%hermesOPTION%" EQU "OFF" (Set hermesOPTION=ON) else (Set hermesOPTION=OFF)
if exist Support\settings.bat support\sfk filter Support\settings.bat -ls!"Set*hermesOPTION=" -write -yes>nul
echo Set hermesOPTION=%hermesOPTION%>> Support\settings.bat
goto:OPTIONS
:skip
if /i "%OPTIONS%" NEQ "CM" goto:skip
if /i "%CMIOSOPTION%" EQU "ON" (set CMIOSOPTION=OFF) else (set CMIOSOPTION=ON)
if exist Support\settings.bat support\sfk filter Support\settings.bat -ls!"Set*CMIOSOPTION=" -write -yes>nul
echo Set CMIOSOPTION=%CMIOSOPTION%>> Support\settings.bat
goto:options
:skip
if /i "%OPTIONS%" NEQ "FWD" goto:skip
if /i "%FWDOPTION%" EQU "ON" (set FWDOPTION=OFF) else (set FWDOPTION=ON)
if exist Support\settings.bat support\sfk filter Support\settings.bat -ls!"Set*FWDOPTION=" -write -yes>nul
echo Set FWDOPTION=%FWDOPTION%>> Support\settings.bat
goto:options
:skip
if /i "%OPTIONS%" NEQ "E" goto:skip
if /i "%ExtraProtectionOPTION%" EQU "ON" (set ExtraProtectionOPTION=OFF) else (set ExtraProtectionOPTION=ON)
if exist Support\settings.bat support\sfk filter Support\settings.bat -ls!"Set*ExtraProtectionOPTION=" -write -yes>nul
echo Set ExtraProtectionOPTION=%ExtraProtectionOPTION%>> Support\settings.bat
goto:options
:skip
if /i "%OPTIONS%" NEQ "sv" goto:skip
if /i "%sneekverbose%" EQU "ON" (set sneekverbose=OFF) else (set sneekverbose=ON)
if exist Support\settings.bat support\sfk filter Support\settings.bat -ls!"Set*sneekverbose=" -write -yes>nul
echo Set sneekverbose=%sneekverbose%>> Support\settings.bat
goto:options
:skip
if /i "%OPTIONS%" NEQ "n2o" goto:skip
if /i "%neek2o%" EQU "ON" (set neek2o=OFF) else (set neek2o=ON)
if exist Support\settings.bat support\sfk filter Support\settings.bat -ls!"Set*neek2o=" -write -yes>nul
echo Set neek2o=%neek2o%>> Support\settings.bat
goto:options
:skip
if /i "%OPTIONS%" NEQ "v" goto:skip
if /i "%ModMiiverbose%" EQU "ON" (set ModMiiverbose=OFF) else (set ModMiiverbose=ON)
if exist Support\settings.bat support\sfk filter Support\settings.bat -ls!"Set*ModMiiverbose=" -write -yes>nul
echo Set ModMiiverbose=%ModMiiverbose%>> Support\settings.bat
goto:options
:skip
if /i "%OPTIONS%" NEQ "SSD" goto:skip
if /i "%SSD%" EQU "ON" (set SSD=OFF) else (set SSD=ON)
if exist Support\settings.bat support\sfk filter Support\settings.bat -ls!"Set*SSD=" -write -yes>nul
echo Set SSD=%SSD%>> Support\settings.bat
goto:options
:skip
if /i "%OPTIONS%" NEQ "f" goto:skip
if /i "%SNKFONT%" EQU "W" (Set SNKFONT=B) & (goto:bypass)
if /i "%SNKFONT%" EQU "B" (Set SNKFONT=R) & (goto:bypass)
if /i "%SNKFONT%" EQU "R" Set SNKFONT=W
:bypass
if exist Support\settings.bat support\sfk filter Support\settings.bat -ls!"Set*SNKFONT=" -write -yes>nul
echo Set SNKFONT=%SNKFONT%>> Support\settings.bat
goto:options
:skip
if /i "%OPTIONS%" NEQ "U" goto:skip
if /i "%ACTIVEIOS%" EQU "ON" (set ACTIVEIOS=OFF) else (set ACTIVEIOS=ON)
if exist Support\settings.bat support\sfk filter Support\settings.bat -ls!"Set*ACTIVEIOS=" -write -yes>nul
echo Set ACTIVEIOS=%ACTIVEIOS%>> Support\settings.bat
goto:options
:skip
if /i "%OPTIONS%" NEQ "AU" goto:skip
if /i "%AUSKIP%" EQU "ON" (set AUSKIP=OFF) else (set AUSKIP=ON)
if exist Support\settings.bat support\sfk filter Support\settings.bat -ls!"Set*AUSKIP=" -write -yes>nul
echo Set AUSKIP=%AUSKIP%>> Support\settings.bat
goto:options
:skip
echo You Have Entered an Incorrect Key
@ping 127.0.0.1 -n 2 -w 1000> nul
goto:OPTIONS
:Dependencies
set /a DepFCount=0
call Support\subscripts\dependency.bat ShowMiiVWiiKeys
if /i "%dependency%" EQU "F" set /a DepFCount+=1
call Support\subscripts\dependency.bat nand-tools
if /i "%dependency%" EQU "F" set /a DepFCount+=1
call Support\subscripts\dependency.bat nandBinCheck
if /i "%dependency%" EQU "F" set /a DepFCount+=1
call Support\subscripts\dependency.bat Punetwiin
if /i "%dependency%" EQU "F" set /a DepFCount+=1
call Support\subscripts\dependency.bat wiiload
if /i "%dependency%" EQU "F" set /a DepFCount+=1
call Support\subscripts\dependency.bat UnRAR
if /i "%dependency%" EQU "F" set /a DepFCount+=1
call Support\subscripts\dependency.bat Sharpii
if /i "%dependency%" EQU "F" set /a DepFCount+=1
call Support\subscripts\dependency.bat ODB
if /i "%dependency%" EQU "F" set /a DepFCount+=1
call Support\subscripts\dependency.bat wwcxtool
if /i "%dependency%" EQU "F" set /a DepFCount+=1
call Support\subscripts\dependency.bat wit
if /i "%dependency%" EQU "F" set /a DepFCount+=1
call Support\subscripts\dependency.bat LZ77Helper
if /i "%dependency%" EQU "F" set /a DepFCount+=1
call Support\subscripts\dependency.bat themewii
if /i "%dependency%" EQU "F" set /a DepFCount+=1
echo.
if %DepFCount% EQU 0 (echo Dependencies downloaded Successfully!) else (echo %DepFCount% dependencies failed to download...)
if /i "%AudioOption%" NEQ "on" (@ping 127.0.0.1 -n 4 -w 1000> nul) & (goto:OPTIONS)
if %DepFCount% EQU 0 (start support\nircmd.exe mediaplay 3000 "%Success.mp3%") else (start support\nircmd.exe mediaplay 3000 "%Fail.mp3%")
@ping 127.0.0.1 -n 4 -w 1000> nul
goto:OPTIONS
:RestoreSettings
set d2x-beta-rev=%d2x-bundled%
Set LegacyCIOS=
if exist support\d2x-beta rd /s /q support\d2x-beta
set KeepInvalidOverride=N
Set AutoDetectNL=
Set AutoDetectDF=
Set WiiPyInfo=
Set ODBinfo=
if not exist Support\settings_skipped_apps.txt goto:notall
::Loop through the following once for EACH line in *.txt
for /F "tokens=*" %%A in (Support\settings_skipped_apps.txt) do call :SkipUpdateList4 %%A
goto:quickskip
:SkipUpdateList4
set CurrentApp=%*
::strip out colons before and after app name
set CurrentApp=%CurrentApp:~1,-1%
if exist "%DRIVE%\apps\%CurrentApp%\SkipModMiiUpdates.txt" del "%DRIVE%\apps\%CurrentApp%\SkipModMiiUpdates.txt">nul
if exist "%DRIVE%\wiiu\apps\%CurrentApp%\SkipModMiiUpdates.txt" del "%DRIVE%\wiiu\apps\%CurrentApp%\SkipModMiiUpdates.txt">nul
goto:EOF
:quickskip
::if exist "Support\settings_skipped_apps.txt" del "Support\settings_skipped_apps.txt">nul
::copy /y NUL "Support\settings_skipped_apps.txt">nul
::by default legacy apps are disabled (107 at present) less retroarch which should be updated later in 2025 (but will continue to exclude more_ra_arcade & more_ra_cores which are relatively large downloads)
powershell echo "?100_Boxes_Wiiu?`n?AM64DSPatcher?`n?AocPatcher?`n?asturoids?`n?Bloopair?`n?cave?`n?cbhc?`n?cfwbooter?`n?CHIP8?`n?clock?`n?CloseHBL?`n?controller-test?`n?Crispy-Doom?`n?ddd?`n?diibugger?`n?disc2app?`n?disc2appWUTPort?`n?drc-test?`n?Fake-08?`n?fireplace-nx-wiiu?`n?flappy_bird?`n?flappy_bird_3d?`n?fsdumper?`n?ft2sd?`n?ftpiiu-cbhc?`n?ftpiiu?`n?ftpiiu_everywhere?`n?fuckyoustick?`n?gacubeboy?`n?GamepadTester?`n?gbiine?`n?geckiine?`n?haxchi?`n?HBL_Dpad?`n?hbl2hbc?`n?hid_keyboard_monitor?`n?hidtest?`n?hidtovpad?`n?homebrew_launcher?`n?IOSreboot?`n?iosuotp?`n?jezzballu?`n?keyboard_example?`n?lameIRCU?`n?LiveSynthesisU?`n?loadiine_gx2?`n?loadiine_gx2_y?`n?MegaZeux?`n?menu_sort?`n?Minesweeper_WiiU?`n?mocha?`n?mocha_fat32?`n?mocha_fshax?`n?mocha_sd_access?`n?more_ra_arcade?`n?more_ra_cores?`n?nanddumper?`n?nnupatcher?`n?Opensupaplex?`n?otp2sd?`n?ourloader?`n?PacmanGX2?`n?Pokemini?`n?PokeMiniU?`n?pong?`n?RemotePad?`n?savemii?`n?savemii_inject_mod?`n?saviine?`n?SDcafiine?`n?SDGeckiine?`n?seeprom2sd?`n?shutdown-hbl?`n?sign_c2w_patcher?`n?sigpatcher2HBL?`n?sigpatcher2sysmenu?`n?Simple_SDL_Snake?`n?sm4sh2sd?`n?snake?`n?spacegame?`n?spiik?`n?SuDokuL?`n?swapdrc?`n?swapdrc_lite?`n?swipswapme?`n?TetrisU?`n?tictactoe?`n?tik2sd?`n?timingu?`n?u-paint?`n?Uclick?`n?UFDiine?`n?UselessHomebrew?`n?VidChanger?`n?vwii-compat-installer?`n?vWii-NAND-Restorer?`n?vWii_decaffeinator?`n?WiiAlarmU?`n?wiiu-vnc?`n?wim?`n?wudump?`n?wup_installer_gx2?`n?wup_installer_gx2_mod?`n?wuphax?`n?wupinstaller?`n?wupymod?`n?yapesdl?">Support\settings_skipped_apps.txt
:notall
set ROOTSAVE=off
set effect=No-Spin
set PCSAVE=Auto
::set OPTION1=off
set AudioOption=on
set hermesOPTION=off
set CMIOSOPTION=off
set FWDOPTION=on
set ExtraProtectionOPTION=on
set Drive=COPY_TO_SD
set DriveU=COPY_TO_USB
set ACTIVEIOS=on
set AUSKIP=off
set AUTOUPDATE=on
Set ModMiiverbose=off
Set SSD=off
Set sneekverbose=off
Set neek2o=on
Set SNKFONT=B
set redtext=Red
set bluetext=Blue
set yellowtext=Yellow
set greentext=Green
set magentatext=Magenta
set cyantext=Cyan
set backgroundcolor=1
set whitetext=f
set GuideOnly=off
set skin=Default
set "Success.mp3=Support\Skins\Default\Success.mp3"
set "Fail.mp3=Support\Skins\Default\Fail.mp3"
set "splash.png=Support\Skins\Default\splash.png"
::Set RecD2XcIOS=
color %backgroundcolor%%whitetext%
goto:savesettingsnow
:SaveSettings
cls
echo ModMii v%currentversion%
echo by XFlak
echo.
:savesettingsnow
echo ::ModMii Settings > Support\settings.bat
echo ::ModMiiv%currentversion%>> Support\settings.bat
echo Set ROOTSAVE=%ROOTSAVE%>> Support\settings.bat
echo Set effect=%effect%>> Support\settings.bat
echo Set PCSAVE=%PCSAVE%>> Support\settings.bat
::echo Set Option1=%Option1%>> Support\settings.bat
echo Set AudioOption=%AudioOption%>> Support\settings.bat
echo Set hermesOPTION=%hermesOPTION%>> Support\settings.bat
echo Set CMIOSOPTION=%CMIOSOPTION%>> Support\settings.bat
echo Set FWDOPTION=%FWDOPTION%>> Support\settings.bat
echo Set ExtraProtectionOPTION=%ExtraProtectionOPTION%>> Support\settings.bat
echo Set "Drive=%DRIVE%">> Support\settings.bat
echo Set "DriveU=%DRIVEU%">> Support\settings.bat
echo Set ACTIVEIOS=%ACTIVEIOS%>> Support\settings.bat
echo Set AUSKIP=%AUSKIP%>> Support\settings.bat
echo Set AUTOUPDATE=%AUTOUPDATE%>> Support\settings.bat
echo Set ModMiiverbose=%ModMiiverbose%>> Support\settings.bat
echo Set SSD=%SSD%>> Support\settings.bat
echo Set sneekverbose=%sneekverbose%>> Support\settings.bat
echo Set neek2o=%neek2o%>> Support\settings.bat
echo Set SNKFONT=%SNKFONT%>> Support\settings.bat
echo Set skin=%skin%>> Support\settings.bat
if not "%RecD2XcIOS%"=="" echo Set "RecD2XcIOS=%RecD2XcIOS%">> Support\settings.bat
if not "%AutoDetectNL%"=="" echo set AutoDetectNL=%AutoDetectNL%>> Support\settings.bat
if not "%AutoDetectDF%"=="" echo set AutoDetectDF=%AutoDetectDF%>> Support\settings.bat
if /i "%KeepInvalidOverride%" EQU "Y" echo set KeepInvalidOverride=Y>> Support\settings.bat
if not "%LegacyCIOS%"=="" echo set LegacyCIOS=%LegacyCIOS%>> Support\settings.bat
if /i "%WiiPyInfo%" EQU "Y" echo set WiiPyInfo=Y>> Support\settings.bat
if /i "%ODBinfo%" EQU "Y" echo set ODBinfo=Y>> Support\settings.bat
if /i "%debug%" EQU "on" echo set debug=on>> Support\settings.bat
echo set AGREEDVERSION=%currentversion%>> Support\settings.bat
if /i "%redtext%" NEQ "Red" echo set "redtext=%redtext%">> Support\settings.bat
if /i "%bluetext%" NEQ "Blue" echo set "bluetext=%bluetext%">> Support\settings.bat
if /i "%yellowtext%" NEQ "Yellow" echo set "yellowtext=%yellowtext%">> Support\settings.bat
if /i "%Greentext%" NEQ "Green" echo set "greentext=%greentext%">> Support\settings.bat
if /i "%Magentatext%" NEQ "Magenta" echo set "magentatext=%magentatext%">> Support\settings.bat
if /i "%cyantext%" NEQ "Cyan" echo set "cyantext=%cyantext%">> Support\settings.bat
if /i "%backgroundcolor%" NEQ "1" echo set "backgroundcolor=%backgroundcolor%">> Support\settings.bat
if /i "%whitetext%" NEQ "f" echo set "whitetext=%whitetext%">> Support\settings.bat
::Enable recommended d2x instead of default\bundled (if they differ)
if "%RecD2XcIOS%"=="" goto:OPTIONS
::set RecD2XcIOS=d2x-v10-beta52
if /i "%d2x-bundled%" EQU "%RecD2XcIOS:~5%" goto:OPTIONS
echo Enabling recommended d2x cIOS (%RecD2XcIOS:~5%) instead of default\bundled (%d2x-bundled%)
echo This can always be customized in ModMii's d2x Options
echo.
if exist "support\More-cIOSs\%RecD2XcIOS%\d2x-beta.bat" goto:pickup
support\wget --output-document %RecD2XcIOS%.zip --no-check-certificate -t 3 "https://github.com/modmii/modmii.github.io/blob/master/temp/d2x/%RecD2XcIOS%.7z?raw=true" -q --show-progress
echo.
::delete if file is empty
>nul findstr "^" "%RecD2XcIOS%.zip" || del "%RecD2XcIOS%.zip"
if not exist "%RecD2XcIOS%.zip" goto:badkey
if not exist "support\More-cIOSs\%RecD2XcIOS%" mkdir "support\More-cIOSs\%RecD2XcIOS%"
support\7za e -aoa "%RecD2XcIOS%.zip" -o"support\More-cIOSs\%RecD2XcIOS%" *.* -r
echo.
del "%RecD2XcIOS%.zip">nul
if not exist "support\More-cIOSs\%RecD2XcIOS%\d2x-beta.bat" (rd /s /q "support\More-cIOSs\%RecD2XcIOS%") & (goto:badkey)
:pickup
if exist support\d2x-beta rd /s /q support\d2x-beta
mkdir support\d2x-beta
copy /y "support\More-cIOSs\%RecD2XcIOS%\*" "support\d2x-beta">nul
if exist support\d2x-beta\d2x-beta.bat call support\d2x-beta\d2x-beta.bat
::if /i "%d2x-beta-rev%" EQU "%RecD2XcIOS:~5%" (echo %RecD2XcIOS% cIOS successfully enabled!) else (goto:badkey)
if /i "%d2x-beta-rev%" NEQ "%RecD2XcIOS:~5%" goto:badkey
@ping 127.0.0.1 -n 4 -w 1000> nul
goto:OPTIONS
:badkey
echo Something went wrong, %RecD2XcIOS% cIOS not enabled...
@ping 127.0.0.1 -n 4 -w 1000> nul
goto:OPTIONS
:DRIVECHANGE
set "drivetemp=%DRIVE%"
cls
echo ModMii v%currentversion%
echo by XFlak
echo.
echo.
if /i "%MENU1%" NEQ "FC" echo Enter the drive letter (or Path) to save files for your SD Card
if /i "%MENU1%" EQU "FC" echo Enter the drive letter (or Path) of the SD Card or USB HDD to scan
echo.
support\sfk echo -spat \x20 \x20 \x20 \x20 \x20 Current Setting: [%cyantext%]"%Drive:\=\x5c%"
echo.
echo Notes: * To continue using Current Settings
echo leave the selection blank and hit enter.
echo.
if /i "%adminmode%" EQU "N" echo * You can drag and drop the Drive/folder onto this
if /i "%adminmode%" EQU "N" echo window to save yourself having to manually type it.
if /i "%adminmode%" EQU "N" echo.
if /i "%MENU1%" EQU "FC" goto:skipinfo
echo * If you experience errors, try using default settings.
echo.
echo * If your SD Card is not already formatted as FAT32 (or if
echo you are unsure), it may save some time by using default settings.
echo.
echo * If your Wii's SD Card reader is broken, you can use a Hard Drive
echo formatted as FAT32 in place of an SD Card to complete most things
echo (SD notably required for Bootmii, NAND backup ^& SNEEK).
echo.
echo * If you don't have an SD Card or Hard Drive, you can launch apps ^&
echo install WADs over the internet to your Wii or vWii from your PC.
echo Just open dols, elfs, or WADs with ModMii. Note that some apps may
echo not work or support all features if they need an SD or HDD.
echo.
:skipinfo
echo EXAMPLES
echo.
echo L:
echo.
echo %%userprofile%%\Desktop\COPY_TO_SD
echo.
echo ModMii\4.2U
echo Note: this creates ModMii\4.2U folders where this program is Saved
echo.
echo C:\Users\XFlak\Desktop\New Folder
echo.
echo.
echo D = Default Setting: COPY_TO_SD
echo.
echo B = Back
echo.
echo M = Main Menu
echo.
if "%Drivetemp%"=="" set Drivetemp="
set /p Drivetemp= Enter Selection Here:
set "Drivetemp=%Drivetemp:"=%"
if "%Drivetemp%"=="" (echo You Have Entered an Incorrect Key) & (@ping 127.0.0.1 -n 2 -w 1000> nul) & (goto:DRIVECHANGE)
if /i "%DRIVETEMP%" EQU "?" (echo You Have Entered an Incorrect Key) & (@ping 127.0.0.1 -n 2 -w 1000> nul) & (goto:DRIVECHANGE)
if /i "%DRIVETEMP%" EQU "<" (echo You Have Entered an Incorrect Key) & (@ping 127.0.0.1 -n 2 -w 1000> nul) & (goto:DRIVECHANGE)
if /i "%DRIVETEMP%" EQU ">" (echo You Have Entered an Incorrect Key) & (@ping 127.0.0.1 -n 2 -w 1000> nul) & (goto:DRIVECHANGE)
if /i "%DRIVETEMP%" EQU "M" goto:MENU
if /i "%DRIVETEMP%" EQU "B" goto:%BACKB4DRIVE%
if /i "%DRIVETEMP%" EQU "D" set DRIVETEMP=COPY_TO_SD
:doublecheck
set fixslash=
if "%DRIVETEMP%"=="" (echo You Have Entered an Incorrect Key) & (@ping 127.0.0.1 -n 2 -w 1000> nul) & (goto:DRIVECHANGE)
if /i "%DRIVETEMP:~-1%" EQU "\" set fixslash=yes
if /i "%DRIVETEMP:~-1%" EQU "/" set fixslash=yes
if /i "%fixslash%" EQU "yes" set "DRIVETEMP=%DRIVETEMP:~0,-1%"
if /i "%fixslash%" EQU "yes" goto:doublecheck
:skip
::if second char is ":" check if drive exists
if /i "%DRIVETEMP:~1,1%" NEQ ":" goto:skipcheck
if exist "%DRIVETEMP:~0,2%" (goto:skipcheck) else (echo.)
echo "%DRIVETEMP:~0,2%" doesn't exist, please try again...
@ping 127.0.0.1 -n 2 -w 1000> nul
goto:DRIVECHANGE
:skipcheck
::try making directory, and if fails, don't use this setting
if not exist "%DRIVETEMP%" mkdir "%DRIVETEMP%"
if not exist "%DRIVETEMP%" (echo You Have Entered an Incorrect Key or need Admin rights for this location) & (@ping 127.0.0.1 -n 2 -w 1000> nul) & (goto:DRIVECHANGE)
::check for write access
if not exist "%DRIVETEMP%\test.txt" goto:skip
del "%DRIVETEMP%\test.txt">nul
if exist "%DRIVETEMP%\test.txt" (goto:WriteError) else (goto:donecheck)
:skip
echo test>"%DRIVETEMP%\test.txt"
if exist "%DRIVETEMP%\test.txt" goto:donecheck
:WriteError
echo You need Admin rights to use this location
@ping 127.0.0.1 -n 2 -w 1000> nul
goto:DRIVECHANGE
:donecheck
if exist "%DRIVETEMP%\test.txt" del "%DRIVETEMP%\test.txt">nul
set "DRIVE=%DRIVETEMP%"
set "REALDRIVE=%DRIVE%"
::don't save settings if using FC
if /i "%MENU1%" EQU "FC" goto:skip
::autosave drive setting to settings.bat
if exist Support\settings.bat support\sfk filter Support\settings.bat -ls!"Set*Drive=" -write -yes>nul
echo Set "Drive=%DRIVE%">>Support\settings.bat
:skip
::prompt for full FC scan after cursory scan only if launched via Options
if /i "%MENU1%" NEQ "O" goto:skip
if not exist "%DRIVE%\apps" if not exist "%DRIVE%\wiiu" goto:skip
:CleanPrompt
set CleanPrompt="
echo.
echo Would you like to scan this location for files to update or clean\remove? (Y/N)
echo.
set /p CleanPrompt=Enter Selection Here:
set "CleanPrompt=%CleanPrompt:"=%"
if /i "%CleanPrompt%" EQU "N" goto:skip
if /i "%CleanPrompt%" NEQ "Y" (echo You Have Entered an Incorrect Key) & (goto:CleanPrompt)
set MENU1=FC
:skip
if /i "%MENU1%" EQU "FC" goto:FileCleanup
if /i "%MENU1%" EQU "U" set BACKB4QUEUE=DRIVECHANGE
if /i "%MENU1%" EQU "U" goto:DOWNLOADQUEUE
if /i "%MENU1%" NEQ "W" goto:skip
if /i "%USBCONFIG%" EQU "USB" (set BACKB4QUEUE=DRIVEUCHANGE) else (set BACKB4QUEUE=DRIVECHANGE)
if /i "%USBCONFIG%" EQU "USB" (goto:DRIVEUCHANGE) else (goto:download)
:skip
::if /i "%AbstinenceWiz%" EQU "Y" (set B4SNKPAGE3=DRIVECHANGE) & (goto:snkpage3)
if /i "%MENU1%" EQU "RC" (set BACKB4QUEUE=DRIVECHANGE) & (goto:download)
if /i "%SNEEKTYPE%" EQU "U" (set BACKB4DRIVEU=DRIVECHANGE) & (goto:DRIVEUCHANGE)
if /i "%SNEEKTYPE%" EQU "UD" (set BACKB4DRIVEU=DRIVECHANGE) & (goto:DRIVEUCHANGE)
if /i "%SNEEKSELECT%" EQU "2" (set B4SNKPAGE3=DRIVECHANGE) & (goto:snkpage3)
if /i "%SNEEKSELECT%" EQU "3" (set B4SNKPAGE3=DRIVECHANGE) & (goto:snkpage3)
if /i "%SNEEKSELECT%" EQU "1" (set B4SNKCONFIRM=DRIVECHANGE) & (goto:SNKNANDCONFIRM)
if /i "%MENU1%" EQU "O" goto:Options
goto:%BACKB4DRIVE%
:DRIVEUCHANGE
set "driveUtemp=%DRIVEU%"
cls
echo ModMii v%currentversion%
echo by XFlak
echo.
echo.
echo.
echo Enter the drive letter (or Path) to save files for your USB Hard Drive
echo.
support\sfk echo -spat \x20 \x20 \x20 \x20 \x20 Current Setting: [%cyantext%]"%DriveU:\=\x5c%"
echo.
echo Notes: * To continue using Current Settings
echo leave the selection blank and hit enter.
echo.
if /i "%adminmode%" EQU "N" echo * You can drag and drop the Drive/folder onto this
if /i "%adminmode%" EQU "N" echo window to save yourself having to manually type it.
if /i "%adminmode%" EQU "N" echo.
echo * If you experience errors, try using default settings.
echo.
echo * If your Hard Drive is not already formatted properly (or if
echo you are unsure), it may save some time by using default settings.
echo.
echo * If you don't have an SD Card or Hard Drive, you can launch apps ^&
echo install WADs over the internet to your Wii or vWii from your PC.
echo Just open dols, elfs, or WADs with ModMii. Note that some apps may
echo not work or support all features if they need an SD or HDD.
echo.
echo EXAMPLES
echo.
echo L:
echo.
echo %%userprofile%%\Desktop\COPY_TO_USB
echo.
echo ModMii\4.2U
echo Note: this creates ModMii\4.2U folders where this program is Saved
echo.
echo C:\Users\XFlak\Desktop\New Folder
echo.
echo.
echo D = Default Setting: COPY_TO_USB
echo.
echo.
echo B = Back
echo.
echo M = Main Menu
echo.
echo.
if "%DriveUtemp%"=="" set DriveUtemp="
set /p DriveUtemp=Enter Selection Here:
set "DriveUtemp=%DriveUtemp:"=%"
if "%DriveUtemp%"=="" (echo You Have Entered an Incorrect Key) & (@ping 127.0.0.1 -n 2 -w 1000> nul) & (goto:DRIVEUCHANGE)
if /i "%DRIVEUTEMP%" EQU "?" (echo You Have Entered an Incorrect Key) & (@ping 127.0.0.1 -n 2 -w 1000> nul) & (goto:DRIVEUCHANGE)
if /i "%DRIVEUTEMP%" EQU ">" (echo You Have Entered an Incorrect Key) & (@ping 127.0.0.1 -n 2 -w 1000> nul) & (goto:DRIVEUCHANGE)
if /i "%DRIVEUTEMP%" EQU "<" (echo You Have Entered an Incorrect Key) & (@ping 127.0.0.1 -n 2 -w 1000> nul) & (goto:DRIVEUCHANGE)
if /i "%DRIVEUTEMP%" EQU "M" goto:MENU
if /i "%LoadWizSettings%" EQU "Y" set BACKB4DRIVEU=DRIVECHANGE
if /i "%DRIVEUTEMP%" EQU "B" goto:%BACKB4DRIVEU%
if /i "%DRIVEUTEMP%" EQU "D" set DRIVEUTEMP=COPY_TO_USB
:doublecheckU
set fixslash=
if "%DRIVEUTEMP%"=="" (echo You Have Entered an Incorrect Key) & (@ping 127.0.0.1 -n 2 -w 1000> nul) & (goto:DRIVEUCHANGE)
if /i "%DRIVEUTEMP:~-1%" EQU "\" set fixslash=yes
if /i "%DRIVEUTEMP:~-1%" EQU "/" set fixslash=yes
if /i "%fixslash%" EQU "yes" set "DRIVEUTEMP=%DRIVEUTEMP:~0,-1%"
if /i "%fixslash%" EQU "yes" goto:doublecheckU
::if second char is ":" check if drive exists
if /i "%DRIVEUTEMP:~1,1%" NEQ ":" goto:skipcheck
if exist "%DRIVEUTEMP:~0,2%" (goto:skipcheck) else (echo.)
echo "%DRIVEUTEMP:~0,2%" doesn't exist, please try again...
@ping 127.0.0.1 -n 2 -w 1000> nul
goto:DRIVEUCHANGE
:skipcheck
::try making directory, and if fails, don't use this setting
if not exist "%DRIVEUTEMP%" mkdir "%DRIVEUTEMP%"
if not exist "%DRIVEUTEMP%" (echo You Have Entered an Incorrect Key or need Admin rights for this location) & (@ping 127.0.0.1 -n 2 -w 1000> nul) & (goto:DRIVEUCHANGE)
::check for write access
if not exist "%DRIVEUTEMP%\test.txt" goto:skip
del "%DRIVEUTEMP%\test.txt">nul
if exist "%DRIVEUTEMP%\test.txt" (goto:WriteError) else (goto:donecheck)
:skip
echo test>"%DRIVEUTEMP%\test.txt"
if exist "%DRIVEUTEMP%\test.txt" goto:donecheck
:WriteError
echo You need Admin rights to use this location
@ping 127.0.0.1 -n 2 -w 1000> nul
goto:DRIVEUCHANGE
:donecheck
if exist "%DRIVEUTEMP%\test.txt" del "%DRIVEUTEMP%\test.txt">nul
set "DRIVEU=%DRIVEUTEMP%"
::autosave drive setting to settings.bat
if exist Support\settings.bat support\sfk filter Support\settings.bat -ls!"Set*DriveU=" -write -yes>nul
echo Set "DriveU=%DRIVEU%">>Support\settings.bat
::prompt for full FC scan after cursory scan only if launched via Options
if /i "%MENU1%" NEQ "O" goto:skip
if not exist "%DRIVEU%\apps" if not exist "%DRIVEU%\wiiu" goto:skip
:CleanPrompt2
set CleanPrompt="
echo.
echo Would you like to scan this location for files to update or clean\remove? (Y/N)
echo.
set /p CleanPrompt=Enter Selection Here:
set "CleanPrompt=%CleanPrompt:"=%"
if /i "%CleanPrompt%" EQU "N" goto:skip
if /i "%CleanPrompt%" NEQ "Y" (echo You Have Entered an Incorrect Key) & (goto:CleanPrompt2)
::BACKUP DRIVE SETTINGS
set "REALDRIVE=%DRIVE%"
set "DRIVE=%DRIVEU%"
set MENU1=FC
goto:FileCleanup
:skip
if /i "%AbstinenceWiz%" EQU "Y" (set B4SNKPAGE3=DRIVEUCHANGE) & (goto:snkpage3)
if /i "%SNEEKSELECT%" EQU "1" set B4SNKCONFIRM=DRIVEUCHANGE
if /i "%SNEEKSELECT%" EQU "1" goto:SNKNANDCONFIRM
if /i "%SNEEKSELECT%" EQU "2" set B4SNKPAGE3=DRIVEUCHANGE
if /i "%SNEEKSELECT%" EQU "3" set B4SNKPAGE3=DRIVEUCHANGE
if /i "%SNEEKSELECT%" EQU "2" goto:snkpage3
if /i "%SNEEKSELECT%" EQU "3" goto:snkpage3
if /i "%SNEEKSELECT%" EQU "4" goto:SNKDISCEX2
::if /i "%MENU1%" EQU "U" goto:DOWNLOADQUEUE
::if /i "%WLAST%" EQU "Y" goto:DOWNLOAD
if /i "%MENU1%" NEQ "U" goto:skip
if /i "%USBCONFIG%" EQU "USB" set "DRIVE=%DRIVEU%"
if /i "%USBCONFIG%" EQU "USB" set BACKB4QUEUE=DRIVEUCHANGE
if /i "%USBCONFIG%" EQU "USB" goto:DownloadQueue
:skip
if /i "%USBCONFIG%" EQU "USB" set BACKB4QUEUE=DRIVEUCHANGE
if /i "%USBCONFIG%" EQU "USB" goto:Download
goto:Options
:UpdateModMii
cls
echo ModMii v%currentversion%
echo by XFlak
echo.
echo.
echo Current Version is %CurrentVersion%
echo.
echo Checking for updates...
echo.
::only if temp\currentversion.txt exists updater.bat will start updating when called or started, otherwise will just get info and return to loader ::echo %currentversion%>temp\currentversion.txt
if exist "temp\currentversion.txt" del "temp\currentversion.txt">nul
if exist "temp\currentversionInfo.txt" del "temp\currentversionInfo.txt">nul
::comment these for local Updatetemp.bat for testing... (updater.bat is renamed to Updatetemp.bat for legacy purposes)
if /i "%debug%" EQU "on" goto:skip
if exist Updatetemp.bat attrib -h Updatetemp.bat
if exist Updatetemp.bat del Updatetemp.bat>nul
support\wget --no-check-certificate "https://raw.githubusercontent.com/modmii/modmii.github.io/master/temp/updater.bat" -O Updatetemp.bat -q
::delete if file is empty (if empty)
>nul findstr "^" "Updatetemp.bat" || del "Updatetemp.bat"
if not exist Updatetemp.bat goto:altlink
::DELETE IF NULL
::for %%R in (Updatetemp.bat) do if %%~zR lss 1 del "Updatetemp.bat">nul
:altlink
if not exist "Updatetemp.bat" support\wget --no-check-certificate "https://tiny.cc/modmiiupdater" -O Updatetemp.bat -q
::delete if file is empty (if empty)
>nul findstr "^" "Updatetemp.bat" || del "Updatetemp.bat"
if not exist Updatetemp.bat goto:updatefail
::DELETE IF NULL
::for %%R in (Updatetemp.bat) do if %%~zR lss 1 del "Updatetemp.bat">nul
:skip
::Call to get new version info and changelogURL
if exist temp\skin.txt del temp\skin.txt>nul
if exist Updatetemp.bat (call Updatetemp.bat) else (goto:updatefail)
::in case new d2x beta downloaded, call it
if exist support\d2x-beta\d2x-beta.bat call support\d2x-beta\d2x-beta.bat
if "%newversion%"=="" goto:updatefail
if %currentversion% LSS %newversion% goto:openchangelog
if /i "%debug%" EQU "on" goto:debugskip
if exist Updatetemp.bat attrib -h Updatetemp.bat
if exist Updatetemp.bat del Updatetemp.bat>nul
:debugskip
if /i "%MENU1%" EQU "O" goto:skip
if %currentversion% GTR %newversion% (echo This version is newer than the latest public release) & (echo.) & (echo You got some crazy new beta shit!) & (@ping 127.0.0.1 -n 4 -w 1000> nul) & (goto:menu)
if %currentversion% EQU %newversion% (echo This version is up to date) & (@ping 127.0.0.1 -n 4 -w 1000> nul) & (goto:menu)
:skip
if %currentversion% GTR %newversion% (echo This version is newer than the latest public release) & (echo.) & (echo You got some crazy new beta shit!) & (@ping 127.0.0.1 -n 4 -w 1000> nul) & (goto:OPTIONS)
if %currentversion% EQU %newversion% (echo This version is up to date) & (@ping 127.0.0.1 -n 4 -w 1000> nul) & (goto:OPTIONS)
::if you made it this far, there's an update!
:openchangelog
start %changelogURL%
:updateconfirm
set updatenow="
cls
echo ModMii v%currentversion%
echo by XFlak
echo.
echo.
echo.
echo.
if /i "%currentversion%" NEQ "0.0.0" support\sfk echo -spat \x20 \x20 \x20 \x20 \x20 [%redtext%] An Update is available, would you like to update to v%newversion% now?
if /i "%currentversion%" EQU "0.0.0" echo One or more of ModMii's supporting files are missing, would you like to fix it by installing v%newversion% now?
echo.
echo.
echo.
echo It is recommended you read the changelog that just opened in your browser.
echo.
echo.
echo.
support\sfk echo -spat \x20 \x20 \x20 \x20 \x20 \x20 \x20 [%greentext%] Y = Yes - Perform Update Now! (RECOMMENDED)
echo.
if /i "%currentversion%" NEQ "0.0.0" echo N = No, do not update
if /i "%currentversion%" EQU "0.0.0" echo N = No, do not update\fix ModMii and Exit
echo.
echo.
echo.
set /p updatenow=Enter Selection Here:
set "updatenow=%updatenow:"=%"
if /i "%updatenow%" NEQ "N" goto:skip
if /i "%debug%" EQU "on" goto:debugskip
if exist Updatetemp.bat attrib -h Updatetemp.bat
if exist Updatetemp.bat del Updatetemp.bat>nul
:debugskip
if /i "%currentversion%" EQU "0.0.0" exit
if /i "%MENU1%" EQU "O" (goto:OPTIONS) else (goto:MENU)
:skip
if /i "%updatenow%" EQU "Y" goto:updatenow
:badkey
echo You Have Entered an Incorrect Key
@ping 127.0.0.1 -n 2 -w 1000> nul
goto:updateconfirm
:updatenow
::launch updater with temp\currentversion.txt to do the update
::only if temp\currentversion.txt exists updater will do start updating when called or started
::updater runs in skin mode if temp\skin.txt detected
echo %currentversion%>temp\currentversion.txt
echo %currentversion%>temp\currentversionInfo.txt
if exist temp\skin.txt del temp\skin.txt>nul
start Updatetemp.bat
exit
:updatefail
echo Update check has failed, check your internet connection and firewall settings.
@ping 127.0.0.1 -n 4 -w 1000> nul
set currentversion=%currentversioncopy%
if /i "%MENU1%" EQU "O" (goto:OPTIONS) else (goto:menu)
::-------------------------------File Cleanup------------------------------------
:FileCleanup
cls
::---------------CMD LINE MODE-------------
if /i "%cmdlinemodeswitchoff%" EQU "Y" (set cmdlinemode=) & (set one=) & (set two=)
echo Scanning for files to clean or update in this folder:
echo "%DRIVE%"
echo.
set SkipCleanReturnTo=
:FileCleanupPickUp
if exist temp\CleanItems.txt del temp\CleanItems.txt>nul
set cleanitems=0
set CLEANcountSkip=0
::Loop through the the following once for EACH line in *.txt
for /F "tokens=*" %%A in (Support\subscripts\CleanList.txt) do call :processCleanList %%A
goto:quickskip
:processCleanList
set CleanItem=%*
if not exist "%DRIVE%%CleanItem%" goto:EOF
::check settings_skipped_apps.txt
if not exist Support\settings_skipped_apps.txt goto:NoUpdateSettings
findStr /X /C:"%CleanItem%" "Support\settings_skipped_apps.txt" >nul
IF ERRORLEVEL 1 goto:NoUpdateSettings
if "%SkipCleanReturnTo%"=="" support\sfk echo %CleanItem% Detected, [%yellowtext%]skipping [def]as per ModMii settings...
set /a CLEANcountSkip+=1
goto:EOF
:NoUpdateSettings
echo %CleanItem% >>temp\CleanItems.txt
set /a cleanitems+=1
goto:EOF
:quickskip
::Loop through the the following once for EACH line in *.txt
for /F "tokens=*" %%A in (Support\subscripts\GamesaveExploits.txt) do call :processCleanList2 %%A
goto:quickskip
:processCleanList2
set GameSave=%*
if /i "%GameSave:~0,1%" EQU "\" (set "CleanItem=%GameSave%") & (goto:EOF)
if not exist "%DRIVE%%CleanItem%" goto:EOF
set "md5=%GameSave%"
::hash check
support\sfk md5 -quiet -verify %md5% "%DRIVE%%CleanItem%"
if errorlevel 1 goto:EOF
::check settings_skipped_apps.txt
if not exist Support\settings_skipped_apps.txt goto:NoUpdateSettings
findStr /X /C:"%CleanItem%" "Support\settings_skipped_apps.txt" >nul
IF ERRORLEVEL 1 goto:NoUpdateSettings
if "%SkipCleanReturnTo%"=="" support\sfk echo %CleanItem% Detected, [%yellowtext%]skipping [def]as per ModMii settings...
set /a CLEANcountSkip+=1
goto:EOF
:NoUpdateSettings
echo %CleanItem% >>temp\CleanItems.txt
set /a cleanitems+=1
goto:EOF
:quickskip
if exist temp\CleanItems.txt support\sfk filter -quiet temp\CleanItems.txt -lerep _" "__ -write -yes
if exist temp\CleanItems.txt support\sfk filter "temp\CleanItems.txt" -unique -no-empty-lines -no-blank-lines -write -yes>nul
if exist temp\CleanItems.txt sort temp\CleanItems.txt /o temp\CleanItems.txt
::echo %cleanitems%
if /i "%SkipCleanReturnTo%" EQU "SkipUpdateSettings" goto:SkipUpdateSettings
echo.
::--------------------check for apps to update------------------
::OSC
if exist temp\OSCupdateList.txt del temp\OSCupdateList.txt>nul
if exist temp\OSCcountCurrent.txt del temp\OSCcountCurrent.txt>nul
if exist temp\OSCcountSkip.txt del temp\OSCcountSkip.txt>nul
set OSCmode=list
if exist "%DRIVE%\apps" call support\subscripts\OSC.bat
::line count, count lines, if only 1 then don't show
set /a OSCupdateitems=0
if not exist temp\OSCupdateList.txt goto:skiplist
for /f %%a in (temp\OSCupdateList.txt) do set /a OSCupdateitems+=1
::GX v3.0 r1281 has a broken meta.xml on oscwii.org, until r1282 is released this will override it to download from a dif source, after oscwii.org is updated the next 4 lines can be removed
findStr /I /B /R /C:"usbloader_gx: .* to 3.0 r1281" "temp\OSCupdateList.txt" >nul
IF ERRORLEVEL 1 goto:skiplist
set usbgx=*
support\sfk filter -quiet "temp\OSCupdateList.txt" -lerep _" to 3.0 r1281"_" to 4.0 r1282"_ -write -yes
:skiplist
if /i %OSCupdateitems% GTR 0 (set OSClib=*) & (set OSCmode=update)
::after oscwii.org is updated the next 2 lines can be removed
if /i "%usbgx%" EQU "*" if exist "temp\contents\usbloader_gx.oscmeta" del "temp\contents\usbloader_gx.oscmeta">nul
if /i "%usbgx%" EQU "*" if /i %OSCupdateitems% EQU 1 set OSClib=
echo.
::HBAS
set /a HBASupdateitems=0
if exist temp\HBASupdateList.txt del temp\HBASupdateList.txt>nul
if exist temp\HBAScountCurrent.txt del temp\HBAScountCurrent.txt>nul
if exist temp\HBAScountSkip.txt del temp\HBAScountSkip.txt>nul
set HBASmode=list
if exist "%DRIVE%\wiiu" call support\subscripts\HBAS.bat
::line count, count lines, if only 1 then don't show
set /a HBASupdateitems=0
if not exist temp\HBASupdateList.txt goto:skiplist
for /f %%a in (temp\HBASupdateList.txt) do set /a HBASupdateitems+=1
::echo %HBASupdateitems%
:skiplist
if /i %HBASupdateitems% GTR 0 (set HBASlib=*) & (set HBASmode=update)
echo.
::OSC+HBAS
set /a updateitems=%OSCupdateitems%+%HBASupdateitems%
::OTHER UPDATE ITEMS
set SkipUpdateReturnTo=
if exist "%DRIVE%\wiiu" (echo Checking for Other WiiU App updates...) & (echo.)
if exist "temp\OTHERupdateList.txt" del "temp\OTHERupdateList.txt">nul
set /a OtherUpdateItems=0
:NanddumperCHECK
set name=Nanddumper
set path1=wiiu\payloads\nanddumper\
set filename=payload.elf
set md5=
call support\subscripts\OtherUpdateCheck.bat
if /i "%SkipUpdateReturnTo%" EQU "SkipUpdateSettings" goto:SkipUpdateSettings
:EnvironmentLoaderCHECK
set name=EnvironmentLoader
set path1=wiiu\payloads\default\
set filename=payload.elf
call support\subscripts\OtherUpdateCheck.bat
if /i "%SkipUpdateReturnTo%" EQU "SkipUpdateSettings" goto:SkipUpdateSettings
:Wiiload PluginCHECK
set name=Wiiload Plugin
set path1=wiiu\environments\aroma\plugins\
set filename=wiiload.wps
call support\subscripts\OtherUpdateCheck.bat
if /i "%SkipUpdateReturnTo%" EQU "SkipUpdateSettings" goto:SkipUpdateSettings
:FTPiiU PluginCHECK
set name=FTPiiU Plugin
set path1=wiiu\environments\aroma\plugins\
set filename=ftpiiu.wps
call support\subscripts\OtherUpdateCheck.bat
if /i "%SkipUpdateReturnTo%" EQU "SkipUpdateSettings" goto:SkipUpdateSettings
:AromaCHECK
set name=Aroma
set path1=wiiu\environments\aroma\
set filename=root.rpx
set md5=
if not exist "%Drive%\%path1%%filename%" goto:skip
::check settings_skipped_apps.txt
if not exist Support\settings_skipped_apps.txt goto:NoUpdateSettings
findStr /I /C:"'%name%'" "Support\settings_skipped_apps.txt" >nul
IF ERRORLEVEL 1 goto:NoUpdateSettings
support\sfk echo %name% Detected, [%yellowtext%]skipping update check [def]as per ModMii settings...
goto:skip
:NoUpdateSettings
echo %name% Detected, checking for updates...
echo.
if not exist "%homedrive%\Windows\System32\certutil.exe" (echo certutil.exe missing, unable to check if up to date, skipping...) & (@ping 127.0.0.1 -n 2 -w 1000> nul) & (goto:skip)
if not exist "temp\check_versions.date" goto:nodatecheck
if not exist "temp\check_versions.txt" goto:nodatecheck
findStr /I /C:"%date%" "temp\check_versions.date" >nul
IF not ERRORLEVEL 1 goto:skipcheck_versions
:nodatecheck
support\wget --no-check-certificate -t 3 "https://aroma.foryour.cafe/api/check_versions" -O temp\check_versions.txt -q
::delete if file is empty
>nul findstr "^" "temp\check_versions.txt" || del "temp\check_versions.txt"
if exist "temp\check_versions.txt" (echo %date% >temp\check_versions.date) & (goto:skipcheck_versions)
::error
echo Unable to check if up to date, skipping...
@ping 127.0.0.1 -n 2 -w 1000> nul
goto:skip
:skipcheck_versions
if exist "temp\%name%.txt" del "temp\%name%.txt">nul
::add line breaks
support\sfk filter -spat "temp\check_versions.txt" -rep _,_\n_ +filter -spat -cut "*" to "\x22name\x22:\x22%name%\x22" +filter -spat -cut "\x22id\x22:\x22aroma-plugins\x22" to "*" -+"\x22path\x22:\x22wiiu/apps/" -+"\x22path\x22:\x22wiiu/environments/aroma/" -+"\x22sha1\x22" -rep _\x22__ -rep _*:__ -rep _[__ -rep _]__ -rep _{__ -rep _}__ -rep _/_\_ +filter -unique >"temp\%name%.txt"
::delete if file is empty
>nul findstr "^" "temp\%name%.txt" || del "temp\%name%.txt"
if not exist temp\%name%.txt goto:skip
::Loop through the following once for EACH line in *.txt
for /F "tokens=*" %%A in (temp\%name%.txt) do call :Aromalist %%A
goto:skip
:Aromalist
set line=%*
if /i "%line:~0,5%" EQU "wiiu\" (set "AromaPart=%line%") & (goto:EOF)
set "md5=%line%"
::echo "%Drive%\%AromaPart%"
::echo "%md5%"
::update even if missing files so long as wiiu\environments\aroma\root.rpx exists
if not exist "%Drive%\%AromaPart%" goto:failcheck
certutil -hashfile "%Drive%\%AromaPart%" SHA1>"temp\sha1.txt"
findStr /I /B /C:"%md5%" "temp\sha1.txt" >nul
IF NOT ERRORLEVEL 1 goto:EOF
:failcheck
set /a OtherUpdateItems=%OtherUpdateItems%+1
set /a updateitems=%updateitems%+1
echo %name%>>temp\OTHERupdateList.txt
set Aroma=*
::goto:skip
:skip
if /i "%SkipUpdateReturnTo%" EQU "SkipUpdateSettings" goto:SkipUpdateSettings
::if exist "%DRIVE%\txtcodes\" (SET /a updateitems=%updateitems%+1) & (set CheatZip=*)
::PC Apps... disabled for now
goto:skip
:::::::::
set "DrivePC=%Drive%"
if /i "%PCSAVE%" EQU "Local" set DrivePC=Program Files
if /i "%PCSAVE%" NEQ "Auto" goto:skip
if /i "%Homedrive%" EQU "%ModMiiDrive%" set DrivePC=Program Files
:skip
::if exist "%DrivePC%\OpenShopChannel\" (SET /a updateitems=%updateitems%+1) & (set OSC=*)
::if exist "%DrivePC%\Dolphin-x64\" (SET /a updateitems=%updateitems%+1) & (set Dolphin=*)
::goto:nextpage
:nextpage
set SkipUpdateReturnTo=
if /i "%cleanitems%" NEQ "0" goto:FileCleanup2
if /i "%updateitems%" NEQ "0" goto:FileCleanup2
cls
echo ModMii v%currentversion%
echo by XFlak
echo.
echo.
echo FILE CLEANUP and APP UPDATER
echo.
echo.
echo No Files to Update or to Clean Found in "%DRIVE%"
echo.
if /i "%CLEANcountSkip%" NEQ "0" support\sfk echo -spat \x20 \x20 [%yellowtext%] %CLEANcountSkip% detected items skipped from Clean Up checks as per Settings
if /i "%OSCupdateitems%" EQU "0" goto:skip
if not exist temp\OSCcountCurrent.txt goto:skip
set /p OSCcountCurrent= <temp\OSCcountCurrent.txt
set /p OSCcountSkip= <temp\OSCcountSkip.txt
set "OSCcountCurrent=%OSCcountCurrent:~0,-1%"
set "OSCcountSkip=%OSCcountSkip:~0,-1%"
echo %OSCcountCurrent% OSC Wii apps were checked for updates
if /i "%OSCcountSkip%" EQU "0" goto:skip
if exist Support\settings_skipped_apps.txt support\sfk echo -spat \x20 \x20 [%yellowtext%] %OSCcountSkip% detected OSC Wii apps skipped update checks as per Settings
if not exist Support\settings_skipped_apps.txt support\sfk echo -spat \x20 \x20 [%yellowtext%] %OSCcountSkip% detected OSC Wii apps skipped update checks
:skip
if /i "%HBASupdateitems%" EQU "0" goto:skip
if not exist temp\HBAScountCurrent.txt goto:skip
set /p HBAScountCurrent= <temp\HBAScountCurrent.txt
set /p HBAScountSkip= <temp\HBAScountSkip.txt
set "HBAScountCurrent=%HBAScountCurrent:~0,-1%"
set "HBAScountSkip=%HBAScountSkip:~0,-1%"
echo %HBAScountCurrent% HBAS WiiU apps were checked for updates
if /i "%HBAScountSkip%" EQU "0" goto:skip
if exist Support\settings_skipped_apps.txt support\sfk echo -spat \x20 \x20 [%yellowtext%] %HBAScountSkip% detected HBAS WiiU apps skipped update checks as per Settings
if not exist Support\settings_skipped_apps.txt support\sfk echo -spat \x20 \x20 [%yellowtext%] %HBAScountSkip% detected HBAS WiiU apps skipped update checks
:skip
if not exist "%Drive%\wiiu\environments\aroma\root.rpx" goto:skip
::check settings_skipped_apps.txt
if not exist Support\settings_skipped_apps.txt goto:NoUpdateSettings
findStr /I /C:"'Aroma'" "Support\settings_skipped_apps.txt" >nul
IF NOT ERRORLEVEL 1 (echo Aroma update check skipped as per Settings) & (goto:skip)
:NoUpdateSettings
if /i "%Aroma%" NEQ "*" echo Aroma was confirmed to already be up to date
:skip
if not exist "%Drive%\wiiu\payloads\nanddumper\payload.elf" goto:skip
::check settings_skipped_apps.txt
if not exist Support\settings_skipped_apps.txt goto:NoUpdateSettings
findStr /I /C:"'Nanddumper'" "Support\settings_skipped_apps.txt" >nul
IF NOT ERRORLEVEL 1 (echo Nanddumper update check skipped as per Settings) & (goto:skip)
:NoUpdateSettings
if /i "%Nanddumper%" NEQ "*" echo Nanddumper was confirmed to already be up to date
:skip
if not exist "%Drive%\wiiu\payloads\default\payload.elf" goto:skip
::check settings_skipped_apps.txt
if not exist Support\settings_skipped_apps.txt goto:NoUpdateSettings
findStr /I /C:"'EnvironmentLoader'" "Support\settings_skipped_apps.txt" >nul
IF NOT ERRORLEVEL 1 (echo EnvironmentLoader update check skipped as per Settings) & (goto:skip)
:NoUpdateSettings
if /i "%EnvironmentLoader%" NEQ "*" echo EnvironmentLoader was confirmed to already be up to date
:skip
if not exist "%Drive%\wiiu\environments\aroma\plugins\wiiload.wps" goto:skip
::check settings_skipped_apps.txt
if not exist Support\settings_skipped_apps.txt goto:NoUpdateSettings
findStr /I /C:"'Wiiload Plugin'" "Support\settings_skipped_apps.txt" >nul
IF NOT ERRORLEVEL 1 (echo Wiiload Plugin update check skipped as per Settings) & (goto:skip)
:NoUpdateSettings
if /i "%Wiiload Plugin%" NEQ "*" echo Wiiload Plugin was confirmed to already be up to date
:skip
if not exist "%Drive%\wiiu\environments\aroma\plugins\ftpiiu.wps" goto:skip
::check settings_skipped_apps.txt
if not exist Support\settings_skipped_apps.txt goto:NoUpdateSettings
findStr /I /C:"'FTPiiU Plugin'" "Support\settings_skipped_apps.txt" >nul
IF NOT ERRORLEVEL 1 (echo FTPiiU Plugin update check skipped as per Settings) & (goto:skip)
:NoUpdateSettings
if /i "%FTPiiU Plugin%" NEQ "*" echo FTPiiU Plugin was confirmed to already be up to date
:skip
echo.
echo Press any key to return to the Main Menu.
pause>nul
goto:MENU
:FileCleanup2
cls
set clean=
echo ModMii v%currentversion%
echo by XFlak
echo.
echo FILE CLEANUP and APP UPDATER
echo.
echo Checked files saved to: "%DRIVE%"
echo.
if /i "%CLEANcountSkip%" NEQ "0" support\sfk echo -spat \x20 \x20 \x20 [%yellowtext%] %CLEANcountSkip% detected items skipped from Clean Up checks as per Settings
if not exist temp\OSCcountCurrent.txt goto:skip
set /p OSCcountCurrent= <temp\OSCcountCurrent.txt
set /p OSCcountSkip= <temp\OSCcountSkip.txt
set "OSCcountCurrent=%OSCcountCurrent:~0,-1%"
set "OSCcountSkip=%OSCcountSkip:~0,-1%"
if /i "%OSCcountCurrent%" NEQ "0" echo %OSCcountCurrent% OSC Wii apps were confirmed to already be up to date (or newer)
if /i "%OSCcountSkip%" EQU "0" goto:skip
if exist Support\settings_skipped_apps.txt support\sfk echo -spat \x20 \x20 \x20 [%yellowtext%] %OSCcountSkip% detected OSC Wii apps skipped update checks as per Settings
if not exist Support\settings_skipped_apps.txt support\sfk echo -spat \x20 \x20 \x20 [%yellowtext%] %OSCcountSkip% detected OSC Wii apps skipped update checks
:skip
if not exist temp\HBAScountCurrent.txt goto:skip
set /p HBAScountCurrent= <temp\HBAScountCurrent.txt
set /p HBAScountSkip= <temp\HBAScountSkip.txt
set "HBAScountCurrent=%HBAScountCurrent:~0,-1%"
set "HBAScountSkip=%HBAScountSkip:~0,-1%"
if /i "%HBAScountCurrent%" NEQ "0" echo %HBAScountCurrent% HBAS WiiU apps were confirmed to already be up to date (or newer)
if /i "%HBAScountSkip%" EQU "0" goto:skip
if exist Support\settings_skipped_apps.txt support\sfk echo -spat \x20 \x20 \x20 [%yellowtext%] %HBAScountSkip% detected HBAS WiiU apps skipped update checks as per Settings
if not exist Support\settings_skipped_apps.txt support\sfk echo -spat \x20 \x20 \x20 [%yellowtext%] %HBAScountSkip% detected HBAS WiiU apps skipped update checks
:skip
if not exist "%Drive%\wiiu\environments\aroma\root.rpx" goto:skip
::check settings_skipped_apps.txt
if not exist Support\settings_skipped_apps.txt goto:NoUpdateSettings
findStr /I /C:"'Aroma'" "Support\settings_skipped_apps.txt" >nul
IF NOT ERRORLEVEL 1 (echo Aroma update check skipped as per Settings) & (goto:skip)
:NoUpdateSettings
if /i "%Aroma%" NEQ "*" echo Aroma was confirmed to already be up to date
:skip
if not exist "%Drive%\wiiu\payloads\nanddumper\payload.elf" goto:skip
::check settings_skipped_apps.txt
if not exist Support\settings_skipped_apps.txt goto:NoUpdateSettings
findStr /I /C:"'Nanddumper'" "Support\settings_skipped_apps.txt" >nul
IF NOT ERRORLEVEL 1 (echo Nanddumper update check skipped as per Settings) & (goto:skip)
:NoUpdateSettings
if /i "%Nanddumper%" NEQ "*" echo Nanddumper was confirmed to already be up to date
:skip
if not exist "%Drive%\wiiu\payloads\default\payload.elf" goto:skip
::check settings_skipped_apps.txt
if not exist Support\settings_skipped_apps.txt goto:NoUpdateSettings
findStr /I /C:"'EnvironmentLoader'" "Support\settings_skipped_apps.txt" >nul
IF NOT ERRORLEVEL 1 (echo EnvironmentLoader update check skipped as per Settings) & (goto:skip)
:NoUpdateSettings
if /i "%EnvironmentLoader%" NEQ "*" echo EnvironmentLoader was confirmed to already be up to date
:skip
if not exist "%Drive%\wiiu\environments\aroma\plugins\wiiload.wps" goto:skip
::check settings_skipped_apps.txt
if not exist Support\settings_skipped_apps.txt goto:NoUpdateSettings
findStr /I /C:"'Wiiload Plugin'" "Support\settings_skipped_apps.txt" >nul
IF NOT ERRORLEVEL 1 (echo Wiiload Plugin update check skipped as per Settings) & (goto:skip)
:NoUpdateSettings
if /i "%Wiiload Plugin%" NEQ "*" echo Wiiload Plugin was confirmed to already be up to date
:skip
if not exist "%Drive%\wiiu\environments\aroma\plugins\ftpiiu.wps" goto:skip
::check settings_skipped_apps.txt
if not exist Support\settings_skipped_apps.txt goto:NoUpdateSettings
findStr /I /C:"'FTPiiU Plugin'" "Support\settings_skipped_apps.txt" >nul
IF NOT ERRORLEVEL 1 (echo FTPiiU Plugin update check skipped as per Settings) & (goto:skip)
:NoUpdateSettings
if /i "%FTPiiU Plugin%" NEQ "*" echo FTPiiU Plugin was confirmed to already be up to date
:skip
echo.
if /i "%updateitems%" EQU "0" (echo No Apps to Update Found) & (echo.) & (goto:noupdates)
support\sfk echo -spat \x20 \x20 \x20 [%greentext%] Update the following %updateitems% items?
echo.
set updateitems=0
if not exist temp\OSCupdateList.txt goto:quickskip
::Loop through the following once for EACH line in *.txt
for /F "tokens=*" %%A in (temp\OSCupdateList.txt) do call :OSClist %%A
goto:quickskip
:OSClist
set /a updateitems=%updateitems%+1
support\sfk echo -spat \x20 \x20 \x20 [%greentext%] %updateitems%: [def]%*
goto:EOF
:quickskip
::set updateitems=0
if not exist temp\HBASupdateList.txt goto:quickskip
::Loop through the following once for EACH line in *.txt
for /F "tokens=*" %%A in (temp\HBASupdateList.txt) do call :HBASlist %%A
goto:quickskip
:HBASlist
set /a updateitems=%updateitems%+1
support\sfk echo -spat \x20 \x20 \x20 [%greentext%] %updateitems%: [def]%*
goto:EOF
:quickskip
::set updateitems=0
if not exist temp\OTHERupdateList.txt goto:quickskip
::Loop through the following once for EACH line in *.txt
for /F "tokens=*" %%A in (temp\OTHERupdateList.txt) do call :OTHERlist %%A
goto:quickskip
:OTHERlist
set /a updateitems=%updateitems%+1
support\sfk echo -spat \x20 \x20 \x20 [%greentext%] %updateitems%: [def]%*: update available
goto:EOF
:quickskip
::if /i "%Dolphin%" EQU "*" support\sfk echo -spat \x20 \x20 \x20 [%greentext%] \x2b [def]Dolphin (Wii Emulator)
::if /i "%CheatZip%" EQU "*" support\sfk echo -spat \x20 \x20 \x20 [%greentext%] \x2b [def]Cheat Codes (txtcodes)
::if /i "%OSC%" EQU "*" support\sfk echo -spat \x20 \x20 \x20 [%greentext%] \x2b [def]Open Shop Channel
echo.
:noupdates
if /i "%cleanitems%" EQU "0" (echo No Files to Clean Found) & (echo.) & (goto:noFileCleanup)
support\sfk echo -spat \x20 \x20 \x20 [%redtext%] File Cleanup; delete the following %cleanitems% items?
echo.
echo After you are finished modding your Wii you can delete certain files to free
echo up space and ensure no one can access potentially dangerous apps on your Wii.
echo.
echo Note: Instead of deleting Wii\vWii apps, you can move them to a Locked Folder
echo in the HBC (downloadable via ModMii's Download Page 2).
set "listitems=%updateitems%"
set cleanitems=0
if not exist temp\CleanItems.txt goto:quickskip
::Loop through the following once for EACH line in *.txt
for /F "tokens=*" %%A in (temp\CleanItems.txt) do call :Cleanlist %%A
goto:quickskip
:Cleanlist
set /a cleanitems+=1
set /a listitems+=1
support\sfk echo -spat -noline \n\x20 \x20 \x20 [%Redtext%] %listitems%:\x20
support\sfk echo -noline %*
goto:EOF
:quickskip
echo.
echo.
echo Note: All the above files, with the possible exception of custom WADs,
echo can be retrieved again later using ModMii or other sources
::if exist "%DRIVE%"\bootmii echo.
::if exist "%DRIVE%"\bootmii echo * bootmii folder will be renamed bootmii_off during cleanup; To access
::if exist "%DRIVE%"\bootmii echo bootmii in the future make sure it is named "bootmii" and on your SD Card
:noFileCleanup
echo.
if /i "%updateitems%" NEQ "0" support\sfk echo -spat \x20 \x20 \x20 [%greentext%] U = Update; [def]grab latest versions of detected outdated apps
if /i "%cleanitems%" EQU "0" goto:skip
support\sfk echo -spat \x20 \x20 \x20 [%redtext%]FC = File Cleanup; [def]Remove un-needed files after Modding
if /i "%updateitems%" NEQ "0" echo B = Both; Update Check and File Cleanup
:skip
if /i "%listitems%" EQU "0" goto:noItems
support\sfk echo -spat \x20 \x20 \x20 [%cyantext%] \x23 [def]= Enter an app number to skip checks for it now and in the future
support\sfk echo -spat \x20 \x20 \x20 [%cyantext%]\x23\x2d [def]= Same as above followed by \x2d to skip checks just this once
:noItems
if exist Support\settings_skipped_apps.txt support\sfk echo -spat \x20 \x20 \x20 [%yellowtext%] S = Settings [def]for apps skipping update checks
echo M = Main Menu
echo.
::RESTORE DRIVE SETTINGS (if switched temporarily to DRIVEU)
set "DRIVETEMP=%DRIVE%"
if not "%REALDRIVE%"=="" set "DRIVE=%REALDRIVE%"
if "%clean%"=="" set clean="
set /p clean=Enter Selection Here:
set "clean=%clean:"=%"
::REVERT DRIVE SETTINGS
set "DRIVE=%DRIVETEMP%"
if "%clean%"=="" goto:badkey
if /i "%clean%" EQU "M" goto:MENU
if /i "%cleanitems%" EQU "0" goto:skip
if /i "%clean%" EQU "FC" goto:cleannow
:skip
if not exist Support\settings_skipped_apps.txt goto:NoUpdateSettings
if /i "%clean%" EQU "S" goto:SkipUpdateSettings
:NoUpdateSettings
if /i "%updateitems%" EQU "0" goto:skip
if /i "%clean%" EQU "U" (set AUSKIP=OFF) & (set BACKB4QUEUE=FileCleanup2) & (goto:DLCOUNT)
if /i "%cleanitems%" EQU "0" goto:skip
if /i "%clean%" NEQ "B" goto:skip
::both
set AUSKIP=OFF
::if exist "%DRIVE%\apps\wiixplorer\" (SET /a updateitems=%updateitems%-1) & (set WIIX=)
::if exist "%DRIVE%\apps\homebrew_browser\" (SET /a updateitems=%updateitems%-1) & (set HBB=)
::if exist "%DRIVE%\apps\Priiloader\" (SET /a updateitems=%updateitems%-1) & (set Pri=)
if /i "%updateitems%" EQU "0" set clean=FC
goto:cleannow
:skip
if /i "%listitems%" EQU "0" goto:skipRemoval
set persist=y
if /i "%clean:~-1%" EQU "-" (set persist=) & (set "clean=%clean:~0,-1%")
if %clean% LSS 1 goto:badkey
if %clean% GTR %listitems% goto:badkey
if %clean% GTR %updateitems% goto:CleanRemoval
set /a OSCandHBASitems=%OSCupdateitems%+%HBASupdateitems%
if %clean% GTR %OSCandHBASitems% goto:OTHERremoval
if %clean% GTR %OSCupdateitems% goto:HBASremoval
::OSC removal
set /a OSCcountSkip=%OSCcountSkip%+1
echo %OSCcountSkip% >temp\OSCcountSkip.txt
dir "temp\contents\*.oscmeta" /b>temp\list.txt
set linenum=0
::Loop through the following once for EACH line in *.txt
for /F "tokens=*" %%A in (temp\list.txt) do call :processOSClist2 %%A
goto:skipRemoval
:processOSClist2
set CurrentApp=%*
set CurrentApp=%CurrentApp:~0,-8%
set /a linenum=%linenum%+1
if /i "%linenum%" NEQ "%clean%" goto:EOF
::remove current app
SET /a updateitems=%updateitems%-1
SET /a OSCupdateitems=%OSCupdateitems%-1
support\sfk filter "temp\OSCupdateList.txt" -ls!"%CurrentApp%: " -write -yes>nul
del "temp\contents\%CurrentApp%.oscmeta">nul
if "%persist%"=="" goto:FileCleanup2
if exist "%DRIVE%\apps\%CurrentApp%\" echo If this file is saved to an app's folder ModMii will not check it for updates>"%DRIVE%\apps\%CurrentApp%\SkipModMiiUpdates.txt"
echo :%CurrentApp%:>>Support\settings_skipped_apps.txt
support\sfk filter "Support\settings_skipped_apps.txt" -unique -no-empty-lines -no-blank-lines -write -yes>nul
sort Support\settings_skipped_apps.txt /o Support\settings_skipped_apps.txt
goto:FileCleanup2
::HBAS removal
:HBASremoval
set /a HBAScountSkip=%HBAScountSkip%+1
echo %HBAScountSkip% >temp\HBAScountSkip.txt
::add lines from OSCupdateitems
set "linenum=%OSCupdateitems%"
::Loop through the following once for EACH line in *.txt
for /F "tokens=*" %%A in (temp\HBASname.txt) do call :processHBASlist2 %%A
goto:skipRemoval
:processHBASlist2
set WiiUappName=%*
set WiiUappName=%WiiUappName:~1,-1%
set /a linenum=%linenum%+1
if /i "%linenum%" NEQ "%clean%" goto:EOF
::get %CurrentApp%
set "CurrentApp=%WiiUappName%"
::snip manifest.install from repo.summary
if exist temp\HBASmanifest.install del temp\HBASmanifest.install>nul
support\sfk filter -spat -quiet "temp\repo.summary" -cut "*" to "\x22%WiiUappName%\x22:" -rep _"\x22, "__ -rep _"\x22"__ -rep _"*U:"_"U:"_ -rep _"*G:"_"G:"_ -rep _"*L:"_"L:"_ +filter -cut "]," to "*" >temp\HBASmanifest.install
findStr /I /C:"/meta.xml" "temp\HBASmanifest.install" >nul
IF ERRORLEVEL 1 goto:skipmeta
support\sfk filter -quiet -spat "temp\HBASmanifest.install" -+"meta.xml" -rep _"*: "__ -rep _/_\_ -rep _"\meta.xml*"__ -rep _"*\x5c"__ >temp\temp.txt
set /p CurrentApp= <temp\temp.txt
if exist temp\temp.txt del temp\temp.txt >nul
:skipmeta
::remove current app
SET /a updateitems=%updateitems%-1
SET /a HBASupdateitems=%HBASupdateitems%-1
support\sfk filter -quiet "temp\HBASupdateList.txt" -ls!"%WiiUappName%: " -write -yes
support\sfk filter -spat -quiet "temp\HBASname.txt" -le!"\x3f%WiiUappName%\x3f" -write -yes
if "%persist%"=="" goto:FileCleanup2
if exist "%DRIVE%\wiiu\apps\%CurrentApp%\" echo If this file is saved to an app's folder ModMii will not check it for updates>"%DRIVE%\wiiu\apps\%CurrentApp%\SkipModMiiUpdates.txt"
echo ?%WiiUappName%?>>Support\settings_skipped_apps.txt
support\sfk filter "Support\settings_skipped_apps.txt" -unique -no-empty-lines -no-blank-lines -write -yes>nul
sort Support\settings_skipped_apps.txt /o Support\settings_skipped_apps.txt
goto:FileCleanup2
::OTHER removal
:OTHERremoval
::add lines from OSCupdateitems & HBASupdateitems
set "linenum=%OSCandHBASitems%"
::Loop through the following once for EACH line in *.txt
for /F "tokens=*" %%A in (temp\OTHERupdateList.txt) do call :processOTHERlist %%A
goto:skipRemoval
:processOTHERlist
set OTHERappName=%*
set /a linenum=%linenum%+1
if /i "%linenum%" NEQ "%clean%" goto:EOF
::remove current app
SET /a updateitems=%updateitems%-1
SET /a OTHERupdateitems=%OTHERupdateitems%-1
support\sfk filter "temp\OTHERupdateList.txt" -ls!"%OTHERappName%" -write -yes>nul
echo set %OTHERappName%=>temp\temp.bat
call temp\temp.bat
if "%persist%"=="" goto:FileCleanup2
echo '%OTHERappName%'>>Support\settings_skipped_apps.txt
support\sfk filter "Support\settings_skipped_apps.txt" -unique -no-empty-lines -no-blank-lines -write -yes>nul
sort Support\settings_skipped_apps.txt /o Support\settings_skipped_apps.txt
goto:FileCleanup2
:CleanRemoval
::add lines from OSCupdateitems & HBASupdateitems
set "linenum=%updateitems%"
::Loop through the following once for EACH line in *.txt
for /F "tokens=*" %%A in (temp\CleanItems.txt) do call :processCleanlist3 %%A
goto:skipRemoval
:processCleanlist3
set CleanItem=%*
set /a linenum=%linenum%+1
if /i "%linenum%" NEQ "%clean%" goto:EOF
::remove current app
SET /a cleanitems=%cleanitems%-1
support\sfk filter "temp\CleanItems.txt" -le!"%CleanItem%" -write -yes>nul
set /a CLEANcountSkip+=1
if "%persist%"=="" goto:FileCleanup2
echo %CleanItem% >>Support\settings_skipped_apps.txt
support\sfk filter -quiet Support\settings_skipped_apps.txt -lerep _" "__ -write -yes
support\sfk filter "Support\settings_skipped_apps.txt" -unique -no-empty-lines -no-blank-lines -write -yes>nul
sort Support\settings_skipped_apps.txt /o Support\settings_skipped_apps.txt
goto:FileCleanup2
:skipRemoval
:badkey
echo You Have Entered an Incorrect Key
@ping 127.0.0.1 -n 2 -w 1000> nul
goto:FileCleanup2
:SkipUpdateSettings
set RestoreUpdate=
if exist "temp\contents_\" rd /s /q temp\contents_
cls
echo ModMii v%currentversion%
echo by XFlak
echo.
echo.
echo The following apps will be skipped from ModMii's App Updater functions
echo and also from OSC\HBAS Complete App Library Downloads:
echo.
echo Any "Clean Content" items will be skipped from ModMii's File Cleanup functions
echo.
set SkipUpdateNum=0
if not exist Support\settings_skipped_apps.txt goto:quickskip
::Loop through the following once for EACH line in *.txt
for /F "tokens=*" %%A in (Support\settings_skipped_apps.txt) do call :SkipUpdateList %%A
goto:quickskip
:SkipUpdateList
set CurrentApp=%*
if /i "%CurrentApp:~0,1%" EQU ":" set AppType=OSC
if /i "%CurrentApp:~0,1%" EQU "?" set AppType=HBAS
if /i "%CurrentApp:~0,1%" EQU "'" set AppType=Other
if /i "%CurrentApp:~0,1%" EQU "\" set AppType=Clean
::strip out colons before and after app name
if /i "%AppType%" NEQ "Clean" set CurrentApp=%CurrentApp:~1,-1%
set /a SkipUpdateNum=%SkipUpdateNum%+1
if /i "%AppType%" NEQ "OSC" goto:notOSC
if not exist "%DRIVE%\apps\%CurrentApp%\" support\sfk echo -spat \x20 \x20 \x20 [%yellowtext%] %SkipUpdateNum%: [def]%AppType% App: %CurrentApp%
if exist "%DRIVE%\apps\%CurrentApp%\" support\sfk echo -spat \x20 \x20 \x20 [%yellowtext%] %SkipUpdateNum%: [def]%AppType% App: %CurrentApp% [%cyantext%](detected on Drive)
if exist "%DRIVE%\apps\%CurrentApp%\" if not exist "%DRIVE%\apps\%CurrentApp%\SkipModMiiUpdates.txt" echo If this file is saved to an app's folder ModMii will not check it for updates>"%DRIVE%\apps\%CurrentApp%\SkipModMiiUpdates.txt"
:notOSC
if /i "%AppType%" NEQ "HBAS" goto:notHBAS
if not exist "%DRIVE%\wiiu\apps\%CurrentApp%\" support\sfk echo -spat \x20 \x20 \x20 [%yellowtext%] %SkipUpdateNum%: [def]%AppType% App: %CurrentApp%
if exist "%DRIVE%\wiiu\apps\%CurrentApp%\" support\sfk echo -spat \x20 \x20 \x20 [%yellowtext%] %SkipUpdateNum%: [def]%AppType% App: %CurrentApp% [%cyantext%](detected on Drive)
if exist "%DRIVE%\wiiu\apps\%CurrentApp%\" if not exist "%DRIVE%\wiiu\apps\%CurrentApp%\SkipModMiiUpdates.txt" echo If this file is saved to an app's folder ModMii will not check it for updates>"%DRIVE%\wiiu\apps\%CurrentApp%\SkipModMiiUpdates.txt"
:notHBAS
if /i "%AppType%" EQU "Other" support\sfk echo -spat \x20 \x20 \x20 [%yellowtext%] %SkipUpdateNum%: [def]%AppType% App: %CurrentApp%
if /i "%AppType%" NEQ "Clean" goto:notClean
if not exist "%DRIVE%%CurrentApp%" goto:NotDetected
findStr /X /C:"%CurrentApp%" "Support\subscripts\GamesaveExploits.txt" >nul
IF ERRORLEVEL 1 goto:Detected
support\sfk md5 "%DRIVE%%CurrentApp%">"temp\CurrentApp.md5"
set /p md5= <"temp\CurrentApp.md5"
findStr /X /C:"%md5%" "Support\subscripts\GamesaveExploits.txt" >nul
IF NOT ERRORLEVEL 1 goto:Detected
:NotDetected
support\sfk echo -spat -noline \x20 \x20 \x20 [%yellowtext%] %SkipUpdateNum%: [def]%AppType% Content:\x20
support\sfk echo -noline %CurrentApp%
support\sfk echo -spat -noline \n
goto:notClean
:Detected
support\sfk echo -spat -noline \x20 \x20 \x20 [%yellowtext%] %SkipUpdateNum%: [def]%AppType% Content:\x20
support\sfk echo -noline %CurrentApp% [%cyantext%](detected on Drive)
support\sfk echo -spat -noline \n
:notClean
goto:EOF
:quickskip
if /i "%SkipUpdateNum%" EQU "0" echo - None
if /i "%SkipUpdateNum%" NEQ "0" (echo.) & (echo If the list above does not detect an HBAS App on your Drive it is not conclusive)
echo.
if /i "%SkipUpdateNum%" NEQ "0" echo # = Enter an app number from above to remove it from the skip list
if /i "%SkipUpdateNum%" NEQ "0" echo R = Remove all apps from skip list
echo D = Default: only skip "Legacy" HBAS apps ^& extra\large RetroArch Cores
echo O = Add more OSC Wii Apps to skip update list
echo H = Add more HBAS WiiU Apps to skip update list
::later maybe add Other Apps (nanddumper, EnvironmentLoader, Aroma, etc.), currently can only be skipped if detected by FC function
echo.
echo B = Back
echo M = Main Menu
echo.
if "%RestoreUpdate%"=="" set RestoreUpdate="
set /p RestoreUpdate=Enter Selection Here:
set "RestoreUpdate=%RestoreUpdate:"=%"
if /i "%RestoreUpdate%" EQU "M" goto:MENU
if /i "%RestoreUpdate%" EQU "O" goto:AddToSkipUpdateSettingsOSC
if /i "%RestoreUpdate%" EQU "H" goto:AddToSkipUpdateSettingsHBAS
if /i "%RestoreUpdate%" NEQ "B" goto:notback
if /i "%MENU1%" EQU "FC" goto:FileCleanup2
if /i "%MENU1%" EQU "O" goto:OPTIONS
:notback
if /i "%RestoreUpdate%" EQU "D" goto:restoreall
if /i "%SkipUpdateNum%" EQU "0" goto:badkey
if /i "%SkipUpdateNum%" NEQ "1" goto:miniskip
if /i "%RestoreUpdate%" EQU "R" set RestoreUpdate=1
:miniskip
if /i "%RestoreUpdate%" NEQ "R" goto:notall
:restoreall
if not exist Support\settings_skipped_apps.txt goto:notall
::Loop through the following once for EACH line in *.txt
for /F "tokens=*" %%A in (Support\settings_skipped_apps.txt) do call :SkipUpdateList3 %%A
goto:quickskip
:SkipUpdateList3
set CurrentApp=%*
::strip out colons before and after app name
set CurrentApp=%CurrentApp:~1,-1%
if exist "%DRIVE%\apps\%CurrentApp%\SkipModMiiUpdates.txt" del "%DRIVE%\apps\%CurrentApp%\SkipModMiiUpdates.txt">nul
::below manually corrects CurrentApp dir name
::::%WiiUappName% :%CurrentApp%
::::Name :app_folder_name (containing meta.xml)
::::"CurrentApp" is WiiUappFolder, e.g. wiiu/apps/<CurrentApp>/meta.xml
set "CurrentAppU=%CurrentApp%"
::CurrentApp overrides where they differ, any new apps added in the future should match
if /i "%CurrentAppU%" EQU "EnvSwap" set "CurrentAppU=_EnvSwap"
if /i "%CurrentAppU%" EQU "CompatTitleInstaller" set "CurrentAppU=compat_installer"
if /i "%CurrentAppU%" EQU "vWii_decaffeinator" set "CurrentAppU=decaffeinator"
if /i "%CurrentAppU%" EQU "Crispy-Doom" set "CurrentAppU=crispy-doom-u"
if /i "%CurrentAppU%" EQU "savemii_inject_mod" set "CurrentAppU=savemii_injectmod"
if /i "%CurrentAppU%" EQU "Trogdor-Reburninated" set "CurrentAppU=Trogdor-RB"
if /i "%CurrentAppU%" EQU "ftpiiu-cbhc" set "CurrentAppU=fpiiu-cbhc"
if /i "%CurrentAppU%" EQU "Simple_SDL_Snake" set "CurrentAppU=SDLSnake"
if /i "%CurrentAppU%" EQU "AM64DSPatcher" set "CurrentAppU=am64ds"
if /i "%CurrentAppU%" EQU "TetrisU" set "CurrentAppU=SDLTetrisU"
if /i "%CurrentAppU%" EQU "yapesdl" set "CurrentAppU=yape"
if /i "%CurrentAppU%" EQU "WiiUScreenshotManager" set "CurrentAppU=ScreenshotManager"
if /i "%CurrentAppU%" EQU "drc-test" set "CurrentAppU=drctest"
if /i "%CurrentAppU%" EQU "Bloopair-Tiramisu" set "CurrentAppU=Bloopair_pair_menu"
if /i "%CurrentAppU%" EQU "controller-test" set "CurrentAppU=controllertest"
if exist "%DRIVE%\wiiu\apps\%CurrentAppU%\SkipModMiiUpdates.txt" del "%DRIVE%\wiiu\apps\%CurrentAppU%\SkipModMiiUpdates.txt">nul
goto:EOF
:quickskip
copy /y NUL "Support\settings_skipped_apps.txt">nul
if /i "%RestoreUpdate%" EQU "D" powershell echo "?100_Boxes_Wiiu?`n?AM64DSPatcher?`n?AocPatcher?`n?asturoids?`n?Bloopair?`n?cave?`n?cbhc?`n?cfwbooter?`n?CHIP8?`n?clock?`n?CloseHBL?`n?controller-test?`n?Crispy-Doom?`n?ddd?`n?diibugger?`n?disc2app?`n?disc2appWUTPort?`n?drc-test?`n?Fake-08?`n?fireplace-nx-wiiu?`n?flappy_bird?`n?flappy_bird_3d?`n?fsdumper?`n?ft2sd?`n?ftpiiu-cbhc?`n?ftpiiu?`n?ftpiiu_everywhere?`n?fuckyoustick?`n?gacubeboy?`n?GamepadTester?`n?gbiine?`n?geckiine?`n?haxchi?`n?HBL_Dpad?`n?hbl2hbc?`n?hid_keyboard_monitor?`n?hidtest?`n?hidtovpad?`n?homebrew_launcher?`n?IOSreboot?`n?iosuotp?`n?jezzballu?`n?keyboard_example?`n?lameIRCU?`n?LiveSynthesisU?`n?loadiine_gx2?`n?loadiine_gx2_y?`n?MegaZeux?`n?menu_sort?`n?Minesweeper_WiiU?`n?mocha?`n?mocha_fat32?`n?mocha_fshax?`n?mocha_sd_access?`n?more_ra_arcade?`n?more_ra_cores?`n?nanddumper?`n?nnupatcher?`n?Opensupaplex?`n?otp2sd?`n?ourloader?`n?PacmanGX2?`n?Pokemini?`n?PokeMiniU?`n?pong?`n?RemotePad?`n?savemii?`n?savemii_inject_mod?`n?saviine?`n?SDcafiine?`n?SDGeckiine?`n?seeprom2sd?`n?shutdown-hbl?`n?sign_c2w_patcher?`n?sigpatcher2HBL?`n?sigpatcher2sysmenu?`n?Simple_SDL_Snake?`n?sm4sh2sd?`n?snake?`n?spacegame?`n?spiik?`n?SuDokuL?`n?swapdrc?`n?swapdrc_lite?`n?swipswapme?`n?TetrisU?`n?tictactoe?`n?tik2sd?`n?timingu?`n?u-paint?`n?Uclick?`n?UFDiine?`n?UselessHomebrew?`n?VidChanger?`n?vwii-compat-installer?`n?vWii-NAND-Restorer?`n?vWii_decaffeinator?`n?WiiAlarmU?`n?wiiu-vnc?`n?wim?`n?wudump?`n?wup_installer_gx2?`n?wup_installer_gx2_mod?`n?wuphax?`n?wupinstaller?`n?wupymod?`n?yapesdl?">Support\settings_skipped_apps.txt
if /i "%MENU1%" EQU "O" goto:OPTIONS
::ask if user wants to rescan for updates
echo.
echo Update checks for all apps will be resumed
:rescan
set rescan="
echo.
echo Would you like to rescan your device for updates? (Y^/N)
echo.
set /p rescan=Enter Selection Here:
set "rescan=%rescan:"=%"
if /i "%rescan%" EQU "Y" goto:FileCleanup
if /i "%rescan%" EQU "N" goto:SkipUpdateSettings
echo You Have Entered an Incorrect Key
::@ping 127.0.0.1 -n 2 -w 1000> nul
goto:rescan
:notall
if /i "%RestoreUpdate%" EQU "D" powershell echo "?100_Boxes_Wiiu?`n?AM64DSPatcher?`n?AocPatcher?`n?asturoids?`n?Bloopair?`n?cave?`n?cbhc?`n?cfwbooter?`n?CHIP8?`n?clock?`n?CloseHBL?`n?controller-test?`n?Crispy-Doom?`n?ddd?`n?diibugger?`n?disc2app?`n?disc2appWUTPort?`n?drc-test?`n?Fake-08?`n?fireplace-nx-wiiu?`n?flappy_bird?`n?flappy_bird_3d?`n?fsdumper?`n?ft2sd?`n?ftpiiu-cbhc?`n?ftpiiu?`n?ftpiiu_everywhere?`n?fuckyoustick?`n?gacubeboy?`n?GamepadTester?`n?gbiine?`n?geckiine?`n?haxchi?`n?HBL_Dpad?`n?hbl2hbc?`n?hid_keyboard_monitor?`n?hidtest?`n?hidtovpad?`n?homebrew_launcher?`n?IOSreboot?`n?iosuotp?`n?jezzballu?`n?keyboard_example?`n?lameIRCU?`n?LiveSynthesisU?`n?loadiine_gx2?`n?loadiine_gx2_y?`n?MegaZeux?`n?menu_sort?`n?Minesweeper_WiiU?`n?mocha?`n?mocha_fat32?`n?mocha_fshax?`n?mocha_sd_access?`n?more_ra_arcade?`n?more_ra_cores?`n?nanddumper?`n?nnupatcher?`n?Opensupaplex?`n?otp2sd?`n?ourloader?`n?PacmanGX2?`n?Pokemini?`n?PokeMiniU?`n?pong?`n?RemotePad?`n?savemii?`n?savemii_inject_mod?`n?saviine?`n?SDcafiine?`n?SDGeckiine?`n?seeprom2sd?`n?shutdown-hbl?`n?sign_c2w_patcher?`n?sigpatcher2HBL?`n?sigpatcher2sysmenu?`n?Simple_SDL_Snake?`n?sm4sh2sd?`n?snake?`n?spacegame?`n?spiik?`n?SuDokuL?`n?swapdrc?`n?swapdrc_lite?`n?swipswapme?`n?TetrisU?`n?tictactoe?`n?tik2sd?`n?timingu?`n?u-paint?`n?Uclick?`n?UFDiine?`n?UselessHomebrew?`n?VidChanger?`n?vwii-compat-installer?`n?vWii-NAND-Restorer?`n?vWii_decaffeinator?`n?WiiAlarmU?`n?wiiu-vnc?`n?wim?`n?wudump?`n?wup_installer_gx2?`n?wup_installer_gx2_mod?`n?wuphax?`n?wupinstaller?`n?wupymod?`n?yapesdl?">Support\settings_skipped_apps.txt
if /i "%RestoreUpdate%" EQU "D" goto:SkipUpdateSettings
if %RestoreUpdate% LSS 1 goto:badkey
if %RestoreUpdate% GTR %SkipUpdateNum% goto:badkey
set "TotalUpdateNum=%SkipUpdateNum%"
set SkipUpdateNum=0
::Loop through the following once for EACH line in *.txt
for /F "tokens=*" %%A in (Support\settings_skipped_apps.txt) do call :SkipUpdateList2 %%A
::goto:quickskip
:SkipUpdateList2
set CurrentApp=%*
if /i "%CurrentApp:~0,1%" EQU ":" set AppType=OSC
if /i "%CurrentApp:~0,1%" EQU "?" set AppType=HBAS
if /i "%CurrentApp:~0,1%" EQU "'" set AppType=Other
if /i "%CurrentApp:~0,1%" EQU "\" set AppType=Clean
::strip out colons before and after app name
if /i "%AppType%" NEQ "Clean" set CurrentApp=%CurrentApp:~1,-1%
set /a SkipUpdateNum=%SkipUpdateNum%+1
if /i "%SkipUpdateNum%" NEQ "%RestoreUpdate%" goto:EOF
::support\sfk filter -spat -quiet "Support\settings_skipped_apps.txt" -le!"\x3a%CurrentApp%\x3a" -le!"\x3f%CurrentApp%\x3f" -le!"\x27%CurrentApp%\x27" -le!"%CurrentApp%" -write -yes
support\sfk filter -quiet "Support\settings_skipped_apps.txt" -le!":%CurrentApp%:" -le!"?%CurrentApp%?" -le!"'%CurrentApp%'" -le!"%CurrentApp%" -write -yes
if exist "%DRIVE%\apps\%CurrentApp%\SkipModMiiUpdates.txt" del "%DRIVE%\apps\%CurrentApp%\SkipModMiiUpdates.txt">nul
::below manually corrects CurrentApp dir name
::::%WiiUappName% :%CurrentApp%
::::Name :app_folder_name (containing meta.xml)
::::"CurrentApp" is WiiUappFolder, e.g. wiiu/apps/<CurrentApp>/meta.xml
set "CurrentAppU=%CurrentApp%"
::CurrentApp overrides where they differ, any new apps added in the future should match
if /i "%CurrentAppU%" EQU "EnvSwap" set "CurrentAppU=_EnvSwap"
if /i "%CurrentAppU%" EQU "CompatTitleInstaller" set "CurrentAppU=compat_installer"
if /i "%CurrentAppU%" EQU "vWii_decaffeinator" set "CurrentAppU=decaffeinator"
if /i "%CurrentAppU%" EQU "Crispy-Doom" set "CurrentAppU=crispy-doom-u"
if /i "%CurrentAppU%" EQU "savemii_inject_mod" set "CurrentAppU=savemii_injectmod"
if /i "%CurrentAppU%" EQU "Trogdor-Reburninated" set "CurrentAppU=Trogdor-RB"
if /i "%CurrentAppU%" EQU "ftpiiu-cbhc" set "CurrentAppU=fpiiu-cbhc"
if /i "%CurrentAppU%" EQU "Simple_SDL_Snake" set "CurrentAppU=SDLSnake"
if /i "%CurrentAppU%" EQU "AM64DSPatcher" set "CurrentAppU=am64ds"
if /i "%CurrentAppU%" EQU "TetrisU" set "CurrentAppU=SDLTetrisU"
if /i "%CurrentAppU%" EQU "yapesdl" set "CurrentAppU=yape"
if /i "%CurrentAppU%" EQU "WiiUScreenshotManager" set "CurrentAppU=ScreenshotManager"
if /i "%CurrentAppU%" EQU "drc-test" set "CurrentAppU=drctest"
if /i "%CurrentAppU%" EQU "Bloopair-Tiramisu" set "CurrentAppU=Bloopair_pair_menu"
if /i "%CurrentAppU%" EQU "controller-test" set "CurrentAppU=controllertest"
if exist "%DRIVE%\wiiu\apps\%CurrentAppU%\SkipModMiiUpdates.txt" del "%DRIVE%\wiiu\apps\%CurrentAppU%\SkipModMiiUpdates.txt">nul
set /a TotalUpdateNum=%TotalUpdateNum%-1
if /i "%TotalUpdateNum%" NEQ "0" goto:miniskip
copy /y NUL "Support\settings_skipped_apps.txt">nul
:miniskip
if /i "%MENU1%" EQU "O" goto:SkipUpdateSettings
if /i "%AppType%" EQU "OSC" goto:OSC1appCheck
if /i "%AppType%" EQU "HBAS" goto:HBAS1appCheck
if /i "%AppType%" EQU "Other" goto:Other1appCheck
if /i "%AppType%" EQU "Clean" (set SkipCleanReturnTo=SkipUpdateSettings) & (goto:FileCleanupPickUp)
goto:SkipUpdateSettings
:Other1appCheck
set SkipUpdateReturnTo=SkipUpdateSettings
goto:%CurrentApp%CHECK
:OSC1appCheck
::OSC single app update check
::if exists, check for update and add back to the list
if not exist "%DRIVE%\apps\%CurrentApp%\" goto:quickskip
echo.
echo %CurrentApp% Detected, checking for updates...
echo.
::copied & modified bits of OSC.bat below
if exist temp\7zalog.txt del temp\7zalog.txt>nul
if exist temp\meta.xml del temp\meta.xml>nul
if exist temp\version.txt del temp\version.txt>nul
set CurrentAppVersion=
set LatestVersion=
::below fixes meta's that have 00 bytes and may make the OHBC 1.1.4 or ModMii crash upon inspecting the meta
support\sfk replace "%DRIVE%\apps\%CurrentApp%\meta.xml" -binary /00// -yes>nul
support\sfk filter -quiet "%DRIVE%\apps\%CurrentApp%\meta.xml" -+"/version" -rep _"*<version>"__ -rep _"</version*"__ >temp\version.txt
set /p CurrentAppVersion= <temp\version.txt
if /i "%CurrentAppVersion:~0,1%" EQU "v" set "CurrentAppVersion=%CurrentAppVersion:~1%"
if exist temp\version.txt del temp\version.txt>nul
if exist temp\meta.xml del temp\meta.xml>nul
if not exist "temp\%CurrentApp%.zip" goto:notcached
if /i "%AUSKIP%" EQU "ON" goto:here
:notcached
::get latest meta version
support\wget --no-check-certificate -t 3 "https://hbb1.oscwii.org/unzipped_apps/%CurrentApp%/apps/%CurrentApp%/meta.xml" -O temp\meta.xml -q
:here
::if cannot find meta online, check if zip cached in temp folder
if exist temp\meta.xml goto:metafound
if exist "temp\%CurrentApp%.zip" support\7za e -aoa "temp\%CurrentApp%.zip" -o"temp" meta.xml -r>nul
if exist temp\meta.xml goto:metafound
::noMetaFound!!
support\sfk echo [%magentatext%] Error checking for update, no internet?
@ping 127.0.0.1 -n 2 -w 1000> nul
goto:SkipUpdateSettings
:metafound
::below fixes meta's that have 00 bytes and may make the OHBC 1.1.4 or ModMii crash upon inspecting the meta
support\sfk replace "temp\meta.xml" -binary /00// -yes>nul
support\sfk filter -quiet "temp\meta.xml" -+"/version" -rep _"*<version>"__ -rep _"</version*"__ >temp\version.txt
set /p LatestVersion= <temp\version.txt
if /i "%LatestVersion:~0,1%" EQU "v" set "LatestVersion=%LatestVersion:~1%"
if exist temp\version.txt del temp\version.txt>nul
if exist temp\meta.xml del temp\meta.xml>nul
if /i "%CurrentAppVersion%" NEQ "%LatestVersion%" goto:notlatest
support\sfk echo [%greentext%]App is up to date
set /a OSCcountCurrent=%OSCcountCurrent%+1
set /a OSCcountSkip=%OSCcountSkip%-1
echo %OSCcountCurrent% >temp\OSCcountCurrent.txt
echo %OSCcountSkip% >temp\OSCcountSkip.txt
@ping 127.0.0.1 -n 2 -w 1000> nul
goto:quickskip
:notlatest
::check for version numbers that are greater
if /i "%CurrentAppVersion%" LSS "9999999999999999999999" (set "CurrentAppVersion=%CurrentAppVersion%") else (goto:notnum)
if /i "%LatestVersion%" LSS "9999999999999999999999" (set "LatestVersion=%LatestVersion%") else (goto:notnum)
::above is not a perfect check for numbers, but serves this purpose well
if /i "%CurrentAppVersion%" LSS "%LatestVersion%" goto:notnum
::found newer version!
support\sfk echo [%greentext%]Detected newer version than on OSC (%CurrentAppVersion% vs %LatestVersion%)
set /a OSCcountCurrent=%OSCcountCurrent%+1
set /a OSCcountSkip=%OSCcountSkip%-1
echo %OSCcountCurrent% >temp\OSCcountCurrent.txt
echo %OSCcountSkip% >temp\OSCcountSkip.txt
@ping 127.0.0.1 -n 2 -w 1000> nul
goto:quickskip
:notnum
::update exists
support\sfk echo [%greentext%]An update is available for %CurrentApp%: from %CurrentAppVersion% to %LatestVersion%
set /a updateitems=%updateitems%+1
set /a OSCupdateitems=%OSCupdateitems%+1
echo %CurrentApp%: update from %CurrentAppVersion% to %LatestVersion%>>temp\OSCupdateList.txt
sort temp\OSCupdateList.txt /o temp\OSCupdateList.txt
echo %CurrentApp% >"temp\contents\%CurrentApp%.oscmeta"
set /a OSCcountSkip=%OSCcountSkip%-1
echo %OSCcountSkip% >temp\OSCcountSkip.txt
@ping 127.0.0.1 -n 2 -w 1000> nul
::goto:EOF
:quickskip
goto:SkipUpdateSettings
:HBAS1appCheck
::HBAS single app update check
::if exists, check for update and add back to the list
if exist "temp\info.json" del "temp\info.json">nul
if exist "temp\manifest.install" del "temp\manifest.install">nul
::to access this part of ModMii it means HBAS.bat was already run in list mode, so files like repo.summary, repo.json and HBASnameNumbered.txt still exist
::warning, here %CurrentApp% is actually %WiiUappName%, switching it back...
set "WiiUappName=%CurrentApp%"
set PriorWiiUappName=
if not exist "temp\HBAS\%WiiUappName%.zip" goto:notcached
if /i "%AUSKIP%" NEQ "ON" goto:notcached
support\7za e -aoa "temp\HBAS\%WiiUappName%.zip" -o"temp" info.json manifest.install -r>nul
if not exist "temp\info.json" goto:notcached
if not exist "temp\manifest.install" goto:notcached
move /y "temp\info.json" "temp\HBASinfo.json">nul
move /y "temp\manifest.install" "temp\HBASmanifest.install">nul
goto:here
:notcached
::snip manifest.install from repo.summary
if exist temp\HBASmanifest.install del temp\HBASmanifest.install>nul
support\sfk filter -spat -quiet "temp\repo.summary" -cut "*" to "\x22%WiiUappName%\x22:" -rep _"\x22, "__ -rep _"\x22"__ -rep _"*U:"_"U:"_ -rep _"*G:"_"G:"_ -rep _"*L:"_"L:"_ +filter -cut "]," to "*" >temp\HBASmanifest.install
::snip info.json from repo.json
if exist temp\HBASinfo.json del temp\HBASinfo.json >nul
if exist temp\temp.txt del temp\temp.txt>nul
set WiiUpriorNum=
findStr /I /C:"?%WiiUappName%?" "temp\HBASnameNumbered.txt">temp\temp.txt
support\sfk filter -quiet "temp\temp.txt" -rep _":?*"__ -write -yes
set /p WiiUpriorNum= <temp\temp.txt
set /a WiiUpriorNum=%WiiUpriorNum%-1
::echo WiiUpriorNum: %WiiUpriorNum%
if exist temp\temp.txt del temp\temp.txt>nul
if /i "%WiiUpriorNum%" EQU "0" (set PriorWiiUappName=) & (goto:skip)
findStr /I /B /C:"%WiiUpriorNum%:" "temp\HBASnameNumbered.txt">temp\temp.txt
support\sfk filter -quiet "temp\temp.txt" -rep _"*:?"__ -write -yes
set /p PriorWiiUappName= <temp\temp.txt
set "PriorWiiUappName=%PriorWiiUappName:~0,-1%"
::echo PriorWiiUappName: %PriorWiiUappName%
if exist temp\temp.txt del temp\temp.txt>nul
:skip
if "%PriorWiiUappName%"=="" support\sfk filter -spat -quiet "temp\repo.json" -cut "*" to "\x22packages\x22: [" +filter -cut- "*" to "{" +filter -cut- "*}," to "*" -rep _"*},*"_"}"_ -rep _"*{"_"{"_ -lsrep _" "__ >temp\HBASinfo.json
if not "%PriorWiiUappName%"=="" support\sfk filter -spat -quiet "temp\repo.json" -cut "*" to "\x22name\x22: \x22%PriorWiiUappName%\x22," +filter -cut- "*" to "{" +filter -cut- "*}," to "*" -rep _"*},*"_"}"_ -rep _"*{"_"{"_ -lsrep _" "__ >temp\HBASinfo.json
:here
set file2check=
findStr /I /C:"/meta.xml" "temp\HBASmanifest.install" >nul
IF ERRORLEVEL 1 goto:skipmeta
::get meta path
support\sfk filter -quiet "temp\HBASmanifest.install" -+"meta.xml" -rep _"*: "__ -rep _/_\_ >temp\temp.txt
set /p file2check= <temp\temp.txt
support\sfk filter -quiet -spat "temp\temp.txt" -rep _"\meta.xml*"__ -rep _"*\x5c"__ -write -yes
::CurrentApp adjusted here
set /p CurrentApp= <temp\temp.txt
if exist temp\temp.txt del temp\temp.txt >nul
:skipmeta
if not "%file2check%"=="" goto:SkipFile2Check
support\sfk filter -spat -quiet "temp\HBASmanifest.install" -!".png\x22" -rep _"*: "__ >temp\temp.txt
set /p file2check= <temp\temp.txt
if exist temp\temp.txt del temp\temp.txt >nul
::echo %file2check%
:SkipFile2Check
if exist "%DRIVE%\%file2check%" goto:exists
::confirmed missing: clean up appstore packages info if applicable and remove from download load list if in list mode
if exist "%DRIVE%\wiiu\apps\appstore\.get\packages\%WiiUappName%\" rd /s /q "%DRIVE%\wiiu\apps\appstore\.get\packages\%WiiUappName%"
goto:SkipUpdateSettings
:exists
echo.
echo %CurrentApp% Detected, checking for updates...
echo.
if exist temp\7zalog.txt del temp\7zalog.txt>nul
if exist temp\meta.xml del temp\meta.xml>nul
if exist temp\version.txt del temp\version.txt>nul
set CurrentAppVersion=
set LatestVersion=
set CachedVersion=nulll
set LatestFiledate=
set Filedate=
set CachedFiledate=
::if meta exists, analyze that, otherwise use dates
if exist "%DRIVE%\wiiu\apps\%CurrentApp%\meta.xml" goto:checkSDmeta
set "ModMiiDir=%cd%"
cd /d "%DRIVE%"
for %%x in (%file2check%) do set filedate=%%~tx
set filedate=%filedate:~3,3%%filedate:~0,3%%filedate:~6,4%
::echo %filedate%
cd /d "%ModMiiDir%"
goto:GetLatestVersion
:checkSDmeta
::below fixes meta's that have 00 bytes and may make the OHBC 1.1.4 or ModMii crash upon inspecting the meta
support\sfk replace "%DRIVE%\wiiu\apps\%CurrentApp%\meta.xml" -binary /00// -yes>nul
support\sfk filter -quiet "%DRIVE%\wiiu\apps\%CurrentApp%\meta.xml" -+"/version" -rep _"*<version>"__ -rep _"</version*"__ -rep _"&"__ >temp\version.txt
set /p CurrentAppVersion= <temp\version.txt
if /i "%CurrentAppVersion:~0,1%" EQU "v" set "CurrentAppVersion=%CurrentAppVersion:~1%"
if exist temp\version.txt del temp\version.txt>nul
:GetLatestVersion
support\sfk filter -spat -quiet "temp\HBASinfo.json" -ls+"*\x22version\x22: \x22" -rep _"*version\x22: \x22"__ -rep _"\x22,*"__ >temp\version.txt
set /p LatestVersion= <temp\version.txt
if /i "%LatestVersion:~0,1%" EQU "v" set "LatestVersion=%LatestVersion:~1%"
if exist temp\version.txt del temp\version.txt>nul
if exist temp\meta.xml del temp\meta.xml>nul
::if CurrentAppVersion is nul (or if Filedate is not nul), get DATE instead
if "%Filedate%"=="" goto:skip
::get date
support\sfk filter -spat -quiet "temp\HBASinfo.json" -ls+"*\x22appCreated\x22: \x22" -rep _"*appCreated\x22: \x22"__ -rep _"\x22,*"__ >temp\temp.txt
set /p LatestFiledate= <temp\temp.txt
if exist temp\temp.txt del temp\temp.txt>nul
::echo Actual Filedate: %Filedate%
::echo Date from repo.json and info.json: %LatestFiledate%
if /i "%Filedate%" EQU "%LatestFiledate%" set "CurrentAppVersion=%LatestVersion%"
:skip
if "%filedate%"=="" goto:miniskip
if "%CurrentAppVersion%"=="" set "CurrentAppVersion=Unknown version: %Filedate%"
:miniskip
if /i "%CurrentAppVersion%" NEQ "%LatestVersion%" goto:notlatest
support\sfk echo [%greentext%]App is up to date
set /a HBAScountCurrent=%HBAScountCurrent%+1
set /a HBAScountSkip=%HBAScountSkip%-1
echo %HBAScountCurrent% >temp\HBAScountCurrent.txt
echo %HBAScountSkip% >temp\HBAScountSkip.txt
if not exist "%DRIVE%\wiiu\apps\appstore\.get\packages\%WiiUappName%" mkdir "%DRIVE%\wiiu\apps\appstore\.get\packages\%WiiUappName%"
if exist "temp\HBASinfo.json" move /y "temp\HBASinfo.json" "%DRIVE%\wiiu\apps\appstore\.get\packages\%WiiUappName%\info.json">nul
if exist "temp\HBASmanifest.install" move /y "temp\HBASmanifest.install" "%DRIVE%\wiiu\apps\appstore\.get\packages\%WiiUappName%\manifest.install">nul
@ping 127.0.0.1 -n 2 -w 1000> nul
goto:SkipUpdateSettings
:notlatest
::check for version numbers that are greater
if /i "%CurrentAppVersion%" LSS "9999999999999999999999" (set "CurrentAppVersion=%CurrentAppVersion%") else (goto:notnum)
if /i "%LatestVersion%" LSS "9999999999999999999999" (set "LatestVersion=%LatestVersion%") else (goto:notnum)
::above is not a perfect check for numbers, but serves this purpose well
if /i "%CurrentAppVersion%" LSS "%LatestVersion%" goto:notnum
::found newer version!
support\sfk echo [%greentext%]Detected newer version than on HBAS (%CurrentAppVersion% vs %LatestVersion%)
set /a HBAScountCurrent=%HBAScountCurrent%+1
set /a HBAScountSkip=%HBAScountSkip%-1
echo %HBAScountCurrent% >temp\HBAScountCurrent.txt
echo %HBAScountSkip% >temp\HBAScountSkip.txt
@ping 127.0.0.1 -n 2 -w 1000> nul
goto:SkipUpdateSettings
:notnum
::check for DATES that are greater
if "%filedate%"=="" goto:notnum
if "%LatestFiledate%"=="" goto:notnum
::convert filedate from dd/mm/yyyy to yyyymmdd
set /a "LatestFiledateFixed=%LatestFiledate:~-4%%LatestFiledate:~3,2%%LatestFiledate:~0,2%"
set /a "filedateFixed=%filedate:~-4%%filedate:~3,2%%filedate:~0,2%"
::add 1 day to filedateFixed to compensate for dif timezones
set y=%filedate:~-4%
set m=%filedate:~3,2%
set d=%filedate:~0,2%
::unpad for :tomorrow to work properly
if /i "%d:~0,1%" EQU "0" set d=%d:~1%
if /i "%m:~0,1%" EQU "0" set m=%m:~1%
:tomorrow
set /a d+=1
if %d% gtr 31 (
set d=1
set /a m+=1
if %m% gtr 12 (
set m=1
set /a y+=1
)
)
xcopy /d:%m%-%d%-%y% /h /l "%~f0" "%~f0\" >nul 2>&1 || goto:tomorrow
::pad m & d to 2 digits if needed
if /i "%d:~1,1%" EQU "" set d=0%d%
if /i "%m:~1,1%" EQU "" set m=0%m%
set /a "filedateFixedp1=%y%%m%%d%"
::echo %filedateFixedp1%
if %filedateFixedp1% LSS %LatestFiledateFixed% goto:notnum
::found newer version!
if %filedateFixedp1% EQU %LatestFiledateFixed% support\sfk echo [%greentext%]App is up to date (actually 1 day older; likely timezone)
if %filedateFixedp1% GTR %LatestFiledateFixed% support\sfk echo [%greentext%]Detected newer version than on HBAS (%filedate% vs %LatestFiledate%)
set /a HBAScountCurrent=%HBAScountCurrent%+1
set /a HBAScountSkip=%HBAScountSkip%-1
echo %HBAScountCurrent% >temp\HBAScountCurrent.txt
echo %HBAScountSkip% >temp\HBAScountSkip.txt
@ping 127.0.0.1 -n 2 -w 1000> nul
goto:SkipUpdateSettings
:notnum
::update exists
support\sfk echo [%greentext%]An update is available for %WiiUappName%: from %CurrentAppVersion% to %LatestVersion%
set /a updateitems=%updateitems%+1
set /a HBASupdateitems=%HBASupdateitems%+1
set /a HBAScountSkip=%HBAScountSkip%-1
echo %HBAScountSkip% >temp\HBAScountSkip.txt
echo %WiiUappName%: update from %CurrentAppVersion% to %LatestVersion%>>temp\HBASupdateList.txt
sort temp\HBASupdateList.txt /o temp\HBASupdateList.txt
echo ?%WiiUappName%?>>temp\HBASname.txt
sort temp\HBASname.txt /o temp\HBASname.txt
@ping 127.0.0.1 -n 2 -w 1000> nul
goto:SkipUpdateSettings
:badkey
echo You Have Entered an Incorrect Key
@ping 127.0.0.1 -n 2 -w 1000> nul
goto:SkipUpdateSettings
:AddToSkipUpdateSettingsOSC
set SkipUpdate=
cls
echo ModMii v%currentversion%
echo by XFlak
echo.
echo.
echo The following OSC Wii Apps will NOT be skipped when checking for updates
echo or when downloading the complete OSC App Library:
echo.
if exist "temp\contents_\" goto:skip
if exist "temp\Apps-master.zip" del "temp\Apps-master.zip">nul
support\wget --no-check-certificate -t 3 "https://codeload.github.com/OpenShopChannel/Apps/zip/refs/heads/master" -O temp\Apps-master.zip -q
if exist temp\Apps-master.zip support\7za e -aoa temp\Apps-master.zip -otemp\contents_ Apps-master\contents\*.oscmeta -r>nul
if exist "temp\contents_" goto:skip
support\sfk echo [%magentatext%] Error retrieving app list, no internet?
@ping 127.0.0.1 -n 2 -w 1000> nul
goto:SkipUpdateSettings
:skip
::set SkipUpdateNum=0
if not exist Support\settings_skipped_apps.txt goto:quickskip
::Loop through the following once for EACH line in *.txt
for /F "tokens=*" %%A in (Support\settings_skipped_apps.txt) do call :SkipUpdateListB %%A
goto:quickskip
:SkipUpdateListB
set CurrentApp=%*
::strip out colons before and after app name
set CurrentApp=%CurrentApp:~1,-1%
::set /a SkipUpdateNum=%SkipUpdateNum%+1
if exist "temp\contents_\%CurrentApp%.oscmeta" del "temp\contents_\%CurrentApp%.oscmeta">nul
goto:EOF
:quickskip
dir "temp\contents_\*.oscmeta" /b>temp\list.txt
set SkipUpdateNum=0
::Loop through the following once for EACH line in *.txt
for /F "tokens=*" %%A in (temp\list.txt) do call :SkipUpdateListC %%A
goto:quickskip2
:SkipUpdateListC
set CurrentApp=%*
set CurrentApp=%CurrentApp:~0,-8%
set /a SkipUpdateNum=%SkipUpdateNum%+1
if not exist "%DRIVE%\apps\%CurrentApp%\" support\sfk echo -spat \x20 \x20 \x20 %SkipUpdateNum%: %CurrentApp%
if exist "%DRIVE%\apps\%CurrentApp%\" support\sfk echo -spat \x20 \x20 \x20 %SkipUpdateNum%: %CurrentApp% [%cyantext%](detected on Drive)
goto:EOF
:quickskip2
if /i "%SkipUpdateNum%" EQU "0" echo - None
echo.
echo # = Enter an app number from above to skip it
echo.
echo B = Back
echo M = Main Menu
echo.
if "%SkipUpdate%"=="" set SkipUpdate="
set /p SkipUpdate=Enter Selection Here:
set "SkipUpdate=%SkipUpdate:"=%"
if /i "%SkipUpdate%" NEQ "M" goto:skip
if exist "temp\contents_\" rd /s /q temp\contents_
goto:MENU
:skip
if /i "%SkipUpdate%" NEQ "B" goto:skip
if exist "temp\contents_\" rd /s /q temp\contents_
goto:SkipUpdateSettings
:skip
if /i "%SkipUpdateNum%" EQU "0" goto:badkey
::if not numeric goto:badkey
for %%A in ("%SkipUpdate%") do (for /f "tokens=1 delims=0123456789" %%B in ("%%~A") do goto:badkey)
::Remove leading zeros
for /f "tokens=* delims=0" %%A in ("%SkipUpdate%") do set "SkipUpdate=%%A"
::Set to 0 if entire input is all zeros
if "%SkipUpdate%"=="" set "SkipUpdate=0"
if %SkipUpdate% LSS 1 goto:badkey
if %SkipUpdate% GTR %SkipUpdateNum% goto:badkey
set "TotalUpdateNum=%SkipUpdateNum%"
set SkipUpdateNum=0
::Loop through the following once for EACH line in *.txt
for /F "tokens=*" %%A in (temp\list.txt) do call :SkipUpdateListC %%A
goto:quickskip
:SkipUpdateListC
set CurrentApp=%*
set CurrentApp=%CurrentApp:~0,-8%
set /a SkipUpdateNum=%SkipUpdateNum%+1
if /i "%SkipUpdateNum%" NEQ "%SkipUpdate%" goto:EOF
if exist "%DRIVE%\apps\%CurrentApp%\" echo If this file is saved to an app's folder ModMii will not check it for updates>"%DRIVE%\apps\%CurrentApp%\SkipModMiiUpdates.txt"
echo :%CurrentApp%:>>Support\settings_skipped_apps.txt
support\sfk filter "Support\settings_skipped_apps.txt" -unique -no-empty-lines -no-blank-lines -write -yes>nul
sort Support\settings_skipped_apps.txt /o Support\settings_skipped_apps.txt
if exist "temp\contents_\%CurrentApp%.oscmeta" del "temp\contents_\%CurrentApp%.oscmeta">nul
::goto:EOF
:quickskip
goto:AddToSkipUpdateSettingsOSC
:badkey
echo You Have Entered an Incorrect Key
@ping 127.0.0.1 -n 2 -w 1000> nul
goto:AddToSkipUpdateSettingsOSC
:AddToSkipUpdateSettingsHBAS
set SkipUpdate=
cls
echo ModMii v%currentversion%
echo by XFlak
echo.
echo.
echo The following HBAS WiiU Apps will NOT be skipped when checking for updates
echo or when downloading the complete HBAS WiiU App Library:
echo.
if exist "temp\HBASname_.txt" goto:skip
support\wget --no-check-certificate -t 3 "https://wiiubru.com/appstore/repo.json" -O temp\repo_.json -q
::surround name in ?'s to avoid partial duplicates
support\sfk filter -spat -quiet "temp\repo_.json" -+"\x22name\x22: \x22" -rep _"*\x22name\x22: \x22"_?_ -rep _"\x22*"_?_ >temp\HBASname_.txt
::sort, cuz why not
sort temp\HBASname_.txt /o temp\HBASname_.txt
if exist "temp\HBASname_.txt" goto:skip
support\sfk echo [%magentatext%] Error retrieving app list, no internet?
@ping 127.0.0.1 -n 2 -w 1000> nul
goto:SkipUpdateSettings
:skip
::set SkipUpdateNum=0
if not exist Support\settings_skipped_apps.txt goto:quickskip
::Loop through the following once for EACH line in *.txt
for /F "tokens=*" %%A in (Support\settings_skipped_apps.txt) do call :SkipUpdateListD %%A
goto:quickskip
:SkipUpdateListD
set WiiUappName=%*
::strip out colons before and after app name
set WiiUappName=%WiiUappName:~1,-1%
::set /a SkipUpdateNum=%SkipUpdateNum%+1
support\sfk filter -spat -quiet "temp\HBASname_.txt" -le!"\x3f%WiiUappName%\x3f" -write -yes
goto:EOF
:quickskip
set SkipUpdateNum=0
::Loop through the following once for EACH line in *.txt
for /F "tokens=*" %%A in (temp\HBASname_.txt) do call :SkipUpdateListE %%A
goto:quickskip2
:SkipUpdateListE
set WiiUappName=%*
set WiiUappName=%WiiUappName:~1,-1%
set /a SkipUpdateNum=%SkipUpdateNum%+1
echo %SkipUpdateNum%: %WiiUappName%
goto:EOF
:quickskip2
if /i "%SkipUpdateNum%" EQU "0" echo - None
echo.
echo # = Enter an app number from above to skip it
echo L = Add all "Legacy" apps to skip list
echo.
echo B = Back
echo M = Main Menu
echo.
if "%SkipUpdate%"=="" set SkipUpdate="
set /p SkipUpdate=Enter Selection Here:
set "SkipUpdate=%SkipUpdate:"=%"
if /i "%SkipUpdate%" NEQ "M" goto:skip
if exist "temp\repo_.json" del "temp\repo_.json">nul
if exist "temp\HBASname_.txt" del "temp\HBASname_.txt">nul
goto:MENU
:skip
if /i "%SkipUpdate%" NEQ "B" goto:skip
if exist "temp\repo_.json" del "temp\repo_.json">nul
if exist "temp\HBASname_.txt" del "temp\HBASname_.txt">nul
goto:SkipUpdateSettings
:skip
if /i "%SkipUpdate%" NEQ "L" goto:skipL
::filter legacy category and surround name in ?'s to avoid partial duplicates
support\sfk filter -spat -quiet "temp\repo_.json" -nocheck -inc "\x22category\x22: \x22legacy\x22" to "\x22name\x22: \x22" -+"\x22name\x22: \x22" -rep _"*\x22name\x22: \x22"_?_ -rep _"\x22*"_?_ >>Support\settings_skipped_apps.txt
support\sfk filter "Support\settings_skipped_apps.txt" -unique -no-empty-lines -no-blank-lines -write -yes>nul
sort Support\settings_skipped_apps.txt /o Support\settings_skipped_apps.txt
goto:AddToSkipUpdateSettingsHBAS
:skipL
if /i "%SkipUpdateNum%" EQU "0" goto:badkey
::if not numeric goto:badkey
for %%A in ("%SkipUpdate%") do (for /f "tokens=1 delims=0123456789" %%B in ("%%~A") do goto:badkey)
::Remove leading zeros
for /f "tokens=* delims=0" %%A in ("%SkipUpdate%") do set "SkipUpdate=%%A"
::Set to 0 if entire input is all zeros
if "%SkipUpdate%"=="" set "SkipUpdate=0"
if %SkipUpdate% LSS 1 goto:badkey
if %SkipUpdate% GTR %SkipUpdateNum% goto:badkey
set "TotalUpdateNum=%SkipUpdateNum%"
set SkipUpdateNum=0
::Loop through the following once for EACH line in *.txt
for /F "tokens=*" %%A in (temp\HBASname_.txt) do call :SkipUpdateListF %%A
goto:quickskip
:SkipUpdateListF
set WiiUappName=%*
set WiiUappName=%WiiUappName:~1,-1%
set /a SkipUpdateNum=%SkipUpdateNum%+1
if /i "%SkipUpdateNum%" NEQ "%SkipUpdate%" goto:EOF
if exist "%DRIVE%\wiiu\apps\%WiiUappName%\" echo If this file is saved to an app's folder ModMii will not check it for updates>"%DRIVE%\wiiu\apps\%WiiUappName%\SkipModMiiUpdates.txt"
echo ?%WiiUappName%?>>Support\settings_skipped_apps.txt
support\sfk filter "Support\settings_skipped_apps.txt" -unique -no-empty-lines -no-blank-lines -write -yes>nul
sort Support\settings_skipped_apps.txt /o Support\settings_skipped_apps.txt
support\sfk filter -spat -quiet "temp\HBASname_.txt" -le!"\x3f%WiiUappName%\x3f" -write -yes
::goto:EOF
:quickskip
goto:AddToSkipUpdateSettingsHBAS
:badkey
echo You Have Entered an Incorrect Key
@ping 127.0.0.1 -n 2 -w 1000> nul
goto:AddToSkipUpdateSettingsHBAS
:cleannow
set clean2="
::B, both clean and update check
echo.
if /i "%clean%" EQU "B" echo Note: Updates will be done after File Cleanup operations
echo.
support\sfk echo -spat \x20 \x20 \x20 Are you sure you want to [%redtext%]permanently delete %cleanitems% File Cleanup items? (Y^/N)
echo.
set /p clean2=Enter Selection Here:
set "clean2=%clean2:"=%"
if /i "%clean2%" EQU "Y" goto:cleannow3
if /i "%clean2%" EQU "N" goto:MENU
echo You Have Entered an Incorrect Key
@ping 127.0.0.1 -n 2 -w 1000> nul
goto:FileCleanup2
:cleannow3
cls
echo ModMii v%currentversion%
echo by XFlak
echo.
echo.
echo CLEANING FILES...
echo.
set /a ListNum=0
::Loop through the the following once for EACH line in *.txt
for /F "tokens=*" %%A in (temp\CleanItems.txt) do call :processCleanList4 %%A
goto:quickskip
:processCleanList4
set /a ListNum=%ListNum%+1
set CleanItem=%*
echo Cleaning %ListNum% of %cleanitems%: %CleanItem%
if exist "%DRIVE%%CleanItem%\" rd /s /q "%DRIVE%%CleanItem%"> nul
if exist "%DRIVE%%CleanItem%" del /f /q "%DRIVE%%CleanItem%">nul
::check for and erase empty folders
set "DriveClean=%DRIVE%%CleanItem%"
::get CleanPath name
set "CleanFile=%DriveClean:*\=%"
:stripCleanFile
set "CleanFile=%CleanFile:*\=%"
echo "%CleanFile%">temp\temp.txt
findStr \\ temp\temp.txt>nul
IF NOT ERRORLEVEL 1 goto:stripCleanFile
echo set "CleanPath=%%DriveClean:\%CleanFile%=%%">temp\temp.bat
call temp\temp.bat
::echo CleanPath %CleanPath%
::empty folder check, if not empty goto something, if empty delete it
dir /A /B "%CleanPath%" | findstr /R ".">NUL && goto:notempty
rd /s /q "%CleanPath%"> nul
::now check again!
::check for and erase empty folders
set "DriveClean=%CleanPath%"
::get CleanPath name
set "CleanFile=%CleanPath:*\=%"
goto:stripCleanFile
:notempty
goto:EOF
:quickskip
echo.
echo FILES CLEANED
echo.
echo.
@ping 127.0.0.1 -n 3 -w 1000> nul
if /i "%clean%" EQU "B" (set BACKB4QUEUE=FileCleanup2) & (goto:DLCOUNT)
goto:MENU
::...................................Wizard Page1 - Virgin?...............................
:RCPAGE1
set REGIONCHANGE="
cls
echo ModMii v%currentversion%
echo by XFlak
echo.
echo.
echo Are you sure you want to Region Change your Wii?
echo.
echo.
echo Important Notes:
echo ----------------
echo.
echo * Region Changing is not necessary to play other region games.
echo For example, you can play JPN games on a softmodded US Wii without
echo region changing.
echo.
echo * An alternative to region changing is to use SNEEK\UNEEK to emulate a
echo different region System Menu.
echo.
echo.
echo If you still want to region change your Wii, read the following
echo warnings before continuing:
echo.
echo.
echo Warnings:
echo ---------
echo.
echo * If you use the Wii Shopping Channel, you must start the channel and
echo delete your account before starting this guide on your Wii.
echo If you don't the Wii Shop Channel will error.
echo.
echo * ModMii's Region Change guide assumes your Wii has already been softmodded
echo and SD Card ^(or USB^) properly formatted by following the ModMii Wizard
echo or SysCheck Updater Wizard. If this is not the case please do so before
echo going any further. Do not attempt to region change your Wii without
echo either an SD card or USB.
echo.
echo.
echo Y = Yes
echo N = No
echo.
echo B = Back
echo M = Main Menu
echo.
echo.
echo.
echo.
set /p REGIONCHANGE=Enter Selection Here:
set "REGIONCHANGE=%REGIONCHANGE:"=%"
if /i "%REGIONCHANGE%" EQU "B" goto:MENU
if /i "%REGIONCHANGE%" EQU "M" goto:MENU
if /i "%REGIONCHANGE%" EQU "N" goto:MENU
if /i "%REGIONCHANGE%" NEQ "Y" goto:badkey
::check if d2x version is customized and offer to revert to default
call support\subscripts\defaultd2x.bat
goto:WPAGE3
:badkey
echo You Have Entered an Incorrect Key
@ping 127.0.0.1 -n 2 -w 1000> nul
goto:RCPAGE1
::--------------------Wizard Settings Detected----------------
:LoadWizardSettings
set LoadWizSettings=
if not exist Wizard_Settings.bat goto:WPAGE0
cls
echo ModMii v%currentversion%
echo by XFlak
echo.
echo.
support\sfk echo -spat \x20 \x20 \x20 \x20 \x20 \x20 \x20 \x20 \x20 \x20 \x20 \x20 \x20 [%redtext%] Wizard Saved Settings Detected!
echo.
echo.
echo Would you like to load the Wizard's Saved Settings now?
echo.
echo.
echo.
echo Note: You will be able to view and confirm the loaded settings
echo before starting your download
echo.
echo.
echo.
echo Y = Yes, Load Wizard_Settings.bat
echo N = No, Continue with the Wizard
echo.
echo D = Delete Wizard_Settings.bat to stop seeing this page
echo in the future then continue with the Wizard
echo.
echo B = Back
echo M = Main Menu
echo.
echo.
echo.
echo.
if "%LoadWizSettings%"=="" set LoadWizSettings="
set /p LoadWizSettings=Enter Selection Here:
set "LoadWizSettings=%LoadWizSettings:"=%"
:LoadWizardSettings2
if /i "%LoadWizSettings%" EQU "B" goto:MENU
if /i "%LoadWizSettings%" EQU "M" goto:MENU
if /i "%LoadWizSettings%" NEQ "Y" goto:skip
if /i "%one%" NEQ "WL" call Wizard_Settings.bat
if /i "%one%" EQU "WL" call "%cmdinput%"
if /i "%one%" EQU "WL" (set MENU1=W) & (set one=)
IF "%USBGUIDE%"=="" set USBGUIDE=n
if /i "%ThemeSelection%" EQU "Y" set ThemeSelection=r
if /i "%Mii%" EQU "Y" set MIIQ=Y
if /i "%pri%" EQU "Y" set PRIQ=Y
if /i "%H5%" EQU "Y" set RECCIOS=Y
if /i "%HM%" EQU "Y" set HMInstaller=Y
goto:WPAGELAST
:skip
if /i "%LoadWizSettings%" EQU "D" del Wizard_Settings.bat>nul
if /i "%LoadWizSettings%" EQU "D" goto:WPAGE0
if /i "%LoadWizSettings%" EQU "N" goto:WPAGE0
echo You Have Entered an Incorrect Key
@ping 127.0.0.1 -n 2 -w 1000> nul
goto:LoadWizardSettings
::...................................Wizard Page0 - Console Type...............................
:WPAGE0
set FIRMSTART="
::same var used for SM version
cls
echo ModMii v%currentversion%
echo by XFlak
echo.
echo.
echo What console would you like to softmod?
echo.
echo.
echo W = Wii
echo U2 = WiiU and vWii (virtual Wii on WiiU)
echo U = WiiU Only (no vWii mods)
echo V = vWii Only (no WiiU mods)
echo.
echo B = Back
echo M = Main Menu
echo.
echo.
echo Notes: Wii modding requires an SD card and does not need internet on the console.
echo Alternatively, you can use a hard drive in place of SD for most things
echo but then the Wii will need internet access.
echo.
echo WiiU modding requires an SD Card and internet on the console.
echo.
echo vWii Only modding requires an SD Card and internet on the console, or if
echo your console is without internet an SD card plus one of these Wii discs:
echo Super Smash Brothers Brawl, LEGO Indiana Jones, LEGO Batman, LEGO Star Wars,
echo Yu-Gi-Oh! 5D's, or Tales of Symphonia Dawn of the New World.
echo.
echo.
set /p FIRMSTART=Enter Selection Here:
set "FIRMSTART=%FIRMSTART:"=%"
if exist Wizard_Settings.bat goto:backtoloadwiz
if /i "%FIRMSTART%" EQU "B" goto:MENU
:backtoloadwiz
if /i "%FIRMSTART%" EQU "B" goto:LoadWizardSettings
if /i "%FIRMSTART%" EQU "M" goto:MENU
if /i "%FIRMSTART%" EQU "W" (set ctype=Wii) & (goto:WPAGE1)
if /i "%FIRMSTART%" EQU "U" (set ctype=WiiU) & (goto:WPAGELAST)
if /i "%FIRMSTART%" EQU "U2" (set ctype=WiiU) & (goto:WPAGE20)
if /i "%FIRMSTART%" EQU "V" (set ctype=WiiU) & (goto:WPAGE20)
echo You Have Entered an Incorrect Key
@ping 127.0.0.1 -n 2 -w 1000> nul
goto:WPAGE0
::...................................Wizard Page1 - Virgin?...............................
:WPAGE1
set VIRGIN="
set Advanced=
set HMInstaller=
set RECCIOS=
set PRIQ=
set ThemeSelection=N
cls
echo ModMii v%currentversion%
echo by XFlak
echo.
echo.
echo Is this your first time softmodding your Wii?
echo --
echo OR
echo --
echo Would you like to update ALL your existing softmods (aka re-hack your Wii)?
echo.
echo.
echo.
echo Note: Only answer No if you know specifically what you want to update.
echo.
echo Alternatively, you can check if there are any recommended changes to the
echo mods already installed on your Wii using ModMii's SysCheck Updater Wizard.
echo.
echo.
echo Y = Yes
echo N = No
echo.
echo B = Back
echo M = Main Menu
echo.
echo.
echo.
echo.
set /p VIRGIN=Enter Selection Here:
set "VIRGIN=%VIRGIN:"=%"
if /i "%VIRGIN%" EQU "B" goto:WPAGE0
if /i "%VIRGIN%" EQU "M" goto:MENU
if /i "%VIRGIN%" EQU "Y" goto:WPAGE2
if /i "%VIRGIN%" EQU "N" goto:WPAGE2
echo You Have Entered an Incorrect Key
@ping 127.0.0.1 -n 2 -w 1000> nul
goto:WPAGE1
::...................................Wizard Page2 - Current SystemMenu...............................
:WPAGE2
set FIRMSTART="
set backb4HACKMIISOLUTION=WPAGE2
cls
echo ModMii v%currentversion%
echo by XFlak
echo.
echo.
if /i "%MENU1%" EQU "H" (echo HackMii Solutions) & (echo.)
if /i "%AbstinenceWiz%" NEQ "Y" goto:notabstinence
echo Abstinence Wizard
echo.
echo.
echo This wizard allows you to enjoy many of the benefits of a softmodded Wii
echo without installing any unofficial content (ie. should not void warranty)
echo.
echo An SD CARD is REQUIRED for this wizard to work.
echo.
echo.
:notabstinence
echo What is your current System Menu Version?
echo.
echo.
echo Enter "Help" for an instructional video on checking your System Menu Version.
echo.
echo Note: to check this, turn on your wii, click the Wii button in the
echo bottom left of the main system menu, click Wii Settings,
echo then you should see the System Menu in the top right of the screen
echo (ie. 4.2U, 4.1J, 3.2E, etc.)
echo.
echo.
echo.
echo.
echo.
echo 4.3 = 4.3
echo 4.2 = 4.2
echo 4.1 = 4.1
echo 4.0 = 4.0
echo 3.X = 3.0-3.5
echo O = Other (under 2.2)
echo.
echo.
echo.
echo.
echo B = Back
echo M = Main Menu
echo.
echo.
echo.
echo.
set /p FIRMSTART=Enter Selection Here:
set "FIRMSTART=%FIRMSTART:"=%"
if /i "%FIRMSTART%" EQU "M" goto:MENU
if /i "%FIRMSTART%" NEQ "Help" goto:nohelp
start https://www.youtube.com/embed/1Z2MtFcllTY
goto:WPAGE2
:nohelp
if /i "%FIRMSTART%" EQU "3.x" set FIRMSTART=3.X
if /i "%AbstinenceWiz%" NEQ "Y" goto:NotAbstinenceWiz
if /i "%FIRMSTART%" EQU "4.3" goto:WPAGE3
if /i "%FIRMSTART%" EQU "O" goto:WPAGE3
if /i "%FIRMSTART%" EQU "4.2" goto:NEEKrevSelect
if /i "%FIRMSTART%" EQU "4.1" goto:NEEKrevSelect
if /i "%FIRMSTART%" EQU "4.0" goto:NEEKrevSelect
if /i "%FIRMSTART%" EQU "3.X" goto:NEEKrevSelect
:NotAbstinenceWiz
if /i "%FIRMSTART%" EQU "4.3" goto:WPAGE3
if /i "%FIRMSTART%" EQU "4.2" goto:WPAGE3
if /i "%FIRMSTART%" EQU "4.1" goto:WPAGE3
if /i "%FIRMSTART%" EQU "4.0" goto:WPAGE3
if /i "%FIRMSTART%" EQU "3.X" goto:WPAGE3
if /i "%FIRMSTART%" EQU "O" goto:WPAGE3
if /i "%FIRMSTART%" NEQ "B" goto:incorrectkey
if /i "%MENU1%" EQU "H" goto:MENU
if /i "%AbstinenceWiz%" EQU "Y" goto:MENU
goto:WPAGE1
:incorrectkey
echo You Have Entered an Incorrect Key
@ping 127.0.0.1 -n 2 -w 1000> nul
goto:WPAGE2
::...................................Wizard Page3 - REGION...............................
:WPAGE3
if /i "%FIRMSTART%" EQU "4.3" goto:WPAGE3hard
if /i "%FIRMSTART%" EQU "o" goto:WPAGE3hard
if /i "%MENU1%" EQU "H" goto:HACKMIISOLUTION
:WPAGE3hard
set REGION="
cls
echo ModMii v%currentversion%
echo by XFlak
echo.
echo.
if /i "%MENU1%" EQU "RC" (echo What Region would you like to change to?) & (goto:skiptext)
echo What is your Region?
echo.
echo.
if /i "%FIRMSTART%" EQU "U2" goto:skip
if /i "%FIRMSTART%" EQU "v" goto:skip
echo Enter "Help" for an instructional video on checking your System Menu.
echo.
echo Note: to check this, turn on your Wii, click the Wii button in the
echo bottom left of the main system menu, click Wii Settings,
echo then you should see the System Menu in the top right of the screen
echo (ie. 4.2U, 4.1J, 3.2E, etc.)
echo.
echo Note: If your Wii was Region Changed choose the region you are currently on
goto:skiptext
:skip
echo Note: to check this on your WiiU click the System Settings button
echo from the main system menu then you should see the version
echo in the top right of the screen (e.g. 5.2.0U, 5.2.0J, 5.2.0E)
:skiptext
echo.
echo.
echo U = USA
echo E = Euro (PAL)
echo J = JPN
if /i "%FIRMSTART%" EQU "U2" goto:skip
if /i "%FIRMSTART%" EQU "v" goto:skip
echo K = Korean
:skip
echo.
echo.
echo.
echo.
echo B = Back
echo M = Main Menu
echo.
echo.
set /p REGION=Enter Selection Here:
set "REGION=%REGION:"=%"
if /i "%REGION%" EQU "M" goto:MENU
if /i "%REGION%" EQU "u" set REGION=U
if /i "%REGION%" EQU "e" set REGION=E
if /i "%REGION%" EQU "j" set REGION=J
if /i "%REGION%" EQU "k" set REGION=K
if /i "%MENU1%" NEQ "RC" goto:notRC
if /i "%REGION%" EQU "U" goto:WPAGE4
if /i "%REGION%" EQU "E" goto:WPAGE4
if /i "%REGION%" EQU "K" goto:WPAGE4
if /i "%REGION%" EQU "J" goto:WPAGE4
if /i "%REGION%" EQU "B" (set REGION=) & (goto:RCPAGE1)
goto:badkey
:notRC
::download page redirect for Wilbrand
if /i "%MENU1%" EQU "1" goto:Wilbrand
if /i "%MENU1%" EQU "2" goto:Wilbrand
if /i "%MENU1%" EQU "3" goto:Wilbrand
if /i "%MENU1%" EQU "4" goto:Wilbrand
if /i "%MENU1%" EQU "A" goto:Wilbrand
goto:notWilbrand
:Wilbrand
if /i "%REGION%" EQU "B" (set REGION=) & (goto:macaddress)
if /i "%REGION%" EQU "U" goto:DOWNLOADQUEUE
if /i "%REGION%" EQU "E" goto:DOWNLOADQUEUE
if /i "%REGION%" EQU "K" goto:DOWNLOADQUEUE
if /i "%REGION%" EQU "J" goto:DOWNLOADQUEUE
:notWilbrand
if /i "%FIRMSTART%" EQU "U2" goto:U2
if /i "%FIRMSTART%" EQU "v" goto:vWii
::Wii
if /i "%REGION%" EQU "U" goto:WPAGE3C
if /i "%REGION%" EQU "E" goto:WPAGE3C
if /i "%REGION%" EQU "J" goto:WPAGE3C
if /i "%REGION%" EQU "K" goto:WPAGE3C
if /i "%REGION%" EQU "B" (set REGION=) & (goto:WPAGE2)
goto:notvWii
:U2
if /i "%REGION%" EQU "U" goto:WPAGE21
if /i "%REGION%" EQU "E" goto:WPAGE21
if /i "%REGION%" EQU "J" goto:WPAGE21
if /i "%REGION%" EQU "B" (set REGION=) & (goto:WPAGE20)
goto:notvWii
:vWii
if /i "%REGION%" EQU "U" goto:WPAGE3Cv
if /i "%REGION%" EQU "E" goto:WPAGE3Cv
if /i "%REGION%" EQU "J" goto:WPAGE3Cv
if /i "%REGION%" EQU "B" (set REGION=) & (goto:WPAGE20)
:notvWii
if /i "%REGION%" NEQ "Help" goto:nohelp
if /i "%FIRMSTART%" EQU "U2" goto:nohelp
if /i "%FIRMSTART%" EQU "v" goto:nohelp
start https://www.youtube.com/embed/1Z2MtFcllTY
goto:WPAGE3
:nohelp
:badkey
echo You Have Entered an Incorrect Key
@ping 127.0.0.1 -n 2 -w 1000> nul
goto:WPAGE3
::...................................Wizard Page3C - Exploit...............................
:WPAGE3Cv
SET EXPLOIT=default
set exploitselection=yes
cls
echo ModMii v%currentversion%
echo by XFlak
echo.
echo.
echo Select the Exploit you would like to use on your vWii.
echo.
echo.
echo BE = Browser Exploit: no disc required, but needs an SD Card ^& internet on vWii
echo.
echo.
echo The exploits below do not need internet, only an SD Card ^& one of these Wii games:
echo.
echo S = Super Smash Brothers Brawl
echo L = LEGO Indiana Jones
echo LB = LEGO Batman
echo LS = LEGO Star Wars
echo Y = Yu-Gi-Oh! 5D's
echo TOS = Tales of Symphonia: Dawn of the New World
echo ? = If you're not sure, download all of the above and decide later
echo.
echo.
echo.
echo B = Back
echo M = Main Menu
echo.
echo.
echo.
echo.
if "%EXPLOIT%"=="" set EXPLOIT="
set /p EXPLOIT=Enter Selection Here:
set "EXPLOIT=%EXPLOIT:"=%"
if /i "%EXPLOIT%" EQU "M" goto:MENU
if /i "%EXPLOIT%" EQU "B" goto:WPAGE3
if /i "%EXPLOIT%" EQU "BE" goto:WPAGE21
if /i "%EXPLOIT%" EQU "S" goto:WPAGE21
if /i "%EXPLOIT%" EQU "Y" goto:WPAGE21
if /i "%EXPLOIT%" EQU "L" goto:WPAGE21
if /i "%EXPLOIT%" EQU "LB" goto:WPAGE21
if /i "%EXPLOIT%" EQU "LS" goto:WPAGE21
if /i "%EXPLOIT%" EQU "TOS" goto:WPAGE21
if /i "%EXPLOIT%" EQU "?" goto:WPAGE21
echo You Have Entered an Incorrect Key
@ping 127.0.0.1 -n 2 -w 1000> nul
goto:WPAGE3Cv
::...................................Wizard Page3C - Exploit...............................
:WPAGE3C
SET EXPLOIT=default
set exploitselection=
if /i "%VIRGIN%" EQU "N" goto:WPAGE3D
if /i "%FIRMSTART%" EQU "4.3" goto:WPAGE3Cnext
if /i "%FIRMSTART%" EQU "o" goto:WPAGE3Cnext
goto:WPAGE4
::Only virgin 4.3 U/E/J wii's or <2.2 U/E/J Wii's will make it this far
:WPAGE3Cnext
set backb4HACKMIISOLUTION=WPAGE3c
set exploitselection=yes
cls
echo ModMii v%currentversion%
echo by XFlak
echo.
echo.
echo Select the Exploit you would like to use on your Wii.
echo.
echo.
echo X = str2hax: no disc or SD card needed, but requires internet on Wii
if /i "%FIRMSTART%" EQU "o" goto:skipbomb
echo W = Wilbrand\LetterBomb: no disc needed, but requires SD card
:skipbomb
echo.
echo.
echo The exploits below require you own one of the following games:
echo.
echo S = Super Smash Brothers Brawl
if /i "%REGION%" NEQ "K" echo L = LEGO Indiana Jones
if /i "%REGION%" NEQ "K" echo LB = LEGO Batman
if /i "%REGION%" NEQ "K" echo LS = LEGO Star Wars
if /i "%REGION%" NEQ "K" echo Y = Yu-Gi-Oh! 5D's
if /i "%REGION%" NEQ "K" echo TOS = Tales of Symphonia: Dawn of the New World
if /i "%FIRMSTART%" EQU "o" echo T = Twilight Princess: The Legend of Zelda
if /i "%FIRMSTART%" EQU "o" echo.
echo ? = If you're not sure, download all of the above and decide later
echo.
echo.
echo.
if /i "%FIRMSTART%" NEQ "o" goto:skipOmsg
support\sfk echo -spat \x20 \x20[%redtext%] Important Notes:
echo.
echo Alternatively, you can update your Wii to v3.0-4.3 then repeat the
echo Wizard using your new System Menu in order to hack your
echo Wii without requiring a games or internet on your Wii
echo.
:skipOmsg
support\sfk echo -spat \x20 \x20[%redtext%] NOTE IF YOU ARE MISSING AN SD CARD
echo Using str2hax you can install the HBC even if you don't have an SD card,
echo or if your SD card reader is broken. But without an sd card you will
echo not be able to install bootmii and make a NAND backup.
echo You can still proceed with the remaining steps of your custom ModMii guide
echo using a FAT32 formatted USB hard drive in place of an SD card.
echo More help on formatting your HDD if you use ModMii to set up a USB Loader.
echo.
echo.
echo.
echo.
echo.
echo B = Back
echo M = Main Menu
echo.
echo.
echo.
echo.
if "%EXPLOIT%"=="" set EXPLOIT="
set /p EXPLOIT=Enter Selection Here:
set "EXPLOIT=%EXPLOIT:"=%"
if /i "%EXPLOIT%" EQU "M" goto:MENU
if /i "%EXPLOIT%" EQU "B" goto:WPAGE3
if /i "%FIRMSTART%" NEQ "o" goto:twilightnotavailable
if /i "%EXPLOIT%" EQU "T" goto:WPAGE3D
:twilightnotavailable
::ALL except KOR
if /i "%REGION%" EQU "K" goto:skip
if /i "%EXPLOIT%" EQU "Y" goto:WPAGE3D
if /i "%EXPLOIT%" EQU "L" goto:WPAGE3D
if /i "%EXPLOIT%" EQU "LB" goto:WPAGE3D
if /i "%EXPLOIT%" EQU "LS" goto:WPAGE3D
if /i "%EXPLOIT%" EQU "TOS" goto:WPAGE3D
:skip
if /i "%FIRMSTART%" EQU "o" goto:notbomb
if /i "%EXPLOIT%" EQU "W" goto:macaddress
if /i "%EXPLOIT%" EQU "?" goto:macaddress
:notbomb
if /i "%EXPLOIT%" EQU "X" goto:WPAGE3D
if /i "%EXPLOIT%" EQU "?" goto:WPAGE3D
if /i "%EXPLOIT%" EQU "S" goto:WPAGE3D
echo You Have Entered an Incorrect Key
@ping 127.0.0.1 -n 2 -w 1000> nul
goto:WPAGE3C
::----------------------------------------MAC ADDRESS---------------------------------
:macaddress
set macaddress="
cls
echo ModMii v%currentversion%
echo by XFlak
echo.
echo.
echo Enter your Wii's MAC address (required for Wilbrand\LetterBomb exploit)
echo.
echo Examples:
echo AABBCCDDEEFF
echo AA BB CC DD EE FF
echo AA:BB:CC:DD:EE:FF
echo 11-22-33-44-55-66
echo.
echo.
echo.
echo Note: to find your Wii's MAC address, turn on your Wii, click the
echo Wii button in the bottom left of the main system menu,
echo then click Wii Settings, then Internet, then Console Information.
echo.
echo.
echo.
echo Enter "Help" for an instructional video on checking your Wii's MAC address.
echo.
echo.
echo.
echo.
if /i "%MENU1%" EQU "1" (echo B = Back out and skip this download) & (goto:skip)
if /i "%MENU1%" EQU "2" (echo B = Back out and skip this download) & (goto:skip)
if /i "%MENU1%" EQU "3" (echo B = Back out and skip this download) & (goto:skip)
if /i "%MENU1%" EQU "4" (echo B = Back out and skip this download) & (goto:skip)
if /i "%MENU1%" EQU "A" (echo B = Back out and skip this download) & (goto:skip)
echo S = Skip this for now and enter it later if you're not near your Wii
echo B = Back
:skip
echo M = Main Menu
echo.
echo.
echo.
echo.
set /p macaddress=Enter Selection Here:
set "macaddress=%macaddress:"=%"
if /i "%macaddress%" EQU "M" goto:MENU
if /i "%macaddress%" NEQ "B" goto:notback
set Wilbrand=
if /i "%MENU1%" EQU "1" goto:DOWNLOADQUEUE
if /i "%MENU1%" EQU "2" goto:DOWNLOADQUEUE
if /i "%MENU1%" EQU "3" goto:DOWNLOADQUEUE
if /i "%MENU1%" EQU "4" goto:DOWNLOADQUEUE
if /i "%MENU1%" EQU "A" goto:DOWNLOADQUEUE
goto:WPAGE3C
:notback
if /i "%macaddress%" NEQ "Help" goto:nohelp
start https://www.youtube.com/embed/V52piPXM1tE
goto:macaddress
:nohelp
::don't allow skipping for manual downloads
if /i "%MENU1%" EQU "1" goto:skip
if /i "%MENU1%" EQU "2" goto:skip
if /i "%MENU1%" EQU "3" goto:skip
if /i "%MENU1%" EQU "4" goto:skip
if /i "%MENU1%" EQU "A" goto:skip
if /i "%macaddress%" EQU "S" goto:WPAGE3D
:skip
echo %macaddress% >temp\temp.txt
support\sfk filter "temp\temp.txt" -rep _" "__ -rep _"-"__ -rep _":"__ -write -yes>nul
set /p macaddress= <temp\temp.txt
::confirm 12 digits
if "%macaddress:~11%"=="" goto:badkey
if not "%macaddress:~12%"=="" goto:badkey
::confirm MAC addy is hex chars
echo.
echo Validating MAC address...
echo.
set digit=0
:confirmMACaddy
set /a digit=%digit%+1
set testme=
if /i "%digit%" EQU "1" set testme=%macaddress:~0,1%
if /i "%digit%" EQU "2" set testme=%macaddress:~1,1%
if /i "%digit%" EQU "3" set testme=%macaddress:~2,1%
if /i "%digit%" EQU "4" set testme=%macaddress:~3,1%
if /i "%digit%" EQU "5" set testme=%macaddress:~4,1%
if /i "%digit%" EQU "6" set testme=%macaddress:~5,1%
if /i "%digit%" EQU "7" set testme=%macaddress:~6,1%
if /i "%digit%" EQU "8" set testme=%macaddress:~7,1%
if /i "%digit%" EQU "9" set testme=%macaddress:~8,1%
if /i "%digit%" EQU "10" set testme=%macaddress:~9,1%
if /i "%digit%" EQU "11" set testme=%macaddress:~10,1%
if /i "%digit%" EQU "12" set testme=%macaddress:~11,1%
if "%testme%"=="" goto:quickskip
if /i "%testme%" EQU "0" goto:confirmMACaddy
if /i "%testme%" EQU "1" goto:confirmMACaddy
if /i "%testme%" EQU "2" goto:confirmMACaddy
if /i "%testme%" EQU "3" goto:confirmMACaddy
if /i "%testme%" EQU "4" goto:confirmMACaddy
if /i "%testme%" EQU "5" goto:confirmMACaddy
if /i "%testme%" EQU "6" goto:confirmMACaddy
if /i "%testme%" EQU "7" goto:confirmMACaddy
if /i "%testme%" EQU "8" goto:confirmMACaddy
if /i "%testme%" EQU "9" goto:confirmMACaddy
if /i "%testme%" EQU "a" goto:confirmMACaddy
if /i "%testme%" EQU "b" goto:confirmMACaddy
if /i "%testme%" EQU "c" goto:confirmMACaddy
if /i "%testme%" EQU "d" goto:confirmMACaddy
if /i "%testme%" EQU "e" goto:confirmMACaddy
if /i "%testme%" EQU "f" goto:confirmMACaddy
goto:badkey
:quickskip
::echo %macaddress%
if /i "%MENU1%" EQU "1" goto:WPAGE3
if /i "%MENU1%" EQU "2" goto:WPAGE3
if /i "%MENU1%" EQU "3" goto:WPAGE3
if /i "%MENU1%" EQU "4" goto:WPAGE3
if /i "%MENU1%" EQU "A" goto:WPAGE3
goto:WPAGE3D
:badkey
echo You Have Entered an Incorrect Key
@ping 127.0.0.1 -n 2 -w 1000> nul
goto:macaddress
::...................................Wizard Page3D - Active IOSs...............................
:WPAGE3D
if /i "%AbstinenceWiz%" EQU "Y" goto:NEEKrevSelect
if /i "%MENU1%" EQU "H" goto:HACKMIISOLUTION
SET UpdatesIOSQ=
if /i "%ACTIVEIOS%" EQU "off" goto:WPAGE4
if /i "%Virgin%" EQU "N" goto:forceQ
if /i "%FIRMSTART%" LSS "4.3" goto:WPAGE4
if /i "%FIRMSTART%" EQU "o" goto:WPAGE4
::Only 4.3 Wii's without active IOS "ON" will make it this far
:forceQ
cls
echo ModMii v%currentversion%
echo by XFlak
echo.
echo.
if /i "%Virgin%" EQU "N" echo Download active IOSs and some extra brick protection (patched System Menu IOSs)?
if /i "%Virgin%" NEQ "N" echo Would you like to download active IOSs?
echo.
echo.
echo.
echo N = No
echo.
if /i "%Virgin%" EQU "N" echo If you previously used ModMii to fully softmod your Wii you should already
if /i "%Virgin%" EQU "N" echo have these installed.
if /i "%FirmStart%" EQU "4.3" echo You're on System Menu 4.3, so you likely already have the latest IOSs.
if /i "%FirmStart%" EQU "4.3" echo If your Wii has truly never been modified before, you can say No.
echo.
echo.
echo Y = Yes
echo.
echo If your Wii has DarkCorp/cIOSCorp installed, you can say Yes to overwrite it.
echo If original Wii discs or WiiWare are not working properly, say Yes to fix it.
echo.
echo If unsure, there is no harm in saying yes, it just may take a bit longer.
echo.
echo.
echo.
echo.
echo.
echo.
echo.
echo.
echo.
echo B = Back
echo M = Main Menu
echo.
echo.
echo.
echo.
if "%UpdatesIOSQ%"=="" set UpdatesIOSQ="
set /p UpdatesIOSQ=Enter Selection Here:
set "UpdatesIOSQ=%UpdatesIOSQ:"=%"
if /i "%UpdatesIOSQ%" EQU "M" goto:MENU
if /i "%UpdatesIOSQ%" EQU "Y" goto:WPAGE4
if /i "%UpdatesIOSQ%" EQU "N" goto:WPAGE4
if /i "%VIRGIN%" EQU "N" goto:backtowpage3
::if /i "%REGION%" EQU "K" goto:backtowpage3
if /i "%exploit%" EQU "W" goto:backtomacaddress
if /i "%exploit%" EQU "?" goto:backtomacaddress
goto:backtowpage3c
:backtomacaddress
if /i "%UpdatesIOSQ%" EQU "B" goto:macaddress
:backtowpage3
if /i "%UpdatesIOSQ%" EQU "B" goto:WPAGE3
:backtowpage3c
if /i "%UpdatesIOSQ%" EQU "B" goto:WPAGE3c
echo You Have Entered an Incorrect Key
@ping 127.0.0.1 -n 2 -w 1000> nul
goto:WPAGE3D
::...................................Wizard Page4 - New System Menu...............................
:WPAGE4
if /i "%MENU1%" EQU "H" goto:HACKMIISOLUTION
set FIRM="
cls
echo ModMii v%currentversion%
echo by XFlak
echo.
echo.
echo Select the new System Menu you would like to upgrade/downgrade to.
if /i "%MENU1%" NEQ "RC" (echo.) & (echo.) & (echo.) & (echo Note: if current system menu = new system menu, a system menu is not downloaded)
echo.
echo.
echo.
if /i "%FIRMSTART%" EQU "4.1" goto:SkipGreen4.3
if /i "%FIRMSTART%" EQU "4.2" goto:SkipGreen4.3
support\sfk echo -spat \x20 \x20 \x20 \x20 \x20 \x20 \x20 [%greentext%] 4.3 = 4.3 [RECOMMENDED]
goto:skipWhite4.3
:SkipGreen4.3
echo 4.3 = 4.3
:skipWhite4.3
if /i "%FIRMSTART%" EQU "4.2" (support\sfk echo -spat \x20 \x20 \x20 \x20 \x20 \x20 \x20 [%greentext%] 4.2 = 4.2 [RECOMMENDED]) else (echo 4.2 = 4.2)
if /i "%FIRMSTART%" EQU "4.1" (support\sfk echo -spat \x20 \x20 \x20 \x20 \x20 \x20 \x20 [%greentext%] 4.1 = 4.1 [RECOMMENDED]) else (echo 4.1 = 4.1)
echo.
echo.
echo ModMii recommends against unnecessarily changing system menus if already on 4.1
echo or higher. 4.2 and 4.3 add nothing except failed attempts to prevent homebrew.
echo.
echo.
echo.
echo B = Back
echo M = Main Menu
echo.
echo.
echo.
echo.
set /p FIRM=Enter Selection Here:
set "FIRM=%FIRM:"=%"
if /i "%FIRM%" EQU "M" goto:MENU
if /i "%MENU1%" NEQ "RC" goto:notRC
if /i "%FIRM%" EQU "4.2" goto:WPAGE20
if /i "%FIRM%" EQU "4.1" goto:WPAGE20
if /i "%FIRM%" EQU "4.3" goto:WPAGE20
if /i "%FIRM%" EQU "B" goto:WPAGE3
:notRC
if /i "%FIRM%" EQU "4.2" goto:WPAGE5
if /i "%FIRM%" EQU "4.1" goto:WPAGE5
if /i "%FIRM%" EQU "4.3" goto:WPAGE5
if /i "%FIRM%" NEQ "B" goto:notback
if /i "%VIRGIN%" EQU "N" goto:noexploits
if /i "%FIRMSTART%" EQU "o" goto:wpage3c
if /i "%FIRMSTART%" NEQ "4.3" goto:wpage3
if /i "%ACTIVEIOS%" EQU "off" (goto:wpage3c) else (goto:WPAGE3D)
:noexploits
if /i "%ACTIVEIOS%" EQU "off" (goto:wpage3) else (goto:WPAGE3D)
:notback
echo You Have Entered an Incorrect Key
@ping 127.0.0.1 -n 2 -w 1000> nul
goto:WPAGE4
::...................................Wizard Page5 - MORE Channels?...............................
:WPAGE5
set MORE="
set PIC=
set NET=
set Weather=
set NEWS=
set MIIQ=
set Shop=
set Speak=
if /i "%MENU1%" EQU "S" (set REGIONTEMP=%SNKREGION%) else (set REGIONTEMP=%REGION%)
cls
echo ModMii v%currentversion%
echo by XFlak
echo.
echo.
echo Would you like to install any of the following channels:
echo.
echo.
echo.
echo * Photo v1.1 (including required HAZA dummy)
if /i "%REGIONTEMP%" NEQ "K" echo * Internet
::if /i "%REGIONTEMP%" NEQ "K" echo * Weather^^
::if /i "%REGIONTEMP%" NEQ "K" echo * News^^
::if /i "%REGIONTEMP%" NEQ "K" echo * Wii Speak^^^^
echo * Mii
echo * Shopping (can only re-download content you have already purchased)
if /i "%MENU1%" NEQ "S" goto:skip
if /i "%SNEEKSELECT%" NEQ "5" goto:skip
if not exist temp\EmunandInfo.txt goto:skip
echo.
findStr /C:"(HAYK)" "temp\EmunandInfo.txt" >nul
IF NOT ERRORLEVEL 1 support\sfk echo [%greentext%] - Photo Channel 1.1 KOR (HAYK) Detected on EmuNAND Already
findStr /C:"(HAYA)" "temp\EmunandInfo.txt" >nul
IF NOT ERRORLEVEL 1 support\sfk echo [%greentext%] - Photo Channel 1.1 (HAYA) Detected on EmuNAND Already
findStr /C:"(HAZA)" "temp\EmunandInfo.txt" >nul
IF NOT ERRORLEVEL 1 support\sfk echo [%greentext%] - Photo Channel 1.1 (HAZA dummy) Detected on EmuNAND Already
findStr /C:"(HADE)" "temp\EmunandInfo.txt" >nul
IF NOT ERRORLEVEL 1 support\sfk echo [%greentext%] - Internet Channel USA (HADE) Detected on EmuNAND Already
findStr /C:"(HADP)" "temp\EmunandInfo.txt" >nul
IF NOT ERRORLEVEL 1 support\sfk echo [%greentext%] - Internet Channel EUR (HADP) Detected on EmuNAND Already
findStr /C:"(HADJ)" "temp\EmunandInfo.txt" >nul
IF NOT ERRORLEVEL 1 support\sfk echo [%greentext%] - Internet Channel JPN (HADJ) Detected on EmuNAND Already
findStr /C:"(HACA)" "temp\EmunandInfo.txt" >nul
IF NOT ERRORLEVEL 1 support\sfk echo [%greentext%] - Mii Channel (HACA) Detected on EmuNAND Already
findStr /C:"(HABA)" "temp\EmunandInfo.txt" >nul
IF NOT ERRORLEVEL 1 support\sfk echo [%greentext%] - Wii Shop Channel (HABA) Detected on EmuNAND Already
findStr /C:"(HABK)" "temp\EmunandInfo.txt" >nul
IF NOT ERRORLEVEL 1 support\sfk echo [%greentext%] - Wii Shop Channel KOR (HABK) Detected on EmuNAND Already
:skip
echo.
echo.
echo Note: since Nintendo has shut down WiiConnect24 other channels like News,
echo Wii Speak, etc. require WiiLink. These can be installed later
echo using the WiiLink Patcher from ModMii's Download Page 5
echo or from https://wiilink24.com
echo.
echo A = All
echo S = Some
if /i "%MENU1%" NEQ "S" (echo N = None) & (goto:tinyskip)
if /i "%SNEEKSELECT%" NEQ "5" echo N = None
if /i "%SNEEKSELECT%" EQU "5" echo N = None (or leave selection blank)
:tinyskip
echo.
echo B = Back
echo M = Main Menu
echo.
echo.
echo.
echo.
set /p MORE=Enter Selection Here:
set "MORE=%MORE:"=%"
if /i "%MENU1%" NEQ "S" goto:miniskip
if /i "%SNEEKSELECT%" NEQ "5" goto:miniskip
if "%MORE%"=="" set MORE=N
:miniskip
if /i "%MORE%" EQU "M" goto:MENU
if /i "%MENU1%" EQU "S" goto:forsneeknand
if /i "%MORE%" EQU "B" goto:WPAGE4
if /i "%MORE%" EQU "N" goto:WPAGE13
:forsneeknand
if /i "%MORE%" NEQ "B" goto:notback
if /i "%SNEEKSELECT%" NEQ "5" goto:WPAGE20
if "%ThemeChoice%"=="" (goto:SNKPAGE4c) else (goto:WPAGE20)
:notback
if /i "%MORE%" EQU "A" set B4SNKCONFIRM=WPAGE5
if /i "%MORE%" EQU "N" set B4SNKCONFIRM=WPAGE5
if /i "%MORE%" EQU "N" goto:SNKNANDCONFIRM
if /i "%MORE%" EQU "S" goto:WPAGE6
if /i "%MORE%" EQU "A" goto:WPAGE6
echo You Have Entered an Incorrect Key
@ping 127.0.0.1 -n 2 -w 1000> nul
goto:WPAGE5
::...................................Wizard Page6 - Photo Channel...............................
:WPAGE6
if /i "%MORE%" EQU "A" set PIC=Y
if /i "%MORE%" EQU "A" goto:WPAGE7
set PIC="
cls
echo ModMii v%currentversion%
echo by XFlak
echo.
echo.
echo Install the Photo Channel (v1.1 including required HAZA dummy)?
if /i "%MENU1%" NEQ "S" goto:skip
if /i "%SNEEKSELECT%" NEQ "5" goto:skip
if not exist temp\EmunandInfo.txt goto:skip
echo.
findStr /C:"(HAYK)" "temp\EmunandInfo.txt" >nul
IF NOT ERRORLEVEL 1 support\sfk echo [%greentext%] - Photo Channel 1.1 KOR (HAYK) Detected on EmuNAND Already
findStr /C:"(HAYA)" "temp\EmunandInfo.txt" >nul
IF NOT ERRORLEVEL 1 support\sfk echo [%greentext%] - Photo Channel 1.1 (HAYA) Detected on EmuNAND Already
findStr /C:"(HAZA)" "temp\EmunandInfo.txt" >nul
IF NOT ERRORLEVEL 1 support\sfk echo [%greentext%] - Photo Channel 1.1 (HAZA dummy) Detected on EmuNAND Already
:skip
echo.
echo.
echo.
echo Y = Yes
if /i "%MENU1%" NEQ "S" (echo N = No) & (goto:tinyskip)
if /i "%SNEEKSELECT%" NEQ "5" echo N = No
if /i "%SNEEKSELECT%" EQU "5" echo N = No (or leave selection blank)
:tinyskip
echo.
echo B = Back
echo M = Main Menu
echo.
echo.
echo.
echo.
set /p PIC=Enter Selection Here:
set "PIC=%PIC:"=%"
if /i "%MENU1%" NEQ "S" goto:miniskip
if /i "%SNEEKSELECT%" NEQ "5" goto:miniskip
if "%PIC%"=="" set PIC=N
:miniskip
if /i "%PIC%" EQU "Y" goto:WPAGE7
if /i "%PIC%" EQU "N" goto:WPAGE7
if /i "%PIC%" EQU "M" goto:MENU
if /i "%PIC%" EQU "B" goto:WPAGE5
echo You Have Entered an Incorrect Key
@ping 127.0.0.1 -n 2 -w 1000> nul
goto:WPAGE6
::...................................Wizard Page7 - Internet?...............................
:WPAGE7
if /i "%REGIONTEMP%" EQU "K" goto:WPAGE10
if /i "%MORE%" EQU "A" set NET=Y
if /i "%MORE%" EQU "A" goto:WPAGE8
set NET="
cls
echo ModMii v%currentversion%
echo by XFlak
echo.
echo.
echo Install the Internet Channel?
if /i "%MENU1%" NEQ "S" goto:skip
if /i "%SNEEKSELECT%" NEQ "5" goto:skip
if not exist temp\EmunandInfo.txt goto:skip
echo.
findStr /C:"(HADE)" "temp\EmunandInfo.txt" >nul
IF NOT ERRORLEVEL 1 support\sfk echo [%greentext%] - Internet Channel USA (HADE) Detected on EmuNAND Already
findStr /C:"(HADP)" "temp\EmunandInfo.txt" >nul
IF NOT ERRORLEVEL 1 support\sfk echo [%greentext%] - Internet Channel EUR (HADP) Detected on EmuNAND Already
findStr /C:"(HADJ)" "temp\EmunandInfo.txt" >nul
IF NOT ERRORLEVEL 1 support\sfk echo [%greentext%] - Internet Channel JPN (HADJ) Detected on EmuNAND Already
:skip
echo.
echo.
echo.
echo Y = Yes
if /i "%MENU1%" NEQ "S" (echo N = No) & (goto:tinyskip)
if /i "%SNEEKSELECT%" NEQ "5" echo N = No
if /i "%SNEEKSELECT%" EQU "5" echo N = No (or leave selection blank)
:tinyskip
echo.
echo B = Back
echo M = Main Menu
echo.
echo.
echo.
echo.
set /p NET=Enter Selection Here:
set "NET=%NET:"=%"
if /i "%MENU1%" NEQ "S" goto:miniskip
if /i "%SNEEKSELECT%" NEQ "5" goto:miniskip
if "%NET%"=="" set NET=N
:miniskip
if /i "%NET%" EQU "Y" goto:WPAGE8
if /i "%NET%" EQU "N" goto:WPAGE8
if /i "%NET%" EQU "M" goto:MENU
if /i "%NET%" EQU "B" goto:WPAGE6
echo You Have Entered an Incorrect Key
@ping 127.0.0.1 -n 2 -w 1000> nul
goto:WPAGE7
::...................................Wizard Page8 - Weather...............................
:WPAGE8
::disabled...
goto:WPAGE9
if /i "%MORE%" EQU "A" set Weather=Y
if /i "%MORE%" EQU "A" goto:WPAGE9
set Weather="
cls
echo ModMii v%currentversion%
echo by XFlak
echo.
echo.
echo Install the Weather Channel?
echo.
echo.
echo Note: requires WiiLink to work
echo Check it out after finishing with ModMii at https://wiilink24.com
echo or download the WiiLink Patcher from ModMii's Download Page 5
echo.
echo Y = Yes
echo N = No
echo.
echo B = Back
echo M = Main Menu
echo.
echo.
echo.
echo.
set /p WEATHER=Enter Selection Here:
set "WEATHER=%WEATHER:"=%"
if /i "%WEATHER%" EQU "Y" goto:WPAGE9
if /i "%WEATHER%" EQU "N" goto:WPAGE9
if /i "%WEATHER%" EQU "M" goto:MENU
if /i "%WEATHER%" EQU "B" goto:WPAGE7
echo You Have Entered an Incorrect Key
@ping 127.0.0.1 -n 2 -w 1000> nul
goto:WPAGE8
::...................................Wizard Page9 - NEWS...............................
:WPAGE9
::disabled...
goto:WPAGE10
if /i "%MORE%" EQU "A" set NEWS=Y
if /i "%MORE%" EQU "A" goto:WPAGE10
set NEWS="
cls
echo ModMii v%currentversion%
echo by XFlak
echo.
echo.
echo Install the News Channel?
echo.
echo.
echo Note: requires WiiLink to work
echo Check it out after finishing with ModMii at https://wiilink24.com
echo or download the WiiLink Patcher from ModMii's Download Page 5
echo.
echo Y = Yes
echo N = No
echo.
echo B = Back
echo M = Main Menu
echo.
echo.
echo.
echo.
set /p NEWS=Enter Selection Here:
set "NEWS=%NEWS:"=%"
if /i "%NEWS%" EQU "Y" goto:WPAGE10
if /i "%NEWS%" EQU "N" goto:WPAGE10
if /i "%NEWS%" EQU "M" goto:MENU
if /i "%NEWS%" EQU "B" goto:WPAGE8
echo You Have Entered an Incorrect Key
@ping 127.0.0.1 -n 2 -w 1000> nul
goto:WPAGE9
::...................................Wizard Page10 - Mii...............................
:WPAGE10
if /i "%MORE%" EQU "A" set MIIQ=Y
if /i "%MORE%" EQU "A" goto:WPAGE11
set MIIQ="
cls
echo ModMii v%currentversion%
echo by XFlak
echo.
echo.
echo Install the Mii Channel?
if /i "%MENU1%" NEQ "S" goto:skip
if /i "%SNEEKSELECT%" NEQ "5" goto:skip
if not exist temp\EmunandInfo.txt goto:skip
echo.
findStr /C:"(HACA)" "temp\EmunandInfo.txt" >nul
IF NOT ERRORLEVEL 1 support\sfk echo [%greentext%] - Mii Channel (HACA) Detected on EmuNAND Already
:skip
echo.
echo.
echo.
echo Y = Yes
if /i "%MENU1%" NEQ "S" (echo N = No) & (goto:tinyskip)
if /i "%SNEEKSELECT%" NEQ "5" echo N = No
if /i "%SNEEKSELECT%" EQU "5" echo N = No (or leave selection blank)
:tinyskip
echo.
echo B = Back
echo M = Main Menu
echo.
echo.
echo.
echo.
set /p MIIQ=Enter Selection Here:
set "MIIQ=%MIIQ:"=%"
if /i "%MENU1%" NEQ "S" goto:miniskip
if /i "%SNEEKSELECT%" NEQ "5" goto:miniskip
if "%MIIQ%"=="" set MIIQ=N
:miniskip
if /i "%MIIQ%" EQU "Y" goto:WPAGE11
if /i "%MIIQ%" EQU "N" goto:WPAGE11
if /i "%MIIQ%" EQU "M" goto:MENU
if /i "%REGIONTEMP%" EQU "K" goto:Koreanbacktophoto
::if /i "%MIIQ%" EQU "B" goto:WPAGE9
if /i "%MIIQ%" EQU "B" goto:WPAGE7
:Koreanbacktophoto
if /i "%MIIQ%" EQU "B" goto:WPAGE6
echo You Have Entered an Incorrect Key
@ping 127.0.0.1 -n 2 -w 1000> nul
goto:WPAGE10
::...................................Wizard Page11 - Shop...............................
:WPAGE11
if /i "%MORE%" EQU "A" set Shop=Y
if /i "%MORE%" EQU "A" goto:WPAGE12
set Shop="
cls
echo ModMii v%currentversion%
echo by XFlak
echo.
echo.
echo Install the Shopping Channel?
if /i "%MENU1%" NEQ "S" goto:skip
if /i "%SNEEKSELECT%" NEQ "5" goto:skip
if not exist temp\EmunandInfo.txt goto:skip
echo.
findStr /C:"(HABA)" "temp\EmunandInfo.txt" >nul
IF NOT ERRORLEVEL 1 support\sfk echo [%greentext%] - Wii Shop Channel (HABA) Detected on EmuNAND Already
findStr /C:"(HABK)" "temp\EmunandInfo.txt" >nul
IF NOT ERRORLEVEL 1 support\sfk echo [%greentext%] - Wii Shop Channel KOR (HABK) Detected on EmuNAND Already
:skip
echo.
echo.
echo Note: this can only re-download content you have already purchased
echo.
echo Note: IOS56 will also be downloaded
echo.
echo.
echo Y = Yes
if /i "%MENU1%" NEQ "S" (echo N = No) & (goto:tinyskip)
if /i "%SNEEKSELECT%" NEQ "5" echo N = No
if /i "%SNEEKSELECT%" EQU "5" echo N = No (or leave selection blank)
:tinyskip
echo.
echo B = Back
echo M = Main Menu
echo.
echo.
echo.
echo.
set /p SHOP=Enter Selection Here:
set "SHOP=%SHOP:"=%"
if /i "%MENU1%" NEQ "S" goto:miniskip
if /i "%SNEEKSELECT%" NEQ "5" goto:miniskip
if "%SHOP%"=="" set SHOP=N
:miniskip
if /i "%Shop%" EQU "Y" goto:WPAGE12
if /i "%Shop%" EQU "N" goto:WPAGE12
if /i "%Shop%" EQU "M" goto:MENU
if /i "%Shop%" EQU "B" goto:WPAGE10
echo You Have Entered an Incorrect Key
@ping 127.0.0.1 -n 2 -w 1000> nul
goto:WPAGE11
::...................................Wizard Page12 - Speak...............................
:WPAGE12
::disabled...
goto:WPAGE13
if /i "%REGIONTEMP%" EQU "K" goto:WPAGE13
if /i "%MORE%" EQU "A" set Speak=Y
if /i "%MORE%" EQU "A" goto:WPAGE13
set Speak="
cls
echo ModMii v%currentversion%
echo by XFlak
echo.
echo.
echo Install the Wii Speak Channel?
echo.
echo.
echo Note: requires WiiLink and Wiimmfi to work
echo Check them out after finishing with ModMii at https://wiilink24.com
echo or download the WiiLink Patcher from ModMii's Download Page 5
echo.
echo Y = Yes
echo N = No
echo.
echo B = Back
echo M = Main Menu
echo.
echo.
echo.
echo.
set /p Speak=Enter Selection Here:
set "Speak=%Speak:"=%"
if /i "%Speak%" EQU "Y" goto:WPAGE13
if /i "%Speak%" EQU "N" goto:WPAGE13
if /i "%Speak%" EQU "M" goto:MENU
if /i "%Speak%" EQU "B" goto:WPAGE11
echo You Have Entered an Incorrect Key
@ping 127.0.0.1 -n 2 -w 1000> nul
goto:WPAGE12
::...................................Wizard Page13 - MORE Advanced Channels?...............................
:WPAGE13
if /i "%VIRGIN%" EQU "Y" goto:WPAGE20
::if /i "%MENU1%" EQU "S" set B4SNKCONFIRM=WPAGE12
if /i "%MENU1%" EQU "S" set B4SNKCONFIRM=WPAGE11
if /i "%MORE%" EQU "A" set B4SNKCONFIRM=WPAGE5
if /i "%MENU1%" EQU "S" goto:SNKNANDCONFIRM
set Advanced="
set HMInstaller=
set RECCIOS=
set PRIQ=
set ThemeSelection=N
cls
echo ModMii v%currentversion%
echo by XFlak
echo.
echo.
echo Would you like to install and\or update any of the following:
echo.
echo.
echo.
echo * Homebrew Channel and\or Bootmii
echo.
if /i "%CMIOSOPTION%" EQU "on" (echo * Recommended cIOSs and cMIOS) else (echo * Recommended cIOSs)
echo.
echo * Priiloader (or system menu hacks)
echo.
echo * A System Menu Theme
echo.
echo * USB-Loader
echo.
echo.
echo Y = Yes
echo N = No
echo.
echo B = Back
echo M = Main Menu
echo.
echo.
echo.
echo.
set /p Advanced=Enter Selection Here:
set "Advanced=%Advanced:"=%"
if /i "%Advanced%" EQU "M" goto:MENU
if /i "%MORE%" EQU "N" goto:BACK2MORE
if /i "%MORE%" EQU "A" goto:BACK2MORE
if /i "%REGIONTEMP%" EQU "K" goto:BACK2WPAGE11
if /i "%Advanced%" EQU "B" goto:WPAGE5
:BACK2MORE
if /i "%Advanced%" EQU "B" goto:WPAGE5
:BACK2WPAGE11
if /i "%Advanced%" EQU "B" goto:WPAGE11
if /i "%Advanced%" EQU "Y" goto:WPAGE13B
if /i "%Advanced%" EQU "N" goto:WPAGELAST
echo You Have Entered an Incorrect Key
@ping 127.0.0.1 -n 2 -w 1000> nul
goto:WPAGE13
::...................................Wizard Page13B - HAckMii Installer...............................
:WPAGE13B
set HMInstaller="
cls
echo ModMii v%currentversion%
echo by XFlak
echo.
echo.
echo Would you like to install and\or update the Homebrew Channel and\or Bootmii?
echo.
echo Note: This will download the HackMii Installer and IOS58
echo.
echo.
echo.
echo Enter "Help" for an instructional video on checking your HBC version.
echo.
echo.
echo.
echo.
echo.
echo.
echo.
echo.
echo Y = Yes
echo N = No
echo.
echo B = Back
echo M = Main Menu
echo.
echo.
echo.
echo.
set /p HMInstaller=Enter Selection Here:
set "HMInstaller=%HMInstaller:"=%"
if /i "%HMInstaller%" EQU "Y" goto:WPAGE14
if /i "%HMInstaller%" EQU "N" goto:WPAGE14
if /i "%HMInstaller%" EQU "M" goto:MENU
if /i "%HMInstaller%" EQU "B" goto:WPAGE13
if /i "%HMInstaller%" NEQ "Help" goto:nohelp
start https://www.youtube.com/embed/EaoCGT2pOx0
goto:WPAGE13B
:nohelp
echo You Have Entered an Incorrect Key
@ping 127.0.0.1 -n 2 -w 1000> nul
goto:WPAGE13B
::...................................Wizard Page14 - cIOSs and cMIOSs...............................
:WPAGE14
set RECCIOS="
cls
echo ModMii v%currentversion%
echo by XFlak
echo.
echo.
if /i "%CMIOSOPTION%" EQU "on" (echo Would you like to update to the following recommended cIOSs and cMIOS?) else (echo Would you like to update to the following recommended cIOSs?)
echo.
echo.
echo.
if /i "%hermesOPTION%" EQU "off" goto:smallskip
echo *cIOS202[60]-v5.1R.wad
echo.
echo *cIOS222[38]-v4.wad
echo.
echo *cIOS223[37-38]-v4.wad
echo.
echo *cIOS224[57]-v5.1R.wad
echo.
:smallskip
echo *cIOS248[38]-d2x-v%d2x-beta-rev%.wad
echo.
echo *cIOS249[56]-d2x-v%d2x-beta-rev%.wad
echo.
echo *cIOS250[57]-d2x-v%d2x-beta-rev%.wad
echo.
echo *cIOS251[58]-d2x-v%d2x-beta-rev%.wad
echo.
::if /i "%CMIOSOPTION%" NEQ "off" echo *RVL-cMIOS-v65535(v10)_WiiGator_WiiPower_v0.2.wad
if /i "%CMIOSOPTION%" NEQ "off" echo *RVL-cMIOS[10]_Swiss_r1788.wad
echo.
echo.
echo.
echo Y = Yes
echo N = No
echo.
echo B = Back
echo M = Main Menu
echo.
echo.
echo.
echo.
set /p RECCIOS=Enter Selection Here:
set "RECCIOS=%RECCIOS:"=%"
if /i "%RECCIOS%" EQU "Y" goto:WPAGE19
if /i "%RECCIOS%" EQU "N" goto:WPAGE19
if /i "%RECCIOS%" EQU "M" goto:MENU
if /i "%RECCIOS%" EQU "B" goto:WPAGE13B
echo You Have Entered an Incorrect Key
@ping 127.0.0.1 -n 2 -w 1000> nul
goto:WPAGE14
::...................................Wizard Pages 15-18 removed...............................
::...................................Wizard Page19 - Priiloader...............................
:WPAGE19
set PRIQ="
cls
echo ModMii v%currentversion%
echo by XFlak
echo.
echo.
echo Would you like to install and\or update Priiloader (or system menu hacks)?
echo.
echo.
echo.
echo.
echo.
echo.
echo Y = Yes
echo N = No
echo.
echo B = Back
echo M = Main Menu
echo.
echo.
echo.
echo.
set /p PRIQ=Enter Selection Here:
set "PRIQ=%PRIQ:"=%"
if /i "%PRIQ%" EQU "Y" goto:WPAGE20
if /i "%PRIQ%" EQU "N" goto:WPAGE20
if /i "%PRIQ%" EQU "M" goto:MENU
if /i "%PRIQ%" EQU "B" goto:WPAGE14
echo You Have Entered an Incorrect Key
@ping 127.0.0.1 -n 2 -w 1000> nul
goto:WPAGE19
::...................................Wizard Page20 - Theme Selection...............................
:WPAGE20
set ThemeSelection=
if /i "%MENU1%" NEQ "S" goto:nocheck
if /i "%SNEEKSELECT%" NEQ "5" goto:nocheck
if "%ThemeChoice%"=="" goto:WPAGE5
:nocheck
cls
echo ModMii v%currentversion%
echo by XFlak
echo.
echo.
if /i "%MENU1%" NEQ "S" goto:quickskip
if /i "%SNEEKSELECT%" NEQ "5" (echo EMULATED NAND BUILDER) & (echo.) & (echo.) & (goto:quickskip)
echo EMULATED NAND MODIFIER
echo.
if "%SNKVERSION%"=="" (echo Unable to Determine EmuNAND System Menu Version) & (goto:quickskip)
if /i "%SNKVERSION%" EQU "V" echo Detected EmuNAND Type: vWii 4.3%SNKREGION%
if /i "%SNKVERSION%" NEQ "V" echo Detected EmuNAND Type: Wii %SNKVERSION%%SNKREGION%
echo.
echo.
:quickskip
if /i "%ctype%" NEQ "WiiU" (echo Would you like to install a custom Wii theme?) & (goto:skip)
echo Would you like to install a custom vWii theme or fix* the aspect ratio for the
echo Everybody Votes and Check Mii Out channels?
echo.
echo *43DB fixes included in all vWii themes built by ModMii, including the boring
echo Default, and any csm's built by user provided *.mym themes
:skip
echo.
echo.
echo WWW = View All Available Themes on Youtube
echo.
echo.
support\sfk echo -spat \x20 \x20 \x20 \x20 \x20CE = Channel Effect* for custom system menu themes: [%cyantext%]%effect%
echo * Choose from 3 effects: No-Spin, Spin and Fast-Spin
if /i "%SNEEKSELECT%" EQU "5" echo * Channel Effects also get applied to user provided mym's, but not csm's
echo.
echo.
if /i "%MENU1%" EQU "RC" (echo N = No, I want the same old boring default System Menu) & (goto:tinyskip)
if /i "%MENU1%" NEQ "S" (echo N = No, do not change the theme) & (goto:tinyskip)
if /i "%SNEEKSELECT%" NEQ "5" echo N = No, do not change the theme
if /i "%SNEEKSELECT%" EQU "5" echo N = No, do not change the theme (or leave selection blank)
echo.
echo mym ^| csm = Apply theme from any mym or csm file for your System Menu version
echo * Enter the path to any mym or csm file you'd like to use and hit Enter
if /i "%adminmode%" EQU "N" echo * You can drop the file onto this window instead of typing it
echo * Channel Effects also get applied to user provided mym's, but not csm's
echo * If a theme causes issues change it using ModMii's EmuNAND Modifer
:tinyskip
echo.
echo R = DarkWii Red Theme - %effect%
echo.
echo G = DarkWii Green Theme - %effect%
echo.
echo BL = DarkWii Blue Theme - %effect%
echo.
echo O = DarkWii Orange Theme - %effect%
echo.
if /i "%ctype:~0,3%" EQU "Wii" echo D = Default theme, select to restore the original theme
if /i "%ctype%" EQU "WiiU" echo and fix the aspect ratio used in a couple channels
if /i "%SNEEKSELECT%" EQU "5" echo D = Default Theme (restore original theme to the Emulated NAND)
echo.
echo.
echo B = Back
echo.
echo M = Main Menu
echo.
echo.
if "%ThemeSelection%"=="" set ThemeSelection="
set /p ThemeSelection=Enter Selection Here:
set "ThemeSelection=%ThemeSelection:"=%"
if /i "%MENU1%" NEQ "S" goto:miniskip
if /i "%SNEEKSELECT%" NEQ "5" goto:miniskip
if "%ThemeSelection%"=="" set ThemeSelection=N
:miniskip
if /i "%ThemeSelection%" EQU "M" goto:MENU
if /i "%ThemeSelection%" NEQ "WWW" goto:novid
start https://modmii.github.io/WiiThemes.html
goto:WPAGE20
:novid
if /i "%ThemeSelection%" EQU "CE" goto:OptionCEwizard
if /i "%MENU1%" NEQ "RC" goto:notRC
set BACKB4DRIVE=WPAGE20
if /i "%ThemeSelection%" EQU "R" goto:DriveChange
if /i "%ThemeSelection%" EQU "G" goto:DriveChange
if /i "%ThemeSelection%" EQU "BL" goto:DriveChange
if /i "%ThemeSelection%" EQU "O" goto:DriveChange
if /i "%ThemeSelection%" EQU "N" goto:DriveChange
if /i "%ThemeSelection%" EQU "B" goto:WPAGE4
if /i "%ThemeSelection%" EQU "D" goto:badkey
:notRC
if /i "%FIRMSTART%" EQU "U2" goto:vWii
if /i "%FIRMSTART%" EQU "v" goto:vWii
goto:notvWii
:vWii
if /i "%ThemeSelection%" EQU "R" goto:WPAGE3
if /i "%ThemeSelection%" EQU "G" goto:WPAGE3
if /i "%ThemeSelection%" EQU "BL" goto:WPAGE3
if /i "%ThemeSelection%" EQU "O" goto:WPAGE3
if /i "%ThemeSelection%" EQU "N" goto:WPAGE3
if /i "%ThemeSelection%" EQU "D" goto:WPAGE3
if /i "%ThemeSelection%" EQU "B" goto:WPAGE0
:notvWii
if /i "%MENU1%" EQU "S" goto:forsneeknand
if /i "%ThemeSelection%" EQU "R" goto:WPAGE21
if /i "%ThemeSelection%" EQU "G" goto:WPAGE21
if /i "%ThemeSelection%" EQU "BL" goto:WPAGE21
if /i "%ThemeSelection%" EQU "O" goto:WPAGE21
if /i "%ThemeSelection%" EQU "N" goto:WPAGE21
if /i "%ThemeSelection%" EQU "D" goto:WPAGE21
:forsneeknand
::if /i "%SNEEKSELECT%" EQU "5" goto:quickskip
if /i "%MENU1%" NEQ "S" goto:quickskip
if /i "%ThemeSelection%" EQU "B" goto:SNKPAGE5
::support for custom mym and csm files for EmuNAND only
::if /i "%SNEEKSELECT%" NEQ "5" goto:quickskip
if not exist "%ThemeSelection%" goto:quickskip
if /i "%ThemeSelection:~1,1%" NEQ ":" set "ThemeSelection=%cd%\%ThemeSelection%"
if /i "%ThemeSelection:~-4%" EQU ".csm" goto:WPAGE5
if /i "%ThemeSelection:~-4%" EQU ".mym" goto:WPAGE5
:quickskip
if /i "%ThemeSelection%" EQU "R" goto:WPAGE5
if /i "%ThemeSelection%" EQU "G" goto:WPAGE5
if /i "%ThemeSelection%" EQU "BL" goto:WPAGE5
if /i "%ThemeSelection%" EQU "O" goto:WPAGE5
if /i "%ThemeSelection%" EQU "N" goto:WPAGE5
if /i "%SNEEKSELECT%" NEQ "5" goto:miniskip
if /i "%ThemeSelection%" EQU "D" goto:WPAGE5
if /i "%ThemeSelection%" EQU "B" goto:SNKPAGE4c
:miniskip
if /i "%Advanced%" EQU "Y" goto:Back2PRI
if /i "%Advanced%" EQU "N" goto:Back2Advanced2
if /i "%MORE%" EQU "N" goto:Back2MORE2
if /i "%MORE%" EQU "A" goto:Back2MORE2
if /i "%REGIONTEMP%" EQU "K" goto:Back2SHOP2
if /i "%MORE%" EQU "S" goto:Back2Speak2
:BACK2PRI
if /i "%ThemeSelection%" EQU "B" goto:WPAGE19
:BACK2ADVANCED2
if /i "%ThemeSelection%" EQU "B" goto:WPAGE13
:BACK2SPEAK2
::if /i "%ThemeSelection%" EQU "B" goto:WPAGE12
if /i "%ThemeSelection%" EQU "B" goto:WPAGE11
:Back2SHOP2
if /i "%ThemeSelection%" EQU "B" goto:WPAGE11
:BACK2MORE2
if /i "%ThemeSelection%" EQU "B" goto:WPAGE5
:badkey
echo You Have Entered an Incorrect Key
@ping 127.0.0.1 -n 2 -w 1000> nul
goto:WPAGE20
:OptionCEwizard
if /i "%effect%" EQU "No-Spin" (set effect=Spin) & (support\sfk filter Support\settings.bat -ls!"Set effect=" -write -yes>nul) & (echo Set effect=Spin>>Support\settings.bat) & (goto:WPAGE20)
if /i "%effect%" EQU "Spin" (set effect=Fast-Spin) & (support\sfk filter Support\settings.bat -ls!"Set effect=" -write -yes>nul) & (echo Set effect=Fast-Spin>>Support\settings.bat) & (goto:WPAGE20)
if /i "%effect%" EQU "Fast-Spin" (set effect=No-Spin) & (support\sfk filter Support\settings.bat -ls!"Set effect=" -write -yes>nul) & (echo Set effect=No-Spin>>Support\settings.bat) & (goto:WPAGE20)
::...................................Wizard Page21 - USB Loader Setup Q...............................
:WPAGE21
set USBGUIDE="
cls
echo ModMii v%currentversion%
echo by XFlak
echo.
echo.
echo Would you like to set up a USB-Loader now?
echo.
echo.
echo Notes
echo =====
echo.
echo * USB-Loaders allow the Wii to play games off a USB Hard Drive or SD Card.
echo.
echo * This step can always be done by itself later on from ModMii's Main Menu.
echo.
echo.
echo.
echo.
echo.
echo Y = Yes
echo N = No
echo.
echo B = Back
echo M = Main Menu
echo.
echo.
echo.
echo.
set /p USBGUIDE=Enter Selection Here:
set "USBGUIDE=%USBGUIDE:"=%"
if /i "%USBGUIDE%" EQU "M" goto:MENU
if /i "%USBGUIDE%" NEQ "B" goto:notback
if /i "%FIRMSTART%" EQU "U2" goto:WPAGE3
if /i "%FIRMSTART%" EQU "V" goto:WPAGE3Cv
goto:WPAGE20
:notback
if /i "%USBGUIDE%" EQU "Y" goto:UPAGE1b
if /i "%USBGUIDE%" EQU "N" goto:WPAGELAST
echo You Have Entered an Incorrect Key
@ping 127.0.0.1 -n 2 -w 1000> nul
goto:WPAGE21
::...................................Wizard Last Page - Confirmation...............................
:WPAGELAST
set WLAST="
cls
echo ModMii v%currentversion%
echo by XFlak
echo.
echo.
echo Are these settings correct?
echo.
echo.
echo.
if /i "%FIRMSTART%" EQU "U" (echo * Install and\or update all recommended softmods for WiiU) & (goto:skipusb)
if /i "%FIRMSTART%" EQU "U2" (echo * Install and\or update all recommended softmods for WiiU and vWii) & (goto:moreinfo)
if /i "%FIRMSTART%" EQU "V" (echo * Install and\or update all recommended softmods for vWii) & (goto:moreinfo)
goto:wiiinfo
:moreinfo
if not "%REGION%"=="" echo * Console Region is %REGION%
if /i "%FIRMSTART%" EQU "V" goto:listexploits
goto:themeconfirm
:wiiinfo
echo * The console is a Wii
if /i "%VIRGIN%" EQU "Y" echo * Install and\or update all recommended softmods
if /i "%FIRMSTART%" NEQ "o" echo * Current System Menu is %FIRMSTART%%REGION%
if /i "%FIRMSTART%" EQU "o" echo * Current System Menu is less than 2.2%REGION%
echo * Desired System Menu is %FIRM%%REGION%
:listexploits
if /i "%EXPLOIT%" EQU "BE" echo * Browser Exploit selected
if /i "%EXPLOIT%" EQU "S" echo * Super Smash Brothers Brawl exploit selected
if /i "%EXPLOIT%" EQU "L" echo * LEGO Indiana Jones exploit selected
if /i "%EXPLOIT%" EQU "Y" echo * Yu-Gi-Oh! 5D's exploit selected
if /i "%EXPLOIT%" EQU "LB" echo * LEGO Batman exploit selected
if /i "%EXPLOIT%" EQU "LS" echo * LEGO Star Wars exploit selected
if /i "%EXPLOIT%" EQU "TOS" echo * Tales of Symphonia Dawn of the New World exploit selected
if /i "%EXPLOIT%" EQU "T" echo * Twilight Princess: The Legend of Zelda exploit selected
if /i "%EXPLOIT%" EQU "W" echo * Wilbrand\LetterBomb exploit selected
if /i "%EXPLOIT%" EQU "X" echo * str2hax exploit selected
if /i "%EXPLOIT%" EQU "?" echo * Download all available exploits and choose one later
if /i "%FIRMSTART%" EQU "V" goto:themeconfirm
if /i "%macaddress%" EQU "S" goto:skip
if not "%macaddress%"=="" (echo.) & (echo * MAC Address: %macaddress%)
:skip
echo.
if /i "%PIC%" EQU "Y" echo * Install the Photo Channel
if /i "%NET%" EQU "Y" echo * Install the Internet Channel
if /i "%WEATHER%" EQU "Y" echo * Install the Weather Channel
if /i "%NEWS%" EQU "Y" echo * Install the News Channel
if /i "%MIIQ%" EQU "Y" echo * Install the Mii Channel
if /i "%Shop%" EQU "Y" echo * Install the Shopping Channel (and IOS56)
if /i "%Speak%" EQU "Y" echo * Install the Wii Speak Channel
echo.
if /i "%HMInstaller%" EQU "Y" echo * Install and\or update the Homebrew Channel and Bootmii
if /i "%RECCIOS%" NEQ "Y" goto:smallskip
if /i "%CMIOSOPTION%" EQU "on" (echo * Install and\or update recommended cIOSs and cMIOS) else (echo * Install and\or update recommended cIOSs)
:smallskip
if /i "%PRIQ%" EQU "Y" echo * Install and\or update Priiloader
:themeconfirm
if /i "%ThemeSelection%" EQU "R" echo * Install Dark Wii Red Theme
if /i "%ThemeSelection%" EQU "G" echo * Install Dark Wii Green Theme
if /i "%ThemeSelection%" EQU "BL" echo * Install Dark Wii Blue Theme
if /i "%ThemeSelection%" EQU "O" echo * Install Dark Wii Orange Theme
if /i "%ThemeSelection%" EQU "D" echo * Install Default Wii Theme
::---------
:usbConfirm
if /i "%USBGUIDE%" NEQ "Y" goto:skipusb
echo.
if /i "%LOADER%" EQU "CFG" echo * Download Configurable USB-Loader
if /i "%LOADER%" EQU "FLOW" echo * Download WiiFlow
if /i "%LOADER%" EQU "GX" echo * Download USB-Loader GX
if /i "%LOADER%" EQU "ALL" echo * Download all USB-Loaders available in ModMii
if /i "%USBCONFIG%" EQU "USB" echo * USB-Loader Settings and config files saved to USB Hard Drive
if /i "%USBCONFIG%" NEQ "USB" echo * USB-Loader Settings and config files saved to SD Card
:skipusb
echo.
echo.
echo.
::if /i "%LoadWizSettings%" EQU "Y" goto:skip
echo S = Save Wizard Settings For Future Use
if exist Wizard_Settings.bat echo Existing Wizard_Settings.bat will be renamed
echo.
:::skip
echo Y = Yes
::echo N = No \ Main Menu
echo.
echo B = Back
echo M = Main Menu
echo.
echo.
echo.
echo.
set /p WLAST=Enter Selection Here:
set "WLAST=%WLAST:"=%"
::if /i "%LoadWizSettings%" EQU "Y" goto:skip
if /i "%WLAST%" EQU "S" goto:SaveWizardSettings
if /i "%WLAST%" NEQ "Y" goto:skip
::if vwii mods, check if d2x is disabled and revert to default
if /i "%FIRMSTART%" EQU "U2" goto:docheck
if /i "%FIRMSTART%" EQU "V" goto:docheck
goto:skipcheck
:docheck
if not exist "Support\d2x-beta\" goto:skipcheck
if not exist "Support\d2x-beta\ciosmaps_vWii.xml" goto:switch
::check ciosmaps_vWii.xml for 'base ios="38"'
findStr /I /C:"base ios=\"38\"" "Support\d2x-beta\ciosmaps_vWii.xml" >nul
IF NOT ERRORLEVEL 1 goto:skipcheck
::need to switch d2x version
:switch
echo.
if "%RecD2XcIOS%"=="" goto:Defaultd2x
::recommended d2x
echo Warning! d2x-v%d2x-beta-rev% is not fully supported for vWii, switching to recommended d2x version (v%RecD2XcIOS:~5%), this can be changed again later in the Options menu
echo.
pause
if /i "%d2x-bundled%" EQU "%RecD2XcIOS:~5%" goto:clearD2X
echo.
::download and extract recommended d2x beta
echo Enabling %RecD2XcIOS%...
echo.
if exist "support\More-cIOSs\%RecD2XcIOS%\d2x-beta.bat" goto:pickup
support\wget --output-document %RecD2XcIOS%.zip --no-check-certificate -t 3 "https://github.com/modmii/modmii.github.io/blob/master/temp/d2x/%RecD2XcIOS%.7z?raw=true" -q --show-progress
echo.
::delete if file is empty
>nul findstr "^" "%RecD2XcIOS%.zip" || del "%RecD2XcIOS%.zip"
if not exist "%RecD2XcIOS%.zip" (echo Failed to download %RecD2XcIOS%, reverting to bundled v%d2x-bundled% instead...) & (goto:clearD2X)
if not exist "support\More-cIOSs\%RecD2XcIOS%" mkdir "support\More-cIOSs\%RecD2XcIOS%"
support\7za e -aoa "%RecD2XcIOS%.zip" -o"support\More-cIOSs\%RecD2XcIOS%" *.* -r
del "%RecD2XcIOS%.zip">nul
if not exist "support\More-cIOSs\%RecD2XcIOS%\d2x-beta.bat" (rd /s /q "support\More-cIOSs\%RecD2XcIOS%") & (echo Failed to download %RecD2XcIOS%, reverting to bundled v%d2x-bundled% instead...) & (goto:clearD2X)
:pickup
if exist support\d2x-beta rd /s /q support\d2x-beta
mkdir support\d2x-beta
copy /y "support\More-cIOSs\%RecD2XcIOS%\*" "support\d2x-beta">nul
if exist support\d2x-beta\d2x-beta.bat call support\d2x-beta\d2x-beta.bat
echo.
if /i "%d2x-beta-rev%" NEQ "%RecD2XcIOS:~5%" (echo Failed to download %RecD2XcIOS%, reverting to bundled v%d2x-bundled% instead...) & (goto:clearD2X)
echo.
goto:skipcheck
:Defaultd2x
echo Warning! d2x-v%d2x-beta-rev% is not fully supported for vWii, reverting to default d2x version (v%d2x-bundled%), this can be changed again later in the Options menu
echo.
pause
:clearD2X
echo.
set d2x-beta-rev=%d2x-bundled%
rd /s /q support\d2x-beta
:skipcheck
if /i "%FIRMSTART%" EQU "U" goto:nod2xcheck
call support\subscripts\defaultd2x.bat
:nod2xcheck
set BACKB4DRIVE=WPAGELAST
goto:DriveChange
:skip
::if /i "%WLAST%" EQU "N" goto:Menu
if /i "%WLAST%" EQU "M" goto:MENU
if /i "%Advanced%" EQU "N" goto:Back2Advanced
if /i "%Advanced%" EQU "Y" goto:Back2USB
if /i "%MORE%" EQU "N" goto:Back2USB
if /i "%MORE%" EQU "S" goto:Back2USB
if /i "%USBGUIDE%" EQU "Y" goto:backtoUpage2
if /i "%FIRMSTART%" EQU "U" goto:BACK2WIIU
if /i "%USBGUIDE%" EQU "N" goto:Back2USB
:BACK2WIIU
if /i "%WLAST%" EQU "B" goto:WPAGE0
:BACK2ADVANCED
if /i "%WLAST%" EQU "B" goto:WPAGE13
:BACK2SPEAK
if /i "%WLAST%" EQU "B" goto:WPAGE12
:Back2USB
if /i "%WLAST%" EQU "B" goto:WPAGE21
:backtoUpage2
if /i "%WLAST%" EQU "B" goto:UPAGE2
echo You Have Entered an Incorrect Key
@ping 127.0.0.1 -n 2 -w 1000> nul
goto:WPAGELAST
::-------------Save Wizard Settings:-------------------
:SaveWizardSettings
cls
echo ModMii v%currentversion%
echo by XFlak
echo.
set countwiz=0
:renameWIZARDsettings
if not exist Wizard_Settings.bat goto:skip
SET /a countwiz=%countwiz%+1
if exist Wizard_Settings%countwiz%.bat goto:renameWIZARDsettings
move Wizard_Settings.bat Wizard_Settings%countwiz%.bat
:skip
echo ::ModMii v%currentversion% - Wizard Settings - %DATE% - %TIME% >> Wizard_Settings.bat
echo set VIRGIN=%VIRGIN%>> Wizard_Settings.bat
echo set REGION=%REGION%>> Wizard_Settings.bat
echo set FIRMSTART=%FIRMSTART%>> Wizard_Settings.bat
echo set FIRM=%FIRM%>> Wizard_Settings.bat
echo set PIC=%PIC%>> Wizard_Settings.bat
echo set NET=%NET%>> Wizard_Settings.bat
echo set WEATHER=%WEATHER%>> Wizard_Settings.bat
echo set NEWS=%NEWS%>> Wizard_Settings.bat
echo set MIIQ=%MIIQ%>> Wizard_Settings.bat
echo set Shop=%Shop%>> Wizard_Settings.bat
echo set Speak=%Speak%>> Wizard_Settings.bat
echo set HMInstaller=%HMInstaller%>> Wizard_Settings.bat
echo set PRIQ=%PRIQ%>> Wizard_Settings.bat
echo set ThemeSelection=%ThemeSelection%>> Wizard_Settings.bat
echo set EXPLOIT=%EXPLOIT%>> Wizard_Settings.bat
echo set MORE=%MORE%>> Wizard_Settings.bat
echo set ADVANCED=%ADVANCED%>> Wizard_Settings.bat
echo set UpdatesIOSQ=%UpdatesIOSQ%>> Wizard_Settings.bat
echo set RECCIOS=%RECCIOS%>> Wizard_Settings.bat
echo set USBGUIDE=%USBGUIDE%>> Wizard_Settings.bat
echo set LOADER=%LOADER%>> Wizard_Settings.bat
echo set USBCONFIG=%USBCONFIG%>> Wizard_Settings.bat
echo set macaddress=%macaddress%>> Wizard_Settings.bat
if exist Wizard_Settings.bat echo Wizard Settings Saved.
@ping 127.0.0.1 -n 2 -w 1000> nul
goto:WPAGELAST
::...................................USB-Loader Setup Page1b - Loader?...............................
:UPAGE1b
set LOADER="
set usbfolder=
set FLOW=
cls
echo ModMii v%currentversion%
echo by XFlak
echo.
echo What USB-Loader would you like to use?
echo.
echo.
echo.
support\sfk echo -spat \x20 \x20 \x20 [%greentext%] 1 = USB-Loader GX (RECOMMENDED)
echo.
echo 2 = Configurable USB-Loader
echo.
echo 3 = WiiFlow
echo.
echo 4 = All of the above
echo.
echo.
echo Note: The "Nintendont" Gamecube plugin is supported by all of these
echo loaders and will also be downloaded.
echo.
echo.
echo B = Back
echo.
echo M = Main Menu
echo.
echo.
echo.
set /p LOADER=Enter Selection Here:
set "LOADER=%LOADER:"=%"
if /i "%LOADER%" EQU "M" goto:MENU
if /i "%MENU1%" EQU "W" goto:skip
if /i "%LOADER%" EQU "B" goto:MENU
:skip
if /i "%LOADER%" EQU "B" goto:WPAGE21
set f32=*
set wbm=*
set nintendont=*
set CleanRip=*
set GCBM=*
set Nkit=*
if /i "%LOADER%" EQU "1" (set LOADER=GX) & (set usbgx=*) & (goto:UPAGE2)
if /i "%LOADER%" EQU "2" (set LOADER=CFG) & (set usbfolder=*) & (goto:UPAGE2)
if /i "%LOADER%" EQU "3" (set LOADER=FLOW) & (set FLOW=*) & (goto:UPAGE2)
if /i "%LOADER%" EQU "4" (set LOADER=ALL) & (set usbgx=*) & (set FLOW=*) & (set usbfolder=*) & (goto:UPAGE2)
echo You Have Entered an Incorrect Key
@ping 127.0.0.1 -n 2 -w 1000> nul
goto:UPAGE1b
::...................................USB-Loader Setup Page2 - Config on USB vs SD?...............................
:UPAGE2
set USBCONFIG="
cls
echo ModMii v%currentversion%
echo by XFlak
echo.
echo.
echo Where would you like to save your USB-Loader app, games and covers?
echo.
echo.
echo USB = USB (Files saved to "%DRIVEU%")
echo.
support\sfk echo -spat \x20 \x20 \x20 \x20 \x20 [%greentext%] Pros:[def] *SD Card not required to launch USB-Loader
echo *USB-Loader files and games can take up a relatively small
echo amount of larger USB Hard Drives
echo.
support\sfk echo -spat \x20 \x20 \x20 \x20 \x20 [%redtext%] Cons:[def] *Cannot launch the USB-Loader without USB Hard Drive
echo *Slightly slower loading time (almost negligible)
echo.
echo.
echo.
echo SD = SD (Files saved to "%DRIVE%")
echo.
support\sfk echo -spat \x20 \x20 \x20 \x20 \x20 [%greentext%] Pros:[def] *USB Hard Drive not required to launch USB-Loader
echo *Slightly faster loading time (almost negligible)
echo.
support\sfk echo -spat \x20 \x20 \x20 \x20 \x20 [%redtext%] Cons:[def] *Cannot launch the USB-Loader without SD Card
echo *USB-Loader files and games can take up a relatively large
echo amount of smaller SD Cards
echo.
echo.
echo Note: USB-Loaders can detect games on SD and USB if you want to use both
echo.
echo.
echo B = Back
echo.
echo M = Main Menu
echo.
echo.
echo.
echo.
set /p USBCONFIG=Enter Selection Here:
set "USBCONFIG=%USBCONFIG:"=%"
if /i "%USBCONFIG%" EQU "B" goto:UPAGE1b
if /i "%USBCONFIG%" EQU "M" goto:MENU
::if using wizard+usb-loader setup, set up both drive letters
if /i "%MENU1%" NEQ "W" goto:skip
if /i "%USBCONFIG%" EQU "USB" set BACKB4DRIVE=WPAGELAST
if /i "%USBCONFIG%" EQU "USB" set BACKB4DRIVEU=DRIVECHANGE
if /i "%USBCONFIG%" EQU "USB" goto:WPAGELAST
if /i "%USBCONFIG%" EQU "SD" call Support\settings.bat
if /i "%USBCONFIG%" EQU "SD" set BACKB4DRIVE=UPAGE2
if /i "%USBCONFIG%" EQU "SD" goto:WPAGELAST
:skip
if /i "%USBCONFIG%" EQU "USB" set "DRIVETEMP=%DRIVE%"
if /i "%USBCONFIG%" EQU "USB" set BACKB4DRIVEU=UPAGE2
if /i "%USBCONFIG%" EQU "USB" goto:DRIVEUCHANGE
if /i "%USBCONFIG%" EQU "SD" call Support\settings.bat
if /i "%USBCONFIG%" EQU "SD" set BACKB4DRIVE=UPAGE2
if /i "%USBCONFIG%" EQU "SD" goto:DriveChange
echo You Have Entered an Incorrect Key
@ping 127.0.0.1 -n 2 -w 1000> nul
goto:UPAGE2
::...................................SNEEK Page1 - SNEEK SELECT...............................
:SNKPAGE1
set SNEEKSELECT="
set SNKS2U=
set SNKnswitch=
set PRIIFOUND=
cls
echo ModMii v%currentversion%
echo by XFlak
echo.
echo.
echo Which of the following SNEEK Actions would you like to perform?
echo.
echo.
echo 1 = SNEEK Installation (Wii Only)
echo.
echo 2 = Emulated NAND Builder (Wii or vWii)
echo * Can also be used without SNEEK via USB-Loaders directly
echo.
echo 3 = All the above (Wii Only: Recommended for 1st time SNEEK users)
echo.
echo.
echo 4 = Game Bulk Extractor
echo * Extracted format required for OLDER versions of SNEEK
echo * Supported inputs include ISO, CISO and WBFS files
echo.
echo 5 = Emulated NAND Modifier
echo * Edit your existing Emulated NAND
echo Requirements:
echo.
echo * If you don't have Bootmii installed in order to run SNEEK you will
echo have to first use the ModMii Wizard or the Abstinence Wizard.
echo Or launch neek without bootmii using USB Loader GX or nSwitch.
echo.
echo * To optimize the speed of your SNEEK or SNEEK+DI emulated nand,
echo your SD card should be formatted using 32KB sector sizes.
echo.
echo * UNEEK and UNEEK+DI require the External Hard Drive be formatted
echo as FAT32 using cluster sizes 32KB or lower. If you don't know how to
echo format your drive this way, run ModMii's USB-Loader Setup.
echo.
echo * SNEEK+DI and UNEEK+DI always use the 1st partition if multiple are found.
echo.
if /i "%neek2o%" EQU "on" (set neekURL=https://tiny.cc/neek2o) else (set neekURL=https://code.google.com/p/sneek)
support\sfk echo -spat \x20 \x20 \x20 \x20 [%redtext%] WARNING: SNEEK is not directly supported by ModMii.
echo.
support\sfk echo -spat \x20 \x20 \x20 \x20 [%redtext%] Any problems you have with SNEEK that are not a direct result
support\sfk echo -spat \x20 \x20 \x20 \x20 [%redtext%] of ModMii should be reported here: %neekURL%
echo.
support\sfk echo -spat \x20 \x20 \x20 \x20 [%redtext%] This is also a great place to learn more about SNEEK in general.
support\sfk echo -spat \x20 \x20 \x20 \x20 [%redtext%] Another great resource is the guide here: tiny.cc/SNEEK-DI
echo.
echo B = Back
echo M = Main Menu
echo.
set /p SNEEKSELECT=Enter Selection Here:
set "SNEEKSELECT=%SNEEKSELECT:"=%"
if /i "%SNEEKSELECT%" EQU "B" goto:MENU
if /i "%SNEEKSELECT%" EQU "M" goto:MENU
if /i "%SNEEKSELECT%" EQU "1" goto:NEEKrevSelect
if /i "%SNEEKSELECT%" EQU "2" goto:SNKPAGE2
if /i "%SNEEKSELECT%" EQU "3" goto:NEEKrevSelect
if /i "%SNEEKSELECT%" EQU "4" goto:SNKDISCEX
if /i "%SNEEKSELECT%" EQU "5" goto:SNKNANDSELECTOR
echo You Have Entered an Incorrect Key
@ping 127.0.0.1 -n 2 -w 1000> nul
goto:SNKPAGE1
::...................................SNEEK Page - NEEK rev Selection...............................
:NEEKrevSelect
if exist temp\list.txt del temp\list.txt>nul
if exist temp\list2.txt del temp\list2.txt>nul
if /i "%neek2o%" EQU "ON" (set googlecode=neek2o) & (set neekname=neek2o)
if /i "%neek2o%" NEQ "ON" (set googlecode=sneeky-compiler-modmii) & (set neekname=neek)
::---------------SKIN MODE-------------
if /i "%SkinMode%" EQU "Y" goto:quickskip2
echo Checking which %neekname% versions are hosted online...
::get all list
support\wget --no-check-certificate -N "https://sourceforge.net/projects/%googlecode%/files/?source=navbar" -q
if exist index.html@* (move /y index.html@* temp\list.txt>nul) else (goto:nowifi)
::copy /y "temp\list.txt" "temp\list2.txt">nul
support\sfk filter -spat "temp\list.txt" -and+"/download\x22" -and+"%neekname%-rev" -rep _"/download\x22"__ -rep _*"/"__ -rep _".zip*"__ -rep _"*files/"__ -rep _%neekname%-rev__ -rep _\x2528_\x28_ -rep _\x2529_\x29_ -rep _\x2520_\x20_ -rep _\x253B_\x3B_ -rep _\x252C_\x2C_ -write -yes>nul
support\sfk filter -spat "temp\list.txt" -!"\x22" -!"n" -unique -no-empty-lines -no-blank-lines -write -yes>nul
:nowifi
::get local list
if not exist "temp\%neekname%\*.zip" goto:nolocallist
dir "temp\%neekname%\*.zip" /b /O:-N>>temp\list.txt
support\sfk filter "temp\list.txt" -rep _"%neekname%-rev"__ -rep _".zip"__ -write -yes>nul
support\sfk filter "temp\list.txt" -unique -write -yes>nul
:nolocallist
::---------------CMD LINE MODE-------------
if /i "%cmdlinemode%" EQU "Y" goto:getcurrentrev
::------actual page start----------
:NEEKrevSelect2
::count # of lines
SET neekTOTAL=0
for /f %%a in (temp\list.txt) do set /a neekTOTAL+=1
if /i "%neekTOTAL%" EQU "0" (echo Unable to connect to the internet and no %neekname% versions saved locally) & (@ping 127.0.0.1 -n 5 -w 1000> nul) & (set neekrev=B) & (goto:back)
Set neekrev=
cls
echo ModMii v%currentversion%
echo by XFlak
echo.
echo.
echo Select the version of %neekname% you would like to build:
echo.
echo.
set RevCount=0
set FeaturedTag=
::Loop through the following once for EACH line in *.txt
for /F "tokens=*" %%A in (temp\list.txt) do call :processNEEKlist %%A
goto:quickskip
:processNEEKlist
set CurrentRev=%*
set /a RevCount=%RevCount%+1
if not exist temp\list2.txt goto:nofeaturedcheck
findStr /I /C:"%CurrentRev%" "temp\list2.txt" >nul
IF ERRORLEVEL 1 (set FeaturedTag=) else (set FeaturedTag= - Featured)
:nofeaturedcheck
if not exist "temp\%neekname%\%neekname%-rev%CurrentRev%.zip" echo %RevCount% = %CurrentRev% (hosted online)%FeaturedTag%
if exist "temp\%neekname%\%neekname%-rev%CurrentRev%.zip" echo %RevCount% = %CurrentRev%%FeaturedTag%
goto:EOF
:quickskip
echo.
echo.
echo B = Back
echo.
echo M = Main Menu
echo.
echo.
if "%neekrev%"=="" set neekrev="
set /p neekrev=Enter Selection Here:
set "neekrev=%neekrev:"=%"
if "%neekrev%"=="" goto:badkey
if /i "%neekrev%" EQU "M" goto:MENU
:back
if /i "%AbstinenceWiz%" NEQ "Y" goto:NotAbstinenceWiz
if /i "%neekrev%" NEQ "B" goto:NotAbstinenceWiz
if /i "%FIRMSTART%" EQU "4.3" goto:WPAGE3C
if /i "%FIRMSTART%" EQU "o" goto:WPAGE3C
goto:WPAGE2
:NotAbstinenceWiz
if /i "%neekrev%" EQU "B" goto:SNKPAGE1
::if not numeric goto:badkey
for %%A in ("%neekrev%") do (for /f "tokens=1 delims=0123456789" %%B in ("%%~A") do goto:badkey)
::Remove leading zeros
for /f "tokens=* delims=0" %%A in ("%neekrev%") do set "neekrev=%%A"
::Set to 0 if entire input is all zeros
if "%neekrev%"=="" set "neekrev=0"
if %neekrev% LSS 1 goto:badkey
if /i %neekrev% GTR %RevCount% goto:badkey
:getcurrentrev
::---------------CMD LINE MODE-------------
if /i "%cmdlinemode%" NEQ "Y" goto:cmdskip
if "%neekrev%"=="" goto:quickskip2
:cmdskip
::----get selected %currentrev%----
set RevCount2=0
::Loop through the following once for EACH line in *.txt
for /F "tokens=*" %%A in (temp\list.txt) do call :processlist2 %%A
goto:quickskip2
:processlist2
set CurrentRev=%*
set /a RevCount2=%RevCount2%+1
if /i "%RevCount2%" EQU "%neekrev%" goto:quickskip2
goto:EOF
:quickskip2
::---------------CMD LINE MODE-------------
if /i "%cmdlinemode%" NEQ "Y" goto:cmdskip
if /i "%AbstinenceWiz%" EQU "Y" goto:DOWNLOAD
goto:SNEEKINSTALLER
:cmdskip
goto:SNKPAGE2
:badkey
echo You Have Entered an Incorrect Key
@ping 127.0.0.1 -n 2 -w 1000> nul
goto:NEEKrevSelect2
::...................................SNEEK Page - DML rev Selection...............................
:CurrentDMLRevSelect
::DISABLED
goto:%AfterDMLRevSelect%
if exist temp\list.txt del temp\list.txt>nul
if exist temp\list2.txt del temp\list2.txt>nul
:nowifi
::get local list
if not exist "temp\DML\*.wad" goto:nolocallist
dir "temp\DML\*.wad" /b /O:-N>>temp\list.txt
::support\sfk filter "temp\list.txt" -rep _"diosmioslitesv"__ -rep _".wad"__ -write -yes>nul
support\sfk filter "temp\list.txt" -rep _".wad"__ -write -yes>nul
support\sfk filter "temp\list.txt" -unique -write -yes>nul
:nolocallist
::---------------CMD LINE MODE-------------
if /i "%cmdlinemode%" EQU "Y" goto:getCurrentDMLRev
::------actual page start----------
:CurrentDMLRevSelect2
::count # of folders in advance to set "mode"
SET DMLTOTAL=0
if exist temp\list.txt for /f %%a in (temp\list.txt) do set /a DMLTOTAL+=1
::if /i "%DMLTOTAL%" EQU "0" (echo No DML versions saved locally) & (@ping 127.0.0.1 -n 5 -w 1000> nul) & (goto:%B4DMLRevSelect%)
Set DMLrev=
cls
echo ModMii v%currentversion%
echo by XFlak
echo.
echo.
echo Select the version of DML (or Dios Mios) you would like to install:
echo.
echo To add versions to the below list, download them from here:
echo https://code.google.com/archive/p/diosmios/wikis/Downloads.wiki
echo Then save them to ModMii's "temp\DML" folder
if not exist temp\DML mkdir temp\DML
echo.
echo.
echo * DML requires either Sneek+DI r157+ or NeoGamma R9 beta 55+
echo.
::echo * DML Debug Mode saves logs to the SD Card.
echo * USB Gecko debug can only be enabled by compiling the source manually.
echo.
set RevCount=0
if not exist temp\list.txt goto:quickskip
::Loop through the following once for EACH line in *.txt
for /F "tokens=*" %%A in (temp\list.txt) do call :processDMLlist %%A
goto:quickskip
:processDMLlist
set CurrentDMLRev=%*
set /a RevCount=%RevCount%+1
::if not exist temp\list2.txt goto:nofeaturedcheck
::findStr /I /C:"%CurrentDMLRev%" "temp\list2.txt" >nul
::IF ERRORLEVEL 1 (set FeaturedTag=) else (set FeaturedTag= - Featured)
:nofeaturedcheck
::if not exist "temp\DML\diosmioslitesv%CurrentDMLRev%.wad" echo %RevCount% = diosmioslitesv%CurrentDMLRev% (hosted on google code)%FeaturedTag%
::if exist "temp\DML\diosmioslitesv%CurrentDMLRev%.wad" echo %RevCount% = diosmioslitesv%CurrentDMLRev%%FeaturedTag%
echo %RevCount% = %CurrentDMLRev%
goto:EOF
:quickskip
echo.
echo.
echo B = Back
echo.
echo M = Main Menu
echo.
echo.
if "%DMLrev%"=="" set DMLrev="
set /p DMLrev=Enter Selection Here:
set "DMLrev=%DMLrev:"=%"
if "%DMLrev%"=="" goto:badkey
if /i "%DMLrev%" EQU "M" goto:MENU
if /i "%DMLrev%" EQU "B" (set DML=) & (set CurrentDMLRev=) & (goto:%B4DMLRevSelect%)
::if not numeric goto:badkey
for %%A in ("%DMLrev%") do (for /f "tokens=1 delims=0123456789" %%B in ("%%~A") do goto:badkey)
::Remove leading zeros
for /f "tokens=* delims=0" %%A in ("%DMLrev%") do set "DMLrev=%%A"
::Set to 0 if entire input is all zeros
if "%DMLrev%"=="" set "DMLrev=0"
if %DMLrev% LSS 1 goto:badkey
if /i %DMLrev% GTR %RevCount% goto:badkey
:getCurrentDMLRev
::---------------CMD LINE MODE-------------
if /i "%cmdlinemode%" NEQ "Y" goto:cmdskip
if "%DMLrev%"=="" goto:quickskip
:cmdskip
::----get selected %CurrentDMLRev%----
set RevCount2=0
::Loop through the following once for EACH line in *.txt
for /F "tokens=*" %%A in (temp\list.txt) do call :processlist3 %%A
goto:quickskip
:processlist3
set CurrentDMLRev=%*
set /a RevCount2=%RevCount2%+1
if /i "%RevCount2%" EQU "%DMLrev%" goto:quickskip
goto:EOF
:quickskip
::---------------CMD LINE MODE-------------
if /i "%cmdlinemode%" EQU "Y" goto:skipDMLcmd
goto:%AfterDMLRevSelect%
:badkey
echo You Have Entered an Incorrect Key
@ping 127.0.0.1 -n 2 -w 1000> nul
goto:CurrentDMLRevSelect2
::...................................SNEEK Page2 - SNEEK TYPE...............................
:SNKPAGE2
set SNEEKTYPE="
cls
echo ModMii v%currentversion%
echo by XFlak
echo.
if /i "%SNEEKSELECT%" NEQ "2" echo What type of SNEEK would you like to install?
if /i "%SNEEKSELECT%" EQU "2" echo What type of SNEEK would you like to build an emulated NAND for?
if /i "%SNEEKSELECT%" EQU "2" (echo.) & (echo Note: Any type of SNEEK can be selected if the EmuNAND will be used without SNEEK) & (echo via USB-Loaders directly)
echo.
if /i "%SNEEKSELECT%" NEQ "1" echo Note: EmuNANDs built for any type of SNEEK work with any other type of SNEEK.
if /i "%SNEEKSELECT%" NEQ "1" echo Also, ANY region Wii\vWii can use ANY region emulated NAND
echo.
echo UD = UNEEK+DI
echo * Emulated nand/memory is on FAT32 External Hard Drive
echo * Load Wii games off your FAT32 External Hard Drive
echo * You can load apps off an SD Card via the Homebrew Channel
echo * DVD-Drive access is disabled for games while running UNEEK+DI
echo but can be used in apps (ie. WiiXplorer)
echo.
echo SD = SNEEK+DI
echo * Emulated nand/memory is on SD Card
echo * Load Wii games off your FAT32 External Hard Drive
echo * Load GameCube games off your SD Card using DML
echo * You can load apps off a FAT32 USB HDD via the Homebrew Channel
echo * DVD-Drive access is disabled for games while running SNEEK+DI
echo but can be used in apps (ie. WiiXplorer)
echo.
echo U = UNEEK
echo * Emulated nand/memory is on FAT32 External Hard Drive
echo * You cannot load any games off your Hard Drive
echo * You can load apps off an SD Card via the Homebrew Channel
echo * DVD-Drive access is enabled
echo * Backup disc loading requires DarkCorp installed on emulated nand
echo (Newer Wii's have a DVD-Drive that prevents backup disc loading)
echo.
echo S = SNEEK
echo * Emulated nand/memory is on SD Card
::echo * You can load ONE game at a time off your FAT32 External Hard Drive
echo * You cannot load any games off your Hard Drive
echo * You can load apps off a FAT32 USB HDD via the Homebrew Channel
echo * DVD-Drive access is enabled
echo * Backup disc loading requires DarkCorp installed on emulated nand
echo (Newer Wii's have a DVD-Drive that prevents backup disc loading)
echo.
echo B = Back
echo.
echo M = Main Menu
echo.
set /p SNEEKTYPE=Enter Selection Here:
set "SNEEKTYPE=%SNEEKTYPE:"=%"
if "%SNEEKTYPE%"=="" goto:badkey
if /i "%SNEEKTYPE%" NEQ "B" goto:notback
if /i "%SNEEKSELECT%" EQU "1" goto:NEEKrevSelect2
if /i "%SNEEKSELECT%" EQU "3" goto:NEEKrevSelect2
if /i "%AbstinenceWiz%" EQU "Y" goto:NEEKrevSelect2
goto:SNKPAGE1
:notback
if /i "%SNEEKTYPE%" EQU "M" goto:MENU
if /i "%AbstinenceWiz%" NEQ "Y" goto:NotAbstinenceWiz
if /i "%SNEEKTYPE%" EQU "U" (set BACKB4DRIVE=SNKPAGE2) & (goto:DriveChange)
if /i "%SNEEKTYPE%" EQU "UD" (set BACKB4DRIVE=SNKPAGE2) & (goto:DriveChange)
:NotAbstinenceWiz
if /i "%SNEEKTYPE%" EQU "S" set BACKB4DRIVE=SNKPAGE2
if /i "%SNEEKTYPE%" EQU "SD" set BACKB4DRIVE=SNKPAGE2
if /i "%SNEEKTYPE%" EQU "U" set BACKB4DRIVE=SNKPAGE2
if /i "%SNEEKTYPE%" EQU "UD" set BACKB4DRIVE=SNKPAGE2
if /i "%SNEEKTYPE%" EQU "SD" goto:DRIVECHANGE
if /i "%SNEEKTYPE%" EQU "S" goto:DRIVECHANGE
::if only building nand, no need to set drive, only driveU
if /i "%SNEEKSELECT%" EQU "2" goto:skip
if /i "%SNEEKTYPE%" EQU "UD" goto:DRIVECHANGE
if /i "%SNEEKTYPE%" EQU "U" goto:DRIVECHANGE
goto:badkey
:skip
if /i "%SNEEKTYPE%" EQU "U" set BACKB4DRIVEU=SNKPAGE2
if /i "%SNEEKTYPE%" EQU "U" goto:DRIVEUCHANGE
if /i "%SNEEKTYPE%" EQU "UD" set BACKB4DRIVEU=SNKPAGE2
if /i "%SNEEKTYPE%" EQU "UD" goto:DRIVEUCHANGE
:badkey
echo You Have Entered an Incorrect Key
@ping 127.0.0.1 -n 2 -w 1000> nul
goto:SNKPAGE2
::...................................SNEEK Page3 - SNEEK REGION...............................
:SNKPAGE3
if /i "%SNEEKTYPE:~0,1%" EQU "S" set "nandpath=%DRIVE%"
if /i "%SNEEKTYPE:~0,1%" EQU "U" set "nandpath=%DRIVEU%"
set DITYPE=off
if /i "%SNEEKTYPE%" EQU "UD" set DITYPE=on
if /i "%SNEEKTYPE%" EQU "SD" set DITYPE=on
set SNKREGION=
cls
echo ModMii v%currentversion%
echo by XFlak
echo.
echo.
if /i "%SNEEKSELECT%" EQU "5" (echo EMULATED NAND MODIFIER) else (echo EMULATED NAND BUILDER)
echo.
echo.
echo What Region would you like to make your emulated NAND?
echo.
echo.
echo.
echo Note: If you want your wiimotes be synced up to your real NAND
echo and your emulated NAND simultaneously, then you must choose
echo the real region of your console
echo.
if /i "%neek2o%" EQU "ON" goto:skip
support\sfk echo -spat \x20 \x20 [%redtext%] Warning:[def] JPN\Korean NANDs specifically do NOT have Region Free hacks
echo enabled by default. This only applies to WiiWare/VC Games,
echo the DI/Game Menu can still play Wii Games of All Regions.
echo However, you can still enable region free hacks using Priiloader.
:skip
echo.
echo.
echo U = USA
echo E = Euro (PAL)
echo J = JPN
echo K = Korean
echo.
echo.
echo.
echo B = Back
echo.
echo M = Main Menu
echo.
echo.
echo.
echo.
if "%SNKREGION%"=="" set SNKREGION="
set /p SNKREGION=Enter Selection Here:
set "SNKREGION=%SNKREGION:"=%"
if "%SNKREGION%"=="" goto:badkey
if /i "%SNKREGION%" EQU "B" goto:%B4SNKPAGE3%
if /i "%SNKREGION%" EQU "M" goto:MENU
if /i "%SNKREGION%" EQU "u" set SNKREGION=U
if /i "%SNKREGION%" EQU "e" set SNKREGION=E
if /i "%SNKREGION%" EQU "j" set SNKREGION=J
if /i "%SNKREGION%" EQU "k" set SNKREGION=K
if /i "%SNKREGION%" EQU "U" set defaultserial=LU521175683
if /i "%SNKREGION%" EQU "E" set defaultserial=LEH133789940
if /i "%SNKREGION%" EQU "J" set defaultserial=LJM101175683
if /i "%SNKREGION%" EQU "K" set defaultserial=LKM101175683
set serialdigits=11 or 12
::if /i "%SNKREGION%" EQU "U" (set serialdigits=11 or 12) else (set serialdigits=12)
if /i "%SNKREGION%" EQU "U" goto:SNKPAGE4
if /i "%SNKREGION%" EQU "E" goto:SNKPAGE4
if /i "%SNKREGION%" EQU "J" goto:SNKPAGE4
if /i "%SNKREGION%" EQU "K" goto:SNKPAGE4
:badkey
echo You Have Entered an Incorrect Key
@ping 127.0.0.1 -n 2 -w 1000> nul
goto:SNKPAGE3
::...................................SNEEK Page4 - SNEEK VERSION...............................
:SNKPAGE4
set SNKVERSION="
::If region is USA and building NAND for DI, force 4.2 and go to next page
::if /i "%DITYPE%" EQU "OFF" goto:skip
::if /i "%SNKREGION%" EQU "U" set SNKVERSION=4.2
::if /i "%SNKREGION%" EQU "U" goto:SNKPAGE5
:::skip
cls
echo ModMii v%currentversion%
echo by XFlak
echo.
echo.
if /i "%SNEEKSELECT%" EQU "5" (echo EMULATED NAND MODIFIER) else (echo EMULATED NAND BUILDER)
echo.
echo.
echo What System Menu Version would you like your SNEEK emulated NAND to be?
echo.
echo.
echo.
if /i "%neek2o%" EQU "ON" goto:skip
if /i "%SNKREGION%" EQU "U" support\sfk echo -spat \x20 \x20 [%redtext%] Warning:[def] 4.2U/4.1U specifically do NOT have Region Free hacks enabled by
if /i "%SNKREGION%" EQU "U" echo default. This only applies to WiiWare/VC Games (aka Channels),
if /i "%SNKREGION%" EQU "U" echo the DI/Game Menu can still play Wii Games of All Regions.
if /i "%SNKREGION%" EQU "U" echo However, you can still enable region free hacks using Priiloader.
:skip
echo.
echo.
echo.
echo 4.3 = 4.3
echo 4.2 = 4.2
echo 4.1 = 4.1
if /i "%SNEEKSELECT%" NEQ "2" goto:skip
if /i "%SNKREGION%" NEQ "K" echo V = vWii 4.3
if /i "%SNKREGION%" EQU "K" (echo Note: to choose vWii select a Region other than Korean) & (echo.)
:skip
echo.
echo.
echo.
echo B = Back
echo.
echo M = Main Menu
echo.
echo.
echo.
echo.
set /p SNKVERSION=Enter Selection Here:
set "SNKVERSION=%SNKVERSION:"=%"
if "%SNKVERSION%"=="" goto:badkey
if /i "%SNKVERSION%" EQU "M" goto:MENU
if /i "%SNKVERSION%" EQU "B" goto:SNKPAGE3
if /i "%SNKVERSION%" EQU "4.3" goto:SNKPAGE4a
if /i "%SNKVERSION%" EQU "4.2" goto:SNKPAGE4a
if /i "%SNKVERSION%" EQU "4.1" goto:SNKPAGE4a
if /i "%SNEEKSELECT%" NEQ "2" goto:badkey
if /i "%SNKREGION%" EQU "K" goto:badkey
if /i "%SNKVERSION%" EQU "V" goto:SNKPAGE4a
:badkey
echo You Have Entered an Incorrect Key
@ping 127.0.0.1 -n 2 -w 1000> nul
goto:SNKPAGE4
::...................................SNEEK Page4a - postLoader Channel...............................
:SNKPAGE4a
set SNKPLC=
set SNKOHBC=N
cls
echo ModMii v%currentversion%
echo by XFlak
echo.
echo.
if /i "%SNEEKSELECT%" NEQ "5" (echo EMULATED NAND BUILDER) & (goto:skip)
echo EMULATED NAND MODIFIER
echo.
if "%SNKVERSION%"=="" (echo Unable to Determine EmuNAND System Menu Version) & (goto:miniskip)
if /i "%SNKVERSION%" EQU "V" echo Detected EmuNAND Type: vWii 4.3%SNKREGION%
if /i "%SNKVERSION%" NEQ "V" echo Detected EmuNAND Type: Wii %SNKVERSION%%SNKREGION%
:miniskip
if not exist temp\EmunandInfoSum.txt goto:skip
echo.
type temp\EmunandInfoSum.txt
echo.
findStr /C:"(OHBC)" "temp\EmunandInfo.txt" >nul
IF NOT ERRORLEVEL 1 support\sfk echo [%greentext%] - Open Homebrew Channel (OHBC) Detected on EmuNAND Already
findStr /C:"(LULZ)" "temp\EmunandInfo.txt" >nul
IF NOT ERRORLEVEL 1 support\sfk echo [%greentext%] - Homebrew Channel (LULZ) Detected on EmuNAND Already
findStr /C:"(BOST)" "temp\EmunandInfo.txt" >nul
IF NOT ERRORLEVEL 1 support\sfk echo [%greentext%] - postLoader Forwarder Channel (BOST) Detected on EmuNAND Already
:skip
echo.
echo.
if /i "%SNKVERSION%" EQU "V" echo Would you like the Open Homebrew Channel (OHBC v1.1.3)
if /i "%SNKVERSION%" NEQ "V" echo Would you like the Open Homebrew Channel (LULZ v1.1.5; aka v1.1.3 but with LULZ ID)
echo and\or a postLoader Forwarder Channel (BOST) on your emulated NAND?
echo.
echo.
echo postLoader aims to replace the Homebrew Channel, Forwarders,
echo USB-Loaders with emulated NAND support, etc.
echo.
echo It used to be impossible to install the latest Homebrew Channel
echo to emulated nands so this gained much popularity as an alternative.
echo.
echo Today you can use the Open Homebrew Channel by FIX94 on your EmuNAND.
echo.
echo.
echo Y = Yes, install both
echo O = Open Homebrew Channel only
echo P = postLoader Forwarder Channel only
if /i "%SNEEKSELECT%" NEQ "5" echo N = None
if /i "%SNEEKSELECT%" EQU "5" echo N = None (or leave selection blank)
echo.
echo.
echo B = Back
echo.
echo M = Main Menu
echo.
echo.
if "%SNKPLC%"=="" set SNKPLC="
set /p SNKPLC=Enter Selection Here:
set "SNKPLC=%SNKPLC:"=%"
if /i "%SNEEKSELECT%" NEQ "5" goto:miniskip
if "%SNKPLC%"=="" set SNKPLC=N
:miniskip
if "%SNKPLC%"=="" goto:badkey
if /i "%SNKPLC%" NEQ "B" goto:miniskip
if /i "%SNEEKSELECT%" EQU "5" (goto:SNKNANDSELECTOR) else (goto:SNKPAGE4)
:miniskip
if /i "%SNKPLC%" EQU "M" goto:MENU
if /i "%SNKPLC%" EQU "N" goto:SNKPAGE4a2
if /i "%SNKPLC%" EQU "Y" (set SNKOHBC=Y) & (goto:SNKPAGE4a2)
if /i "%SNKPLC%" EQU "P" (set SNKPLC=Y) & (goto:SNKPAGE4a2)
if /i "%SNKPLC%" EQU "O" (set SNKOHBC=Y) & (set SNKPLC=N) & (goto:SNKPAGE4a2)
:badkey
echo You Have Entered an Incorrect Key
@ping 127.0.0.1 -n 2 -w 1000> nul
goto:SNKPAGE4a
::...................................SNEEK Page4a2 - cIOS...............................
:SNKPAGE4a2
set SNKCIOS=
set SNKcBC=
set SNKPRI=
::for vWii emunands skip cIOS, DML/NMM & Priiloader
if /i "%SNKVERSION%" EQU "V" goto:SNKPAGE4c
cls
echo ModMii v%currentversion%
echo by XFlak
echo.
echo.
if /i "%SNEEKSELECT%" EQU "5" (echo EMULATED NAND MODIFIER) else (echo EMULATED NAND BUILDER)
echo.
echo.
echo Would you like to install cIOS249 rev14 to your emulated NAND?
if /i "%SNEEKSELECT%" NEQ "5" goto:skip
if not exist temp\EmunandInfo.txt goto:skip
echo.
support\sfk hexfind "temp\EmunandInfo.txt" -binary /494F53323439202830303030303030313030303030304639290D0A2020202056657273696F6E3A2031342028302E313429/ >nul
::ERRORLEVEL 1 means found, 0 means not found
IF ERRORLEVEL 1 support\sfk echo [%greentext%] - cIOS249 rev14 Detected on EmuNAND Already
:skip
echo.
echo.
echo Some apps that require a cIOS will only work on s\uneek with cIOS rev14.
echo For example, SaveGame Manager GX will work on s\uneek with cIOS rev14.
echo.
echo.
echo.
echo.
echo.
echo.
echo.
echo.
echo.
echo Y = Yes
echo.
if /i "%SNEEKSELECT%" NEQ "5" echo N = No
if /i "%SNEEKSELECT%" EQU "5" echo N = No (or leave selection blank)
echo.
echo.
echo.
echo B = Back
echo.
echo M = Main Menu
echo.
echo.
echo.
echo.
if "%SNKCIOS%"=="" set SNKCIOS="
set /p SNKCIOS=Enter Selection Here:
set "SNKCIOS=%SNKCIOS:"=%"
if /i "%SNEEKSELECT%" NEQ "5" goto:miniskip
if "%SNKCIOS%"=="" set SNKCIOS=N
:miniskip
if "%SNKCIOS%"=="" goto:badkey
if /i "%SNKCIOS%" EQU "B" goto:SNKPAGE4a
if /i "%SNKCIOS%" EQU "M" goto:MENU
if /i "%SNKCIOS%" EQU "Y" goto:SNKPAGE4a3
if /i "%SNKCIOS%" EQU "N" goto:SNKPAGE4a3
:badkey
echo You Have Entered an Incorrect Key
@ping 127.0.0.1 -n 2 -w 1000> nul
goto:SNKPAGE4a2
::...................................SNEEK Page4a3 - cBC...............................
:SNKPAGE4a3
set SNKcBC=
::::for vWii emunands skip cIOS, DML/NMM & Priiloader
::if /i "%SNKVERSION%" EQU "V" goto:SNKPAGE4c
if /i "%AbstinenceWiz%" EQU "Y" goto:SNKPAGE4b
if /i "%SNEEKSELECT%" EQU "5" set sneektype=SD
cls
echo ModMii v%currentversion%
echo by XFlak
echo.
echo.
if /i "%SNEEKSELECT%" EQU "5" (echo EMULATED NAND MODIFIER) else (echo EMULATED NAND BUILDER)
echo.
echo.
if /i "%SNEEKTYPE%" EQU "SD" (echo Would you like DML or NMM on your emulated NAND?) else (echo Would you like NMM on your emulated NAND?)
echo.
echo.
if /i "%SNEEKTYPE%" EQU "SD" echo.
if /i "%SNEEKTYPE%" EQU "SD" echo DML is installed to real NAND and can be accessed via an emulated NAND.
if /i "%SNEEKTYPE%" EQU "SD" echo.
if /i "%SNEEKTYPE%" EQU "SD" echo DML (Dios Mios Lite) is a tool which allows you to run Gamecube games
if /i "%SNEEKTYPE%" EQU "SD" echo from an SD Card. Compatability is not 100%% and it only works with
if /i "%SNEEKTYPE%" EQU "SD" echo SNEEK+DI. For best results your SD card should be formatted
if /i "%SNEEKTYPE%" EQU "SD" echo using 64KB sector sizes when running DML.
if /i "%SNEEKTYPE%" EQU "SD" echo.
if /i "%SNEEKTYPE%" EQU "SD" echo DML requires either Sneek+DI r157+ or NeoGamma R9 beta 55+
if /i "%SNEEKTYPE%" EQU "SD" echo.
if /i "%SNEEKTYPE%" EQU "SD" echo Note: Since Nintendont, DML is generally not used anymore.
if /i "%SNEEKTYPE%" EQU "SD" echo.
if /i "%SNEEKTYPE%" EQU "SD" echo.
echo NMM (No More Memory-Cards) redirects all GameCube Memory Card access
echo to the SD card. This allow saving\loading GameCube game saves
echo without a GC Memory Card.
echo.
echo.
if /i "%SNEEKTYPE%" EQU "SD" echo Note: NMM and DML cannot both be installed at the same time
echo.
if /i "%SNEEKSELECT%" EQU "5" echo Note: DML currently only works when using SNEEK+DI
echo.
echo.
if /i "%SNEEKSELECT%" NEQ "5" goto:nowarning
if /i "%BCTYPE%" EQU "BC" goto:nowarning
if /i "%BCTYPE%" EQU "NONE" goto:nowarning
if /i "%BCTYPE%" EQU "NMM" support\sfk echo -spat \x20 \x20 [%yellowtext%] WARNING: Answering anything other than %BCtype% will uninstall %BCtype%
if /i "%BCTYPE%" EQU "DML" support\sfk echo -spat \x20 \x20 [%yellowtext%] Outdated DML will be uninstalled from the Emulated NAND
if /i "%BCTYPE%" EQU "DML" support\sfk echo -spat \x20 \x20 [%yellowtext%] as newer versions need to be installed to the real NAND
:nowarning
echo.
if /i "%SNEEKTYPE%" EQU "SD" echo DML = DML
if /i "%SNEEKTYPE%" EQU "SD" echo.
if /i "%SNEEKTYPE%" EQU "SD" (echo NMM = NMM) else (echo Y = Yes)
echo.
if /i "%SNEEKSELECT%" NEQ "5" echo N = No
if /i "%SNEEKSELECT%" EQU "5" echo N = No (or leave selection blank)
echo.
echo.
echo.
echo B = Back
echo.
echo M = Main Menu
echo.
echo.
if "%SNKcBC%"=="" set SNKcBC="
set /p SNKcBC=Enter Selection Here:
set "SNKcBC=%SNKcBC:"=%"
if /i "%SNEEKSELECT%" NEQ "5" goto:miniskip
if "%SNKcBC%"=="" set SNKcBC=N
:miniskip
if "%SNKcBC%"=="" goto:badkey
if /i "%SNKcBC%" EQU "B" goto:SNKPAGE4a2
if /i "%SNKcBC%" EQU "M" goto:MENU
if /i "%SNKcBC%" EQU "N" goto:SNKPAGE4b
if /i "%SNEEKTYPE%" EQU "SD" goto:skip
if /i "%SNKcBC%" EQU "Y" (set SNKcBC=NMM) & (goto:SNKPAGE4b)
:skip
if /i "%SNEEKTYPE%" NEQ "SD" goto:badkey
if /i "%SNKcBC%" EQU "NMM" goto:SNKPAGE4b
if /i "%SNKcBC%" EQU "DML" (set B4DMLRevSelect=SNKPAGE4a3) & (set AfterDMLRevSelect=SNKPAGE4b) & (goto:CurrentDMLRevSelect)
::if /i "%SNKcBC%" EQU "DML" goto:SNKPAGE4b
:badkey
echo You Have Entered an Incorrect Key
@ping 127.0.0.1 -n 2 -w 1000> nul
goto:SNKPAGE4a3
::...................................SNEEK Page4b - Priiloader For SNEEK...............................
:SNKPAGE4b
set SNKPRI=
::::for vWii emunands skip cIOS, DML/NMM & Priiloader
::if /i "%SNKVERSION%" EQU "V" goto:SNKPAGE4c
if /i "%SNEEKSELECT%" EQU "5" (set sneektype=) else (goto:nocheck)
if "%SMAPP%"=="" goto:SNKPAGE4c
:nocheck
cls
echo ModMii v%currentversion%
echo by XFlak
echo.
echo.
if /i "%SNEEKSELECT%" EQU "5" (echo EMULATED NAND MODIFIER) else (echo EMULATED NAND BUILDER)
echo.
echo.
echo Would you like Priiloader (^& System Menu Hacks) on your EmuNAND?
echo.
echo Doing this will allow you to enable system menu hacks on your emulated NAND.
echo It will also permit autobooting sneek to apps of your choice (ie. WiiFlow).
echo.
echo.
echo Note: neek2o rev93-96 will bypass Priiloader if detected on EmuNAND.
echo.
echo Note: to access Priiloader on your emulated NAND, hold reset just as
echo your emulated NAND is booting up or use the Load Priiloader app.
echo.
echo.
if /i "%SNEEKSELECT%" NEQ "5" goto:tinyskip
if /i "%PRIIFOUND%" EQU "YES" support\sfk echo -spat \x20 [%yellowtext%] NOTICE: Priiloader was detected on your EmuNAND. Answering No will remove it.
if /i "%PRIIFOUND%" EQU "YES" support\sfk echo -spat \x20 [%yellowtext%] \x20 \x20 \x20 \x20 Answering Yes or leaving the selection blank will retain your CURRENT Priiloader.
echo.
if /i "%PRIIFOUND%" EQU "YES" support\sfk echo -spat \x20 [%yellowtext%] \x20 \x20 \x20 \x20 To update your Priiloader installation, answer No to remove Priiloader,
if /i "%PRIIFOUND%" EQU "YES" support\sfk echo -spat \x20 [%yellowtext%] \x20 \x20 \x20 \x20 then repeat this process a second time and answer Yes to add it back.
:tinyskip
echo.
echo.
echo.
echo Y = Yes
echo.
echo N = No
echo.
echo.
echo.
echo B = Back
echo.
echo M = Main Menu
echo.
echo.
echo.
echo.
if "%SNKPRI%"=="" set SNKPRI="
set /p SNKPRI=Enter Selection Here:
set "SNKPRI=%SNKPRI:"=%"
if /i "%PRIIFOUND%" NEQ "YES" goto:skip
if "%SNKPRI%"=="" set SNKPRI=Y
:skip
if /i "%SNEEKSELECT%" NEQ "5" goto:miniskip
if "%SNKPRI%"=="" set SNKPRI=N
:miniskip
if "%SNKPRI%"=="" goto:badkey
if /i "%SNKPRI%" NEQ "B" goto:notback
if /i "%AbstinenceWiz%" EQU "Y" goto:SNKPAGE4a2
goto:SNKPAGE4a3
:notback
if /i "%SNKPRI%" EQU "M" goto:MENU
if /i "%SNKPRI%" EQU "Y" goto:SNKPAGE4c
if /i "%SNKPRI%" EQU "N" goto:SNKPAGE4c
:badkey
echo You Have Entered an Incorrect Key
@ping 127.0.0.1 -n 2 -w 1000> nul
goto:SNKPAGE4b
::...................................SNEEK Page4c - WiiFlow...............................
:SNKPAGE4c
set SNKFLOW="
::if /i "%SNEEKSELECT%" EQU "5" goto:tinyskip
::::skip this page if sneektype not uneek or uneek+di
::if /i "%SNEEKTYPE:~0,1%" EQU "S" (set SNKFLOW=N) & (goto:SNKPAGE4d)
:::tinyskip
cls
echo ModMii v%currentversion%
echo by XFlak
echo.
echo.
if /i "%SNEEKSELECT%" EQU "5" (echo EMULATED NAND MODIFIER) else (echo EMULATED NAND BUILDER)
echo.
echo.
echo Would you like a WiiFlow Forwarder Channel on your emulated NAND?
if /i "%SNEEKSELECT%" NEQ "5" goto:skip
if not exist temp\EmunandInfo.txt goto:skip
echo.
findStr /C:"(BWFA)" "temp\EmunandInfo.txt" >nul
IF NOT ERRORLEVEL 1 support\sfk echo [%greentext%] - WiiFlow Forwarder Channel (BWFA) Detected on EmuNAND Already
:skip
echo.
echo.
if /i "%SNKPRI%" EQU "Y" echo Note: WiiFlow Forwarder dol will also be added as Priiloader's
if /i "%SNKPRI%" EQU "Y" echo installed file. Priiloader's autoboot settings will still need
if /i "%SNKPRI%" EQU "Y" echo to be changed if you would like your emulated nand to autoboot
if /i "%SNKPRI%" EQU "Y" echo the installed file.
if /i "%SNKPRI%" EQU "Y" echo.
if /i "%SNKPRI%" EQU "Y" echo.
echo *WiiFlow is USB-Loader NEEK that is a visually appealing alternative
echo to loading Wii games\channels via the emulated System Menu
echo.
echo.
echo.
echo.
echo.
echo.
echo.
echo.
echo.
echo Y = Yes
echo.
if /i "%SNEEKSELECT%" NEQ "5" echo N = No
if /i "%SNEEKSELECT%" EQU "5" echo N = No (or leave selection blank)
echo.
echo.
echo.
echo B = Back
echo.
echo M = Main Menu
echo.
echo.
echo.
echo.
set /p SNKFLOW=Enter Selection Here:
set "SNKFLOW=%SNKFLOW:"=%"
if /i "%SNEEKSELECT%" NEQ "5" goto:miniskip
if "%SNKFLOW%"=="" set SNKFLOW=N
:miniskip
if "%SNKFLOW%"=="" goto:badkey
if /i "%SNKFLOW%" NEQ "B" goto:notback
if /i "%SNKVERSION%" EQU "V" goto:SNKPAGE4a
if /i "%SNEEKSELECT%" NEQ "5" goto:SNKPAGE4b
if "%SMAPP%"=="" (goto:SNKPAGE4a3) else (goto:SNKPAGE4b)
:notback
if /i "%SNKFLOW%" EQU "M" goto:MENU
if /i "%SNKFLOW%" EQU "Y" goto:SNKPAGE4d
if /i "%SNKFLOW%" EQU "N" goto:SNKPAGE4d
:badkey
echo You Have Entered an Incorrect Key
@ping 127.0.0.1 -n 2 -w 1000> nul
goto:SNKPAGE4c
::...................................SNEEK Page4d - Switch2UNEEK...............................
:SNKPAGE4d
set SNKS2U="
if /i "%AbstinenceWiz%" EQU "Y" (set SNKS2U=N) & (goto:SNKPAGE4e)
if /i "%SNEEKSELECT%" EQU "5" (set SNKS2U=N) & (goto:SNKPAGE4e)
::skip this page if neek2o is enabled
if /i "%neek2o%" EQU "on" (set SNKS2U=N) & (goto:SNKPAGE4e)
::skip this page if sneektype not uneek or uneek+di
if /i "%SNEEKTYPE:~0,1%" EQU "S" (set SNKS2U=N) & (goto:SNKPAGE4e)
::skip this page if emunand is for vWii
if /i "%SNKVERSION%" EQU "V" (set SNKS2U=N) & (goto:SNKPAGE4e)
cls
echo ModMii v%currentversion%
echo by XFlak
echo.
echo.
if /i "%SNEEKSELECT%" EQU "5" (echo EMULATED NAND MODIFIER) else (echo EMULATED NAND BUILDER)
echo.
echo.
echo Would you like to use Switch2Uneek?
echo.
echo.
echo Switch2Uneek is a utility to help you easily switch between
echo your Emulated Uneek Nand and your Real Nand.
echo.
echo.
echo If you answer "Y", you must access UNEEK by launching switch2uneek
echo from the Homebrew Channel. Alternatively, can use YAWM ModMii Edition
echo to install the switch2uneek forwarder channel that will be saved to
echo your SD card.
echo.
echo.
echo.
echo.
echo.
echo.
echo.
echo.
echo Y = Yes
echo.
echo N = No
echo.
echo.
echo.
echo B = Back
echo.
echo M = Main Menu
echo.
echo.
echo.
echo.
set /p SNKS2U=Enter Selection Here:
set "SNKS2U=%SNKS2U:"=%"
if "%SNKS2U%"=="" goto:badkey
if /i "%SNKS2U%" EQU "B" goto:SNKPAGE4c
if /i "%SNKS2U%" EQU "M" goto:MENU
if /i "%SNKS2U%" EQU "Y" goto:SNKPAGE4d
if /i "%SNKS2U%" EQU "N" goto:SNKPAGE4d
:badkey
echo You Have Entered an Incorrect Key
@ping 127.0.0.1 -n 2 -w 1000> nul
goto:SNKPAGE4d
::...................................SNEEK Page4e - nswitch...............................
:SNKPAGE4e
set SNKnswitch=
if /i "%SNEEKSELECT%" NEQ "5" goto:skip
if /i "%nswitchFound%" EQU "Yes" (set nSwitch=) & (set SNKnswitch=N) & (goto:SNKPAGE5)
:skip
cls
echo ModMii v%currentversion%
echo by XFlak
echo.
echo.
if /i "%SNEEKSELECT%" EQU "5" (echo EMULATED NAND MODIFIER) else (echo EMULATED NAND BUILDER)
echo.
echo.
echo Would you like an nSwitch (neek2o) Channel installed to your EmuNAND?
if /i "%SNEEKSELECT%" NEQ "5" goto:skip
if not exist temp\EmunandInfo.txt goto:skip
echo.
findStr /C:"(BK2O)" "temp\EmunandInfo.txt" >nul
IF NOT ERRORLEVEL 1 support\sfk echo [%greentext%] - nSwitch (neek2o) Channel (BK2O) Detected on EmuNAND Already
:skip
echo.
echo.
echo This is a simple neek/realnand switcher app embedded in a channel to
echo help switch between your Emulated Nand and your Real Nand.
echo.
echo.
echo If you answer "Y", the WAD will be saved to your SD card so you can
echo optionally also install it to your real NAND using YAWM ModMii Edition.
echo.
echo.
echo.
echo.
echo.
echo.
echo.
echo.
echo.
echo Y = Yes
echo.
if /i "%SNEEKSELECT%" NEQ "5" echo N = No
if /i "%SNEEKSELECT%" EQU "5" echo N = No (or leave selection blank)
echo.
echo.
echo.
echo B = Back
echo.
echo M = Main Menu
echo.
echo.
echo.
echo.
if "%SNKnswitch%"=="" set SNKnswitch="
set /p SNKnswitch=Enter Selection Here:
set "SNKnswitch=%SNKnswitch:"=%"
if /i "%SNEEKSELECT%" NEQ "5" goto:miniskip
if "%SNKnswitch%"=="" set SNKnswitch=N
:miniskip
if "%SNKnswitch%"=="" goto:badkey
if /i "%SNKnswitch%" NEQ "B" goto:notback
if /i "%AbstinenceWiz%" EQU "Y" goto:SNKPAGE4c
if /i "%SNEEKSELECT%" EQU "5" goto:SNKPAGE4c
if /i "%neek2o%" EQU "on" goto:SNKPAGE4c
if /i "%SNEEKTYPE:~0,1%" EQU "S" goto:SNKPAGE4c
if /i "%SNKVERSION%" EQU "V" goto:SNKPAGE4c
goto:SNKPAGE4d
:notback
if /i "%SNKnswitch%" EQU "M" goto:MENU
if /i "%SNKnswitch%" EQU "Y" goto:SNKPAGE5
if /i "%SNKnswitch%" EQU "N" goto:SNKPAGE5
:badkey
echo You Have Entered an Incorrect Key
@ping 127.0.0.1 -n 2 -w 1000> nul
goto:SNKPAGE4e
::...................................SNEEK Page5 - SNEEK SERIAL...............................
:SNKPAGE5
if /i "%SNEEKSELECT%" NEQ "5" goto:nocheck
set SNKSERIAL=
if "%SMAPP%"=="" (goto:WPAGE20) else (goto:nonandcheck)
:nocheck
if /i "%SNEEKTYPE:~0,1%" EQU "S" set "nandpath=%DRIVE%"
if /i "%SNEEKTYPE:~0,1%" EQU "U" set "nandpath=%DRIVEU%"
if /i "%neek2o%" EQU "ON" goto:DOIT
if /i "%SNKS2U%" EQU "N" goto:quickskip
:DOIT
SET NANDcount=0
if /i "%SNKREGION%" EQU "U" set nandregion=us
if /i "%SNKREGION%" EQU "E" set nandregion=eu
if /i "%SNKREGION%" EQU "J" set nandregion=jp
if /i "%SNKREGION%" EQU "K" set nandregion=kr
if not exist "%nandpath%\nands\pl_%nandregion%" (set "nandpath=%nandpath%\nands\pl_%nandregion%") & (goto:quickskip)
:NANDname
SET /a NANDcount=%NANDcount%+1
if not exist "%nandpath%\nands\pl_%nandregion%%NANDcount%" (set "nandpath=%nandpath%\nands\pl_%nandregion%%NANDcount%") & (goto:quickskip)
goto:NANDname
:quickskip
set nandexist=no
if exist "%nandpath%"\title set nandexist=yes
if exist "%nandpath%"\ticket set nandexist=yes
if exist "%nandpath%"\sys set nandexist=yes
if exist "%nandpath%"\shared1 set nandexist=yes
:nonandcheck
if /i "%SNEEKSELECT%" EQU "5" (set settingtxtExist=yes) else (set settingtxtExist=no)
cls
echo ModMii v%currentversion%
echo by XFlak
echo.
echo.
if /i "%SNEEKSELECT%" EQU "5" (echo EMULATED NAND MODIFIER) else (echo EMULATED NAND BUILDER)
echo.
echo.
echo Enter the 11-12 digit serial number you want to use to create setting.txt?
echo.
echo.
if /i "%settingtxtExist%" EQU "yes" support\sfk echo -spat \x20 [%redtext%] setting.txt already exists in:
if /i "%settingtxtExist%" EQU "yes" echo "%nandpath%"
if /i "%settingtxtExist%" EQU "yes" support\sfk echo -spat \x20 [%redtext%] Leave the selection blank to keep using this setting.txt
echo.
echo.
echo Enter your serial number now
echo.
echo Example: %defaultserial%
echo.
echo.
echo.
echo D = Default Serial %defaultserial%
echo.
echo.
echo Note: You can change this at any time using ModMii's EmuNAND Modifer
echo.
echo.
echo Note: If you want your emulated NAND to have internet access
echo you should use the serial from your console
echo (or use the setting.txt from your NAND Dump)
echo.
echo.
echo.
echo.
echo B = Back
echo.
echo M = Main Menu
echo.
echo.
echo.
echo.
if "%SNKSERIAL%"=="" set SNKSERIAL="
set /p SNKSERIAL=Enter Selection Here:
set "SNKSERIAL=%SNKSERIAL:"=%"
if /i "%settingtxtExist%" EQU "no" goto:skip
IF "%SNKSERIAL%"=="" (set SNKSERIAL=current) & (goto:WPAGE20)
:skip
if "%SNKSERIAL%"=="" goto:badkey
if /i "%SNKSERIAL%" EQU "M" goto:MENU
if /i "%SNKSERIAL%" NEQ "B" goto:quickskip
if /i "%SNEEKSELECT%" NEQ "5" goto:skip
if /i "%nswitchFound%" EQU "Yes" (goto:SNKPAGE4c) else (goto:SNKPAGE4e)
:skip
if /i "%SNKVERSION%" EQU "V" goto:SNKPAGE4e
if /i "%SNEEKTYPE:~0,1%" EQU "S" goto:SNKPAGE4e
if /i "%AbstinenceWiz%" EQU "Y" goto:SNKPAGE4e
if /i "%neek2o%" EQU "ON" (goto:SNKPAGE4e) else (goto:SNKPAGE4d)
:quickskip
if /i "%SNKSERIAL%" EQU "D" set SNKSERIAL=%defaultserial%
::limit user input to X# of digits
if "%SNKSERIAL:~10%"=="" goto:badkey
if /i "%SNKREGION%" EQU "U" goto:skip
::if "%SNKSERIAL:~11%"=="" goto:badkey
:skip
if not "%SNKSERIAL:~12%"=="" goto:badkey
::next page
goto:WPAGE20
:badkey
echo You Have Entered an Incorrect Key
@ping 127.0.0.1 -n 2 -w 1000> nul
goto:SNKPAGE5
::...................................SNEEK Nand Builder Confirmation...............................
:SNKNANDCONFIRM
set SNKNANDCONFIRM="
cls
echo ModMii v%currentversion%
echo by XFlak
echo.
echo.
if /i "%AbstinenceWiz%" NEQ "Y" goto:notabstinence
if /i "%FIRMSTART%" NEQ "o" echo Abstinence Wizard for %FIRMSTART%%REGION%
if /i "%FIRMSTART%" EQU "o" echo Abstinence Wizard for ^<2.2%REGION%
echo.
:notabstinence
if /i "%SNEEKSELECT%" EQU "5" echo You are about to make the following changes to your Emulated NAND
if /i "%SNEEKSELECT%" NEQ "3" goto:notalsoinstalling
if /i "%SNEEKTYPE%" EQU "SD" echo You are about to install %neekname%: SNEEK+DI Rev%CurrentRev% and build a %SNKVERSION%%SNKREGION% Emulated Nand
if /i "%SNEEKTYPE%" EQU "UD" echo You are about to install %neekname%: UNEEK+DI Rev%CurrentRev% and build a %SNKVERSION%%SNKREGION% Emulated Nand
if /i "%SNEEKTYPE%" EQU "S" echo You are about to install %neekname%: SNEEK Rev%CurrentRev% and build a %SNKVERSION%%SNKREGION% Emulated Nand
if /i "%SNEEKTYPE%" EQU "U" echo You are about to install %neekname%: UNEEK Rev%CurrentRev% and build a %SNKVERSION%%SNKREGION% Emulated Nand
echo.
if /i "%neek2o%" EQU "on" echo neek2o Enabled (can be changed in options)
if /i "%neek2o%" NEQ "on" echo neek2o Disabled (can be changed in options)
if /i "%SSD%" EQU "on" echo SNEEK and SNEEK+DI SD Access Enabled (can be changed in options)
if /i "%SSD%" NEQ "on" echo SNEEK and SNEEK+DI SD Access Disabled (can be changed in options)
goto:skip
:notalsoinstalling
if /i "%SNEEKSELECT%" NEQ "2" goto:tinyskip
if /i "%SNKVERSION%" NEQ "V" echo You are about to build a %SNKVERSION%%SNKREGION% Emulated Nand
if /i "%SNKVERSION%" EQU "V" echo You are about to build a vWii %SNKREGION% Emulated Nand
:tinyskip
if /i "%SNEEKSELECT%" NEQ "1" goto:skip
if /i "%SNEEKTYPE%" EQU "SD" echo You are about to build SNEEK+DI Rev%CurrentRev%
if /i "%SNEEKTYPE%" EQU "UD" echo You are about to build UNEEK+DI Rev%CurrentRev%
if /i "%SNEEKTYPE%" EQU "U" echo You are about to build UNEEK Rev%CurrentRev%
if /i "%SNEEKTYPE%" EQU "S" echo You are about to build SNEEK Rev%CurrentRev%
echo.
if /i "%neek2o%" EQU "on" echo neek2o Enabled (can be changed in options)
if /i "%neek2o%" NEQ "on" echo neek2o Disabled (can be changed in options)
if /i "%SSD%" EQU "on" echo SNEEK and SNEEK+DI SD Access Enabled (can be changed in options)
if /i "%SSD%" NEQ "on" echo SNEEK and SNEEK+DI SD Access Disabled (can be changed in options)
echo.
echo.
echo.
echo.
goto:nonandinstallation
:skip
if not exist temp\WAD mkdir temp\WAD
echo.
::echo Install WADs from: "temp\WAD\"
echo EmuNAND Location: "%nandpath%\"
if /i "%SNEEKSELECT%" NEQ "5" goto:skip
if not exist temp\EmunandInfoSum.txt goto:skip
echo.
type temp\EmunandInfoSum.txt
:skip
echo.
IF not "%addwadfolder%"=="" echo Install wads from custom folder: "%addwadfolder%\"
IF "%addwadfolder%"=="" (echo A = Add custom folder of wads to install to the emulated NAND) else (echo R = Remove custom folder of wads from emulated NAND)
echo.
echo.
IF "%addwadfolder%"=="" (set emuitems=0) else (set emuitems=1)
set emuwadcount=%emuitems%
::if /i "%SNEEKSELECT%" NEQ "5" goto:skipthis
if /i "%SNKSERIAL%" NEQ "current" SET /a emuitems=%emuitems%+1
if /i "%SNKSERIAL%" NEQ "current" echo * setting.txt will be created using this serial number: %SNKSERIAL%
::if /i "%SNKSERIAL%" EQU "current" echo * Existing setting.txt will be kept
echo.
:skipthis
::if /i "%SNEEKSELECT%" NEQ "5" goto:skipthis
if /i "%SNKnswitch%" EQU "Y" (SET /a emuitems=%emuitems%+1) & (SET /a emuwadcount=%emuwadcount%+1)
if /i "%SNKnswitch%" EQU "Y" echo * Install nSwitch (neek2o) Channel
if /i "%SNKnswitch%" EQU "Y" echo.
:skipthis
if /i "%SNKPLC%" EQU "Y" (SET /a emuitems=%emuitems%+1) & (SET /a emuwadcount=%emuwadcount%+1)
if /i "%SNKPLC%" EQU "Y" echo * Install postLoader Channel
if /i "%SNKPLC%" EQU "Y" echo.
if /i "%SNKOHBC%" EQU "Y" (SET /a emuitems=%emuitems%+1) & (SET /a emuwadcount=%emuwadcount%+1)
if /i "%SNKOHBC%" EQU "Y" echo * Install Homebrew Channel
if /i "%SNKOHBC%" EQU "Y" echo.
if /i "%SNKCIOS%" EQU "Y" (SET /a emuitems=%emuitems%+1) & (SET /a emuwadcount=%emuwadcount%+1)
if /i "%SNKCIOS%" EQU "Y" echo * Install cIOS249 rev14
if /i "%SNKCIOS%" EQU "Y" echo.
if /i "%SNEEKSELECT%" NEQ "5" goto:skipthis
if /i "%BCtype%" EQU "BC" goto:skipthis
if /i "%BCtype%" EQU "NONE" goto:skipthis
if /i "%SNKcBC%" EQU "N" (SET /a emuitems=%emuitems%+1) & (SET /a emuwadcount=%emuwadcount%+1)
if /i "%SNKcBC%" EQU "N" echo * Uninstall %BCTYPE%
if /i "%SNKcBC%" EQU "N" echo.
:skipthis
if /i "%BCtype%" EQU "NMM" goto:noNMM
if /i "%SNKcBC%" EQU "NMM" (SET /a emuitems=%emuitems%+1) & (SET /a emuwadcount=%emuwadcount%+1)
if /i "%SNKcBC%" EQU "NMM" echo * Install NMM (No More Memory-Cards)
if /i "%SNKcBC%" EQU "NMM" echo.
:noNMM
if /i "%BCtype%" EQU "DML" goto:noDML
if /i "%SNKcBC%" EQU "DML" SET /a emuitems=%emuitems%+1
::if /i "%SNKcBC%" EQU "DML" (SET /a emuitems=%emuitems%+1) & (SET /a emuwadcount=%emuwadcount%+1)
if /i "%SNKcBC%" EQU "DML" echo * Install DML (Dios Mios Lite) v1.3 to Real NAND
if /i "%SNKcBC%" EQU "DML" echo.
:noDML
set uninstallprii=
if /i "%SNEEKSELECT%" NEQ "5" goto:not5
if /i "%PRIIFOUND%" EQU "YES" (goto:priifound) else (goto:not5)
:priifound
::if /i "%SNKPRI%" EQU "Y" echo * Priiloader already Installed
::if /i "%SNKPRI%" EQU "Y" echo.
if /i "%SNKPRI%" EQU "N" SET /a emuitems=%emuitems%+1
if /i "%SNKPRI%" EQU "N" echo * Uninstall Priiloader
if /i "%SNKPRI%" EQU "N" echo.
if /i "%SNKPRI%" EQU "N" set uninstallprii=yes
goto:miniskip
:not5
if /i "%SNKPRI%" EQU "Y" SET /a emuitems=%emuitems%+1
if /i "%SNKPRI%" EQU "Y" echo * Install Priiloader
if /i "%SNKPRI%" EQU "Y" echo.
:miniskip
if /i "%SNKFLOW%" EQU "Y" (SET /a emuitems=%emuitems%+1) & (SET /a emuwadcount=%emuwadcount%+1)
if /i "%SNKFLOW%" EQU "Y" echo * Install WiiFlow
if /i "%SNKFLOW%" EQU "Y" echo.
if /i "%SNKS2U%" EQU "Y" (SET /a emuitems=%emuitems%+1) & (SET /a emuwadcount=%emuwadcount%+1)
if /i "%SNKS2U%" EQU "Y" echo * Install Switch2Uneek
if /i "%SNKS2U%" EQU "Y" echo.
if "%ThemeSelection%"=="" set ThemeSelection=N
if /i "%ThemeSelection%" NEQ "N" SET /a emuitems=%emuitems%+1
if /i "%ThemeSelection%" EQU "R" echo * Install Dark Wii Red %effect% Theme
if /i "%ThemeSelection%" EQU "G" echo * Install Dark Wii Green %effect% Theme
if /i "%ThemeSelection%" EQU "BL" echo * Install Dark Wii Blue %effect% Theme
if /i "%ThemeSelection%" EQU "O" echo * Install Dark Wii Orange %effect% Theme
if /i "%ThemeSelection%" EQU "D" echo * Restore Original\Default Theme
if /i "%ThemeSelection:~-4%" EQU ".mym" echo * Install Theme with %effect% effect: "%ThemeSelection%"
if /i "%ThemeSelection:~-4%" EQU ".csm" echo * Install Theme: "%ThemeSelection%"
if /i "%ThemeSelection%" NEQ "N" echo.
if /i "%PIC%" EQU "Y" (echo * Install Photo Channel) & (SET /a emuitems=%emuitems%+1) & (SET /a emuwadcount=%emuwadcount%+1)
if /i "%NET%" EQU "Y" (echo * Install Internet Channel) & (SET /a emuitems=%emuitems%+1) & (SET /a emuwadcount=%emuwadcount%+1)
if /i "%WEATHER%" EQU "Y" (echo * Install Weather Channel) & (SET /a emuitems=%emuitems%+1) & (SET /a emuwadcount=%emuwadcount%+1)
if /i "%NEWS%" EQU "Y" (echo * Install News Channel) & (SET /a emuitems=%emuitems%+1) & (SET /a emuwadcount=%emuwadcount%+1)
if /i "%MIIQ%" EQU "Y" (echo * Install Mii Channel) & (SET /a emuitems=%emuitems%+1) & (SET /a emuwadcount=%emuwadcount%+1)
if /i "%Shop%" EQU "Y" (echo * Install Shopping Channel) & (SET /a emuitems=%emuitems%+1) & (SET /a emuwadcount=%emuwadcount%+1)
if /i "%Speak%" EQU "Y" (echo * Install Wii Speak Channel) & (SET /a emuitems=%emuitems%+1) & (SET /a emuwadcount=%emuwadcount%+1)
echo.
if /i "%nandexist%" EQU "yes" support\sfk echo -spat \x20 \x20 \x20 \x20 \x20 \x20 \x20 \x20 \x20 [%redtext%]WARNING: An emulated nand already exists in:
if /i "%nandexist%" EQU "yes" echo "%nandpath%"
if /i "%nandexist%" EQU "yes" support\sfk echo -spat \x20 \x20 \x20 \x20 \x20 \x20 \x20 \x20 \x20 [%redtext%]Existing emulated nand will be Deleted\Replaced
:nonandinstallation
echo.
if /i "%SNEEKSELECT%" NEQ "5" goto:skip5
if /i "%emuitems%" NEQ "0" goto:skip5
support\sfk echo -spat \x20 \x20 \x20 \x20 \x20 \x20 \x20 \x20 \x20 [%yellowtext%] No changes to the Emulated NAND have been selected.
echo.
echo.
goto:noyes
:skip5
if /i "%AbstinenceWiz%" EQU "Y" (echo Y = Yes, Generate Guide and Begin Downloading) else (echo Y = Yes, do it now!)
if /i "%AbstinenceWiz%" EQU "Y" echo G = Generate Guide Only
:noyes
::echo.
::echo N = No
echo.
echo.
echo B = Back
echo.
echo M = Main Menu
echo.
echo.
set /p SNKNANDCONFIRM=Enter Selection Here:
set "SNKNANDCONFIRM=%SNKNANDCONFIRM:"=%"
if "%SNKNANDCONFIRM%"=="" goto:badkey
if /i "%SNKNANDCONFIRM%" EQU "B" goto:%B4SNKCONFIRM%
if /i "%SNKNANDCONFIRM%" EQU "M" goto:MENU
::if /i "%SNKNANDCONFIRM%" EQU "N" goto:MENU
if /i "%AbstinenceWiz%" NEQ "Y" goto:NotAbstinenceWiz
if /i "%SNKNANDCONFIRM%" EQU "G" (set secondrun=) & (set SETTINGS=G) & (goto:Download)
if /i "%SNKNANDCONFIRM%" EQU "Y" (set secondrun=) & (set SETTINGS=) & (goto:creditcheck)
:NotAbstinenceWiz
if /i "%SNEEKSELECT%" EQU "1" goto:skip5
if /i "%SNKNANDCONFIRM%" EQU "A" goto:addwadfolder
if /i "%SNKNANDCONFIRM%" EQU "R" (set addwadfolder=) & (goto:SNKNANDCONFIRM)
if /i "%SNEEKSELECT%" NEQ "5" goto:skip5
if /i "%emuitems%" EQU "0" goto:badkey
:skip5
if /i "%SNKNANDCONFIRM%" EQU "Y" goto:creditcheck
:badkey
echo You Have Entered an Incorrect Key
@ping 127.0.0.1 -n 2 -w 1000> nul
goto:SNKNANDCONFIRM
:creditcheck
::credit check removed, enjoy!
if /i "%AbstinenceWiz%" EQU "Y" goto:Download
if /i "%SNEEKSELECT%" EQU "1" goto:SNEEKINSTALLER
if /i "%SNEEKSELECT%" EQU "3" goto:SNEEKINSTALLER
if /i "%SNEEKSELECT%" EQU "2" goto:SNKNANDBUILDER
if /i "%SNEEKSELECT%" EQU "5" goto:SNKNANDBUILDER
goto:DLSETTINGS
::-----------------------------------Add WAD Folder to Install to emunand----------------------------------
:addwadfolder
set addwadfolder="
cls
echo ModMii v%currentversion%
echo by XFlak
echo.
echo.
echo.
echo Enter the full path\folder of WADs you'd like to install to your emulated NAND
echo.
echo.
if /i "%adminmode%" EQU "N" echo * You can drag and drop the folder onto this
if /i "%adminmode%" EQU "N" echo window to save yourself having to manually type it
echo.
echo.
echo.
echo.
echo.
echo B = Back
echo.
echo M = Main Menu
echo.
echo.
set /p addwadfolder=Enter Selection Here:
set "addwadfolder=%addwadfolder:"=%"
if "%addwadfolder%"=="" (echo You Have Entered an Incorrect Key) & (@ping 127.0.0.1 -n 2 -w 1000> nul) & (goto:addwadfolder)
if /i "%addwadfolder%" EQU "M" (set addwadfolder=) & (goto:MENU)
if /i "%addwadfolder%" EQU "B" (set addwadfolder=) & (goto:SNKNANDCONFIRM)
:doublecheckwad
set fixslash=
if /i "%addwadfolder:~-1%" EQU "\" set fixslash=yes
if /i "%addwadfolder:~-1%" EQU "/" set fixslash=yes
if /i "%fixslash%" EQU "yes" set "addwadfolder=%addwadfolder:~0,-1%"
if /i "%fixslash%" EQU "yes" goto:doublecheckwad
if not exist "%addwadfolder%" (echo.) & (echo "%addwadfolder%" doesn't exist, please try again...) & (@ping 127.0.0.1 -n 2 -w 1000> nul) & (goto:addwadfolder)
::make sure second char is ":"
if /i "%addwadfolder:~1,1%" NEQ ":" (echo.) & (echo Enter the full path including the drive letter, please try again...) & (@ping 127.0.0.1 -n 2 -w 1000> nul) & (goto:addwadfolder)
if not exist "%addwadfolder%\*.wad" (echo.) & (echo No Wads found, please try a different folder...) & (@ping 127.0.0.1 -n 2 -w 1000> nul) & (goto:addwadfolder)
goto:SNKNANDCONFIRM
::...................................SNEEK Nand Builder...............................
:SNKNANDBUILDER
::force 43DB fix (D)efault for vWii if (N)o theme selected
if /i "%SNEEKSELECT%" NEQ "2" goto:skip
if /i "%SNKVERSION%" NEQ "V" goto:skip
if /i "%ThemeSelection%" EQU "N" (set ThemeSelection=D) & (SET /a emuitems=%emuitems%+1)
:skip
::temporarily force wads to be saved to "root" of "temp" folder
::Set ROOTSAVE=on
::set DRIVE=temp//happens later
if not exist "%nandpath%" mkdir "%nandpath%"
::if not exist temp\WAD mkdir temp\WAD
if /i "%SNEEKSELECT%" EQU "5" goto:quickskip
::backup setting.txt if applicable
if /i "%SNKSERIAL%" EQU "current" move /y "%nandpath%"\title\00000001\00000002\data\setting.txt "%nandpath%"\setting.txt >nul
::delete existing nand if exists
if exist "%nandpath%"\title echo.
if exist "%nandpath%"\title echo Deleting existing emulated nand...
if exist "%nandpath%"\title rd /s /q "%nandpath%"\title
if exist "%nandpath%"\ticket rd /s /q "%nandpath%"\ticket
if exist "%nandpath%"\sys rd /s /q "%nandpath%"\sys
if exist "%nandpath%"\shared1 rd /s /q "%nandpath%"\shared1
::import, meta, shared2, tmp are deleted but will not be recreated by NAND Builder
if exist "%nandpath%"\import rd /s /q "%nandpath%"\import
if exist "%nandpath%"\meta rd /s /q "%nandpath%"\meta
if exist "%nandpath%"\shared2 rd /s /q "%nandpath%"\shared2
if exist "%nandpath%"\tmp rd /s /q "%nandpath%"\tmp
if exist "%nandpath%"\wfs rd /s /q "%nandpath%"\wfs
if exist "%nandpath%\nandinfo.txt" del "%nandpath%\nandinfo.txt">nul
::if user selects S2U but has emulated nand on root without nandslot.bin, move existing nand to nands folder
if /i "%SNKS2U%" EQU "N" goto:quickskip
if exist "%DRIVEU%"\nandslot.bin goto:quickskip
SET /a NANDcountPLUS1=%NANDcount%+1
if not exist "%DRIVEU%"\title goto:quickskip
echo.
echo Moving existing emulated nand to \nands\%NANDcountPLUS1% folder...
if not exist "%DRIVEU%\nands\nand%NANDcountPLUS1%" mkdir "%DRIVEU%\nands\nand%NANDcountPLUS1%"
if exist "%DRIVEU%"\title move /y "%DRIVEU%"\title "%DRIVEU%\nands\nand%NANDcountPLUS1%\title"
if exist "%DRIVEU%"\ticket move /y "%DRIVEU%"\ticket "%DRIVEU%\nands\nand%NANDcountPLUS1%\ticket"
if exist "%DRIVEU%"\sys move /y "%DRIVEU%"\sys "%DRIVEU%\nands\nand%NANDcountPLUS1%\sys"
if exist "%DRIVEU%"\shared1 move /y "%DRIVEU%"\shared1 "%DRIVEU%\nands\nand%NANDcountPLUS1%\shared1"
::import, meta, shared2, tmp are deleted but will not be recreated by NAND Builder
if exist "%DRIVEU%"\import move /y "%DRIVEU%"\import "%DRIVEU%\nands\nand%NANDcountPLUS1%\import"
if exist "%DRIVEU%"\meta move /y "%DRIVEU%"\meta "%DRIVEU%\nands\nand%NANDcountPLUS1%\meta"
if exist "%DRIVEU%"\shared2 move /y "%DRIVEU%"\shared2 "%DRIVEU%\nands\nand%NANDcountPLUS1%\shared2"
if exist "%DRIVEU%"\tmp move /y "%DRIVEU%"\tmp "%DRIVEU%\nands\nand%NANDcountPLUS1%\tmp"
if exist "%DRIVEU%"\wfs move /y "%DRIVEU%"\wfs "%DRIVEU%\nands\nand%NANDcountPLUS1%\wfs"
:quickskip
::all
if /i "%MIIQ%" EQU "Y" set MII=*
if /i "%SNKREGION%" EQU "U" goto:SNKU
if /i "%SNKREGION%" EQU "E" goto:SNKE
if /i "%SNKREGION%" EQU "J" goto:SNKJ
if /i "%SNKREGION%" EQU "K" goto:SNKK
:SNKU
if /i "%SNKVERSION%" EQU "4.3" set SM4.3U=*
if /i "%SNKVERSION%" EQU "4.2" set SM4.2U=*
if /i "%SNKVERSION%" EQU "4.1" set SM4.1U=*
if /i "%SNKVERSION%" EQU "V" set vSM4.3U=*
if /i "%ThemeSelection%" EQU "N" goto:SKIPSM
if /i "%ThemeSelection%" NEQ "R" goto:skip
if /i "%SNKVERSION%" EQU "4.3" set DarkWii_Red_4.3U=*
if /i "%SNKVERSION%" EQU "4.2" set DarkWii_Red_4.2U=*
if /i "%SNKVERSION%" EQU "4.1" set DarkWii_Red_4.1U=*
if /i "%SNKVERSION%" EQU "V" set DarkWii_Red_vWiiU=*
goto:SKIPSM
:skip
if /i "%ThemeSelection%" NEQ "G" goto:skip
if /i "%SNKVERSION%" EQU "4.3" set DarkWii_Green_4.3U=*
if /i "%SNKVERSION%" EQU "4.2" set DarkWii_Green_4.2U=*
if /i "%SNKVERSION%" EQU "4.1" set DarkWii_Green_4.1U=*
if /i "%SNKVERSION%" EQU "V" set DarkWii_Green_vWiiU=*
goto:SKIPSM
:skip
if /i "%ThemeSelection%" NEQ "BL" goto:skip
if /i "%SNKVERSION%" EQU "4.3" set DarkWii_Blue_4.3U=*
if /i "%SNKVERSION%" EQU "4.2" set DarkWii_Blue_4.2U=*
if /i "%SNKVERSION%" EQU "4.1" set DarkWii_Blue_4.1U=*
if /i "%SNKVERSION%" EQU "V" set DarkWii_Blue_vWiiU=*
goto:SKIPSM
:skip
if /i "%ThemeSelection%" NEQ "O" goto:skip
if /i "%SNKVERSION%" EQU "4.3" set darkwii_orange_4.3U=*
if /i "%SNKVERSION%" EQU "4.2" set darkwii_orange_4.2U=*
if /i "%SNKVERSION%" EQU "4.1" set darkwii_orange_4.1U=*
if /i "%SNKVERSION%" EQU "V" set darkwii_orange_vWiiU=*
goto:SKIPSM
:skip
::download base theme if custom mym provided
if /i "%ThemeSelection:~-4%" EQU ".mym" goto:continue
if /i "%ThemeSelection%" NEQ "D" goto:skip
:continue
if /i "%SNKVERSION%" EQU "4.3" set A97=*
if /i "%SNKVERSION%" EQU "4.2" set A87=*
if /i "%SNKVERSION%" EQU "4.1" set A7b=*
if /i "%SNKVERSION%" EQU "v" set A1f=*
goto:SKIPSM
:skip
:SKIPSM
::SMAPP is patched for UNEEK+DI Support
if /i "%SNKVERSION%" EQU "4.3" set SMAPP=00000098
if /i "%SNKVERSION%" EQU "4.2" set SMAPP=00000088
if /i "%SNKVERSION%" EQU "4.1" set SMAPP=0000007c
if /i "%SNKVERSION%" EQU "V" set SMAPP=00000020
if /i "%PIC%" EQU "Y" (set P=*) & (set HAZA=*)
if /i "%NET%" EQU "Y" set IU=*
if /i "%WEATHER%" EQU "Y" set WU=*
if /i "%NEWS%" EQU "Y" set NU=*
if /i "%SHOP%" EQU "Y" set S=*
if /i "%SPEAK%" EQU "Y" set WSU=*
goto:SNKBUGGEDSMIOS
:SNKE
if /i "%SNKVERSION%" EQU "4.3" set SM4.3E=*
if /i "%SNKVERSION%" EQU "4.2" set SM4.2E=*
if /i "%SNKVERSION%" EQU "4.1" set SM4.1E=*
if /i "%SNKVERSION%" EQU "V" set vSM4.3E=*
if /i "%ThemeSelection%" EQU "N" goto:SKIPSM
if /i "%ThemeSelection%" NEQ "R" goto:skip
if /i "%SNKVERSION%" EQU "4.3" set DarkWii_Red_4.3E=*
if /i "%SNKVERSION%" EQU "4.2" set DarkWii_Red_4.2E=*
if /i "%SNKVERSION%" EQU "4.1" set DarkWii_Red_4.1E=*
if /i "%SNKVERSION%" EQU "V" set DarkWii_Red_vWiiE=*
goto:SKIPSM
:skip
if /i "%ThemeSelection%" NEQ "G" goto:skip
if /i "%SNKVERSION%" EQU "4.3" set DarkWii_Green_4.3E=*
if /i "%SNKVERSION%" EQU "4.2" set DarkWii_Green_4.2E=*
if /i "%SNKVERSION%" EQU "4.1" set DarkWii_Green_4.1E=*
if /i "%SNKVERSION%" EQU "V" set DarkWii_Green_vWiiE=*
goto:SKIPSM
:skip
if /i "%ThemeSelection%" NEQ "BL" goto:skip
if /i "%SNKVERSION%" EQU "4.3" set DarkWii_Blue_4.3E=*
if /i "%SNKVERSION%" EQU "4.2" set DarkWii_Blue_4.2E=*
if /i "%SNKVERSION%" EQU "4.1" set DarkWii_Blue_4.1E=*
if /i "%SNKVERSION%" EQU "V" set DarkWii_Blue_vWiiE=*
goto:SKIPSM
:skip
if /i "%ThemeSelection%" NEQ "O" goto:skip
if /i "%SNKVERSION%" EQU "4.3" set darkwii_orange_4.3E=*
if /i "%SNKVERSION%" EQU "4.2" set darkwii_orange_4.2E=*
if /i "%SNKVERSION%" EQU "4.1" set darkwii_orange_4.1E=*
if /i "%SNKVERSION%" EQU "V" set darkwii_orange_vWiiE=*
goto:SKIPSM
:skip
::download base theme if custom mym provided
if /i "%ThemeSelection:~-4%" EQU ".mym" goto:continue
if /i "%ThemeSelection%" NEQ "D" goto:skip
:continue
if /i "%SNKVERSION%" EQU "4.3" set A9a=*
if /i "%SNKVERSION%" EQU "4.2" set A8a=*
if /i "%SNKVERSION%" EQU "4.1" set A7e=*
if /i "%SNKVERSION%" EQU "V" set A22=*
goto:SKIPSM
:skip
:SKIPSM
if /i "%SNKVERSION%" EQU "4.3" set SMAPP=0000009b
if /i "%SNKVERSION%" EQU "4.2" set SMAPP=0000008b
if /i "%SNKVERSION%" EQU "4.1" set SMAPP=0000007f
if /i "%SNKVERSION%" EQU "V" set SMAPP=00000023
if /i "%PIC%" EQU "Y" (set P=*) & (set HAZA=*)
if /i "%NET%" EQU "Y" set IE=*
if /i "%WEATHER%" EQU "Y" set WE=*
if /i "%NEWS%" EQU "Y" set NE=*
if /i "%SHOP%" EQU "Y" set S=*
if /i "%SPEAK%" EQU "Y" set WSE=*
goto:SNKBUGGEDSMIOS
:SNKJ
if /i "%SNKVERSION%" EQU "4.3" set SM4.3J=*
if /i "%SNKVERSION%" EQU "4.2" set SM4.2J=*
if /i "%SNKVERSION%" EQU "4.1" set SM4.1J=*
if /i "%SNKVERSION%" EQU "V" set vSM4.3J=*
if /i "%ThemeSelection%" EQU "N" goto:SKIPSM
if /i "%ThemeSelection%" NEQ "R" goto:skip
if /i "%SNKVERSION%" EQU "4.3" set DarkWii_Red_4.3J=*
if /i "%SNKVERSION%" EQU "4.2" set DarkWii_Red_4.2J=*
if /i "%SNKVERSION%" EQU "4.1" set DarkWii_Red_4.1J=*
if /i "%SNKVERSION%" EQU "V" set DarkWii_Red_vWiiJ=*
goto:SKIPSM
:skip
if /i "%ThemeSelection%" NEQ "G" goto:skip
if /i "%SNKVERSION%" EQU "4.3" set DarkWii_Green_4.3J=*
if /i "%SNKVERSION%" EQU "4.2" set DarkWii_Green_4.2J=*
if /i "%SNKVERSION%" EQU "4.1" set DarkWii_Green_4.1J=*
if /i "%SNKVERSION%" EQU "V" set DarkWii_Green_vWiiJ=*
goto:SKIPSM
:skip
if /i "%ThemeSelection%" NEQ "BL" goto:skip
if /i "%SNKVERSION%" EQU "4.3" set DarkWii_Blue_4.3J=*
if /i "%SNKVERSION%" EQU "4.2" set DarkWii_Blue_4.2J=*
if /i "%SNKVERSION%" EQU "4.1" set DarkWii_Blue_4.1J=*
if /i "%SNKVERSION%" EQU "V" set DarkWii_Blue_vWiiJ=*
goto:SKIPSM
:skip
if /i "%ThemeSelection%" NEQ "O" goto:skip
if /i "%SNKVERSION%" EQU "4.3" set darkwii_orange_4.3J=*
if /i "%SNKVERSION%" EQU "4.2" set darkwii_orange_4.2J=*
if /i "%SNKVERSION%" EQU "4.1" set darkwii_orange_4.1J=*
if /i "%SNKVERSION%" EQU "V" set darkwii_orange_vWiiJ=*
goto:SKIPSM
:skip
::download base theme if custom mym provided
if /i "%ThemeSelection:~-4%" EQU ".mym" goto:continue
if /i "%ThemeSelection%" NEQ "D" goto:skip
:continue
if /i "%SNKVERSION%" EQU "4.3" set A94=*
if /i "%SNKVERSION%" EQU "4.2" set A84=*
if /i "%SNKVERSION%" EQU "4.1" set A78=*
if /i "%SNKVERSION%" EQU "V" set A1c=*
goto:SKIPSM
:skip
:SKIPSM
if /i "%SNKVERSION%" EQU "4.3" set SMAPP=00000095
if /i "%SNKVERSION%" EQU "4.2" set SMAPP=00000085
if /i "%SNKVERSION%" EQU "4.1" set SMAPP=00000079
if /i "%SNKVERSION%" EQU "V" set SMAPP=0000001d
if /i "%PIC%" EQU "Y" (set P=*) & (set HAZA=*)
if /i "%NET%" EQU "Y" set IJ=*
if /i "%WEATHER%" EQU "Y" set WJ=*
if /i "%NEWS%" EQU "Y" set NJ=*
if /i "%SHOP%" EQU "Y" set S=*
if /i "%SPEAK%" EQU "Y" set WSJ=*
goto:SNKBUGGEDSMIOS
:SNKK
if /i "%SNKVERSION%" EQU "4.3" set SM4.3K=*
if /i "%SNKVERSION%" EQU "4.2" set SM4.2K=*
if /i "%SNKVERSION%" EQU "4.1" set SM4.1K=*
if /i "%ThemeSelection%" EQU "N" goto:SKIPSM
if /i "%ThemeSelection%" NEQ "R" goto:skip
if /i "%SNKVERSION%" EQU "4.3" set DarkWii_Red_4.3K=*
if /i "%SNKVERSION%" EQU "4.2" set DarkWii_Red_4.2K=*
if /i "%SNKVERSION%" EQU "4.1" set DarkWii_Red_4.1K=*
goto:SKIPSM
:skip
if /i "%ThemeSelection%" NEQ "G" goto:skip
if /i "%SNKVERSION%" EQU "4.3" set DarkWii_Green_4.3K=*
if /i "%SNKVERSION%" EQU "4.2" set DarkWii_Green_4.2K=*
if /i "%SNKVERSION%" EQU "4.1" set DarkWii_Green_4.1K=*
goto:SKIPSM
:skip
if /i "%ThemeSelection%" NEQ "BL" goto:skip
if /i "%SNKVERSION%" EQU "4.3" set DarkWii_Blue_4.3K=*
if /i "%SNKVERSION%" EQU "4.2" set DarkWii_Blue_4.2K=*
if /i "%SNKVERSION%" EQU "4.1" set DarkWii_Blue_4.1K=*
goto:SKIPSM
:skip
if /i "%ThemeSelection%" NEQ "O" goto:skip
if /i "%SNKVERSION%" EQU "4.3" set darkwii_orange_4.3K=*
if /i "%SNKVERSION%" EQU "4.2" set darkwii_orange_4.2K=*
if /i "%SNKVERSION%" EQU "4.1" set darkwii_orange_4.1K=*
goto:SKIPSM
:skip
::download base theme if custom mym provided
if /i "%ThemeSelection:~-4%" EQU ".mym" goto:continue
if /i "%ThemeSelection%" NEQ "D" goto:skip
:continue
if /i "%SNKVERSION%" EQU "4.3" set A9d=*
if /i "%SNKVERSION%" EQU "4.2" set A8d=*
if /i "%SNKVERSION%" EQU "4.1" set A81=*
goto:SKIPSM
:skip
:SKIPSM
if /i "%SNKVERSION%" EQU "4.3" set SMAPP=0000009e
if /i "%SNKVERSION%" EQU "4.2" set SMAPP=0000008e
if /i "%SNKVERSION%" EQU "4.1" set SMAPP=00000082
if /i "%PIC%" EQU "Y" (set P0=*) & (set PHOTOK=*)
::quick and dirty disabling of the Korean Shop channel installation from emunand as it throws errors with SMW and doesn't install anyway
::re-enabled since switching away from SMW for emunand stuff
::set SHOP=N
if /i "%SHOP%" EQU "Y" set SK=*
if /i "%SPEAK%" EQU "Y" set WSK=*
:SNKBUGGEDSMIOS
if /i "%SNKVERSION%" NEQ "V" goto:AfterVWiiIOS
if /i "%SHOP%" EQU "Y" set vIOS56=*
if /i "%SNEEKSELECT%" EQU "5" (set vSM4.3U=) & (set vSM4.3E=) & (set vSM4.3J=)
if /i "%SNEEKSELECT%" EQU "5" goto:skipthis
set BCnand=*
set BCwfs=*
if /i "%SNKREGION%" EQU "U" (set vRSU=*) & (set EULAU=*)
if /i "%SNKREGION%" EQU "E" (set vRSE=*) & (set EULAE=*)
if /i "%SNKREGION%" EQU "J" (set vRSJ=*) & (set EULAJ=*)
set vIOS9=*
set vIOS12=*
set vIOS13=*
set vIOS14=*
set vIOS15=*
set vIOS17=*
set vIOS21=*
set vIOS22=*
set vIOS28=*
set vIOS31=*
set vIOS33=*
set vIOS34=*
set vIOS35=*
set vIOS36=*
set vIOS37=*
set vIOS38=*
set vIOS41=*
set vIOS43=*
set vIOS45=*
set vIOS46=*
set vIOS48=*
set vIOS53=*
set vIOS55=*
set vIOS56=*
set vIOS57=*
set vIOS58=*
set vIOS59=*
set vIOS61=*
set vIOS62=*
::set vIOS80=*
set vIOS80P=*
goto:skip1line
:AfterVWiiIOS
if /i "%SNEEKSELECT%" EQU "5" goto:skipthis
if /i "%SNKVERSION%" EQU "4.1" set IOS60P=*
if /i "%SNKVERSION%" EQU "4.2" set IOS70K=*
if /i "%SNKVERSION%" EQU "4.3" set IOS80K=*
::activeios
set M10=*
set IOS9=*
set IOS12=*
set IOS13=*
set IOS14=*
set IOS15=*
set IOS17=*
set IOS21=*
set IOS22=*
set IOS28=*
set IOS31=*
set IOS33=*
set IOS34=*
set IOS35=*
set IOS36v3608=*
set IOS37=*
set IOS38=*
set ios41=*
set ios43=*
set ios45=*
set ios46=*
set IOS48v4124=*
set IOS53=*
set IOS55=*
set IOS56=*
set IOS57=*
set IOS58=*
::IOS59 is a J exclusive
if /i "%SNKREGION%" EQU "J" set IOS59=*
set IOS61=*
set IOS62=*
if /i "%SNKREGION%" EQU "U" set EULAU=*
if /i "%SNKREGION%" EQU "E" set EULAE=*
if /i "%SNKREGION%" EQU "J" set EULAJ=*
if /i "%SNKREGION%" EQU "K" set EULAK=*
:skipthis
if /i "%SHOP%" EQU "Y" set IOS56=*
if /i "%SNEEKSELECT%" EQU "5" (set SM4.3U=) & (set SM4.2U=) & (set SM4.1U=) & (set SM4.3E=) & (set SM4.2E=) & (set SM4.1E=) & (set SM4.3J=) & (set SM4.2J=) & (set SM4.1J=) & (set SM4.3K=) & (set SM4.2K=) & (set SM4.1K=)
set BC=*
if /i "%SNKcBC%" EQU "NMM" (set cBC=*) & (set BC=)
::::if /i "%SNKcBC%" EQU "DML" set DML=*
::if /i "%SNKcBC%" EQU "DML" set BC=*
::if /i "%SNKcBC%" EQU "N" set BC=*
if /i "%SNEEKSELECT%" NEQ "5" goto:skipdeselect
if /i "%SNKVERSION%" EQU "V" set BC=
if /i "%BCtype%" EQU "BC" set BC=
if /i "%BCtype%" EQU "DML" set DML=
if /i "%BCtype%" EQU "NMM" set cBC=
:skipdeselect
if /i "%SNKCIOS%" EQU "Y" set cIOS249-v14=*
if /i "%PRIIFOUND%" EQU "Yes" goto:skip1line
::if /i "%SNKPRI%" EQU "Y" set HAX=*
:skip1line
if /i "%SNKFLOW%" EQU "Y" set FLOWF=*
if /i "%SNKPLC%" EQU "Y" set PLC=*
if /i "%SNKOHBC%" NEQ "Y" goto:noOHBC
if /i "%SNKVERSION%" NEQ "V" (set OHBC=*) else (set OHBC113=*)
:noOHBC
if /i "%SNKS2U%" EQU "Y" set S2U=*
if /i "%SNKnswitch%" EQU "Y" set nSwitch=*
::if /i "%nswitchFound%" EQU "Yes" set nSwitch=
IF "%SMAPP%"=="" goto:miniskip
::subract 1 from %SMAPP% to get %SMTHEMEAPP%
support\sfk dec %SMAPP%>dec.txt
::Loop through the following once for EACH line in whatever.txt
for /F "tokens=*" %%A in (dec.txt) do call :processdec %%A
goto:nextstep
:processdec
set dec=%*
goto:EOF
:nextstep
del dec.txt>nul
SET /a dec=%dec%-1
support\sfk hex %dec% -digits=8 >hex.txt
::Loop through the following once for EACH line in whatever.txt
for /F "tokens=*" %%A in (hex.txt) do call :processhex %%A
goto:nextstep
:processhex
::this is repeated for each line of the txt.file
::"%*" (no quotes) is the variable for each line as it passes through the loop
set SMTHEMEAPP=%*
goto:EOF
:nextstep
del hex.txt>nul
::change caps to lower case for hex numbers if applicable
if /i "%SMTHEMEAPP:~-1%" EQU "A" set SMTHEMEAPP=%SMTHEMEAPP:~0,-1%a
if /i "%SMTHEMEAPP:~-1%" EQU "B" set SMTHEMEAPP=%SMTHEMEAPP:~0,-1%b
if /i "%SMTHEMEAPP:~-1%" EQU "C" set SMTHEMEAPP=%SMTHEMEAPP:~0,-1%c
if /i "%SMTHEMEAPP:~-1%" EQU "D" set SMTHEMEAPP=%SMTHEMEAPP:~0,-1%d
if /i "%SMTHEMEAPP:~-1%" EQU "E" set SMTHEMEAPP=%SMTHEMEAPP:~0,-1%e
if /i "%SMTHEMEAPP:~-1%" EQU "F" set SMTHEMEAPP=%SMTHEMEAPP:~0,-1%f
:miniskip
if /i "%AbstinenceWiz%" EQU "Y" set nswitch=*
goto:DLCOUNT
::..............................Emulated NAND Modifer - SNK NAND Selector....................
:SNKNANDSELECTOR
set drivetemp="
set NANDPATH=
set SNKREGION=
set SMAPP=
set SMTHEMEAPP=
set SNKVERSION=
set PRIIFOUND=
cls
echo ModMii v%currentversion%
echo by XFlak
echo.
echo.
echo EMULATED NAND MODIFIER
echo.
echo.
echo.
echo Enter the Path of your Emulated NAND
echo.
echo.
if /i "%adminmode%" EQU "N" echo Note: * You can drag and drop the Drive/folder onto this
if /i "%adminmode%" EQU "N" echo window to save yourself having to manually type it
echo.
echo * In the future you can drag your Emulated NAND folder
echo onto ModMii.exe or ModMiiSkin.exe, or a shortcut to either,
echo to quickly start ModMii's Emulated NAND Modifier
echo.
echo.
echo EXAMPLES
echo.
echo.
echo L:
echo.
echo H:\nands\nand1
echo.
echo.
echo.
echo.
echo B = Back
echo.
echo M = Main Menu
echo.
echo.
set /p Drivetemp=Enter Selection Here:
set "Drivetemp=%Drivetemp:"=%"
if "%Drivetemp%"=="" goto:notexistnand
if /i "%DRIVETEMP%" EQU "B" goto:SNKPAGE1
if /i "%DRIVETEMP%" EQU "M" goto:MENU
:doublecheckNANDPATH
::---------------CMD LINE MODE-------------
if /i "%cmdlinemodeswitchoff%" EQU "Y" (set cmdlinemode=) & (set one=) & (set two=)
set fixslash=
if /i "%DRIVETEMP:~-1%" EQU "\" set fixslash=yes
if /i "%DRIVETEMP:~-1%" EQU "/" set fixslash=yes
if /i "%fixslash%" EQU "yes" set "DRIVETEMP=%DRIVETEMP:~0,-1%"
if /i "%fixslash%" EQU "yes" goto:doublecheckNANDPATH
if not exist "%DRIVETEMP%" goto:notexist
if not exist "%DRIVETEMP%\title" goto:notexistnand
if not exist "%DRIVETEMP%\sys" goto:notexistnand
if not exist "%DRIVETEMP%\ticket" goto:notexistnand
if not exist "%DRIVETEMP%\shared1" goto:notexistnand
::Get NAND Info
if exist temp\EmunandInfo.txt del temp\EmunandInfo.txt>nul
if exist temp\EmunandInfoSum.txt del temp\EmunandInfoSum.txt>nul
if exist temp\SNKREGION.txt del temp\SNKREGION.txt>nul
if not exist "%DRIVETEMP%\title\00000001\00000002\content\title.tmd" goto:notitle
%WiiPy% emunand info "%DRIVETEMP%">temp\EmunandInfo.txt
support\sfk filter -quiet "temp\EmunandInfo.txt" -inc "*" to "Space Used">temp\EmunandInfoSum.txt
::typical SysMenu versions matched later, but this is to cover all our bases
support\sfk filter -quiet "temp\EmunandInfoSum.txt" -ls+" System Menu Version: " -rep _*": "__>temp\SNKREGION.txt
set /p SNKREGION= <temp\SNKREGION.txt
set SNKVERSION=%SNKREGION:~0,-1%
set SNKREGION=%SNKREGION:~-1%
if exist temp\SNKREGION.txt del temp\SNKREGION.txt>nul
findStr /C:"Type: vWii" "temp\EmunandInfoSum.txt" >nul
IF NOT ERRORLEVEL 1 set SNKVERSION=V
::echo SNKVERSION %SNKVERSION%
::echo SNKREGION %SNKREGION%
support\sfk hexdump -pure -nofile "%DRIVETEMP%\title\00000001\00000002\content\title.tmd">temp\hexdump.txt
FINDSTR /N . temp\hexdump.txt>temp\hexdump2.txt
del temp\hexdump.txt>nul
support\sfk filter -quiet "temp\hexdump2.txt" -+"49:" -write -yes
set /p SMAPP= <temp\hexdump2.txt
set SMAPP=%SMAPP:~11,8%
del temp\hexdump2.txt>nul
:notitle
set ThemeChoice=
if "%SMAPP%"=="" goto:miniskip
if /i "%SMAPP%" EQU "00000020" (set SNKREGION=U) & (set SNKVERSION=V) & (set ThemeChoice=Y)
if /i "%SMAPP%" EQU "00000098" (set SNKREGION=U) & (set SNKVERSION=4.3) & (set ThemeChoice=Y)
if /i "%SMAPP%" EQU "00000088" (set SNKREGION=U) & (set SNKVERSION=4.2) & (set ThemeChoice=Y)
if /i "%SMAPP%" EQU "0000007c" (set SNKREGION=U) & (set SNKVERSION=4.1) & (set ThemeChoice=Y)
if /i "%SMAPP%" EQU "00000023" (set SNKREGION=E) & (set SNKVERSION=V) & (set ThemeChoice=Y)
if /i "%SMAPP%" EQU "0000009b" (set SNKREGION=E) & (set SNKVERSION=4.3) & (set ThemeChoice=Y)
if /i "%SMAPP%" EQU "0000008b" (set SNKREGION=E) & (set SNKVERSION=4.2) & (set ThemeChoice=Y)
if /i "%SMAPP%" EQU "0000007f" (set SNKREGION=E) & (set SNKVERSION=4.1) & (set ThemeChoice=Y)
if /i "%SMAPP%" EQU "0000001d" (set SNKREGION=J) & (set SNKVERSION=V) & (set ThemeChoice=Y)
if /i "%SMAPP%" EQU "00000095" (set SNKREGION=J) & (set SNKVERSION=4.3) & (set ThemeChoice=Y)
if /i "%SMAPP%" EQU "00000085" (set SNKREGION=J) & (set SNKVERSION=4.2) & (set ThemeChoice=Y)
if /i "%SMAPP%" EQU "00000079" (set SNKREGION=J) & (set SNKVERSION=4.1) & (set ThemeChoice=Y)
if /i "%SMAPP%" EQU "0000009e" (set SNKREGION=K) & (set SNKVERSION=4.3) & (set ThemeChoice=Y)
if /i "%SMAPP%" EQU "0000008e" (set SNKREGION=K) & (set SNKVERSION=4.2) & (set ThemeChoice=Y)
if /i "%SMAPP%" EQU "00000082" (set SNKREGION=K) & (set SNKVERSION=4.1) & (set ThemeChoice=Y)
if /i "%SNKREGION%" EQU "U" set defaultserial=LU521175683
if /i "%SNKREGION%" EQU "E" set defaultserial=LEH133789940
if /i "%SNKREGION%" EQU "J" set defaultserial=LJM101175683
if /i "%SNKREGION%" EQU "K" set defaultserial=LKM101175683
:miniskip
::check for Priiloader
if exist "%DRIVETEMP%\title\00000001\00000002\content\1%SMAPP:~1%.app" (set PRIIFOUND=YES) else (set PRIIFOUND=NO)
::check for current nswitch channel
set nSwitchFOUND=NO
set nswitchmd5=fab9c86507d036b10d9a29c99518c8f9
::if exist "temp\DBUPDATE%currentversion%.bat" call "temp\DBUPDATE%currentversion%.bat"
if not exist "%DRIVETEMP%\title\00010001\424b324f\content\00000001.app" goto:nonswitchcheck
support\sfk md5 -quiet -verify %nswitchmd5% "%DRIVETEMP%\title\00010001\424b324f\content\00000001.app"
if not errorlevel 1 set nSwitchFOUND=YES
:nonswitchcheck
::check for BC, NMM or DML
set BCtype=
set BCmd5=eb1b69f3d747145651aa834078c2aacd
set DMLmd5=88720d0de8c7db7bf00f5053b76ae66b
set NMMmd5=8663c24ab33540af6a818920a3a47c4a
::if exist "temp\DBUPDATE%currentversion%.bat" call "temp\DBUPDATE%currentversion%.bat"
if not exist "%DRIVETEMP%\title\00000001\00000100\content\00000008.app" (set BCtype=None) & (goto:noBCcheck)
support\sfk md5 -quiet -verify %BCmd5% "%DRIVETEMP%\title\00000001\00000100\content\00000008.app"
if not errorlevel 1 set BCtype=BC
IF "%BCtype%"=="" set BCtype=DML
support\sfk md5 -quiet -verify %NMMmd5% "%DRIVETEMP%\title\00000001\00000100\content\00000008.app"
if not errorlevel 1 set BCtype=NMM
:noBCcheck
IF "%SMAPP%"=="" goto:miniskip
::subract 1 from %SMAPP% to get %SMTHEMEAPP%
support\sfk dec %SMAPP%>dec.txt
::Loop through the following once for EACH line in whatever.txt
for /F "tokens=*" %%A in (dec.txt) do call :processdec1 %%A
goto:nextstep
:processdec1
set dec=%*
goto:EOF
:nextstep
del dec.txt>nul
SET /a dec=%dec%-1
support\sfk hex %dec% -digits=8 >hex.txt
::Loop through the following once for EACH line in whatever.txt
for /F "tokens=*" %%A in (hex.txt) do call :processhexapp %%A
goto:nextstep
:processhexapp
::this is repeated for each line of the txt.file
::"%*" (no quotes) is the variable for each line as it passes through the loop
set SMTHEMEAPP=%*
goto:EOF
:nextstep
del hex.txt>nul
::change caps to lower case for hex numbers if applicable
if /i "%SMTHEMEAPP:~-1%" EQU "A" set SMTHEMEAPP=%SMTHEMEAPP:~0,-1%a
if /i "%SMTHEMEAPP:~-1%" EQU "B" set SMTHEMEAPP=%SMTHEMEAPP:~0,-1%b
if /i "%SMTHEMEAPP:~-1%" EQU "C" set SMTHEMEAPP=%SMTHEMEAPP:~0,-1%c
if /i "%SMTHEMEAPP:~-1%" EQU "D" set SMTHEMEAPP=%SMTHEMEAPP:~0,-1%d
if /i "%SMTHEMEAPP:~-1%" EQU "E" set SMTHEMEAPP=%SMTHEMEAPP:~0,-1%e
if /i "%SMTHEMEAPP:~-1%" EQU "F" set SMTHEMEAPP=%SMTHEMEAPP:~0,-1%f
:miniskip
set "NANDPATH=%DRIVETEMP%"
::echo NANDPATH=%NANDPATH%
::echo SNKREGION=%SNKREGION%
::echo SMAPP=%SMAPP%
::echo SMTHEMEAPP=%SMTHEMEAPP%
::echo SNKVERSION=%SNKVERSION%
::echo PRIIFOUND=%PRIIFOUND%
if "%SNKREGION%"=="" (goto:FOLLOWUPQ) else (goto:SNKPAGE4a)
:notexist
echo The folder you selected does not exist
@ping 127.0.0.1 -n 2 -w 1000> nul
goto:SNKNANDSELECTOR
:notexistnand
echo The folder you selected does not contain an Emulated NAND
@ping 127.0.0.1 -n 2 -w 1000> nul
goto:SNKNANDSELECTOR
::-----Unable to determine region, ask user-----
::..............................Emulated NAND Modifer - SNK NAND Selector....................
:FOLLOWUPQ
set SNKREGION="
cls
echo ModMii v%currentversion%
echo by XFlak
echo.
echo.
echo EMULATED NAND MODIFIER
echo.
echo.
echo.
echo ModMii is unable to determine the Region of your NAND.
echo.
echo What Region is your Emulated NAND?
echo.
echo.
echo.
echo.
echo Note: Theme modifiers are disabled for Emulated NANDs 4.0 or less
echo.
echo.
echo.
echo U = USA
echo E = Euro (PAL)
echo J = JPN
echo K = Korean
echo.
echo.
echo.
echo.
echo B = Back
echo.
echo M = Main Menu
echo.
echo.
set /p SNKREGION=Enter Selection Here:
set "SNKREGION=%SNKREGION:"=%"
if /i "%SNKREGION%" EQU "U" goto:SNKPAGE4a
if /i "%SNKREGION%" EQU "E" goto:SNKPAGE4a
if /i "%SNKREGION%" EQU "J" goto:SNKPAGE4a
if /i "%SNKREGION%" EQU "K" goto:SNKPAGE4a
if /i "%SNKREGION%" EQU "M" goto:MENU
if /i "%SNKREGION%" EQU "B" goto:SNKNANDSELECTOR
:badkey
echo You Have Entered an Incorrect Key
@ping 127.0.0.1 -n 2 -w 1000> nul
goto:FOLLOWUPQ
::...................................SNEEK SNK DISC EXtractor...............................
:SNKDISCEX
IF not "%ISOFOLDER%"=="" goto:skip
if exist "A:\WBFS" set ISOFOLDER=A:\WBFS
if exist "B:\WBFS" set ISOFOLDER=B:\WBFS
if exist "C:\WBFS" set ISOFOLDER=C:\WBFS
if exist "D:\WBFS" set ISOFOLDER=D:\WBFS
if exist "E:\WBFS" set ISOFOLDER=E:\WBFS
if exist "F:\WBFS" set ISOFOLDER=F:\WBFS
if exist "G:\WBFS" set ISOFOLDER=G:\WBFS
if exist "H:\WBFS" set ISOFOLDER=H:\WBFS
if exist "I:\WBFS" set ISOFOLDER=I:\WBFS
if exist "J:\WBFS" set ISOFOLDER=J:\WBFS
if exist "K:\WBFS" set ISOFOLDER=K:\WBFS
if exist "L:\WBFS" set ISOFOLDER=L:\WBFS
if exist "M:\WBFS" set ISOFOLDER=M:\WBFS
if exist "N:\WBFS" set ISOFOLDER=N:\WBFS
if exist "O:\WBFS" set ISOFOLDER=O:\WBFS
if exist "P:\WBFS" set ISOFOLDER=P:\WBFS
if exist "Q:\WBFS" set ISOFOLDER=Q:\WBFS
if exist "R:\WBFS" set ISOFOLDER=R:\WBFS
if exist "S:\WBFS" set ISOFOLDER=S:\WBFS
if exist "T:\WBFS" set ISOFOLDER=T:\WBFS
if exist "U:\WBFS" set ISOFOLDER=U:\WBFS
if exist "V:\WBFS" set ISOFOLDER=V:\WBFS
if exist "W:\WBFS" set ISOFOLDER=W:\WBFS
if exist "X:\WBFS" set ISOFOLDER=X:\WBFS
if exist "Y:\WBFS" set ISOFOLDER=Y:\WBFS
if exist "Z:\WBFS" set ISOFOLDER=Z:\WBFS
IF "%ISOFOLDER%"=="" set "ISOFOLDER=%DRIVEU%\WBFS"
:skip
set "drivetemp=%ISOFOLDER%"
if exist temp\gametotal.txt del temp\gametotal.txt>nul
cls
echo ModMii v%currentversion%
echo by XFlak
echo.
echo.
echo GAME BULK EXTRACTOR
echo (FOR SNEEK)
echo.
echo.
echo Enter the Path where your Wii or Gamecube Games are saved
echo.
echo * Subfolders are also scanned
echo * Supported formats include ISO, CISO and WBFS files
echo.
echo.
echo Current Setting:
echo.
echo "%ISOFOLDER%"
echo.
echo.
echo Notes: * To continue using Current Settings
echo leave the selection blank and hit enter.
echo.
if /i "%adminmode%" EQU "N" echo * You can drag and drop the Drive/folder onto this
if /i "%adminmode%" EQU "N" echo window to save yourself having to manually type it
echo.
echo.
echo.
echo EXAMPLES
echo.
echo.
echo L:
echo.
echo %%userprofile%%\Desktop\WiiGames
echo.
echo WiiGames\ISOs
echo Note: this checks the WiiGames\ISOs folder where ModMii is saved
echo.
echo C:\Users\XFlak\Desktop\New Folder
echo.
echo.
echo.
echo B = Back
echo.
echo M = Main Menu
echo.
echo.
IF "%Drivetemp%"=="" set Drivetemp=?
set /p Drivetemp=Enter Selection Here:
set "Drivetemp=%Drivetemp:"=%"
if "%Drivetemp%"=="" goto:notexist
if /i "%DRIVETEMP%" EQU "B" goto:SNKPAGE1
if /i "%DRIVETEMP%" EQU "M" goto:MENU
:doublecheckISOFOLDER
set fixslash=
if /i "%DRIVETEMP:~-1%" EQU "\" set fixslash=yes
if /i "%DRIVETEMP:~-1%" EQU "/" set fixslash=yes
if /i "%fixslash%" EQU "yes" set "DRIVETEMP=%DRIVETEMP:~0,-1%"
if /i "%fixslash%" EQU "yes" goto:doublecheckISOFOLDER
::---------------CMD LINE MODE-------------
if /i "%cmdlinemodeswitchoff%" EQU "Y" (set cmdlinemode=) & (set one=) & (set two=)
if not exist "%DRIVETEMP%" goto:notexist
call Support\subscripts\dependency.bat wit
if /i "%dependency%" EQU "F" (@ping 127.0.0.1 -n 3 -w 1000> nul) & (goto:SNKDISCEX)
::---get game list-------
echo.
echo Scanning directory for Wii Games...
::%wit% list-l --unit GB --recurse "%DRIVETEMP%">temp\gametotal.txt
%wit% list-l --recurse "%DRIVETEMP%">temp\gametotal.txt
copy /y temp\gametotal.txt temp\gametotal.bat >nul
support\sfk filter temp\gametotal.bat -ls+Total -rep _"Total: "_"set gametotal="_ -rep _" discs*"__ -write -yes>nul
call temp\gametotal.bat
del temp\gametotal.bat>nul
if /i "%gametotal%" EQU "0" goto:notexistiso
set "ISOFOLDER=%DRIVETEMP%"
set BACKB4DRIVEU=SNKDISCEX
goto:DRIVEUCHANGE
:notexist
echo The folder you selected does not exist
@ping 127.0.0.1 -n 2 -w 1000> nul
goto:SNKDISCEX
:notexistiso
del gamelist.txt>nul
echo The folder you selected does not contain any ISO, CISO or WBFS Files
@ping 127.0.0.1 -n 2 -w 1000> nul
goto:SNKDISCEX
::...................................SNK DISC EXtractor2...............................
:SNKDISCEX2
echo.
echo Checking if enough free space exists...
::wit beta--> isosize command
::wit isosize --unit bytes -r "%ISOFOLDER%"
::---get required MB-------
copy /y temp\gametotal.txt temp\gametotal.bat >nul
support\sfk filter temp\gametotal.bat -ls+Total -rep _*", "_"set MegaBytesRequired="_ -rep _" MiB*"__ -write -yes>nul
call temp\gametotal.bat
del temp\gametotal.bat>nul
if %MegaBytesRequired% GEQ 1000 (set units=GB) else (set units=MB)
::---get approx required GB-------
set GigaBytesRequired=
if exist temp\gigabytesrequired.txt del temp\gigabytesrequired.txt>nul
support\sfk calc %MegaBytesRequired%/1024>temp\gigabytesrequired.txt
support\sfk filter temp\gigabytesrequired.txt -rep _".*"__ -write -yes>nul
set /p GigaBytesRequired= <temp\gigabytesrequired.txt
set /a GigaBytesRequired=%GigaBytesRequired%+1
if exist temp\gigabytesrequired.txt del temp\gigabytesrequired.txt>nul
::---check for free space---
if not exist "%DRIVEU%" mkdir "%DRIVEU%"
set freespaceMB=
if exist temp\freespaceMB.txt del temp\freespaceMB.txt>nul
support\sfk space "%DRIVEU%">temp\freespaceMB.txt
support\sfk filter "temp\freespaceMB.txt" -rep _"*freemb="__ -write -yes>nul
set /p freespaceMB= <temp\freespaceMB.txt
if exist temp\freespaceMB.txt del temp\freespaceMB.txt>nul
::echo MegaBytesRequired is %MegaBytesRequired%
::echo GigaBytesRequired is %GigaBytesRequired%
::echo Total Free Space is approximately %freespaceMB% MB
::pause
if %MegaBytesRequired% GEQ %freespaceMB% (goto:needmorespace) else (goto:DISCEXCONFIRM)
::-------------------------------------DISCEX NEED MORE SPACE!!!---------------
:needmorespace
cls
set continue="
::set gametotal=
echo ModMii v%currentversion%
echo by XFlak
echo.
echo.
echo GAME BULK EXTRACTOR
echo (FOR SNEEK)
echo.
echo.
echo.
support\sfk echo -spat \x20 \x20 \x20 \x20 \x20 \x20 \x20 \x20 \x20 \x20 \x20 \x20[%redtext%]WARNING: YOU DO NOT HAVE ENOUGH FREE SPACE
echo.
echo.
echo.
echo You are attempting to convert %gametotal% game(s)
echo.
echo From Source Folder: "%ISOFOLDER%"
echo To Target Folder: "%DRIVEU%\games"
echo.
type temp\gametotal.txt
echo.
echo.
echo.
if /i "%units%" EQU "GB" support\sfk echo -spat \x20 \x20[%redtext%]"%DRIVEU%" requires approx. %GigaBytesRequired%GB of free space
if /i "%units%" EQU "MB" support\sfk echo -spat \x20 \x20[%redtext%]"%DRIVEU%" requires %MegaBytesRequired%MB of free space
echo.
support\sfk echo -spat \x20 \x20[%redtext%]Create more free space or select a smaller source folder and try again
echo.
echo.
echo.
echo C = Continue anyways
echo.
echo B = Back to change Target Folder
echo.
echo M = Main Menu
echo.
echo.
echo.
set /p continue=Enter Selection Here:
set "continue=%continue:"=%"
if /i "%continue%" EQU "M" del temp\gametotal.txt>nul
if /i "%continue%" EQU "M" goto:MENU
if /i "%continue%" EQU "C" goto:DISCEXCONFIRM
if /i "%continue%" EQU "B" goto:DRIVEUCHANGE
echo You Have Entered an Incorrect Key
@ping 127.0.0.1 -n 2 -w 1000> nul
goto:needmorespace
::-------------------------------------DISCEX CONFIRM---------------
:DISCEXCONFIRM
cls
set DISCEXCONFIRM="
::set gametotal=
echo ModMii v%currentversion%
echo by XFlak
echo.
echo.
echo GAME BULK EXTRACTOR
echo (FOR SNEEK)
echo.
echo You are about to convert %gametotal% game(s)
echo.
echo From Source Folder: "%ISOFOLDER%"
echo To Target Folder: "%DRIVEU%\games"
echo.
type temp\gametotal.txt
echo.
echo.
echo Would you like to proceed?
echo.
echo.
::echo Notes: * Each game could take approximately 5-15 minutes to convert
::echo.
::echo * Make sure you have enough free space here: %DRIVEU%
::echo otherwise extraction will fail when free space is depleted
echo.
echo.
echo.
echo Y = Yes
echo.
echo N = No
echo.
echo.
echo.
echo B = Back to change Target Folder
echo.
echo M = Main Menu
echo.
echo.
echo.
set /p DISCEXCONFIRM=Enter Selection Here:
set "DISCEXCONFIRM=%DISCEXCONFIRM:"=%"
if /i "%DISCEXCONFIRM%" EQU "M" del temp\gametotal.txt>nul
if /i "%DISCEXCONFIRM%" EQU "N" del temp\gametotal.txt>nul
if /i "%DISCEXCONFIRM%" EQU "Y" del temp\gametotal.txt>nul
if /i "%DISCEXCONFIRM%" EQU "M" goto:MENU
if /i "%DISCEXCONFIRM%" EQU "N" goto:MENU
if /i "%DISCEXCONFIRM%" EQU "Y" goto:DISCEXSTART
if /i "%DISCEXCONFIRM%" EQU "B" goto:DRIVEUCHANGE
echo You Have Entered an Incorrect Key
@ping 127.0.0.1 -n 2 -w 1000> nul
goto:DISCEXCONFIRM
::----------------Start WIT DISCEXTRACTION---------------
:DISCEXSTART
cls
echo ModMii v%currentversion%
echo by XFlak
echo.
echo.
echo GAME BULK EXTRACTOR
echo (FOR SNEEK)
echo.
echo.
if not exist Support\titles.txt goto:DLtitles
::check if title.txt is from current year, if not, redownload
::TITLES = https://gametdb.com (language: EN version: 20240711084837)
FOR /F "tokens=*" %%g IN ('support\sfk date') do (SET CurDate=%%g)
::echo CurDate: %CurDate%
::echo Year: %CurDate:~0,4%
findStr /I /C:"version: %CurDate:~0,4%" "Support\titles.txt" >nul
IF not ERRORLEVEL 1 goto:skip
:DLtitles
echo Updating Wii Game Title Database (titles.txt)
echo.
::if exist Support\titles.txt move /y Support\titles.txt Support\titles_old.txt >nul
support\wget --no-check-certificate -t 3 www.wiitdb.com/titles.txt -q --show-progress
if exist titles.txt move /y titles.txt Support\titles.txt>nul
:skip
::rename existing games to new standard
if not exist "%DRIVEU%"\games goto:nextstep
dir "%DRIVEU%"\games /A:D /b > GameTitleIDs.txt
for /F "tokens=*" %%A in (GameTitleIDs.txt) do call :processdir %%A
goto:nextstep
:processdir
set CurrentTitleID=%*
if /i "%CurrentTitleID:~-8,1%" EQU "[" rename "%DRIVEU%\games\%CurrentTitleID%" "%CurrentTitleID:~-7,6%">nul
goto:EOF
:nextstep
if exist GameTitleIDs.txt del GameTitleIDs.txt>nul
::reverse slashes no longer necessary with new wit.exe
::reverse slashes for target folder %DRIVEU%\games which becomes %DRIVEUfix%/games
::echo set "DRIVEUfix=%DRIVEU%">temp\temp.bat
::support\sfk filter temp\temp.bat -rep _\_/_ -write -yes>nul
::call temp\temp.bat
::del temp\temp.bat>nul
::target directory, including "games" folder, is created automatically with the following wit command
%wit% x --psel data --pmode none --files :neek --recurse "%ISOFOLDER%" --DEST "%DRIVEU%"/games/%%I --progress
::%wit% x --neek --recurse "%ISOFOLDER%" --DEST "%DRIVEU%"/games/%%I --progress
::"--neek" is an Abbreviation of "--psel data --pmode none --files :neek --copy-gc"; it works fine for Wii games but "--copy-gc" is not desirable for GC
::%wit% x --sneek --recurse "%ISOFOLDER%" "%DRIVEUfix%/games/%%14T [%%I]" --progress
::%wit% x --sneek --recurse "%ISOFOLDER%" --DEST "%DRIVEUfix%/games/%%14T [%%I]" --progress
::an empty cygdrive folder may be created previous directory, so delete it!
if exist cygdrive rd /s /q cygdrive
::delete diconfig.bin if found (needs to be reconstructed on next boot to see new games)
if exist "%DriveU%\sneek\diconfig.bin" del "%DriveU%\sneek\diconfig.bin" >nul
::-----create csv list of all games in "%DRIVEU%"\games\ -----
echo @echo Off>"%DriveU%"\Game-List-Updater[ModMii].bat
echo if exist TitleID.txt del TitleID.txtredirectnul>>"%DriveU%"\Game-List-Updater[ModMii].bat
echo if exist GameTitleIDs.txt del GameTitleIDs.txtredirectnul>>"%DriveU%"\Game-List-Updater[ModMii].bat
echo if exist Gamelist.txt del Gamelist.txtredirectnul>>"%DriveU%"\Game-List-Updater[ModMii].bat
echo if exist Gamelist2.txt del Gamelist2.txtredirectnul>>"%DriveU%"\Game-List-Updater[ModMii].bat
echo if exist Gamelist-sorted.txt del Gamelist-sorted.txtredirectnul>>"%DriveU%"\Game-List-Updater[ModMii].bat
echo dir games /A:D /b redirect GameTitleIDs.txt >>"%DriveU%"\Game-List-Updater[ModMii].bat
echo for /F "tokens=*" @@@@A in (GameTitleIDs.txt) do call :processmii @@@@A>>"%DriveU%"\Game-List-Updater[ModMii].bat
echo goto:nextstep>>"%DriveU%"\Game-List-Updater[ModMii].bat
echo :processmii>>"%DriveU%"\Game-List-Updater[ModMii].bat
echo set CurrentTitleID=@@*>>"%DriveU%"\Game-List-Updater[ModMii].bat
echo if /i "@@CurrentTitleID:~-8,1@@" EQU "[" rename "games\@@CurrentTitleID@@" "@@CurrentTitleID:~-7,6@@"redirectnul>>"%DriveU%"\Game-List-Updater[ModMii].bat
echo if /i "@@CurrentTitleID:~-8,1@@" EQU "[" set CurrentTitleID=@@CurrentTitleID:~-7,6@@>>"%DriveU%"\Game-List-Updater[ModMii].bat
echo FINDSTR /B /C:"@@CurrentTitleID:~0,6@@" titles.txtredirectTitleID.txt>>"%DriveU%"\Game-List-Updater[ModMii].bat
::if title ID not in titles.txt just add title ID only
echo for /F @@@@A in ("TitleID.txt") do If @@@@~zA equ 0 (echo @@CurrentTitleID:~0,6@@redirectredirectGamelist.txt) else (FINDSTR /B /C:"@@CurrentTitleID:~0,6@@" titles.txtredirectredirectGamelist.txt)>>"%DriveU%"\Game-List-Updater[ModMii].bat
echo goto:EOF>>"%DriveU%"\Game-List-Updater[ModMii].bat
echo :nextstep>>"%DriveU%"\Game-List-Updater[ModMii].bat
echo if exist TitleID.txt del TitleID.txtredirectnul>>"%DriveU%"\Game-List-Updater[ModMii].bat
echo if exist GameTitleIDs.txt del GameTitleIDs.txtredirectnul>>"%DriveU%"\Game-List-Updater[ModMii].bat
echo for /F "tokens=*" @@@@A in (Gamelist.txt) do call :processmii2 @@@@A>>"%DriveU%"\Game-List-Updater[ModMii].bat
echo goto:nextstep>>"%DriveU%"\Game-List-Updater[ModMii].bat
echo :processmii2>>"%DriveU%"\Game-List-Updater[ModMii].bat
echo set Line=@@*>>"%DriveU%"\Game-List-Updater[ModMii].bat
echo echo @@Line:~9@@,@@Line:~0,6@@redirectredirectgamelist2.txt>>"%DriveU%"\Game-List-Updater[ModMii].bat
echo goto:EOF>>"%DriveU%"\Game-List-Updater[ModMii].bat
echo :nextstep>>"%DriveU%"\Game-List-Updater[ModMii].bat
echo if exist Gamelist.txt del Gamelist.txtredirectnul>>"%DriveU%"\Game-List-Updater[ModMii].bat
echo sort "Gamelist2.txt" redirect "Gamelist-sorted.txt">>"%DriveU%"\Game-List-Updater[ModMii].bat
echo if exist Gamelist2.txt del Gamelist2.txtredirectnul>>"%DriveU%"\Game-List-Updater[ModMii].bat
echo echo Number,Title,Title IDredirectGame-List[ModMii].csv>>"%DriveU%"\Game-List-Updater[ModMii].bat
echo echo ,,redirectredirectGame-List[ModMii].csv>>"%DriveU%"\Game-List-Updater[ModMii].bat
echo set countline=0 >>"%DriveU%"\Game-List-Updater[ModMii].bat
echo for /F "tokens=*" @@@@A in (Gamelist-sorted.txt) do call :processmii3 @@@@A>>"%DriveU%"\Game-List-Updater[ModMii].bat
echo goto:nextstep>>"%DriveU%"\Game-List-Updater[ModMii].bat
echo :processmii3>>"%DriveU%"\Game-List-Updater[ModMii].bat
echo set Line=@@*>>"%DriveU%"\Game-List-Updater[ModMii].bat
echo SET /a countline=@@countline@@+1>>"%DriveU%"\Game-List-Updater[ModMii].bat
echo echo @@countline@@,@@line@@redirectredirectGame-List[ModMii].csv>>"%DriveU%"\Game-List-Updater[ModMii].bat
echo goto:EOF>>"%DriveU%"\Game-List-Updater[ModMii].bat
echo :nextstep>>"%DriveU%"\Game-List-Updater[ModMii].bat
echo if exist Gamelist-sorted.txt del Gamelist-sorted.txtredirectnul>>"%DriveU%"\Game-List-Updater[ModMii].bat
support\sfk filter "%DriveU%"\Game-List-Updater[ModMii].bat -spat -rep _@@_%%_ -rep _"redirect"_">"_ -write -yes>nul
support\sfk filter -quiet support\titles.txt -spat -rep _,_;_ -rep _" "_" "_ >"%DriveU%\titles.txt"
start /wait /min /D "%DriveU%" Game-List-Updater[ModMii].bat
echo.
support\sfk echo -spat \x20 \x20 \x20 \x20 \x20 \x20 \x20 \x20 \x20 \x20 \x20 \x20[%greentext%]GAME BULK EXTRACTION FOR SNEEK COMPLETE
echo.
echo A list of your games can be found here: "%DriveU%\Game-List[ModMii].csv"
echo To update this list at any time, run "%DriveU%\Game-List-Updater[ModMii].bat"
echo.
echo Press any key to return to the Main Menu.
pause>nul
goto:MENU
::........................................Advanced Downloads........................................
:ADVANCED
cls
set loadorgo=load
if exist temp\DLnames.txt del temp\DLnames.txt>nul
if exist temp\DLgotos.txt del temp\DLgotos.txt>nul
call "Support\subscripts\ClearDB.bat"
set ADVPATCH=
set ADVSLOT=
set ADVVERSION=
set alreadyexists=
set patch=
set ADVTYPE=
Set ADVLIST="
cls
echo ModMii v%currentversion%
support\sfk echo -spat \x20 \x20 \x20 \x20 \x20[%redtext%]ADVANCED DOWNLOADS[def]\x20 \x20 \x20 \x20 \x20 \x20by XFlak
echo.
echo D = Download Selected Files 1/2/3/4/5 = Page 1/2/3/4/5 M = Main Menu
echo C = Clear Download Queue DR = Drive Menu
echo.
echo Note: You can always return to this page to add more Advanced Downloads to a
echo queue by entering "ADV" instead of "A" when asked to begin downloading
echo.
if "%AdvNumber%" NEQ "0" support\sfk echo -spat \x20 \x20R = Remove Last Advanced Download\x20^| Advanced Downloads in Queue: [%cyantext%]%AdvNumber%
if "%AdvNumber%" EQU "0" support\sfk echo -spat \x20 \x20 \x20 \x20 \x20 \x20 \x20 \x20 \x20 \x20 \x20 \x20 \x20 \x20 \x20 \x20 \x20 \x20 \x20 \x20Advanced Downloads in Queue: [%cyantext%]0
support\sfk echo -spat \x20 s# = Change cIOS Slot # \x20 \x20(where # is 200-253): Current Setting: [%cyantext%]s%ADVSLOT2%
support\sfk echo -spat \x20 v# = Change cIOS Version # (where # is 1-65535): Current Setting: [%cyantext%]v%ADVVERSION2%
support\sfk echo -spat \x20d2x = Change d2x cIOS Version: \x20 \x20 \x20 \x20 \x20 \x20 \x20 \x20d2x Current Setting: [%cyantext%]%d2x-beta-rev%
echo.
support\sfk echo -spat \x20 \x20 \x20 \x20 \x20 \x20[%redtext%] d2x cIOSs \x20 \x20 \x20 \x20 \x20 \x20 \x20 \x20 \x20 \x20 \x20 \x20 \x20 \x20 \x20 \x20 Hermes v4 cIOSs
echo 37 = d2x cIOS%ADVSLOT2%[37] 437 = Hermes v4 cIOS%ADVSLOT2%[37-38]
echo 38 = d2x cIOS%ADVSLOT2%[38] 438 = Hermes v4 cIOS%ADVSLOT2%[38]
echo 53 = d2x cIOS%ADVSLOT2%[53]
support\sfk echo -spat \x20 \x20 \x2055 = d2x cIOS%ADVSLOT2%[55]\x20 \x20 \x20 \x20 \x20 \x20 \x20 \x20 \x20 \x20 \x20 \x20 \x20 \x20 [%redtext%]Waninkoko v21 cIOSs
echo 56 = d2x cIOS%ADVSLOT2%[56] W37 = Waninkoko v21 cIOS%ADVSLOT2%[37]
echo 57 = d2x cIOS%ADVSLOT2%[57] W38 = Waninkoko v21 cIOS%ADVSLOT2%[38]
echo 58 = d2x cIOS%ADVSLOT2%[58] W53 = Waninkoko v21 cIOS%ADVSLOT2%[53]
::make boxes for d2x bases 60/70/80 disabled IF older than v8 beta 42, as those bases never existed for those older versions
echo "set cIOSversionNum=%d2x-beta-rev%">temp\cIOSrev.bat
support\sfk filter -spat temp\cIOSrev.bat -rep _\x22__ -rep _"-*"__ -write -yes>nul
call temp\cIOSrev.bat
del temp\cIOSrev.bat>nul
if %cIOSversionNum% GEQ 8 goto:skipdisable
echo N/A: d2x cIOS%ADVSLOT2%[60] W55 = Waninkoko v21 cIOS%ADVSLOT2%[55]
echo N/A: d2x cIOS%ADVSLOT2%[70] W56 = Waninkoko v21 cIOS%ADVSLOT2%[56]
echo N/A: d2x cIOS%ADVSLOT2%[80] W57 = Waninkoko v21 cIOS%ADVSLOT2%[57]
goto:skip
:skipdisable
echo 60 = d2x cIOS%ADVSLOT2%[60] W55 = Waninkoko v21 cIOS%ADVSLOT2%[55]
echo 70 = d2x cIOS%ADVSLOT2%[70] W56 = Waninkoko v21 cIOS%ADVSLOT2%[56]
echo 80 = d2x cIOS%ADVSLOT2%[80] W57 = Waninkoko v21 cIOS%ADVSLOT2%[57]
:skip
if exist "Support\d2x-beta\ciosmaps_vWii.xml" goto:skipdisable
if not exist "Support\d2x-beta\" goto:skipdisable
echo N/A: d2x cIOS%ADVSLOT2%[38]-vWii W58 = Waninkoko v21 cIOS%ADVSLOT2%[58]
echo N/A: d2x cIOS%ADVSLOT2%[56]-vWii
support\sfk echo -spat \x20 \x20 \x20N/A: d2x cIOS%ADVSLOT2%[57]-vWii\x20 \x20 \x20 \x20 \x20 \x20 \x20 \x20 \x20 \x20 \x20 \x20[%redtext%]Waninkoko v20 cIOSs
echo N/A: d2x cIOS%ADVSLOT2%[58]-vWii W2038 = Waninkoko v20 cIOS%ADVSLOT2%[38]
goto:skip
:skipdisable
::disable cIOS248[38]-d2x-vWii if not supported in ciosmaps_vWii.xml
::check ciosmaps_vWii.xml for 'base ios="38"'
if not exist "Support\d2x-beta\" (echo 38v = d2x cIOS%ADVSLOT2%[38]-vWii W58 = Waninkoko v21 cIOS%ADVSLOT2%[58]) & (goto:tinyskip)
findStr /I /C:"base ios=\"38\"" "Support\d2x-beta\ciosmaps_vWii.xml" >nul
IF ERRORLEVEL 1 (echo N/A: d2x cIOS%ADVSLOT2%[38]-vWii W58 = Waninkoko v21 cIOS%ADVSLOT2%[58]) else (echo 38v = d2x cIOS%ADVSLOT2%[38]-vWii W58 = Waninkoko v21 cIOS%ADVSLOT2%[58])
:tinyskip
echo 56v = d2x cIOS%ADVSLOT2%[56]-vWii
support\sfk echo -spat \x20 \x20 57v = d2x cIOS%ADVSLOT2%[57]-vWii\x20 \x20 \x20 \x20 \x20 \x20 \x20 \x20 \x20 \x20 \x20 \x20[%redtext%]Waninkoko v20 cIOSs
echo 58v = d2x cIOS%ADVSLOT2%[58]-vWii W2038 = Waninkoko v20 cIOS%ADVSLOT2%[38]
:skip
echo W2056 = Waninkoko v20 cIOS%ADVSLOT2%[56]
support\sfk echo -spat \x20 \x20 \x20[%redtext%] Rodries\Hermes v5.1 cIOSs[def] \x20 \x20 \x20 \x20 \x20 \x20W2057 = Waninkoko v20 cIOS%ADVSLOT2%[57]
echo R37 = Rodries v5.1 cIOS%ADVSLOT2%[37]
support\sfk echo -spat \x20 \x20 R38 = Rodries v5.1 cIOS%ADVSLOT2%[38]\x20 \x20 \x20 \x20 \x20 \x20 \x20 \x20 \x20 \x20[%redtext%]Waninkoko v19 cIOSs
echo R57 = Rodries v5.1 cIOS%ADVSLOT2%[57] W1937 = Waninkoko v19 cIOS%ADVSLOT2%[37]
echo R60 = Rodries v5.1 cIOS%ADVSLOT2%[60] W1938 = Waninkoko v19 cIOS%ADVSLOT2%[38]
echo W1957 = Waninkoko v19 cIOS%ADVSLOT2%[57]
support\sfk echo -spat \x20 \x20 \x20 \x20 \x20[%redtext%] Hermes v5 cIOSs
support\sfk echo -spat \x20 \x20 H37 = Hermes v5 cIOS%ADVSLOT2%[37]\x20 \x20 \x20 \x20 \x20 \x20 \x20 \x20 \x20 \x20 \x20[%redtext%]Waninkoko other cIOSs
echo H38 = Hermes v5 cIOS%ADVSLOT2%[38] W17 = Waninkoko v17b cIOS%ADVSLOT2%
echo H57 = Hermes v5 cIOS%ADVSLOT2%[57] W14 = Waninkoko v14 cIOS%ADVSLOT2%
echo.
echo U = User-Defined Custom Download: Get any IOS, MIOS or System Menu Version
echo F = Forwarder Builder
echo.
set /p ADVLIST=Enter Selection Here:
set "ADVLIST=%ADVLIST:"=%"
IF "%ADVLIST%"=="" goto:badkey
if /i "%ADVLIST%" EQU "M" goto:MENU
if /i "%ADVLIST%" EQU "DR" set BACKB4DRIVE=ADVANCED
if /i "%ADVLIST%" EQU "DR" goto:DRIVECHANGE
if /i "%ADVLIST%" EQU "U" goto:Custom
if /i "%ADVLIST%" EQU "1" (set "nextpage=DLPAGE%ADVLIST%.hta") & (goto:DLPAGES)
if /i "%ADVLIST%" EQU "2" (set "nextpage=DLPAGE%ADVLIST%.hta") & (goto:DLPAGES)
if /i "%ADVLIST%" EQU "3" (set "nextpage=DLPAGE%ADVLIST%.hta") & (goto:DLPAGES)
if /i "%ADVLIST%" EQU "4" (set "nextpage=DLPAGE%ADVLIST%.hta") & (goto:DLPAGES)
if /i "%ADVLIST%" EQU "5" (set "nextpage=DLPAGE%ADVLIST%.hta") & (goto:DLPAGES)
if /i "%ADVLIST%" EQU "F" goto:FORWARDERDOLorISO
if /i "%ADVLIST%" EQU "d2x" (set backbeforebetaswitch=ADVANCED) & (goto:betaswitch)
::input for d2x versions used to be "BETA", leaving it enabled for legacy \ muscle memory purposes
if /i "%ADVLIST%" EQU "BETA" (set backbeforebetaswitch=ADVANCED) & (goto:betaswitch)
if /i "%ADVLIST%" EQU "D" set loadorgo=go
if /i "%ADVLIST%" EQU "D" set BACKB4QUEUE=ADVANCED
if /i "%ADVLIST%" EQU "D" goto:DOWNLOADQUEUE
if /i "%ADVLIST%" EQU "C" (set ADVSLOT2=247) & (goto:CLEAR)
::remove last download
if /i "%ADVLIST%" NEQ "R" goto:skip
if "%AdvNumber%" EQU "0" goto:skip
if exist "temp\AdvDL%AdvNumber%.bat" del "temp\AdvDL%AdvNumber%.bat">nul
set /a AdvNumber=%AdvNumber%-1
::remove last line from temp\DLnamesADV.txt & temp\DLgotosADV.txt
support\sfk filter -head=%AdvNumber% "temp\DLnamesADV.txt">"temp\DLnamesADV2.txt"
move /y "temp\DLnamesADV2.txt" "temp\DLnamesADV.txt">nul
support\sfk filter -head=%AdvNumber% "temp\DLgotosADV.txt">"temp\DLgotosADV2.txt"
move /y "temp\DLgotosADV2.txt" "temp\DLgotosADV.txt">nul
if "%AdvNumber%" NEQ "0" goto:ADVANCED
if exist "temp\DLgotosADV.txt" del "temp\DLgotosADV.txt">nul
if exist "temp\DLnamesADV.txt" del "temp\DLnamesADV.txt">nul
goto:ADVANCED
:skip
if /i "%ADVLIST:~0,1%" NEQ "V" goto:NotV
set "ADVLIST=%ADVLIST:~1%"
for %%A in ("%ADVLIST%") do (for /f "tokens=1 delims=0123456789" %%B in ("%%~A") do goto:badkey)
::Remove leading zeros
for /f "tokens=* delims=0" %%A in ("%ADVLIST%") do set "ADVLIST=%%A"
::Set to 0 if entire input is all zeros
if "%ADVLIST%"=="" set "ADVLIST=0"
::limit user input to X# of digits
if not "%ADVLIST:~5%"=="" goto:badkey
::Reject numbers outside permitted range
if %ADVLIST% LSS 1 goto:badkey
if %ADVLIST% GTR 65535 goto:badkey
set "ADVVERSION2=%ADVLIST%"
goto:ADVANCED
:NotV
if /i "%ADVLIST:~0,1%" NEQ "S" goto:NotS
set "ADVLIST=%ADVLIST:~1%"
for %%A in ("%ADVLIST%") do (for /f "tokens=1 delims=0123456789" %%B in ("%%~A") do goto:badkey)
::Remove leading zeros
for /f "tokens=* delims=0" %%A in ("%ADVLIST%") do set "ADVLIST=%%A"
::Set to 0 if entire input is all zeros
if "%ADVLIST%"=="" set "ADVLIST=0"
::limit user input to X# of digits
if not "%ADVLIST:~3%"=="" goto:badkey
::Reject numbers outside permitted range
if %ADVLIST% LSS 200 goto:badkey
if %ADVLIST% GTR 253 goto:badkey
set "ADVSLOT2=%ADVLIST%"
goto:ADVANCED
:NotS
set CurrentDLNAME=
if /i "%ADVLIST%" EQU "H38" set CurrentDLNAME=cIOS222[38]-v5
if /i "%ADVLIST%" EQU "H37" set CurrentDLNAME=cIOS223[37]-v5
if /i "%ADVLIST%" EQU "H57" set CurrentDLNAME=cIOS224[57]-v5
if /i "%ADVLIST%" EQU "R60" set CurrentDLNAME=cIOS202[60]-v5.1R
if /i "%ADVLIST%" EQU "R38" set CurrentDLNAME=cIOS222[38]-v5.1R
if /i "%ADVLIST%" EQU "R37" set CurrentDLNAME=cIOS223[37]-v5.1R
if /i "%ADVLIST%" EQU "R57" set CurrentDLNAME=cIOS224[57]-v5.1R
if /i "%ADVLIST%" EQU "W1937" set CurrentDLNAME=cIOS249[37]-v19
if /i "%ADVLIST%" EQU "W1938" set CurrentDLNAME=cIOS249[38]-v19
if /i "%ADVLIST%" EQU "W2038" set CurrentDLNAME=cIOS249[38]-v20
if /i "%ADVLIST%" EQU "W2056" set CurrentDLNAME=cIOS249[56]-v20
if /i "%ADVLIST%" EQU "W2057" set CurrentDLNAME=cIOS249[57]-v20
if /i "%ADVLIST%" EQU "W1957" set CurrentDLNAME=cIOS249[57]-v19
if /i "%ADVLIST%" EQU "438" set CurrentDLNAME=cIOS222[38]-v4
if /i "%ADVLIST%" EQU "437" set CurrentDLNAME=cIOS223[37-38]-v4
if /i "%ADVLIST%" EQU "W17" set CurrentDLNAME=cIOS249-v17b
if /i "%ADVLIST%" EQU "W14" set CurrentDLNAME=cIOS249-v14
if /i "%ADVLIST%" EQU "W37" set CurrentDLNAME=cIOS249[37]-v21
if /i "%ADVLIST%" EQU "W38" set CurrentDLNAME=cIOS249[38]-v21
if /i "%ADVLIST%" EQU "W56" set CurrentDLNAME=cIOS249[56]-v21
if /i "%ADVLIST%" EQU "W53" set CurrentDLNAME=cIOS249[53]-v21
if /i "%ADVLIST%" EQU "W55" set CurrentDLNAME=cIOS249[55]-v21
if /i "%ADVLIST%" EQU "W57" set CurrentDLNAME=cIOS249[57]-v21
if /i "%ADVLIST%" EQU "W58" set CurrentDLNAME=cIOS249[58]-v21
if /i "%ADVLIST%" EQU "37" set CurrentDLNAME=cIOS249[37]-d2x-v10-beta52
if /i "%ADVLIST%" EQU "38" set CurrentDLNAME=cIOS249[38]-d2x-v10-beta52
if /i "%ADVLIST%" EQU "53" set CurrentDLNAME=cIOS249[53]-d2x-v10-beta52
if /i "%ADVLIST%" EQU "55" set CurrentDLNAME=cIOS249[55]-d2x-v10-beta52
if /i "%ADVLIST%" EQU "56" set CurrentDLNAME=cIOS249[56]-d2x-v10-beta52
if /i "%ADVLIST%" EQU "57" set CurrentDLNAME=cIOS249[57]-d2x-v10-beta52
if /i "%ADVLIST%" EQU "58" set CurrentDLNAME=cIOS249[58]-d2x-v10-beta52
if %cIOSversionNum% LSS 8 goto:skip
if /i "%ADVLIST%" EQU "60" set CurrentDLNAME=cIOS249[60]-d2x-v10-beta52
if /i "%ADVLIST%" EQU "70" set CurrentDLNAME=cIOS249[70]-d2x-v10-beta52
if /i "%ADVLIST%" EQU "80" set CurrentDLNAME=cIOS249[80]-d2x-v10-beta52
:skip
if exist "Support\d2x-beta\ciosmaps_vWii.xml" goto:skipdisable
if exist "Support\d2x-beta\" goto:skip
::if %cIOSversionNum% LSS 9 goto:skip
::if /i "%d2x-beta-rev%" EQU "10-b52-Stealth-RC24" goto:skip
:skipdisable
if /i "%ADVLIST%" EQU "56v" set CurrentDLNAME=cIOS249[56]-d2x-vWii
if /i "%ADVLIST%" EQU "57v" set CurrentDLNAME=cIOS250[57]-d2x-vWii
if /i "%ADVLIST%" EQU "58v" set CurrentDLNAME=cIOS251[58]-d2x-vWii
::disable cIOS248[38]-d2x-vWii if not supported in ciosmaps_vWii.xml
::check ciosmaps_vWii.xml for 'base ios="38"'
if not exist "Support\d2x-beta\ciosmaps_vWii.xml" goto:skipdisable
findStr /I /C:"base ios=\"38\"" "Support\d2x-beta\ciosmaps_vWii.xml" >nul
IF ERRORLEVEL 1 goto:skip
:skipdisable
if /i "%ADVLIST%" EQU "38v" set CurrentDLNAME=cIOS248[38]-d2x-vWii
:skip
if not "%CurrentDLNAME%"=="" (set ADVTYPE=CIOS) & (call "Support\subscripts\DB.bat")
if not "%CurrentDLNAME%"=="" (set CurrentDLNAME=) & (goto:downloadstart)
:badkey
echo You Have Entered an Incorrect Key
@ping 127.0.0.1 -n 2 -w 1000> nul
goto:ADVANCED
:ADVANCEDpickUP
set "SLOTCODE= -slot %ADVSLOT2%"
set "versioncode= -v %ADVVERSION2%"
set "versionname=-[v%ADVVERSION2%]"
::check if this is already in queue
if "%AdvNumber%" EQU "0" goto:continue
findStr /X /C:"Advanced Download: cIOS%ADVSLOT2%%wadname:~7%%versionname%" "temp\DLnamesADV.txt" >nul
IF ERRORLEVEL 1 goto:continue
echo Skipping... this is already in the Queue
support\sfk -spat echo \x20 cIOS[%redtext%]%ADVSLOT2%[def]%wadname:~7%[%redtext%]%versionname%
@ping 127.0.0.1 -n 2 -w 1000> nul
goto:ADVANCED
:continue
::echo.
echo Press any key to add this cIOS to your download queue, or enter "C" to Cancel.
support\sfk -spat echo \x20 cIOS[%redtext%]%ADVSLOT2%[def]%wadname:~7%[%redtext%]%versionname%
set ADVCONFIRM="
set /p ADVCONFIRM=Enter Selection Here:
set "ADVCONFIRM=%ADVCONFIRM:"=%"
if /i "%ADVCONFIRM%" EQU "C" goto:ADVANCED
set /a AdvNumber=%AdvNumber%+1
echo set "name=Advanced Download: cIOS%ADVSLOT2%%wadname:~7%%versionname%">temp\AdvDL%AdvNumber%.bat
if not "%wadname%"=="" echo set "wadname=%wadname%">>temp\AdvDL%AdvNumber%.bat
if not "%ciosSLOT%"=="" echo set "ciosslot=%ciosSLOT%">>temp\AdvDL%AdvNumber%.bat
if not "%ciosVERSION%"=="" echo set "ciosversion=%ciosVERSION%">>temp\AdvDL%AdvNumber%.bat
if not "%md5%"=="" echo set "md5=%md5%">>temp\AdvDL%AdvNumber%.bat
if not "%md5alt%"=="" echo set "md5alt=%md5alt%">>temp\AdvDL%AdvNumber%.bat
if not "%basewad%"=="" echo set "basewad=%basewad%">>temp\AdvDL%AdvNumber%.bat
if not "%md5base%"=="" echo set "md5base=%md5base%">>temp\AdvDL%AdvNumber%.bat
if not "%md5basealt%"=="" echo set "md5basealt=%md5basealt%">>temp\AdvDL%AdvNumber%.bat
if not "%code1%"=="" echo set "code1=%code1%">>temp\AdvDL%AdvNumber%.bat
if not "%code2%"=="" echo set "code2=%code2%">>temp\AdvDL%AdvNumber%.bat
if not "%version%"=="" echo set "version=%version%">>temp\AdvDL%AdvNumber%.bat
if not "%basewadb%"=="" echo set "basewadb=%basewadb%">>temp\AdvDL%AdvNumber%.bat
if not "%md5baseb%"=="" echo set "md5baseb=%md5baseb%">>temp\AdvDL%AdvNumber%.bat
if not "%md5basebalt%"=="" echo set "md5basebalt=%md5basebalt%">>temp\AdvDL%AdvNumber%.bat
if not "%code1b%"=="" echo set "code1b=%code1b%">>temp\AdvDL%AdvNumber%.bat
if not "%code2b%"=="" echo set "code2b=%code2b%">>temp\AdvDL%AdvNumber%.bat
if not "%versionb%"=="" echo set "versionb=%versionb%">>temp\AdvDL%AdvNumber%.bat
if not "%basecios%"=="" echo set "basecios=%basecios%">>temp\AdvDL%AdvNumber%.bat
if not "%diffpath%"=="" echo set "diffpath=%diffpath%">>temp\AdvDL%AdvNumber%.bat
if not "%code2new%"=="" echo set "code2new=%code2new%">>temp\AdvDL%AdvNumber%.bat
if not "%lastbasemodule%"=="" echo set "lastbasemodule=%lastbasemodule%">>temp\AdvDL%AdvNumber%.bat
echo set "wadnameless=cIOS%ADVSLOT2%%wadnameless:~7%">>temp\AdvDL%AdvNumber%.bat
if not "%patchname%"=="" echo set "patchname=%patchname%">>temp\AdvDL%AdvNumber%.bat
if not "%slotname%"=="" echo set "slotname=%slotname%">>temp\AdvDL%AdvNumber%.bat
if not "%slotcode%"=="" echo set "slotcode=%slotcode%">>temp\AdvDL%AdvNumber%.bat
if not "%versionname%"=="" echo set "versionname=%versionname%">>temp\AdvDL%AdvNumber%.bat
if not "%versioncode%"=="" echo set "versioncode=%versioncode%">>temp\AdvDL%AdvNumber%.bat
if not "%cIOSversionNum%"=="" echo set "cIOSversionNum=%cIOSversionNum%">>temp\AdvDL%AdvNumber%.bat
if not "%PATCHCODE%"=="" echo set "PATCHCODE=%PATCHCODE%">>temp\AdvDL%AdvNumber%.bat
if not "%cIOSFamilyName%"=="" echo set "cIOSFamilyName=%cIOSFamilyName%">>temp\AdvDL%AdvNumber%.bat
::"category" only needed for d2x cIOSs (cIOSFamilyName for d2x cIOSs can be null or "d2x")
if "%cIOSFamilyName%"=="" echo set "category=Support\More-cIOSs\d2x-v%d2x-beta-rev%">>temp\AdvDL%AdvNumber%.bat
if /i "%cIOSFamilyName%" EQU "d2x" echo set "category=Support\More-cIOSs\d2x-v%d2x-beta-rev%">>temp\AdvDL%AdvNumber%.bat
echo "Advanced Download: cIOS%ADVSLOT2%%wadname:~7%%versionname%">>temp\DLnamesADV.txt
echo temp\AdvDL%AdvNumber%.bat>>temp\DLgotosADV.txt
support\sfk -spat filter -quiet "temp\DLnamesADV.txt" -rep _\x22__ -write -yes
set /a ADVSLOT2=%ADVSLOT2%-1
if /i "%ADVSLOT2%" EQU "199" set "ADVSLOT2=247"
goto:ADVANCED
::------------------------
:betaswitch
if exist temp\list.txt del temp\list.txt>nul
if exist temp\list2.txt del temp\list2.txt>nul
::only do d2x version checks once per day to keep things snappy, especially for advanced downloads
FOR /F "tokens=*" %%g IN ('support\sfk date') do (SET CurDate=%%g)
if not exist "temp\d2xlist%CurDate%.txt" if exist "temp\d2xlist*.txt" del /f /q "temp\d2xlist*.txt"
if not exist "temp\d2xlist%CurDate%.txt" goto:skip
copy /y "temp\d2xlist%CurDate%.txt" "temp\list2.txt">nul
copy /y "temp\d2xlist%CurDate%.txt" "temp\list.txt">nul
goto:nowifi
:skip
echo Checking for other d2x versions hosted online...
::get d2x list
support\wget --no-check-certificate -N "https://github.com/modmii/modmii.github.io/tree/master/temp/d2x" -O "temp\list.txt" -q
::delete if file is empty (if empty)
>nul findstr "^" "temp\list.txt" || del "temp\list.txt"
if exist not exist temp\list.txt goto:nowifi
::copy /y "temp\list.txt" "temp\list2.txt">nul
support\sfk filter -spat "temp\list.txt" -rep _\x22path\x22_\x0d\x0a_ -write -yes>nul
support\sfk filter -spat "temp\list.txt" -and+".7z" -and+"d2x/" -!"Link--primary" -rep _"*temp/d2x/"__ -rep _".7z*"__ -write -yes>nul
support\sfk filter -spat "temp\list.txt" -!"<" -!">" -write -yes>nul
copy /y "temp\list.txt" "temp\list2.txt">nul
copy /y "temp\list.txt" "temp\d2xlist%CurDate%.txt">nul
::support\sfk filter "temp\list.txt" -rep _"*/"__ -write -yes>nul ::this seems no longer necessary...
:nowifi
::get local list
if not exist support\More-cIOSs mkdir support\More-cIOSs
dir support\More-cIOSs /a:d /b>>temp\list.txt
support\sfk filter "temp\list.txt" -unique -write -yes>nul
:betaswitch2
::count # of lines
SET d2xTOTAL=0
for /f %%a in (temp\list.txt) do set /a d2xTOTAL+=1
Set betacios="
cls
echo ModMii v%currentversion%
echo by XFlak
echo.
echo Select the d2x cIOS version you would like to build:
echo.
echo Current Setting: v%d2x-beta-rev%
echo.
echo Notes: * v10-beta53-alt isn't recommended unless needed for HDD compatibility
echo * Versions older than v8 beta42 do not support bases 60/70/80
echo * Versions older than v10 are not supported by vWii
echo * Versions older than v11-beta2 do not support vWii base 38
echo * "FM" stands for Fakemote; which adds DS3 ^& DS4 controller support
echo * v8-final is nearly identical to v10-beta52 and v11-beta1
echo.
if /i "%d2xTOTAL%" EQU "0" (echo No alternate d2x versions were found online or in the support\More-cIOSs Folder) & (goto:quickskip)
if not "%RecD2XcIOS%"=="" echo R = Recommended Version (v%RecD2XcIOS:~5%)
echo D = Default that came with ModMii v%currentversion% (v%d2x-bundled%)
echo.
set MorecIOSsNum=0
::Loop through the following once for EACH line in *.txt
for /F "tokens=*" %%A in (temp\list.txt) do call :processlist %%A
goto:quickskip
:processlist
set CurrentcIOS=%*
set /a MorecIOSsNum=%MorecIOSsNum%+1
::findStr /I /C:"%CurrentcIOS%" "temp\list2.txt" >nul
::IF ERRORLEVEL 1 (set d2xFeatured=) else (set d2xFeatured= - Featured)
if not exist "support\More-cIOSs\%CurrentcIOS%" echo %MorecIOSsNum% = %CurrentcIOS% (Online)%d2xFeatured%
if exist "support\More-cIOSs\%CurrentcIOS%" echo %MorecIOSsNum% = %CurrentcIOS% (Local)%d2xFeatured%
goto:EOF
:quickskip
echo.
echo WWW = More Information Available at https://github.com/wiidev/d2x-cios
echo ( or for older versions visit https://github.com/davebaol/d2x-cios )
echo.
echo B = Back
echo M = Main Menu
echo.
set /p betacios=Enter Selection Here:
set "betacios=%betacios:"=%"
if /i "%betacios%" EQU "M" goto:MENU
if /i "%betacios%" EQU "B" goto:%backbeforebetaswitch%
if /i "%betacios%" EQU "WWW" (start https://github.com/wiidev/d2x-cios/releases) & (goto:betaswitch)
if /i "%betacios%" NEQ "R" goto:notR
if "%RecD2XcIOS%"=="" goto:notR
::set RecD2XcIOS=d2x-v10-beta52
if /i "%d2x-bundled%" EQU "%RecD2XcIOS:~5%" (set betacios=D) & (goto:notR)
set "CurrentcIOS=%RecD2XcIOS%"
goto:Gotd2x
::set "d2x-beta-rev=%RecD2XcIOS:~5%
:notR
if /i "%betacios%" NEQ "D" goto:notD
if exist support\d2x-beta rd /s /q support\d2x-beta
set d2x-beta-rev=%d2x-bundled%
if /i "%LegacyCIOS%" NEQ "Y" goto:NoSetTweak
echo Disabling legacy cIOS building method...
Set LegacyCIOS=
support\sfk filter "Support\settings.bat" -ls!"Set LegacyCIOS=" -write -yes>nul
@ping 127.0.0.1 -n 2 -w 1000> nul
:NoSetTweak
goto:%backbeforebetaswitch%
:notD
if "%betacios%"=="" goto:badkey
if /i "%d2xTOTAL%" EQU "0" goto:badkey
echo set betacios=%betacios% >temp\temp.bat
support\sfk filter -quiet temp\temp.bat -rep _.__ -lerep _" "__ -write -yes
call temp\temp.bat
del temp\temp.bat>nul
::if not numeric goto:badkey
for %%A in ("%betacios%") do (for /f "tokens=1 delims=0123456789" %%B in ("%%~A") do goto:badkey)
::Remove leading zeros
for /f "tokens=* delims=0" %%A in ("%betacios%") do set "betacios=%%A"
::Set to 0 if entire input is all zeros
if "%betacios%"=="" set "betacios=0"
if %betacios% LSS 1 goto:badkey
if /i %betacios% GTR %MorecIOSsNum% goto:badkey
::----copy folders over----
set MorecIOSsNum2=0
::Loop through the following once for EACH line in *.txt
for /F "tokens=*" %%A in (temp\list.txt) do call :processlist4 %%A
goto:Gotd2x
:processlist4
set CurrentcIOS=%*
::if not exist "support\More-cIOSs\%CurrentcIOS%\d2x-beta.bat" goto:EOF
set /a MorecIOSsNum2=%MorecIOSsNum2%+1
if /i "%MorecIOSsNum2%" EQU "%betacios%" goto:Gotd2x
goto:EOF
:Gotd2x
support\sfk filter "temp\list2.txt" -le+"%CurrentcIOS%" -write -yes>nul
set DLcIOS=
set /p DLcIOS= <"temp\list2.txt"
::if "%DLcIOS%"=="" echo "%CurrentcIOS%" is not available online
::set DLcIOS=%CurrentcIOS%
::set CurrentcIOS=%CurrentcIOS:*/=%
if not exist "support\More-cIOSs\%CurrentcIOS%\d2x-beta.bat" goto:yesdownload
::check for legacy d2x-beta.bat's, if "magicword2" found no need for further checks (incl vWii)
findStr "magicword2" "support\More-cIOSs\%CurrentcIOS%\d2x-beta.bat" >nul
IF ERRORLEVEL 1 goto:LegacySupport
if /i "%LegacyCIOS%" NEQ "Y" goto:nodownload
echo Disabling legacy cIOS building method...
Set LegacyCIOS=
support\sfk filter "Support\settings.bat" -ls!"Set LegacyCIOS=" -write -yes>nul
@ping 127.0.0.1 -n 2 -w 1000> nul
goto:nodownload
:LegacySupport
::redownload if updates available online (if DLcIOS is null then not online or no wifi)
if not "%DLcIOS%"=="" (echo Outdated local d2x version detected, downloading minor updates to support fakesigning...) & (goto:yesdownload)
::try downloading from deprecated folder
support\wget --output-document %CurrentcIOS%.zip --no-check-certificate -t 3 "https://github.com/modmii/modmii.github.io/blob/master/temp/d2x-deprecated/%CurrentcIOS%.7z?raw=true" -q --show-progress
echo.
::delete if file is empty
>nul findstr "^" "%CurrentcIOS%.zip" || del "%CurrentcIOS%.zip"
if exist "%CurrentcIOS%.zip" goto:yesdownload2
::legacy local d2x beta's without updates here, enable legacy support
echo Legacy local d2x version detected, switching to legacy cIOS building method...
echo.
echo To later disable legacy cIOS building choose a different d2x version
echo (or update cIOS bundle with d2x-beta-md5-updater.bat if you know what you're doing)
echo.
echo While legacy cIOS building is enabled ModMii won't fakesign WADs during some
echo operations and .NET Framework 3.5 is required
echo.
echo Press any key to proceed, or close ModMii now
pause>nul
echo.
::if /i "%LegacyCIOS%" NEQ "Y" goto:skip
call Support\subscripts\dependency.bat LegacyCIOS
if /i "%dependency%" EQU "F" goto:RevertOverride
::.NET Framework 3.5 check+installation
call Support\subscripts\dependency.bat NETframework
if /i "%dependency%" EQU "F" goto:RevertOverride
goto:skip
:RevertOverride
echo DISABLING legacy cIOS building method because:
if not exist Support\WadMii.exe echo - Support\WadMii.exe is missing
if not exist Support\libWiiSharp.dll echo - Support\libWiiSharp.dll is missing
if not exist Support\tmdedit.exe echo - Support\tmdedit.exe is missing
if not exist Support\patchios.exe echo - Support\patchios.exe is missing
if not exist "%windir%\Microsoft.NET\Framework\v3.5" echo - .NET Framework 3.5 not installed
set LegacyCIOS=
if exist Support\settings.bat support\sfk filter Support\settings.bat -ls!"Set LegacyCIOS=" -write -yes>nul
echo.
echo.
echo You should expect to get some Invalid errors while using this d2x version.
echo If you're beta testing you can add "set KeepInvalidOverride=Y" to
echo settings.bat to prevent ModMii from deleting some Invalid downloads
echo.
echo Press any key to switch to this d2x version anyway, or close ModMii now
pause>nul
goto:nodownload
:skip
::enable legacy cIOS building
if /i "%LegacyCIOS%" NEQ "Y" (Set LegacyCIOS=Y) & (echo Set LegacyCIOS=Y>>Support\settings.bat)
goto:nodownload
:yesdownload
if "%DLcIOS%"=="" (echo d2x Download Error, no internet?) & (@ping 127.0.0.1 -n 2 -w 1000> nul) & (goto:betaswitch2)
support\wget --output-document %CurrentcIOS%.zip --no-check-certificate -t 3 "https://github.com/modmii/modmii.github.io/blob/master/temp/d2x/%DLcIOS%.7z?raw=true" -q --show-progress
::delete if file is empty (if empty)
>nul findstr "^" "%CurrentcIOS%.zip" || del "%CurrentcIOS%.zip"
if not exist "%CurrentcIOS%.zip" goto:badkey
:yesdownload2
if not exist "support\More-cIOSs\%CurrentcIOS%" mkdir "support\More-cIOSs\%CurrentcIOS%"
support\7za e -aoa "%CurrentcIOS%.zip" -o"support\More-cIOSs\%CurrentcIOS%" *.* -r
del "%CurrentcIOS%.zip">nul
if not exist "support\More-cIOSs\%CurrentcIOS%\d2x-beta.bat" (rd /s /q "support\More-cIOSs\%CurrentcIOS%") & (goto:badkey)
:nodownload
if exist support\d2x-beta rd /s /q support\d2x-beta
mkdir support\d2x-beta
copy /y "support\More-cIOSs\%CurrentcIOS%\*" "support\d2x-beta">nul
if exist support\d2x-beta\d2x-beta.bat call support\d2x-beta\d2x-beta.bat
del temp\list.txt>nul
del temp\list2.txt>nul
goto:%backbeforebetaswitch%
:badkey
echo You Have Entered an Incorrect Key
@ping 127.0.0.1 -n 2 -w 1000> nul
goto:betaswitch2
::------------------------------------ADVANCED page 2 - PATCH IOS--------------------------------
:ADVPAGE2
set loadorgo=go
set ADVPATCH="
set patchcode=
set patchname=
set ADVSLOT=
set SLOTCODE=
set SLOTNAME=
if /i "%ADVLIST%" EQU "U" goto:skip
set wadnameless=%wadname%
echo BLAH%wadname%>wadnametemp.bat
support\sfk filter wadnametemp.bat -rep _BLAH_"set wadnameless="_ -rep _RVL-__ -rep _.wad__ -write -yes>nul
::-rep _-64-__
call wadnametemp.bat
del wadnametemp.bat>nul
if /i "%ADVTYPE%" EQU "CIOS" goto:ADVANCEDpickUP
:skip
cls
echo ModMii v%currentversion%
echo by XFlak
echo.
echo.
echo How would you like to patch %wadnameless%?
echo.
echo.
echo.
echo A = All 4 available patches
echo N = No Patches
echo.
echo -FS = FakeSigning Patch
echo -ES = ES Identify Patch
echo -NP = Nand Permission Patch
echo -VP = Version Patch
echo.
echo.
echo.
echo Select multiple patches by separating them by a space.
echo.
echo.
echo Examples of how to select multiple patches
echo ------------------------------------------
echo -FS -ES -NP
echo -ES -FS
echo -NP -VP
echo -NP -FS -VP
echo -FS -ES -NP -VP
echo etc.
echo.
echo.
echo.
echo.
echo B = Back
echo.
echo M = Main Menu
echo.
echo.
echo.
set /p ADVPATCH=Enter Selection Here:
set "ADVPATCH=%ADVPATCH:"=%"
if "%ADVPATCH%"=="" goto:badkey
if "%ADVLIST%"=="" goto:badkey
if /i "%ADVPATCH%" EQU "M" goto:MENU
if /i "%ADVLIST%" EQU "U" goto:skip
if /i "%ADVPATCH%" EQU "B" goto:ADVANCED
:skip
if /i "%ADVPATCH%" EQU "B" goto:CUSTOMPAGE2
if /i "%ADVPATCH%" EQU "N" (set patchcode=) & (set patchname=) & (goto:ADVPAGE3)
if /i "%ADVPATCH%" EQU "A" set ADVPATCH=-FS -ES -NP -VP
::if lower case letters entered change to upper
if /i "%ADVPATCH%" EQU "-FS" set ADVPATCH=-FS
if /i "%ADVPATCH%" EQU "-ES" set ADVPATCH=-ES
if /i "%ADVPATCH%" EQU "-NP" set ADVPATCH=-NP
if /i "%ADVPATCH%" EQU "-VP" set ADVPATCH=-VP
if /i "%ADVPATCH%" EQU "-FS -ES" set ADVPATCH=-FS -ES
if /i "%ADVPATCH%" EQU "-ES -FS" set ADVPATCH=-ES -FS
if /i "%ADVPATCH%" EQU "-FS -NP" set ADVPATCH=-FS -NP
if /i "%ADVPATCH%" EQU "-NP -FS" set ADVPATCH=-NP -FS
if /i "%ADVPATCH%" EQU "-FS -VP" set ADVPATCH=-FS -VP
if /i "%ADVPATCH%" EQU "-VP -FS" set ADVPATCH=-VP -FS
if /i "%ADVPATCH%" EQU "-ES -NP" set ADVPATCH=-ES -NP
if /i "%ADVPATCH%" EQU "-NP -ES" set ADVPATCH=-NP -ES
if /i "%ADVPATCH%" EQU "-ES -VP" set ADVPATCH=-ES -VP
if /i "%ADVPATCH%" EQU "-VP -ES" set ADVPATCH=-VP -ES
if /i "%ADVPATCH%" EQU "-NP -VP" set ADVPATCH=-NP -VP
if /i "%ADVPATCH%" EQU "-VP -NP" set ADVPATCH=-VP -NP
if /i "%ADVPATCH%" EQU "-FS -ES -NP" set ADVPATCH=-FS -ES -NP
if /i "%ADVPATCH%" EQU "-FS -NP -ES" set ADVPATCH=-FS -NP -ES
if /i "%ADVPATCH%" EQU "-ES -FS -NP" set ADVPATCH=-ES -FS -NP
if /i "%ADVPATCH%" EQU "-ES -NP -FS" set ADVPATCH=-ES -NP -FS
if /i "%ADVPATCH%" EQU "-NP -FS -ES" set ADVPATCH=-NP -FS -ES
if /i "%ADVPATCH%" EQU "-NP -ES -FS" set ADVPATCH=-NP -ES -FS
if /i "%ADVPATCH%" EQU "-FS -ES -VP" set ADVPATCH=-FS -ES -VP
if /i "%ADVPATCH%" EQU "-FS -VP -ES" set ADVPATCH=-FS -VP -ES
if /i "%ADVPATCH%" EQU "-ES -FS -VP" set ADVPATCH=-ES -FS -VP
if /i "%ADVPATCH%" EQU "-ES -VP -FS" set ADVPATCH=-ES -VP -FS
if /i "%ADVPATCH%" EQU "-VP -FS -ES" set ADVPATCH=-VP -FS -ES
if /i "%ADVPATCH%" EQU "-VP -ES -FS" set ADVPATCH=-VP -ES -FS
if /i "%ADVPATCH%" EQU "-FS -NP -VP" set ADVPATCH=-FS -NP -VP
if /i "%ADVPATCH%" EQU "-FS -VP -NP" set ADVPATCH=-FS -VP -NP
if /i "%ADVPATCH%" EQU "-NP -FS -VP" set ADVPATCH=-NP -FS -VP
if /i "%ADVPATCH%" EQU "-NP -VP -FS" set ADVPATCH=-NP -VP -FS
if /i "%ADVPATCH%" EQU "-VP -NP -FS" set ADVPATCH=-VP -NP -FS
if /i "%ADVPATCH%" EQU "-VP -FS -NP" set ADVPATCH=-VP -FS -NP
if /i "%ADVPATCH%" EQU "-ES -NP -VP" set ADVPATCH=-ES -NP -VP
if /i "%ADVPATCH%" EQU "-ES -VP -NP" set ADVPATCH=-ES -VP -NP
if /i "%ADVPATCH%" EQU "-NP -ES -VP" set ADVPATCH=-NP -ES -VP
if /i "%ADVPATCH%" EQU "-NP -VP -ES" set ADVPATCH=-NP -VP -ES
if /i "%ADVPATCH%" EQU "-VP -ES -NP" set ADVPATCH=-VP -ES -NP
if /i "%ADVPATCH%" EQU "-VP -NP -ES" set ADVPATCH=-VP -NP -ES
if /i "%ADVPATCH%" EQU "-VP -FS -ES -NP" set ADVPATCH=-VP -FS -ES -NP
if /i "%ADVPATCH%" EQU "-VP -FS -NP -ES" set ADVPATCH=-VP -FS -NP -ES
if /i "%ADVPATCH%" EQU "-VP -ES -FS -NP" set ADVPATCH=-VP -ES -FS -NP
if /i "%ADVPATCH%" EQU "-VP -ES -NP -FS" set ADVPATCH=-VP -ES -NP -FS
if /i "%ADVPATCH%" EQU "-VP -NP -FS -ES" set ADVPATCH=-VP -NP -FS -ES
if /i "%ADVPATCH%" EQU "-VP -NP -ES -FS" set ADVPATCH=-VP -NP -ES -FS
if /i "%ADVPATCH%" EQU "-NP -FS -ES -VP" set ADVPATCH=-NP -FS -ES -VP
if /i "%ADVPATCH%" EQU "-NP -FS -VP -ES" set ADVPATCH=-NP -FS -VP -ES
if /i "%ADVPATCH%" EQU "-NP -ES -FS -VP" set ADVPATCH=-NP -ES -FS -VP
if /i "%ADVPATCH%" EQU "-NP -ES -VP -FS" set ADVPATCH=-NP -ES -VP -FS
if /i "%ADVPATCH%" EQU "-NP -VP -FS -ES" set ADVPATCH=-NP -VP -FS -ES
if /i "%ADVPATCH%" EQU "-NP -VP -ES -FS" set ADVPATCH=-NP -VP -ES -FS
if /i "%ADVPATCH%" EQU "-ES -FS -NP -VP" set ADVPATCH=-ES -FS -NP -VP
if /i "%ADVPATCH%" EQU "-ES -FS -VP -NP" set ADVPATCH=-ES -FS -VP -NP
if /i "%ADVPATCH%" EQU "-ES -NP -FS -VP" set ADVPATCH=-ES -NP -FS -VP
if /i "%ADVPATCH%" EQU "-ES -NP -VP -FS" set ADVPATCH=-ES -NP -VP -FS
if /i "%ADVPATCH%" EQU "-ES -VP -NP -FS" set ADVPATCH=-ES -VP -NP -FS
if /i "%ADVPATCH%" EQU "-ES -VP -FS -NP" set ADVPATCH=-ES -VP -FS -NP
if /i "%ADVPATCH%" EQU "-FS -ES -NP -VP" set ADVPATCH=-FS -ES -NP -VP
if /i "%ADVPATCH%" EQU "-FS -ES -VP -NP" set ADVPATCH=-FS -ES -VP -NP
if /i "%ADVPATCH%" EQU "-FS -NP -ES -VP" set ADVPATCH=-FS -NP -ES -VP
if /i "%ADVPATCH%" EQU "-FS -NP -VP -ES" set ADVPATCH=-FS -NP -VP -ES
if /i "%ADVPATCH%" EQU "-FS -VP -ES -NP" set ADVPATCH=-FS -VP -ES -NP
if /i "%ADVPATCH%" EQU "-FS -VP -NP -ES" set ADVPATCH=-FS -VP -NP -ES
::add leading space for patchcode
set patchcode= %ADVPATCH%
::remove leading dash and space for patchname
echo [%ADVPATCH:~1%]>temp\temp.txt
support\sfk filter -quiet temp\temp.txt -rep _" "__ -write -yes
set /p patchname= <temp\temp.txt
del temp\temp.txt>nul
if /i "%ADVPATCH%" EQU "-FS" goto:ADVPAGE3
if /i "%ADVPATCH%" EQU "-ES" goto:ADVPAGE3
if /i "%ADVPATCH%" EQU "-NP" goto:ADVPAGE3
if /i "%ADVPATCH%" EQU "-VP" goto:ADVPAGE3
if /i "%ADVPATCH%" EQU "-FS -ES" goto:ADVPAGE3
if /i "%ADVPATCH%" EQU "-ES -FS" goto:ADVPAGE3
if /i "%ADVPATCH%" EQU "-FS -NP" goto:ADVPAGE3
if /i "%ADVPATCH%" EQU "-NP -FS" goto:ADVPAGE3
if /i "%ADVPATCH%" EQU "-FS -VP" goto:ADVPAGE3
if /i "%ADVPATCH%" EQU "-VP -FS" goto:ADVPAGE3
if /i "%ADVPATCH%" EQU "-ES -NP" goto:ADVPAGE3
if /i "%ADVPATCH%" EQU "-NP -ES" goto:ADVPAGE3
if /i "%ADVPATCH%" EQU "-ES -VP" goto:ADVPAGE3
if /i "%ADVPATCH%" EQU "-VP -ES" goto:ADVPAGE3
if /i "%ADVPATCH%" EQU "-NP -VP" goto:ADVPAGE3
if /i "%ADVPATCH%" EQU "-VP -NP" goto:ADVPAGE3
if /i "%ADVPATCH%" EQU "-FS -ES -NP" goto:ADVPAGE3
if /i "%ADVPATCH%" EQU "-FS -NP -ES" goto:ADVPAGE3
if /i "%ADVPATCH%" EQU "-ES -FS -NP" goto:ADVPAGE3
if /i "%ADVPATCH%" EQU "-ES -NP -FS" goto:ADVPAGE3
if /i "%ADVPATCH%" EQU "-NP -FS -ES" goto:ADVPAGE3
if /i "%ADVPATCH%" EQU "-NP -ES -FS" goto:ADVPAGE3
if /i "%ADVPATCH%" EQU "-FS -ES -VP" goto:ADVPAGE3
if /i "%ADVPATCH%" EQU "-FS -VP -ES" goto:ADVPAGE3
if /i "%ADVPATCH%" EQU "-ES -FS -VP" goto:ADVPAGE3
if /i "%ADVPATCH%" EQU "-ES -VP -FS" goto:ADVPAGE3
if /i "%ADVPATCH%" EQU "-VP -FS -ES" goto:ADVPAGE3
if /i "%ADVPATCH%" EQU "-VP -ES -FS" goto:ADVPAGE3
if /i "%ADVPATCH%" EQU "-FS -NP -VP" goto:ADVPAGE3
if /i "%ADVPATCH%" EQU "-FS -VP -NP" goto:ADVPAGE3
if /i "%ADVPATCH%" EQU "-NP -FS -VP" goto:ADVPAGE3
if /i "%ADVPATCH%" EQU "-NP -VP -FS" goto:ADVPAGE3
if /i "%ADVPATCH%" EQU "-VP -NP -FS" goto:ADVPAGE3
if /i "%ADVPATCH%" EQU "-VP -FS -NP" goto:ADVPAGE3
if /i "%ADVPATCH%" EQU "-ES -NP -VP" goto:ADVPAGE3
if /i "%ADVPATCH%" EQU "-ES -VP -NP" goto:ADVPAGE3
if /i "%ADVPATCH%" EQU "-NP -ES -VP" goto:ADVPAGE3
if /i "%ADVPATCH%" EQU "-NP -VP -ES" goto:ADVPAGE3
if /i "%ADVPATCH%" EQU "-VP -ES -NP" goto:ADVPAGE3
if /i "%ADVPATCH%" EQU "-VP -NP -ES" goto:ADVPAGE3
if /i "%ADVPATCH%" EQU "-VP -FS -ES -NP" goto:ADVPAGE3
if /i "%ADVPATCH%" EQU "-VP -FS -NP -ES" goto:ADVPAGE3
if /i "%ADVPATCH%" EQU "-VP -ES -FS -NP" goto:ADVPAGE3
if /i "%ADVPATCH%" EQU "-VP -ES -NP -FS" goto:ADVPAGE3
if /i "%ADVPATCH%" EQU "-VP -NP -FS -ES" goto:ADVPAGE3
if /i "%ADVPATCH%" EQU "-VP -NP -ES -FS" goto:ADVPAGE3
if /i "%ADVPATCH%" EQU "-NP -FS -ES -VP" goto:ADVPAGE3
if /i "%ADVPATCH%" EQU "-NP -FS -VP -ES" goto:ADVPAGE3
if /i "%ADVPATCH%" EQU "-NP -ES -FS -VP" goto:ADVPAGE3
if /i "%ADVPATCH%" EQU "-NP -ES -VP -FS" goto:ADVPAGE3
if /i "%ADVPATCH%" EQU "-NP -VP -FS -ES" goto:ADVPAGE3
if /i "%ADVPATCH%" EQU "-NP -VP -ES -FS" goto:ADVPAGE3
if /i "%ADVPATCH%" EQU "-ES -FS -NP -VP" goto:ADVPAGE3
if /i "%ADVPATCH%" EQU "-ES -FS -VP -NP" goto:ADVPAGE3
if /i "%ADVPATCH%" EQU "-ES -NP -FS -VP" goto:ADVPAGE3
if /i "%ADVPATCH%" EQU "-ES -NP -VP -FS" goto:ADVPAGE3
if /i "%ADVPATCH%" EQU "-ES -VP -NP -FS" goto:ADVPAGE3
if /i "%ADVPATCH%" EQU "-ES -VP -FS -NP" goto:ADVPAGE3
if /i "%ADVPATCH%" EQU "-FS -ES -NP -VP" goto:ADVPAGE3
if /i "%ADVPATCH%" EQU "-FS -ES -VP -NP" goto:ADVPAGE3
if /i "%ADVPATCH%" EQU "-FS -NP -ES -VP" goto:ADVPAGE3
if /i "%ADVPATCH%" EQU "-FS -NP -VP -ES" goto:ADVPAGE3
if /i "%ADVPATCH%" EQU "-FS -VP -ES -NP" goto:ADVPAGE3
if /i "%ADVPATCH%" EQU "-FS -VP -NP -ES" goto:ADVPAGE3
:badkey
echo You Have Entered an Incorrect Key
@ping 127.0.0.1 -n 2 -w 1000> nul
goto:ADVPAGE2
::------------------------------------ADVANCED page 3 - SLOT--------------------------------
:ADVPAGE3
set ADVSLOT="
set SLOTCODE=
set SLOTNAME=
cls
echo ModMii v%currentversion%
echo by XFlak
echo.
echo.
echo To change the IOS slot # for %wadnameless%%patchname%
echo.
echo Enter a new IOS slot # now
echo.
echo.
echo.
echo.
support\sfk echo -spat \x20 [%redtext%] WARNING: Be careful what IOS slot # you choose, if it overwrites a crucial IOS
support\sfk echo -spat \x20 \x20 \x20 \x20 \x20 \x20 \x20 \x20 \x20 \x20 \x20 \x20 \x20 \x20 \x20 \x20 \x20 [%redtext%] YOU MAY BRICK
echo.
echo.
echo.
echo Note: Must be between 3 and 254
echo.
echo.
echo N = No, leave slot unchanged
echo.
echo.
echo.
echo.
echo.
echo.
echo.
echo B = Back
echo.
echo M = Main Menu
echo.
echo.
echo.
set /p ADVSLOT=Enter Selection Here:
set "ADVSLOT=%ADVSLOT:"=%"
::"B" will actually take u to the menu only to clear the download_queue, then it will return to advanced page1
if /i "%ADVSLOT%" EQU "M" goto:MENU
if /i "%wadname%" EQU "IOS60v65535(ModMii-IOS60-v6174)" goto:BACKTOMENUFIRST
if /i "%ADVTYPE%" EQU "CIOS" goto:BACKTOMENUFIRST
if /i "%ADVSLOT%" EQU "B" goto:ADVPAGE2
:BACKTOMENUFIRST
if /i "%ADVSLOT%" EQU "B" goto:ADVANCED
if /i "%ADVSLOT%" NEQ "N" goto:notnone
if /i "%ADVTYPE%" EQU "CIOS" (set ADVSLOT=%wadname:~4,3%) & (goto:ADVPAGE4)
if /i "%wadname%" EQU "IOS60v65535(ModMii-IOS60-v6174)" (set ADVSLOT=60) & (goto:ADVPAGE4)
:notnone
if /i "%ADVSLOT%" EQU "N" goto:ADVPAGE4
if "%ADVSLOT%"=="" goto:badkey
::if not numeric goto:badkey
for %%A in ("%ADVSLOT%") do (for /f "tokens=1 delims=0123456789" %%B in ("%%~A") do goto:badkey)
::Remove leading zeros
for /f "tokens=* delims=0" %%A in ("%ADVSLOT%") do set "ADVSLOT=%%A"
::Set to 0 if entire input is all zeros
if "%ADVSLOT%"=="" set "ADVSLOT=0"
::limit user input to X# of digits
if not "%ADVSLOT:~3%"=="" goto:badkey
::Reject negative numbers - and reject 1 and 2
if %ADVSLOT% LSS 3 goto:badkey
set "SLOTCODE= -slot %ADVSLOT%"
set "SLOTNAME=-slot%ADVSLOT%"
if %ADVSLOT% LEQ 254 goto:ADVPAGE4
:badkey
echo You Have Entered an Incorrect Key
@ping 127.0.0.1 -n 2 -w 1000> nul
goto:ADVPAGE3
::------------------------------------ADVANCED page 4 - Version--------------------------------
:ADVPAGE4
Set ADVVERSION="
set VERSIONNAME=
set VERSIONCODE=
set versionreal=%version%
set /a versionplus1=%versionreal%+1
cls
echo ModMii v%currentversion%
echo by XFlak
echo.
echo.
echo.
echo Would you like to change the version # of this WAD?
echo.
echo %wadnameless%%patchname%%slotname%
echo.
echo.
echo Note: MAX is 65535
echo.
echo.
echo.
echo MAX = MAX (65535)
echo.
echo N = No, leave version unchanged (%versionreal%)
if /i "%VER%" EQU "*" goto:bypass
if /i "%versionreal%" NEQ "65535" echo.
if /i "%versionreal%" NEQ "65535" echo V1 = Version + 1 (%versionplus1%)
:bypass
echo.
echo.
echo.
echo B = Back
echo.
echo M = Main Menu
echo.
echo.
echo.
set /p ADVVERSION=Enter Selection Here:
set "ADVVERSION=%ADVVERSION:"=%"
if "%ADVVERSION%"=="" goto:badkey
::"B" will actually take u to the menu only to clear the download_queue, then it will return to advanced page1
if /i "%ADVVERSION%" EQU "M" goto:MENU
if /i "%ADVVERSION%" EQU "B" goto:ADVPAGE3
if /i "%ADVVERSION%" EQU "MAX" set ADVVERSION=65535
if /i "%versionreal%" EQU "65535" goto:alreadymaxxed
if /i "%VER%" EQU "*" goto:alreadymaxxed
if /i "%ADVVERSION%" EQU "v1" set ADVVERSION=%versionplus1%
:alreadymaxxed
if /i "%ADVLIST%" EQU "U" goto:skip
if /i "%ADVVERSION%" EQU "N" goto:ADVCONFIRM
:skip
if /i "%ADVVERSION%" EQU "N" goto:CONFIRM
::if not numeric goto:badkey
for %%A in ("%ADVVERSION%") do (for /f "tokens=1 delims=0123456789" %%B in ("%%~A") do goto:badkey)
::Remove leading zeros
for /f "tokens=* delims=0" %%A in ("%ADVVERSION%") do set "ADVVERSION=%%A"
::Set to 0 if entire input is all zeros
if "%ADVVERSION%"=="" set "ADVVERSION=0"
::limit user input to X# of digits
if not "%ADVVERSION:~5%"=="" goto:badkey
::Reject negative numbers (LSS is less than, GTR is greater than)
if %ADVVERSION% LSS 1 goto:badkey
set "versioncode= -v %ADVVERSION%"
set "versionname=-[v%ADVVERSION%]"
if /i "%ADVLIST%" EQU "U" goto:skip
if %ADVVERSION% LEQ 65535 goto:ADVCONFIRM
:skip
if %ADVVERSION% LEQ 65535 goto:CONFIRM
:badkey
echo You Have Entered an Incorrect Key
@ping 127.0.0.1 -n 2 -w 1000> nul
goto:ADVPAGE4
::------------------------------------ADVANCED page CONFIRM - Version--------------------------------
:ADVCONFIRM
set ADVCONFIRM="
if /i "%ADVVERSION%" EQU "N" set VERSIONNAME=
if /i "%ADVVERSION%" EQU "N" set VERSIONCODE=
set changes=
if /i "%wadname:~0,-4%" EQU "%wadnameless%%patchname%%slotname%%versionname%" set changes=none
cls
echo ModMii v%currentversion%
echo by XFlak
echo.
echo.
echo ADVANCED CUSTOM DOWNLOADS
echo.
echo.
if /i "%changes%" EQU "none" goto:nochanges
echo Are these settings correct?
echo.
echo.
echo.
echo Download %wadname% and Patch it accordingly
echo.
if /i "%ADVTYPE%" NEQ "CIOS" goto:miniskip
if /i "%ADVSLOT%" EQU "%wadname:~4,3%" goto:miniskip
support\sfk echo -spat \x20 \x20 \x20 \x20 \x20 \x20 \x20 cIOS[%redtext%]%ADVSLOT%[def]%wadname:~7%[%redtext%]%patchname%%slotname%%versionname%
goto:yeschanges
:miniskip
support\sfk echo -spat \x20 \x20 \x20 \x20 \x20 \x20 \x20 %wadnameless%[%redtext%]%patchname%%slotname%%versionname%
goto:yeschanges
:nochanges
echo.
echo.
echo.
support\sfk echo -spat \x20 \x20 \x20 \x20 \x20 [%yellowtext%] You have not selected any changes to be made to %wadnameless%
echo.
echo.
echo If you want to download %wadnameless%
echo you can do so from the Batch/Additional Download Pages
:yeschanges
echo.
echo.
echo.
echo.
if /i "%changes%" NEQ "none" echo Y = Yes, add Advanced Download to Queue
echo.
echo N = No, go back to Advanced Custom Downloads Menu
echo.
echo.
echo.
echo B = Back
echo.
echo M = Main Menu
echo.
echo.
echo.
set /p ADVCONFIRM=Enter Selection Here:
set "ADVCONFIRM=%ADVCONFIRM:"=%"
::"B" will actually take u to the menu only to clear the download_queue, then it will return to advanced page1
if /i "%ADVCONFIRM%" EQU "B" goto:ADVPAGE4
if /i "%ADVCONFIRM%" EQU "M" goto:MENU
if /i "%ADVCONFIRM%" EQU "N" goto:ADVANCED
if /i "%changes%" EQU "none" goto:nochanges2
if /i "%ADVCONFIRM%" EQU "Y" set /a AdvNumber=%AdvNumber%+1
if /i "%ADVCONFIRM%" EQU "Y" goto:SaveADVdlSettings
:nochanges2
echo You Have Entered an Incorrect Key
@ping 127.0.0.1 -n 2 -w 1000> nul
goto:ADVCONFIRM
:SaveADVdlSettings
echo.
echo Adding Advanced Download to queue, this may take a few seconds...
echo.
echo set "name=Advanced Download: %wadnameless%%patchname%%slotname%%versionname%">temp\AdvDL%AdvNumber%.bat
if not "%wadname%"=="" echo set "wadname=%wadname%">>temp\AdvDL%AdvNumber%.bat
if not "%ciosSLOT%"=="" echo set "ciosslot=%ciosSLOT%">>temp\AdvDL%AdvNumber%.bat
if not "%ciosVERSION%"=="" echo set "ciosversion=%ciosVERSION%">>temp\AdvDL%AdvNumber%.bat
if not "%md5%"=="" echo set "md5=%md5%">>temp\AdvDL%AdvNumber%.bat
if not "%md5alt%"=="" echo set "md5alt=%md5alt%">>temp\AdvDL%AdvNumber%.bat
if not "%basewad%"=="" echo set "basewad=%basewad%">>temp\AdvDL%AdvNumber%.bat
if not "%md5base%"=="" echo set "md5base=%md5base%">>temp\AdvDL%AdvNumber%.bat
if not "%md5basealt%"=="" echo set "md5basealt=%md5basealt%">>temp\AdvDL%AdvNumber%.bat
if not "%code1%"=="" echo set "code1=%code1%">>temp\AdvDL%AdvNumber%.bat
if not "%code2%"=="" echo set "code2=%code2%">>temp\AdvDL%AdvNumber%.bat
if not "%version%"=="" echo set "version=%version%">>temp\AdvDL%AdvNumber%.bat
if not "%basewadb%"=="" echo set "basewadb=%basewadb%">>temp\AdvDL%AdvNumber%.bat
if not "%md5baseb%"=="" echo set "md5baseb=%md5baseb%">>temp\AdvDL%AdvNumber%.bat
if not "%md5basebalt%"=="" echo set "md5basebalt=%md5basebalt%">>temp\AdvDL%AdvNumber%.bat
if not "%code1b%"=="" echo set "code1b=%code1b%">>temp\AdvDL%AdvNumber%.bat
if not "%code2b%"=="" echo set "code2b=%code2b%">>temp\AdvDL%AdvNumber%.bat
if not "%versionb%"=="" echo set "versionb=%versionb%">>temp\AdvDL%AdvNumber%.bat
if not "%basecios%"=="" echo set "basecios=%basecios%">>temp\AdvDL%AdvNumber%.bat
if not "%diffpath%"=="" echo set "diffpath=%diffpath%">>temp\AdvDL%AdvNumber%.bat
if not "%code2new%"=="" echo set "code2new=%code2new%">>temp\AdvDL%AdvNumber%.bat
if not "%lastbasemodule%"=="" echo set "lastbasemodule=%lastbasemodule%">>temp\AdvDL%AdvNumber%.bat
if not "%category%"=="" echo set "category=%category%">>temp\AdvDL%AdvNumber%.bat
if not "%wadnameless%"=="" echo set "wadnameless=%wadnameless%">>temp\AdvDL%AdvNumber%.bat
if not "%patchname%"=="" echo set "patchname=%patchname%">>temp\AdvDL%AdvNumber%.bat
if not "%slotname%"=="" echo set "slotname=%slotname%">>temp\AdvDL%AdvNumber%.bat
if not "%slotcode%"=="" echo set "slotcode=%slotcode%">>temp\AdvDL%AdvNumber%.bat
if not "%versionname%"=="" echo set "versionname=%versionname%">>temp\AdvDL%AdvNumber%.bat
if not "%versioncode%"=="" echo set "versioncode=%versioncode%">>temp\AdvDL%AdvNumber%.bat
if not "%cIOSFamilyName%"=="" echo set "cIOSFamilyName=%cIOSFamilyName%">>temp\AdvDL%AdvNumber%.bat
if not "%cIOSversionNum%"=="" echo set "cIOSversionNum=%cIOSversionNum%">>temp\AdvDL%AdvNumber%.bat
if not "%PATCHCODE%"=="" echo set "PATCHCODE=%PATCHCODE%">>temp\AdvDL%AdvNumber%.bat
::echo "goto:downloadstart">>temp\AdvDL%AdvNumber%.bat
echo "Advanced Download: %wadnameless%%patchname%%slotname%%versionname%">>temp\DLnamesADV.txt
echo "temp\AdvDL%AdvNumber%.bat">>temp\DLgotosADV.txt
support\sfk -spat filter -quiet "temp\AdvDL%AdvNumber%.bat" -rep _\x22__ -write -yes
support\sfk -spat filter -quiet "temp\DLnamesADV.txt" -rep _\x22__ -write -yes
support\sfk -spat filter -quiet "temp\DLgotosADV.txt" -rep _\x22__ -write -yes
goto:ADVANCED
::...................................Custom- User-Defined Custom Download...............................
:CUSTOM
set DEC="
set HEX=
set countIOS=0
set VERFINAL=
set patchname=
set slotname=
set versionname=
set HEX=
set VER=
set wadfolder=
set verfinal=
set PATCHCODE=
set slotcode=
set versioncode=
cls
echo ModMii v%currentversion%
echo by XFlak
echo.
echo.
support\sfk echo -spat \x20[%yellowtext%] WARNING: these downloads MAY CAUSE BRICK if you do NOT know what you are doing!
echo.
echo Enter the Number of the IOS you would like to download
echo (for a vWii IOS, enter "v" before the IOS Number)
echo.
::echo either in Decimal (x,xx,xxx; ie. 9,60,249), or in Hex (xx; ie. F9=249)
echo Or enter "SM" or "MIOS" to download a Wii System Menu or MIOS
echo.
support\sfk echo -spat \x20[%yellowtext%] Note that if the file you input does not exist it will fail to download, obviously
echo.
echo.
echo.
echo.
echo # = Download the IOS number
echo.
echo v# = Download the vWii IOS number
echo.
echo SM = Download a Wii System Menu
echo.
echo MIOS = Download a Wii MIOS
echo.
echo.
echo.
echo.
echo B = Back
echo.
echo M = Main Menu
echo.
echo.
echo.
echo.
set /p DEC=Enter Selection Here:
set "DEC=%DEC:"=%"
if "%DEC%"=="" goto:badkey
if /i "%DEC%" EQU "M" goto:MENU
if /i "%DEC%" EQU "B" goto:ADVANCED
if /i "%DEC%" EQU "MIOS" goto:CUSTOMPAGE2
if /i "%DEC%" EQU "SM" goto:CUSTOMPAGE2
set vWiiIOS=
if /i "%DEC:~0,1%" EQU "V" set vWiiIOS=Y
if /i "%DEC:~0,1%" EQU "V" set "DEC=%DEC:~1%"
if /i "%vWiiIOS%" EQU "Y" (set "vWiiName=-vWii") else (set vWiiName=)
::if not numeric goto:badkey
for %%A in ("%DEC%") do (for /f "tokens=1 delims=0123456789" %%B in ("%%~A") do goto:badkey)
::Remove leading zeros
for /f "tokens=* delims=0" %%A in ("%DEC%") do set "DEC=%%A"
::Set to 0 if entire input is all zeros
if "%DEC%"=="" set "DEC=0"
::limit user input to X# of digits
if not "%DEC:~3%"=="" goto:badkey
::Reject negative numbers (LSS is less than, GTR is greater than)
if %DEC% LSS 1 goto:badkey
if %DEC% LEQ 254 goto:CUSTOMPAGE2
:badkey
echo You Have Entered an Incorrect Key
@ping 127.0.0.1 -n 2 -w 1000> nul
goto:CUSTOM
:CUSTOMPAGE2
set VER="
set ADVPATCH=
set patchcode=
set patchname=
cls
echo ModMii v%currentversion%
echo by XFlak
echo.
echo.
if /i "%DEC%" EQU "SM" echo What Version of the System Menu would like to download? (ie. XXX)
if /i "%DEC%" EQU "SM" goto:NEXT1
if /i "%DEC%" EQU "MIOS" echo What Version of MIOS would like to download? (ie. 4, 5, 8, 10)
if /i "%DEC%" EQU "MIOS" goto:NEXT1
if /i "%vWiiIOS%" EQU "Y" echo What Version of vWii IOS %DEC% would like to download?
if "%vWiiIOS%"=="" echo What Version of Wii IOS %DEC% would like to download?
:NEXT1
echo.
echo.
echo.
support\sfk echo -spat \x20 \x20 \x20 \x20 \x20 \x20 [%redtext%] WARNING:[def] - Make sure the version you input actually exists
echo - Most recent version may be stubbed
echo.
echo.
echo.
echo.
if /i "%DEC%" NEQ "SM" echo * = Download the most recent version
if /i "%DEC%" EQU "SM" echo * = Download the most recent Korean System Menu
echo.
echo.
echo B = Back
echo.
echo M = Main Menu
echo.
echo.
echo.
echo.
set /p VER=Enter Selection Here:
set "VER=%VER:"=%"
if /i "%VER%" EQU "M" goto:MENU
if /i "%VER%" EQU "B" goto:CUSTOM
set version=%VER%
if /i "%VER%" EQU "*" goto:bypass
::if not numeric goto:badkey
for %%A in ("%VER%") do (for /f "tokens=1 delims=0123456789" %%B in ("%%~A") do goto:badkey)
::Remove leading zeros
for /f "tokens=* delims=0" %%A in ("%VER%") do set "VER=%%A"
::Set to 0 if entire input is all zeros
if "%VER%"=="" set "VER=0"
::limit user input to X# of digits
if not "%VER:~5%"=="" goto:badkey
::Reject negative numbers (LSS is less than, GTR is greater than)
if %VER% LSS 1 goto:badkey
:bypass
if /i "%DEC%" EQU "SM" goto:nopatches
if /i "%DEC%" EQU "MIOS" goto:nopatches
::for IOSs Only
if /i "%VER%" NEQ "*" set wadnameless=IOS%DEC%-64-v%VER%
if /i "%VER%" EQU "*" set wadnameless=IOS%DEC%-64-vNEW
if /i "%vWiiIOS%" EQU "Y" set "wadnameless=%wadnameless%-vWii"
if /i "%VER%" EQU "*" goto:ADVPAGE2
if /i "%VER%" LSS 65536 goto:ADVPAGE2
:nopatches
if /i "%VER%" EQU "*" goto:CONFIRM
if /i "%VER%" LSS 65536 goto:CONFIRM
:badkey
echo You Have Entered an Incorrect Key
@ping 127.0.0.1 -n 2 -w 1000> nul
goto:CUSTOMPAGE2
:CONFIRM
if /i "%ADVVERSION%" EQU "N" set VERSIONNAME=
if /i "%ADVVERSION%" EQU "N" set VERSIONCODE=
set VERFINAL=%VER%
if /i "%VER%" EQU "*" set VERFINAL=NEW
cls
echo ModMii v%currentversion%
echo by XFlak
echo.
echo.
echo.
if /i "%DEC%" EQU "SM" echo Are you sure you want to try downloading System Menu v%VER%?
if /i "%DEC%" EQU "SM" goto:NEXT2
if /i "%DEC%" EQU "MIOS" echo Are you sure you want to try downloading MIOS v%VER%?
if /i "%DEC%" EQU "MIOS" goto:NEXT2
echo Are you sure you want to try downloading:
echo.
echo IOS%DEC%-64-v%VERFINAL%%patchname%%slotname%%versionname%%vWiiName%
:NEXT2
echo.
echo.
echo.
support\sfk echo -spat \x20 \x20 \x20 \x20 [%redtext%] WARNING: this download will fail if the file does not exist.
echo.
echo.
echo.
echo.
echo Y = Yes, add Advanced Download to Queue
echo.
echo N = No, go back to Advanced Custom Downloads Menu
echo.
echo.
echo.
echo B = Back
echo.
echo M = Main Menu
echo.
echo.
echo.
set CONFIRM="
set /p CONFIRM=Enter Selection Here:
set "CONFIRM=%CONFIRM:"=%"
if /i "%CONFIRM%" EQU "M" goto:MENU
if /i "%CONFIRM%" EQU "N" goto:ADVANCED
::if /i "%CONFIRM%" EQU "A" goto:CUSTOMDL
if /i "%CONFIRM%" EQU "Y" set /a AdvNumber=%AdvNumber%+1
if /i "%CONFIRM%" EQU "Y" goto:SaveADVdlSettings2
if /i "%DEC%" EQU "SM" goto:skip
if /i "%DEC%" EQU "MIOS" goto:skip
if /i "%CONFIRM%" EQU "B" goto:ADVPAGE4
:skip
if /i "%CONFIRM%" EQU "B" goto:CUSTOMPAGE2
echo You Have Entered an Incorrect Key
@ping 127.0.0.1 -n 2 -w 1000> nul
goto:CONFIRM
:SaveADVdlSettings2
if /i "%DEC%" EQU "SM" (echo set "name=Advanced Download: System Menu v%VER%">temp\AdvDL%AdvNumber%.bat) & (echo "Advanced Download: System Menu v%VER%">>temp\DLnamesADV.txt) & (goto:miniskip)
if /i "%DEC%" EQU "MIOS" (echo set "name=Advanced Download: MIOS v%VER%">temp\AdvDL%AdvNumber%.bat) & (echo "Advanced Download: MIOS v%VER%">>temp\DLnamesADV.txt) & (goto:miniskip)
echo set "name=Advanced Download: IOS%DEC%-64-v%VERFINAL%%patchname%%slotname%%versionname%%vWiiName%">temp\AdvDL%AdvNumber%.bat
echo "Advanced Download: IOS%DEC%-64-v%VERFINAL%%patchname%%slotname%%versionname%%vWiiName%">>temp\DLnamesADV.txt
:miniskip
if not "%DEC%"=="" echo set "DEC=%DEC%">>temp\AdvDL%AdvNumber%.bat
if not "%VERFINAL%"=="" echo set "VERFINAL=%VERFINAL%">>temp\AdvDL%AdvNumber%.bat
if not "%patchname%"=="" echo set "patchname=%patchname%">>temp\AdvDL%AdvNumber%.bat
if not "%slotname%"=="" echo set "slotname=%slotname%">>temp\AdvDL%AdvNumber%.bat
if not "%versionname%"=="" echo set "versionname=%versionname%">>temp\AdvDL%AdvNumber%.bat
if not "%HEX%"=="" echo set "HEX=%HEX%">>temp\AdvDL%AdvNumber%.bat
if not "%VER%"=="" echo set "VER=%VER%">>temp\AdvDL%AdvNumber%.bat
if not "%wadfolder%"=="" echo set "wadfolder=%wadfolder%">>temp\AdvDL%AdvNumber%.bat
if not "%PATCHCODE%"=="" echo set "PATCHCODE=%PATCHCODE%">>temp\AdvDL%AdvNumber%.bat
if not "%slotcode%"=="" echo set "slotcode=%slotcode%">>temp\AdvDL%AdvNumber%.bat
if not "%versioncode%"=="" echo set "versioncode=%versioncode%">>temp\AdvDL%AdvNumber%.bat
echo set "category=userdefined">>temp\AdvDL%AdvNumber%.bat
if not "%vWiiIOS%"=="" echo set "vWiiIOS=%vWiiIOS%">>temp\AdvDL%AdvNumber%.bat
::echo "Advanced Download: %wadnameless%%patchname%%slotname%%versionname%">>temp\DLnamesADV.txt
echo "temp\AdvDL%AdvNumber%.bat">>temp\DLgotosADV.txt
support\sfk -spat filter -quiet "temp\AdvDL%AdvNumber%.bat" -rep _\x22__ -write -yes
support\sfk -spat filter -quiet "temp\DLnamesADV.txt" -rep _\x22__ -write -yes
support\sfk -spat filter -quiet "temp\DLgotosADV.txt" -rep _\x22__ -write -yes
goto:Advanced
::------------------------------------ADVANCED - FORWARDER DOL or ISO--------------------------------
:FORWARDERDOLorISO
set FORWARDERDOLorISO="
cls
echo ModMii v%currentversion%
echo by XFlak
echo.
echo.
echo What type of Forwarder would you like to build?
echo.
echo.
echo.
echo.
echo 1 = DOL
echo.
echo 2 = ISO
echo.
echo 3 = Both
echo.
echo.
echo Note: You can build a customized forwarder channel\WAD by opening
echo your base WAD using ModMii or Customize Mii from ModMii's
echo Download Page 5 and injecting your newly constructed DOL.
echo.
echo Note: Forwarder ISOs require a cIOS with base 38 in order to work.
echo If using a d2x cIOS, make sure IOS reload is set to "off".
echo.
echo Warning: Even when using the recommended settings, not everyone has
echo had success with custom Forwarder ISOs, results may vary.
echo.
echo.
echo B = Back
echo.
echo M = Main Menu
echo.
echo.
echo.
set /p FORWARDERDOLorISO=Enter Selection Here:
set "FORWARDERDOLorISO=%FORWARDERDOLorISO:"=%"
if /i "%FORWARDERDOLorISO%" EQU "M" goto:MENU
if /i "%FORWARDERDOLorISO%" EQU "B" goto:ADVANCED
if /i "%FORWARDERDOLorISO%" EQU "1" goto:FORWARDERDOLBUILDER
if /i "%FORWARDERDOLorISO%" EQU "2" goto:FORWARDERDOLBUILDER
if /i "%FORWARDERDOLorISO%" EQU "3" goto:FORWARDERDOLBUILDER
:badkey
echo You Have Entered an Incorrect Key
@ping 127.0.0.1 -n 2 -w 1000> nul
goto:FORWARDERDOLorISO
::------------------------------------ADVANCED - FORWARDER DOL BUILDER--------------------------------
:FORWARDERDOLBUILDER
set FORWARDERTYPE="
set URLPATH=
set path-0=
set path-1=
set path-2=
set path-3=
set path-4=
set path-5=
set path-6=
set path-7=
set path-8=
set path-9=
set path-10=
set NumberOfPaths=1
set bigt=1
set FORWARDERTITLEID=
set DISCID=
cls
echo ModMii v%currentversion%
echo by XFlak
echo.
echo.
echo What type of Forwarder would you like to build?
echo.
echo.
echo.
echo.
echo 1 = SD\USB Forwarder (v14)
echo 1B = SD\USB Forwarder (v12), use if you experience issues with v14
echo.
echo 2 = URL Forwarder (Requires Internet Channel)
echo.
echo 3 = Channel Forwarder
echo.
echo.
echo.
echo.
echo.
echo B = Back
echo.
echo M = Main Menu
echo.
echo.
echo.
set /p FORWARDERTYPE=Enter Selection Here:
set "FORWARDERTYPE=%FORWARDERTYPE:"=%"
if /i "%FORWARDERTYPE%" EQU "M" goto:MENU
if /i "%FORWARDERTYPE%" EQU "B" goto:FORWARDERDOLorISO
if /i "%FORWARDERTYPE%" EQU "1" goto:v10FORWARDERDOL
if /i "%FORWARDERTYPE%" EQU "1B" goto:v10FORWARDERDOL
if /i "%FORWARDERTYPE%" EQU "2" goto:INTERNETFORWARDERDOL
if /i "%FORWARDERTYPE%" EQU "3" goto:CHANNELFORWARDERDOL
:badkey
echo You Have Entered an Incorrect Key
@ping 127.0.0.1 -n 2 -w 1000> nul
goto:FORWARDERDOLBUILDER
::------------------------------------ADVANCED - FORWARDER DOL BUILDER--------------------------------
:v10FORWARDERDOL
set path-0="
set bigt=
cls
echo ModMii v%currentversion%
echo by XFlak
echo.
echo.
if "%path-10%"=="" echo Input forwarder path #%NumberOfPaths%:
if not "%path-10%"=="" (support\sfk echo -spat \x20 \x20 \x20 \x20 \x20 [%redtext%] Maximum Number of paths have been reached) & (goto:maxreached)
echo.
echo.
echo Note: Cannot contain : * ? " < > | & %%
echo.
echo Examples:
echo apps/usbloader_gx/boot.dol
echo apps/HackMii_Installer/boot.elf
echo boot.elf
echo.
if /i "%FORWARDERTYPE%" EQU "1" echo Note: Maximum path length is 254 characters
if /i "%FORWARDERTYPE%" NEQ "1" echo Note: Maximum path length is 255 characters
:maxreached
echo.
if not "%path-1%"=="" echo Path #1: %path-1%
if not "%path-2%"=="" echo Path #2: %path-2%
if not "%path-3%"=="" echo Path #3: %path-3%
if not "%path-4%"=="" echo Path #4: %path-4%
if not "%path-5%"=="" echo Path #5: %path-5%
if not "%path-6%"=="" echo Path #6: %path-6%
if not "%path-7%"=="" echo Path #7: %path-7%
if not "%path-8%"=="" echo Path #8: %path-8%
if not "%path-9%"=="" echo Path #9: %path-9%
if not "%path-10%"=="" echo Path #10: %path-10%
echo.
echo.
if "%path-1%"=="" (echo.) else (echo A = Add forwarder with the above paths to download queue)
echo.
echo.
echo B = Back
echo.
echo M = Main Menu
echo.
echo.
echo.
set /p path-0=Enter Selection Here:
set "path-0=%path-0:"=%"
if "%path-0%"=="" goto:badkey
if /i "%path-0%" EQU "M" goto:MENU
if /i "%path-0%" NEQ "B" goto:notback
if /i "%NumberOfPaths%" EQU "1" goto:FORWARDERDOLBUILDER
if /i "%NumberOfPaths%" EQU "2" set path-1=
if /i "%NumberOfPaths%" EQU "3" set path-2=
if /i "%NumberOfPaths%" EQU "4" set path-3=
if /i "%NumberOfPaths%" EQU "5" set path-4=
if /i "%NumberOfPaths%" EQU "6" set path-5=
if /i "%NumberOfPaths%" EQU "7" set path-6=
if /i "%NumberOfPaths%" EQU "8" set path-7=
if /i "%NumberOfPaths%" EQU "9" set path-8=
if /i "%NumberOfPaths%" EQU "10" set path-9=
if /i "%NumberOfPaths%" EQU "11" set path-10=
set /a NumberOfPaths=%NumberOfPaths%-1
goto:v10FORWARDERDOL
:notback
if "%path-1%"=="" goto:none
if /i "%path-0%" EQU "A" set beforeAddforwardertoQueue=HiddenChannelBuilder
if /i "%path-0%" EQU "A" set beforeHiddenChannelBuilder=v10FORWARDERDOL
if /i "%path-0%" EQU "A" goto:HiddenChannelBuilder
:none
if /i "%NumberOfPaths%" EQU "11" goto:badkey
::make sure last 4 chars are .dol or .elf
if /i "%path-0:~-4%" EQU ".dol" goto:good
if /i "%path-0:~-4%" EQU ".elf" goto:good
goto:badkey
:good
::make sure path doesn't start with a \ or /
:doublecheckF
if /i "%path-0:~0,1%" EQU "\" (set path-0=%path-0:~1%) & (goto:doublecheckF)
if /i "%path-0:~0,1%" EQU "/" (set path-0=%path-0:~1%) & (goto:doublecheckF)
if /i "%FORWARDERTYPE%" NEQ "1" goto:skip
::limit user input to X# of digits
if not "%path-0:~254%"=="" (goto:badkey)
:skip
::limit user input to X# of digits
if not "%path-0:~255%"=="" (goto:badkey)
::replace : * ? " < > |
support\sfk filter -quiet -spat temp\temp.bat -rep _\x3a__ -rep _\x2a__ -rep _\x3f__ -rep _\x3c__ -rep _\x3e__ -rep _\x7c__ -rep _\x22__ -write -yes
::replace all \ with / and set path-# = path-0 (must end with .dol or .elf, so will not end with #)
echo set path-%NumberOfPaths%=%path-0%>temp\temp.bat
support\sfk filter temp\temp.bat -rep _\_/_ -write -yes>nul
call temp\temp.bat
del temp\temp.bat>nul
set /a NumberOfPaths=%NumberOfPaths%+1
goto:v10FORWARDERDOL
:badkey
echo You Have Entered an Incorrect Key
@ping 127.0.0.1 -n 2 -w 1000> nul
goto:v10FORWARDERDOL
::------------------------------------ADVANCED - CHANNEL FORWARDER DOL BUILDER--------------------------------
:HiddenChannelBuilder
set FORWARDERTITLEID="
cls
echo ModMii v%currentversion%
echo by XFlak
echo.
echo.
echo Would you like to also create a hidden channel WAD using your forwarder?
echo.
echo - Particularly useful for WiiU users booting Wii homebrew or games
echo directly from WUHB forwarders but don't want channels to be visible
echo or take up space in the Wii menu
echo.
echo - Note that a hidden channel WAD can be unhidden by opening ^& editing
echo it with ModMii but only AFTER a proper banner has been added to it first
echo.
echo If yes, enter the 4 character title ID for your hidden channel (e.g. ABCD)
echo.
echo If not, enter "N" or leave the selection blank
echo.
echo.
echo N = No (or leave selection blank)
echo.
echo B = Back
echo M = Main Menu
echo.
echo.
echo.
set /p FORWARDERTITLEID=Enter Selection Here:
set "FORWARDERTITLEID=%FORWARDERTITLEID:"=%"
if /i "%FORWARDERTITLEID%" EQU "M" goto:MENU
if /i "%FORWARDERTITLEID%" EQU "B" goto:%beforeHiddenChannelBuilder%
if /i "%FORWARDERTITLEID%" EQU "N" set FORWARDERTITLEID=
if "%FORWARDERTITLEID%"=="" goto:FORWARDERNAME
::minimum number of chars = x+1 (ie. ~5 sets minimum of 6)
if "%FORWARDERTITLEID:~3%"=="" goto:badkey
::limit user input to X# of digits
if not "%FORWARDERTITLEID:~4%"=="" goto:badkey
set beforeAddforwardertoQueue=HiddenChannelBuilder
goto:FORWARDERNAME
:badkey
echo You Have Entered an Incorrect Key
@ping 127.0.0.1 -n 2 -w 1000> nul
goto:HiddenChannelBuilder
::------------------------------------ADVANCED - FORWARDER NAME--------------------------------
:FORWARDERNAME
set FORWARDERNAME="
cls
echo ModMii v%currentversion%
echo by XFlak
echo.
echo.
if /i "%FORWARDERTYPE:~0,1%" NEQ "1" goto:skip
echo Please enter a name for your forwarder with the following paths
echo.
if not "%path-1%"=="" echo Path #1: %path-1%
if not "%path-2%"=="" echo Path #2: %path-2%
if not "%path-3%"=="" echo Path #3: %path-3%
if not "%path-4%"=="" echo Path #4: %path-4%
if not "%path-5%"=="" echo Path #5: %path-5%
if not "%path-6%"=="" echo Path #6: %path-6%
if not "%path-7%"=="" echo Path #7: %path-7%
if not "%path-8%"=="" echo Path #8: %path-8%
if not "%path-9%"=="" echo Path #9: %path-9%
if not "%path-10%"=="" echo Path #10: %path-10%
:skip
if /i "%FORWARDERTYPE%" NEQ "2" goto:skip
echo Please enter a name for your forwarder for the following URL
echo.
echo %URLpath%
:skip
if /i "%FORWARDERTYPE%" NEQ "3" goto:skip
echo Please enter a name for your forwarder for the following channel Title ID:
echo.
echo %FORWARDERTITLEID%
:skip
echo.
echo.
echo Note: Cannot contain \ / : * ? " < > | & %%
echo.
if /i "%FORWARDERTYPE%" EQU "2" (echo Example: Wiibrew) else (echo Example: usbloader)
echo.
echo.
echo.
echo.
echo.
echo B = Back
echo.
echo M = Main Menu
echo.
echo.
echo.
set /p FORWARDERNAME=Enter Selection Here:
set "FORWARDERNAME=%FORWARDERNAME:"=%"
if "%FORWARDERNAME%"=="" goto:badkey
echo "set FORWARDERNAME=%FORWARDERNAME%">temp\temp.bat
support\sfk filter -quiet -spat temp\temp.bat -rep _\x5c__ -rep _\x2f__ -rep _\x3a__ -rep _\x2a__ -rep _\x3f__ -rep _\x3c__ -rep _\x3e__ -rep _\x7c__ -rep _\x22__ -write -yes
if /i "%FORWARDERNAME%" EQU "M" goto:MENU
if /i "%FORWARDERNAME%" EQU "B" goto:%beforeAddforwardertoQueue%
call temp\temp.bat
del temp\temp.bat>nul
if /i "%FORWARDERDOLorISO%" NEQ "1" goto:DISCID
goto:SaveADVdlSettingsFORWARDER
:badkey
echo You Have Entered an Incorrect Key
@ping 127.0.0.1 -n 2 -w 1000> nul
goto:FORWARDERNAME
:SaveADVdlSettingsFORWARDER
set /a AdvNumber=%AdvNumber%+1
if /i "%FORWARDERDOLorISO%" EQU "1" set "name=Advanced Download: Forwarder - %FORWARDERNAME% DOL"
if /i "%FORWARDERDOLorISO%" EQU "2" set "name=Advanced Download: Forwarder - %FORWARDERNAME% ISO"
if /i "%FORWARDERDOLorISO%" EQU "3" set "name=Advanced Download: Forwarder - %FORWARDERNAME% DOL and ISO"
if /i "%FORWARDERTYPE%" NEQ "3" if not "%FORWARDERTITLEID%"=="" if /i "%FORWARDERDOLorISO%" EQU "1" set "name=Advanced Download: Forwarder - %FORWARDERNAME% DOL and Hidden WAD"
if /i "%FORWARDERTYPE%" NEQ "3" if not "%FORWARDERTITLEID%"=="" if /i "%FORWARDERDOLorISO%" EQU "2" set "name=Advanced Download: Forwarder - %FORWARDERNAME% ISO and Hidden WAD"
if /i "%FORWARDERTYPE%" NEQ "3" if not "%FORWARDERTITLEID%"=="" if /i "%FORWARDERDOLorISO%" EQU "3" set "name=Advanced Download: Forwarder - %FORWARDERNAME% DOL, ISO and Hidden WAD"
echo set "name=%name%">temp\AdvDL%AdvNumber%.bat
if not "%FORWARDERNAME%"=="" echo set "wadname=%FORWARDERNAME%">>temp\AdvDL%AdvNumber%.bat
if not "%FORWARDERNAME%"=="" echo set "FORWARDERNAME=%FORWARDERNAME%">>temp\AdvDL%AdvNumber%.bat
if not "%path-1%"=="" echo set "path-1=%path-1%">>temp\AdvDL%AdvNumber%.bat
if not "%path-2%"=="" echo set "path-2=%path-2%">>temp\AdvDL%AdvNumber%.bat
if not "%path-3%"=="" echo set "path-3=%path-3%">>temp\AdvDL%AdvNumber%.bat
if not "%path-4%"=="" echo set "path-4=%path-4%">>temp\AdvDL%AdvNumber%.bat
if not "%path-5%"=="" echo set "path-5=%path-5%">>temp\AdvDL%AdvNumber%.bat
if not "%path-6%"=="" echo set "path-6=%path-6%">>temp\AdvDL%AdvNumber%.bat
if not "%path-7%"=="" echo set "path-7=%path-7%">>temp\AdvDL%AdvNumber%.bat
if not "%path-8%"=="" echo set "path-8=%path-8%">>temp\AdvDL%AdvNumber%.bat
if not "%path-9%"=="" echo set "path-9=%path-9%">>temp\AdvDL%AdvNumber%.bat
if not "%path-10%"=="" echo set "path-10=%path-10%">>temp\AdvDL%AdvNumber%.bat
if not "%URLPATH%"=="" echo set "URLPATH=%URLPATH%">>temp\AdvDL%AdvNumber%.bat
if not "%FORWARDERTITLEID%"=="" echo set "FORWARDERTITLEID=%FORWARDERTITLEID%">>temp\AdvDL%AdvNumber%.bat
if not "%bigt%"=="" echo set "bigt=%bigt%">>temp\AdvDL%AdvNumber%.bat
echo set "category=FORWARDER">>temp\AdvDL%AdvNumber%.bat
if not "%FORWARDERTYPE%"=="" echo set "FORWARDERTYPE=%FORWARDERTYPE%">>temp\AdvDL%AdvNumber%.bat
if not "%FORWARDERDOLorISO%"=="" echo set "FORWARDERDOLorISO=%FORWARDERDOLorISO%">>temp\AdvDL%AdvNumber%.bat
if not "%DISCID%"=="" echo set "DISCID=%DISCID%">>temp\AdvDL%AdvNumber%.bat
echo "%name%">>temp\DLnamesADV.txt
echo "temp\AdvDL%AdvNumber%.bat">>temp\DLgotosADV.txt
support\sfk -spat filter -quiet "temp\AdvDL%AdvNumber%.bat" -rep _\x22__ -write -yes
support\sfk -spat filter -quiet "temp\DLnamesADV.txt" -rep _\x22__ -write -yes
support\sfk -spat filter -quiet "temp\DLgotosADV.txt" -rep _\x22__ -write -yes
goto:Advanced
::------------------------------------ADVANCED - FORWARDER DOL BUILDER--------------------------------
:INTERNETFORWARDERDOL
set URLpath="
set bigt=
cls
echo ModMii v%currentversion%
echo by XFlak
echo.
echo.
echo Input website URL
echo.
echo.
echo Example: www.wiibrew.org
echo.
support\sfk echo -spat \x20 \x20 \x20 \x20\x20\x20\x20 Note: * URL Cannot contain \x25, \x26, or \x22
echo * Maximum URL length is 95 characters
echo.
echo.
echo.
echo B = Back
echo.
echo M = Main Menu
echo.
echo.
echo.
set /p URLpath=Enter Selection Here:
set "URLpath=%URLpath:"=%"
if /i "%URLpath%" EQU "M" goto:MENU
if /i "%URLpath%" EQU "B" goto:FORWARDERDOLBUILDER
if "%URLpath%"=="" goto:badkey
::limit user input to X# of digits
if not "%URLpath:~95%"=="" (goto:badkey)
::replace all \ with /
echo set URLPATH=%URLpath% >temp\temp.bat
support\sfk filter -quiet temp\temp.bat -rep _\_/_ -write -yes
call temp\temp.bat
set URLPATH=%URLPATH:~0,-1%
set beforeAddforwardertoQueue=HiddenChannelBuilder
set beforeHiddenChannelBuilder=INTERNETFORWARDERDOL
goto:HiddenChannelBuilder
:badkey
echo You Have Entered an Incorrect Key
@ping 127.0.0.1 -n 2 -w 1000> nul
goto:INTERNETFORWARDERDOL
::------------------------------------ADVANCED - CHANNEL FORWARDER DOL BUILDER--------------------------------
:CHANNELFORWARDERDOL
set FORWARDERTITLEID="
cls
echo ModMii v%currentversion%
echo by XFlak
echo.
echo.
echo Enter the 4 character title ID for the channel that you want to load
echo Or enter the hex value of the channel, seperating each byte with a comma
echo.
echo Examples:
echo IDCL
echo 49,44,43,4c
echo.
echo.
echo Channel Type: %bigt%
echo.
echo Or enter "1", "2", "4" or "8" to change channel type
echo.
echo.
echo Notes: The following title IDs will be forced as channel type 2:
echo HAAA HABA HACA HAFA HAFE HAFJ HAFP HAGA HAGE HAGJ HAGP HAYA
echo.
echo Some Title IDs will force title checks or 4:3 aspect ratio (pillarboxing)
echo on vWii UNLESS Priiloader's pillarboxing system menu hacks are enabled.
echo To avoid this without needing Priiloader hacks use a Title ID that does
echo not begin any of these letters: C,D,E,F,H,J,L,M,N,P,Q,R,S,T,W,X
echo.
echo B = Back
echo.
echo M = Main Menu
echo.
echo.
echo.
set /p FORWARDERTITLEID=Enter Selection Here:
set "FORWARDERTITLEID=%FORWARDERTITLEID:"=%"
if /i "%FORWARDERTITLEID%" EQU "M" goto:MENU
if /i "%FORWARDERTITLEID%" EQU "B" goto:FORWARDERDOLBUILDER
if "%FORWARDERTITLEID%"=="" goto:badkey
if /i "%FORWARDERTITLEID%" EQU "1" (set bigt=1) & (goto:CHANNELFORWARDERDOL)
if /i "%FORWARDERTITLEID%" EQU "2" (set bigt=2) & (goto:CHANNELFORWARDERDOL)
if /i "%FORWARDERTITLEID%" EQU "4" (set bigt=4) & (goto:CHANNELFORWARDERDOL)
if /i "%FORWARDERTITLEID%" EQU "8" (set bigt=8) & (goto:CHANNELFORWARDERDOL)
::minimum number of chars = x+1 (ie. ~5 sets minimum of 6)
if "%FORWARDERTITLEID:~3%"=="" goto:badkey
::limit user input to X# of digits
if not "%FORWARDERTITLEID:~11%"=="" goto:badkey
::if more than 4 chars then check if hex
if "%FORWARDERTITLEID:~4%"=="" goto:nocheckhex
if /i "%FORWARDERTITLEID:~2,1%" NEQ "," goto:badkey
if /i "%FORWARDERTITLEID:~5,1%" NEQ "," goto:badkey
if /i "%FORWARDERTITLEID:~8,1%" NEQ "," goto:badkey
:nocheckhex
set beforeAddforwardertoQueue=CHANNELFORWARDERDOL
goto:FORWARDERNAME
:badkey
echo You Have Entered an Incorrect Key
@ping 127.0.0.1 -n 2 -w 1000> nul
goto:CHANNELFORWARDERDOL
::------------------------------------ADVANCED - Forwarder ISO Name--------------------------------
:DISCID
set DISCID="
cls
echo ModMii v%currentversion%
echo by XFlak
echo.
echo.
echo Enter the 6 character ID that you want to the ISO to use.
echo.
echo.
echo Note: Should only contain numbers and\or letters.
echo For best results use this format: D**A00
echo.
echo.
echo B = Back
echo.
echo M = Main Menu
echo.
echo.
echo.
set /p DISCID=Enter Selection Here:
set "DISCID=%DISCID:"=%"
if /i "%DISCID%" EQU "M" goto:MENU
if /i "%DISCID%" EQU "B" goto:FORWARDERNAME
::minimum number of chars = x+1 (ie. ~5 sets minimum of 6)
if "%DISCID:~5%"=="" goto:badkey
::limit user input to X# of digits
if not "%DISCID:~6%"=="" goto:badkey
goto:SaveADVdlSettingsFORWARDER
:badkey
echo You Have Entered an Incorrect Key
@ping 127.0.0.1 -n 2 -w 1000> nul
goto:DISCID
::...................................CONFIG File Menu...............................
:CONFIGFILEMENU
set configfile="
cls
echo ModMii v%currentversion%
echo by XFlak
echo.
echo.
echo.
echo Which App would you like to configure?
echo.
echo.
echo.
echo BM = Bootmii (create\edit bootmii.ini)
echo.
echo MMM = Multi-Mod Manager (create mmmconfig.txt)
echo.
echo WM = Wad Manager (create wm_config.txt)
echo.
echo.
echo.
echo.
echo B = Back
echo.
echo M = Main Menu
echo.
echo.
echo.
echo.
set /p configfile=Enter Selection Here:
set "configfile=%configfile:"=%"
if /i "%configfile%" EQU "M" goto:MENU
if /i "%configfile%" EQU "B" goto:MENU
if /i "%configfile%" EQU "BM" goto:BMCONFIG
if /i "%configfile%" EQU "WM" goto:WMCONFIG
if /i "%configfile%" EQU "MMM" goto:MMMCONFIG
echo You Have Entered an Incorrect Key
@ping 127.0.0.1 -n 2 -w 1000> nul
goto:CONFIGFILEMENU
::...................................Bootmii CONFIGURATOR (bootmii.ini)...............................
:BMCONFIG
::load settings
set "bootmiiINI=%DRIVE%\bootmii\bootmii.ini"
:BMCONFIG2nd
if /i "%cmdlinemodeswitchoff%" EQU "Y" (set cmdlinemode=) & (set one=) & (set two=)
set BMVIDEO=
set NTSC=def
set PAL50=def
set PAL60=def
set PROGRESSIVE=def
Set NONE=%cyantext%
set BMBOOT=
set OFF=%cyantext%
set SYSMENU=def
set HBC=def
set AUTOBOOT1=
::set AUTOBOOT1colour=def
set AUTOBOOT2=
set BMDELAY=0
set BM0=%cyantext%
set BM1=def
set BM2=def
set BM3=def
set BM4=def
set BM5=def
set BM6=def
set BM7=def
set BM8=def
set BM9=def
set BM10=def
if not exist "%bootmiiINI%" goto:skip
support\sfk filter "%bootmiiINI%" -ls+"VIDEO=" -rep _"VIDEO="__ >"temp\bootmii.ini"
set /p BMVIDEO= <temp\bootmii.ini
::echo BMVIDEO:%BMVIDEO%
if /i "%BMVIDEO%" EQU "NTSC" (set NTSC=%cyantext%) else (set NTSC=def)
if /i "%BMVIDEO%" EQU "PAL50" (set PAL50=%cyantext%) else (set PAL50=def)
if /i "%BMVIDEO%" EQU "PAL60" (set PAL60=%cyantext%) else (set PAL60=def)
if /i "%BMVIDEO%" EQU "PROGRESSIVE" (set PROGRESSIVE=%cyantext%) else (set PROGRESSIVE=def)
IF "%BMVIDEO%"=="" (set NONE=%cyantext%) else (set NONE=def)
if not exist "%bootmiiINI%" goto:skip
support\sfk filter "%bootmiiINI%" -ls+"AUTOBOOT1=" -rep _"AUTOBOOT1="__ >"temp\bootmii.ini"
set /p AUTOBOOT1= <temp\bootmii.ini
::echo AUTOBOOT1:%AUTOBOOT1%
if not exist "%bootmiiINI%" goto:skip
support\sfk filter "%bootmiiINI%" -ls+"AUTOBOOT2=" -rep _"AUTOBOOT2="__ >"temp\bootmii.ini"
set /p AUTOBOOT2= <temp\bootmii.ini
::echo AUTOBOOT2:%AUTOBOOT2%
support\sfk filter "%bootmiiINI%" -ls+"AUTOBOOT=" -rep _"AUTOBOOT="__ >"temp\bootmii.ini"
set /p BMBOOT= <temp\bootmii.ini
::echo BMBOOT:%BMBOOT%
if /i "%BMBOOT%" EQU "SYSMENU" (set SYSMENU=%cyantext%) else (set SYSMENU=def)
if /i "%BMBOOT%" EQU "HBC" (set HBC=%cyantext%) else (set HBC=def)
if /i "%BMBOOT%" EQU "OFF" (set OFF=%cyantext%) else (set OFF=def)
IF not "%AUTOBOOT1%"=="" (set OFF=def) & (goto:skipdef)
IF not "%AUTOBOOT2%"=="" (set OFF=def) & (goto:skipdef)
IF "%BMBOOT%"=="" (set BMBOOT=OFF) & (set OFF=%cyantext%)
:skipdef
support\sfk filter "%bootmiiINI%" -ls+"BOOTDELAY=" -rep _"BOOTDELAY="__ >"temp\bootmii.ini"
set /p BMDELAY= <temp\bootmii.ini
::echo BMDELAY:%BMDELAY%
if /i "%BMDELAY%" EQU "0" (set BM0=%cyantext%) else (set BM0=def)
if /i "%BMDELAY%" EQU "1" (set BM1=%cyantext%) else (set BM1=def)
if /i "%BMDELAY%" EQU "2" (set BM2=%cyantext%) else (set BM2=def)
if /i "%BMDELAY%" EQU "3" (set BM3=%cyantext%) else (set BM3=def)
if /i "%BMDELAY%" EQU "4" (set BM4=%cyantext%) else (set BM4=def)
if /i "%BMDELAY%" EQU "5" (set BM5=%cyantext%) else (set BM5=def)
if /i "%BMDELAY%" EQU "6" (set BM6=%cyantext%) else (set BM6=def)
if /i "%BMDELAY%" EQU "7" (set BM7=%cyantext%) else (set BM7=def)
if /i "%BMDELAY%" EQU "8" (set BM8=%cyantext%) else (set BM8=def)
if /i "%BMDELAY%" EQU "9" (set BM9=%cyantext%) else (set BM9=def)
if /i "%BMDELAY%" EQU "10" (set BM10=%cyantext%) else (set BM10=def)
:skip
set BMCONFIG="
cls
echo ModMii v%currentversion%
echo by XFlak
echo.
echo.
echo.
echo Bootmii launch settings will be saved to "%bootmiiINI%"
echo.
echo.
if /i "%adminmode%" EQU "N" echo To load a different bootmii.ini file, drag it here and press enter
if /i "%adminmode%" EQU "Y" echo To load a different bootmii.ini file, enter its path now
echo Cycle through settings with A, V or D, or enter settings directly; e.g. HBC,NTSC,5
echo Current settings are highlighted in a different colour; changes applied immediately
echo.
echo.
IF "%AUTOBOOT2%"=="" support\sfk echo -spat \x20 A = change Autoboot: \x20 [%OFF%]OFF [def] \x7c [%SYSMENU%]SYSMENU [def]\x7c [%HBC%] HBC [def] \x7c [def]4 Digit Title ID
IF not "%AUTOBOOT2%"=="" support\sfk echo -spat \x20 A = change Autoboot: \x20 [%OFF%]OFF [def] \x7c [%SYSMENU%]SYSMENU [def]\x7c [%HBC%] HBC [def] \x7c [%cyantext%]%AUTOBOOT2% [Type: %AUTOBOOT1:~-2%]
echo.
support\sfk echo -spat \x20 V = force Video mode: [%NONE%] NONE [def]\x7c [%NTSC%] NTSC [def]\x7c [%PAL50%] PAL50 [def] \x7c [%PAL60%]PAL60 [def]\x7c [%PROGRESSIVE%]PROGRESSIVE
echo.
support\sfk echo -spat \x20 D = boot Delay (seconds): [%BM0%]0 [def]\x7c [%BM1%]1 [def]\x7c [%BM2%]2 [def]\x7c [%BM3%]3 [def]\x7c [%BM4%]4 [def]\x7c [%BM5%]5 [def]\x7c [%BM6%]6 [def]\x7c [%BM7%]7 [def]\x7c [%BM8%]8 [def]\x7c [%BM9%]9 [def]\x7c [%BM10%]10
echo.
echo.
echo.
echo * If Autoboot=OFF Bootmii will launch (or neek if SD:\bootmii folder is neek's)
echo * To Autoboot a specific channel enter it's 4 Digit Title ID; e.g. IDCL
IF not "%AUTOBOOT2%"=="" echo * Enter 01, 02, 04, or 08 to change the channel type; 01 works for most visible channels
IF not "%AUTOBOOT2%"=="" echo and 08 works for hidden channels, more info here https://wiibrew.org/wiki//title
echo.
echo.
echo.
echo SD = download Bootmii SD Files required to launch Bootmii;
echo * Bootmii SD files are the same files generated by the HackMii Installer
echo when installing Bootmii or Preparing an SD Card
echo.
echo R = Restore Defaults
echo.
echo B = Back
echo.
echo M = Main Menu
echo.
echo.
echo.
set /p BMCONFIG=Enter Selection Here:
set "BMCONFIG=%BMCONFIG:"=%"
IF "%BMCONFIG%"=="" goto:badkey
if /i "%BMCONFIG%" EQU "M" goto:MENU
if /i "%BMCONFIG%" EQU "B" goto:CONFIGFILEMENU
if /i "%BMCONFIG%" NEQ "R" goto:notR
set BMBOOT=
set BMVIDEO=
set AUTOBOOT1=
set AUTOBOOT2=
set BMDELAY=
goto:BUILDBMCONFIG
:notR
If /i "%BMCONFIG:~-12%" NEQ "\bootmii.ini" goto:skip
if not exist "%BMCONFIG%" goto:skip
if /i "%BMCONFIG%" EQU "%bootmiiINI%" goto:BMCONFIG2nd
set "bootmiiINI=%BMCONFIG%"
::add prompt asking if they would like to change Drive setting as well, but only if in bootmii subfolder
If /i "%BMCONFIG:~-20%" NEQ "\bootmii\bootmii.ini" goto:BMCONFIG2nd
if not exist "%BMCONFIG:~0,-20%\" goto:BMCONFIG2nd
:drivechangeprompt
set drivechangeprompt="
echo.
echo Would you like to also change your SD drive (or Path) setting
set /p drivechangeprompt=to "%BMCONFIG:~0,-20%"? (Y/N):
set "drivechangeprompt=%drivechangeprompt:"=%"
if "%drivechangeprompt%"=="" goto:badkey
if /i "%drivechangeprompt%" EQU "N" goto:BMCONFIG2nd
if /i "%drivechangeprompt%" NEQ "Y" (echo You Have Entered an Incorrect Key) & (goto:drivechangeprompt)
::save drive setting
set "Drive=%BMCONFIG:~0,-20%"
if exist Support\settings.bat support\sfk filter Support\settings.bat -ls!"Set*Drive=" -write -yes>nul
echo Set "Drive=%DRIVE%">>Support\settings.bat
goto:BMCONFIG2nd
:skip
if /i "%BMCONFIG%" NEQ "V" goto:notV
if /i "%BMVIDEO%" EQU "NTSC" (set BMCONFIG=PAL50) & (goto:notV)
if /i "%BMVIDEO%" EQU "PAL50" (set BMCONFIG=PAL60) & (goto:notV)
if /i "%BMVIDEO%" EQU "PAL60" (set BMCONFIG=PROGRESSIVE) & (goto:notV)
if /i "%BMVIDEO%" EQU "PROGRESSIVE" (set BMCONFIG=NONE) & (goto:notV)
IF "%BMVIDEO%"=="" (set BMCONFIG=NTSC) & (goto:notV)
:notV
if /i "%BMCONFIG%" EQU "NTSC" (set BMVIDEO=NTSC) & (set NTSC=%cyantext%) & (set PAL50=def) & (set PAL60=def) & (set PROGRESSIVE=def) & (set NONE=def) & (goto:BUILDBMCONFIG)
if /i "%BMCONFIG%" EQU "PAL50" (set BMVIDEO=PAL50) & (set NTSC=def) & (set PAL50=%cyantext%) & (set PAL60=def) & (set PROGRESSIVE=def) & (set NONE=def) & (goto:BUILDBMCONFIG)
if /i "%BMCONFIG%" EQU "PAL60" (set BMVIDEO=PAL60) & (set NTSC=def) & (set PAL50=def) & (set PAL60=%cyantext%) & (set PROGRESSIVE=def) & (set NONE=def) & (goto:BUILDBMCONFIG)
if /i "%BMCONFIG%" EQU "PROGRESSIVE" (set BMVIDEO=PROGRESSIVE) & (set NTSC=def) & (set PAL50=def) & (set PAL60=def) & (set PROGRESSIVE=%cyantext%) & (set NONE=def) & (goto:BUILDBMCONFIG)
if /i "%BMCONFIG%" EQU "NONE" (set BMVIDEO=) & (set NTSC=def) & (set PAL50=def) & (set PAL60=def) & (set PROGRESSIVE=def) & (set NONE=%cyantext%) & (goto:BUILDBMCONFIG)
if /i "%BMCONFIG%" NEQ "A" goto:notA
if /i "%BMBOOT%" EQU "OFF" (set BMCONFIG=SYSMENU) & (goto:notA)
if /i "%BMBOOT%" EQU "SYSMENU" (set BMCONFIG=HBC) & (goto:notA)
if /i "%BMBOOT%" EQU "HBC" (set BMCONFIG=OFF) & (goto:notA)
set BMCONFIG=OFF
set AUTOBOOT1=
set AUTOBOOT2=
goto:notA
:notA
if /i "%BMCONFIG%" EQU "OFF" (set BMBOOT=OFF) & (set OFF=%cyantext%) & (set SYSMENU=def) & (set HBC=def) & (set AUTOBOOT1=) & (set AUTOBOOT2=) & (goto:BUILDBMCONFIG)
if /i "%BMCONFIG%" EQU "SYSMENU" (set BMBOOT=SYSMENU) & (set OFF=def) & (set SYSMENU=%cyantext%) & (set HBC=def) & (set AUTOBOOT1=) & (set AUTOBOOT2=) & (goto:BUILDBMCONFIG)
if /i "%BMCONFIG%" EQU "HBC" (set BMBOOT=HBC) & (set OFF=def) & (set SYSMENU=def) & (set HBC=%cyantext%) & (set AUTOBOOT1=) & (set AUTOBOOT2=) & (goto:BUILDBMCONFIG)
::Autoboot TITLE ID
if /i "%BMCONFIG:~3,1%" EQU "" goto:notTitleID
if /i "%BMCONFIG:~4,1%" NEQ "" goto:notTitleID
set BMBOOT=
set OFF=def
set SYSMENU=def
set HBC=def
set AUTOBOOT1=0x10001
::echo %BMCONFIG%
::pause
set "AUTOBOOT2=%BMCONFIG%"
goto:BUILDBMCONFIG
:notTitleID
IF "%AUTOBOOT2%"=="" goto:skip
if /i "%BMCONFIG%" EQU "01" (set AUTOBOOT1=0x10001) & (goto:BUILDBMCONFIG)
if /i "%BMCONFIG%" EQU "02" (set AUTOBOOT1=0x10002) & (goto:BUILDBMCONFIG)
if /i "%BMCONFIG%" EQU "04" (set AUTOBOOT1=0x10004) & (goto:BUILDBMCONFIG)
if /i "%BMCONFIG%" EQU "08" (set AUTOBOOT1=0x10008) & (goto:BUILDBMCONFIG)
:skip
if /i "%BMCONFIG%" NEQ "D" goto:notD
if /i "%BMDELAY%" EQU "0" (set BMCONFIG=1) & (goto:notD)
if /i "%BMDELAY%" EQU "1" (set BMCONFIG=2) & (goto:notD)
if /i "%BMDELAY%" EQU "2" (set BMCONFIG=3) & (goto:notD)
if /i "%BMDELAY%" EQU "3" (set BMCONFIG=4) & (goto:notD)
if /i "%BMDELAY%" EQU "4" (set BMCONFIG=5) & (goto:notD)
if /i "%BMDELAY%" EQU "5" (set BMCONFIG=6) & (goto:notD)
if /i "%BMDELAY%" EQU "6" (set BMCONFIG=7) & (goto:notD)
if /i "%BMDELAY%" EQU "7" (set BMCONFIG=8) & (goto:notD)
if /i "%BMDELAY%" EQU "8" (set BMCONFIG=9) & (goto:notD)
if /i "%BMDELAY%" EQU "9" (set BMCONFIG=10) & (goto:notD)
if /i "%BMDELAY%" EQU "10" (set BMCONFIG=0) & (goto:notD)
:notD
if /i "%BMCONFIG%" EQU "0" (set BMDELAY=0) & (set BM0=%cyantext%) & (set BM1=def) & (set BM2=def) & (set BM3=def) & (set BM4=def) & (set BM5=def) & (set BM6=def) & (set BM7=def) & (set BM8=def) & (set BM9=def) & (set BM10=def) & (goto:BUILDBMCONFIG)
if /i "%BMCONFIG%" EQU "1" (set BMDELAY=1) & (set BM0=def) & (set BM1=%cyantext%) & (set BM2=def) & (set BM3=def) & (set BM4=def) & (set BM5=def) & (set BM6=def) & (set BM7=def) & (set BM8=def) & (set BM9=def) & (set BM10=def) & (goto:BUILDBMCONFIG)
if /i "%BMCONFIG%" EQU "2" (set BMDELAY=2) & (set BM0=def) & (set BM1=def) & (set BM2=%cyantext%) & (set BM3=def) & (set BM4=def) & (set BM5=def) & (set BM6=def) & (set BM7=def) & (set BM8=def) & (set BM9=def) & (set BM10=def) & (goto:BUILDBMCONFIG)
if /i "%BMCONFIG%" EQU "3" (set BMDELAY=3) & (set BM0=def) & (set BM1=def) & (set BM2=def) & (set BM3=%cyantext%) & (set BM4=def) & (set BM5=def) & (set BM6=def) & (set BM7=def) & (set BM8=def) & (set BM9=def) & (set BM10=def) & (goto:BUILDBMCONFIG)
if /i "%BMCONFIG%" EQU "4" (set BMDELAY=4) & (set BM0=def) & (set BM1=def) & (set BM2=def) & (set BM3=def) & (set BM4=%cyantext%) & (set BM5=def) & (set BM6=def) & (set BM7=def) & (set BM8=def) & (set BM9=def) & (set BM10=def) & (goto:BUILDBMCONFIG)
if /i "%BMCONFIG%" EQU "5" (set BMDELAY=5) & (set BM0=def) & (set BM1=def) & (set BM2=def) & (set BM3=def) & (set BM4=def) & (set BM5=%cyantext%) & (set BM6=def) & (set BM7=def) & (set BM8=def) & (set BM9=def) & (set BM10=def) & (goto:BUILDBMCONFIG)
if /i "%BMCONFIG%" EQU "6" (set BMDELAY=6) & (set BM0=def) & (set BM1=def) & (set BM2=def) & (set BM3=def) & (set BM4=def) & (set BM5=def) & (set BM6=%cyantext%) & (set BM7=def) & (set BM8=def) & (set BM9=def) & (set BM10=def) & (goto:BUILDBMCONFIG)
if /i "%BMCONFIG%" EQU "7" (set BMDELAY=7) & (set BM0=def) & (set BM1=def) & (set BM2=def) & (set BM3=def) & (set BM4=def) & (set BM5=def) & (set BM6=def) & (set BM7=%cyantext%) & (set BM8=def) & (set BM9=def) & (set BM10=def) & (goto:BUILDBMCONFIG)
if /i "%BMCONFIG%" EQU "8" (set BMDELAY=8) & (set BM0=def) & (set BM1=def) & (set BM2=def) & (set BM3=def) & (set BM4=def) & (set BM5=def) & (set BM6=def) & (set BM7=def) & (set BM8=%cyantext%) & (set BM9=def) & (set BM10=def) & (goto:BUILDBMCONFIG)
if /i "%BMCONFIG%" EQU "9" (set BMDELAY=9) & (set BM0=def) & (set BM1=def) & (set BM2=def) & (set BM3=def) & (set BM4=def) & (set BM5=def) & (set BM6=def) & (set BM7=def) & (set BM8=def) & (set BM9=%cyantext%) & (set BM10=def) & (goto:BUILDBMCONFIG)
if /i "%BMCONFIG%" EQU "10" (set BMDELAY=10) & (set BM0=def) & (set BM1=def) & (set BM2=def) & (set BM3=def) & (set BM4=def) & (set BM5=def) & (set BM6=def) & (set BM7=def) & (set BM8=def) & (set BM9=def) & (set BM10=%cyantext%) & (goto:BUILDBMCONFIG)
if /i "%BMCONFIG%" NEQ "SD" goto:skip
cls
set DLTOTAL=1
set bootmiisd=*
set BACKB4QUEUE=BMCONFIG2nd
goto:DOWNLOADQUEUE
:skip
:badkey
echo You Have Entered an Incorrect Key
@ping 127.0.0.1 -n 2 -w 1000> nul
goto:BMCONFIG2nd
:BUILDBMCONFIG
if not exist "%bootmiiINI:~0,-11%" mkdir "%bootmiiINI:~0,-11%"
if exist "%bootmiiINI%" support\sfk filter "%bootmiiINI%" -ls!"VIDEO=" -ls!"AUTOBOOT" -ls!"BOOTDELAY=" >"temp\bootmii.ini"
echo # Bootmii Config File> "%bootmiiINI%"
echo # Created by ModMii>> "%bootmiiINI%"
echo #>> "%bootmiiINI%"
echo # Video mode, possible settings:>> "%bootmiiINI%"
echo # VIDEO=NTSC, PAL50, PAL60, PROGRESSIVE>> "%bootmiiINI%"
IF not "%BMVIDEO%"=="" echo VIDEO=%BMVIDEO%BLAHH>> "%bootmiiINI%"
echo #>> "%bootmiiINI%"
echo # Autoboot, possible settings:>> "%bootmiiINI%"
echo # AUTOBOOT=SYSMENU, HBC, OFF>> "%bootmiiINI%"
IF not "%BMBOOT%"=="" echo AUTOBOOT=%BMBOOT%>> "%bootmiiINI%"
echo # AUTOBOOT1 and AUTOBOOT2 can be used instead of AUTOBOOT to boot directly to an installed channel; AUTOBOOT2=4-Digit-TitleID and AUTOBOOT1=0x10001 should correspond to the channel type as per https://wiibrew.org/wiki//title>> "%bootmiiINI%"
IF not "%AUTOBOOT1%"=="" echo AUTOBOOT1=%AUTOBOOT1%BLAHH>> "%bootmiiINI%"
IF not "%AUTOBOOT2%"=="" echo AUTOBOOT2=%AUTOBOOT2%BLAHH>> "%bootmiiINI%"
echo #>> "%bootmiiINI%"
echo # BOOTDELAY, possible settings:>> "%bootmiiINI%"
echo # BOOTDELAY=0,1,2,3,4,5,6,7,8,9,10>> "%bootmiiINI%"
IF not "%BMDELAY%"=="" echo BOOTDELAY=%BMDELAY%BLAHH>> "%bootmiiINI%"
support\sfk filter "%bootmiiINI%" -rep _BLAHH__ -write -yes>nul
::start notepad "%Drive%\bootmii\bootmii.ini"
goto:BMCONFIG2nd
::...................................WAD MANAGER CONFIGURATOR (wmconfig.txt)...............................
:WMCONFIG
set WMCIOS="
cls
echo ModMii v%currentversion%
echo by XFlak
echo.
echo.
echo.
echo This will create an optional wm_config.txt file in "%DRIVE%\WAD\"
echo You will get all the prompts if you don't have this file.
echo.
echo Note: works with YAWMM, yawmME, Wad Manager Multi-Mod, etc.
echo.
echo.
echo.
echo.
echo Enter the IOS # you would like Wad Manager to load automatically
echo.
echo Note: MAX is 254
echo Common choices are 36, 249, 250, etc.
echo NAND Emulation installation only available for 249 or 250
echo.
echo.
echo.
echo N = None (Wad Manager will prompt you for selection)
echo.
echo.
echo.
echo B = Back
echo.
echo M = Main Menu
echo.
echo.
echo.
echo.
set /p WMCIOS=Enter Selection Here:
set "WMCIOS=%WMCIOS:"=%"
if /i "%WMCIOS%" EQU "M" goto:MENU
if /i "%WMCIOS%" EQU "B" goto:CONFIGFILEMENU
if /i "%WMCIOS%" EQU "N" goto:WMCONFIG2
::if not numeric goto:badkey
for %%A in ("%WMCIOS%") do (for /f "tokens=1 delims=0123456789" %%B in ("%%~A") do goto:badkey)
::Remove leading zeros
for /f "tokens=* delims=0" %%A in ("%WMCIOS%") do set "WMCIOS=%%A"
::Set to 0 if entire input is all zeros
if "%WMCIOS%"=="" set "WMCIOS=0"
::limit user input to X# of digits
if not "%WMCIOS:~3%"=="" goto:badkey
::Reject negative numbers (LSS is less than, GTR is greater than)
if %WMCIOS% LSS 1 (goto:badkey)
if %WMCIOS% LEQ 254 goto:WMCONFIG2
:badkey
echo You Have Entered an Incorrect Key
@ping 127.0.0.1 -n 2 -w 1000> nul
goto:WMCONFIG
::...................................WAD MANAGER CONFIGURATOR page 2...............................
:WMCONFIG2
set WMDEVICE="
cls
echo ModMii v%currentversion%
echo by XFlak
echo.
echo.
echo.
echo Enter the FAT device you would like to load automatically.
echo.
echo Note: you can enter either the number or the word
echo.
echo.
echo.
echo.
echo 1 = SD
echo 2 = USB
echo 3 = USB2
echo 4 = GCSDA
echo 5 = GCSDA
echo.
echo N = None (Wad Manager will prompt you for selection)
echo.
echo.
echo.
echo.
echo B = Back
echo.
echo M = Main Menu
echo.
echo.
echo.
echo.
set /p WMDEVICE=Enter Selection Here:
set "WMDEVICE=%WMDEVICE:"=%"
if /i "%WMDEVICE%" EQU "1" SET WMDEVICE=sd
if /i "%WMDEVICE%" EQU "2" SET WMDEVICE=usb
if /i "%WMDEVICE%" EQU "3" SET WMDEVICE=usb2
if /i "%WMDEVICE%" EQU "4" SET WMDEVICE=gcsda
if /i "%WMDEVICE%" EQU "5" SET WMDEVICE=gcsdb
if /i "%WMDEVICE%" EQU "sd" goto:WMCONFIG3
if /i "%WMDEVICE%" EQU "usb" goto:WMCONFIG3
if /i "%WMDEVICE%" EQU "usb2" goto:WMCONFIG3
if /i "%WMDEVICE%" EQU "gcsda" goto:WMCONFIG3
if /i "%WMDEVICE%" EQU "gcsda" goto:WMCONFIG3
if /i "%WMDEVICE%" EQU "N" goto:WMCONFIG3
if /i "%WMDEVICE%" EQU "B" goto:WMCONFIG
if /i "%WMDEVICE%" EQU "M" goto:MENU
echo You Have Entered an Incorrect Key
@ping 127.0.0.1 -n 2 -w 1000> nul
goto:WMCONFIG2
::...................................WAD MANAGER CONFIGURATOR page 3...............................
:WMCONFIG3
:: NAND Emulation installation only available if cIOS249 or cIOS250 selected
if /i "%WMCIOS%" EQU "249" goto:WMCONFIG3B
if /i "%WMCIOS%" EQU "250" goto:WMCONFIG3B
if /i "%WMCIOS%" EQU "N" goto:WMCONFIG3B
set WMNAND=N
goto:WMCONFIG4
:WMCONFIG3B
set WMNAND="
cls
echo ModMii v%currentversion%
echo by XFlak
echo.
echo.
echo NAND Emulation
echo.
echo Enter the NAND device you would like to select automatically.
echo.
echo.
echo Note: PC tools like ShowMiiWads are better at installing wads to
echo emulated nand. So I recommend leaving NAND Emulation Disabled
echo.
echo Note: you can enter either the number or the word
echo.
echo.
echo.
echo 1 = Disable
echo 2 = USB
echo 3 = SD
echo.
echo N = None (Wad Manager will prompt selection if cIOS249 or cIOS250 selected)
echo.
echo.
echo.
echo.
echo B = Back
echo.
echo M = Main Menu
echo.
echo.
echo.
echo.
set /p WMNAND=Enter Selection Here:
set "WMNAND=%WMNAND:"=%"
if /i "%WMNAND%" EQU "3" SET WMNAND=SD
if /i "%WMNAND%" EQU "2" SET WMNAND=USB
if /i "%WMNAND%" EQU "1" SET WMNAND=Disable
if /i "%WMNAND%" EQU "SD" goto:WMCONFIG4
if /i "%WMNAND%" EQU "USB" goto:WMCONFIG4
if /i "%WMNAND%" EQU "Disable" goto:WMCONFIG4
if /i "%WMNAND%" EQU "N" goto:WMCONFIG4
if /i "%WMNAND%" EQU "M" goto:MENU
if /i "%WMNAND%" EQU "B" goto:WMCONFIG2
echo You Have Entered an Incorrect Key
@ping 127.0.0.1 -n 2 -w 1000> nul
goto:WMCONFIG3
::...................................WAD MANAGER CONFIGURATOR page 4...............................
:WMCONFIG4
set WMPATH="
cls
echo ModMii v%currentversion%
echo by XFlak
echo.
echo.
echo.
echo Enter the Start-up Path you would like to load initially.
echo.
echo Note: If you don't have a startupPath, the default is /WAD
echo.
echo Note: Be sure that the path exists, else you will get an error.
echo.
echo.
echo.
echo.
echo Examples:
echo /WAD/Forwarders
echo /myWad
echo /
echo Note: '/' sets the StartupPath to the root of the device
echo.
echo.
echo N = None (the default is /WAD)
echo.
echo.
echo.
echo.
echo B = Back
echo.
echo M = Main Menu
echo.
echo.
echo.
echo.
set /p WMPATH=Enter Selection Here:
set "WMPATH=%WMPATH:"=%"
if /i "%WMPATH%" EQU "N" SET WMPATH=/WAD
if /i "%WMPATH%" EQU "B" goto:WMCONFIG4BACK
if /i "%WMPATH%" EQU "M" goto:MENU
IF "%WMPATH%"=="" echo You Have Entered an Incorrect Key
IF "%WMPATH%"=="" @ping 127.0.0.1 -n 2 -w 1000> nul
IF "%WMPATH%"=="" goto:WMCONFIG4
goto:WMCONFIG5
:WMCONFIG4BACK
if /i "%WMCIOS%" EQU "249" goto:WMCONFIG3B
if /i "%WMCIOS%" EQU "250" goto:WMCONFIG3B
if /i "%WMCIOS%" EQU "N" goto:WMCONFIG3B
goto:WMCONFIG2
::...................................WAD MANAGER CONFIGURATOR page 5...............................
:WMCONFIG5
set WMPASS="
cls
echo ModMii v%currentversion%
echo by XFlak
echo.
echo.
echo.
echo Enter a Password to access Wad Manager ONLY using LRUD; where
echo.
echo L = Left
echo R = Right
echo U = Up
echo D = Down
echo.
echo Note: Password is entered on the Wiimote or GC Controller, max 10 characters
echo.
echo Note: If you don't have a password, the default is no password
echo.
echo.
echo.
echo.
echo Examples:
echo UDLR
echo UDLRUDLRUD
echo UUUUUUU
echo L
echo.
echo.
echo N = None (No Password)
echo.
echo.
echo.
echo.
echo B = Back
echo.
echo M = Main Menu
echo.
echo.
echo.
echo.
set /p WMPASS=Enter Selection Here:
set "WMPASS=%WMPASS:"=%"
if /i "%WMPASS%" EQU "B" goto:WMCONFIG4
if /i "%WMPASS%" EQU "M" goto:MENU
IF "%WMPASS%"=="" echo You Have Entered an Incorrect Key
IF "%WMPASS%"=="" @ping 127.0.0.1 -n 2 -w 1000> nul
IF "%WMPASS%"=="" goto:WMCONFIG5
::limit user input to X# of digits
if not "%WMPASS:~10%"=="" (
echo. ERROR: Password cannot be more than 10 Digits
@ping 127.0.0.1 -n 2 -w 1000> nul
goto:WMCONFIG5
)
::...................................WAD MANAGER CONFIGURATOR page 6...............................
:WMCONFIG6
set WMCONFIRM="
cls
echo ModMii v%currentversion%
echo by XFlak
echo.
echo.
echo.
echo Are these settings correct?
echo.
echo.
if /i "%WMCIOS%" EQU "N" echo Prompt cIOS Selection
if /i "%WMCIOS%" NEQ "N" echo cIOSVersion=%WMCIOS%
echo.
if /i "%WMDEVICE%" EQU "N" echo Prompt FAT Device Selection
if /i "%WMDEVICE%" NEQ "N" echo FatDevice=%WMDEVICE%
echo.
if /i "%WMCIOS%" EQU "249" goto:nanddevice
if /i "%WMCIOS%" EQU "250" goto:nanddevice
goto:skipnanddevice
:nanddevice
if /i "%WMNAND%" EQU "N" echo Prompt NAND Device Selection
if /i "%WMNAND%" NEQ "N" echo NANDDevice=%WMNAND%
echo.
:skipnanddevice
echo StartupPath=%WMPATH%
echo.
if /i "%WMPASS%" EQU "N" echo No Password
if /i "%WMPASS%" NEQ "N" echo Password=%WMPASS%
echo.
echo.
echo.
echo.
echo Y = Yes, Create wm_config.txt with these settings
if exist "%Drive%"\WAD\wm_config.txt echo Note: existing wm_config.txt will be overwritten
echo.
echo N = No, take me back to the main menu
echo.
echo.
echo.
echo B = Back
echo.
echo M = Main Menu
echo.
echo.
echo.
echo.
set /p WMCONFIRM=Enter Selection Here:
set "WMCONFIRM=%WMCONFIRM:"=%"
if /i "%WMCONFIRM%" EQU "B" goto:WMCONFIG5
if /i "%WMCONFIRM%" EQU "M" goto:MENU
if /i "%WMCONFIRM%" EQU "N" goto:MENU
if /i "%WMCONFIRM%" EQU "Y" goto:BUILDWMCONFIG
echo You Have Entered an Incorrect Key
@ping 127.0.0.1 -n 2 -w 1000> nul
goto:WMCONFIG6
:BUILDWMCONFIG
if not exist "%Drive%"\WAD mkdir "%Drive%"\WAD
echo ;wm_config.txt made by ModMii> "%Drive%"\WAD\wm_config.txt
if /i "%WMCIOS%" NEQ "N" echo cIOSVersion=%WMCIOS%>> "%Drive%"\WAD\wm_config.txt
if /i "%WMDEVICE%" NEQ "N" echo FatDevice=%WMDEVICE%>> "%Drive%"\WAD\wm_config.txt
if /i "%WMNAND%" NEQ "N" echo NANDDevice=%WMNAND%>> "%Drive%"\WAD\wm_config.txt
echo StartupPath=%WMPATH%>> "%Drive%"\WAD\wm_config.txt
if /i "%WMPASS%" NEQ "N" echo Password=%WMPASS%>> "%Drive%"\WAD\wm_config.txt
explorer "%Drive%\WAD"
::start notepad "%Drive%\WAD\wm_config.txt"
goto:MENU
::...................................MMM CONFIGURATOR (mmmconfig.txt)...............................
:MMMCONFIG
set WMCIOS="
cls
echo ModMii v%currentversion%
echo by XFlak
echo.
echo.
echo.
echo This will create an optional mmmconfig.txt file in "%DRIVE%\"
echo.
echo.
echo.
echo.
echo Enter the IOS # you would like Multi-Mod Manager (MMM) to load automatically
echo.
echo Note: Max is 254
echo Common choices are 36, 249, 250, etc.
echo.
echo.
echo.
echo N = None (Do Not Auto-Reload IOS)
echo.
echo.
echo.
echo B = Back
echo.
echo M = Main Menu
echo.
echo.
echo.
echo.
set /p WMCIOS=Enter Selection Here:
set "WMCIOS=%WMCIOS:"=%"
if /i "%WMCIOS%" EQU "M" goto:MENU
if /i "%WMCIOS%" EQU "B" goto:CONFIGFILEMENU
if /i "%WMCIOS%" EQU "N" goto:MMMCONFIG2
::if not numeric goto:badkey
for %%A in ("%WMCIOS%") do (for /f "tokens=1 delims=0123456789" %%B in ("%%~A") do goto:badkey)
::Remove leading zeros
for /f "tokens=* delims=0" %%A in ("%WMCIOS%") do set "WMCIOS=%%A"
::Set to 0 if entire input is all zeros
if "%WMCIOS%"=="" set "WMCIOS=0"
::limit user input to X# of digits
if not "%WMCIOS:~3%"=="" goto:badkey
::Reject negative numbers (LSS is less than, GTR is greater than)
if %WMCIOS% LSS 1 (goto:badkey)
if %WMCIOS% LEQ 254 goto:MMMCONFIG2
:badkey
echo You Have Entered an Incorrect Key
@ping 127.0.0.1 -n 2 -w 1000> nul
goto:MMMCONFIG
::...................................MMM CONFIGURATOR (mmmconfig.txt) page 2...............................
:MMMCONFIG2
set WMDEVICE="
cls
echo ModMii v%currentversion%
echo by XFlak
echo.
echo.
echo.
echo Enter the FAT device you would like to load automatically.
echo.
echo Note: you can enter either the number or the word
echo.
echo.
echo.
echo.
echo 1 = SD (default if mmmconfig.txt does not exist)
echo 2 = USB
echo 3 = SMB
echo.
echo N = None (MMM will prompt you for selection)
echo.
echo.
echo.
echo.
echo B = Back
echo.
echo M = Main Menu
echo.
echo.
echo.
echo.
set /p WMDEVICE=Enter Selection Here:
set "WMDEVICE=%WMDEVICE:"=%"
if /i "%WMDEVICE%" EQU "1" SET WMDEVICE=sd
if /i "%WMDEVICE%" EQU "2" SET WMDEVICE=usb
if /i "%WMDEVICE%" EQU "3" SET WMDEVICE=smb
if /i "%WMDEVICE%" EQU "sd" goto:MMMCONFIG3
if /i "%WMDEVICE%" EQU "usb" goto:MMMCONFIG3
if /i "%WMDEVICE%" EQU "smb" goto:MMMCONFIG3
if /i "%WMDEVICE%" EQU "N" goto:MMMCONFIG3
if /i "%WMDEVICE%" EQU "B" goto:MMMCONFIG
if /i "%WMDEVICE%" EQU "M" goto:MENU
echo You Have Entered an Incorrect Key
@ping 127.0.0.1 -n 2 -w 1000> nul
goto:MMMCONFIG2
::...................................MMM CONFIGURATOR (mmmconfig.txt) page 3...............................
:MMMCONFIG3
set WMPATH="
cls
echo ModMii v%currentversion%
echo by XFlak
echo.
echo.
echo.
echo Enter the Start-up Path you would like to load initially.
echo.
echo Note: If you don't have a startupPath, the default is /WAD
echo.
echo Note: Be sure that the path exists, else you will get an error.
echo.
echo.
echo.
echo.
echo Examples:
echo /WAD/Forwarders
echo /myWad
echo /
echo Note: '/' sets the StartupPath to the root of the device
echo.
echo.
echo N = None (the default is /WAD)
echo.
echo.
echo.
echo B = Back
echo.
echo M = Main Menu
echo.
echo.
echo.
echo.
set /p WMPATH=Enter Selection Here:
set "WMPATH=%WMPATH:"=%"
if /i "%WMPATH%" EQU "N" SET WMPATH=/WAD
if /i "%WMPATH%" EQU "B" goto:MMMCONFIG2
if /i "%WMPATH%" EQU "M" goto:MENU
IF "%WMPATH%"=="" echo You Have Entered an Incorrect Key
IF "%WMPATH%"=="" @ping 127.0.0.1 -n 2 -w 1000> nul
IF "%WMPATH%"=="" goto:MMMCONFIG3
::...................................MMM CONFIGURATOR (mmmconfig.txt) page 4...............................
:MMMCONFIG4
set WMCONFIRM="
cls
echo ModMii v%currentversion%
echo by XFlak
echo.
echo.
echo.
echo Are these settings correct?
echo.
echo.
if /i "%WMCIOS%" EQU "N" echo Do Not Auto-Reload IOS
if /i "%WMCIOS%" NEQ "N" echo AutoLoadIOS=%WMCIOS%
echo.
if /i "%WMDEVICE%" EQU "N" echo Prompt FAT Device Selection
echo.
if /i "%WMDEVICE%" NEQ "N" echo FatDevice=%WMDEVICE%
echo StartupPath=%WMPATH%
echo.
echo.
echo.
echo.
echo Y = Yes, Create mmmconfig.txt with these settings
if exist "%Drive%"\mmmconfig.txt echo Note: existing mmmconfig.txt will be overwritten
echo.
echo N = No, take me back to the main menu
echo.
echo.
echo B = Back
echo.
echo M = Main Menu
echo.
echo.
echo.
echo.
set /p WMCONFIRM=Enter Selection Here:
set "WMCONFIRM=%WMCONFIRM:"=%"
if /i "%WMCONFIRM%" EQU "B" goto:MMMCONFIG3
if /i "%WMCONFIRM%" EQU "M" goto:MENU
if /i "%WMCONFIRM%" EQU "N" goto:MENU
if /i "%WMCONFIRM%" EQU "Y" goto:BUILDMMMCONFIG
echo You Have Entered an Incorrect Key
@ping 127.0.0.1 -n 2 -w 1000> nul
goto:MMMCONFIG4
:BUILDMMMCONFIG
if not exist "%Drive%" mkdir "%Drive%"
echo ;mmmconfig.txt made by ModMii> "%Drive%"\mmmconfig.txt
if /i "%WMCIOS%" NEQ "N" echo AutoLoadIOS=%WMCIOS%>> "%Drive%"\mmmconfig.txt
if /i "%WMDEVICE%" NEQ "N" echo FatDevice=%WMDEVICE%>> "%Drive%"\mmmconfig.txt
if /i "%WMDEVICE%" EQU "N" echo FatDevice=>> "%Drive%"\mmmconfig.txt
echo StartupPath=%WMPATH%>> "%Drive%"\mmmconfig.txt
explorer "%Drive%"
::start notepad "%Drive%\mmmconfig.txt"
goto:MENU
::----------------------------------------sysCheck Selector-------------------------------------
:sysCheckName
::force out of cmd line mode
set cmdlinemode=
set sysCheckName="
cls
echo ModMii v%currentversion%
echo by XFlak
echo.
echo SysCheck Updater: update only your outdated softmods
echo.
echo Enter the path\name of your SysCheck.csv log that you want to analyze.
echo.
if /i "%adminmode%" EQU "N" echo You can do this by dragging and dropping your SysCheck.csv log onto
if /i "%adminmode%" EQU "N" echo this window then hitting Enter.
if /i "%adminmode%" EQU "N" echo.
echo -OR- If you uploaded your SysCheck log to https://syscheck.crafterpika.cc
echo enter its 6 digit case-sensitive ID for ModMii to download and analyze it
echo.
echo Notes:
echo.
echo * In the future you can drag and drop your SysCheck.csv
echo onto ModMii.exe or ModMiiSkin.exe, or a shortcut to either,
echo to quickly start analyzing your SysCheck.
echo.
echo * Download SysCheck ModMii Edition from ModMii's Download Page 2.
echo Save it to an SD card or USB and run it from the Homebrew Channel.
echo It will then save a SysCheck.csv log to the root of your device.
echo.
echo * If you do not have a Hard Drive or SD Card, open SysCheck's boot.dol
echo using ModMii to launch it on your Wii or vWii via the internet.
echo After SysCheck is finished ignore the error and press A to view the
echo report, then A again to upload it. Access your SysCheck using the
echo onscreen link, select all (Ctrl^+A), copy (Ctrl^+C) then paste
echo (Ctrl^+V) into a new text document, then rename the file extension
echo from txt to csv. This csv file can now be analyzed by ModMii.
echo.
echo * SysCheck HacksDen Edition (HDE) logs are also supported.
echo.
echo * If SysCheck ME or HDE don't work for you try v2.1.0.b19
echo which can downloaded from https://tiny.cc/syscheckb19
echo.
echo.
echo B = Back
echo.
echo M = Main Menu
echo.
echo.
echo.
set sysCheckName="
set /p sysCheckName=Enter Selection Here:
set "sysCheckName=%sysCheckName:"=%"
if "%sysCheckName%"=="" goto:badkey
if /i "%sysCheckName%" EQU "M" goto:MENU
if /i "%sysCheckName%" EQU "B" goto:MENU
if /i "%sysCheckName:~-4%" NEQ ".csv" goto:notcsv
if not exist "%sysCheckName%" goto:notcsv
findStr /I /C:"syscheck" "%sysCheckName%" >nul
IF ERRORLEVEL 1 (echo This is not a valid SysCheck report) & (@ping 127.0.0.1 -n 2 -w 1000> nul) & (goto:sysCheckName)
goto:sysCheckAnalyzer
:notcsv
::https://syscheck.crafterpika.cc/download_csv?id=REPORTID_SGbQ5z
::check if 6 digit
if /i "%sysCheckName:~6,1%" NEQ "" goto:badkey
if /i "%sysCheckName:~5,1%" EQU "" goto:badkey
::try to download
support\wget --no-check-certificate -t 3 "https://syscheck.crafterpika.cc/download_csv?id=%sysCheckName%" -O "temp\SysCheck_%sysCheckName%.csv" -q --show-progress
::delete if file is empty (if empty)
>nul findstr "^" "temp\SysCheck_%sysCheckName%.csv" || del "temp\SysCheck_%sysCheckName%.csv"
if exist "temp\SysCheck_%sysCheckName%.csv" (set "sysCheckName=temp\SysCheck_%sysCheckName%.csv") & (goto:sysCheckAnalyzer)
echo SysCheck not available at https://syscheck.crafterpika.cc
@ping 127.0.0.1 -n 3 -w 1000> nul
goto:sysCheckName
:badkey
echo You Have Entered an Incorrect Key
@ping 127.0.0.1 -n 2 -w 1000> nul
goto:sysCheckName
::----------------------------------------sysCheck Analyzer-------------------------------------
:sysCheckAnalyzer
cls
echo ModMii v%currentversion%
echo by XFlak
echo.
echo Analyzing SysCheck: "%sysCheckName%"
echo.
echo Please wait...
echo.
::save a copy and translate keywords to english prior to analysis
set sysCheckCopy=temp\syscheck_.csv
copy /y "%sysCheckName%" "%sysCheckCopy%">nul
support\sfk filter "%sysCheckCopy%" -rep _"Chaine Homebrew"_"Homebrew Channel"_ -rep _"Chaine Channel"_"Homebrew Channel"_ -rep _"Canale Homebrew"_"Homebrew Channel"_ -rep _"Canal Homebrew"_"Homebrew Channel"_ -rep _"Homebrewkanal"_"Homebrew Channel"_ -write -yes>nul
support\sfk filter "%sysCheckCopy%" -rep _"utilise"_"running on"_ -rep _"appoggiato all'"_"running on "_ -rep _"ejecutandose en"_"running on"_ -rep _"benutzt"_"running on"_ -write -yes>nul
support\sfk filter "%sysCheckCopy%" -rep _"Systemmenue"_"System Menu"_ -rep _"Menu Systeme"_"System Menu"_ -rep _"Menu di sistema"_"System Menu"_ -rep _"Menu de Sistema"_"System Menu"_ -write -yes>nul
support\sfk filter "%sysCheckCopy%" -rep _"Pas de patches"_"No Patches"_ -rep _"Non patchato"_"No Patches"_ -rep _"Sin Parches"_"No Patches"_ -rep _"Keine Patches"_"No Patches"_ -write -yes>nul
support\sfk filter "%sysCheckCopy%" -rep _"Bug Trucha"_"Trucha Bug"_ -write -yes>nul
support\sfk filter "%sysCheckCopy%" -rep _"Acces NAND"_"NAND Access"_ -rep _"Accesso NAND"_"NAND Access"_ -rep _"Acceso NAND"_"NAND Access"_ -rep _"NAND Zugriff"_"NAND Access"_ -write -yes>nul
support\sfk filter "%sysCheckCopy%" -rep _"Identificazione ES"_"ES Identify"_ -write -yes>nul
support\sfk filter "%sysCheckCopy%" -rep _"Type de Console"_"Console Type"_ -rep _"Tipo Console"_"Console Type"_ -rep _"Tipo de consola"_"Console Type"_ -rep _"Konsolentyp"_"Console Type"_ -write -yes>nul
support\sfk filter "%sysCheckCopy%" -rep _"Regione"_"Region"_ -write -yes>nul
::adjust "original region" to ignore it when parsing region later
support\sfk filter "%sysCheckCopy%" -rep _"original region"_"originally"_ -rep _"region d'origine"_"originally"_ -rep _"regione originale"_"originally"_ -rep _"region de origen"_"originally"_ -write -yes>nul
::edit replace "d2x-v10beta52" with "d2x-v8final" (since they're the same), and vice versa (also accept d2x-v11beta1). However, if d2x-v11beta1 is selected, it will not accept anything less even though improvements are relatively minor
if /i "%d2x-beta-rev%" EQU "10-beta52" support\sfk filter "%sysCheckCopy%" -rep _d2x-v8final_d2x-v10beta52_ -write -yes>nul
if /i "%d2x-beta-rev%" EQU "10-beta52" support\sfk filter "%sysCheckCopy%" -rep _d2x-v11beta1_d2x-v10beta52_ -write -yes>nul
if /i "%d2x-beta-rev%" EQU "8-final" support\sfk filter "%sysCheckCopy%" -rep _d2x-v10beta52_d2x-v8final_ -write -yes>nul
if /i "%d2x-beta-rev%" EQU "8-final" support\sfk filter "%sysCheckCopy%" -rep _d2x-v11beta1_d2x-v8final_ -write -yes>nul
::remove any lines ending in ": Skipped" and assume outdated, this will also prevent stubs from being listed like 249 (even though they won't be constructed) - DISABLED
::support\sfk filter "%sysCheckCopy%" -le!": Skipped" -write -yes>nul
::if /i "%d2x-beta-rev%" EQU "11-beta1" support\sfk filter "%sysCheckCopy%" -rep _d2x-v8final_d2x-v11beta1_ -write -yes>nul
::if /i "%d2x-beta-rev%" EQU "11-beta1" support\sfk filter "%sysCheckCopy%" -rep _d2x-v10beta52_d2x-v11beta1_ -write -yes>nul
::confirm SysCheck ME or SysCheck HDE
findStr /I /B /C:"SysCheck HDE" "%sysCheckCopy%" >nul
IF NOT ERRORLEVEL 1 goto:allgood
findStr /I /B /C:"SysCheck ME" "%sysCheckCopy%" >nul
IF NOT ERRORLEVEL 1 goto:allgood
findStr /I /B /C:"sysCheck v2.1.0b" "%sysCheckCopy%" >nul
IF NOT ERRORLEVEL 1 goto:syscheckwarning
echo.
echo.
echo Please use SysCheck ModMii Edition (ME) or Hacksden Edition (HDE) ^& try again...
echo.
echo If SysCheck ME or HDE don't work for you try v2.1.0.b19 https://tiny.cc/syscheckb19
echo.
pause
goto:sysCheckName
:syscheckwarning
echo.
echo.
echo Please use SysCheck ModMii Edition (ME) or Hacksden Edition (HDE) ^& try again...
echo.
echo If SysCheck ME or HDE don't work for you try v2.1.0.b19 https://tiny.cc/syscheckb19
echo.
support\sfk.exe echo [%cyantext%]Would you like ModMii to try and analyze this SysCheck anyway? (Y/N)
echo.
support\sfk.exe echo [%redtext%]Warning![def] Analysis of older SysCheck logs may recommend redundant updates that are
echo not necessary, but the guide should still be safe.
echo.
:SysCheckPrompt
set SysCheckPrompt="
set /p SysCheckPrompt=Enter Selection Here:
set "SysCheckPrompt=%SysCheckPrompt:"=%"
if /i "%SysCheckPrompt%" EQU "N" goto:sysCheckName
if /i "%SysCheckPrompt%" EQU "Y" goto:allgood
:badkey
echo You Have Entered an Incorrect Key
echo.
goto:SysCheckPrompt
:allgood
::check Console Type for vWii & Wii
copy /y "%sysCheckCopy%" temp\syscheck.txt>nul
support\sfk filter -quiet temp\syscheck.txt -ls+"Console Type: " -rep _"Console Type: "__ -write -yes
set /p consoletype= <temp\syscheck.txt
del temp\syscheck.txt>nul
if /i "%consoletype%" EQU "vWii" goto:miniskip
if /i "%consoletype%" NEQ "Wii" (echo %consoletype% Console Type not supported, aborting analysis...) & (echo.) & (@ping 127.0.0.1 -n 5 -w 1000> nul) & (goto:sysCheckName)
:miniskip
if /i "%consoletype%" NEQ "vWii" goto:skipcheck
::if vwii mods, check if d2x is disabled and revert to default
if not exist "Support\d2x-beta\" goto:skipcheck
if not exist "Support\d2x-beta\ciosmaps_vWii.xml" goto:switch
::check ciosmaps_vWii.xml for 'base ios="38"'
findStr /I /C:"base ios=\"38\"" "Support\d2x-beta\ciosmaps_vWii.xml" >nul
IF NOT ERRORLEVEL 1 goto:skipcheck
::need to switch d2x version
:switch
echo.
echo Warning! d2x-v%d2x-beta-rev% is not fully supported for vWii, reverting to default d2x version, this can be changed again later in the Options menu
echo.
pause
echo.
set d2x-beta-rev=%d2x-bundled%
if exist support\d2x-beta rd /s /q support\d2x-beta
:skipcheck
::check if d2x version is customized and offer to revert to default
call support\subscripts\defaultd2x.bat
::-When prompting users for a syscheck, and when starting to analyze a syscheck FOR Wii\vWii display ACTIVEIOS setting, for Wii-Only also display hermes and cmios settings and info (and any other applicable settings)
support\sfk echo -spat \x20 \x20 \x20 \x20 \x20[%cyantext%]The following ModMii settings will impact how your SysCheck is analyzed:
echo.
if /i "%ACTIVEIOS%" EQU "OFF" support\sfk echo -spat \x20 \x20 \x20 \x20 \x20 - Update Active IOSs [%redtext%](Disabled)
if /i "%ACTIVEIOS%" EQU "ON" support\sfk echo -spat \x20 \x20 \x20 \x20 \x20 - Update Active IOSs [%greentext%](Enabled)
findStr /I /B /C:"Region: NTSC-U" "%sysCheckCopy%" >nul
IF NOT ERRORLEVEL 1 set Region=U
findStr /I /B /C:"Region: PAL" "%sysCheckCopy%" >nul
IF NOT ERRORLEVEL 1 set Region=E
findStr /I /B /C:"Region: JAP" "%sysCheckCopy%" >nul
IF NOT ERRORLEVEL 1 set Region=J
findStr /I /B /C:"Region: NTSC-J" "%sysCheckCopy%" >nul
IF NOT ERRORLEVEL 1 set Region=J
findStr /I /B /C:"Region: KOR" "%sysCheckCopy%" >nul
IF NOT ERRORLEVEL 1 set Region=K
if /i "%consoletype%" NEQ "vWii" goto:NOTvWii
set FIRMSTART=v
::Check for OHBC v1.1.3 or higher
findStr /I /B /R /C:"Homebrew Channel 1.1.[3-9] running on IOS58" "%sysCheckCopy%" >nul
IF ERRORLEVEL 1 (set OHBC113=*) else (set OHBC113=)
::check if Priiloader is installed (disabled for now as "Priiloader" not present in vWii syschecks)
::findStr /I /B /C:"Priiloader" "%sysCheckCopy%" >nul
::IF ERRORLEVEL 1 (set pri=*) else (set pri=)
::if /i "%pri%" EQU "*" goto:skip
echo.
echo Priiloader might already be installed but SysCheck cannot detect it on vWii at this time.
echo Would you like to install the latest version of Priiloader now? (Y/N)
echo.
:UpdatePri2
set UpdatePri="
set /p UpdatePri=Enter Selection Here:
set "UpdatePri=%UpdatePri:"=%"
if /i "%UpdatePri%" EQU "N" goto:skip
if /i "%UpdatePri%" EQU "Y" (set pri=*) & (goto:skip)
:badkey
echo You Have Entered an Incorrect Key
echo.
goto:UpdatePri2
:skip
::Check for patched vIOS80
findStr /I /B /R /C:"vIOS80 (rev [0-9]*):.*NAND Access" "%sysCheckCopy%" >nul
IF ERRORLEVEL 1 (set vIOS80P=*) else (set vIOS80P=)
::d2x cios
set d2x-beta-rev=%d2x-bundled%
set ciosversion=65535
if exist support\d2x-beta\d2x-beta.bat call support\d2x-beta\d2x-beta.bat
echo "set cIOSversionNum=%d2x-beta-rev%">temp\cIOSrev.bat
support\sfk filter -spat temp\cIOSrev.bat -rep _\x22__ -rep _"-*"__ -write -yes>nul
call temp\cIOSrev.bat
del temp\cIOSrev.bat>nul
set string1=%cIOSversionNum%
set versionlength=1
::letter by letter loop
:loopy3
if /i "%string1%" EQU "" goto:endloopy3
set string1=%string1:~1%
set /A versionlength=%versionlength%+1
goto:loopy3
:endloopy3
echo set cIOSsubversion=@d2x-beta-rev:~%versionlength%,16@>temp\cIOSsubversion.bat
support\sfk filter temp\cIOSsubversion.bat -spat -rep _@_%%_ -write -yes>nul
call temp\cIOSsubversion.bat
del temp\cIOSsubversion.bat>nul
findStr /I /B /R /C:"vIOS248\[38\] (rev [0-9]*, Info: d2x-v%cIOSversionNum%%cIOSsubversion%" "%sysCheckCopy%" >nul
IF ERRORLEVEL 1 (set cIOS248[38]-d2x-vWii=*) else (set cIOS248[38]-d2x-vWii=)
findStr /I /B /R /C:"vIOS249\[56\] (rev [0-9]*, Info: d2x-v%cIOSversionNum%%cIOSsubversion%" "%sysCheckCopy%" >nul
IF ERRORLEVEL 1 (set cIOS249[56]-d2x-vWii=*) else (set cIOS249[56]-d2x-vWii=)
findStr /I /B /R /C:"vIOS250\[57\] (rev [0-9]*, Info: d2x-v%cIOSversionNum%%cIOSsubversion%" "%sysCheckCopy%" >nul
IF ERRORLEVEL 1 (set cIOS250[57]-d2x-vWii=*) else (set cIOS250[57]-d2x-vWii=)
findStr /I /B /R /C:"vIOS251\[58\] (rev [0-9]*, Info: d2x-v%cIOSversionNum%%cIOSsubversion%" "%sysCheckCopy%" >nul
IF ERRORLEVEL 1 (set cIOS251[58]-d2x-vWii=*) else (set cIOS251[58]-d2x-vWii=)
::check if SM version is greater than 610 (vWii 4.3E), if cSM detected reinstall stock SM
copy /y "%sysCheckCopy%" temp\syscheck.txt>nul
support\sfk filter -quiet temp\syscheck.txt -ls+"System Menu " -rep _"*(v"__ -rep _" *"__ -rep _",*"__ -rep _")*"__ -write -yes
set firmversion=
set /p firmversion= <temp\syscheck.txt
del temp\syscheck.txt>nul
if /i "%firmversion%" EQU "4609" goto:wiimini
if /i "%firmversion%" NEQ "4610" goto:skipwiimini
:wiimini
echo This SysCheck is for a Wii Mini and is not currently supported, aborting analysis...
echo.
@ping 127.0.0.1 -n 5 -w 1000> nul
goto:sysCheckName
:skipwiimini
set customSMfix=
if /i %firmversion% LEQ 610 goto:noCSM
set firmwarechange=yes
set customSMfix=yes
if /i "%REGION%" EQU "U" set vSM4.3U=*
if /i "%REGION%" EQU "E" set vSM4.3E=*
if /i "%REGION%" EQU "J" set vSM4.3J=*
:noCSM
::check for missing active IOSs
if /i "%ACTIVEIOS%" EQU "OFF" goto:skipactivecheck
findStr /I /B /C:"vIOS9 (rev 1290): No Patches" "%sysCheckCopy%" >nul
IF ERRORLEVEL 1 (set vIOS9=*) else (set vIOS9=)
findStr /I /B /C:"vIOS12 (rev 782): No Patches" "%sysCheckCopy%" >nul
IF ERRORLEVEL 1 (set vIOS12=*) else (set vIOS12=)
findStr /I /B /C:"vIOS13 (rev 1288): No Patches" "%sysCheckCopy%" >nul
IF ERRORLEVEL 1 (set vIOS13=*) else (set vIOS13=)
findStr /I /B /C:"vIOS14 (rev 1288): No Patches" "%sysCheckCopy%" >nul
IF ERRORLEVEL 1 (set vIOS14=*) else (set vIOS14=)
findStr /I /B /C:"vIOS15 (rev 1288): No Patches" "%sysCheckCopy%" >nul
IF ERRORLEVEL 1 (set vIOS15=*) else (set vIOS15=)
findStr /I /B /C:"vIOS17 (rev 1288): No Patches" "%sysCheckCopy%" >nul
IF ERRORLEVEL 1 (set vIOS17=*) else (set vIOS17=)
findStr /I /B /C:"vIOS21 (rev 1295): No Patches" "%sysCheckCopy%" >nul
IF ERRORLEVEL 1 (set vIOS21=*) else (set vIOS21=)
findStr /I /B /C:"vIOS22 (rev 1550): No Patches" "%sysCheckCopy%" >nul
IF ERRORLEVEL 1 (set vIOS22=*) else (set vIOS22=)
findStr /I /B /C:"vIOS28 (rev 2063): No Patches" "%sysCheckCopy%" >nul
IF ERRORLEVEL 1 (set vIOS28=*) else (set vIOS28=)
findStr /I /B /C:"vIOS31 (rev 3864): No Patches" "%sysCheckCopy%" >nul
IF ERRORLEVEL 1 (set vIOS31=*) else (set vIOS31=)
findStr /I /B /C:"vIOS33 (rev 3864): No Patches" "%sysCheckCopy%" >nul
IF ERRORLEVEL 1 (set vIOS33=*) else (set vIOS33=)
findStr /I /B /C:"vIOS34 (rev 3864): No Patches" "%sysCheckCopy%" >nul
IF ERRORLEVEL 1 (set vIOS34=*) else (set vIOS34=)
findStr /I /B /C:"vIOS35 (rev 3864): No Patches" "%sysCheckCopy%" >nul
IF ERRORLEVEL 1 (set vIOS35=*) else (set vIOS35=)
findStr /I /B /C:"vIOS36 (rev 3864): No Patches" "%sysCheckCopy%" >nul
IF ERRORLEVEL 1 (set vIOS36=*) else (set vIOS36=)
findStr /I /B /C:"vIOS37 (rev 5919): No Patches" "%sysCheckCopy%" >nul
IF ERRORLEVEL 1 (set vIOS37=*) else (set vIOS37=)
findStr /I /B /C:"vIOS38 (rev 4380): No Patches" "%sysCheckCopy%" >nul
IF ERRORLEVEL 1 (set vIOS38=*) else (set vIOS38=)
findStr /I /B /C:"vIOS41 (rev 3863): No Patches" "%sysCheckCopy%" >nul
IF ERRORLEVEL 1 (set vIOS41=*) else (set vIOS41=)
findStr /I /B /C:"vIOS43 (rev 3863): No Patches" "%sysCheckCopy%" >nul
IF ERRORLEVEL 1 (set vIOS43=*) else (set vIOS43=)
findStr /I /B /C:"vIOS45 (rev 3863): No Patches" "%sysCheckCopy%" >nul
IF ERRORLEVEL 1 (set vIOS45=*) else (set vIOS45=)
findStr /I /B /C:"vIOS46 (rev 3863): No Patches" "%sysCheckCopy%" >nul
IF ERRORLEVEL 1 (set vIOS46=*) else (set vIOS46=)
findStr /I /B /C:"vIOS48 (rev 4380): No Patches" "%sysCheckCopy%" >nul
IF ERRORLEVEL 1 (set vIOS48=*) else (set vIOS48=)
findStr /I /B /C:"vIOS53 (rev 5919): No Patches" "%sysCheckCopy%" >nul
IF ERRORLEVEL 1 (set vIOS53=*) else (set vIOS53=)
findStr /I /B /C:"vIOS55 (rev 5919): No Patches" "%sysCheckCopy%" >nul
IF ERRORLEVEL 1 (set vIOS55=*) else (set vIOS55=)
findStr /I /B /C:"vIOS56 (rev 5918): No Patches" "%sysCheckCopy%" >nul
IF ERRORLEVEL 1 (set vIOS56=*) else (set vIOS56=)
findStr /I /B /C:"vIOS57 (rev 6175): No Patches" "%sysCheckCopy%" >nul
IF ERRORLEVEL 1 (set vIOS57=*) else (set vIOS57=)
set vIOS58=*
findStr /I /B /C:"vIOS58 (rev 6432): No Patches" "%sysCheckCopy%" >nul
IF not ERRORLEVEL 1 set vIOS58=
findStr /I /B /C:"vIOS58 (rev 6432): USB 2.0" "%sysCheckCopy%" >nul
IF not ERRORLEVEL 1 set vIOS58=
::::IOS59 is a J exclusive, but doesn't seem to be the case for vWii
::if /i "%REGION%" NEQ "J" goto:skipvIOS59
findStr /I /B /C:"vIOS59 (rev 9249): No Patches" "%sysCheckCopy%" >nul
IF ERRORLEVEL 1 (set vIOS59=*) else (set vIOS59=)
:::skipvIOS59
findStr /I /B /C:"vIOS61 (rev 5918)" "%sysCheckCopy%" >nul
IF ERRORLEVEL 1 (set vIOS61=*) else (set vIOS61=)
findStr /I /B /C:"vIOS62 (rev 6942): No Patches" "%sysCheckCopy%" >nul
IF ERRORLEVEL 1 (set vIOS62=*) else (set vIOS62=)
findStr /I /B /C:"vIOS512 (rev 7): No Patches" "%sysCheckCopy%" >nul
IF ERRORLEVEL 1 (set BCnand=*) else (set BCnand=)
findStr /I /B /C:"vIOS513 (rev 1): No Patches" "%sysCheckCopy%" >nul
IF ERRORLEVEL 1 (set BCwfs=*) else (set BCwfs=)
:skipactivecheck
set yawm=
if /i "%OHBC113%" EQU "*" set yawm=*
if /i "%cIOS248[38]-d2x-vWii%" EQU "*" set yawm=*
if /i "%cIOS249[56]-d2x-vWii%" EQU "*" set yawm=*
if /i "%cIOS250[57]-d2x-vWii%" EQU "*" set yawm=*
if /i "%cIOS251[58]-d2x-vWii%" EQU "*" set yawm=*
if /i "%vIOS9%" EQU "*" set yawm=*
if /i "%vIOS12%" EQU "*" set yawm=*
if /i "%vIOS13%" EQU "*" set yawm=*
if /i "%vIOS14%" EQU "*" set yawm=*
if /i "%vIOS15%" EQU "*" set yawm=*
if /i "%vIOS17%" EQU "*" set yawm=*
if /i "%vIOS21%" EQU "*" set yawm=*
if /i "%vIOS22%" EQU "*" set yawm=*
if /i "%vIOS28%" EQU "*" set yawm=*
if /i "%vIOS31%" EQU "*" set yawm=*
if /i "%vIOS33%" EQU "*" set yawm=*
if /i "%vIOS34%" EQU "*" set yawm=*
if /i "%vIOS35%" EQU "*" set yawm=*
if /i "%vIOS36%" EQU "*" set yawm=*
if /i "%vIOS37%" EQU "*" set yawm=*
if /i "%vIOS38%" EQU "*" set yawm=*
if /i "%vIOS41%" EQU "*" set yawm=*
if /i "%vIOS43%" EQU "*" set yawm=*
if /i "%vIOS45%" EQU "*" set yawm=*
if /i "%vIOS46%" EQU "*" set yawm=*
if /i "%vIOS48%" EQU "*" set yawm=*
if /i "%vIOS53%" EQU "*" set yawm=*
if /i "%vIOS55%" EQU "*" set yawm=*
if /i "%vIOS56%" EQU "*" set yawm=*
if /i "%vIOS57%" EQU "*" set yawm=*
if /i "%vIOS58%" EQU "*" set yawm=*
if /i "%vIOS59%" EQU "*" set yawm=*
if /i "%vIOS61%" EQU "*" set yawm=*
if /i "%vIOS62%" EQU "*" set yawm=*
::if /i "%vIOS80%" EQU "*" set yawm=*
if /i "%vIOS80P%" EQU "*" set yawm=*
if /i "%BCnand%" EQU "*" set yawm=*
if /i "%BCwfs%" EQU "*" set yawm=*
::if /i "%vSM4.3U%" EQU "*" set yawm=*
::if /i "%vSM4.3E%" EQU "*" set yawm=*
::if /i "%vSM4.3J%" EQU "*" set yawm=*
::if /i "%vRSU%" EQU "*" set yawm=*
::if /i "%vRSE%" EQU "*" set yawm=*
::if /i "%vRSJ%" EQU "*" set yawm=*
set BACKB4QUEUE=sysCheckName
goto:STUBScheck
:NOTvWii
::Continued from above-When prompting users for a syscheck, and when starting to analyze a syscheck FOR Wii\vWii display ACTIVEIOS setting, for Wii-Only also display hermes and cmios settings and info (and any other applicable settings)
echo.
if /i "%ExtraProtectionOPTION%" EQU "OFF" support\sfk echo -spat \x20 \x20 \x20 \x20 \x20 - Extra Brick Protection [%redtext%](Disabled)
if /i "%ExtraProtectionOPTION%" EQU "ON" support\sfk echo -spat \x20 \x20 \x20 \x20 \x20 - Extra Brick Protection [%greentext%](Enabled)
echo * When enabled, a patched IOS60 will be installed to other system menu
echo IOS slots to prevent bricks from users manually up\downgrading Wii's
echo.
if /i "%hermesOPTION%" EQU "OFF" support\sfk echo -spat \x20 \x20 \x20 \x20 \x20 - Hermes cIOSs (202 ^& 222-224) [%redtext%](Disabled)
if /i "%hermesOPTION%" EQU "ON" support\sfk echo -spat \x20 \x20 \x20 \x20 \x20 - Hermes cIOSs (202 ^& 222-224) [%greentext%](Enabled)
echo * Generally no longer necessary but may still be useful in some cases
echo.
if /i "%CMIOSOPTION%" EQU "OFF" support\sfk echo -spat \x20 \x20 \x20 \x20 \x20 - cMIOS [%redtext%](Disabled)
if /i "%CMIOSOPTION%" EQU "ON" support\sfk echo -spat \x20 \x20 \x20 \x20 \x20 - cMIOS [%greentext%](Enabled)
echo * A cMIOS allows older non-chipped Wii's to play GameCube backup discs
::get HBC version (ie. "Homebrew Channel 1.1.2 running on IOS58")
set HBCversion=0.0.1
copy /y "%sysCheckCopy%" temp\syscheck.txt>nul
support\sfk filter -quiet temp\syscheck.txt -ls+"Homebrew Channel " -rep _"Homebrew Channel "__ -rep _" *"__ -write -yes
set /p HBCversion= <temp\syscheck.txt
::get System Menu info (ie. "System Menu 4.3E")
copy /y "%sysCheckCopy%" temp\syscheck.txt>nul
support\sfk filter -quiet temp\syscheck.txt -ls+"System Menu " -rep _"*System Menu "__ -rep _" *"__ -rep _",*"__ -write -yes
set /p firmstart= <temp\syscheck.txt
del temp\syscheck.txt>nul
set SMregion=%firmstart:~-1%
set firmstart=%firmstart:~0,-1%
if /i "%firmstart:~0,1%" EQU "3" set firmstart=3.X
if /i "%firmstart:~0,1%" EQU "2" set firmstart=o
if /i "%firmstart:~0,1%" EQU "1" set firmstart=o
set firm=%firmstart%
if /i "%SMregion%" EQU "%Region%" goto:NoMismatch
cls
echo ModMii v%currentversion%
echo by XFlak
echo.
echo WARNING! Incomplete region change detected!
echo.
echo You should first complete ModMii's Region Change Wizard to fully install
echo your desired region and System Menu, then generate a new SysCheck.csv
echo before continuing the SysCheck Updater Wizard.
echo.
echo Press any key to return to the Main Menu.
echo.
pause>nul
set MENU1=
set cmdlinemode=
set one=
set two=
goto:MENU
:NoMismatch
::check if SM version is greater than 518 (4.3K), if cSM detected reinstall stock SM
copy /y "%sysCheckCopy%" temp\syscheck.txt>nul
support\sfk filter -quiet temp\syscheck.txt -ls+"System Menu " -rep _"*(v"__ -rep _" *"__ -rep _",*"__ -rep _")*"__ -write -yes
set firmversion=
set /p firmversion= <temp\syscheck.txt
del temp\syscheck.txt>nul
if /i "%firmversion%" EQU "4609" goto:wiimini
if /i "%firmversion%" NEQ "4610" goto:skipwiimini
:wiimini
echo This SysCheck is for a Wii Mini and is not currently supported, aborting analysis...
echo.
@ping 127.0.0.1 -n 5 -w 1000> nul
goto:sysCheckName
:skipwiimini
set customSMfix=
if /i %firmversion% LEQ 518 goto:noCSM
set firmwarechange=yes
set customSMfix=yes
if /i "%firmstart%" NEQ "4.2" goto:not42
if /i "%REGION%" EQU "U" set SM4.2U=*
if /i "%REGION%" EQU "E" set SM4.2E=*
if /i "%REGION%" EQU "J" set SM4.2J=*
if /i "%REGION%" EQU "K" set SM4.2K=*
goto:noSM
:not42
if /i "%firmstart%" NEQ "4.1" goto:not41
if /i "%REGION%" EQU "U" set SM4.1U=*
if /i "%REGION%" EQU "E" set SM4.1E=*
if /i "%REGION%" EQU "J" set SM4.1J=*
if /i "%REGION%" EQU "K" set SM4.1K=*
goto:noSM
:not41
set firm=4.3
if /i "%REGION%" EQU "U" set SM4.3U=*
if /i "%REGION%" EQU "E" set SM4.3E=*
if /i "%REGION%" EQU "J" set SM4.3J=*
if /i "%REGION%" EQU "K" set SM4.3K=*
goto:noSM
:noCSM
set firmwarechange=no
if /i "%firmstart%" EQU "4.0" set firmwarechange=yes
if /i "%firmstart%" EQU "3.x" set firmwarechange=yes
if /i "%firmstart%" EQU "o" set firmwarechange=yes
if /i "%firmwarechange%" EQU "no" goto:noSM
set firm=4.3
if /i "%REGION%" EQU "U" set SM4.3U=*
if /i "%REGION%" EQU "E" set SM4.3E=*
if /i "%REGION%" EQU "J" set SM4.3J=*
if /i "%REGION%" EQU "K" set SM4.3K=*
:noSM
::check if Priiloader is installed
set pri=*
set UpdatePri=
::since yawmME can retain priloader, no need to reinstall even if a new SM is installed
::if /i "%firmwarechange%" EQU "yes" (set pri=*) & (goto:skipprianalysis)
findStr /I /B /C:"Priiloader" "%sysCheckCopy%" >nul
IF not ERRORLEVEL 1 set pri=
:::skipprianalysis
if /i "%pri%" EQU "*" goto:skip
echo.
echo Priiloader is already installed but SysCheck is unable to determine its version.
echo Would you like to install the latest version of Priiloader now? (Y/N)
echo.
:UpdatePri
set UpdatePri="
set /p UpdatePri=Enter Selection Here:
set "UpdatePri=%UpdatePri:"=%"
if /i "%UpdatePri%" EQU "N" goto:skip
if /i "%UpdatePri%" EQU "Y" (set pri=*) & (goto:skip)
:badkey
echo You Have Entered an Incorrect Key
echo.
goto:UpdatePri
:skip
set d2x-beta-rev=%d2x-bundled%
set ciosversion=65535
if exist support\d2x-beta\d2x-beta.bat call support\d2x-beta\d2x-beta.bat
echo "set cIOSversionNum=%d2x-beta-rev%">temp\cIOSrev.bat
support\sfk filter -spat temp\cIOSrev.bat -rep _\x22__ -rep _"-*"__ -write -yes>nul
call temp\cIOSrev.bat
del temp\cIOSrev.bat>nul
set string1=%cIOSversionNum%
set versionlength=1
::letter by letter loop
:loopy2
if /i "%string1%" EQU "" goto:endloopy2
set string1=%string1:~1%
set /A versionlength=%versionlength%+1
goto:loopy2
:endloopy2
echo set cIOSsubversion=@d2x-beta-rev:~%versionlength%,16@>temp\cIOSsubversion.bat
support\sfk filter temp\cIOSsubversion.bat -spat -rep _@_%%_ -write -yes>nul
call temp\cIOSsubversion.bat
del temp\cIOSsubversion.bat>nul
::check for recommended cIOSs and HBC
set HM=*
findStr /I /B /R /C:"Homebrew Channel 1.1.[2-9] running on IOS58" "%sysCheckCopy%" >nul
IF not ERRORLEVEL 1 (set HM=) & (goto:no58check)
if /i %HBCversion% GEQ 1.1.0 (set OHBC=*) & (set HM=)
::check for any version of IOS58
if /i "%HM%" NEQ "*" goto:no58check
findStr /I /B /C:"IOS58 " "%sysCheckCopy%" >nul
IF ERRORLEVEL 1 (set IOS58=*) else (set IOS58=)
:no58check
if /i "%hermesOPTION%" EQU "OFF" goto:skipHERMEScheck
findStr /I /B /R /C:"IOS202\[60\] (rev [0-9]*, Info: hermesrodries-v6" "%sysCheckCopy%" >nul
IF ERRORLEVEL 1 (set cIOS202[60]-v5.1R=*) else (set cIOS202[60]-v5.1R=)
findStr /I /B /R /C:"IOS202\[60\] (rev [0-9]*, Info: hermesrodries-v5.1" "%sysCheckCopy%" >nul
IF NOT ERRORLEVEL 1 set cIOS202[60]-v5.1R=
findStr /I /B /R /C:"IOS202\[60\] (rev [0-9]*, Info: hermesrodries-5.1" "%sysCheckCopy%" >nul
IF NOT ERRORLEVEL 1 set cIOS202[60]-v5.1R=
findStr /I /B /R /C:"IOS202\[60\] (rev [0-9]*, Info: hermes-v5.1" "%sysCheckCopy%" >nul
IF NOT ERRORLEVEL 1 set cIOS202[60]-v5.1R=
findStr /I /B /R /C:"IOS222\[38\] (rev [0-9]*, Info: hermes-v4" "%sysCheckCopy%" >nul
IF ERRORLEVEL 1 (set cIOS222[38]-v4=*) else (set cIOS222[38]-v4=)
set cIOS223[37-38]-v4=*
findStr /I /B /R /C:"IOS223\[38+37\] (rev [0-9]*, Info: hermes-v4" "%sysCheckCopy%" >nul
IF not ERRORLEVEL 1 set cIOS223[37-38]-v4=
findStr /I /B /R /C:"IOS224\[57\] (rev [0-9]*, Info: hermesrodries-v6" "%sysCheckCopy%" >nul
IF ERRORLEVEL 1 (set cIOS224[57]-v5.1R=*) else (set cIOS224[57]-v5.1R=)
findStr /I /B /R /C:"IOS224\[57\] (rev [0-9]*, Info: hermesrodries-v5.1" "%sysCheckCopy%" >nul
IF NOT ERRORLEVEL 1 set cIOS224[57]-v5.1R=
findStr /I /B /R /C:"IOS224\[57\] (rev [0-9]*, Info: hermesrodries-5.1" "%sysCheckCopy%" >nul
IF NOT ERRORLEVEL 1 set cIOS224[57]-v5.1R=
findStr /I /B /R /C:"IOS224\[57\] (rev [0-9]*, Info: hermes-v5.1" "%sysCheckCopy%" >nul
IF NOT ERRORLEVEL 1 set cIOS224[57]-v5.1R=
:skipHERMEScheck
::set IOS236=*
::findStr /I /B /R /C:"IOS236\[36\] (rev [0-9]*, Info: rev 3351" "%sysCheckCopy%" >nul
::IF NOT ERRORLEVEL 1 set IOS236=
::findStr /I /B /R /C:"IOS236 (rev [0-9]*): Trucha Bug, ES Identify, NAND Access" "%sysCheckCopy%" >nul
::IF NOT ERRORLEVEL 1 set IOS236=
findStr /I /B /R /C:"IOS248\[38\] (rev [0-9]*, Info: d2x-v%cIOSversionNum%%cIOSsubversion%" "%sysCheckCopy%" >nul
IF ERRORLEVEL 1 (set cIOS248[38]-d2x-v10-beta52=*) else (set cIOS248[38]-d2x-v10-beta52=)
findStr /I /B /R /C:"IOS249\[56\] (rev [0-9]*, Info: d2x-v%cIOSversionNum%%cIOSsubversion%" "%sysCheckCopy%" >nul
IF ERRORLEVEL 1 (set cIOS249[56]-d2x-v10-beta52=*) else (set cIOS249[56]-d2x-v10-beta52=)
findStr /I /B /R /C:"IOS250\[57\] (rev [0-9]*, Info: d2x-v%cIOSversionNum%%cIOSsubversion%" "%sysCheckCopy%" >nul
IF ERRORLEVEL 1 (set cIOS250[57]-d2x-v10-beta52=*) else (set cIOS250[57]-d2x-v10-beta52=)
findStr /I /B /R /C:"IOS251\[58\] (rev [0-9]*, Info: d2x-v%cIOSversionNum%%cIOSsubversion%" "%sysCheckCopy%" >nul
IF ERRORLEVEL 1 (set cIOS251[58]-d2x-v10-beta52=*) else (set cIOS251[58]-d2x-v10-beta52=)
::also accept 249/250 reversed - DISABLED
::findStr /I /B /R /C:"IOS250\[56\] (rev [0-9]*, Info: d2x-v%cIOSversionNum%%cIOSsubversion%" "%sysCheckCopy%" >nul
::IF ERRORLEVEL 1 goto:skip
::findStr /I /B /R /C:"IOS249\[57\] (rev [0-9]*, Info: d2x-v%cIOSversionNum%%cIOSsubversion%" "%sysCheckCopy%" >nul
::IF ERRORLEVEL 1 goto:skip
::::found both 249[56] and 250[57]
::set cIOS249[56]-d2x-v10-beta52=
::set cIOS250[57]-d2x-v10-beta52=
:::skip
::bootmii check
set bootmii_missing=
::findStr /I /C:"bootmii" "%sysCheckCopy%" >nul
findStr /I /B /R /C:"IOS254 (rev [0-9]*): BootMii" "%sysCheckCopy%" >nul
IF ERRORLEVEL 1 set bootmii_missing=Y
::IF ERRORLEVEL 1 (set HM=*) & (set bootmiisd=*)
if /i "%bootmii_missing%" EQU "Y" set HM=*
::check for missing active IOSs
if /i "%ACTIVEIOS%" EQU "OFF" goto:skipactivecheck
findStr /I /B /C:"IOS9 (rev 1034): No Patches" "%sysCheckCopy%" >nul
IF ERRORLEVEL 1 (set IOS9=*) else (set IOS9=)
findStr /I /B /C:"IOS12 (rev 526): No Patches" "%sysCheckCopy%" >nul
IF ERRORLEVEL 1 (set IOS12=*) else (set IOS12=)
findStr /I /B /C:"IOS13 (rev 1032): No Patches" "%sysCheckCopy%" >nul
IF ERRORLEVEL 1 (set IOS13=*) else (set IOS13=)
findStr /I /B /C:"IOS14 (rev 1032): No Patches" "%sysCheckCopy%" >nul
IF ERRORLEVEL 1 (set IOS14=*) else (set IOS14=)
findStr /I /B /C:"IOS15 (rev 1032): No Patches" "%sysCheckCopy%" >nul
IF ERRORLEVEL 1 (set IOS15=*) else (set IOS15=)
findStr /I /B /C:"IOS17 (rev 1032): No Patches" "%sysCheckCopy%" >nul
IF ERRORLEVEL 1 (set IOS17=*) else (set IOS17=)
findStr /I /B /C:"IOS21 (rev 1039): No Patches" "%sysCheckCopy%" >nul
IF ERRORLEVEL 1 (set IOS21=*) else (set IOS21=)
findStr /I /B /C:"IOS22 (rev 1294): No Patches" "%sysCheckCopy%" >nul
IF ERRORLEVEL 1 (set IOS22=*) else (set IOS22=)
findStr /I /B /C:"IOS28 (rev 1807): No Patches" "%sysCheckCopy%" >nul
IF ERRORLEVEL 1 (set IOS28=*) else (set IOS28=)
findStr /I /B /C:"IOS31 (rev 3608): No Patches" "%sysCheckCopy%" >nul
IF ERRORLEVEL 1 (set IOS31=*) else (set IOS31=)
findStr /I /B /C:"IOS33 (rev 3608): No Patches" "%sysCheckCopy%" >nul
IF ERRORLEVEL 1 (set IOS33=*) else (set IOS33=)
findStr /I /B /C:"IOS34 (rev 3608): No Patches" "%sysCheckCopy%" >nul
IF ERRORLEVEL 1 (set IOS34=*) else (set IOS34=)
findStr /I /B /C:"IOS35 (rev 3608): No Patches" "%sysCheckCopy%" >nul
IF ERRORLEVEL 1 (set IOS35=*) else (set IOS35=)
findStr /I /B /C:"IOS36 (rev 3608): No Patches" "%sysCheckCopy%" >nul
IF ERRORLEVEL 1 (set IOS36v3608=*) else (set IOS36v3608=)
findStr /I /B /C:"IOS37 (rev 5663): No Patches" "%sysCheckCopy%" >nul
IF ERRORLEVEL 1 (set IOS37=*) else (set IOS37=)
findStr /I /B /C:"IOS38 (rev 4124): No Patches" "%sysCheckCopy%" >nul
IF ERRORLEVEL 1 (set IOS38=*) else (set IOS38=)
findStr /I /B /C:"IOS41 (rev 3607): No Patches" "%sysCheckCopy%" >nul
IF ERRORLEVEL 1 (set IOS41=*) else (set IOS41=)
findStr /I /B /C:"IOS43 (rev 3607): No Patches" "%sysCheckCopy%" >nul
IF ERRORLEVEL 1 (set IOS43=*) else (set IOS43=)
findStr /I /B /C:"IOS45 (rev 3607): No Patches" "%sysCheckCopy%" >nul
IF ERRORLEVEL 1 (set IOS45=*) else (set IOS45=)
findStr /I /B /C:"IOS46 (rev 3607): No Patches" "%sysCheckCopy%" >nul
IF ERRORLEVEL 1 (set IOS46=*) else (set IOS46=)
findStr /I /B /C:"IOS48 (rev 4124): No Patches" "%sysCheckCopy%" >nul
IF ERRORLEVEL 1 (set IOS48v4124=*) else (set IOS48v4124=)
findStr /I /B /C:"IOS53 (rev 5663): No Patches" "%sysCheckCopy%" >nul
IF ERRORLEVEL 1 (set IOS53=*) else (set IOS53=)
findStr /I /B /C:"IOS55 (rev 5663): No Patches" "%sysCheckCopy%" >nul
IF ERRORLEVEL 1 (set IOS55=*) else (set IOS55=)
findStr /I /B /C:"IOS56 (rev 5662): No Patches" "%sysCheckCopy%" >nul
IF ERRORLEVEL 1 (set IOS56=*) else (set IOS56=)
findStr /I /B /C:"IOS57 (rev 5919): No Patches" "%sysCheckCopy%" >nul
IF ERRORLEVEL 1 (set IOS57=*) else (set IOS57=)
set IOS58=*
findStr /I /B /C:"IOS58 (rev 6176): No Patches" "%sysCheckCopy%" >nul
IF not ERRORLEVEL 1 set IOS58=
findStr /I /B /C:"IOS58 (rev 6176): USB 2.0" "%sysCheckCopy%" >nul
IF not ERRORLEVEL 1 set IOS58=
::IOS59 is a J exclusive
if /i "%REGION%" NEQ "J" goto:skipIOS59
findStr /I /B /C:"IOS59 (rev 9249): No Patches" "%sysCheckCopy%" >nul
IF ERRORLEVEL 1 (set IOS59=*) else (set IOS59=)
:skipIOS59
findStr /I /B /C:"IOS61 (rev 5662): No Patches" "%sysCheckCopy%" >nul
IF ERRORLEVEL 1 (set IOS61=*) else (set IOS61=)
findStr /I /B /C:"IOS62 (rev 6430): No Patches" "%sysCheckCopy%" >nul
IF ERRORLEVEL 1 (set IOS62=*) else (set IOS62=)
findStr /I /B /C:"BC v6" "%sysCheckCopy%" >nul
IF ERRORLEVEL 1 (set BC=*) else (set BC=)
:skipactivecheck
::if HBC is <1.1.0 AND IOS58 is already installed, no need to download OHBC wad, will be running hackmii installer anyway
if /i %HBCversion% GEQ 1.1.0 goto:skip
if not "%IOS58%"=="" (set OHBC=*) & (set HM=*)
if "%IOS58%"=="" (set OHBC=) & (set HM=*)
:skip
::if IOS58 is already installed and will be running the HackMii installer to update bootmii anyway, no need to download OHBC wad
if /i "%bootmii_missing%" NEQ "Y" goto:skip
if "%IOS58%"=="" (set OHBC=) & (set HM=*)
:skip
::patched IOS check
if /i "%FIRM%" EQU "4.1" goto:forcecheck
if /i "%ExtraProtectionOPTION%" EQU "off" goto:smallskip
:forcecheck
set IOS60P=*
findStr /I /B /C:"IOS60 (rev 16174): Trucha Bug, NAND Access" "%sysCheckCopy%" >nul
IF NOT ERRORLEVEL 1 set IOS60P=
findStr /I /B /C:"IOS60 (rev 65535): Trucha Bug, NAND Access" "%sysCheckCopy%" >nul
IF NOT ERRORLEVEL 1 set IOS60P=
findStr /I /B /R /C:"IOS60 (rev [0-9]*, Info: ModMii-IOS60-v6174)" "%sysCheckCopy%" >nul
IF NOT ERRORLEVEL 1 set IOS60P=
:smallskip
if /i "%FIRM%" EQU "4.2" goto:forcecheck
if /i "%ExtraProtectionOPTION%" EQU "off" goto:smallskip
:forcecheck
set IOS70K=*
findStr /I /B /C:"IOS70 (rev 16174): Trucha Bug, NAND Access" "%sysCheckCopy%" >nul
IF NOT ERRORLEVEL 1 set IOS70K=
findStr /I /B /C:"IOS70 (rev 65535): Trucha Bug, NAND Access" "%sysCheckCopy%" >nul
IF NOT ERRORLEVEL 1 set IOS70K=
findStr /I /B /R /C:"IOS70\[60\] (rev [0-9]*, Info: ModMii-IOS60-v6174)" "%sysCheckCopy%" >nul
IF NOT ERRORLEVEL 1 set IOS70K=
:smallskip
if /i "%FIRM%" EQU "4.3" goto:forcecheck
if /i "%ExtraProtectionOPTION%" EQU "off" goto:smallskip
:forcecheck
set IOS80K=*
findStr /I /B /C:"IOS80 (rev 16174): Trucha Bug, NAND Access" "%sysCheckCopy%" >nul
IF NOT ERRORLEVEL 1 set IOS80K=
findStr /I /B /C:"IOS80 (rev 65535): Trucha Bug, NAND Access" "%sysCheckCopy%" >nul
IF NOT ERRORLEVEL 1 set IOS80K=
findStr /I /B /R /C:"IOS80\[60\] (rev [0-9]*, Info: ModMii-IOS60-v6174)" "%sysCheckCopy%" >nul
IF NOT ERRORLEVEL 1 set IOS80K=
:smallskip
if /i "%ExtraProtectionOPTION%" EQU "off" goto:smallskip
set IOS11P60=*
set IOS20P60=*
set IOS30P60=*
set IOS40P60=*
set IOS50P=*
set IOS52P=*
findStr /I /B /C:"IOS11 (rev 16174): Trucha Bug, NAND Access" "%sysCheckCopy%" >nul
IF NOT ERRORLEVEL 1 set IOS11P60=
findStr /I /B /C:"IOS11 (rev 65535): Trucha Bug, NAND Access" "%sysCheckCopy%" >nul
IF NOT ERRORLEVEL 1 set IOS11P60=
findStr /I /B /R /C:"IOS11\[60\] (rev [0-9]*, Info: ModMii-IOS60-v6174)" "%sysCheckCopy%" >nul
IF NOT ERRORLEVEL 1 set IOS11P60=
findStr /I /B /C:"IOS20 (rev 16174): Trucha Bug, NAND Access" "%sysCheckCopy%" >nul
IF NOT ERRORLEVEL 1 set IOS20P60=
findStr /I /B /C:"IOS20 (rev 65535): Trucha Bug, NAND Access" "%sysCheckCopy%" >nul
IF NOT ERRORLEVEL 1 set IOS20P60=
findStr /I /B /R /C:"IOS20\[60\] (rev [0-9]*, Info: ModMii-IOS60-v6174)" "%sysCheckCopy%" >nul
IF NOT ERRORLEVEL 1 set IOS20P60=
findStr /I /B /C:"IOS30 (rev 16174): Trucha Bug, NAND Access" "%sysCheckCopy%" >nul
IF NOT ERRORLEVEL 1 set IOS30P60=
findStr /I /B /C:"IOS30 (rev 65535): Trucha Bug, NAND Access" "%sysCheckCopy%" >nul
IF NOT ERRORLEVEL 1 set IOS30P60=
findStr /I /B /R /C:"IOS30\[60\] (rev [0-9]*, Info: ModMii-IOS60-v6174)" "%sysCheckCopy%" >nul
IF NOT ERRORLEVEL 1 set IOS30P60=
findStr /I /B /C:"IOS40 (rev 16174): Trucha Bug, NAND Access" "%sysCheckCopy%" >nul
IF NOT ERRORLEVEL 1 set IOS40P60=
findStr /I /B /C:"IOS40 (rev 65535): Trucha Bug, NAND Access" "%sysCheckCopy%" >nul
IF NOT ERRORLEVEL 1 set IOS40P60=
findStr /I /B /R /C:"IOS40\[60\] (rev [0-9]*, Info: ModMii-IOS60-v6174)" "%sysCheckCopy%" >nul
IF NOT ERRORLEVEL 1 set IOS40P60=
findStr /I /B /C:"IOS50 (rev 16174): Trucha Bug, NAND Access" "%sysCheckCopy%" >nul
IF NOT ERRORLEVEL 1 set IOS50P=
findStr /I /B /C:"IOS50 (rev 65535): Trucha Bug, NAND Access" "%sysCheckCopy%" >nul
IF NOT ERRORLEVEL 1 set IOS50P=
findStr /I /B /R /C:"IOS50\[60\] (rev [0-9]*, Info: ModMii-IOS60-v6174)" "%sysCheckCopy%" >nul
IF NOT ERRORLEVEL 1 set IOS50P=
findStr /I /B /C:"IOS52 (rev 16174): Trucha Bug, NAND Access" "%sysCheckCopy%" >nul
IF NOT ERRORLEVEL 1 set IOS52P=
findStr /I /B /C:"IOS52 (rev 65535): Trucha Bug, NAND Access" "%sysCheckCopy%" >nul
IF NOT ERRORLEVEL 1 set IOS52P=
findStr /I /B /R /C:"IOS52\[60\] (rev [0-9]*, Info: ModMii-IOS60-v6174)" "%sysCheckCopy%" >nul
IF NOT ERRORLEVEL 1 set IOS52P=
:smallskip
::cMIOS
if /i "%CMIOSOPTION%" EQU "OFF" goto:skipcMIOScheck
::set RVL-cMIOS-v65535(v10)_WiiGator_WiiPower_v0.2=
::findStr /I /B /E /C:"MIOS v65535" "%sysCheckCopy%" >nul
::IF ERRORLEVEL 1 set RVL-cMIOS-v65535(v10)_WiiGator_WiiPower_v0.2=*
set Swiss_cMIOS=
findStr /I /B /E /C:"MIOS v1788" "%sysCheckCopy%" >nul
IF ERRORLEVEL 1 set Swiss_cMIOS=*
:skipcMIOScheck
::MIOSv10
if /i "%CMIOSOPTION%" EQU "ON" goto:skipMIOScheck
findStr /I /B /E /C:"MIOS v10" "%sysCheckCopy%" >nul
IF ERRORLEVEL 1 (set M10=*) else (set M10=)
:skipMIOScheck
::removed IOS236 effective 6.5.2
::::IOS236
::findStr /I /B /C:"IOS236" "%sysCheckCopy%" >nul
::IF ERRORLEVEL 1 (set IOS236Installer=*) else (set IOS236Installer=)
::if /i "%IOS236Installer%" EQU "*" (set SIP=*) else (set SIP=)
::if /i "%IOS236Installer%" EQU "*" (set IOS36=*) else (set IOS36=)
::stubs!
:STUBScheck
set STUBS=
copy /y "%sysCheckCopy%" temp\stubs.txt>nul
support\sfk filter -quiet temp\stubs.txt -!"(rev 404): Stub" -write -yes
support\sfk filter -quiet temp\stubs.txt -ls+IOS -ls+vIOS -rep _vIOS_a_ -rep _IOS_a_ -rep _"["*_z_ -rep _" "*_z_ -rep _:__ -write -yes
::filter out good stuff, intentionally skipping stubbed SM IOSs, etc.
support\sfk filter -quiet temp\stubs.txt -!a0z -!a1z -!a2z -!a9z -!a11z -!a12z -!a13z -!a14z -!a15z -!a17z -!a20z -!a21z -!a22z -!a28z -!a30z -!a31z -!a33z -!a34z -!a35z -!a36z -!a37z -!a38z -!a40z -!a41z -!a43z -!a45z -!a46z -!a48z -!a50z -!a52z -!a53z -!a55z -!a56z -!a57z -!a58z -!a60z -!a61z -!a62z -!a70z -!a80z -!a248z -!a249z -!a250z -!a251z -!a512z -!a513z -write -yes
::removed the following whitelisted slots from suggesting they optionally be stubbed in the syscheck updater wizard
::-!a236z -!a240z -!a241z -!a242z -!a243z -!a244z -!a245z -!a246z -!a247z
::for vWii don't filter out hermes or bootmii ios254
if /i "%FIRMSTART%" EQU "v" goto:skip
if /i "%hermesOPTION%" EQU "on" support\sfk filter -quiet temp\stubs.txt -!a202z -!a222z -!a223z -!a224z -write -yes
support\sfk filter -quiet temp\stubs.txt -!a254z -write -yes
:skip
::filter out IOS59 only for J region (and vWii just in case)
if /i "%REGION%" EQU "J" support\sfk filter -quiet temp\stubs.txt -!a59z -write -yes
if /i "%FIRMSTART%" EQU "v" support\sfk filter -quiet temp\stubs.txt -!a59z -write -yes
support\sfk filter -quiet temp\stubs.txt -rep _a__ -rep _z__ -write -yes
::delete temp stubs if file is empty
>nul findstr "^" "temp\stubs.txt" || del "temp\stubs.txt"
if not exist temp\stubs.txt goto:nostubs
set STUBS=*
set yawm=*
set STUBSlist=
::get stubs list
::Loop through the following once for EACH line in *.txt
for /F "tokens=*" %%A in (temp\stubs.txt) do call :processSTUBSlist %%A
goto:quickskip
:processSTUBSlist
set STUBSlist=%STUBSlist%%*,
goto:EOF
:quickskip
set "STUBSlist=%STUBSlist:~0,-1%"
::echo (%STUBSlist%)
:nostubs
if /i "%FIRMSTART%" EQU "v" goto:DOWNLOADQUEUE
::disable RiiConnect24 check as it no longer requires a patched IOS31 or system menu IOS
goto:NoRiiConnect24Check
::check for RiiConnect24 IOS31 and IOS80
set RiiConnect24Detected=
if /i "%IOS31%" EQU "*" goto:RiiConnect24Check
if /i "%IOS80K%" EQU "*" goto:RiiConnect24Check
goto:NoRiiConnect24Check
:RiiConnect24Check
cls
findStr /I /B /C:"IOS31 (rev 3608): Trucha Bug, ES Identify, NAND Access" "%sysCheckCopy%" >nul
IF NOT ERRORLEVEL 1 set RiiConnect24Detected=Y
::ModMii's IOS80 is compatible with RiiConnect24, so only check for RC24's IOS31
::findStr /I /B /C:"IOS80 (rev 6944): Trucha Bug, NAND Access" "%sysCheckCopy%" >nul
::IF NOT ERRORLEVEL 1 set RiiConnect24Detected=Y
if /i "%RiiConnect24Detected%" NEQ "Y" goto:NoRiiConnect24Check
cls
echo ModMii v%currentversion%
echo by XFlak
echo.
echo ModMii's SysCheck Updater has detected RiiConnect24 in IOS31.
echo Would you like to remove\overwrite it?
echo.
echo Y = Yes, remove\overwrite RiiConnect24
echo N = No, keep RiiConnect24
echo.
set RiiConnect24Check="
set /p RiiConnect24Check=Enter Selection Here:
set "RiiConnect24Check=%RiiConnect24Check:"=%"
if "%RiiConnect24Check%"=="" goto:badkey
if /i "%RiiConnect24Check%" EQU "Y" goto:NoRiiConnect24Check
if /i "%RiiConnect24Check%" EQU "N" goto:KeepRiiConnect24
:badkey
echo You Have Entered an Incorrect Key
@ping 127.0.0.1 -n 2 -w 1000> nul
goto:RiiConnect24Check
:KeepRiiConnect24
findStr /I /B /C:"IOS31 (rev 3608): Trucha Bug, ES Identify, NAND Access" "%sysCheckCopy%" >nul
IF NOT ERRORLEVEL 1 set IOS31=
::findStr /I /B /C:"IOS80 (rev 6944): Trucha Bug, NAND Access" "%sysCheckCopy%" >nul
::IF NOT ERRORLEVEL 1 set IOS80K=
:NoRiiConnect24Check
set yawm=
set RECCIOS=
if /i "%cIOS202[60]-v5.1R%" EQU "*" (set yawm=*) & (set RECCIOS=Y)
if /i "%cIOS222[38]-v4%" EQU "*" (set yawm=*) & (set RECCIOS=Y)
if /i "%cIOS223[37-38]-v4%" EQU "*" (set yawm=*) & (set RECCIOS=Y)
if /i "%cIOS224[57]-v5.1R%" EQU "*" (set yawm=*) & (set RECCIOS=Y)
if /i "%cIOS248[38]-d2x-v10-beta52%" EQU "*" (set yawm=*) & (set RECCIOS=Y)
if /i "%cIOS249[56]-d2x-v10-beta52%" EQU "*" (set yawm=*) & (set RECCIOS=Y)
if /i "%cIOS250[57]-d2x-v10-beta52%" EQU "*" (set yawm=*) & (set RECCIOS=Y)
if /i "%cIOS251[58]-d2x-v10-beta52%" EQU "*" (set yawm=*) & (set RECCIOS=Y)
if /i "%IOS9%" EQU "*" set yawm=*
if /i "%IOS12%" EQU "*" set yawm=*
if /i "%IOS13%" EQU "*" set yawm=*
if /i "%IOS14%" EQU "*" set yawm=*
if /i "%IOS15%" EQU "*" set yawm=*
if /i "%IOS17%" EQU "*" set yawm=*
if /i "%IOS21%" EQU "*" set yawm=*
if /i "%IOS22%" EQU "*" set yawm=*
if /i "%IOS28%" EQU "*" set yawm=*
if /i "%IOS31%" EQU "*" set yawm=*
if /i "%IOS33%" EQU "*" set yawm=*
if /i "%IOS34%" EQU "*" set yawm=*
if /i "%IOS35%" EQU "*" set yawm=*
if /i "%IOS36v3608%" EQU "*" set yawm=*
if /i "%IOS37%" EQU "*" set yawm=*
if /i "%IOS38%" EQU "*" set yawm=*
if /i "%IOS41%" EQU "*" set yawm=*
if /i "%IOS48v4124%" EQU "*" set yawm=*
if /i "%IOS43%" EQU "*" set yawm=*
if /i "%IOS45%" EQU "*" set yawm=*
if /i "%IOS46%" EQU "*" set yawm=*
if /i "%IOS53%" EQU "*" set yawm=*
if /i "%IOS55%" EQU "*" set yawm=*
if /i "%IOS56%" EQU "*" set yawm=*
if /i "%IOS57%" EQU "*" set yawm=*
if /i "%IOS58%" EQU "*" set yawm=*
if /i "%IOS59%" EQU "*" set yawm=*
if /i "%IOS61%" EQU "*" set yawm=*
if /i "%IOS62%" EQU "*" set yawm=*
if /i "%IOS60P%" EQU "*" set yawm=*
if /i "%IOS70K%" EQU "*" set yawm=*
if /i "%IOS80K%" EQU "*" set yawm=*
if /i "%IOS236%" EQU "*" set yawm=*
::if /i "%RVL-cMIOS-v65535(v10)_WiiGator_WiiPower_v0.2%" EQU "*" set yawm=*
if /i "%Swiss_cMIOS%" EQU "*" set yawm=*
if /i "%M10%" EQU "*" set yawm=*
if /i "%IOS11P60%" EQU "*" set yawm=*
if /i "%IOS20P60%" EQU "*" set yawm=*
if /i "%IOS30P60%" EQU "*" set yawm=*
if /i "%IOS40P60%" EQU "*" set yawm=*
if /i "%IOS50P%" EQU "*" set yawm=*
if /i "%IOS52P%" EQU "*" set yawm=*
if /i "%OHBC%" EQU "*" set yawm=*
if /i "%STUBS%" EQU "*" set yawm=*
if /i "%BC%" EQU "*" set yawm=*
if /i "%SM4.1U%" EQU "*" set yawm=*
if /i "%SM4.1E%" EQU "*" set yawm=*
if /i "%SM4.1J%" EQU "*" set yawm=*
if /i "%SM4.1K%" EQU "*" set yawm=*
if /i "%SM4.2U%" EQU "*" set yawm=*
if /i "%SM4.2E%" EQU "*" set yawm=*
if /i "%SM4.2J%" EQU "*" set yawm=*
if /i "%SM4.2K%" EQU "*" set yawm=*
if /i "%SM4.3U%" EQU "*" set yawm=*
if /i "%SM4.3E%" EQU "*" set yawm=*
if /i "%SM4.3J%" EQU "*" set yawm=*
if /i "%SM4.3K%" EQU "*" set yawm=*
set BACKB4QUEUE=sysCheckName
goto:DOWNLOADQUEUE
::........................................HACKMII SOLUTION.......................................
:HACKMIISOLUTION
set SETTINGSHM=
set BB1=
set BB2=
set SMASH=
set PWNS=
set Bathaxx=
set ROTJ=
set TOS=
set TWI=
set YUGI=
::set IOS30P60=*
set IOS31=*
set IOS33=*
set IOS34=*
set IOS35=*
set IOS36v3608=*
set IOS58=*
set F32=*
set HMold=*
set HM=*
set bootmiisd=*
set yawm=*
if /i "%FIRMSTART%" EQU "4.1" set BB1=*
if /i "%FIRMSTART%" EQU "4.0" set BB1=*
if /i "%FIRMSTART%" EQU "3.x" set BB1=*
if /i "%FIRMSTART%" EQU "4.2" set BB2=*
if /i "%macaddress%" EQU "S" goto:skip
if /i "%EXPLOIT%" EQU "W" set Wilbrand=*
:skip
if /i "%EXPLOIT%" EQU "S" set SMASH=*
if /i "%EXPLOIT%" EQU "L" set PWNS=*
if /i "%EXPLOIT%" EQU "LB" set Bathaxx=*
if /i "%EXPLOIT%" EQU "LS" set ROTJ=*
if /i "%EXPLOIT%" EQU "TOS" set TOS=*
if /i "%EXPLOIT%" EQU "T" set TWI=*
if /i "%EXPLOIT%" EQU "Y" set YUGI=*
if /i "%EXPLOIT%" EQU "LB" set Bathaxx=*
if /i "%EXPLOIT%" NEQ "?" goto:notallexploits2
if /i "%FIRMSTART%" EQU "o" set Twi=*
if /i "%macaddress%" EQU "S" goto:skip
if /i "%FIRMSTART%" EQU "4.3" set Wilbrand=*
:skip
set SMASH=*
if /i "%REGION%" NEQ "K" set PWNS=*
if /i "%REGION%" NEQ "K" set YUGI=*
if /i "%REGION%" NEQ "K" set Bathaxx=*
if /i "%REGION%" NEQ "K" set ROTJ=*
if /i "%REGION%" NEQ "K" set TOS=*
:notallexploits2
set BACKB4QUEUE=%backb4HACKMIISOLUTION%
goto:DOWNLOADQUEUE
::...................................Download...............................
:Download
cls
set cleardownloadsettings=yes
goto:clear
:DownloadSettings
set cleardownloadsettings=
::WiiU logic
if /i "%FIRMSTART%" EQU "U" goto:WiiULogic
if /i "%FIRMSTART%" NEQ "U2" goto:NotWiiULogic
:WiiULogic
set f32=*
SET Aroma=*
SET EnvironmentLoader=*
SET Nanddumper=*
::extras
SET SaveMiiModWUTPort=*
SET Bloopair=*
SET Inkay=*
::SET appstore=*
SET Screenshot_WUPS=*
SET AccountSwap=*
SET evWii=*
SET WiiVCLaunch=*
SET wudd=*
SET GiveMiiYouTube=*
SET wup_installer_gx2_wuhb=*
if /i "%FIRMSTART%" EQU "U2" goto:vWiiULogic
goto:DOWNLOADQUEUE
:NotWiiULogic
::vWii logic
if /i "%FIRMSTART%" NEQ "v" goto:NotvWiiULogic
:vWiiULogic
set f32=*
::always download CompatTitleInstaller as a secondary option for vWii Only guides even if BE (Browser Exploit) is not selected
set vIOS80P=*
set yawm=*
set cIOS248[38]-d2x-vWii=*
set cIOS249[56]-d2x-vWii=*
set cIOS250[57]-d2x-vWii=*
set cIOS251[58]-d2x-vWii=*
::The Mii Channel on the vWii lacks some features, such as connecting to a DS and moving Mii's onto a Wii remote
set MII=*
::custom vWii IOS61 (for photo channel v1.1 support); basically a copy of vWii IOS56
set vIOS61=*
set P=*
set HAZA=*
set pri=*
::Install EULA to prevent update loop when enabling Priiloader's Permanent vWii System Settings (vWii) system menu hack
if /i "%REGION%" EQU "U" set EULAU=*
if /i "%REGION%" EQU "E" set EULAE=*
if /i "%REGION%" EQU "J" set EULAJ=*
if /i "%ThemeSelection%" EQU "N" goto:notJ
set csminstaller=*
if /i "%REGION%" NEQ "U" goto:notU
if /i "%ThemeSelection%" EQU "R" set DarkWii_Red_vWiiU=*
if /i "%ThemeSelection%" EQU "G" set DarkWii_Green_vWiiU=*
if /i "%ThemeSelection%" EQU "Bl" set DarkWii_Blue_vWiiU=*
if /i "%ThemeSelection%" EQU "O" set darkwii_orange_vWiiU=*
if /i "%ThemeSelection%" EQU "D" set A1f=*
:notU
if /i "%REGION%" NEQ "E" goto:notE
if /i "%ThemeSelection%" EQU "R" set DarkWii_Red_vWiiE=*
if /i "%ThemeSelection%" EQU "G" set DarkWii_Green_vWiiE=*
if /i "%ThemeSelection%" EQU "Bl" set DarkWii_Blue_vWiiE=*
if /i "%ThemeSelection%" EQU "O" set darkwii_orange_vWiiE=*
if /i "%ThemeSelection%" EQU "D" set A22=*
:notE
if /i "%REGION%" NEQ "J" goto:notJ
if /i "%ThemeSelection%" EQU "R" set DarkWii_Red_vWiiJ=*
if /i "%ThemeSelection%" EQU "G" set DarkWii_Green_vWiiJ=*
if /i "%ThemeSelection%" EQU "Bl" set DarkWii_Blue_vWiiJ=*
if /i "%ThemeSelection%" EQU "O" set darkwii_orange_vWiiJ=*
if /i "%ThemeSelection%" EQU "D" set A1c=*
:notJ
::if BE not selected, it will be a secondary option, so always download
SET Aroma=*
SET EnvironmentLoader=*
SET Nanddumper=*
SET CompatTitleInstaller=*
::if /i "%EXPLOIT%" EQU "BE" (SET Aroma=*) & (SET EnvironmentLoader=*) & (SET Nanddumper=*) & (SET CompatTitleInstaller=*)
if /i "%EXPLOIT%" EQU "S" (set SMASH=*) & (set HM=*)
if /i "%EXPLOIT%" EQU "L" (set PWNS=*) & (set HM=*)
if /i "%EXPLOIT%" EQU "Y" (set YUGI=*) & (set HM=*)
if /i "%EXPLOIT%" EQU "LB" (set Bathaxx=*) & (set HM=*)
if /i "%EXPLOIT%" EQU "LS" (set ROTJ=*) & (set HM=*)
if /i "%EXPLOIT%" EQU "TOS" (set TOS=*) & (set HM=*)
if /i "%EXPLOIT%" NEQ "?" goto:notallexploits
::SET Aroma=*
::SET EnvironmentLoader=*
::SET Nanddumper=*
::SET CompatTitleInstaller=*
set HM=*
set SMASH=*
set PWNS=*
set Bathaxx=*
set ROTJ=*
set YUGI=*
set TOS=*
:notallexploits
::if hackmii installer downloaded, also download OHBC113 to update it, and LULZ hbc WAD to be able to uninstall leftover lulz version from hackmii
if /i "%HM%" EQU "*" (set DumpMii=*) & (set OHBC113=*) & (set OHBC=*)
if /i "%FWDOPTION%" EQU "on" set usbx=*
if /i "%USBGUIDE%" NEQ "Y" goto:NoUSBSETUP
if /i "%LOADER%" EQU "CFG" set usbfolder=*
if /i "%LOADER%" EQU "ALL" set usbfolder=*
if /i "%LOADER%" EQU "FLOW" set FLOW=*
if /i "%LOADER%" EQU "ALL" set FLOW=*
if /i "%LOADER%" EQU "GX" set usbgx=*
if /i "%LOADER%" EQU "ALL" set usbgx=*
set nintendont=*
set CleanRip=*
set wbm=*
set GCBM=*
set Nkit=*
:NoUSBSETUP
goto:DOWNLOADQUEUE
:notvWiiULogic
::Abstinence Logic
if /i "%AbstinenceWiz%" NEQ "Y" goto:NotAbstinenceLogic
set casper=*
if /i "%SNKFLOW%" EQU "Y" set FLOW=*
if /i "%SNKPLC%" EQU "Y" set PL=*
if /i "%FIRMSTART%" EQU "4.1" set BB1=*
if /i "%FIRMSTART%" EQU "4.0" set BB1=*
if /i "%FIRMSTART%" EQU "3.2" set BB1=*
if /i "%FIRMSTART%" EQU "3.x" set BB1=*
if /i "%FIRMSTART%" EQU "4.2" set BB2=*
if /i "%macaddress%" EQU "S" goto:skip
if /i "%EXPLOIT%" EQU "W" set Wilbrand=*
:skip
if /i "%EXPLOIT%" EQU "S" set SMASH=*
if /i "%EXPLOIT%" EQU "L" set PWNS=*
if /i "%EXPLOIT%" EQU "T" set Twi=*
if /i "%EXPLOIT%" EQU "Y" set YUGI=*
if /i "%EXPLOIT%" EQU "LB" set Bathaxx=*
if /i "%EXPLOIT%" EQU "LS" set ROTJ=*
if /i "%EXPLOIT%" EQU "TOS" set TOS=*
if /i "%EXPLOIT%" NEQ "?" goto:notallexploits
if /i "%FIRMSTART%" EQU "o" set Twi=*
set SMASH=*
if /i "%macaddress%" EQU "S" goto:skip
if /i "%FIRMSTART%" EQU "4.3" set Wilbrand=*
:skip
if /i "%REGION%" NEQ "K" set PWNS=*
if /i "%REGION%" NEQ "K" set YUGI=*
if /i "%REGION%" NEQ "K" set Bathaxx=*
if /i "%REGION%" NEQ "K" set ROTJ=*
if /i "%REGION%" NEQ "K" set TOS=*
:notallexploits
::IOS53 and mmm
if /i "%FIRMSTART%" EQU "4.3" goto:smallskip
if /i "%FIRMSTART%" EQU "4.2" goto:smallskip
set IOS53=*
::set mmm=*
set yawm=*
:smallskip
set f32=*
if /i "%secondrun%" EQU "Y" goto:DLCOUNT
set secondrun=Y
goto:guide
:NotAbstinenceLogic
set firmwarechange=yes
if /i "%FIRM%" EQU "%FIRMSTART%" set firmwarechange=no
if /i "%REGION%" EQU "U" goto:U
if /i "%REGION%" EQU "E" goto:E
if /i "%REGION%" EQU "J" goto:J
if /i "%REGION%" EQU "K" goto:K
:U
if /i "%firmwarechange%" EQU "no" goto:nofirmwarechange
if /i "%ThemeSelection%" NEQ "N" goto:skip
if /i "%FIRM%" EQU "4.3" set SM4.3U=*
if /i "%FIRM%" EQU "4.2" set SM4.2U=*
if /i "%FIRM%" EQU "4.1" set SM4.1U=*
:skip
if /i "%ThemeSelection%" NEQ "R" goto:SKIPredSM
if /i "%FIRM%" EQU "4.3" set SM4.3U-DWR=*
if /i "%FIRM%" EQU "4.2" set SM4.2U-DWR=*
if /i "%FIRM%" EQU "4.1" set SM4.1U-DWR=*
goto:SKIPSM
:SKIPredSM
if /i "%ThemeSelection%" NEQ "G" goto:SKIPgreenSM
if /i "%FIRM%" EQU "4.3" set SM4.3U-DWG=*
if /i "%FIRM%" EQU "4.2" set SM4.2U-DWG=*
if /i "%FIRM%" EQU "4.1" set SM4.1U-DWG=*
goto:SKIPSM
:SKIPgreenSM
if /i "%ThemeSelection%" NEQ "BL" goto:SKIPblueSM
if /i "%FIRM%" EQU "4.3" set SM4.3U-DWB=*
if /i "%FIRM%" EQU "4.2" set SM4.2U-DWB=*
if /i "%FIRM%" EQU "4.1" set SM4.1U-DWB=*
goto:SKIPSM
:SKIPblueSM
if /i "%ThemeSelection%" NEQ "O" goto:SKIPorangeSM
if /i "%FIRM%" EQU "4.3" set SM4.3U-DWO=*
if /i "%FIRM%" EQU "4.2" set SM4.2U-DWO=*
if /i "%FIRM%" EQU "4.1" set SM4.1U-DWO=*
goto:SKIPSM
:SKIPorangeSM
:nofirmwarechange
if /i "%ThemeSelection%" NEQ "R" goto:SKIPredSM
set csminstaller=*
if /i "%FIRM%" EQU "4.3" set DarkWii_Red_4.3U=*
if /i "%FIRM%" EQU "4.2" set DarkWii_Red_4.2U=*
if /i "%FIRM%" EQU "4.1" set DarkWii_Red_4.1U=*
:SKIPredSM
if /i "%ThemeSelection%" NEQ "G" goto:SKIPgreenSM
set csminstaller=*
if /i "%FIRM%" EQU "4.3" set DarkWii_Green_4.3U=*
if /i "%FIRM%" EQU "4.2" set DarkWii_Green_4.2U=*
if /i "%FIRM%" EQU "4.1" set DarkWii_Green_4.1U=*
:SKIPgreenSM
if /i "%ThemeSelection%" NEQ "BL" goto:SKIPBlueSM
set csminstaller=*
if /i "%FIRM%" EQU "4.3" set DarkWii_Blue_4.3U=*
if /i "%FIRM%" EQU "4.2" set DarkWii_Blue_4.2U=*
if /i "%FIRM%" EQU "4.1" set DarkWii_Blue_4.1U=*
:SKIPBlueSM
if /i "%ThemeSelection%" NEQ "O" goto:SKIPOrangeSM
set csminstaller=*
if /i "%FIRM%" EQU "4.3" set darkwii_orange_4.3U=*
if /i "%FIRM%" EQU "4.2" set darkwii_orange_4.2U=*
if /i "%FIRM%" EQU "4.1" set darkwii_orange_4.1U=*
:SKIPOrangeSM
if /i "%ThemeSelection%" NEQ "D" goto:SKIPDefSM
set csminstaller=*
if /i "%FIRM%" EQU "4.3" set A97=*
if /i "%FIRM%" EQU "4.2" set A87=*
if /i "%FIRM%" EQU "4.1" set A7b=*
:SKIPDefSM
:SKIPSM
if /i "%PIC%" EQU "Y" (set P=*) & (set HAZA=*)
if /i "%NET%" EQU "Y" set IU=*
if /i "%WEATHER%" EQU "Y" set WU=*
if /i "%NEWS%" EQU "Y" set NU=*
if /i "%SHOP%" EQU "Y" set S=*
if /i "%SPEAK%" EQU "Y" set WSU=*
goto:BUGGEDSMIOS
:E
if /i "%firmwarechange%" EQU "no" goto:nofirmwarechange
if /i "%ThemeSelection%" NEQ "N" goto:skip
if /i "%FIRM%" EQU "4.3" set SM4.3E=*
if /i "%FIRM%" EQU "4.2" set SM4.2E=*
if /i "%FIRM%" EQU "4.1" set SM4.1E=*
:skip
if /i "%ThemeSelection%" NEQ "R" goto:SKIPredSM
if /i "%FIRM%" EQU "4.3" set SM4.3E-DWR=*
if /i "%FIRM%" EQU "4.2" set SM4.2E-DWR=*
if /i "%FIRM%" EQU "4.1" set SM4.1E-DWR=*
goto:SKIPSM
:SKIPredSM
if /i "%ThemeSelection%" NEQ "G" goto:SKIPgreenSM
if /i "%FIRM%" EQU "4.3" set SM4.3E-DWG=*
if /i "%FIRM%" EQU "4.2" set SM4.2E-DWG=*
if /i "%FIRM%" EQU "4.1" set SM4.1E-DWG=*
goto:SKIPSM
:SKIPgreenSM
if /i "%ThemeSelection%" NEQ "BL" goto:SKIPblueSM
if /i "%FIRM%" EQU "4.3" set SM4.3E-DWB=*
if /i "%FIRM%" EQU "4.2" set SM4.2E-DWB=*
if /i "%FIRM%" EQU "4.1" set SM4.1E-DWB=*
goto:SKIPSM
:SKIPblueSM
if /i "%ThemeSelection%" NEQ "O" goto:SKIPorangeSM
if /i "%FIRM%" EQU "4.3" set SM4.3E-DWO=*
if /i "%FIRM%" EQU "4.2" set SM4.2E-DWO=*
if /i "%FIRM%" EQU "4.1" set SM4.1E-DWO=*
goto:SKIPSM
:SKIPorangeSM
:nofirmwarechange
if /i "%ThemeSelection%" NEQ "R" goto:SKIPredSM
set csminstaller=*
if /i "%FIRM%" EQU "4.3" set DarkWii_Red_4.3E=*
if /i "%FIRM%" EQU "4.2" set DarkWii_Red_4.2E=*
if /i "%FIRM%" EQU "4.1" set DarkWii_Red_4.1E=*
:SKIPredSM
if /i "%ThemeSelection%" NEQ "G" goto:SKIPgreenSM
set csminstaller=*
if /i "%FIRM%" EQU "4.3" set DarkWii_Green_4.3E=*
if /i "%FIRM%" EQU "4.2" set DarkWii_Green_4.2E=*
if /i "%FIRM%" EQU "4.1" set DarkWii_Green_4.1E=*
:SKIPgreenSM
if /i "%ThemeSelection%" NEQ "BL" goto:SKIPBlueSM
set csminstaller=*
if /i "%FIRM%" EQU "4.3" set DarkWii_Blue_4.3E=*
if /i "%FIRM%" EQU "4.2" set DarkWii_Blue_4.2E=*
if /i "%FIRM%" EQU "4.1" set DarkWii_Blue_4.1E=*
:SKIPBlueSM
if /i "%ThemeSelection%" NEQ "O" goto:SKIPOrangeSM
set csminstaller=*
if /i "%FIRM%" EQU "4.3" set darkwii_orange_4.3E=*
if /i "%FIRM%" EQU "4.2" set darkwii_orange_4.2E=*
if /i "%FIRM%" EQU "4.1" set darkwii_orange_4.1E=*
:SKIPOrangeSM
if /i "%ThemeSelection%" NEQ "D" goto:SKIPDefSM
set csminstaller=*
if /i "%FIRM%" EQU "4.3" set A9a=*
if /i "%FIRM%" EQU "4.2" set A8a=*
if /i "%FIRM%" EQU "4.1" set A7e=*
:SKIPDefSM
:SKIPSM
if /i "%PIC%" EQU "Y" (set P=*) & (set HAZA=*)
if /i "%NET%" EQU "Y" set IE=*
if /i "%WEATHER%" EQU "Y" set WE=*
if /i "%NEWS%" EQU "Y" set NE=*
if /i "%SHOP%" EQU "Y" set S=*
if /i "%SPEAK%" EQU "Y" set WSE=*
goto:BUGGEDSMIOS
:J
if /i "%firmwarechange%" EQU "no" goto:nofirmwarechange
if /i "%ThemeSelection%" NEQ "N" goto:skip
if /i "%FIRM%" EQU "4.3" set SM4.3J=*
if /i "%FIRM%" EQU "4.2" set SM4.2J=*
if /i "%FIRM%" EQU "4.1" set SM4.1J=*
:skip
if /i "%ThemeSelection%" NEQ "R" goto:SKIPredSM
if /i "%FIRM%" EQU "4.3" set SM4.3J-DWR=*
if /i "%FIRM%" EQU "4.2" set SM4.2J-DWR=*
if /i "%FIRM%" EQU "4.1" set SM4.1J-DWR=*
goto:SKIPSM
:SKIPredSM
if /i "%ThemeSelection%" NEQ "G" goto:SKIPgreenSM
if /i "%FIRM%" EQU "4.3" set SM4.3J-DWG=*
if /i "%FIRM%" EQU "4.2" set SM4.2J-DWG=*
if /i "%FIRM%" EQU "4.1" set SM4.1J-DWG=*
goto:SKIPSM
:SKIPgreenSM
if /i "%ThemeSelection%" NEQ "BL" goto:SKIPblueSM
if /i "%FIRM%" EQU "4.3" set SM4.3J-DWB=*
if /i "%FIRM%" EQU "4.2" set SM4.2J-DWB=*
if /i "%FIRM%" EQU "4.1" set SM4.1J-DWB=*
goto:SKIPSM
:SKIPblueSM
if /i "%ThemeSelection%" NEQ "O" goto:SKIPorangeSM
if /i "%FIRM%" EQU "4.3" set SM4.3J-DWO=*
if /i "%FIRM%" EQU "4.2" set SM4.2J-DWO=*
if /i "%FIRM%" EQU "4.1" set SM4.1J-DWO=*
goto:SKIPSM
:SKIPorangeSM
:nofirmwarechange
if /i "%ThemeSelection%" NEQ "R" goto:SKIPredSM
set csminstaller=*
if /i "%FIRM%" EQU "4.3" set DarkWii_Red_4.3J=*
if /i "%FIRM%" EQU "4.2" set DarkWii_Red_4.2J=*
if /i "%FIRM%" EQU "4.1" set DarkWii_Red_4.1J=*
:SKIPredSM
if /i "%ThemeSelection%" NEQ "G" goto:SKIPgreenSM
set csminstaller=*
if /i "%FIRM%" EQU "4.3" set DarkWii_Green_4.3J=*
if /i "%FIRM%" EQU "4.2" set DarkWii_Green_4.2J=*
if /i "%FIRM%" EQU "4.1" set DarkWii_Green_4.1J=*
:SKIPgreenSM
if /i "%ThemeSelection%" NEQ "BL" goto:SKIPBlueSM
set csminstaller=*
if /i "%FIRM%" EQU "4.3" set DarkWii_Blue_4.3J=*
if /i "%FIRM%" EQU "4.2" set DarkWii_Blue_4.2J=*
if /i "%FIRM%" EQU "4.1" set DarkWii_Blue_4.1J=*
:SKIPBlueSM
if /i "%ThemeSelection%" NEQ "O" goto:SKIPOrangeSM
set csminstaller=*
if /i "%FIRM%" EQU "4.3" set darkwii_orange_4.3J=*
if /i "%FIRM%" EQU "4.2" set darkwii_orange_4.2J=*
if /i "%FIRM%" EQU "4.1" set darkwii_orange_4.1J=*
:SKIPOrangeSM
if /i "%ThemeSelection%" NEQ "D" goto:SKIPDefSM
set csminstaller=*
if /i "%FIRM%" EQU "4.3" set A94=*
if /i "%FIRM%" EQU "4.2" set A84=*
if /i "%FIRM%" EQU "4.1" set A78=*
:SKIPDefSM
:SKIPSM
if /i "%PIC%" EQU "Y" (set P=*) & (set HAZA=*)
if /i "%NET%" EQU "Y" set IJ=*
if /i "%WEATHER%" EQU "Y" set WJ=*
if /i "%NEWS%" EQU "Y" set NJ=*
if /i "%SHOP%" EQU "Y" set S=*
if /i "%SPEAK%" EQU "Y" set WSJ=*
goto:BUGGEDSMIOS
:K
if /i "%firmwarechange%" EQU "no" goto:nofirmwarechange
if /i "%ThemeSelection%" NEQ "N" goto:skip
if /i "%FIRM%" EQU "4.3" set SM4.3K=*
if /i "%FIRM%" EQU "4.2" set SM4.2K=*
if /i "%FIRM%" EQU "4.1" set SM4.1K=*
:skip
if /i "%ThemeSelection%" NEQ "R" goto:SKIPredSM
if /i "%FIRM%" EQU "4.3" set SM4.3K-DWR=*
if /i "%FIRM%" EQU "4.2" set SM4.2K-DWR=*
if /i "%FIRM%" EQU "4.1" set SM4.1K-DWR=*
goto:SKIPSM
:SKIPredSM
if /i "%ThemeSelection%" NEQ "G" goto:SKIPgreenSM
if /i "%FIRM%" EQU "4.3" set SM4.3K-DWG=*
if /i "%FIRM%" EQU "4.2" set SM4.2K-DWG=*
if /i "%FIRM%" EQU "4.1" set SM4.1K-DWG=*
goto:SKIPSM
:SKIPgreenSM
if /i "%ThemeSelection%" NEQ "BL" goto:SKIPblueSM
if /i "%FIRM%" EQU "4.3" set SM4.3K-DWB=*
if /i "%FIRM%" EQU "4.2" set SM4.2K-DWB=*
if /i "%FIRM%" EQU "4.1" set SM4.1K-DWB=*
goto:SKIPSM
:SKIPblueSM
if /i "%ThemeSelection%" NEQ "O" goto:SKIPorangeSM
if /i "%FIRM%" EQU "4.3" set SM4.3K-DWO=*
if /i "%FIRM%" EQU "4.2" set SM4.2K-DWO=*
if /i "%FIRM%" EQU "4.1" set SM4.1K-DWO=*
goto:SKIPSM
:SKIPorangeSM
:nofirmwarechange
if /i "%ThemeSelection%" NEQ "R" goto:SKIPredSM
set csminstaller=*
if /i "%FIRM%" EQU "4.3" set DarkWii_Red_4.3K=*
if /i "%FIRM%" EQU "4.2" set DarkWii_Red_4.2K=*
if /i "%FIRM%" EQU "4.1" set DarkWii_Red_4.1K=*
:SKIPredSM
if /i "%ThemeSelection%" NEQ "G" goto:SKIPgreenSM
set csminstaller=*
if /i "%FIRM%" EQU "4.3" set DarkWii_Green_4.3K=*
if /i "%FIRM%" EQU "4.2" set DarkWii_Green_4.2K=*
if /i "%FIRM%" EQU "4.1" set DarkWii_Green_4.1K=*
:SKIPgreenSM
if /i "%ThemeSelection%" NEQ "BL" goto:SKIPBlueSM
set csminstaller=*
if /i "%FIRM%" EQU "4.3" set DarkWii_Blue_4.3K=*
if /i "%FIRM%" EQU "4.2" set DarkWii_Blue_4.2K=*
if /i "%FIRM%" EQU "4.1" set DarkWii_Blue_4.1K=*
:SKIPBlueSM
if /i "%ThemeSelection%" NEQ "O" goto:SKIPOrangeSM
set csminstaller=*
if /i "%FIRM%" EQU "4.3" set darkwii_orange_4.3K=*
if /i "%FIRM%" EQU "4.2" set darkwii_orange_4.2K=*
if /i "%FIRM%" EQU "4.1" set darkwii_orange_4.1K=*
:SKIPOrangeSM
if /i "%ThemeSelection%" NEQ "D" goto:SKIPDefSM
set csminstaller=*
if /i "%FIRM%" EQU "4.3" set A9d=*
if /i "%FIRM%" EQU "4.2" set A8d=*
if /i "%FIRM%" EQU "4.1" set A81=*
:SKIPDefSM
:SKIPSM
if /i "%PIC%" EQU "Y" (set PHOTOK=*) & (set HAZA=*)
if /i "%SHOP%" EQU "Y" set SK=*
if /i "%SPEAK%" EQU "Y" set WSK=*
:BUGGEDSMIOS
if /i "%FIRM%" EQU "%Firmstart%" goto:miniskip
if /i "%FIRM%" EQU "4.1" set IOS60P=*
if /i "%FIRM%" EQU "4.2" set IOS70K=*
if /i "%FIRM%" EQU "4.3" set IOS80K=*
:miniskip
if /i "%UpdatesIOSQ%" EQU "Y" goto:forceSMIOSs
if /i "%ExtraProtectionOPTION%" EQU "OFF" goto:skipBuggedSMIOS
if /i "%VIRGIN%" EQU "Y" goto:forceSMIOSs
:forceSMIOSs
set IOS11P60=*
set IOS20P60=*
set IOS30P60=*
set IOS40P60=*
set IOS50P=*
set IOS52P=*
set IOS60P=*
set IOS70K=*
set IOS80K=*
:skipBuggedSMIOS
::for region changing guide
if /i "%MENU1%" NEQ "RC" goto:notRC
::set mmm=*
set yawm=*
set ARC=*
set pri=*
set cIOS249[56]-d2x-v10-beta52=*
set bootmiisd=*
::IOS56 needed for v3 EULA
set IOS56=*
if /i "%REGION%" EQU "U" (set EULAU=*) & (set RSU=*)
if /i "%REGION%" EQU "E" (set EULAE=*) & (set RSE=*)
if /i "%REGION%" EQU "J" (set EULAJ=*) & (set RSJ=*) & (set IOS59=*)
if /i "%REGION%" EQU "K" (set EULAK=*) & (set RSK=*)
set KK=*
goto:DOWNLOADQUEUE
:notRC
:COMMONSETTINGS
if /i "%SHOP%" EQU "Y" set IOS56=*
if /i "%ACTIVEIOS%" EQU "off" goto:skipactiveios
if /i "%UpdatesIOSQ%" EQU "N" goto:skipactiveios
::if /i "%FIRMSTART%" EQU "4.3" goto:skipactiveios
:ACTIVEIOS
set yawm=*
set M10=*
set IOS9=*
set IOS12=*
set IOS13=*
set IOS14=*
set IOS15=*
set IOS17=*
set IOS21=*
set IOS22=*
set IOS28=*
set IOS31=*
set IOS33=*
set IOS34=*
set IOS35=*
set IOS36v3608=*
set IOS37=*
set IOS38=*
set ios41=*
set ios43=*
set ios45=*
set ios46=*
set IOS48v4124=*
set IOS53=*
set IOS55=*
set IOS56=*
set IOS57=*
set IOS58=*
::IOS59 is a J exclusive
if /i "%REGION%" EQU "J" set IOS59=*
set IOS61=*
set IOS62=*
:skipactiveios
if /i "%MIIQ%" EQU "Y" set Mii=*
if /i "%FWDOPTION%" EQU "on" (set usbx=*) & (set yawm=*)
if /i "%USBGUIDE%" NEQ "Y" goto:NoUSBSETUP
if /i "%LOADER%" EQU "CFG" set usbfolder=*
if /i "%LOADER%" EQU "ALL" set usbfolder=*
if /i "%LOADER%" EQU "FLOW" set FLOW=*
if /i "%LOADER%" EQU "ALL" set FLOW=*
if /i "%LOADER%" EQU "GX" set usbgx=*
if /i "%LOADER%" EQU "ALL" set usbgx=*
set nintendont=*
set CleanRip=*
set wbm=*
set GCBM=*
set Nkit=*
set f32=*
:NoUSBSETUP
if /i "%VIRGIN%" NEQ "Y" goto:notvirgin
:virgin
set F32=*
set HM=*
set OHBC=*
set bootmiisd=*
set IOS58=*
if /i "%FIRMSTART%" EQU "4.1" set BB1=*
if /i "%FIRMSTART%" EQU "4.0" set BB1=*
if /i "%FIRMSTART%" EQU "3.2" set BB1=*
if /i "%FIRMSTART%" EQU "3.x" set BB1=*
if /i "%FIRMSTART%" EQU "4.2" set BB2=*
if /i "%macaddress%" EQU "S" goto:skip
if /i "%EXPLOIT%" EQU "W" set Wilbrand=*
:skip
if /i "%EXPLOIT%" EQU "S" set SMASH=*
if /i "%EXPLOIT%" EQU "L" set PWNS=*
if /i "%EXPLOIT%" EQU "T" set Twi=*
if /i "%EXPLOIT%" EQU "Y" set YUGI=*
if /i "%EXPLOIT%" EQU "LB" set Bathaxx=*
if /i "%EXPLOIT%" EQU "LS" set ROTJ=*
if /i "%EXPLOIT%" EQU "TOS" set TOS=*
if /i "%EXPLOIT%" NEQ "?" goto:notallexploits
if /i "%FIRMSTART%" EQU "o" set Twi=*
if /i "%macaddress%" EQU "S" goto:skip
if /i "%FIRMSTART%" EQU "4.3" set Wilbrand=*
:skip
set SMASH=*
if /i "%REGION%" NEQ "K" set PWNS=*
if /i "%REGION%" NEQ "K" set YUGI=*
if /i "%REGION%" NEQ "K" set Bathaxx=*
if /i "%REGION%" NEQ "K" set ROTJ=*
if /i "%REGION%" NEQ "K" set TOS=*
:notallexploits
::removed IOS236 Installer and 236 all together effective 6.5.2
::set IOS236=*
::set IOS236Installer=*
::set SIP=*
::set IOS36=*
if /i "%hermesOPTION%" EQU "on" set cIOS202[60]-v5.1R=*
if /i "%hermesOPTION%" EQU "on" set cIOS222[38]-v4=*
if /i "%hermesOPTION%" EQU "on" set cIOS223[37-38]-v4=*
if /i "%hermesOPTION%" EQU "on" set cIOS224[57]-v5.1R=*
set cIOS248[38]-d2x-v10-beta52=*
set cIOS249[56]-d2x-v10-beta52=*
set cIOS250[57]-d2x-v10-beta52=*
set cIOS251[58]-d2x-v10-beta52=*
::if /i "%CMIOSOPTION%" EQU "on" set RVL-cMIOS-v65535(v10)_WiiGator_WiiPower_v0.2=*
if /i "%CMIOSOPTION%" EQU "on" set Swiss_cMIOS=*
if /i "%CMIOSOPTION%" EQU "on" set M10=
set pri=*
::set HAX=*
set yawm=*
If /i "%REGION%" NEQ "K" goto:nonkorean
If /i "%FIRMSTART%" EQU "4.3" goto:nonkorean
::set mmm=*
set yawm=*
:nonkorean
goto:DOWNLOADQUEUE
:notvirgin
::set yawm=*
if /i "%PIC%" EQU "Y" set yawm=*
if /i "%NET%" EQU "Y" set yawm=*
if /i "%WEATHER%" EQU "Y" set yawm=*
if /i "%NEWS%" EQU "Y" set yawm=*
if /i "%SHOP%" EQU "Y" set yawm=*
if /i "%SPEAK%" EQU "Y" set yawm=*
if /i "%HMInstaller%" NEQ "Y" goto:noHMInstallerforNonVirgin
set F32=*
set HM=*
set bootmiisd=*
set IOS58=*
set yawm=*
if /i "%FIRMSTART%" EQU "4.1" set BB1=*
if /i "%FIRMSTART%" EQU "4.0" set BB1=*
if /i "%FIRMSTART%" EQU "3.x" set BB1=*
if /i "%FIRMSTART%" EQU "3.2" set BB1=*
if /i "%FIRMSTART%" EQU "4.2" set BB2=*
if /i "%FIRMSTART%" EQU "o" goto:gonow
if /i "%FIRMSTART%" EQU "4.3" goto:gonow
goto:skipextra2
:gonow
::if /i "%FIRMSTART%" EQU "o" set TWI=*
::set SMASH=*
::if /i "%REGION%" NEQ "K" set PWNS=*
::if /i "%REGION%" NEQ "K" set YUGI=*
::if /i "%REGION%" NEQ "K" set Bathaxx=*
::if /i "%REGION%" NEQ "K" set ROTJ=*
::if /i "%REGION%" NEQ "K" set TOS=*
:skipextra2
:noHMInstallerforNonVirgin
if /i "%FIRM%" NEQ "%FIRMSTART%" set yawm=*
if /i "%RECCIOS%" EQU "Y" set yawm=*
if /i "%hermesOPTION%" EQU "off" goto:skipHermes
if /i "%RECCIOS%" EQU "Y" set cIOS202[60]-v5.1R=*
if /i "%RECCIOS%" EQU "Y" set cIOS222[38]-v4=*
if /i "%RECCIOS%" EQU "Y" set cIOS223[37-38]-v4=*
if /i "%RECCIOS%" EQU "Y" set cIOS224[57]-v5.1R=*
:skipHermes
if /i "%RECCIOS%" EQU "Y" set cIOS248[38]-d2x-v10-beta52=*
if /i "%RECCIOS%" EQU "Y" set cIOS249[56]-d2x-v10-beta52=*
if /i "%RECCIOS%" EQU "Y" set cIOS250[57]-d2x-v10-beta52=*
if /i "%RECCIOS%" EQU "Y" set cIOS251[58]-d2x-v10-beta52=*
if /i "%CMIOSOPTION%" EQU "off" goto:quickskip
::if /i "%RECCIOS%" EQU "Y" set RVL-cMIOS-v65535(v10)_WiiGator_WiiPower_v0.2=*
if /i "%RECCIOS%" EQU "Y" set Swiss_cMIOS=*
if /i "%RECCIOS%" EQU "Y" set M10=
:quickskip
::since yawmME can retain priloader, no need to reinstall even if a new SM is installed
::if /i "%FIRM%" NEQ "%FIRMSTART%" set pri=*
if /i "%PRIQ%" NEQ "Y" goto:DOWNLOADQUEUE
set pri=*
goto:DOWNLOADQUEUE
::...................................PICK Download Queue...............................
:PICKDOWNLOADQUEUE
if exist temp\DLnamesADV.txt del temp\DLnamesADV.txt>nul
if exist temp\DLgotosADV.txt del temp\DLgotosADV.txt>nul
if not exist temp\DownloadQueues mkdir temp\DownloadQueues
dir temp\DownloadQueues\*.bat /a:-d /b>temp\list.txt
::count # of queues
SET DLQUEUEnum=0
for /f %%a in (temp\list.txt) do set /a DLQUEUEnum+=1
set DLQUEUE="
cls
echo ModMii v%currentversion%
echo by XFlak
echo.
echo Select the Download Queue you would like to load:
echo.
if /i "%DLQUEUEnum%" NEQ "0" goto:notzero
echo No Download Queues Found
echo.
echo Before you can load a queue you have to save one using ModMii
echo Or if loading a queue a friend has shared with you, just drag
echo and drop it onto ModMii.exe or a shortcut to ModMii.
echo.
echo.
echo Note: Download Queues are saved to "temp\DownloadQueues"
echo and can be shared amongst different ModMii users.
echo.
echo You can drag and drop a download queue onto ModMii.exe
echo to load it and save a copy to "temp\DownloadQueues"
echo for future use.
echo.
echo.
echo Press any key to return to the Main Menu.
echo.
pause>nul
goto:MENU
:notzero
::list files (numbered)
FINDSTR /N . temp\list.txt>temp\list2.txt
support\sfk filter -quiet "temp\list2.txt" -rep _":"_" = "_ -lerep _.bat__ -write -yes
type temp\list2.txt
echo.
echo Note: Download Queues are saved to "temp\DownloadQueues"
echo and can be shared amongst different ModMii users.
echo.
echo You can drag and drop a download queue onto ModMii.exe
echo to load it and save a copy to "temp\DownloadQueues"
echo for future use.
echo.
echo To delete a queue enter - before its number (e.g. -1)
echo or manually delete the file from "temp\DownloadQueues"
echo.
echo B = Back
echo M = Main Menu
echo.
set /p DLQUEUE=Enter Selection Here:
set "DLQUEUE=%DLQUEUE:"=%"
if /i "%DLQUEUE%" EQU "M" goto:MENU
if /i "%DLQUEUE%" EQU "B" goto:MENU
if "%DLQUEUE%"=="" goto:badkey
set delqueue=
if "%DLQUEUE:~0,1%" EQU "-" set delqueue=y
if "%DLQUEUE:~0,1%" EQU "-" set "DLQUEUE=%DLQUEUE:~1%"
if %DLQUEUE% LSS 1 goto:badkey
if /i %DLQUEUE% GTR %DLQUEUEnum% goto:badkey
support\sfk filter -quiet "temp\list2.txt" -ls+"%DLQUEUE% = " -lsrep _"%DLQUEUE% = "__ -write -yes
set /p CurrentQueue= <temp\list2.txt
set "CurrentQueue=%CurrentQueue%.bat"
del temp\list.txt>nul
del temp\list2.txt>nul
if /i "%delqueue%" EQU "y" del "temp\DownloadQueues\%CurrentQueue%"
if /i "%delqueue%" EQU "y" goto:PICKDOWNLOADQUEUE
findStr /I /B /C:":endofqueue" "temp\DownloadQueues\%CurrentQueue%" >nul
IF ERRORLEVEL 1 (echo Not a valid download queue...) & (goto:badkey)
:forcmdlineL
::fix for old modmii queues using old version of sfk.exe
support\sfk filter -spat "temp\DownloadQueues\%CurrentQueue%" -rep _"sfk filter"_"sfk -spat filter"_ -rep _\x22\x22\x22_\x5cx22_ -write -yes>nul
call "temp\DownloadQueues\%CurrentQueue%"
set BACKB4QUEUE=CLEAR
goto:DownloadQueue
:badkey
echo You Have Entered an Incorrect Key
@ping 127.0.0.1 -n 2 -w 1000> nul
goto:PICKDOWNLOADQUEUE
::...................................Download Queue...............................
:DOWNLOADQUEUE
::auto-toggle "CheatCodes" if AccioHacks and CheatZip are both toggled
if /i "%AccioHacks%" EQU "*" if /i "%CheatZip%" EQU "*" set CheatCodes=*
::disable CheatCodes if no txtcodes queued or already exist
if /i "%CheatZip%" NEQ "*" if not exist "%DRIVE%"\txtcodes\*.txt set CheatCodes=
set settings="
if /i "%cmdlinemode%" EQU "Y" set settings=Y
if /i "%cmdguide%" EQU "G" set settings=G
set d2x-beta-rev=%d2x-bundled%
if exist support\d2x-beta\d2x-beta.bat call support\d2x-beta\d2x-beta.bat
::disable d2x bases 60/70/80 IF older than v8 beta 42, as those bases never existed for those older versions
echo "set cIOSversionNum=%d2x-beta-rev%">temp\cIOSrev.bat
support\sfk filter -spat temp\cIOSrev.bat -rep _\x22__ -rep _"-*"__ -write -yes>nul
call temp\cIOSrev.bat
del temp\cIOSrev.bat>nul
if %cIOSversionNum% GEQ 8 goto:skipdisable
set cIOS249[60]-d2x-v10-beta52=
set cIOS249[70]-d2x-v10-beta52=
set cIOS249[80]-d2x-v10-beta52=
set cIOS250[60]-d2x-v10-beta52=
set cIOS250[70]-d2x-v10-beta52=
set cIOS250[80]-d2x-v10-beta52=
:skipdisable
::disable vWii d2x downloads where not supported
if exist "Support\d2x-beta\ciosmaps_vWii.xml" goto:skipdisable
if exist "Support\d2x-beta\" (goto:disable) else (goto:skipdisable)
:disable
set cIOS248[38]-d2x-vWii=
set cIOS249[56]-d2x-vWii=
set cIOS250[57]-d2x-vWii=
set cIOS251[58]-d2x-vWii=
goto:skipdisable2
:skipdisable
::disable cIOS248[38]-d2x-vWii if not supported in ciosmaps_vWii.xml
if not exist "Support\d2x-beta\ciosmaps_vWii.xml" goto:skipdisable2
::check ciosmaps_vWii.xml for 'base ios="38"'
findStr /I /C:"base ios=\"38\"" "Support\d2x-beta\ciosmaps_vWii.xml" >nul
IF NOT ERRORLEVEL 1 goto:skipdisable2
set cIOS248[38]-d2x-vWii=
:skipdisable2
::unsupported advanced downloads from older queues (v8.0.0 or older) won't get disabled by the above and will error :(
::--------------
::d2x check for changed DL names and md5's for Advanced downloads only
if /i "%MENU1%" NEQ "L" goto:DLCOUNT
if not exist temp\DLnamesADV.txt goto:DLCOUNT
findStr "d2x" temp\DLnamesADV.txt >nul
IF ERRORLEVEL 1 goto:DLCOUNT
::get queue version, if built using 8.0.1 or higher skip all these old fixes (which may not even be needed)
support\sfk filter -spat "temp\DownloadQueues\%CurrentQueue%" -ls+"\x3A\x3AModMii v" -rep _"\x3A\x3AModMii v"__ -rep _\x20*__ >temp\QueueVersion.txt
set /p QueueVersion= <temp\QueueVersion.txt
::echo %QueueVersion%
if "%QueueVersion%"=="" set QueueVersion=0.0.1
if %QueueVersion% GEQ 8.0.1 goto:DLCOUNT
echo This queue includes Advanced d2x cIOS Downloads built with an older version of ModMii
echo Converting these to use the version of d2x enabled in ModMii's settings (%d2x-beta-rev%)
echo.
::split out default d2x cIOSs and force "8-final" (ie. set d2x-beta-rev=10-beta52)
support\sfk filter -spat "temp\DownloadQueues\%CurrentQueue%" -ls+"SET cIOS" -le+"\x3d\x2a">temp\temp.bat
support\sfk filter -spat temp\temp.bat -and+"-d2x-v" -rep _"-d2x-"*_"-d2x-v10-beta52\x3d\x2a"_ -write -yes>nul
call temp\temp.bat
FINDSTR /N . temp\DLnamesADV.txt>temp\DLnamesADVcheck.txt
support\sfk filter -quiet temp\DLnamesADVcheck.txt -+d2x -rep _cIOS*[_cIOS249[_ -rep _"Advanced Download: "__ -write -yes
set loadorgo=load4queue
::Loop through the following once for EACH line in *.txt
for /F "tokens=*" %%A in (temp\DLnamesADVcheck.txt) do call :processDLCheck %%A
goto:quickskip
:processDLCheck
set advDLCheck=%*
echo set advDLcheckNUM=%advDLCheck%>temp\advDLcheckNUM.bat
support\sfk filter -quiet temp\advDLcheckNUM.bat -rep _:*__ -write -yes
call temp\advDLcheckNUM.bat
del temp\advDLcheckNUM.bat>nul
echo %advDLCheck%>temp\advDLcheck.bat
support\sfk filter -quiet temp\advDLcheck.bat -rep _"%advDLcheckNUM%:"_"set advDLcheck="_ -write -yes
call temp\advDLcheck.bat
del temp\advDLcheck.bat>nul
call temp\AdvDL%advDLcheckNUM%.bat
set oldfullname=%name%
set oldwadname=%wadname%
set advDLCheck0=%advDLCheck%
set d2x-beta-rev=%d2x-bundled%
set advDLCheck=%advDLCheck:~0,17%%d2x-beta-rev%
if exist support\d2x-beta\d2x-beta.bat call support\d2x-beta\d2x-beta.bat
set string=%d2x-beta-rev%
set d2xVersionLength=0
:loopd2xVersionLength
if defined string (
set string=%string:~1%
set /A d2xVersionLength += 1
goto:loopd2xVersionLength
)
echo set alt-d2x-beta-rev=%advDLcheck0:~17%>temp\d2x-beta-rev.bat
support\sfk filter temp\d2x-beta-rev.bat -spat -rep _\x2d\x5b*__ -write -yes>nul
call temp\d2x-beta-rev.bat
del temp\d2x-beta-rev.bat>nul
if /i "%d2x-beta-rev%" EQU "%alt-d2x-beta-rev%" goto:EOF
if /i "%oldwadname:~-5%" EQU "-vWii" (set CurrentDLNAME=%oldwadname:~0,17%Wii) else (set CurrentDLNAME=%oldwadname:~0,17%10-beta52)
call "Support\subscripts\DB.bat"
:processDLCheck2
set slotnum=%slotcode:~7%
if "%slotnum%"=="" set slotnum=249
if /i "%oldwadname:~-5%" EQU "-vWii" (set newname=cIOS%slotnum%%basecios:~7,10%%d2x-beta-rev%-vWii) else (set newname=cIOS%slotnum%%basecios:~7,10%%d2x-beta-rev%)
::set newname=cIOS%slotnum%%basecios:~7,10%%d2x-beta-rev%
::update temp\AdvDL#.bat
support\sfk filter -quiet temp\AdvDL%advDLcheckNUM%.bat -rep _"set MD5="*_"set MD5=%MD5%"_ -rep _"set md5alt="*_"set md5alt=%md5alt%"_ -rep _"set ciosversion="*_"set ciosversion=%ciosversion%"_ -rep _"Advanced Download: "*_"Advanced Download: %newname%%versionname%"_ -rep _"set wadname="*_"set wadname=%wadname%"_ -rep _"set wadnameless="*_"set wadnameless=%newname%"_ -write -yes
::update temp\DLnamesADV.txt
support\sfk filter -quiet temp\DLnamesADV.txt -lerep _"%oldfullname% "_"Advanced Download: %newname%%versionname%"_ -write -yes
goto:EOF
:quickskip
if exist temp\DLnamesADVcheck.txt del temp\DLnamesADVcheck.txt>nul
set loadorgo=go
::---------------------
::Count how many downloads there are!
:DLCOUNT
if exist temp\DLnames.txt del temp\DLnames.txt>nul
if exist temp\DLgotos.txt del temp\DLgotos.txt>nul
::---------------CMD LINE MODE-------------
if /i "%one%" NEQ "U" goto:nocmdlineusbloadersettings
if /i "%LOADER%" EQU "CFG" set usbfolder=*
if /i "%LOADER%" EQU "ALL" set usbfolder=*
if /i "%LOADER%" EQU "FLOW" set FLOW=*
if /i "%LOADER%" EQU "ALL" set FLOW=*
if /i "%LOADER%" EQU "GX" set usbgx=*
if /i "%LOADER%" EQU "ALL" set usbgx=*
set nintendont=*
set CleanRip=*
set wbm=*
set GCBM=*
set Nkit=*
set f32=*
:nocmdlineusbloadersettings
::get PCconfig for PC Apps
set PCconfig=(Portable installation)
if /i "%PCSAVE%" EQU "Local" set PCconfig=(Local installation with shortcuts)
if /i "%PCSAVE%" NEQ "Auto" goto:skip
if /i "%Homedrive%" EQU "%ModMiiDrive%" set PCconfig=(Local installation with shortcuts)
:skip
if /i "%A01_60%" EQU "*" (echo "00000001.app from IOS60 v6174 (SNEEK)">>temp\DLnames.txt) & (echo "NUSGRABBER01_60">>temp\DLgotos.txt)
if /i "%A0c%" EQU "*" (echo "0000000c.app from MIOS v10 (DIOS MIOS)">>temp\DLnames.txt) & (echo "NUSGRABBER0c">>temp\DLgotos.txt)
if /i "%A0e%" EQU "*" (echo "0000000e.app from IOS80 v6943 (SNEEK)">>temp\DLnames.txt) & (echo "NUSGRABBER0e">>temp\DLgotos.txt)
if /i "%A0d%" EQU "*" (echo "0000000d.app from vWii IOS80 v7200 (SNEEK)">>temp\DLnames.txt) & (echo "A0d">>temp\DLgotos.txt)
if /i "%AccioHacks%" EQU "*" (echo "Accio Hacks">>temp\DLnames.txt) & (echo "AccioHacks">>temp\DLgotos.txt)
if /i "%ARC%" EQU "*" (echo "Any Region Changer ModMii Edition">>temp\DLnames.txt) & (echo "ARC">>temp\DLgotos.txt)
if /i "%Aroma%" EQU "*" (echo "Aroma">>temp\DLnames.txt) & (echo "Aroma">>temp\DLgotos.txt)
if /i "%BB1%" EQU "*" (echo "Bannerbomb v1">>temp\DLnames.txt) & (echo "Bannerbomb1">>temp\DLgotos.txt)
if /i "%BB2%" EQU "*" (echo "Bannerbomb v2">>temp\DLnames.txt) & (echo "Bannerbomb2">>temp\DLgotos.txt)
if /i "%Bathaxx%" EQU "*" (echo "Bathaxx (USA, PAL and JPN)">>temp\DLnames.txt) & (echo "Bathaxx">>temp\DLgotos.txt)
if /i "%BC%" EQU "*" (echo "BC">>temp\DLnames.txt) & (echo "BCNUS">>temp\DLgotos.txt)
if /i "%BCnand%" EQU "*" (echo "BC NAND vWii">>temp\DLnames.txt) & (echo "BCnand">>temp\DLgotos.txt)
if /i "%BCwfs%" EQU "*" (echo "BC WFS vWii">>temp\DLnames.txt) & (echo "BCwfs">>temp\DLgotos.txt)
if /i "%Bloopair%" EQU "*" (echo "Bloopair">>temp\DLnames.txt) & (echo "Bloopair">>temp\DLgotos.txt)
if /i "%bootmiisd%" EQU "*" (echo "Bootmii SD Files">>temp\DLnames.txt) & (echo "bootmiisd">>temp\DLgotos.txt)
if /i "%Casper%" EQU "*" (echo "Casper">>temp\DLnames.txt) & (echo "Casper">>temp\DLgotos.txt)
if /i "%cBC%" EQU "*" (echo "cBC-NMMv0.2a">>temp\DLnames.txt) & (echo "NMM">>temp\DLgotos.txt)
if /i "%Cemu%" EQU "*" (echo "Cemu %PCconfig%">>temp\DLnames.txt) & (echo "Cemu">>temp\DLgotos.txt)
if /i "%CheatZip%" EQU "*" (echo "Cheat Codes (txtcodes)">>temp\DLnames.txt) & (echo "CheatZip">>temp\DLgotos.txt)
if /i "%CheatCodes%" EQU "*" (echo "Copy of Cheat Codes for AccioHacks">>temp\DLnames.txt) & (echo "CheatCodes">>temp\DLgotos.txt)
if /i "%cIOS202[60]-v5.1R%" EQU "*" (echo "cIOS202[60]-v5.1R">>temp\DLnames.txt) & (echo "cIOS202[60]-v5.1R">>temp\DLgotos.txt)
if /i "%cIOS222[38]-v4%" EQU "*" (echo "cIOS222[38]-v4">>temp\DLnames.txt) & (echo "cIOS222[38]-v4">>temp\DLgotos.txt)
if /i "%cIOS222[38]-v5%" EQU "*" (echo "cIOS222[38]-v5">>temp\DLnames.txt) & (echo "cIOS222[38]-v5">>temp\DLgotos.txt)
if /i "%cIOS222[38]-v5.1R%" EQU "*" (echo "cIOS222[38]-v5.1R">>temp\DLnames.txt) & (echo "cIOS222[38]-v5.1R">>temp\DLgotos.txt)
if /i "%cIOS223[37]-v5%" EQU "*" (echo "cIOS223[37]-v5">>temp\DLnames.txt) & (echo "cIOS223[37]-v5">>temp\DLgotos.txt)
if /i "%cIOS223[37]-v5.1R%" EQU "*" (echo "cIOS223[37]-v5.1R">>temp\DLnames.txt) & (echo "cIOS223[37]-v5.1R">>temp\DLgotos.txt)
if /i "%cIOS223[37-38]-v4%" EQU "*" (echo "cIOS223[37-38]-v4">>temp\DLnames.txt) & (echo "cIOS223[37-38]-v4">>temp\DLgotos.txt)
if /i "%cIOS224[57]-v5%" EQU "*" (echo "cIOS224[57]-v5">>temp\DLnames.txt) & (echo "cIOS224[57]-v5">>temp\DLgotos.txt)
if /i "%cIOS224[57]-v5.1R%" EQU "*" (echo "cIOS224[57]-v5.1R">>temp\DLnames.txt) & (echo "cIOS224[57]-v5.1R">>temp\DLgotos.txt)
if /i "%cIOS248[38]-d2x-v10-beta52%" EQU "*" (echo "cIOS248[38]-d2x-v%d2x-beta-rev%">>temp\DLnames.txt) & (echo "cIOS248[38]-d2x-v10-beta52">>temp\DLgotos.txt)
if /i "%cIOS249[37]-d2x-v10-beta52%" EQU "*" (echo "cIOS249[37]-d2x-v%d2x-beta-rev%">>temp\DLnames.txt) & (echo "cIOS249[37]-d2x-v10-beta52">>temp\DLgotos.txt)
if /i "%cIOS249[37]-v19%" EQU "*" (echo "cIOS249[37]-v19">>temp\DLnames.txt) & (echo "cIOS249[37]-v19">>temp\DLgotos.txt)
if /i "%cIOS249[37]-v21%" EQU "*" (echo "cIOS249[37]-v21">>temp\DLnames.txt) & (echo "cIOS249[37]-v21">>temp\DLgotos.txt)
if /i "%cIOS249[38]-d2x-v10-beta52%" EQU "*" (echo "cIOS249[38]-d2x-v%d2x-beta-rev%">>temp\DLnames.txt) & (echo "cIOS249[38]-d2x-v10-beta52">>temp\DLgotos.txt)
if /i "%cIOS249[38]-v19%" EQU "*" (echo "cIOS249[38]-v19">>temp\DLnames.txt) & (echo "cIOS249[38]-v19">>temp\DLgotos.txt)
if /i "%cIOS249[38]-v20%" EQU "*" (echo "cIOS249[38]-v20">>temp\DLnames.txt) & (echo "cIOS249[38]-v20">>temp\DLgotos.txt)
if /i "%cIOS249[38]-v21%" EQU "*" (echo "cIOS249[38]-v21">>temp\DLnames.txt) & (echo "cIOS249[38]-v21">>temp\DLgotos.txt)
if /i "%cIOS249[53]-d2x-v10-beta52%" EQU "*" (echo "cIOS249[53]-d2x-v%d2x-beta-rev%">>temp\DLnames.txt) & (echo "cIOS249[53]-d2x-v10-beta52">>temp\DLgotos.txt)
if /i "%cIOS249[53]-v21%" EQU "*" (echo "cIOS249[53]-v21">>temp\DLnames.txt) & (echo "cIOS249[53]-v21">>temp\DLgotos.txt)
if /i "%cIOS249[55]-d2x-v10-beta52%" EQU "*" (echo "cIOS249[55]-d2x-v%d2x-beta-rev%">>temp\DLnames.txt) & (echo "cIOS249[55]-d2x-v10-beta52">>temp\DLgotos.txt)
if /i "%cIOS249[55]-v21%" EQU "*" (echo "cIOS249[55]-v21">>temp\DLnames.txt) & (echo "cIOS249[55]-v21">>temp\DLgotos.txt)
if /i "%cIOS249[56]-d2x-v10-beta52%" EQU "*" (echo "cIOS249[56]-d2x-v%d2x-beta-rev%">>temp\DLnames.txt) & (echo "cIOS249[56]-d2x-v10-beta52">>temp\DLgotos.txt)
if /i "%cIOS249[56]-v20%" EQU "*" (echo "cIOS249[56]-v20">>temp\DLnames.txt) & (echo "cIOS249[56]-v20">>temp\DLgotos.txt)
if /i "%cIOS249[56]-v21%" EQU "*" (echo "cIOS249[56]-v21">>temp\DLnames.txt) & (echo "cIOS249[56]-v21">>temp\DLgotos.txt)
if /i "%cIOS249[57]-d2x-v10-beta52%" EQU "*" (echo "cIOS249[57]-d2x-v%d2x-beta-rev%">>temp\DLnames.txt) & (echo "cIOS249[57]-d2x-v10-beta52">>temp\DLgotos.txt)
if /i "%cIOS249[57]-v19%" EQU "*" (echo "cIOS249[57]-v19">>temp\DLnames.txt) & (echo "cIOS249[57]-v19">>temp\DLgotos.txt)
if /i "%cIOS249[57]-v20%" EQU "*" (echo "cIOS249[57]-v20">>temp\DLnames.txt) & (echo "cIOS249[57]-v20">>temp\DLgotos.txt)
if /i "%cIOS249[57]-v21%" EQU "*" (echo "cIOS249[57]-v21">>temp\DLnames.txt) & (echo "cIOS249[57]-v21">>temp\DLgotos.txt)
if /i "%cIOS249[58]-d2x-v10-beta52%" EQU "*" (echo "cIOS249[58]-d2x-v%d2x-beta-rev%">>temp\DLnames.txt) & (echo "cIOS249[58]-d2x-v10-beta52">>temp\DLgotos.txt)
if /i "%cIOS249[58]-v21%" EQU "*" (echo "cIOS249[58]-v21">>temp\DLnames.txt) & (echo "cIOS249[58]-v21">>temp\DLgotos.txt)
if /i "%cIOS249[60]-d2x-v10-beta52%" EQU "*" (echo "cIOS249[60]-d2x-v%d2x-beta-rev%">>temp\DLnames.txt) & (echo "cIOS249[60]-d2x-v10-beta52">>temp\DLgotos.txt)
if /i "%cIOS249[70]-d2x-v10-beta52%" EQU "*" (echo "cIOS249[70]-d2x-v%d2x-beta-rev%">>temp\DLnames.txt) & (echo "cIOS249[70]-d2x-v10-beta52">>temp\DLgotos.txt)
if /i "%cIOS249[80]-d2x-v10-beta52%" EQU "*" (echo "cIOS249[80]-d2x-v%d2x-beta-rev%">>temp\DLnames.txt) & (echo "cIOS249[80]-d2x-v10-beta52">>temp\DLgotos.txt)
if /i "%cIOS249-v14%" EQU "*" (echo "cIOS249-v14">>temp\DLnames.txt) & (echo "cIOS249-v14">>temp\DLgotos.txt)
if /i "%cIOS249-v17b%" EQU "*" (echo "cIOS249-v17b">>temp\DLnames.txt) & (echo "cIOS249-v17b">>temp\DLgotos.txt)
if /i "%cIOS250[37]-d2x-v10-beta52%" EQU "*" (echo "cIOS250[37]-d2x-v%d2x-beta-rev%">>temp\DLnames.txt) & (echo "cIOS250[37]-d2x-v10-beta52">>temp\DLgotos.txt)
if /i "%cIOS250[37]-v19%" EQU "*" (echo "cIOS250[37]-v19">>temp\DLnames.txt) & (echo "cIOS250[37]-v19">>temp\DLgotos.txt)
if /i "%cIOS250[37]-v21%" EQU "*" (echo "cIOS250[37]-v21">>temp\DLnames.txt) & (echo "cIOS250[37]-v21">>temp\DLgotos.txt)
if /i "%cIOS250[38]-d2x-v10-beta52%" EQU "*" (echo "cIOS250[38]-d2x-v%d2x-beta-rev%">>temp\DLnames.txt) & (echo "cIOS250[38]-d2x-v10-beta52">>temp\DLgotos.txt)
if /i "%cIOS250[38]-v19%" EQU "*" (echo "cIOS250[38]-v19">>temp\DLnames.txt) & (echo "cIOS250[38]-v19">>temp\DLgotos.txt)
if /i "%cIOS250[38]-v20%" EQU "*" (echo "cIOS250[38]-v20">>temp\DLnames.txt) & (echo "cIOS250[38]-v20">>temp\DLgotos.txt)
if /i "%cIOS250[38]-v21%" EQU "*" (echo "cIOS250[38]-v21">>temp\DLnames.txt) & (echo "cIOS250[38]-v21">>temp\DLgotos.txt)
if /i "%cIOS250[53]-d2x-v10-beta52%" EQU "*" (echo "cIOS250[53]-d2x-v%d2x-beta-rev%">>temp\DLnames.txt) & (echo "cIOS250[53]-d2x-v10-beta52">>temp\DLgotos.txt)
if /i "%cIOS250[53]-v21%" EQU "*" (echo "cIOS250[53]-v21">>temp\DLnames.txt) & (echo "cIOS250[53]-v21">>temp\DLgotos.txt)
if /i "%cIOS250[55]-d2x-v10-beta52%" EQU "*" (echo "cIOS250[55]-d2x-v%d2x-beta-rev%">>temp\DLnames.txt) & (echo "cIOS250[55]-d2x-v10-beta52">>temp\DLgotos.txt)
if /i "%cIOS250[55]-v21%" EQU "*" (echo "cIOS250[55]-v21">>temp\DLnames.txt) & (echo "cIOS250[55]-v21">>temp\DLgotos.txt)
if /i "%cIOS250[56]-d2x-v10-beta52%" EQU "*" (echo "cIOS250[56]-d2x-v%d2x-beta-rev%">>temp\DLnames.txt) & (echo "cIOS250[56]-d2x-v10-beta52">>temp\DLgotos.txt)
if /i "%cIOS250[56]-v20%" EQU "*" (echo "cIOS250[56]-v20">>temp\DLnames.txt) & (echo "cIOS250[56]-v20">>temp\DLgotos.txt)
if /i "%cIOS250[56]-v21%" EQU "*" (echo "cIOS250[56]-v21">>temp\DLnames.txt) & (echo "cIOS250[56]-v21">>temp\DLgotos.txt)
if /i "%cIOS250[57]-d2x-v10-beta52%" EQU "*" (echo "cIOS250[57]-d2x-v%d2x-beta-rev%">>temp\DLnames.txt) & (echo "cIOS250[57]-d2x-v10-beta52">>temp\DLgotos.txt)
if /i "%cIOS250[57]-v19%" EQU "*" (echo "cIOS250[57]-v19">>temp\DLnames.txt) & (echo "cIOS250[57]-v19">>temp\DLgotos.txt)
if /i "%cIOS250[57]-v20%" EQU "*" (echo "cIOS250[57]-v20">>temp\DLnames.txt) & (echo "cIOS250[57]-v20">>temp\DLgotos.txt)
if /i "%cIOS250[57]-v21%" EQU "*" (echo "cIOS250[57]-v21">>temp\DLnames.txt) & (echo "cIOS250[57]-v21">>temp\DLgotos.txt)
if /i "%cIOS250[58]-d2x-v10-beta52%" EQU "*" (echo "cIOS250[58]-d2x-v%d2x-beta-rev%">>temp\DLnames.txt) & (echo "cIOS250[58]-d2x-v10-beta52">>temp\DLgotos.txt)
if /i "%cIOS250[58]-v21%" EQU "*" (echo "cIOS250[58]-v21">>temp\DLnames.txt) & (echo "cIOS250[58]-v21">>temp\DLgotos.txt)
if /i "%cIOS250[60]-d2x-v10-beta52%" EQU "*" (echo "cIOS250[60]-d2x-v%d2x-beta-rev%">>temp\DLnames.txt) & (echo "cIOS250[60]-d2x-v10-beta52">>temp\DLgotos.txt)
if /i "%cIOS250[70]-d2x-v10-beta52%" EQU "*" (echo "cIOS250[70]-d2x-v%d2x-beta-rev%">>temp\DLnames.txt) & (echo "cIOS250[70]-d2x-v10-beta52">>temp\DLgotos.txt)
if /i "%cIOS250[80]-d2x-v10-beta52%" EQU "*" (echo "cIOS250[80]-d2x-v%d2x-beta-rev%">>temp\DLnames.txt) & (echo "cIOS250[80]-d2x-v10-beta52">>temp\DLgotos.txt)
if /i "%cIOS248[38]-d2x-vWii%" EQU "*" (echo "cIOS248[38]-d2x-v%d2x-beta-rev%-vWii">>temp\DLnames.txt) & (echo "cIOS248[38]-d2x-vWii">>temp\DLgotos.txt)
if /i "%cIOS249[56]-d2x-vWii%" EQU "*" (echo "cIOS249[56]-d2x-v%d2x-beta-rev%-vWii">>temp\DLnames.txt) & (echo "cIOS249[56]-d2x-vWii">>temp\DLgotos.txt)
if /i "%cIOS250[57]-d2x-vWii%" EQU "*" (echo "cIOS250[57]-d2x-v%d2x-beta-rev%-vWii">>temp\DLnames.txt) & (echo "cIOS250[57]-d2x-vWii">>temp\DLgotos.txt)
if /i "%cIOS251[58]-d2x-vWii%" EQU "*" (echo "cIOS251[58]-d2x-v%d2x-beta-rev%-vWii">>temp\DLnames.txt) & (echo "cIOS251[58]-d2x-vWii">>temp\DLgotos.txt)
if /i "%cIOS250-v14%" EQU "*" (echo "cIOS250-v14">>temp\DLnames.txt) & (echo "cIOS250-v14">>temp\DLgotos.txt)
if /i "%cIOS250-v17b%" EQU "*" (echo "cIOS250-v17b">>temp\DLnames.txt) & (echo "cIOS250-v17b">>temp\DLgotos.txt)
if /i "%cIOS251[58]-d2x-v10-beta52%" EQU "*" (echo "cIOS251[58]-d2x-v%d2x-beta-rev%">>temp\DLnames.txt) & (echo "cIOS251[58]-d2x-v10-beta52">>temp\DLgotos.txt)
if /i "%vIOS61%" EQU "*" (echo "cIOS61[56]-v5918-vWii">>temp\DLnames.txt) & (echo "vIOS61">>temp\DLgotos.txt)
if /i "%CleanRip%" EQU "*" (echo "CleanRip">>temp\DLnames.txt) & (echo "CleanRip">>temp\DLgotos.txt)
if /i "%CompatTitleInstaller%" EQU "*" (echo "Compat Title Installer">>temp\DLnames.txt) & (echo "CompatTitleInstaller">>temp\DLgotos.txt)
if /i "%RVL-cmios-v4_Waninkoko_rev5%" EQU "*" (echo "cMIOS-v4 Waninkoko rev5">>temp\DLnames.txt) & (echo "RVL-cmios-v4_Waninkoko_rev5">>temp\DLgotos.txt)
if /i "%RVL-cmios-v4_WiiGator_GCBL_v0.2%" EQU "*" (echo "cMIOS-v4 WiiGator GCBL v0.2">>temp\DLnames.txt) & (echo "RVL-cmios-v4_WiiGator_GCBL_v0.2">>temp\DLgotos.txt)
if /i "%usbfolder%" EQU "*" (echo "Configurable USB-Loader">>temp\DLnames.txt) & (echo "usbfolder">>temp\DLgotos.txt)
if /i "%csminstaller%" EQU "*" (echo "csm-installer">>temp\DLnames.txt) & (echo "csminstaller">>temp\DLgotos.txt)
if /i "%CM%" EQU "*" (echo "Customize Mii %PCconfig%">>temp\DLnames.txt) & (echo "CustomizeMii">>temp\DLgotos.txt)
if /i "%DarkWii_Blue_4.1E%" EQU "*" (echo "DarkWii Blue Theme (4.1E) - %effect%">>temp\DLnames.txt) & (echo "DarkWii_Blue_4.1E">>temp\DLgotos.txt)
if /i "%DarkWii_Blue_4.1J%" EQU "*" (echo "DarkWii Blue Theme (4.1J) - %effect%">>temp\DLnames.txt) & (echo "DarkWii_Blue_4.1J">>temp\DLgotos.txt)
if /i "%DarkWii_Blue_4.1K%" EQU "*" (echo "DarkWii Blue Theme (4.1K) - %effect%">>temp\DLnames.txt) & (echo "DarkWii_Blue_4.1K">>temp\DLgotos.txt)
if /i "%DarkWii_Blue_4.1U%" EQU "*" (echo "DarkWii Blue Theme (4.1U) - %effect%">>temp\DLnames.txt) & (echo "DarkWii_Blue_4.1U">>temp\DLgotos.txt)
if /i "%DarkWii_Blue_4.2E%" EQU "*" (echo "DarkWii Blue Theme (4.2E) - %effect%">>temp\DLnames.txt) & (echo "DarkWii_Blue_4.2E">>temp\DLgotos.txt)
if /i "%DarkWii_Blue_4.2J%" EQU "*" (echo "DarkWii Blue Theme (4.2J) - %effect%">>temp\DLnames.txt) & (echo "DarkWii_Blue_4.2J">>temp\DLgotos.txt)
if /i "%DarkWii_Blue_4.2K%" EQU "*" (echo "DarkWii Blue Theme (4.2K) - %effect%">>temp\DLnames.txt) & (echo "DarkWii_Blue_4.2K">>temp\DLgotos.txt)
if /i "%DarkWii_Blue_4.2U%" EQU "*" (echo "DarkWii Blue Theme (4.2U) - %effect%">>temp\DLnames.txt) & (echo "DarkWii_Blue_4.2U">>temp\DLgotos.txt)
if /i "%DarkWii_Blue_4.3E%" EQU "*" (echo "DarkWii Blue Theme (4.3E) - %effect%">>temp\DLnames.txt) & (echo "DarkWii_Blue_4.3E">>temp\DLgotos.txt)
if /i "%DarkWii_Blue_4.3J%" EQU "*" (echo "DarkWii Blue Theme (4.3J) - %effect%">>temp\DLnames.txt) & (echo "DarkWii_Blue_4.3J">>temp\DLgotos.txt)
if /i "%DarkWii_Blue_4.3K%" EQU "*" (echo "DarkWii Blue Theme (4.3K) - %effect%">>temp\DLnames.txt) & (echo "DarkWii_Blue_4.3K">>temp\DLgotos.txt)
if /i "%DarkWii_Blue_4.3U%" EQU "*" (echo "DarkWii Blue Theme (4.3U) - %effect%">>temp\DLnames.txt) & (echo "DarkWii_Blue_4.3U">>temp\DLgotos.txt)
if /i "%DarkWii_Blue_vWiiE%" EQU "*" (echo "DarkWii Blue Theme (vWiiE) - %effect%">>temp\DLnames.txt) & (echo "DarkWii_Blue_vWiiE">>temp\DLgotos.txt)
if /i "%DarkWii_Blue_vWiiJ%" EQU "*" (echo "DarkWii Blue Theme (vWiiJ) - %effect%">>temp\DLnames.txt) & (echo "DarkWii_Blue_vWiiJ">>temp\DLgotos.txt)
if /i "%DarkWii_Blue_vWiiU%" EQU "*" (echo "DarkWii Blue Theme (vWiiU) - %effect%">>temp\DLnames.txt) & (echo "DarkWii_Blue_vWiiU">>temp\DLgotos.txt)
if /i "%DarkWii_Green_4.1E%" EQU "*" (echo "DarkWii Green Theme (4.1E) - %effect%">>temp\DLnames.txt) & (echo "DarkWii_Green_4.1E">>temp\DLgotos.txt)
if /i "%DarkWii_Green_4.1J%" EQU "*" (echo "DarkWii Green Theme (4.1J) - %effect%">>temp\DLnames.txt) & (echo "DarkWii_Green_4.1J">>temp\DLgotos.txt)
if /i "%DarkWii_Green_4.1K%" EQU "*" (echo "DarkWii Green Theme (4.1K) - %effect%">>temp\DLnames.txt) & (echo "DarkWii_Green_4.1K">>temp\DLgotos.txt)
if /i "%DarkWii_Green_4.1U%" EQU "*" (echo "DarkWii Green Theme (4.1U) - %effect%">>temp\DLnames.txt) & (echo "DarkWii_Green_4.1U">>temp\DLgotos.txt)
if /i "%DarkWii_Green_4.2E%" EQU "*" (echo "DarkWii Green Theme (4.2E) - %effect%">>temp\DLnames.txt) & (echo "DarkWii_Green_4.2E">>temp\DLgotos.txt)
if /i "%DarkWii_Green_4.2J%" EQU "*" (echo "DarkWii Green Theme (4.2J) - %effect%">>temp\DLnames.txt) & (echo "DarkWii_Green_4.2J">>temp\DLgotos.txt)
if /i "%DarkWii_Green_4.2K%" EQU "*" (echo "DarkWii Green Theme (4.2K) - %effect%">>temp\DLnames.txt) & (echo "DarkWii_Green_4.2K">>temp\DLgotos.txt)
if /i "%DarkWii_Green_4.2U%" EQU "*" (echo "DarkWii Green Theme (4.2U) - %effect%">>temp\DLnames.txt) & (echo "DarkWii_Green_4.2U">>temp\DLgotos.txt)
if /i "%DarkWii_Green_4.3E%" EQU "*" (echo "DarkWii Green Theme (4.3E) - %effect%">>temp\DLnames.txt) & (echo "DarkWii_Green_4.3E">>temp\DLgotos.txt)
if /i "%DarkWii_Green_4.3J%" EQU "*" (echo "DarkWii Green Theme (4.3J) - %effect%">>temp\DLnames.txt) & (echo "DarkWii_Green_4.3J">>temp\DLgotos.txt)
if /i "%DarkWii_Green_4.3K%" EQU "*" (echo "DarkWii Green Theme (4.3K) - %effect%">>temp\DLnames.txt) & (echo "DarkWii_Green_4.3K">>temp\DLgotos.txt)
if /i "%DarkWii_Green_4.3U%" EQU "*" (echo "DarkWii Green Theme (4.3U) - %effect%">>temp\DLnames.txt) & (echo "DarkWii_Green_4.3U">>temp\DLgotos.txt)
if /i "%DarkWii_Green_vWiiE%" EQU "*" (echo "DarkWii Green Theme (vWiiE) - %effect%">>temp\DLnames.txt) & (echo "DarkWii_Green_vWiiE">>temp\DLgotos.txt)
if /i "%DarkWii_Green_vWiiJ%" EQU "*" (echo "DarkWii Green Theme (vWiiJ) - %effect%">>temp\DLnames.txt) & (echo "DarkWii_Green_vWiiJ">>temp\DLgotos.txt)
if /i "%DarkWii_Green_vWiiU%" EQU "*" (echo "DarkWii Green Theme (vWiiU) - %effect%">>temp\DLnames.txt) & (echo "DarkWii_Green_vWiiU">>temp\DLgotos.txt)
if /i "%darkwii_orange_4.1E%" EQU "*" (echo "DarkWii Orange Theme (4.1E) - %effect%">>temp\DLnames.txt) & (echo "darkwii_orange_4.1E">>temp\DLgotos.txt)
if /i "%darkwii_orange_4.1J%" EQU "*" (echo "DarkWii Orange Theme (4.1J) - %effect%">>temp\DLnames.txt) & (echo "darkwii_orange_4.1J">>temp\DLgotos.txt)
if /i "%darkwii_orange_4.1K%" EQU "*" (echo "DarkWii Orange Theme (4.1K) - %effect%">>temp\DLnames.txt) & (echo "darkwii_orange_4.1K">>temp\DLgotos.txt)
if /i "%darkwii_orange_4.1U%" EQU "*" (echo "DarkWii Orange Theme (4.1U) - %effect%">>temp\DLnames.txt) & (echo "darkwii_orange_4.1U">>temp\DLgotos.txt)
if /i "%darkwii_orange_4.2E%" EQU "*" (echo "DarkWii Orange Theme (4.2E) - %effect%">>temp\DLnames.txt) & (echo "darkwii_orange_4.2E">>temp\DLgotos.txt)
if /i "%darkwii_orange_4.2J%" EQU "*" (echo "DarkWii Orange Theme (4.2J) - %effect%">>temp\DLnames.txt) & (echo "darkwii_orange_4.2J">>temp\DLgotos.txt)
if /i "%darkwii_orange_4.2K%" EQU "*" (echo "DarkWii Orange Theme (4.2K) - %effect%">>temp\DLnames.txt) & (echo "darkwii_orange_4.2K">>temp\DLgotos.txt)
if /i "%darkwii_orange_4.2U%" EQU "*" (echo "DarkWii Orange Theme (4.2U) - %effect%">>temp\DLnames.txt) & (echo "darkwii_orange_4.2U">>temp\DLgotos.txt)
if /i "%darkwii_orange_4.3E%" EQU "*" (echo "DarkWii Orange Theme (4.3E) - %effect%">>temp\DLnames.txt) & (echo "darkwii_orange_4.3E">>temp\DLgotos.txt)
if /i "%darkwii_orange_4.3J%" EQU "*" (echo "DarkWii Orange Theme (4.3J) - %effect%">>temp\DLnames.txt) & (echo "darkwii_orange_4.3J">>temp\DLgotos.txt)
if /i "%darkwii_orange_4.3K%" EQU "*" (echo "DarkWii Orange Theme (4.3K) - %effect%">>temp\DLnames.txt) & (echo "darkwii_orange_4.3K">>temp\DLgotos.txt)
if /i "%darkwii_orange_4.3U%" EQU "*" (echo "DarkWii Orange Theme (4.3U) - %effect%">>temp\DLnames.txt) & (echo "darkwii_orange_4.3U">>temp\DLgotos.txt)
if /i "%darkwii_orange_vWiiE%" EQU "*" (echo "DarkWii Orange Theme (vWiiE) - %effect%">>temp\DLnames.txt) & (echo "darkwii_orange_vWiiE">>temp\DLgotos.txt)
if /i "%darkwii_orange_vWiiJ%" EQU "*" (echo "DarkWii Orange Theme (vWiiJ) - %effect%">>temp\DLnames.txt) & (echo "darkwii_orange_vWiiJ">>temp\DLgotos.txt)
if /i "%darkwii_orange_vWiiU%" EQU "*" (echo "DarkWii Orange Theme (vWiiU) - %effect%">>temp\DLnames.txt) & (echo "darkwii_orange_vWiiU">>temp\DLgotos.txt)
if /i "%DarkWii_Red_4.1E%" EQU "*" (echo "DarkWii Red Theme (4.1E) - %effect%">>temp\DLnames.txt) & (echo "DarkWii_Red_4.1E">>temp\DLgotos.txt)
if /i "%DarkWii_Red_4.1J%" EQU "*" (echo "DarkWii Red Theme (4.1J) - %effect%">>temp\DLnames.txt) & (echo "DarkWii_Red_4.1J">>temp\DLgotos.txt)
if /i "%DarkWii_Red_4.1K%" EQU "*" (echo "DarkWii Red Theme (4.1K) - %effect%">>temp\DLnames.txt) & (echo "DarkWii_Red_4.1K">>temp\DLgotos.txt)
if /i "%DarkWii_Red_4.1U%" EQU "*" (echo "DarkWii Red Theme (4.1U) - %effect%">>temp\DLnames.txt) & (echo "DarkWii_Red_4.1U">>temp\DLgotos.txt)
if /i "%DarkWii_Red_4.2E%" EQU "*" (echo "DarkWii Red Theme (4.2E) - %effect%">>temp\DLnames.txt) & (echo "DarkWii_Red_4.2E">>temp\DLgotos.txt)
if /i "%DarkWii_Red_4.2J%" EQU "*" (echo "DarkWii Red Theme (4.2J) - %effect%">>temp\DLnames.txt) & (echo "DarkWii_Red_4.2J">>temp\DLgotos.txt)
if /i "%DarkWii_Red_4.2K%" EQU "*" (echo "DarkWii Red Theme (4.2K) - %effect%">>temp\DLnames.txt) & (echo "DarkWii_Red_4.2K">>temp\DLgotos.txt)
if /i "%DarkWii_Red_4.2U%" EQU "*" (echo "DarkWii Red Theme (4.2U) - %effect%">>temp\DLnames.txt) & (echo "DarkWii_Red_4.2U">>temp\DLgotos.txt)
if /i "%DarkWii_Red_4.3E%" EQU "*" (echo "DarkWii Red Theme (4.3E) - %effect%">>temp\DLnames.txt) & (echo "DarkWii_Red_4.3E">>temp\DLgotos.txt)
if /i "%DarkWii_Red_4.3J%" EQU "*" (echo "DarkWii Red Theme (4.3J) - %effect%">>temp\DLnames.txt) & (echo "DarkWii_Red_4.3J">>temp\DLgotos.txt)
if /i "%DarkWii_Red_4.3K%" EQU "*" (echo "DarkWii Red Theme (4.3K) - %effect%">>temp\DLnames.txt) & (echo "DarkWii_Red_4.3K">>temp\DLgotos.txt)
if /i "%DarkWii_Red_4.3U%" EQU "*" (echo "DarkWii Red Theme (4.3U) - %effect%">>temp\DLnames.txt) & (echo "DarkWii_Red_4.3U">>temp\DLgotos.txt)
if /i "%DarkWii_Red_vWiiE%" EQU "*" (echo "DarkWii Red Theme (vWiiE) - %effect%">>temp\DLnames.txt) & (echo "DarkWii_Red_vWiiE">>temp\DLgotos.txt)
if /i "%DarkWii_Red_vWiiJ%" EQU "*" (echo "DarkWii Red Theme (vWiiJ) - %effect%">>temp\DLnames.txt) & (echo "DarkWii_Red_vWiiJ">>temp\DLgotos.txt)
if /i "%DarkWii_Red_vWiiU%" EQU "*" (echo "DarkWii Red Theme (vWiiU) - %effect%">>temp\DLnames.txt) & (echo "DarkWii_Red_vWiiU">>temp\DLgotos.txt)
if /i "%DiosMios%" EQU "*" (echo "DIOS MIOS">>temp\DLnames.txt) & (echo "DiosMios">>temp\DLgotos.txt)
if /i "%Diskitude%" EQU "*" (echo "Diskitude %PCconfig%">>temp\DLnames.txt) & (echo "Diskitude">>temp\DLgotos.txt)
if /i "%DML%" EQU "*" (echo "DML">>temp\DLnames.txt) & (echo "DML">>temp\DLgotos.txt)
if /i "%Dolphin%" EQU "*" (echo "Dolphin (Wii Emulator) %PCconfig%">>temp\DLnames.txt) & (echo "Dolphin">>temp\DLgotos.txt)
if /i "%DumpMii%" EQU "*" (echo "Dump Mii NAND">>temp\DLnames.txt) & (echo "DumpMii">>temp\DLgotos.txt)
if /i "%EnvironmentLoader%" EQU "*" (echo "EnvironmentLoader">>temp\DLnames.txt) & (echo "EnvironmentLoader">>temp\DLgotos.txt)
if /i "%TOS%" EQU "*" (echo "Eri HaKawai (USA, PAL and JPN)">>temp\DLnames.txt) & (echo "TOS">>temp\DLgotos.txt)
if /i "%EULAJ%" EQU "*" (echo "EULA v3 (JPN)">>temp\DLnames.txt) & (echo "EULAJ">>temp\DLgotos.txt)
if /i "%EULAK%" EQU "*" (echo "EULA v3 (KOR)">>temp\DLnames.txt) & (echo "EULAK">>temp\DLgotos.txt)
if /i "%EULAE%" EQU "*" (echo "EULA v3 (PAL)">>temp\DLnames.txt) & (echo "EULAE">>temp\DLgotos.txt)
if /i "%EULAU%" EQU "*" (echo "EULA v3 (USA)">>temp\DLnames.txt) & (echo "EULAU">>temp\DLgotos.txt)
if /i "%evWii%" EQU "*" (echo "evWii">>temp\DLnames.txt) & (echo "evWii">>temp\DLgotos.txt)
if /i "%f32%" EQU "*" (echo "FAT32 GUI Formatter %PCconfig%">>temp\DLnames.txt) & (echo "F32">>temp\DLgotos.txt)
if /i "%fceugx%" EQU "*" (echo "FCEUGX (NES Emulator)">>temp\DLnames.txt) & (echo "fceugx">>temp\DLgotos.txt)
if /i "%FILEZILLA%" EQU "*" (echo "FileZilla %PCconfig%">>temp\DLnames.txt) & (echo "FILEZILLA">>temp\DLgotos.txt)
if /i "%ftpii%" EQU "*" (echo "ftpii">>temp\DLnames.txt) & (echo "ftpii">>temp\DLgotos.txt)
if /i "%FTPiiU Plugin%" EQU "*" (echo "FTPiiU Plugin">>temp\DLnames.txt) & (echo "FTPiiU Plugin">>temp\DLgotos.txt)
if /i "%GCBM%" EQU "*" (echo "GameCube Backup Manager %PCconfig%">>temp\DLnames.txt) & (echo "GCBM">>temp\DLgotos.txt)
if /i "%GiveMiiYouTube%" EQU "*" (echo "GiveMiiYouTube">>temp\DLnames.txt) & (echo "GiveMiiYouTube">>temp\DLgotos.txt)
if /i "%SDTEST%" EQU "*" (echo "H2testw (SD Card and USB Test Tool) %PCconfig%">>temp\DLnames.txt) & (echo "SDTEST">>temp\DLgotos.txt)
if /i "%HMold%" EQU "*" (echo "HackMii Installer v1.0">>temp\DLnames.txt) & (echo "HMold">>temp\DLgotos.txt)
if /i "%HM%" EQU "*" (echo "HackMii Installer v1.2">>temp\DLnames.txt) & (echo "HM">>temp\DLgotos.txt)
if /i "%HashMF%" EQU "*" (echo "HashMyFiles %PCconfig%">>temp\DLnames.txt) & (echo "HashMF">>temp\DLgotos.txt)
if /i "%HBB%" EQU "*" (echo "Homebrew Browser">>temp\DLnames.txt) & (echo "HBB">>temp\DLgotos.txt)
if /i "%hxd%" EQU "*" (echo "HxD Hex Editor %PCconfig%">>temp\DLnames.txt) & (echo "hxd">>temp\DLgotos.txt)
if /i "%pwns%" EQU "*" (echo "Indiana Pwns">>temp\DLnames.txt) & (echo "pwns">>temp\DLgotos.txt)
if /i "%Inkay%" EQU "*" (echo "Inkay for Pretendo">>temp\DLnames.txt) & (echo "Inkay">>temp\DLgotos.txt)
if /i "%IOS9%" EQU "*" (echo "IOS9 v1034">>temp\DLnames.txt) & (echo "IOS9">>temp\DLgotos.txt)
if /i "%IOS11P60%" EQU "*" (echo "IOS11v65535(ModMii-IOS60-v6174)">>temp\DLnames.txt) & (echo "IOS11P60">>temp\DLgotos.txt)
if /i "%IOS12%" EQU "*" (echo "IOS12 v526">>temp\DLnames.txt) & (echo "IOS12">>temp\DLgotos.txt)
if /i "%IOS13%" EQU "*" (echo "IOS13 v1032">>temp\DLnames.txt) & (echo "IOS13">>temp\DLgotos.txt)
if /i "%IOS14%" EQU "*" (echo "IOS14 v1032">>temp\DLnames.txt) & (echo "IOS14">>temp\DLgotos.txt)
if /i "%IOS15%" EQU "*" (echo "IOS15 v1032">>temp\DLnames.txt) & (echo "IOS15">>temp\DLgotos.txt)
if /i "%IOS17%" EQU "*" (echo "IOS17 v1032">>temp\DLnames.txt) & (echo "IOS17">>temp\DLgotos.txt)
if /i "%IOS20P60%" EQU "*" (echo "IOS20v65535(ModMii-IOS60-v6174)">>temp\DLnames.txt) & (echo "IOS20P60">>temp\DLgotos.txt)
if /i "%IOS21%" EQU "*" (echo "IOS21 v1039">>temp\DLnames.txt) & (echo "IOS21">>temp\DLgotos.txt)
if /i "%IOS22%" EQU "*" (echo "IOS22 v1294">>temp\DLnames.txt) & (echo "IOS22">>temp\DLgotos.txt)
if /i "%IOS28%" EQU "*" (echo "IOS28 v1807">>temp\DLnames.txt) & (echo "IOS28">>temp\DLgotos.txt)
if /i "%IOS30%" EQU "*" (echo "IOS30 v2576">>temp\DLnames.txt) & (echo "IOS30">>temp\DLgotos.txt)
if /i "%IOS30P60%" EQU "*" (echo "IOS30v65535(ModMii-IOS60-v6174)">>temp\DLnames.txt) & (echo "IOS30P60">>temp\DLgotos.txt)
if /i "%IOS31%" EQU "*" (echo "IOS31 v3608">>temp\DLnames.txt) & (echo "IOS31">>temp\DLgotos.txt)
if /i "%IOS33%" EQU "*" (echo "IOS33 v3608">>temp\DLnames.txt) & (echo "IOS33">>temp\DLgotos.txt)
if /i "%IOS34%" EQU "*" (echo "IOS34 v3608">>temp\DLnames.txt) & (echo "IOS34">>temp\DLgotos.txt)
if /i "%IOS35%" EQU "*" (echo "IOS35 v3608">>temp\DLnames.txt) & (echo "IOS35">>temp\DLgotos.txt)
if /i "%IOS36%" EQU "*" (echo "IOS36 v3351">>temp\DLnames.txt) & (echo "IOS36">>temp\DLgotos.txt)
if /i "%IOS36v3608%" EQU "*" (echo "IOS36 v3608">>temp\DLnames.txt) & (echo "IOS36v3608">>temp\DLgotos.txt)
if /i "%IOS37%" EQU "*" (echo "IOS37 v5663">>temp\DLnames.txt) & (echo "IOS37">>temp\DLgotos.txt)
if /i "%IOS38%" EQU "*" (echo "IOS38 v4124">>temp\DLnames.txt) & (echo "IOS38">>temp\DLgotos.txt)
if /i "%IOS40P60%" EQU "*" (echo "IOS40v65535(ModMii-IOS60-v6174)">>temp\DLnames.txt) & (echo "IOS40P60">>temp\DLgotos.txt)
if /i "%IOS41%" EQU "*" (echo "IOS41 v3607">>temp\DLnames.txt) & (echo "IOS41">>temp\DLgotos.txt)
if /i "%IOS43%" EQU "*" (echo "IOS43 v3607">>temp\DLnames.txt) & (echo "IOS43">>temp\DLgotos.txt)
if /i "%IOS45%" EQU "*" (echo "IOS45 v3607">>temp\DLnames.txt) & (echo "IOS45">>temp\DLgotos.txt)
if /i "%IOS46%" EQU "*" (echo "IOS46 v3607">>temp\DLnames.txt) & (echo "IOS46">>temp\DLgotos.txt)
if /i "%IOS48v4124%" EQU "*" (echo "IOS48 v4124">>temp\DLnames.txt) & (echo "IOS48v4124">>temp\DLgotos.txt)
if /i "%IOS50P%" EQU "*" (echo "IOS50v65535(ModMii-IOS60-v6174)">>temp\DLnames.txt) & (echo "IOS50P">>temp\DLgotos.txt)
if /i "%IOS52P%" EQU "*" (echo "IOS52v65535(ModMii-IOS60-v6174)">>temp\DLnames.txt) & (echo "IOS52P">>temp\DLgotos.txt)
if /i "%IOS53%" EQU "*" (echo "IOS53 v5663">>temp\DLnames.txt) & (echo "IOS53">>temp\DLgotos.txt)
if /i "%IOS55%" EQU "*" (echo "IOS55 v5663">>temp\DLnames.txt) & (echo "IOS55">>temp\DLgotos.txt)
if /i "%IOS56%" EQU "*" (echo "IOS56 v5662">>temp\DLnames.txt) & (echo "IOS56">>temp\DLgotos.txt)
if /i "%IOS57%" EQU "*" (echo "IOS57 v5919">>temp\DLnames.txt) & (echo "IOS57">>temp\DLgotos.txt)
if /i "%IOS58%" EQU "*" (echo "IOS58 v6176">>temp\DLnames.txt) & (echo "IOS58">>temp\DLgotos.txt)
if /i "%IOS59%" EQU "*" (echo "IOS59 v9249">>temp\DLnames.txt) & (echo "IOS59">>temp\DLgotos.txt)
if /i "%IOS60%" EQU "*" (echo "IOS60 v6174">>temp\DLnames.txt) & (echo "IOS60">>temp\DLgotos.txt)
if /i "%IOS60P%" EQU "*" (echo "IOS60v65535(ModMii-IOS60-v6174)">>temp\DLnames.txt) & (echo "IOS60P">>temp\DLgotos.txt)
if /i "%IOS61%" EQU "*" (echo "IOS61 v5662">>temp\DLnames.txt) & (echo "IOS61">>temp\DLgotos.txt)
if /i "%IOS62%" EQU "*" (echo "IOS62 v6430">>temp\DLnames.txt) & (echo "IOS62">>temp\DLgotos.txt)
if /i "%IOS70K%" EQU "*" (echo "IOS70v65535(ModMii-IOS60-v6174)">>temp\DLnames.txt) & (echo "IOS70K">>temp\DLgotos.txt)
if /i "%IOS70%" EQU "*" (echo "IOS70 v6687">>temp\DLnames.txt) & (echo "IOS70">>temp\DLgotos.txt)
if /i "%IOS80K%" EQU "*" (echo "IOS80v65535(ModMii-IOS60-v6174)">>temp\DLnames.txt) & (echo "IOS80K">>temp\DLgotos.txt)
if /i "%IOS80%" EQU "*" (echo "IOS80 v6944">>temp\DLnames.txt) & (echo "IOS80">>temp\DLgotos.txt)
if /i "%IOS236%" EQU "*" (echo "IOS236v65535(IOS36v3351[FS-ES-NP-VP])">>temp\DLnames.txt) & (echo "IOS236">>temp\DLgotos.txt)
if /i "%IOS236Installer%" EQU "*" (echo "IOS236 Installer v5 Mod">>temp\DLnames.txt) & (echo "IOS236Installer">>temp\DLgotos.txt)
if /i "%IJ%" EQU "*" (echo "JPN Internet Channel">>temp\DLnames.txt) & (echo "NET_J">>temp\DLgotos.txt)
if /i "%NJ%" EQU "*" (echo "JPN NEWS Channel">>temp\DLnames.txt) & (echo "NEWS_J">>temp\DLgotos.txt)
if /i "%WJ%" EQU "*" (echo "JPN Weather Channel">>temp\DLnames.txt) & (echo "WEATHER_J">>temp\DLgotos.txt)
if /i "%WSJ%" EQU "*" (echo "JPN Wii Speak Channel">>temp\DLnames.txt) & (echo "SPEAK_J">>temp\DLgotos.txt)
if /i "%WSK%" EQU "*" (echo "KOR Wii Speak Channel">>temp\DLnames.txt) & (echo "WSK">>temp\DLgotos.txt)
if /i "%KK%" EQU "*" (echo "KoreanKii">>temp\DLnames.txt) & (echo "KK">>temp\DLgotos.txt)
::One option "Pri" for both Priiloader and LoadPriiloader
if /i "%Pri%" EQU "*" (echo "Load Priiloader">>temp\DLnames.txt) & (echo "LoadPriiloader">>temp\DLgotos.txt)
if /i "%locked%" EQU "*" (echo "Locked Apps Folder for HBC (PASS=UDLRAB)">>temp\DLnames.txt) & (echo "locked">>temp\DLgotos.txt)
if /i "%MII%" EQU "*" (echo "MII Channel">>temp\DLnames.txt) & (echo "MII">>temp\DLgotos.txt)
if /i "%M10%" EQU "*" (echo "MIOS v10">>temp\DLnames.txt) & (echo "M10">>temp\DLgotos.txt)
if /i "%mmm%" EQU "*" (echo "Multi-Mod Manager (MMM) v13.4">>temp\DLnames.txt) & (echo "mmm">>temp\DLgotos.txt)
if /i "%MyM%" EQU "*" (echo "MyMenuifyMod">>temp\DLnames.txt) & (echo "Mym">>temp\DLgotos.txt)
if /i "%Nanddumper%" EQU "*" (echo "Nanddumper">>temp\DLnames.txt) & (echo "Nanddumper">>temp\DLgotos.txt)
if /i "%neogamma%" EQU "*" (echo "Neogamma Backup Disc Loader">>temp\DLnames.txt) & (echo "neogamma">>temp\DLgotos.txt)
if /i "%nintendont%" EQU "*" (echo "Nintendont">>temp\DLnames.txt) & (echo "Nintendont">>temp\DLgotos.txt)
if /i "%Nkit%" EQU "*" (echo "NKit Processing App %PCconfig%">>temp\DLnames.txt) & (echo "Nkit">>temp\DLgotos.txt)
if /i "%Not64%" EQU "*" (echo "Not64 (N64 Emulator)">>temp\DLnames.txt) & (echo "Not64">>temp\DLgotos.txt)
if /i "%nSwitch%" EQU "*" (echo "nSwitch">>temp\DLnames.txt) & (echo "nSwitch">>temp\DLgotos.txt)
if /i "%NUSGet%" EQU "*" (echo "NUSGet %PCconfig%">>temp\DLnames.txt) & (echo "NUSGet">>temp\DLgotos.txt)
if /i "%ohnes%" EQU "*" (echo "ohneschwanzenegger NUS NANDBuilder %PCconfig%">>temp\DLnames.txt) & (echo "ohnes">>temp\DLgotos.txt)
if /i "%OHBC113%" EQU "*" (echo "Open Homebrew Channel WAD (OHBC v1.1.3)">>temp\DLnames.txt) & (echo "OHBC113">>temp\DLgotos.txt)
if /i "%OHBC114%" EQU "*" (echo "Open Homebrew Channel WAD (OHBC v1.1.4-1)">>temp\DLnames.txt) & (echo "OHBC114">>temp\DLgotos.txt)
if /i "%OHBC%" EQU "*" (echo "Open Homebrew Channel WAD (LULZ v1.1.5)">>temp\DLnames.txt) & (echo "OHBC">>temp\DLgotos.txt)
if /i "%OSC%" EQU "*" (echo "Open Shop Channel %PCconfig%">>temp\DLnames.txt) & (echo "OSC">>temp\DLgotos.txt)
if /i "%IE%" EQU "*" (echo "PAL Internet Channel">>temp\DLnames.txt) & (echo "NET_E">>temp\DLgotos.txt)
if /i "%NE%" EQU "*" (echo "PAl NEWS Channel">>temp\DLnames.txt) & (echo "NEWS_E">>temp\DLgotos.txt)
if /i "%WE%" EQU "*" (echo "PAL Weather Channel">>temp\DLnames.txt) & (echo "WEATHER_E">>temp\DLgotos.txt)
if /i "%WSE%" EQU "*" (echo "PAL Wii Speak Channel">>temp\DLnames.txt) & (echo "SPEAK_E">>temp\DLgotos.txt)
if /i "%vWii80Installer%" EQU "*" (echo "Patched IOS80 Installer for vWii">>temp\DLnames.txt) & (echo "vWii80Installer">>temp\DLgotos.txt)
if /i "%P0%" EQU "*" (echo "Photo Channel (USA / PAL / JPN / KOR)">>temp\DLnames.txt) & (echo "PHOTO0">>temp\DLgotos.txt)
if /i "%P%" EQU "*" (echo "Photo Channel 1.1 (USA / PAL / JPN)">>temp\DLnames.txt) & (echo "PHOTO">>temp\DLgotos.txt)
if /i "%PHOTOK%" EQU "*" (echo "Photo Channel 1.1 (KOR)">>temp\DLnames.txt) & (echo "PHOTOK">>temp\DLgotos.txt)
if /i "%HAZA%" EQU "*" (echo "Photo Channel 1.1 dummy (HAZA)">>temp\DLnames.txt) & (echo "HAZA">>temp\DLgotos.txt)
if /i "%PLC%" EQU "*" (echo "postLoader Forwarder Channel">>temp\DLnames.txt) & (echo "PLChannel">>temp\DLgotos.txt)
if /i "%PL%" EQU "*" (echo "postLoader">>temp\DLnames.txt) & (echo "postLoader">>temp\DLgotos.txt)
if /i "%Pri%" EQU "*" (echo "Priiloader Installer">>temp\DLnames.txt) & (echo "Priiloader">>temp\DLgotos.txt)
if /i "%RSJ%" EQU "*" (echo "Region Select v2 (JPN)">>temp\DLnames.txt) & (echo "RSJ">>temp\DLgotos.txt)
if /i "%RSK%" EQU "*" (echo "Region Select v2 (KOR)">>temp\DLnames.txt) & (echo "RSK">>temp\DLgotos.txt)
if /i "%RSE%" EQU "*" (echo "Region Select v2 (PAL)">>temp\DLnames.txt) & (echo "RSE">>temp\DLgotos.txt)
if /i "%RSU%" EQU "*" (echo "Region Select v2 (USA)">>temp\DLnames.txt) & (echo "RSU">>temp\DLgotos.txt)
if /i "%ROTJ%" EQU "*" (echo "Return of the Jodi (USA, PAL and JPN)">>temp\DLnames.txt) & (echo "ROTJ">>temp\DLgotos.txt)
if /i "%RC24%" EQU "*" (echo "RiiConnect24 Patcher %PCconfig%">>temp\DLnames.txt) & (echo "RC24">>temp\DLgotos.txt)
if /i "%SaveMiiModWUTPort%" EQU "*" (echo "SaveMii Mod WUT Port">>temp\DLnames.txt) & (echo "SaveMiiModWUTPort">>temp\DLgotos.txt)
if /i "%SGM%" EQU "*" (echo "SaveGame Manager GX">>temp\DLnames.txt) & (echo "SGM">>temp\DLgotos.txt)
if /i "%Screenshot_WUPS%" EQU "*" (echo "Screenshot Plugin">>temp\DLnames.txt) & (echo "Screenshot_WUPS">>temp\DLgotos.txt)
if /i "%SK%" EQU "*" (echo "Shopping Channel (KOR)">>temp\DLnames.txt) & (echo "SHOP_K">>temp\DLgotos.txt)
if /i "%S%" EQU "*" (echo "Shopping Channel (USA / PAL / JPN)">>temp\DLnames.txt) & (echo "SHOP">>temp\DLgotos.txt)
if /i "%SMW%" EQU "*" (echo "ShowMiiWads %PCconfig%">>temp\DLnames.txt) & (echo "SMW">>temp\DLgotos.txt)
if /i "%SIP%" EQU "*" (echo "Simple IOS Patcher">>temp\DLnames.txt) & (echo "SIP">>temp\DLgotos.txt)
if /i "%smash%" EQU "*" (echo "Smash Stack (USA, PAL, JPN and KOR)">>temp\DLnames.txt) & (echo "smash">>temp\DLgotos.txt)
if /i "%snes9xgx%" EQU "*" (echo "SNES9xGX (SNES Emulator)">>temp\DLnames.txt) & (echo "snes9xgx">>temp\DLgotos.txt)
if /i "%STUBS%" EQU "*" (echo "Some Stub IOSs (%STUBSlist%) - Optional">>temp\DLnames.txt) & (echo "SomeStubIOSs">>temp\DLgotos.txt)
if /i "%Swiss_cMIOS%" EQU "*" (echo "Swiss cMIOS r1788">>temp\DLnames.txt) & (echo "Swiss_cMIOS">>temp\DLgotos.txt)
if /i "%S2U%" EQU "*" (echo "Switch2Uneek">>temp\DLnames.txt) & (echo "S2U">>temp\DLgotos.txt)
if /i "%syscheck%" EQU "*" (echo "SysCheck ModMii Edition">>temp\DLnames.txt) & (echo "sysCheck">>temp\DLgotos.txt)
if /i "%SCR%" EQU "*" (echo "System Channel Restorer">>temp\DLnames.txt) & (echo "SCR">>temp\DLgotos.txt)
if /i "%SM4.1E%" EQU "*" (echo "System Menu 4.1E">>temp\DLnames.txt) & (echo "SM4.1E">>temp\DLgotos.txt)
if /i "%SM4.1E-DWB%" EQU "*" (echo "System Menu 4.1E with Dark Wii Blue Theme - %effect%">>temp\DLnames.txt) & (echo "SM4.1E-DWB">>temp\DLgotos.txt)
if /i "%SM4.1E-DWG%" EQU "*" (echo "System Menu 4.1E with Dark Wii Green Theme - %effect%">>temp\DLnames.txt) & (echo "SM4.1E-DWG">>temp\DLgotos.txt)
if /i "%SM4.1E-DWO%" EQU "*" (echo "System Menu 4.1E with Dark Wii Orange Theme - %effect%">>temp\DLnames.txt) & (echo "SM4.1E-DWO">>temp\DLgotos.txt)
if /i "%SM4.1E-DWR%" EQU "*" (echo "System Menu 4.1E with Dark Wii Red Theme - %effect%">>temp\DLnames.txt) & (echo "SM4.1E-DWR">>temp\DLgotos.txt)
if /i "%SM4.1J%" EQU "*" (echo "System Menu 4.1J">>temp\DLnames.txt) & (echo "SM4.1J">>temp\DLgotos.txt)
if /i "%SM4.1J-DWB%" EQU "*" (echo "System Menu 4.1J with Dark Wii Blue Theme - %effect%">>temp\DLnames.txt) & (echo "SM4.1J-DWB">>temp\DLgotos.txt)
if /i "%SM4.1J-DWG%" EQU "*" (echo "System Menu 4.1J with Dark Wii Green Theme - %effect%">>temp\DLnames.txt) & (echo "SM4.1J-DWG">>temp\DLgotos.txt)
if /i "%SM4.1J-DWO%" EQU "*" (echo "System Menu 4.1J with Dark Wii Orange Theme - %effect%">>temp\DLnames.txt) & (echo "SM4.1J-DWO">>temp\DLgotos.txt)
if /i "%SM4.1J-DWR%" EQU "*" (echo "System Menu 4.1J with Dark Wii Red Theme - %effect%">>temp\DLnames.txt) & (echo "SM4.1J-DWR">>temp\DLgotos.txt)
if /i "%SM4.1K%" EQU "*" (echo "System Menu 4.1K">>temp\DLnames.txt) & (echo "SM4.1K">>temp\DLgotos.txt)
if /i "%SM4.1K-DWB%" EQU "*" (echo "System Menu 4.1K with Dark Wii Blue Theme - %effect%">>temp\DLnames.txt) & (echo "SM4.1K-DWB">>temp\DLgotos.txt)
if /i "%SM4.1K-DWG%" EQU "*" (echo "System Menu 4.1K with Dark Wii Green Theme - %effect%">>temp\DLnames.txt) & (echo "SM4.1K-DWG">>temp\DLgotos.txt)
if /i "%SM4.1K-DWO%" EQU "*" (echo "System Menu 4.1K with Dark Wii Orange Theme - %effect%">>temp\DLnames.txt) & (echo "SM4.1K-DWO">>temp\DLgotos.txt)
if /i "%SM4.1K-DWR%" EQU "*" (echo "System Menu 4.1K with Dark Wii Red Theme - %effect%">>temp\DLnames.txt) & (echo "SM4.1K-DWR">>temp\DLgotos.txt)
if /i "%SM4.1U%" EQU "*" (echo "System Menu 4.1U">>temp\DLnames.txt) & (echo "SM4.1U">>temp\DLgotos.txt)
if /i "%SM4.1U-DWB%" EQU "*" (echo "System Menu 4.1U with Dark Wii Blue Theme - %effect%">>temp\DLnames.txt) & (echo "SM4.1U-DWB">>temp\DLgotos.txt)
if /i "%SM4.1U-DWG%" EQU "*" (echo "System Menu 4.1U with Dark Wii Green Theme - %effect%">>temp\DLnames.txt) & (echo "SM4.1U-DWG">>temp\DLgotos.txt)
if /i "%SM4.1U-DWO%" EQU "*" (echo "System Menu 4.1U with Dark Wii Orange Theme - %effect%">>temp\DLnames.txt) & (echo "SM4.1U-DWO">>temp\DLgotos.txt)
if /i "%SM4.1U-DWR%" EQU "*" (echo "System Menu 4.1U with Dark Wii Red Theme - %effect%">>temp\DLnames.txt) & (echo "SM4.1U-DWR">>temp\DLgotos.txt)
if /i "%SM4.2E%" EQU "*" (echo "System Menu 4.2E">>temp\DLnames.txt) & (echo "SM4.2E">>temp\DLgotos.txt)
if /i "%SM4.2E-DWB%" EQU "*" (echo "System Menu 4.2E with Dark Wii Blue Theme - %effect%">>temp\DLnames.txt) & (echo "SM4.2E-DWB">>temp\DLgotos.txt)
if /i "%SM4.2E-DWG%" EQU "*" (echo "System Menu 4.2E with Dark Wii Green Theme - %effect%">>temp\DLnames.txt) & (echo "SM4.2E-DWG">>temp\DLgotos.txt)
if /i "%SM4.2E-DWO%" EQU "*" (echo "System Menu 4.2E with Dark Wii Orange Theme - %effect%">>temp\DLnames.txt) & (echo "SM4.2E-DWO">>temp\DLgotos.txt)
if /i "%SM4.2E-DWR%" EQU "*" (echo "System Menu 4.2E with Dark Wii Red Theme - %effect%">>temp\DLnames.txt) & (echo "SM4.2E-DWR">>temp\DLgotos.txt)
if /i "%SM4.2J%" EQU "*" (echo "System Menu 4.2J">>temp\DLnames.txt) & (echo "SM4.2J">>temp\DLgotos.txt)
if /i "%SM4.2J-DWB%" EQU "*" (echo "System Menu 4.2J with Dark Wii Blue Theme - %effect%">>temp\DLnames.txt) & (echo "SM4.2J-DWB">>temp\DLgotos.txt)
if /i "%SM4.2J-DWG%" EQU "*" (echo "System Menu 4.2J with Dark Wii Green Theme - %effect%">>temp\DLnames.txt) & (echo "SM4.2J-DWG">>temp\DLgotos.txt)
if /i "%SM4.2J-DWO%" EQU "*" (echo "System Menu 4.2J with Dark Wii Orange Theme - %effect%">>temp\DLnames.txt) & (echo "SM4.2J-DWO">>temp\DLgotos.txt)
if /i "%SM4.2J-DWR%" EQU "*" (echo "System Menu 4.2J with Dark Wii Red Theme - %effect%">>temp\DLnames.txt) & (echo "SM4.2J-DWR">>temp\DLgotos.txt)
if /i "%SM4.2K%" EQU "*" (echo "System Menu 4.2K">>temp\DLnames.txt) & (echo "SM4.2K">>temp\DLgotos.txt)
if /i "%SM4.2K-DWB%" EQU "*" (echo "System Menu 4.2K with Dark Wii Blue Theme - %effect%">>temp\DLnames.txt) & (echo "SM4.2K-DWB">>temp\DLgotos.txt)
if /i "%SM4.2K-DWG%" EQU "*" (echo "System Menu 4.2K with Dark Wii Green Theme - %effect%">>temp\DLnames.txt) & (echo "SM4.2K-DWG">>temp\DLgotos.txt)
if /i "%SM4.2K-DWO%" EQU "*" (echo "System Menu 4.2K with Dark Wii Orange Theme - %effect%">>temp\DLnames.txt) & (echo "SM4.2K-DWO">>temp\DLgotos.txt)
if /i "%SM4.2K-DWR%" EQU "*" (echo "System Menu 4.2K with Dark Wii Red Theme - %effect%">>temp\DLnames.txt) & (echo "SM4.2K-DWR">>temp\DLgotos.txt)
if /i "%SM4.2U%" EQU "*" (echo "System Menu 4.2U">>temp\DLnames.txt) & (echo "SM4.2U">>temp\DLgotos.txt)
if /i "%SM4.2U-DWB%" EQU "*" (echo "System Menu 4.2U with Dark Wii Blue Theme - %effect%">>temp\DLnames.txt) & (echo "SM4.2U-DWB">>temp\DLgotos.txt)
if /i "%SM4.2U-DWG%" EQU "*" (echo "System Menu 4.2U with Dark Wii Green Theme - %effect%">>temp\DLnames.txt) & (echo "SM4.2U-DWG">>temp\DLgotos.txt)
if /i "%SM4.2U-DWO%" EQU "*" (echo "System Menu 4.2U with Dark Wii Orange Theme - %effect%">>temp\DLnames.txt) & (echo "SM4.2U-DWO">>temp\DLgotos.txt)
if /i "%SM4.2U-DWR%" EQU "*" (echo "System Menu 4.2U with Dark Wii Red Theme - %effect%">>temp\DLnames.txt) & (echo "SM4.2U-DWR">>temp\DLgotos.txt)
if /i "%SM4.3E%" EQU "*" (echo "System Menu 4.3E">>temp\DLnames.txt) & (echo "SM4.3E">>temp\DLgotos.txt)
if /i "%SM4.3E-DWB%" EQU "*" (echo "System Menu 4.3E with Dark Wii Blue Theme - %effect%">>temp\DLnames.txt) & (echo "SM4.3E-DWB">>temp\DLgotos.txt)
if /i "%SM4.3E-DWG%" EQU "*" (echo "System Menu 4.3E with Dark Wii Green Theme - %effect%">>temp\DLnames.txt) & (echo "SM4.3E-DWG">>temp\DLgotos.txt)
if /i "%SM4.3E-DWO%" EQU "*" (echo "System Menu 4.3E with Dark Wii Orange Theme - %effect%">>temp\DLnames.txt) & (echo "SM4.3E-DWO">>temp\DLgotos.txt)
if /i "%SM4.3E-DWR%" EQU "*" (echo "System Menu 4.3E with Dark Wii Red Theme - %effect%">>temp\DLnames.txt) & (echo "SM4.3E-DWR">>temp\DLgotos.txt)
if /i "%vSM4.3E%" EQU "*" (echo "System Menu 4.3E vWii (5.2.0)">>temp\DLnames.txt) & (echo "vSM4.3E">>temp\DLgotos.txt)
if /i "%SM4.3J%" EQU "*" (echo "System Menu 4.3J">>temp\DLnames.txt) & (echo "SM4.3J">>temp\DLgotos.txt)
if /i "%SM4.3J-DWB%" EQU "*" (echo "System Menu 4.3J with Dark Wii Blue Theme - %effect%">>temp\DLnames.txt) & (echo "SM4.3J-DWB">>temp\DLgotos.txt)
if /i "%SM4.3J-DWG%" EQU "*" (echo "System Menu 4.3J with Dark Wii Green Theme - %effect%">>temp\DLnames.txt) & (echo "SM4.3J-DWG">>temp\DLgotos.txt)
if /i "%SM4.3J-DWO%" EQU "*" (echo "System Menu 4.3J with Dark Wii Orange Theme - %effect%">>temp\DLnames.txt) & (echo "SM4.3J-DWO">>temp\DLgotos.txt)
if /i "%SM4.3J-DWR%" EQU "*" (echo "System Menu 4.3J with Dark Wii Red Theme - %effect%">>temp\DLnames.txt) & (echo "SM4.3J-DWR">>temp\DLgotos.txt)
if /i "%vSM4.3J%" EQU "*" (echo "System Menu 4.3J vWii (5.2.0)">>temp\DLnames.txt) & (echo "vSM4.3J">>temp\DLgotos.txt)
if /i "%SM4.3K%" EQU "*" (echo "System Menu 4.3K">>temp\DLnames.txt) & (echo "SM4.3K">>temp\DLgotos.txt)
if /i "%SM4.3K-DWB%" EQU "*" (echo "System Menu 4.3K with Dark Wii Blue Theme - %effect%">>temp\DLnames.txt) & (echo "SM4.3K-DWB">>temp\DLgotos.txt)
if /i "%SM4.3K-DWG%" EQU "*" (echo "System Menu 4.3K with Dark Wii Green Theme - %effect%">>temp\DLnames.txt) & (echo "SM4.3K-DWG">>temp\DLgotos.txt)
if /i "%SM4.3K-DWO%" EQU "*" (echo "System Menu 4.3K with Dark Wii Orange Theme - %effect%">>temp\DLnames.txt) & (echo "SM4.3K-DWO">>temp\DLgotos.txt)
if /i "%SM4.3K-DWR%" EQU "*" (echo "System Menu 4.3K with Dark Wii Red Theme - %effect%">>temp\DLnames.txt) & (echo "SM4.3K-DWR">>temp\DLgotos.txt)
if /i "%SM4.3U%" EQU "*" (echo "System Menu 4.3U">>temp\DLnames.txt) & (echo "SM4.3U">>temp\DLgotos.txt)
if /i "%SM4.3U-DWB%" EQU "*" (echo "System Menu 4.3U with Dark Wii Blue Theme - %effect%">>temp\DLnames.txt) & (echo "SM4.3U-DWB">>temp\DLgotos.txt)
if /i "%SM4.3U-DWG%" EQU "*" (echo "System Menu 4.3U with Dark Wii Green Theme - %effect%">>temp\DLnames.txt) & (echo "SM4.3U-DWG">>temp\DLgotos.txt)
if /i "%SM4.3U-DWO%" EQU "*" (echo "System Menu 4.3U with Dark Wii Orange Theme - %effect%">>temp\DLnames.txt) & (echo "SM4.3U-DWO">>temp\DLgotos.txt)
if /i "%SM4.3U-DWR%" EQU "*" (echo "System Menu 4.3U with Dark Wii Red Theme - %effect%">>temp\DLnames.txt) & (echo "SM4.3U-DWR">>temp\DLgotos.txt)
if /i "%vSM4.3U%" EQU "*" (echo "System Menu 4.3U vWii (5.2.0)">>temp\DLnames.txt) & (echo "vSM4.3U">>temp\DLgotos.txt)
if /i "%A78%" EQU "*" (echo "Theme content from System Menu 4.1J (00000078.app)">>temp\DLnames.txt) & (echo "NUSGRABBER78">>temp\DLgotos.txt)
if /i "%A7b%" EQU "*" (echo "Theme content from System Menu 4.1U (0000007b.app)">>temp\DLnames.txt) & (echo "NUSGRABBER7b">>temp\DLgotos.txt)
if /i "%A7e%" EQU "*" (echo "Theme content from System Menu 4.1E (0000007e.app)">>temp\DLnames.txt) & (echo "NUSGRABBER7e">>temp\DLgotos.txt)
if /i "%A81%" EQU "*" (echo "Theme content from System Menu 4.1K (00000081.app)">>temp\DLnames.txt) & (echo "NUSGRABBER81">>temp\DLgotos.txt)
if /i "%A84%" EQU "*" (echo "Theme content from System Menu 4.2J (00000084.app)">>temp\DLnames.txt) & (echo "NUSGRABBER84">>temp\DLgotos.txt)
if /i "%A87%" EQU "*" (echo "Theme content from System Menu 4.2U (00000087.app)">>temp\DLnames.txt) & (echo "NUSGRABBER87">>temp\DLgotos.txt)
if /i "%A8a%" EQU "*" (echo "Theme content from System Menu 4.2E (0000008a.app)">>temp\DLnames.txt) & (echo "NUSGRABBER8a">>temp\DLgotos.txt)
if /i "%A8d%" EQU "*" (echo "Theme content from System Menu 4.2K (0000008d.app)">>temp\DLnames.txt) & (echo "NUSGRABBER8d">>temp\DLgotos.txt)
if /i "%A94%" EQU "*" (echo "Theme content from System Menu 4.3J (00000094.app)">>temp\DLnames.txt) & (echo "NUSGRABBER94">>temp\DLgotos.txt)
if /i "%A97%" EQU "*" (echo "Theme content from System Menu 4.3U (00000097.app)">>temp\DLnames.txt) & (echo "NUSGRABBER97">>temp\DLgotos.txt)
if /i "%A9a%" EQU "*" (echo "Theme content from System Menu 4.3E (0000009a.app)">>temp\DLnames.txt) & (echo "NUSGRABBER9a">>temp\DLgotos.txt)
if /i "%A9d%" EQU "*" (echo "Theme content from System Menu 4.3K (0000009d.app)">>temp\DLnames.txt) & (echo "NUSGRABBER9d">>temp\DLgotos.txt)
if /i "%A1c%" EQU "*" (echo "Theme content from vWii System Menu 4.3J (0000001c.app)">>temp\DLnames.txt) & (echo "A1c">>temp\DLgotos.txt)
if /i "%A1f%" EQU "*" (echo "Theme content from vWii System Menu 4.3U (0000001f.app)">>temp\DLnames.txt) & (echo "A1f">>temp\DLgotos.txt)
if /i "%A22%" EQU "*" (echo "Theme content from vWii System Menu 4.3E (00000022.app)">>temp\DLnames.txt) & (echo "A22">>temp\DLgotos.txt)
if /i "%ThemeMiiMod%" EQU "*" (echo "ThemeMii Mod %PCconfig%">>temp\DLnames.txt) & (echo "ThemeMiiMod">>temp\DLgotos.txt)
if /i "%Tiramisu%" EQU "*" (echo "Tiramisu">>temp\DLnames.txt) & (echo "Tiramisu">>temp\DLgotos.txt)
if /i "%Twi2%" EQU "*" (echo "Twilight Hack v0.1 Beta2 (3.4: USA, PAL and JPN)">>temp\DLnames.txt) & (echo "Twi2">>temp\DLgotos.txt)
if /i "%Twi%" EQU "*" (echo "Twilight Hack v0.1 Beta1 (under 3.4: USA, PAL and JPN)">>temp\DLnames.txt) & (echo "Twi">>temp\DLgotos.txt)
if /i "%IU%" EQU "*" (echo "USA Internet Channel">>temp\DLnames.txt) & (echo "NET_U">>temp\DLgotos.txt)
if /i "%NU%" EQU "*" (echo "USA NEWS Channel">>temp\DLnames.txt) & (echo "NEWS_U">>temp\DLgotos.txt)
if /i "%WU%" EQU "*" (echo "USA Weather Channel">>temp\DLnames.txt) & (echo "WEATHER_U">>temp\DLgotos.txt)
if /i "%WSU%" EQU "*" (echo "USA Wii Speak Channel">>temp\DLnames.txt) & (echo "SPEAK_U">>temp\DLgotos.txt)
if /i "%usbgx%" EQU "*" (echo "USB Loader GX">>temp\DLnames.txt) & (echo "usbgx">>temp\DLgotos.txt)
if /i "%USBX%" EQU "*" (echo "USB-Loader Forwarder Channel\dol">>temp\DLnames.txt) & (echo "USBX">>temp\DLgotos.txt)
if /i "%UStealth%" EQU "*" (echo "UStealth %PCconfig%">>temp\DLnames.txt) & (echo "UStealth">>temp\DLgotos.txt)
if /i "%UWUVCI%" EQU "*" (echo "Ultimate Wii U VC Injectors (UWUVCI) %PCconfig%">>temp\DLnames.txt) & (echo "UWUVCI">>temp\DLgotos.txt)
if /i "%vIOS9%" EQU "*" (echo "vIOS9 v1290 vWii">>temp\DLnames.txt) & (echo "vIOS9">>temp\DLgotos.txt)
if /i "%vIOS12%" EQU "*" (echo "vIOS12 v782 vWii">>temp\DLnames.txt) & (echo "vIOS12">>temp\DLgotos.txt)
if /i "%vIOS13%" EQU "*" (echo "vIOS13 v1288 vWii">>temp\DLnames.txt) & (echo "vIOS13">>temp\DLgotos.txt)
if /i "%vIOS14%" EQU "*" (echo "vIOS14 v1288 vWii">>temp\DLnames.txt) & (echo "vIOS14">>temp\DLgotos.txt)
if /i "%vIOS15%" EQU "*" (echo "vIOS15 v1288 vWii">>temp\DLnames.txt) & (echo "vIOS15">>temp\DLgotos.txt)
if /i "%vIOS17%" EQU "*" (echo "vIOS17 v1288 vWii">>temp\DLnames.txt) & (echo "vIOS17">>temp\DLgotos.txt)
if /i "%vIOS21%" EQU "*" (echo "vIOS21 v1295 vWii">>temp\DLnames.txt) & (echo "vIOS21">>temp\DLgotos.txt)
if /i "%vIOS22%" EQU "*" (echo "vIOS22 v1550 vWii">>temp\DLnames.txt) & (echo "vIOS22">>temp\DLgotos.txt)
if /i "%vIOS28%" EQU "*" (echo "vIOS28 v2063 vWii">>temp\DLnames.txt) & (echo "vIOS28">>temp\DLgotos.txt)
if /i "%vIOS31%" EQU "*" (echo "vIOS31 v3864 vWii">>temp\DLnames.txt) & (echo "vIOS31">>temp\DLgotos.txt)
if /i "%vIOS33%" EQU "*" (echo "vIOS33 v3864 vWii">>temp\DLnames.txt) & (echo "vIOS33">>temp\DLgotos.txt)
if /i "%vIOS34%" EQU "*" (echo "vIOS34 v3864 vWii">>temp\DLnames.txt) & (echo "vIOS34">>temp\DLgotos.txt)
if /i "%vIOS35%" EQU "*" (echo "vIOS35 v3864 vWii">>temp\DLnames.txt) & (echo "vIOS35">>temp\DLgotos.txt)
if /i "%vIOS36%" EQU "*" (echo "vIOS36 v3864 vWii">>temp\DLnames.txt) & (echo "vIOS36">>temp\DLgotos.txt)
if /i "%vIOS37%" EQU "*" (echo "vIOS37 v5919 vWii">>temp\DLnames.txt) & (echo "vIOS37">>temp\DLgotos.txt)
if /i "%vIOS38%" EQU "*" (echo "vIOS38 v4380 vWii">>temp\DLnames.txt) & (echo "vIOS38">>temp\DLgotos.txt)
if /i "%vIOS41%" EQU "*" (echo "vIOS41 v3863 vWii">>temp\DLnames.txt) & (echo "vIOS41">>temp\DLgotos.txt)
if /i "%vIOS43%" EQU "*" (echo "vIOS43 v3863 vWii">>temp\DLnames.txt) & (echo "vIOS43">>temp\DLgotos.txt)
if /i "%vIOS45%" EQU "*" (echo "vIOS45 v3863 vWii">>temp\DLnames.txt) & (echo "vIOS45">>temp\DLgotos.txt)
if /i "%vIOS46%" EQU "*" (echo "vIOS46 v3863 vWii">>temp\DLnames.txt) & (echo "vIOS46">>temp\DLgotos.txt)
if /i "%vIOS48%" EQU "*" (echo "vIOS48 v4380 vWii">>temp\DLnames.txt) & (echo "vIOS48">>temp\DLgotos.txt)
if /i "%vIOS53%" EQU "*" (echo "vIOS53 v5919 vWii">>temp\DLnames.txt) & (echo "vIOS53">>temp\DLgotos.txt)
if /i "%vIOS55%" EQU "*" (echo "vIOS55 v5919 vWii">>temp\DLnames.txt) & (echo "vIOS55">>temp\DLgotos.txt)
if /i "%vIOS56%" EQU "*" (echo "vIOS56 v5918 vWii">>temp\DLnames.txt) & (echo "vIOS56">>temp\DLgotos.txt)
if /i "%vIOS57%" EQU "*" (echo "vIOS57 v6175 vWii">>temp\DLnames.txt) & (echo "vIOS57">>temp\DLgotos.txt)
if /i "%vIOS58%" EQU "*" (echo "vIOS58 v6432 vWii">>temp\DLnames.txt) & (echo "vIOS58">>temp\DLgotos.txt)
if /i "%vIOS59%" EQU "*" (echo "vIOS59 v9249 vWii">>temp\DLnames.txt) & (echo "vIOS59">>temp\DLgotos.txt)
if /i "%vIOS62%" EQU "*" (echo "vIOS62 v6942 vWii">>temp\DLnames.txt) & (echo "vIOS62">>temp\DLgotos.txt)
if /i "%vIOS80%" EQU "*" (echo "vIOS80 v7200 vWii">>temp\DLnames.txt) & (echo "vIOS80">>temp\DLgotos.txt)
if /i "%vIOS80P%" EQU "*" (echo "vIOS80v7200[FS-ES-NP-VP]-vWii">>temp\DLnames.txt) & (echo "vIOS80P">>temp\DLgotos.txt)
if /i "%vbagx%" EQU "*" (echo "Visual Boy Advance GX (GB/GBA Emulator)">>temp\DLnames.txt) & (echo "vbagx">>temp\DLgotos.txt)
if /i "%vRSJ%" EQU "*" (echo "vWii Region Select v2 (JPN)">>temp\DLnames.txt) & (echo "vRSJ">>temp\DLgotos.txt)
if /i "%vRSE%" EQU "*" (echo "vWii Region Select v2 (PAL)">>temp\DLnames.txt) & (echo "vRSE">>temp\DLgotos.txt)
if /i "%vRSU%" EQU "*" (echo "vWii Region Select v2 (USA)">>temp\DLnames.txt) & (echo "vRSU">>temp\DLgotos.txt)
if /i "%wbm%" EQU "*" (echo "Wii Backup Manager %PCconfig%">>temp\DLnames.txt) & (echo "WBM">>temp\DLgotos.txt)
if /i "%WiiGSC%" EQU "*" (echo "Wii Game Shortcut Creator %PCconfig%">>temp\DLnames.txt) & (echo "WiiGSC">>temp\DLgotos.txt)
if /i "%WII64%" EQU "*" (echo "Wii64 (N64 Emulator)">>temp\DLnames.txt) & (echo "WII64">>temp\DLgotos.txt)
if /i "%FLOW%" EQU "*" (echo "WiiFlow">>temp\DLnames.txt) & (echo "FLOW">>temp\DLgotos.txt)
if /i "%FLOWF%" EQU "*" (echo "WiiFlow Forwarder Channel\dol">>temp\DLnames.txt) & (echo "FLOWF">>temp\DLgotos.txt)
if /i "%RVL-cMIOS-v65535(v10)_WiiGator_WiiPower_v0.2%" EQU "*" (echo "WiiGator+WiiPower cMIOS-v65535(v10)">>temp\DLnames.txt) & (echo "RVL-cMIOS-v65535(v10)_WiiGator_WiiPower_v0.2">>temp\DLgotos.txt)
if /i "%WiiLink%" EQU "*" (echo "WiiLink Patcher %PCconfig%">>temp\DLnames.txt) & (echo "WiiLink">>temp\DLgotos.txt)
if /i "%Wiiload Plugin%" EQU "*" (echo "Wiiload Plugin">>temp\DLnames.txt) & (echo "Wiiload Plugin">>temp\DLgotos.txt)
if /i "%WiiMC%" EQU "*" (echo "WiiMC-SS (Media Player)">>temp\DLnames.txt) & (echo "WIIMC">>temp\DLgotos.txt)
if /i "%WIISX%" EQU "*" (echo "WiiSXRX (Playstation 1 Emulator)">>temp\DLnames.txt) & (echo "WIISX">>temp\DLgotos.txt)
if /i "%AccountSwap%" EQU "*" (echo "Wii U Account Swap">>temp\DLnames.txt) & (echo "AccountSwap">>temp\DLgotos.txt)
if /i "%wudd%" EQU "*" (echo "WiiU Disc Dumper">>temp\DLnames.txt) & (echo "wudd">>temp\DLgotos.txt)
if /i "%appstore%" EQU "*" (echo "WiiU Homebrew App Store">>temp\DLnames.txt) & (echo "appstore">>temp\DLgotos.txt)
if /i "%WiiUIdent%" EQU "*" (echo "WiiUIdent">>temp\DLnames.txt) & (echo "WiiUIdent">>temp\DLgotos.txt)
if /i "%WiiVCLaunch%" EQU "*" (echo "WiiVCLaunch">>temp\DLnames.txt) & (echo "WiiVCLaunch">>temp\DLgotos.txt)
if /i "%WIIX%" EQU "*" (echo "WiiXplorer">>temp\DLnames.txt) & (echo "WIIX">>temp\DLgotos.txt)
if /i "%Wilbrand%" EQU "*" (echo "Wilbrand - 4.3%REGION% - MAC:%macaddress%">>temp\DLnames.txt) & (echo "Wilbrand">>temp\DLgotos.txt)
if /i "%wup_installer_gx2_wuhb%" EQU "*" (echo "WUP Installer GX2">>temp\DLnames.txt) & (echo "wup_installer_gx2_wuhb">>temp\DLgotos.txt)
if /i "%v43DB%" EQU "*" (echo "ww-43db-patcher">>temp\DLnames.txt) & (echo "v43DB">>temp\DLgotos.txt)
if /i "%yawm%" EQU "*" (echo "Yet Another Wad Manager ModMii Edition">>temp\DLnames.txt) & (echo "yawm">>temp\DLgotos.txt)
if /i "%YUGI%" EQU "*" (echo "YU-GI-OWNED (USA, PAL and JPN)">>temp\DLnames.txt) & (echo "YUGI">>temp\DLgotos.txt)
if /i "%OSClib%" EQU "*" (echo "OSC Complete Wii App Library">>temp\DLnames.txt) & (echo "OSClib">>temp\DLgotos.txt)
if /i "%HBASlib%" EQU "*" (echo "HBAS Complete WiiU App Library">>temp\DLnames.txt) & (echo "HBASlib">>temp\DLgotos.txt)
if exist temp\DLnames.txt support\sfk -spat filter -quiet "temp\DLnames.txt" -rep _\x22__ -write -yes
if exist temp\DLgotos.txt support\sfk -spat filter -quiet "temp\DLgotos.txt" -rep _\x22__ -write -yes
if not exist temp\DLGotosADV.txt goto:quickskip
::Loop through the following once for EACH line in *.txt
for /F "tokens=*" %%A in (temp\DLGotosADV.txt) do call :processDLGotosADV %%A
goto:quickskip
:processDLGotosADV
echo %*>>temp\DLgotos.txt
goto:EOF
:quickskip
if not exist temp\DLnamesADV.txt goto:quickskip
::Loop through the following once for EACH line in *.txt
for /F "tokens=*" %%A in (temp\DLnamesADV.txt) do call :processDLnamesADV %%A
goto:quickskip
:processDLnamesADV
echo %*>>temp\DLnames.txt
goto:EOF
:quickskip
if exist "temp\DLgotos.txt" copy /y "temp\DLgotos.txt" "temp\DLgotos-copy.txt">nul
::count # of lines
SET DLTOTAL=0
if exist temp\DLnames.txt for /f %%a in (temp\DLnames.txt) do set /a DLTOTAL+=1
if /i "%MENU1%" EQU "S" goto:DLSETTINGS
if /i "%MENUREAL%" EQU "S" goto:DLSETTINGS
if /i "%MENU1%" EQU "FC" goto:DLSETTINGS
::SysCheck Updater - handles when no downloads were marked for installation
if /i "%MENU1%" NEQ "SU" goto:miniskip
if /i "%DLTOTAL%" NEQ "0" goto:miniskip
echo.
echo According to your SysCheck log your Wii's softmods are up to date.
echo.
@ping 127.0.0.1 -n 5 -w 1000> nul
if /i "%cmdlinemode%" EQU "Y" exit
goto:sysCheckName
:miniskip
::---------------CMD LINE MODE-------------
if /i "%cmdlinemodeswitchoff%" EQU "Y" (set cmdlinemode=) & (set one=) & (set two=)
if /i "%cmdlinemode%" EQU "Y" goto:DLSettings
if /i "%MENU1%" NEQ "SU" cls
if /i "%MENU1%" NEQ "SU" echo ModMii v%currentversion%
if /i "%MENU1%" NEQ "SU" echo by XFlak
echo.
if /i "%MENU1%" EQU "H" echo HackMii Solutions
if /i "%MENU1%" EQU "H" echo.
::-----------DL QUEUE SETTINGS---------
if /i "%MENU1%" NEQ "L" goto:skiploadDLcue
findStr /I /C:"Set ROOTSAVE=off" "support\settings.bat" >nul
if not ERRORLEVEL 1 (set ROOTSAVEREAL=off) else (set ROOTSAVEREAL=on)
::findStr /I /C:"Set OPTION1=off" "support\settings.bat" >nul
::if not ERRORLEVEL 1 (set OPTION1REAL=off) else (set OPTION1REAL=on)
if /i "%ROOTSAVE%" EQU "%ROOTSAVEREAL%" (set matchrs=Green) else (set matchrs=Red)
::if /i "%OPTION1%" EQU "%OPTION1REAL%" (set match1=Green) else (set match1=Red)
echo.
echo Download Queue Loaded:
echo.
echo %CurrentQueue:~0,-4%
echo.
echo.
support\sfk echo -spat \x20 \x20 \x20 \x20 \x20 \x20 \x20 \x20 \x20 \x20 Queue Options appear [%redtext%]Red [def]when they differ from
support\sfk echo -spat \x20 \x20 \x20 \x20 \x20 \x20 \x20 \x20 \x20 \x20 your saved settings and [%greentext%]Green [def]if they match
echo.
if /i "%ROOTSAVE%" EQU "ON" support\sfk echo -spat \x20 \x20 [%matchrs%]Root Save: Save IOSs\MIOSs to Root instead of WAD Folder (Enabled)
if /i "%ROOTSAVE%" EQU "OFF" support\sfk echo -spat \x20 \x20 [%matchrs%]Root Save: Save IOSs\MIOSs to Root instead of WAD Folder (Disabled)
echo * Useful for Wii Apps that require IOSs\MIOSs saved to Root
echo.
::if /i "%OPTION1%" EQU "OFF" support\sfk echo -spat \x20 \x20 [%match1%]Do not Keep 00000001 Folder for IOSs\MIOSs\SMs etc
::if /i "%OPTION1%" EQU "OFF" echo * Folder sometimes required for offline usage of a few Wii Apps
::if /i "%OPTION1%" EQU "ON" support\sfk echo -spat \x20 \x20 [%match1%]Keep 00000001 Folder for IOSs\MIOSs\SMs etc
::if /i "%OPTION1%" EQU "ON" echo * Useful for offline usage of Wii Apps like Dop-Mii
::if /i "%OPTION1%" EQU "NUS" support\sfk echo -spat \x20 \x20 [%match1%]Keep NUS\00000001000000##v# Folder for IOSs\MIOSs\SMs etc
::if /i "%OPTION1%" EQU "NUS" echo * Useful for offline usage of Wii Apps like d2x\Hermes cIOS Installers
::if /i "%OPTION1%" EQU "ALL" support\sfk echo -spat \x20 \x20 [%match1%]Keep NUS\00000001000000##v# and 00000001 Folder for IOSs\MIOSs\SMs etc
::if /i "%OPTION1%" EQU "ALL" echo * Useful for offline usage of a handful of Wii Apps
::echo.
echo.
:skiploadDLcue
if /i "%DLTOTAL%" EQU "0" echo No files were marked for download
if /i "%DLTOTAL%" EQU "0" goto:skipall
if /i "%USBGUIDE%" NEQ "Y" goto:skip
if /i "%USBCONFIG%" EQU "USB" (echo The following %DLTOTAL% files will be downloaded to "%DRIVE%" or "%DRIVEU%":) else (echo The following %DLTOTAL% files will be downloaded to "%DRIVE%":)
goto:skipall
:skip
if /i "%MENU1%" NEQ "SU" goto:skipSU
if /i "%DLTOTAL%" NEQ "2" goto:skipStubMsg
if /i "%STUBS%" NEQ "*" goto:skipStubMsg
echo According to your SysCheck log your mods are up to date.
echo However, you have some unnecessary IOSs that can optionally be removed\stubbed
echo.
goto:skipSU
:skipStubMsg
echo According to your SysCheck log the following files are required
echo in order to update your softmod.
echo.
:skipSU
echo The following %DLTOTAL% files will be downloaded to "%DRIVE%":
:skipall
echo.
SET DLNUM=0
::Loop through the following once for EACH line in *.txt
if not exist temp\DLnames.txt goto:nextstep
for /F "tokens=*" %%A in (temp\DLnames.txt) do call :processDLlist %%A
goto:nextstep
:processDLlist
SET /a DLNUM=%DLNUM%+1
echo %DLNUM%) %*
goto:EOF
:nextstep
echo.
if /i "%DLTOTAL%" NEQ "0" echo Begin Downloading now?
echo.
if /i "%DLTOTAL%" EQU "0" goto:zerodownloads
if /i "%MENU1%" EQU "W" goto:WorUSB
if /i "%MENU1%" EQU "U" goto:WorUSB
if /i "%MENU1%" EQU "H" goto:WorUSB
if /i "%MENU1%" EQU "SU" goto:WorUSB
if /i "%MENU1%" EQU "RC" goto:WorUSB
if /i "%DLTOTAL%" NEQ "0" echo Y = Yes, Begin Downloading
:WorUSB
if /i "%MENU1%" EQU "W" echo Y = Yes, Generate Guide and Begin Downloading
if /i "%MENU1%" EQU "W" echo G = Generate Guide Only
if /i "%MENU1%" EQU "U" echo Y = Yes, Generate Guide and Begin Downloading
if /i "%MENU1%" EQU "U" echo G = Generate Guide Only
if /i "%MENU1%" EQU "H" echo Y = Yes, Generate Guide and Begin Downloading
if /i "%MENU1%" EQU "H" echo G = Generate Guide Only
if /i "%MENU1%" EQU "SU" echo Y = Yes, Generate Guide and Begin Downloading
if /i "%MENU1%" EQU "SU" echo G = Generate Guide Only
if /i "%MENU1%" EQU "RC" echo Y = Yes, Generate Guide and Begin Downloading
if /i "%MENU1%" EQU "RC" echo G = Generate Guide Only
:zerodownloads
if /i "%MENU1%" EQU "1" echo A = Add or remove files to download queue
if /i "%MENU1%" EQU "2" echo A = Add or remove files to download queue
if /i "%MENU1%" EQU "3" echo A = Add or remove files to download queue
if /i "%MENU1%" EQU "4" echo A = Add or remove files to download queue
if /i "%MENU1%" EQU "5" echo A = Add or remove files to download queue
if /i "%MENU1%" EQU "A" echo A = Add or remove files to download queue
if /i "%MENU1%" EQU "L" echo A = Add or remove files to download queue
echo.
if /i "%DLTOTAL%" NEQ "0" echo S = Save As New Download Queue
if /i "%MENU1%" EQU "L" echo D = Delete Download Queue and go to Main Menu
::if /i "%DLTOTAL%" NEQ "0" echo C = Clear Download Queue
echo.
echo B = Back
echo M = Main Menu
echo.
set settings="
set /p SETTINGS=Enter Selection Here:
set "SETTINGS=%SETTINGS:"=%"
if /i "%SETTINGS%" EQU "ADV" goto:ADVANCED
::if /i "%DLTOTAL%" EQU "0" goto:skip
::if /i "%SETTINGS%" EQU "C" goto:CLEAR
:::skip
if /i "%SETTINGS%" EQU "B" goto:%BACKB4QUEUE%
if /i "%SETTINGS%" EQU "M" goto:MENU
if /i "%SETTINGS%" EQU "S" if /i "%DLTOTAL%" NEQ "0" (set beforesave=DOWNLOADQUEUE) & (goto:SaveDownloadQueue)
if /i "%MENU1%" NEQ "L" goto:notbatch
if /i "%SETTINGS%" EQU "D" del "temp\DownloadQueues\%CurrentQueue%">nul
if /i "%SETTINGS%" EQU "D" goto:MENU
if /i "%SETTINGS%" EQU "A" (set "nextpage=DLPAGE1.hta") & (goto:DLPAGES)
if /i "%DLTOTAL%" EQU "0" goto:badkey
if /i "%SETTINGS%" EQU "Y" goto:creditcheck
:notbatch
if /i "%MENU1%" NEQ "1" goto:notbatch
if /i "%SETTINGS%" EQU "A" goto:%BACKB4QUEUE%
if /i "%DLTOTAL%" EQU "0" goto:badkey
if /i "%SETTINGS%" EQU "Y" goto:creditcheck
:notbatch
if /i "%MENU1%" NEQ "2" goto:notoldbatch
if /i "%SETTINGS%" EQU "A" goto:%BACKB4QUEUE%
if /i "%DLTOTAL%" EQU "0" goto:badkey
if /i "%SETTINGS%" EQU "Y" goto:creditcheck
:notoldbatch
if /i "%MENU1%" NEQ "3" goto:NotBatchApp
if /i "%SETTINGS%" EQU "A" goto:%BACKB4QUEUE%
if /i "%DLTOTAL%" EQU "0" goto:badkey
if /i "%SETTINGS%" EQU "Y" goto:creditcheck
:NotBatchApp
if /i "%MENU1%" NEQ "4" goto:NotLIST4
if /i "%SETTINGS%" EQU "A" goto:%BACKB4QUEUE%
if /i "%DLTOTAL%" EQU "0" goto:badkey
if /i "%SETTINGS%" EQU "Y" goto:creditcheck
:NotLIST4
if /i "%MENU1%" NEQ "5" goto:NotLIST5
if /i "%SETTINGS%" EQU "A" goto:%BACKB4QUEUE%
if /i "%DLTOTAL%" EQU "0" goto:badkey
if /i "%SETTINGS%" EQU "Y" goto:creditcheck
:NotLIST5
if /i "%MENU1%" NEQ "A" goto:NotAdv
if /i "%SETTINGS%" EQU "A" goto:%BACKB4QUEUE%
if /i "%DLTOTAL%" EQU "0" goto:badkey
if /i "%SETTINGS%" EQU "Y" goto:creditcheck
:NotAdv
if /i "%DLTOTAL%" EQU "0" goto:badkey
if /i "%SETTINGS%" EQU "Y" goto:COPY
if /i "%MENU1%" EQU "W" goto:generateguideonly
if /i "%MENU1%" EQU "U" goto:generateguideonly
if /i "%MENU1%" EQU "H" goto:generateguideonly
if /i "%MENU1%" EQU "SU" goto:generateguideonly
if /i "%MENU1%" EQU "RC" goto:generateguideonly
goto:badkey
:generateguideonly
if /i "%SETTINGS%" EQU "G" goto:guide
:badkey
echo You Have Entered an Incorrect Key
@ping 127.0.0.1 -n 2 -w 1000> nul
if /i "%MENU1%" EQU "SU" cls
if /i "%MENU1%" EQU "SU" echo ModMii v%currentversion%
if /i "%MENU1%" EQU "SU" echo by XFlak
goto:DOWNLOADQUEUE
::--------------------------SAVE DOWNLOAD QUEUE-----------------------
:SaveDownloadQueue
set DLQUEUENAME="
cls
echo ModMii v%currentversion%
echo by XFlak
echo.
echo Please enter a name for your Download Queue
echo.
echo.
echo Note: Cannot contain \ / : * ? " < > | & %%
echo.
echo.
echo Note: Download Queues are saved to "temp\DownloadQueues"
echo and can be shared amongst different ModMii users
echo.
echo.
echo.
echo B = Back
echo.
echo M = Main Menu
echo.
echo.
echo.
set /p DLQUEUENAME=Enter Selection Here:
set "DLQUEUENAME=%DLQUEUENAME:"=%"
if "%DLQUEUENAME%"=="" goto:badkey
if /i "%DLQUEUENAME%" EQU "M" goto:MENU
if /i "%DLQUEUENAME%" EQU "B" goto:%beforesave%
echo "set DLQUEUENAME=%DLQUEUENAME%">temp\temp.bat
support\sfk filter -quiet -spat temp\temp.bat -rep _\x5c__ -rep _\x2f__ -rep _\x3a__ -rep _\x2a__ -rep _\x3f__ -rep _\x3c__ -rep _\x3e__ -rep _\x7c__ -rep _\x22__ -write -yes
call temp\temp.bat
del temp\temp.bat>nul
if not exist "temp\DownloadQueues\%DLQUEUENAME%.bat" goto:SaveDownloadQueue2
::queue with the same name already exists
echo.
echo A Download Queue with this name already exists, overwrite it? (Y/N)
echo.
set overwritequeue="
set /p overwritequeue=Enter Selection Here:
set "overwritequeue=%overwritequeue:"=%"
if /i "%overwritequeue%" EQU "Y" (goto:SaveDownloadQueue2) else (goto:SaveDownloadQueue)
:badkey
echo You Have Entered an Incorrect Key
@ping 127.0.0.1 -n 2 -w 1000> nul
goto:SaveDownloadQueue
:SaveDownloadQueue2
cls
echo ModMii v%currentversion%
echo by XFlak
echo.
echo Saving Download Queue
echo.
echo This might take a minute...
echo.
if not exist temp\DownloadQueues mkdir temp\DownloadQueues
set AdvNumberCOPY=%AdvNumber%
if /i "%SETTINGS%" EQU "S" set AdvNumberCOPY=0
if /i "%FINISH%" EQU "S" set AdvNumberCOPY=0
::set GetAdvNumberOnly=Y
::if exist "temp\DownloadQueues\%DLQUEUENAME%.bat" call "temp\DownloadQueues\%DLQUEUENAME%.bat"
::set GetAdvNumberOnly=
set /a AdvNumberCOPY=%AdvNumberCOPY%+%AdvNumber%
set AdvNumberCOPY2=%AdvNumber%
if /i "%SETTINGS%" EQU "S" set AdvNumberCOPY2=0
if /i "%FINISH%" EQU "S" set AdvNumberCOPY2=0
set AdvNumberCOPY3=%AdvNumberCOPY2%
::set AdvNumber=0
::if exist "temp\DownloadQueues\%DLQUEUENAME%.bat" support\sfk filter -quiet "temp\DownloadQueues\%DLQUEUENAME%.bat" -ls!":endofqueue" -write -yes
::if exist "temp\DownloadQueues\%DLQUEUENAME%.bat" support\sfk filter -quiet -spat "temp\DownloadQueues\%DLQUEUENAME%.bat" -rep _\x22_quote_ -write -yes
echo.
echo ::ModMii v%currentversion% - Download Queue - %DATE% - %TIME% > "temp\DownloadQueues\%DLQUEUENAME%.bat"
echo "set AdvNumber=%AdvNumbercopy%">>"temp\DownloadQueues\%DLQUEUENAME%.bat"
echo "if /i quote@GetAdvNumberOnly@quote EQU quoteYquote goto:endofqueue">>"temp\DownloadQueues\%DLQUEUENAME%.bat"
echo ::Queue Settings>> "temp\DownloadQueues\%DLQUEUENAME%.bat"
echo Set ROOTSAVE=%ROOTSAVE%>> "temp\DownloadQueues\%DLQUEUENAME%.bat"
::echo Set Option1=%Option1%>> "temp\DownloadQueues\%DLQUEUENAME%.bat"
echo ::Queue>> "temp\DownloadQueues\%DLQUEUENAME%.bat"
if /i "%EULAU%" EQU "*" echo SET EULAU=*>> "temp\DownloadQueues\%DLQUEUENAME%.bat"
if /i "%EULAE%" EQU "*" echo SET EULAE=*>> "temp\DownloadQueues\%DLQUEUENAME%.bat"
if /i "%EULAJ%" EQU "*" echo SET EULAJ=*>> "temp\DownloadQueues\%DLQUEUENAME%.bat"
if /i "%EULAK%" EQU "*" echo SET EULAK=*>> "temp\DownloadQueues\%DLQUEUENAME%.bat"
if /i "%RSU%" EQU "*" echo SET RSU=*>> "temp\DownloadQueues\%DLQUEUENAME%.bat"
if /i "%RSE%" EQU "*" echo SET RSE=*>> "temp\DownloadQueues\%DLQUEUENAME%.bat"
if /i "%RSJ%" EQU "*" echo SET RSJ=*>> "temp\DownloadQueues\%DLQUEUENAME%.bat"
if /i "%RSK%" EQU "*" echo SET RSK=*>> "temp\DownloadQueues\%DLQUEUENAME%.bat"
if /i "%HAZA%" EQU "*" echo SET HAZA=*>> "temp\DownloadQueues\%DLQUEUENAME%.bat"
if /i "%vRSU%" EQU "*" echo SET vRSU=*>> "temp\DownloadQueues\%DLQUEUENAME%.bat"
if /i "%vRSE%" EQU "*" echo SET vRSE=*>> "temp\DownloadQueues\%DLQUEUENAME%.bat"
if /i "%vRSJ%" EQU "*" echo SET vRSJ=*>> "temp\DownloadQueues\%DLQUEUENAME%.bat"
if /i "%BC%" EQU "*" echo SET BC=*>> "temp\DownloadQueues\%DLQUEUENAME%.bat"
if /i "%SM4.1U%" EQU "*" echo SET SM4.1U=*>> "temp\DownloadQueues\%DLQUEUENAME%.bat"
if /i "%SM4.2U%" EQU "*" echo SET SM4.2U=*>> "temp\DownloadQueues\%DLQUEUENAME%.bat"
if /i "%SM4.3U%" EQU "*" echo SET SM4.3U=*>> "temp\DownloadQueues\%DLQUEUENAME%.bat"
if /i "%SM4.1E%" EQU "*" echo SET SM4.1E=*>> "temp\DownloadQueues\%DLQUEUENAME%.bat"
if /i "%SM4.2E%" EQU "*" echo SET SM4.2E=*>> "temp\DownloadQueues\%DLQUEUENAME%.bat"
if /i "%SM4.3E%" EQU "*" echo SET SM4.3E=*>> "temp\DownloadQueues\%DLQUEUENAME%.bat"
if /i "%SM4.1J%" EQU "*" echo SET SM4.1J=*>> "temp\DownloadQueues\%DLQUEUENAME%.bat"
if /i "%SM4.2J%" EQU "*" echo SET SM4.2J=*>> "temp\DownloadQueues\%DLQUEUENAME%.bat"
if /i "%SM4.3J%" EQU "*" echo SET SM4.3J=*>> "temp\DownloadQueues\%DLQUEUENAME%.bat"
if /i "%SM4.1K%" EQU "*" echo SET SM4.1K=*>> "temp\DownloadQueues\%DLQUEUENAME%.bat"
if /i "%SM4.2K%" EQU "*" echo SET SM4.2K=*>> "temp\DownloadQueues\%DLQUEUENAME%.bat"
if /i "%SM4.3K%" EQU "*" echo SET SM4.3K=*>> "temp\DownloadQueues\%DLQUEUENAME%.bat"
if /i "%vSM4.3U%" EQU "*" echo SET vSM4.3U=*>> "temp\DownloadQueues\%DLQUEUENAME%.bat"
if /i "%vSM4.3E%" EQU "*" echo SET vSM4.3E=*>> "temp\DownloadQueues\%DLQUEUENAME%.bat"
if /i "%vSM4.3J%" EQU "*" echo SET vSM4.3J=*>> "temp\DownloadQueues\%DLQUEUENAME%.bat"
if /i "%BCnand%" EQU "*" echo SET BCnand=*>> "temp\DownloadQueues\%DLQUEUENAME%.bat"
if /i "%BCwfs%" EQU "*" echo SET BCwfs=*>> "temp\DownloadQueues\%DLQUEUENAME%.bat"
if /i "%SM4.3U-DWR%" EQU "*" echo SET SM4.3U-DWR=*>> "temp\DownloadQueues\%DLQUEUENAME%.bat"
if /i "%SM4.2U-DWR%" EQU "*" echo SET SM4.2U-DWR=*>> "temp\DownloadQueues\%DLQUEUENAME%.bat"
if /i "%SM4.1U-DWR%" EQU "*" echo SET SM4.1U-DWR=*>> "temp\DownloadQueues\%DLQUEUENAME%.bat"
if /i "%SM4.3E-DWR%" EQU "*" echo SET SM4.3E-DWR=*>> "temp\DownloadQueues\%DLQUEUENAME%.bat"
if /i "%SM4.2E-DWR%" EQU "*" echo SET SM4.2E-DWR=*>> "temp\DownloadQueues\%DLQUEUENAME%.bat"
if /i "%SM4.1E-DWR%" EQU "*" echo SET SM4.1E-DWR=*>> "temp\DownloadQueues\%DLQUEUENAME%.bat"
if /i "%SM4.3J-DWR%" EQU "*" echo SET SM4.3J-DWR=*>> "temp\DownloadQueues\%DLQUEUENAME%.bat"
if /i "%SM4.2J-DWR%" EQU "*" echo SET SM4.2J-DWR=*>> "temp\DownloadQueues\%DLQUEUENAME%.bat"
if /i "%SM4.1J-DWR%" EQU "*" echo SET SM4.1J-DWR=*>> "temp\DownloadQueues\%DLQUEUENAME%.bat"
if /i "%SM4.3K-DWR%" EQU "*" echo SET SM4.3K-DWR=*>> "temp\DownloadQueues\%DLQUEUENAME%.bat"
if /i "%SM4.2K-DWR%" EQU "*" echo SET SM4.2K-DWR=*>> "temp\DownloadQueues\%DLQUEUENAME%.bat"
if /i "%SM4.1K-DWR%" EQU "*" echo SET SM4.1K-DWR=*>> "temp\DownloadQueues\%DLQUEUENAME%.bat"
if /i "%SM4.3U-DWG%" EQU "*" echo SET SM4.3U-DWG=*>> "temp\DownloadQueues\%DLQUEUENAME%.bat"
if /i "%SM4.2U-DWG%" EQU "*" echo SET SM4.2U-DWG=*>> "temp\DownloadQueues\%DLQUEUENAME%.bat"
if /i "%SM4.1U-DWG%" EQU "*" echo SET SM4.1U-DWG=*>> "temp\DownloadQueues\%DLQUEUENAME%.bat"
if /i "%SM4.3E-DWG%" EQU "*" echo SET SM4.3E-DWG=*>> "temp\DownloadQueues\%DLQUEUENAME%.bat"
if /i "%SM4.2E-DWG%" EQU "*" echo SET SM4.2E-DWG=*>> "temp\DownloadQueues\%DLQUEUENAME%.bat"
if /i "%SM4.1E-DWG%" EQU "*" echo SET SM4.1E-DWG=*>> "temp\DownloadQueues\%DLQUEUENAME%.bat"
if /i "%SM4.3J-DWG%" EQU "*" echo SET SM4.3J-DWG=*>> "temp\DownloadQueues\%DLQUEUENAME%.bat"
if /i "%SM4.2J-DWG%" EQU "*" echo SET SM4.2J-DWG=*>> "temp\DownloadQueues\%DLQUEUENAME%.bat"
if /i "%SM4.1J-DWG%" EQU "*" echo SET SM4.1J-DWG=*>> "temp\DownloadQueues\%DLQUEUENAME%.bat"
if /i "%SM4.3K-DWG%" EQU "*" echo SET SM4.3K-DWG=*>> "temp\DownloadQueues\%DLQUEUENAME%.bat"
if /i "%SM4.2K-DWG%" EQU "*" echo SET SM4.2K-DWG=*>> "temp\DownloadQueues\%DLQUEUENAME%.bat"
if /i "%SM4.1K-DWG%" EQU "*" echo SET SM4.1K-DWG=*>> "temp\DownloadQueues\%DLQUEUENAME%.bat"
if /i "%SM4.3U-DWB%" EQU "*" echo SET SM4.3U-DWB=*>> "temp\DownloadQueues\%DLQUEUENAME%.bat"
if /i "%SM4.2U-DWB%" EQU "*" echo SET SM4.2U-DWB=*>> "temp\DownloadQueues\%DLQUEUENAME%.bat"
if /i "%SM4.1U-DWB%" EQU "*" echo SET SM4.1U-DWB=*>> "temp\DownloadQueues\%DLQUEUENAME%.bat"
if /i "%SM4.3E-DWB%" EQU "*" echo SET SM4.3E-DWB=*>> "temp\DownloadQueues\%DLQUEUENAME%.bat"
if /i "%SM4.2E-DWB%" EQU "*" echo SET SM4.2E-DWB=*>> "temp\DownloadQueues\%DLQUEUENAME%.bat"
if /i "%SM4.1E-DWB%" EQU "*" echo SET SM4.1E-DWB=*>> "temp\DownloadQueues\%DLQUEUENAME%.bat"
if /i "%SM4.3J-DWB%" EQU "*" echo SET SM4.3J-DWB=*>> "temp\DownloadQueues\%DLQUEUENAME%.bat"
if /i "%SM4.2J-DWB%" EQU "*" echo SET SM4.2J-DWB=*>> "temp\DownloadQueues\%DLQUEUENAME%.bat"
if /i "%SM4.1J-DWB%" EQU "*" echo SET SM4.1J-DWB=*>> "temp\DownloadQueues\%DLQUEUENAME%.bat"
if /i "%SM4.3K-DWB%" EQU "*" echo SET SM4.3K-DWB=*>> "temp\DownloadQueues\%DLQUEUENAME%.bat"
if /i "%SM4.2K-DWB%" EQU "*" echo SET SM4.2K-DWB=*>> "temp\DownloadQueues\%DLQUEUENAME%.bat"
if /i "%SM4.1K-DWB%" EQU "*" echo SET SM4.1K-DWB=*>> "temp\DownloadQueues\%DLQUEUENAME%.bat"
if /i "%SM4.3U-DWO%" EQU "*" echo SET SM4.3U-DWO=*>> "temp\DownloadQueues\%DLQUEUENAME%.bat"
if /i "%SM4.2U-DWO%" EQU "*" echo SET SM4.2U-DWO=*>> "temp\DownloadQueues\%DLQUEUENAME%.bat"
if /i "%SM4.1U-DWO%" EQU "*" echo SET SM4.1U-DWO=*>> "temp\DownloadQueues\%DLQUEUENAME%.bat"
if /i "%SM4.3E-DWO%" EQU "*" echo SET SM4.3E-DWO=*>> "temp\DownloadQueues\%DLQUEUENAME%.bat"
if /i "%SM4.2E-DWO%" EQU "*" echo SET SM4.2E-DWO=*>> "temp\DownloadQueues\%DLQUEUENAME%.bat"
if /i "%SM4.1E-DWO%" EQU "*" echo SET SM4.1E-DWO=*>> "temp\DownloadQueues\%DLQUEUENAME%.bat"
if /i "%SM4.3J-DWO%" EQU "*" echo SET SM4.3J-DWO=*>> "temp\DownloadQueues\%DLQUEUENAME%.bat"
if /i "%SM4.2J-DWO%" EQU "*" echo SET SM4.2J-DWO=*>> "temp\DownloadQueues\%DLQUEUENAME%.bat"
if /i "%SM4.1J-DWO%" EQU "*" echo SET SM4.1J-DWO=*>> "temp\DownloadQueues\%DLQUEUENAME%.bat"
if /i "%SM4.3K-DWO%" EQU "*" echo SET SM4.3K-DWO=*>> "temp\DownloadQueues\%DLQUEUENAME%.bat"
if /i "%SM4.2K-DWO%" EQU "*" echo SET SM4.2K-DWO=*>> "temp\DownloadQueues\%DLQUEUENAME%.bat"
if /i "%SM4.1K-DWO%" EQU "*" echo SET SM4.1K-DWO=*>> "temp\DownloadQueues\%DLQUEUENAME%.bat"
if /i "%IOS30%" EQU "*" echo SET IOS30=*>> "temp\DownloadQueues\%DLQUEUENAME%.bat"
if /i "%IOS30P60%" EQU "*" echo SET IOS30P60=*>> "temp\DownloadQueues\%DLQUEUENAME%.bat"
if /i "%IOS20P60%" EQU "*" echo SET IOS20P60=*>> "temp\DownloadQueues\%DLQUEUENAME%.bat"
if /i "%IOS11P60%" EQU "*" echo SET IOS11P60=*>> "temp\DownloadQueues\%DLQUEUENAME%.bat"
if /i "%IOS20P60%" EQU "*" echo SET IOS20P60=*>> "temp\DownloadQueues\%DLQUEUENAME%.bat"
if /i "%IOS50P%" EQU "*" echo SET IOS50P=*>> "temp\DownloadQueues\%DLQUEUENAME%.bat"
if /i "%IOS52P%" EQU "*" echo SET IOS52P=*>> "temp\DownloadQueues\%DLQUEUENAME%.bat"
if /i "%IOS60%" EQU "*" echo SET IOS60=*>> "temp\DownloadQueues\%DLQUEUENAME%.bat"
if /i "%IOS60P%" EQU "*" echo SET IOS60P=*>> "temp\DownloadQueues\%DLQUEUENAME%.bat"
if /i "%IOS70%" EQU "*" echo SET IOS70=*>> "temp\DownloadQueues\%DLQUEUENAME%.bat"
if /i "%IOS70K%" EQU "*" echo SET IOS70K=*>> "temp\DownloadQueues\%DLQUEUENAME%.bat"
if /i "%IOS80%" EQU "*" echo SET IOS80=*>> "temp\DownloadQueues\%DLQUEUENAME%.bat"
if /i "%IOS80K%" EQU "*" echo SET IOS80K=*>> "temp\DownloadQueues\%DLQUEUENAME%.bat"
if /i "%IOS236%" EQU "*" echo SET IOS236=*>> "temp\DownloadQueues\%DLQUEUENAME%.bat"
if /i "%BB1%" EQU "*" echo SET BB1=*>> "temp\DownloadQueues\%DLQUEUENAME%.bat"
if /i "%BB2%" EQU "*" echo SET BB2=*>> "temp\DownloadQueues\%DLQUEUENAME%.bat"
if /i "%HMold%" EQU "*" echo SET HMold=*>> "temp\DownloadQueues\%DLQUEUENAME%.bat"
if /i "%HM%" EQU "*" echo SET HM=*>> "temp\DownloadQueues\%DLQUEUENAME%.bat"
if /i "%IOS236Installer%" EQU "*" echo SET IOS236Installer=*>> "temp\DownloadQueues\%DLQUEUENAME%.bat"
if /i "%SIP%" EQU "*" echo SET SIP=*>> "temp\DownloadQueues\%DLQUEUENAME%.bat"
if /i "%DumpMii%" EQU "*" echo SET DumpMii=*>> "temp\DownloadQueues\%DLQUEUENAME%.bat"
if /i "%syscheck%" EQU "*" echo SET syscheck=*>> "temp\DownloadQueues\%DLQUEUENAME%.bat"
if /i "%AccioHacks%" EQU "*" echo SET AccioHacks=*>> "temp\DownloadQueues\%DLQUEUENAME%.bat"
if /i "%usbgx%" EQU "*" echo SET usbgx=*>> "temp\DownloadQueues\%DLQUEUENAME%.bat"
if /i "%nintendont%" EQU "*" echo SET nintendont=*>> "temp\DownloadQueues\%DLQUEUENAME%.bat"
if /i "%MyM%" EQU "*" echo SET MyM=*>> "temp\DownloadQueues\%DLQUEUENAME%.bat"
if /i "%locked%" EQU "*" echo SET locked=*>> "temp\DownloadQueues\%DLQUEUENAME%.bat"
if /i "%HBB%" EQU "*" echo SET HBB=*>> "temp\DownloadQueues\%DLQUEUENAME%.bat"
if /i "%WII64%" EQU "*" echo SET WII64=*>> "temp\DownloadQueues\%DLQUEUENAME%.bat"
if /i "%Not64%" EQU "*" echo SET Not64=*>> "temp\DownloadQueues\%DLQUEUENAME%.bat"
if /i "%Dolphin%" EQU "*" echo SET Dolphin=*>> "temp\DownloadQueues\%DLQUEUENAME%.bat"
if /i "%FILEZILLA%" EQU "*" echo SET FILEZILLA=*>> "temp\DownloadQueues\%DLQUEUENAME%.bat"
if /i "%hxd%" EQU "*" echo SET hxd=*>> "temp\DownloadQueues\%DLQUEUENAME%.bat"
if /i "%Diskitude%" EQU "*" echo SET Diskitude=*>> "temp\DownloadQueues\%DLQUEUENAME%.bat"
if /i "%Nkit%" EQU "*" echo SET Nkit=*>> "temp\DownloadQueues\%DLQUEUENAME%.bat"
if /i "%RC24%" EQU "*" echo SET RC24=*>> "temp\DownloadQueues\%DLQUEUENAME%.bat"
if /i "%SDTEST%" EQU "*" echo SET SDTEST=*>> "temp\DownloadQueues\%DLQUEUENAME%.bat"
if /i "%HashMF%" EQU "*" echo SET HashMF=*>> "temp\DownloadQueues\%DLQUEUENAME%.bat"
if /i "%ThemeMiiMod%" EQU "*" echo SET ThemeMiiMod=*>> "temp\DownloadQueues\%DLQUEUENAME%.bat"
if /i "%UStealth%" EQU "*" echo SET UStealth=*>> "temp\DownloadQueues\%DLQUEUENAME%.bat"
if /i "%UWUVCI%" EQU "*" echo SET UWUVCI=*>> "temp\DownloadQueues\%DLQUEUENAME%.bat"
if /i "%GCBM%" EQU "*" echo SET GCBM=*>> "temp\DownloadQueues\%DLQUEUENAME%.bat"
if /i "%NUSGet%" EQU "*" echo SET NUSGet=*>> "temp\DownloadQueues\%DLQUEUENAME%.bat"
if /i "%ftpii%" EQU "*" echo SET ftpii=*>> "temp\DownloadQueues\%DLQUEUENAME%.bat"
if /i "%CheatZip%" EQU "*" echo SET CheatZip=*>> "temp\DownloadQueues\%DLQUEUENAME%.bat"
if /i "%AccountSwap%" EQU "*" echo SET AccountSwap=*>> "temp\DownloadQueues\%DLQUEUENAME%.bat"
if /i "%OSClib%" EQU "*" echo SET OSClib=*>> "temp\DownloadQueues\%DLQUEUENAME%.bat"
if /i "%HBASlib%" EQU "*" echo SET HBASlib=*>> "temp\DownloadQueues\%DLQUEUENAME%.bat"
if /i "%OSC%" EQU "*" echo SET OSC=*>> "temp\DownloadQueues\%DLQUEUENAME%.bat"
if /i "%WiiLink%" EQU "*" echo SET WiiLink=*>> "temp\DownloadQueues\%DLQUEUENAME%.bat"
if /i "%Cemu%" EQU "*" echo SET Cemu=*>> "temp\DownloadQueues\%DLQUEUENAME%.bat"
if /i "%Casper%" EQU "*" echo SET Casper=*>> "temp\DownloadQueues\%DLQUEUENAME%.bat"
if /i "%Wilbrand%" EQU "*" echo SET Wilbrand=*>> "temp\DownloadQueues\%DLQUEUENAME%.bat"
if /i "%Wilbrand%" EQU "*" echo SET REGION=*>> "temp\DownloadQueues\%DLQUEUENAME%.bat"
if /i "%Wilbrand%" EQU "*" echo SET macaddress=%macaddress% >> "temp\DownloadQueues\%DLQUEUENAME%.bat"
if /i "%WIISX%" EQU "*" echo SET WIISX=*>> "temp\DownloadQueues\%DLQUEUENAME%.bat"
if /i "%bootmiisd%" EQU "*" echo SET bootmiisd=*>> "temp\DownloadQueues\%DLQUEUENAME%.bat"
if /i "%pwns%" EQU "*" echo SET pwns=*>> "temp\DownloadQueues\%DLQUEUENAME%.bat"
if /i "%Twi%" EQU "*" echo SET Twi=*>> "temp\DownloadQueues\%DLQUEUENAME%.bat"
if /i "%Twi2%" EQU "*" echo SET Twi2=*>> "temp\DownloadQueues\%DLQUEUENAME%.bat"
if /i "%YUGI%" EQU "*" echo SET YUGI=*>> "temp\DownloadQueues\%DLQUEUENAME%.bat"
if /i "%Bathaxx%" EQU "*" echo SET Bathaxx=*>> "temp\DownloadQueues\%DLQUEUENAME%.bat"
if /i "%ROTJ%" EQU "*" echo SET ROTJ=*>> "temp\DownloadQueues\%DLQUEUENAME%.bat"
if /i "%TOS%" EQU "*" echo SET TOS=*>> "temp\DownloadQueues\%DLQUEUENAME%.bat"
if /i "%smash%" EQU "*" echo SET smash=*>> "temp\DownloadQueues\%DLQUEUENAME%.bat"
if /i "%mmm%" EQU "*" echo SET mmm=*>> "temp\DownloadQueues\%DLQUEUENAME%.bat"
if /i "%CleanRip%" EQU "*" echo SET CleanRip=*>> "temp\DownloadQueues\%DLQUEUENAME%.bat"
if /i "%ARC%" EQU "*" echo SET ARC=*>> "temp\DownloadQueues\%DLQUEUENAME%.bat"
if /i "%KK%" EQU "*" echo SET KK=*>> "temp\DownloadQueues\%DLQUEUENAME%.bat"
if /i "%yawm%" EQU "*" echo SET yawm=*>> "temp\DownloadQueues\%DLQUEUENAME%.bat"
if /i "%EnvironmentLoader%" EQU "*" echo SET EnvironmentLoader=*>> "temp\DownloadQueues\%DLQUEUENAME%.bat"
if /i "%Nanddumper%" EQU "*" echo SET Nanddumper=*>> "temp\DownloadQueues\%DLQUEUENAME%.bat"
if /i "%Wiiload Plugin%" EQU "*" echo SET Wiiload Plugin=*>> "temp\DownloadQueues\%DLQUEUENAME%.bat"
if /i "%FTPiiU Plugin%" EQU "*" echo SET FTPiiU Plugin=*>> "temp\DownloadQueues\%DLQUEUENAME%.bat"
if /i "%Aroma%" EQU "*" echo SET Aroma=*>> "temp\DownloadQueues\%DLQUEUENAME%.bat"
if /i "%evWii%" EQU "*" echo SET evWii=*>> "temp\DownloadQueues\%DLQUEUENAME%.bat"
if /i "%WiiVCLaunch%" EQU "*" echo SET WiiVCLaunch=*>> "temp\DownloadQueues\%DLQUEUENAME%.bat"
if /i "%WiiUIdent%" EQU "*" echo SET WiiUIdent=*>> "temp\DownloadQueues\%DLQUEUENAME%.bat"
if /i "%Tiramisu%" EQU "*" echo SET Tiramisu=*>> "temp\DownloadQueues\%DLQUEUENAME%.bat"
if /i "%Screenshot_WUPS%" EQU "*" echo SET Screenshot_WUPS=*>> "temp\DownloadQueues\%DLQUEUENAME%.bat"
if /i "%appstore%" EQU "*" echo SET appstore=*>> "temp\DownloadQueues\%DLQUEUENAME%.bat"
if /i "%SaveMiiModWUTPort%" EQU "*" echo SET SaveMiiModWUTPort=*>> "temp\DownloadQueues\%DLQUEUENAME%.bat"
if /i "%vWii80Installer%" EQU "*" echo SET vWii80Installer=*>> "temp\DownloadQueues\%DLQUEUENAME%.bat"
if /i "%v43DB%" EQU "*" echo SET v43DB=*>> "temp\DownloadQueues\%DLQUEUENAME%.bat"
if /i "%Swiss_cMIOS%" EQU "*" echo SET Swiss_cMIOS=*>> "temp\DownloadQueues\%DLQUEUENAME%.bat"
if /i "%DiosMios%" EQU "*" echo SET DiosMios=*>> "temp\DownloadQueues\%DLQUEUENAME%.bat"
if /i "%SCR%" EQU "*" echo SET SCR=*>> "temp\DownloadQueues\%DLQUEUENAME%.bat"
if /i "%vIOS9%" EQU "*" echo SET vIOS9=*>> "temp\DownloadQueues\%DLQUEUENAME%.bat"
if /i "%vIOS12%" EQU "*" echo SET vIOS12=*>> "temp\DownloadQueues\%DLQUEUENAME%.bat"
if /i "%vIOS13%" EQU "*" echo SET vIOS13=*>> "temp\DownloadQueues\%DLQUEUENAME%.bat"
if /i "%vIOS14%" EQU "*" echo SET vIOS14=*>> "temp\DownloadQueues\%DLQUEUENAME%.bat"
if /i "%vIOS15%" EQU "*" echo SET vIOS15=*>> "temp\DownloadQueues\%DLQUEUENAME%.bat"
if /i "%vIOS17%" EQU "*" echo SET vIOS17=*>> "temp\DownloadQueues\%DLQUEUENAME%.bat"
if /i "%vIOS21%" EQU "*" echo SET vIOS21=*>> "temp\DownloadQueues\%DLQUEUENAME%.bat"
if /i "%vIOS22%" EQU "*" echo SET vIOS22=*>> "temp\DownloadQueues\%DLQUEUENAME%.bat"
if /i "%vIOS28%" EQU "*" echo SET vIOS28=*>> "temp\DownloadQueues\%DLQUEUENAME%.bat"
if /i "%vIOS31%" EQU "*" echo SET vIOS31=*>> "temp\DownloadQueues\%DLQUEUENAME%.bat"
if /i "%vIOS33%" EQU "*" echo SET vIOS33=*>> "temp\DownloadQueues\%DLQUEUENAME%.bat"
if /i "%vIOS34%" EQU "*" echo SET vIOS34=*>> "temp\DownloadQueues\%DLQUEUENAME%.bat"
if /i "%vIOS35%" EQU "*" echo SET vIOS35=*>> "temp\DownloadQueues\%DLQUEUENAME%.bat"
if /i "%vIOS36%" EQU "*" echo SET vIOS36=*>> "temp\DownloadQueues\%DLQUEUENAME%.bat"
if /i "%vIOS37%" EQU "*" echo SET vIOS37=*>> "temp\DownloadQueues\%DLQUEUENAME%.bat"
if /i "%vIOS38%" EQU "*" echo SET vIOS38=*>> "temp\DownloadQueues\%DLQUEUENAME%.bat"
if /i "%vIOS41%" EQU "*" echo SET vIOS41=*>> "temp\DownloadQueues\%DLQUEUENAME%.bat"
if /i "%vIOS43%" EQU "*" echo SET vIOS43=*>> "temp\DownloadQueues\%DLQUEUENAME%.bat"
if /i "%vIOS45%" EQU "*" echo SET vIOS45=*>> "temp\DownloadQueues\%DLQUEUENAME%.bat"
if /i "%vIOS46%" EQU "*" echo SET vIOS46=*>> "temp\DownloadQueues\%DLQUEUENAME%.bat"
if /i "%vIOS48%" EQU "*" echo SET vIOS48=*>> "temp\DownloadQueues\%DLQUEUENAME%.bat"
if /i "%vIOS53%" EQU "*" echo SET vIOS53=*>> "temp\DownloadQueues\%DLQUEUENAME%.bat"
if /i "%vIOS55%" EQU "*" echo SET vIOS55=*>> "temp\DownloadQueues\%DLQUEUENAME%.bat"
if /i "%vIOS56%" EQU "*" echo SET vIOS56=*>> "temp\DownloadQueues\%DLQUEUENAME%.bat"
if /i "%vIOS57%" EQU "*" echo SET vIOS57=*>> "temp\DownloadQueues\%DLQUEUENAME%.bat"
if /i "%vIOS58%" EQU "*" echo SET vIOS58=*>> "temp\DownloadQueues\%DLQUEUENAME%.bat"
if /i "%vIOS59%" EQU "*" echo SET vIOS59=*>> "temp\DownloadQueues\%DLQUEUENAME%.bat"
if /i "%vIOS61%" EQU "*" echo SET vIOS61=*>> "temp\DownloadQueues\%DLQUEUENAME%.bat"
if /i "%vIOS62%" EQU "*" echo SET vIOS62=*>> "temp\DownloadQueues\%DLQUEUENAME%.bat"
if /i "%vIOS80%" EQU "*" echo SET vIOS80=*>> "temp\DownloadQueues\%DLQUEUENAME%.bat"
if /i "%vIOS80P%" EQU "*" echo SET vIOS80P=*>> "temp\DownloadQueues\%DLQUEUENAME%.bat"
if /i "%CompatTitleInstaller%" EQU "*" echo SET CompatTitleInstaller=*>> "temp\DownloadQueues\%DLQUEUENAME%.bat"
if /i "%neogamma%" EQU "*" echo SET neogamma=*>> "temp\DownloadQueues\%DLQUEUENAME%.bat"
if /i "%usbfolder%" EQU "*" echo SET usbfolder=*>> "temp\DownloadQueues\%DLQUEUENAME%.bat"
if /i "%WiiMC%" EQU "*" echo SET WiiMC=*>> "temp\DownloadQueues\%DLQUEUENAME%.bat"
if /i "%Bloopair%" EQU "*" echo SET Bloopair=*>> "temp\DownloadQueues\%DLQUEUENAME%.bat"
if /i "%Inkay%" EQU "*" echo SET Inkay=*>> "temp\DownloadQueues\%DLQUEUENAME%.bat"
if /i "%wudd%" EQU "*" echo SET wudd=*>> "temp\DownloadQueues\%DLQUEUENAME%.bat"
if /i "%GiveMiiYouTube%" EQU "*" echo SET GiveMiiYouTube=*>> "temp\DownloadQueues\%DLQUEUENAME%.bat"
if /i "%csminstaller%" EQU "*" echo SET csminstaller=*>> "temp\DownloadQueues\%DLQUEUENAME%.bat"
if /i "%wup_installer_gx2_wuhb%" EQU "*" echo SET wup_installer_gx2_wuhb=*>> "temp\DownloadQueues\%DLQUEUENAME%.bat"
if /i "%fceugx%" EQU "*" echo SET fceugx=*>> "temp\DownloadQueues\%DLQUEUENAME%.bat"
if /i "%snes9xgx%" EQU "*" echo SET snes9xgx=*>> "temp\DownloadQueues\%DLQUEUENAME%.bat"
if /i "%vbagx%" EQU "*" echo SET vbagx=*>> "temp\DownloadQueues\%DLQUEUENAME%.bat"
if /i "%SGM%" EQU "*" echo SET SGM=*>> "temp\DownloadQueues\%DLQUEUENAME%.bat"
if /i "%PL%" EQU "*" echo SET PL=*>> "temp\DownloadQueues\%DLQUEUENAME%.bat"
if /i "%WIIX%" EQU "*" echo SET WIIX=*>> "temp\DownloadQueues\%DLQUEUENAME%.bat"
if /i "%wbm%" EQU "*" echo SET wbm=*>> "temp\DownloadQueues\%DLQUEUENAME%.bat"
if /i "%CheatCodes%" EQU "*" echo SET CheatCodes=*>> "temp\DownloadQueues\%DLQUEUENAME%.bat"
if /i "%f32%" EQU "*" echo SET f32=*>> "temp\DownloadQueues\%DLQUEUENAME%.bat"
if /i "%CM%" EQU "*" echo SET CM=*>> "temp\DownloadQueues\%DLQUEUENAME%.bat"
if /i "%SMW%" EQU "*" echo SET SMW=*>> "temp\DownloadQueues\%DLQUEUENAME%.bat"
if /i "%WiiGSC%" EQU "*" echo SET WiiGSC=*>> "temp\DownloadQueues\%DLQUEUENAME%.bat"
if /i "%ohnes%" EQU "*" echo SET ohnes=*>> "temp\DownloadQueues\%DLQUEUENAME%.bat"
if /i "%FLOW%" EQU "*" echo SET FLOW=*>> "temp\DownloadQueues\%DLQUEUENAME%.bat"
if /i "%USBX%" EQU "*" echo SET USBX=*>> "temp\DownloadQueues\%DLQUEUENAME%.bat"
if /i "%FLOWF%" EQU "*" echo SET FLOWF=*>> "temp\DownloadQueues\%DLQUEUENAME%.bat"
if /i "%S2U%" EQU "*" echo SET S2U=*>> "temp\DownloadQueues\%DLQUEUENAME%.bat"
if /i "%nSwitch%" EQU "*" echo SET nSwitch=*>> "temp\DownloadQueues\%DLQUEUENAME%.bat"
if /i "%PLC%" EQU "*" echo SET PLC=*>> "temp\DownloadQueues\%DLQUEUENAME%.bat"
if /i "%OHBC%" EQU "*" echo SET OHBC=*>> "temp\DownloadQueues\%DLQUEUENAME%.bat"
if /i "%OHBC113%" EQU "*" echo SET OHBC113=*>> "temp\DownloadQueues\%DLQUEUENAME%.bat"
if /i "%OHBC114%" EQU "*" echo SET OHBC114=*>> "temp\DownloadQueues\%DLQUEUENAME%.bat"
::One option "Pri" for both Priiloader and LoadPriiloader
if /i "%Pri%" EQU "*" echo SET Pri=*>> "temp\DownloadQueues\%DLQUEUENAME%.bat"
if /i "%HAX%" EQU "*" echo SET HAX=*>> "temp\DownloadQueues\%DLQUEUENAME%.bat"
if /i "%MII%" EQU "*" echo SET MII=*>> "temp\DownloadQueues\%DLQUEUENAME%.bat"
if /i "%P0%" EQU "*" echo SET P0=*>> "temp\DownloadQueues\%DLQUEUENAME%.bat"
if /i "%P%" EQU "*" echo SET P=*>> "temp\DownloadQueues\%DLQUEUENAME%.bat"
if /i "%PHOTOK%" EQU "*" echo SET PHOTOK=*>> "temp\DownloadQueues\%DLQUEUENAME%.bat"
if /i "%WSK%" EQU "*" echo SET WSK=*>> "temp\DownloadQueues\%DLQUEUENAME%.bat"
if /i "%S%" EQU "*" echo SET S=*>> "temp\DownloadQueues\%DLQUEUENAME%.bat"
if /i "%SK%" EQU "*" echo SET SK=*>> "temp\DownloadQueues\%DLQUEUENAME%.bat"
if /i "%IU%" EQU "*" echo SET IU=*>> "temp\DownloadQueues\%DLQUEUENAME%.bat"
if /i "%IE%" EQU "*" echo SET IE=*>> "temp\DownloadQueues\%DLQUEUENAME%.bat"
if /i "%IJ%" EQU "*" echo SET IJ=*>> "temp\DownloadQueues\%DLQUEUENAME%.bat"
if /i "%WU%" EQU "*" echo SET WU=*>> "temp\DownloadQueues\%DLQUEUENAME%.bat"
if /i "%WE%" EQU "*" echo SET WE=*>> "temp\DownloadQueues\%DLQUEUENAME%.bat"
if /i "%WJ%" EQU "*" echo SET WJ=*>> "temp\DownloadQueues\%DLQUEUENAME%.bat"
if /i "%NU%" EQU "*" echo SET NU=*>> "temp\DownloadQueues\%DLQUEUENAME%.bat"
if /i "%NE%" EQU "*" echo SET NE=*>> "temp\DownloadQueues\%DLQUEUENAME%.bat"
if /i "%NJ%" EQU "*" echo SET NJ=*>> "temp\DownloadQueues\%DLQUEUENAME%.bat"
if /i "%WSU%" EQU "*" echo SET WSU=*>> "temp\DownloadQueues\%DLQUEUENAME%.bat"
if /i "%WSE%" EQU "*" echo SET WSE=*>> "temp\DownloadQueues\%DLQUEUENAME%.bat"
if /i "%WSJ%" EQU "*" echo SET WSJ=*>> "temp\DownloadQueues\%DLQUEUENAME%.bat"
if /i "%M10%" EQU "*" echo SET M10=*>> "temp\DownloadQueues\%DLQUEUENAME%.bat"
if /i "%IOS9%" EQU "*" echo SET IOS9=*>> "temp\DownloadQueues\%DLQUEUENAME%.bat"
if /i "%IOS12%" EQU "*" echo SET IOS12=*>> "temp\DownloadQueues\%DLQUEUENAME%.bat"
if /i "%IOS13%" EQU "*" echo SET IOS13=*>> "temp\DownloadQueues\%DLQUEUENAME%.bat"
if /i "%IOS14%" EQU "*" echo SET IOS14=*>> "temp\DownloadQueues\%DLQUEUENAME%.bat"
if /i "%IOS15%" EQU "*" echo SET IOS15=*>> "temp\DownloadQueues\%DLQUEUENAME%.bat"
if /i "%IOS17%" EQU "*" echo SET IOS17=*>> "temp\DownloadQueues\%DLQUEUENAME%.bat"
if /i "%IOS21%" EQU "*" echo SET IOS21=*>> "temp\DownloadQueues\%DLQUEUENAME%.bat"
if /i "%IOS22%" EQU "*" echo SET IOS22=*>> "temp\DownloadQueues\%DLQUEUENAME%.bat"
if /i "%IOS28%" EQU "*" echo SET IOS28=*>> "temp\DownloadQueues\%DLQUEUENAME%.bat"
if /i "%IOS31%" EQU "*" echo SET IOS31=*>> "temp\DownloadQueues\%DLQUEUENAME%.bat"
if /i "%IOS33%" EQU "*" echo SET IOS33=*>> "temp\DownloadQueues\%DLQUEUENAME%.bat"
if /i "%IOS34%" EQU "*" echo SET IOS34=*>> "temp\DownloadQueues\%DLQUEUENAME%.bat"
if /i "%IOS35%" EQU "*" echo SET IOS35=*>> "temp\DownloadQueues\%DLQUEUENAME%.bat"
if /i "%IOS36%" EQU "*" echo SET IOS36=*>> "temp\DownloadQueues\%DLQUEUENAME%.bat"
if /i "%IOS36v3608%" EQU "*" echo SET IOS36v3608=*>> "temp\DownloadQueues\%DLQUEUENAME%.bat"
if /i "%IOS37%" EQU "*" echo SET IOS37=*>> "temp\DownloadQueues\%DLQUEUENAME%.bat"
if /i "%IOS38%" EQU "*" echo SET IOS38=*>> "temp\DownloadQueues\%DLQUEUENAME%.bat"
if /i "%IOS41%" EQU "*" echo SET IOS41=*>> "temp\DownloadQueues\%DLQUEUENAME%.bat"
if /i "%IOS48v4124%" EQU "*" echo SET IOS48v4124=*>> "temp\DownloadQueues\%DLQUEUENAME%.bat"
if /i "%IOS43%" EQU "*" echo SET IOS43=*>> "temp\DownloadQueues\%DLQUEUENAME%.bat"
if /i "%IOS45%" EQU "*" echo SET IOS45=*>> "temp\DownloadQueues\%DLQUEUENAME%.bat"
if /i "%IOS46%" EQU "*" echo SET IOS46=*>> "temp\DownloadQueues\%DLQUEUENAME%.bat"
if /i "%IOS53%" EQU "*" echo SET IOS53=*>> "temp\DownloadQueues\%DLQUEUENAME%.bat"
if /i "%IOS55%" EQU "*" echo SET IOS55=*>> "temp\DownloadQueues\%DLQUEUENAME%.bat"
if /i "%IOS56%" EQU "*" echo SET IOS56=*>> "temp\DownloadQueues\%DLQUEUENAME%.bat"
if /i "%IOS57%" EQU "*" echo SET IOS57=*>> "temp\DownloadQueues\%DLQUEUENAME%.bat"
if /i "%IOS58%" EQU "*" echo SET IOS58=*>> "temp\DownloadQueues\%DLQUEUENAME%.bat"
if /i "%IOS59%" EQU "*" echo SET IOS59=*>> "temp\DownloadQueues\%DLQUEUENAME%.bat"
if /i "%IOS61%" EQU "*" echo SET IOS61=*>> "temp\DownloadQueues\%DLQUEUENAME%.bat"
if /i "%IOS62%" EQU "*" echo SET IOS62=*>> "temp\DownloadQueues\%DLQUEUENAME%.bat"
if /i "%A0e%" EQU "*" echo SET A0e=*>> "temp\DownloadQueues\%DLQUEUENAME%.bat"
::if /i "%A01%" EQU "*" echo SET A01=*>> "temp\DownloadQueues\%DLQUEUENAME%.bat"
::if /i "%A0e_70%" EQU "*" echo SET A0e_70=*>> "temp\DownloadQueues\%DLQUEUENAME%.bat"
if /i "%A01_60%" EQU "*" echo SET A01_60=*>> "temp\DownloadQueues\%DLQUEUENAME%.bat"
::if /i "%A0e_60%" EQU "*" echo SET A0e_60=*>> "temp\DownloadQueues\%DLQUEUENAME%.bat"
::if /i "%A01_70%" EQU "*" echo SET A01_70=*>> "temp\DownloadQueues\%DLQUEUENAME%.bat"
if /i "%A1c%" EQU "*" echo SET A1c=*>> "temp\DownloadQueues\%DLQUEUENAME%.bat"
if /i "%A1f%" EQU "*" echo SET A1f=*>> "temp\DownloadQueues\%DLQUEUENAME%.bat"
if /i "%A22%" EQU "*" echo SET A22=*>> "temp\DownloadQueues\%DLQUEUENAME%.bat"
if /i "%A0d%" EQU "*" echo SET A0d=*>> "temp\DownloadQueues\%DLQUEUENAME%.bat"
if /i "%A0c%" EQU "*" echo SET A0c=*>> "temp\DownloadQueues\%DLQUEUENAME%.bat"
if /i "%A78%" EQU "*" echo SET A78=*>> "temp\DownloadQueues\%DLQUEUENAME%.bat"
if /i "%A7b%" EQU "*" echo SET A7b=*>> "temp\DownloadQueues\%DLQUEUENAME%.bat"
if /i "%A7e%" EQU "*" echo SET A7e=*>> "temp\DownloadQueues\%DLQUEUENAME%.bat"
if /i "%A84%" EQU "*" echo SET A84=*>> "temp\DownloadQueues\%DLQUEUENAME%.bat"
if /i "%A87%" EQU "*" echo SET A87=*>> "temp\DownloadQueues\%DLQUEUENAME%.bat"
if /i "%A8a%" EQU "*" echo SET A8a=*>> "temp\DownloadQueues\%DLQUEUENAME%.bat"
if /i "%A81%" EQU "*" echo SET A81=*>> "temp\DownloadQueues\%DLQUEUENAME%.bat"
if /i "%A8d%" EQU "*" echo SET A8d=*>> "temp\DownloadQueues\%DLQUEUENAME%.bat"
if /i "%A9d%" EQU "*" echo SET A9d=*>> "temp\DownloadQueues\%DLQUEUENAME%.bat"
if /i "%A94%" EQU "*" echo SET A94=*>> "temp\DownloadQueues\%DLQUEUENAME%.bat"
if /i "%A97%" EQU "*" echo SET A97=*>> "temp\DownloadQueues\%DLQUEUENAME%.bat"
if /i "%A9a%" EQU "*" echo SET A9a=*>> "temp\DownloadQueues\%DLQUEUENAME%.bat"
if /i "%cIOS202[37]-v5%" EQU "*" echo SET cIOS202[37]-v5=*>> "temp\DownloadQueues\%DLQUEUENAME%.bat"
if /i "%cIOS202[38]-v5%" EQU "*" echo SET cIOS202[38]-v5=*>> "temp\DownloadQueues\%DLQUEUENAME%.bat"
if /i "%cIOS222[38]-v4%" EQU "*" echo SET cIOS222[38]-v4=*>> "temp\DownloadQueues\%DLQUEUENAME%.bat"
if /i "%cIOS223[37-38]-v4%" EQU "*" echo SET cIOS223[37-38]-v4=*>> "temp\DownloadQueues\%DLQUEUENAME%.bat"
if /i "%cBC%" EQU "*" echo SET cBC=*>> "temp\DownloadQueues\%DLQUEUENAME%.bat"
if /i "%DML%" EQU "*" echo SET DML=*>> "temp\DownloadQueues\%DLQUEUENAME%.bat"
if /i "%cIOS222[38]-v5%" EQU "*" echo SET cIOS222[38]-v5=*>> "temp\DownloadQueues\%DLQUEUENAME%.bat"
if /i "%cIOS223[37]-v5%" EQU "*" echo SET cIOS223[37]-v5=*>> "temp\DownloadQueues\%DLQUEUENAME%.bat"
if /i "%cIOS224[57]-v5%" EQU "*" echo SET cIOS224[57]-v5=*>> "temp\DownloadQueues\%DLQUEUENAME%.bat"
if /i "%cIOS202[60]-v5.1R%" EQU "*" echo SET cIOS202[60]-v5.1R=*>> "temp\DownloadQueues\%DLQUEUENAME%.bat"
if /i "%cIOS222[38]-v5.1R%" EQU "*" echo SET cIOS222[38]-v5.1R=*>> "temp\DownloadQueues\%DLQUEUENAME%.bat"
if /i "%cIOS223[37]-v5.1R%" EQU "*" echo SET cIOS223[37]-v5.1R=*>> "temp\DownloadQueues\%DLQUEUENAME%.bat"
if /i "%cIOS224[57]-v5.1R%" EQU "*" echo SET cIOS224[57]-v5.1R=*>> "temp\DownloadQueues\%DLQUEUENAME%.bat"
if /i "%cIOS248[38]-d2x-v10-beta52%" EQU "*" echo SET cIOS248[38]-d2x-v10-beta52=*>> "temp\DownloadQueues\%DLQUEUENAME%.bat"
if /i "%cIOS249-v14%" EQU "*" echo SET cIOS249-v14=*>> "temp\DownloadQueues\%DLQUEUENAME%.bat"
if /i "%cIOS249-v17b%" EQU "*" echo SET cIOS249-v17b=*>> "temp\DownloadQueues\%DLQUEUENAME%.bat"
if /i "%cIOS249[37]-v19%" EQU "*" echo SET cIOS249[37]-v19=*>> "temp\DownloadQueues\%DLQUEUENAME%.bat"
if /i "%cIOS249[38]-v19%" EQU "*" echo SET cIOS249[38]-v19=*>> "temp\DownloadQueues\%DLQUEUENAME%.bat"
if /i "%cIOS249[57]-v19%" EQU "*" echo SET cIOS249[57]-v19=*>> "temp\DownloadQueues\%DLQUEUENAME%.bat"
if /i "%cIOS250-v14%" EQU "*" echo SET cIOS250-v14=*>> "temp\DownloadQueues\%DLQUEUENAME%.bat"
if /i "%cIOS250-v17b%" EQU "*" echo SET cIOS250-v17b=*>> "temp\DownloadQueues\%DLQUEUENAME%.bat"
if /i "%cIOS250[37]-v19%" EQU "*" echo SET cIOS250[37]-v19=*>> "temp\DownloadQueues\%DLQUEUENAME%.bat"
if /i "%cIOS250[38]-v19%" EQU "*" echo SET cIOS250[38]-v19=*>> "temp\DownloadQueues\%DLQUEUENAME%.bat"
if /i "%cIOS250[57]-v19%" EQU "*" echo SET cIOS250[57]-v19=*>> "temp\DownloadQueues\%DLQUEUENAME%.bat"
if /i "%cIOS249[38]-v20%" EQU "*" echo SET cIOS249[38]-v20=*>> "temp\DownloadQueues\%DLQUEUENAME%.bat"
if /i "%cIOS250[38]-v20%" EQU "*" echo SET cIOS250[38]-v20=*>> "temp\DownloadQueues\%DLQUEUENAME%.bat"
if /i "%cIOS249[56]-v20%" EQU "*" echo SET cIOS249[56]-v20=*>> "temp\DownloadQueues\%DLQUEUENAME%.bat"
if /i "%cIOS250[56]-v20%" EQU "*" echo SET cIOS250[56]-v20=*>> "temp\DownloadQueues\%DLQUEUENAME%.bat"
if /i "%cIOS249[57]-v20%" EQU "*" echo SET cIOS249[57]-v20=*>> "temp\DownloadQueues\%DLQUEUENAME%.bat"
if /i "%cIOS250[57]-v20%" EQU "*" echo SET cIOS250[57]-v20=*>> "temp\DownloadQueues\%DLQUEUENAME%.bat"
if /i "%cIOS249[37]-v21%" EQU "*" echo SET cIOS249[37]-v21=*>> "temp\DownloadQueues\%DLQUEUENAME%.bat"
if /i "%cIOS250[37]-v21%" EQU "*" echo SET cIOS250[37]-v21=*>> "temp\DownloadQueues\%DLQUEUENAME%.bat"
if /i "%cIOS249[38]-v21%" EQU "*" echo SET cIOS249[38]-v21=*>> "temp\DownloadQueues\%DLQUEUENAME%.bat"
if /i "%cIOS250[38]-v21%" EQU "*" echo SET cIOS250[38]-v21=*>> "temp\DownloadQueues\%DLQUEUENAME%.bat"
if /i "%cIOS249[53]-v21%" EQU "*" echo SET cIOS249[53]-v21=*>> "temp\DownloadQueues\%DLQUEUENAME%.bat"
if /i "%cIOS250[53]-v21%" EQU "*" echo SET cIOS250[53]-v21=*>> "temp\DownloadQueues\%DLQUEUENAME%.bat"
if /i "%cIOS249[55]-v21%" EQU "*" echo SET cIOS249[55]-v21=*>> "temp\DownloadQueues\%DLQUEUENAME%.bat"
if /i "%cIOS250[55]-v21%" EQU "*" echo SET cIOS250[55]-v21=*>> "temp\DownloadQueues\%DLQUEUENAME%.bat"
if /i "%cIOS249[56]-v21%" EQU "*" echo SET cIOS249[56]-v21=*>> "temp\DownloadQueues\%DLQUEUENAME%.bat"
if /i "%cIOS250[56]-v21%" EQU "*" echo SET cIOS250[56]-v21=*>> "temp\DownloadQueues\%DLQUEUENAME%.bat"
if /i "%cIOS249[57]-v21%" EQU "*" echo SET cIOS249[57]-v21=*>> "temp\DownloadQueues\%DLQUEUENAME%.bat"
if /i "%cIOS250[57]-v21%" EQU "*" echo SET cIOS250[57]-v21=*>> "temp\DownloadQueues\%DLQUEUENAME%.bat"
if /i "%cIOS249[58]-v21%" EQU "*" echo SET cIOS249[58]-v21=*>> "temp\DownloadQueues\%DLQUEUENAME%.bat"
if /i "%cIOS250[58]-v21%" EQU "*" echo SET cIOS250[58]-v21=*>> "temp\DownloadQueues\%DLQUEUENAME%.bat"
if /i "%cIOS249[37]-d2x-v10-beta52%" EQU "*" echo SET cIOS249[37]-d2x-v10-beta52=*>> "temp\DownloadQueues\%DLQUEUENAME%.bat"
if /i "%cIOS249[38]-d2x-v10-beta52%" EQU "*" echo SET cIOS249[38]-d2x-v10-beta52=*>> "temp\DownloadQueues\%DLQUEUENAME%.bat"
if /i "%cIOS249[56]-d2x-v10-beta52%" EQU "*" echo SET cIOS249[56]-d2x-v10-beta52=*>> "temp\DownloadQueues\%DLQUEUENAME%.bat"
if /i "%cIOS249[53]-d2x-v10-beta52%" EQU "*" echo SET cIOS249[53]-d2x-v10-beta52=*>> "temp\DownloadQueues\%DLQUEUENAME%.bat"
if /i "%cIOS249[55]-d2x-v10-beta52%" EQU "*" echo SET cIOS249[55]-d2x-v10-beta52=*>> "temp\DownloadQueues\%DLQUEUENAME%.bat"
if /i "%cIOS249[57]-d2x-v10-beta52%" EQU "*" echo SET cIOS249[57]-d2x-v10-beta52=*>> "temp\DownloadQueues\%DLQUEUENAME%.bat"
if /i "%cIOS249[58]-d2x-v10-beta52%" EQU "*" echo SET cIOS249[58]-d2x-v10-beta52=*>> "temp\DownloadQueues\%DLQUEUENAME%.bat"
if /i "%cIOS249[60]-d2x-v10-beta52%" EQU "*" echo SET cIOS249[60]-d2x-v10-beta52=*>> "temp\DownloadQueues\%DLQUEUENAME%.bat"
if /i "%cIOS249[70]-d2x-v10-beta52%" EQU "*" echo SET cIOS249[70]-d2x-v10-beta52=*>> "temp\DownloadQueues\%DLQUEUENAME%.bat"
if /i "%cIOS249[80]-d2x-v10-beta52%" EQU "*" echo SET cIOS249[80]-d2x-v10-beta52=*>> "temp\DownloadQueues\%DLQUEUENAME%.bat"
if /i "%cIOS250[37]-d2x-v10-beta52%" EQU "*" echo SET cIOS250[37]-d2x-v10-beta52=*>> "temp\DownloadQueues\%DLQUEUENAME%.bat"
if /i "%cIOS250[38]-d2x-v10-beta52%" EQU "*" echo SET cIOS250[38]-d2x-v10-beta52=*>> "temp\DownloadQueues\%DLQUEUENAME%.bat"
if /i "%cIOS250[53]-d2x-v10-beta52%" EQU "*" echo SET cIOS250[53]-d2x-v10-beta52=*>> "temp\DownloadQueues\%DLQUEUENAME%.bat"
if /i "%cIOS250[55]-d2x-v10-beta52%" EQU "*" echo SET cIOS250[55]-d2x-v10-beta52=*>> "temp\DownloadQueues\%DLQUEUENAME%.bat"
if /i "%cIOS250[56]-d2x-v10-beta52%" EQU "*" echo SET cIOS250[56]-d2x-v10-beta52=*>> "temp\DownloadQueues\%DLQUEUENAME%.bat"
if /i "%cIOS250[57]-d2x-v10-beta52%" EQU "*" echo SET cIOS250[57]-d2x-v10-beta52=*>> "temp\DownloadQueues\%DLQUEUENAME%.bat"
if /i "%cIOS250[58]-d2x-v10-beta52%" EQU "*" echo SET cIOS250[58]-d2x-v10-beta52=*>> "temp\DownloadQueues\%DLQUEUENAME%.bat"
if /i "%cIOS250[60]-d2x-v10-beta52%" EQU "*" echo SET cIOS250[60]-d2x-v10-beta52=*>> "temp\DownloadQueues\%DLQUEUENAME%.bat"
if /i "%cIOS250[70]-d2x-v10-beta52%" EQU "*" echo SET cIOS250[70]-d2x-v10-beta52=*>> "temp\DownloadQueues\%DLQUEUENAME%.bat"
if /i "%cIOS250[80]-d2x-v10-beta52%" EQU "*" echo SET cIOS250[80]-d2x-v10-beta52=*>> "temp\DownloadQueues\%DLQUEUENAME%.bat"
if /i "%cIOS251[58]-d2x-v10-beta52%" EQU "*" echo SET cIOS251[58]-d2x-v10-beta52=*>> "temp\DownloadQueues\%DLQUEUENAME%.bat"
if /i "%cIOS248[38]-d2x-vWii%" EQU "*" echo SET cIOS248[38]-d2x-vWii=*>> "temp\DownloadQueues\%DLQUEUENAME%.bat"
if /i "%cIOS249[56]-d2x-vWii%" EQU "*" echo SET cIOS249[56]-d2x-vWii=*>> "temp\DownloadQueues\%DLQUEUENAME%.bat"
if /i "%cIOS250[57]-d2x-vWii%" EQU "*" echo SET cIOS250[57]-d2x-vWii=*>> "temp\DownloadQueues\%DLQUEUENAME%.bat"
if /i "%cIOS251[58]-d2x-vWii%" EQU "*" echo SET cIOS251[58]-d2x-vWii=*>> "temp\DownloadQueues\%DLQUEUENAME%.bat"
if /i "%RVL-cMIOS-v65535(v10)_WiiGator_WiiPower_v0.2%" EQU "*" echo SET RVL-cMIOS-v65535(v10)_WiiGator_WiiPower_v0.2=*>> "temp\DownloadQueues\%DLQUEUENAME%.bat"
if /i "%RVL-cmios-v4_WiiGator_GCBL_v0.2%" EQU "*" echo SET RVL-cmios-v4_WiiGator_GCBL_v0.2=*>> "temp\DownloadQueues\%DLQUEUENAME%.bat"
if /i "%RVL-cmios-v4_Waninkoko_rev5%" EQU "*" echo SET RVL-cmios-v4_Waninkoko_rev5=*>> "temp\DownloadQueues\%DLQUEUENAME%.bat"
if /i "%DarkWii_Red_vWiiJ%" EQU "*" echo SET DarkWii_Red_vWiiJ=*>> "temp\DownloadQueues\%DLQUEUENAME%.bat"
if /i "%DarkWii_Red_vWiiU%" EQU "*" echo SET DarkWii_Red_vWiiU=*>> "temp\DownloadQueues\%DLQUEUENAME%.bat"
if /i "%DarkWii_Red_vWiiE%" EQU "*" echo SET DarkWii_Red_vWiiE=*>> "temp\DownloadQueues\%DLQUEUENAME%.bat"
if /i "%DarkWii_Green_vWiiJ%" EQU "*" echo SET DarkWii_Green_vWiiJ=*>> "temp\DownloadQueues\%DLQUEUENAME%.bat"
if /i "%DarkWii_Green_vWiiU%" EQU "*" echo SET DarkWii_Green_vWiiU=*>> "temp\DownloadQueues\%DLQUEUENAME%.bat"
if /i "%DarkWii_Green_vWiiE%" EQU "*" echo SET DarkWii_Green_vWiiE=*>> "temp\DownloadQueues\%DLQUEUENAME%.bat"
if /i "%DarkWii_Blue_vWiiJ%" EQU "*" echo SET DarkWii_Blue_vWiiJ=*>> "temp\DownloadQueues\%DLQUEUENAME%.bat"
if /i "%DarkWii_Blue_vWiiU%" EQU "*" echo SET DarkWii_Blue_vWiiU=*>> "temp\DownloadQueues\%DLQUEUENAME%.bat"
if /i "%DarkWii_Blue_vWiiE%" EQU "*" echo SET DarkWii_Blue_vWiiE=*>> "temp\DownloadQueues\%DLQUEUENAME%.bat"
if /i "%darkwii_orange_vWiiJ%" EQU "*" echo SET darkwii_orange_vWiiJ=*>> "temp\DownloadQueues\%DLQUEUENAME%.bat"
if /i "%darkwii_orange_vWiiU%" EQU "*" echo SET darkwii_orange_vWiiU=*>> "temp\DownloadQueues\%DLQUEUENAME%.bat"
if /i "%darkwii_orange_vWiiE%" EQU "*" echo SET darkwii_orange_vWiiE=*>> "temp\DownloadQueues\%DLQUEUENAME%.bat"
if /i "%DarkWii_Red_4.3U%" EQU "*" echo SET DarkWii_Red_4.3U=*>> "temp\DownloadQueues\%DLQUEUENAME%.bat"
if /i "%DarkWii_Red_4.2U%" EQU "*" echo SET DarkWii_Red_4.2U=*>> "temp\DownloadQueues\%DLQUEUENAME%.bat"
if /i "%DarkWii_Red_4.1U%" EQU "*" echo SET DarkWii_Red_4.1U=*>> "temp\DownloadQueues\%DLQUEUENAME%.bat"
if /i "%DarkWii_Red_4.3E%" EQU "*" echo SET DarkWii_Red_4.3E=*>> "temp\DownloadQueues\%DLQUEUENAME%.bat"
if /i "%DarkWii_Red_4.2E%" EQU "*" echo SET DarkWii_Red_4.2E=*>> "temp\DownloadQueues\%DLQUEUENAME%.bat"
if /i "%DarkWii_Red_4.1E%" EQU "*" echo SET DarkWii_Red_4.1E=*>> "temp\DownloadQueues\%DLQUEUENAME%.bat"
if /i "%DarkWii_Red_4.3J%" EQU "*" echo SET DarkWii_Red_4.3J=*>> "temp\DownloadQueues\%DLQUEUENAME%.bat"
if /i "%DarkWii_Red_4.2J%" EQU "*" echo SET DarkWii_Red_4.2J=*>> "temp\DownloadQueues\%DLQUEUENAME%.bat"
if /i "%DarkWii_Red_4.1J%" EQU "*" echo SET DarkWii_Red_4.1J=*>> "temp\DownloadQueues\%DLQUEUENAME%.bat"
if /i "%DarkWii_Red_4.3K%" EQU "*" echo SET DarkWii_Red_4.3K=*>> "temp\DownloadQueues\%DLQUEUENAME%.bat"
if /i "%DarkWii_Red_4.2K%" EQU "*" echo SET DarkWii_Red_4.2K=*>> "temp\DownloadQueues\%DLQUEUENAME%.bat"
if /i "%DarkWii_Red_4.1K%" EQU "*" echo SET DarkWii_Red_4.1K=*>> "temp\DownloadQueues\%DLQUEUENAME%.bat"
if /i "%DarkWii_Green_4.3U%" EQU "*" echo SET DarkWii_Green_4.3U=*>> "temp\DownloadQueues\%DLQUEUENAME%.bat"
if /i "%DarkWii_Green_4.2U%" EQU "*" echo SET DarkWii_Green_4.2U=*>> "temp\DownloadQueues\%DLQUEUENAME%.bat"
if /i "%DarkWii_Green_4.1U%" EQU "*" echo SET DarkWii_Green_4.1U=*>> "temp\DownloadQueues\%DLQUEUENAME%.bat"
if /i "%DarkWii_Green_4.3E%" EQU "*" echo SET DarkWii_Green_4.3E=*>> "temp\DownloadQueues\%DLQUEUENAME%.bat"
if /i "%DarkWii_Green_4.2E%" EQU "*" echo SET DarkWii_Green_4.2E=*>> "temp\DownloadQueues\%DLQUEUENAME%.bat"
if /i "%DarkWii_Green_4.1E%" EQU "*" echo SET DarkWii_Green_4.1E=*>> "temp\DownloadQueues\%DLQUEUENAME%.bat"
if /i "%DarkWii_Green_4.3J%" EQU "*" echo SET DarkWii_Green_4.3J=*>> "temp\DownloadQueues\%DLQUEUENAME%.bat"
if /i "%DarkWii_Green_4.2J%" EQU "*" echo SET DarkWii_Green_4.2J=*>> "temp\DownloadQueues\%DLQUEUENAME%.bat"
if /i "%DarkWii_Green_4.1J%" EQU "*" echo SET DarkWii_Green_4.1J=*>> "temp\DownloadQueues\%DLQUEUENAME%.bat"
if /i "%DarkWii_Green_4.3K%" EQU "*" echo SET DarkWii_Green_4.3K=*>> "temp\DownloadQueues\%DLQUEUENAME%.bat"
if /i "%DarkWii_Green_4.2K%" EQU "*" echo SET DarkWii_Green_4.2K=*>> "temp\DownloadQueues\%DLQUEUENAME%.bat"
if /i "%DarkWii_Green_4.1K%" EQU "*" echo SET DarkWii_Green_4.1K=*>> "temp\DownloadQueues\%DLQUEUENAME%.bat"
if /i "%DarkWii_Blue_4.3U%" EQU "*" echo SET DarkWii_Blue_4.3U=*>> "temp\DownloadQueues\%DLQUEUENAME%.bat"
if /i "%DarkWii_Blue_4.2U%" EQU "*" echo SET DarkWii_Blue_4.2U=*>> "temp\DownloadQueues\%DLQUEUENAME%.bat"
if /i "%DarkWii_Blue_4.1U%" EQU "*" echo SET DarkWii_Blue_4.1U=*>> "temp\DownloadQueues\%DLQUEUENAME%.bat"
if /i "%DarkWii_Blue_4.3E%" EQU "*" echo SET DarkWii_Blue_4.3E=*>> "temp\DownloadQueues\%DLQUEUENAME%.bat"
if /i "%DarkWii_Blue_4.2E%" EQU "*" echo SET DarkWii_Blue_4.2E=*>> "temp\DownloadQueues\%DLQUEUENAME%.bat"
if /i "%DarkWii_Blue_4.1E%" EQU "*" echo SET DarkWii_Blue_4.1E=*>> "temp\DownloadQueues\%DLQUEUENAME%.bat"
if /i "%DarkWii_Blue_4.3J%" EQU "*" echo SET DarkWii_Blue_4.3J=*>> "temp\DownloadQueues\%DLQUEUENAME%.bat"
if /i "%DarkWii_Blue_4.2J%" EQU "*" echo SET DarkWii_Blue_4.2J=*>> "temp\DownloadQueues\%DLQUEUENAME%.bat"
if /i "%DarkWii_Blue_4.1J%" EQU "*" echo SET DarkWii_Blue_4.1J=*>> "temp\DownloadQueues\%DLQUEUENAME%.bat"
if /i "%DarkWii_Blue_4.3K%" EQU "*" echo SET DarkWii_Blue_4.3K=*>> "temp\DownloadQueues\%DLQUEUENAME%.bat"
if /i "%DarkWii_Blue_4.2K%" EQU "*" echo SET DarkWii_Blue_4.2K=*>> "temp\DownloadQueues\%DLQUEUENAME%.bat"
if /i "%DarkWii_Blue_4.1K%" EQU "*" echo SET DarkWii_Blue_4.1K=*>> "temp\DownloadQueues\%DLQUEUENAME%.bat"
if /i "%darkwii_orange_4.3U%" EQU "*" echo SET darkwii_orange_4.3U=*>> "temp\DownloadQueues\%DLQUEUENAME%.bat"
if /i "%darkwii_orange_4.2U%" EQU "*" echo SET darkwii_orange_4.2U=*>> "temp\DownloadQueues\%DLQUEUENAME%.bat"
if /i "%darkwii_orange_4.1U%" EQU "*" echo SET darkwii_orange_4.1U=*>> "temp\DownloadQueues\%DLQUEUENAME%.bat"
if /i "%darkwii_orange_4.3E%" EQU "*" echo SET darkwii_orange_4.3E=*>> "temp\DownloadQueues\%DLQUEUENAME%.bat"
if /i "%darkwii_orange_4.2E%" EQU "*" echo SET darkwii_orange_4.2E=*>> "temp\DownloadQueues\%DLQUEUENAME%.bat"
if /i "%darkwii_orange_4.1E%" EQU "*" echo SET darkwii_orange_4.1E=*>> "temp\DownloadQueues\%DLQUEUENAME%.bat"
if /i "%darkwii_orange_4.3J%" EQU "*" echo SET darkwii_orange_4.3J=*>> "temp\DownloadQueues\%DLQUEUENAME%.bat"
if /i "%darkwii_orange_4.2J%" EQU "*" echo SET darkwii_orange_4.2J=*>> "temp\DownloadQueues\%DLQUEUENAME%.bat"
if /i "%darkwii_orange_4.1J%" EQU "*" echo SET darkwii_orange_4.1J=*>> "temp\DownloadQueues\%DLQUEUENAME%.bat"
if /i "%darkwii_orange_4.3K%" EQU "*" echo SET darkwii_orange_4.3K=*>> "temp\DownloadQueues\%DLQUEUENAME%.bat"
if /i "%darkwii_orange_4.2K%" EQU "*" echo SET darkwii_orange_4.2K=*>> "temp\DownloadQueues\%DLQUEUENAME%.bat"
if /i "%darkwii_orange_4.1K%" EQU "*" echo SET darkwii_orange_4.1K=*>> "temp\DownloadQueues\%DLQUEUENAME%.bat"
support\sfk filter "temp\DownloadQueues\%DLQUEUENAME%.bat" -unique -write -yes>nul
support\sfk filter "temp\DownloadQueues\%DLQUEUENAME%.bat" -lerep _" "__ -write -yes>nul
if not exist temp\DLGotosADV.txt goto:quickskip
::Loop through the following once for EACH line in *.txt
for /F "tokens=*" %%A in (temp\DLGotosADV.txt) do call :process1 %%A
goto:quickskip
:process1
set AdvDLX=%*
set /a AdvNumberCOPY2=%AdvNumberCOPY2%+1
echo "echo %AdvDLX:~0,10%%AdvNumberCOPY2%.batredirectredirecttemp\DLGotosADV.txt">>"temp\DownloadQueues\%DLQUEUENAME%.bat"
goto:EOF
:quickskip
if not exist temp\DLnamesADV.txt goto:quickskip
::Loop through the following once for EACH line in *.txt
for /F "tokens=*" %%A in (temp\DLnamesADV.txt) do call :process2 %%A
goto:quickskip
:process2
echo "echo %* redirectredirecttemp\DLnamesADV.txt">>"temp\DownloadQueues\%DLQUEUENAME%.bat"
goto:EOF
:quickskip
if not exist temp\DLGotosADV.txt goto:quickskip
copy /y temp\DLGotosADV.txt temp\DLGotosADV-copy.txt>nul
::Loop through the following once for EACH line in *.txt
:doitagain
for /F "tokens=*" %%A in (temp\DLGotosADV-copy.txt) do call :process3 %%A
goto:quickskip
:process3
set AdvDLX=%*
set /a AdvNumberCOPY3=%AdvNumberCOPY3%+1
echo "if exist %AdvDLX:~0,10%%AdvNumberCOPY3%.bat del %AdvDLX:~0,10%%AdvNumberCOPY3%.batredirectnul">>"temp\DownloadQueues\%DLQUEUENAME%.bat"
for /F "tokens=*" %%A in (%AdvDLX%) do call :process4 %%A
goto:tinyskip
:process4
echo "echo quote%*quoteredirectredirect%AdvDLX:~0,10%%AdvNumberCOPY3%.bat">>"temp\DownloadQueues\%DLQUEUENAME%.bat"
goto:EOF
:tinyskip
support\sfk filter -quiet temp\DLGotosADV-copy.txt -le!"%AdvDLX:~5%" -write -yes
echo "support\sfk -spat filter -quiet %AdvDLX:~0,10%%AdvNumberCOPY3%.bat -rep _quotequotequote__ -write -yes">>"temp\DownloadQueues\%DLQUEUENAME%.bat"
goto:doitagain
::goto:EOF
:quickskip
echo ":endofqueue">>"temp\DownloadQueues\%DLQUEUENAME%.bat"
support\sfk filter "temp\DownloadQueues\%DLQUEUENAME%.bat" -rep _"redirect"_">"_ -write -yes>nul
support\sfk filter -quiet -spat "temp\DownloadQueues\%DLQUEUENAME%.bat" -rep _\x22__ -write -yes
support\sfk filter -quiet "temp\DownloadQueues\%DLQUEUENAME%.bat" -rep _quotequotequote_\x22_ -write -yes
support\sfk filter -quiet -spat "temp\DownloadQueues\%DLQUEUENAME%.bat" -rep _quote_\x22_ -rep _@_%%_ -write -yes
support\sfk filter -quiet "temp\DownloadQueues\%DLQUEUENAME%.bat" -rep _"set AdvNumber="*_"set AdvNumber=%AdvNumberCOPY%"_ -write -yes
::support\sfk filter "temp\DownloadQueues\%DLQUEUENAME%.bat" -spat -rep _@_%%_ -write -yes>nul
if exist "temp\DownloadQueues\%DLQUEUENAME%.bat" echo Download Queue Saved
@ping 127.0.0.1 -n 2 -w 1000> nul
if /i "%MENU1%" EQU "L" set "CurrentQueue=%DLQUEUENAME%.bat"
if /i "%SETTINGS%" EQU "S" goto:DOWNLOADQUEUE
::if /i "%SETTINGS%" EQU "S+" goto:DOWNLOADQUEUE
if /i "%FINISH%" EQU "S" goto:FINISH
::if /i "%FINISH%" EQU "S+" goto:FINISH
::...................................Copy (rename %Drive%\wad if applicable)...............................
:COPY
if not exist "%Drive%"\WAD goto:creditcheck
if /i "%USBCONFIG%" EQU "USB" goto:creditcheck
if /i "%MENU1%" EQU "U" goto:creditcheck
if /i "%MENU1%" EQU "AW" goto:creditcheck
::if /i "%DRIVE%" NEQ "COPY_TO_SD" goto:creditcheck
Set COPY="
cls
echo ModMii v%currentversion%
echo by XFlak
echo.
echo "%Drive%\WAD" Folder already exists, what would you like to do?
echo.
echo M = Merge downloads with existing "%Drive%\WAD" Folder.
echo Duplicates will be skipped.
echo.
echo R = Rename the existing WAD Folder to WAD#
echo and begin downloading.
echo.
echo C = Cancel/Main Menu
echo.
echo E = Exit
echo.
set /p COPY=Enter Selection Here:
set "COPY=%COPY:"=%"
if /i "%COPY%" EQU "M" goto:creditcheck
if /i "%COPY%" EQU "E" EXIT
if /i "%COPY%" EQU "C" goto:MENU
if /i "%COPY%" NEQ "R" echo You Have Entered an Incorrect Key
if /i "%COPY%" NEQ "R" @ping 127.0.0.1 -n 2 -w 1000> nul
if /i "%COPY%" NEQ "R" goto:COPY
:COPY2
SET /a COUNT=%COUNT%+1
if exist "%Drive%"\WAD%COUNT% goto:COPY2
::move "%Drive%"\WAD "%Drive%"\WAD%COUNT%>nul
rename "%Drive%"\WAD WAD%COUNT%
goto:creditcheck
::.................................................ACTUAL DOWNLOAD CODE...........................................................................
:DOWNLOADSTART
if /i "%loadorgo%" EQU "load" goto:ADVPAGE2
if /i "%loadorgo%" EQU "load4queue" goto:processDLCheck2
if /i "%loadorgo%" EQU "load4switch" goto:processDLCheck2switch
if /i "%loadorgo%" EQU "load4mym2csm" goto:load4mym2csm
set retry=1
set attempt=1
::DBUPDATE.bat check (added in v4.5.0)
::instead of putting out ModMii updates for minor things, the update check can be used to create\download a DBUPDATE.bat file to modify variables like "wadname", "md5", etc.
::if exist "temp\DBUPDATE%currentversion%.bat" call "temp\DBUPDATE%currentversion%.bat"
:DOWNLOADSTART2
::change drive to usb if applicable
if /i "%MENU1%" EQU "FC" goto:skipchange
if not "%REALDRIVE%"=="" set "DRIVE=%REALDRIVE%"
if /i "%USBCONFIG%" NEQ "USB" goto:skipchange
if /i "%WADNAME%" EQU "WiiBackupManager.zip" set "DRIVE=%DRIVEU%"
if /i "%name%" EQU "USB Loader GX" set "DRIVE=%DRIVEU%"
if /i "%name%" EQU "Configurable USB-Loader" set "DRIVE=%DRIVEU%"
if /i "%name%" EQU "WiiFlow" set "DRIVE=%DRIVEU%"
if /i "%name%" EQU "CleanRip" set "DRIVE=%DRIVEU%"
if /i "%name%" EQU "Nintendont" set "DRIVE=%DRIVEU%"
if /i "%PATH1%" EQU "Program Files\FAT32_GUI_Formatter\" set "DRIVE=%DRIVEU%"
if /i "%PATH1%" EQU "Program Files\NKit\" set "DRIVE=%DRIVEU%"
if /i "%PATH1%" EQU "Program Files\GCBM\" set "DRIVE=%DRIVEU%"
:skipchange
if /i "%MENU1%" EQU "S" set DRIVE=temp
if not exist "%Drive%" mkdir "%Drive%"
::if /i "%PATH1%" EQU "FAT32_GUI_Formatter\" set "DRIVE=%DRIVEU%"
::USBGUIDE
if /i "%MENU1%" EQU "U" goto:makewbfsfolder
if /i "%MENU1%" NEQ "W" goto:skip
if /i "%USBGUIDE%" NEQ "Y" goto:skip
:makewbfsfolder
set "wbfsdir=%Drive%\WBFS"
if /i "%USBCONFIG%" EQU "USB" set "wbfsdir=%DriveU%\WBFS"
if not exist "%wbfsdir%" mkdir "%wbfsdir%"
:skip
:actualDL
if /i "%retry%" EQU "1" SET /a CURRENTDL=%CURRENTDL%+1
if /i "%CURRENTDL%" NEQ "1" echo.
if /i "%retry%" EQU "1" support\sfk echo [%redtext%]Downloading %CURRENTDL% of %DLTOTAL%: %name%
if /i "%retry%" NEQ "1" support\sfk echo [%yellowtext%]Re-Downloading %CURRENTDL% of %DLTOTAL%: %name%
echo.
::---------------SKIN MODE-------------
if /i "%SkinMode%" NEQ "Y" goto:notskin
if /i "%CURRENTDL%" EQU "1" set percent=0
::if "%percent%"=="" set percent=0
set percentlast=%percent%
set /a percent=%CURRENTDL%00/%DLTOTAL%
if %percent% LSS %percentlast% set percent=%percentlast%
start support\wizapp PB UPDATE %percent%
:notskin
::---------Exceptions----------------
if /i "%category%" EQU "CHEATS" goto:CHEATS
if /i "%category%" EQU "ManualUpdate" goto:MANUALUPDATE
if /i "%category%" EQU "fullextract" goto:fullextract
if /i "%category%" EQU "NusdApp" goto:NusdApp
if /i "%category%" EQU "auto" goto:fullextract
if /i "%category%" EQU "OSC" goto:OSCprocess
if /i "%category%" EQU "HBAS" goto:HBASprocess
if /i "%category%" EQU "themes" goto:THEMES
if /i "%category%" EQU "STUBS" goto:STUBS
if /i "%basewad%" NEQ "none" goto:CIOSMAKER
if /i "%name%" EQU "Hackmii Installer v1.2" goto:wget
if /i "%name%" EQU "Hackmii Installer v1.0" goto:wget
if /i "%category%" EQU "userdefined" goto:CustomDL
if /i "%category%" EQU "FORWARDER" goto:FORWARDER
if /i "%code1%" EQU "URL" goto:DownloadURL
::if /i "%category%" EQU "IOS" goto:nusd
::--------------------------NUSD.EXE Downloader---------------
:nusd
if not exist "%Drive%"\WAD mkdir "%Drive%"\WAD
::----if exist and fails md5 check, delete and redownload----
:checkifwadexist
if not exist "%Drive%"\WAD\%wadname% goto:nocheckexisting
set md5check=
set md5altcheck=
support\sfk md5 -quiet -verify %md5% "%Drive%"\WAD\%wadname%
if errorlevel 1 set md5check=fail
IF "%md5check%"=="" set md5check=pass
if /i "%md5check%" NEQ "fail" goto:pass
support\sfk md5 -quiet -verify %md5alt% "%Drive%"\WAD\%wadname%
if errorlevel 1 set md5altcheck=fail
IF "%md5altcheck%"=="" set md5altcheck=pass
if /i "%md5altcheck%" NEQ "fail" goto:pass
:fail
echo.
support\sfk echo [%yellowtext%] This file already exists but it failed MD5 verification.
support\sfk echo [%yellowtext%] The current version of the file will be deleted and the file will be re-downloaded.
echo.
SET /a retry=%retry%+1
SET /a attempt=%attempt%+1
del "%Drive%"\WAD\%wadname%>nul
if exist temp\%wadname% del temp\%wadname%>nul
::if exist temp\titles rd /s /q temp\titles
goto:DOWNLOADSTART2
:pass
::option1 disabled
goto:no01check
if /i "%OPTION1%" EQU "OFF" goto:no01check
if not exist temp\%code1%\%code2%\v%version% goto:nocheckexisting
if /i "%OPTION1%" EQU "ON" goto:option1on
if /i "%OPTION1%" EQU "ALL" (goto:option1on) else (goto:option1noton)
:option1on
if not exist "%Drive%"\%code1%\%code2%\v%version% mkdir "%Drive%"\%code1%\%code2%\v%version%
copy /y temp\%code1%\%code2%\v%version% "%Drive%"\%code1%\%code2%\v%version% >nul
:option1noton
if /i "%OPTION1%" EQU "NUS" goto:option1NUS
if /i "%OPTION1%" EQU "ALL" (goto:option1NUS) else (goto:no01check)
:option1NUS
if not exist "%Drive%"\NUS\%code1%%code2%v%version% mkdir "%Drive%"\NUS\%code1%%code2%v%version%
copy /y temp\%code1%\%code2%\v%version% "%Drive%"\NUS\%code1%%code2%v%version% >nul
:no01check
support\sfk echo [%greentext%]This file already exists and has been verified, Skipping download
echo.
set alreadyexists=yes
if /i "%AdvancedDownload%" NEQ "Y" echo "echo %wadname%: Valid">>temp\ModMii_Log.bat
goto:NEXT
:nocheckexisting
::SAVE TO WAD FOLDER ONLY
if not exist "%Drive%"\WAD mkdir "%Drive%"\WAD
if exist temp\%wadname% goto:AlreadyinTemp
::echo If you encounter long periods of inactivity, type "C" while holding "Ctrl",
::echo then type "N", then "Enter" (i.e. Ctrl+C, N, Enter)
::echo.
::cd temp
::..\support\nusd.exe %code1%%code2% %version%
::cd..
::if exist temp\titles\%code1%%code2%\%version%\%code1%%code2%-NUS-v%version%.wad move /y temp\titles\%code1%%code2%\%version%\%code1%%code2%-NUS-v%version%.wad temp\%wadname%>nul
%WiiPy% nus title %code1%%code2% -v %version% --wad "temp\%wadname%"
if /i "%code1%" EQU "00000007" %WiiPy% wad convert -r -o "temp\%wadname%" "temp\%wadname%"
if /i "%code1%" EQU "00070008" %WiiPy% wad convert -r -o "temp\%wadname%" "temp\%wadname%"
::vIOS61 custom stuff
if not exist "temp\%wadname%" goto:skipVIOS61
if /i "%wadname%" EQU "cIOS61[56]-v5918-vWii.wad" goto:buildVIOS61
if exist "temp\cIOS61[56]-v5918-vWii.wad" goto:skipVIOS61
if /i "%wadname%" NEQ "vIOS56-64-v5918-vWii.wad" goto:skipVIOS61
:buildVIOS61
if not exist "temp\vIOS56-64-v5918-vWii.wad" move /y "temp\%wadname%" "temp\vIOS56-64-v5918-vWii.wad">nul
echo.
echo Duplicating vIOS56 to create cIOS61 for vWii...
%WiiPy% iospatch -s 61 -o "temp\cIOS61[56]-v5918-vWii.wad" "temp\vIOS56-64-v5918-vWii.wad"
:skipVIOS61
::HAZA custom stuff
if not exist "temp\%wadname%" goto:skipHAZA
if /i "%wadname%" EQU "Photo-Channel-1.1-dummy-HAZA.wad" goto:buildHAZA
if exist "temp\Photo-Channel-1.1-dummy-HAZA.wad" goto:skipHAZA
if /i "%wadname%" NEQ "Photo-Channel-1.0-NUS-v2.wad" goto:skipHAZA
:buildHAZA
if not exist "temp\Photo-Channel-1.0-NUS-v2.wad" move /y "temp\%wadname%" "temp\Photo-Channel-1.0-NUS-v2.wad">nul
echo.
echo Patching Photo Channel to create 1.1 HAZA dummy...
echo.
::avoiding Sharpii which timestamps!!
::support\sharpii.exe Wad -e "temp\Photo-Channel-1.0-NUS-v2.wad" "temp\Photo-Channel-1.1-dummy-HAZA.wad" -id "HAZA" -type HiddenChannels
if not exist "temp\Photo-Channel-1.1-dummy-HAZA.wad" copy /y "temp\Photo-Channel-1.0-NUS-v2.wad" "temp\Photo-Channel-1.1-dummy-HAZA.wad">nul
::Fails without unpacking first-change the title ID to HAZA and change title type (full title ID is 0001000048415A41)
::support\sfk replace "temp\Photo-Channel-1.1-dummy-HAZA.wad" -binary /0001000248414141/0001000048415A41/ -yes>nul
::change boot index to 0 (at offset 0x1E0 of TMD or 0xEE0 of WAD)
support\sfk setbytes "temp\Photo-Channel-1.1-dummy-HAZA.wad" 0xEE0 0x0000 -yes>nul
::ultimately unnecessary: change IOS to 61 at tmd offset 0x18B, 0xE8B of wad (len 1)
::support\sfk setbytes "temp\Photo-Channel-1.1-dummy-HAZA.wad" 0xE8B 0x3D -yes>nul
::Also remove all of the contents except content 0 (the banner)
%WiiPy% wad remove -i 3 "temp\Photo-Channel-1.1-dummy-HAZA.wad"
%WiiPy% wad remove -i 2 "temp\Photo-Channel-1.1-dummy-HAZA.wad"
%WiiPy% wad remove -i 1 "temp\Photo-Channel-1.1-dummy-HAZA.wad"
::later if\when wiipy is updated to properly handle tmd edits during remove operations the below unpack\repack commands can be removed
if exist "temp\__channel" rd /s /q "temp\__channel"> nul
mkdir "temp\__channel"
%WiiPy% wad unpack --skip-hash "temp\Photo-Channel-1.1-dummy-HAZA.wad" "temp\__channel">nul
move /y "temp\__channel\0001000248414141.cert" "temp\__channel\0001000048415A41.cert">nul
move /y "temp\__channel\0001000248414141.footer" "temp\__channel\0001000048415A41.footer">nul
move /y "temp\__channel\0001000248414141.tik" "temp\__channel\0001000048415A41.tik">nul
move /y "temp\__channel\0001000248414141.tmd" "temp\__channel\0001000048415A41.tmd">nul
::change the title ID to HAZA and change title type (full title ID is 0001000048415A41)
::support\sfk replace -binary /0001000248414141/0001000048415A41/ -dir "temp\__channel" -yes>nul
support\sfk replace "temp\__channel\0001000048415A41.tik" -binary /0001000248414141/0001000048415A41/ -yes>nul
support\sfk replace "temp\__channel\0001000048415A41.tmd" -binary /0001000248414141/0001000048415A41/ -yes>nul
del "temp\Photo-Channel-1.1-dummy-HAZA.wad">nul
%WiiPy% wad pack --fakesign "temp\__channel" "temp\Photo-Channel-1.1-dummy-HAZA.wad"
if exist "temp\__channel" rd /s /q "temp\__channel"> nul
:skipHAZA
::option1 disabled
::if not exist temp\%code1%\%code2%\v%version% mkdir temp\%code1%\%code2%\v%version%
::if exist temp\titles\%code1%%code2%\%version% copy /y temp\titles\%code1%%code2%\%version% temp\%code1%\%code2%\v%version%\ >nul
::if exist temp\titles rd /s /q temp\titles
:AlreadyinTemp
if /i "%MENU1%" NEQ "S" copy /y temp\%wadname% "%Drive%"\WAD\%wadname% >nul
if /i "%MENU1%" EQU "S" move /y temp\%wadname% "%Drive%"\WAD\%wadname% >nul
::option1 disabled
goto:option1notNUS
if /i "%OPTION1%" EQU "ON" goto:option1on
if /i "%OPTION1%" EQU "ALL" (goto:option1on) else (goto:option1noton)
:option1on
if not exist "%Drive%"\%code1%\%code2%\v%version% mkdir "%Drive%"\%code1%\%code2%\v%version%
copy /y temp\%code1%\%code2%\v%version% "%Drive%"\%code1%\%code2%\v%version% >nul
:option1noton
if /i "%OPTION1%" EQU "NUS" goto:option1NUS
if /i "%OPTION1%" EQU "ALL" (goto:option1NUS) else (goto:option1notNUS)
:option1NUS
if not exist "%Drive%"\NUS\%code1%%code2%v%version% mkdir "%Drive%"\NUS\%code1%%code2%v%version%
copy /y temp\%code1%\%code2%\v%version% "%Drive%"\NUS\%code1%%code2%v%version% >nul
:option1notNUS
:wadverifyretry
::----check after downloading - if md5 check fails, delete and redownload----
if exist "%Drive%"\WAD\%wadname% goto:checkexisting
:missing
if /i "%attempt%" EQU "1" goto:missingretry
echo.
support\sfk echo [%magentatext%] This file has failed to download properly multiple times, Skipping download.
if /i "%AdvancedDownload%" NEQ "Y" echo "support\sfk echo %wadname%: [%redtext%]Missing">>temp\ModMii_Log.bat
echo.
goto:NEXT
:missingretry
echo.
support\sfk echo [%yellowtext%] The file is missing, retrying download.
echo.
SET /a retry=%retry%+1
SET /a attempt=%attempt%+1
goto:DOWNLOADSTART2
:checkexisting
set md5check=
set md5altcheck=
support\sfk md5 -quiet -verify %md5% "%Drive%"\WAD\%wadname%
if errorlevel 1 set md5check=fail
IF "%md5check%"=="" set md5check=pass
if /i "%md5check%" NEQ "fail" goto:pass
support\sfk md5 -quiet -verify %md5alt% "%Drive%"\WAD\%wadname%
if errorlevel 1 set md5altcheck=fail
IF "%md5altcheck%"=="" set md5altcheck=pass
if /i "%md5altcheck%" NEQ "fail" goto:pass
:fail
echo.
if /i "%attempt%" NEQ "1" goto:multiplefail
support\sfk echo [%yellowtext%] This file already exists but it failed MD5 verification.
support\sfk echo [%yellowtext%] The current version of the file will be deleted and the file will be re-downloaded.
echo.
del "%Drive%"\WAD\%wadname%>nul
if exist temp\%wadname% del temp\%wadname%>nul
::if exist temp\titles rd /s /q temp\titles
SET /a retry=%retry%+1
SET /a attempt=%attempt%+1
goto:DOWNLOADSTART2
:multiplefail
support\sfk echo [%magentatext%] This file has failed to download properly multiple times, Skipping download.
set multiplefail=Y
echo.
if /i "%KeepInvalidOverride%" NEQ "Y" (if exist "%Drive%\WAD\%wadname%" del "%Drive%\WAD\%wadname%">nul) & (if exist "%Drive%\%code1%\%code2%\v%version%" rd /s /q "%Drive%\%code1%\%code2%\v%version%")
if /i "%AdvancedDownload%" NEQ "Y" echo "support\sfk echo %wadname%: [%redtext%]Invalid">>temp\ModMii_Log.bat
goto:NEXT
:pass
echo.
support\sfk echo [%greentext%]Download Successful
echo.
if /i "%AdvancedDownload%" NEQ "Y" echo "echo %wadname%: Valid">>temp\ModMii_Log.bat
goto:NEXT
::--------------------------STUBS Downloader---------------
:STUBS
::----if exist and fails md5 check, delete and redownload----
:checkifwadexist
if not exist "temp\%wadname%" goto:nocheckexisting
set md5check=
support\sfk md5 -quiet -verify %md5% "temp\%wadname%"
if not errorlevel 1 (set md5check=pass) & (goto:STUBSTUFF)
set md5check=fail
:fail
echo.
support\sfk echo [%yellowtext%] This file already exists but it failed MD5 verification.
support\sfk echo [%yellowtext%] The current version of the file will be deleted and the file will be re-downloaded.
echo.
SET /a retry=%retry%+1
SET /a attempt=%attempt%+1
if exist temp\%wadname% del temp\%wadname%>nul
::if exist temp\titles rd /s /q temp\titles
goto:DOWNLOADSTART2
:nocheckexisting
::SAVE TO temp FOLDER ONLY (for now)
::echo If you encounter long periods of inactivity, type "C" while holding "Ctrl",
::echo then type "N", then "Enter" (i.e. Ctrl+C, N, Enter)
::echo.
::cd temp
::..\support\nusd.exe %code1%%code2% %version%
::cd..
::if exist temp\titles\%code1%%code2%\%version%\%code1%%code2%-NUS-v%version%.wad move /y temp\titles\%code1%%code2%\%version%\%code1%%code2%-NUS-v%version%.wad temp\%wadname%>nul
%WiiPy% nus title %code1%%code2% -v %version% --wad "temp\%wadname%"
if /i "%code1%" EQU "00000007" %WiiPy% wad convert -r -o "temp\%wadname%" "temp\%wadname%"
if /i "%code1%" EQU "00070008" %WiiPy% wad convert -r -o "temp\%wadname%" "temp\%wadname%"
::option1 disabled
::no point in saving STUB contents
::if not exist temp\%code1%\%code2%\v%version% mkdir temp\%code1%\%code2%\v%version%
::if exist temp\titles\%code1%%code2%\%version% copy /y temp\titles\%code1%%code2%\%version% temp\%code1%\%code2%\v%version%\ >nul
::if exist temp\titles rd /s /q temp\titles
::----check after downloading - if md5 check fails, delete and redownload----
if exist "temp\%wadname%" goto:checkexisting
:missing
if /i "%attempt%" EQU "1" goto:missingretry
echo.
support\sfk echo [%magentatext%] This file has failed to download properly multiple times, Skipping download.
if /i "%AdvancedDownload%" NEQ "Y" echo "support\sfk echo %name%: [%redtext%]Missing">>temp\ModMii_Log.bat
echo.
goto:NEXT
:missingretry
echo.
support\sfk echo [%yellowtext%] The file is missing, retrying download.
echo.
SET /a retry=%retry%+1
SET /a attempt=%attempt%+1
goto:DOWNLOADSTART2
:checkexisting
set md5check=
support\sfk md5 -quiet -verify %md5% "temp\%wadname%"
if not errorlevel 1 (set md5check=pass) & (goto:STUBSTUFF)
set md5check=fail
:fail
echo.
if /i "%attempt%" NEQ "1" goto:multiplefail
support\sfk echo [%yellowtext%] This file already exists but it failed MD5 verification.
support\sfk echo [%yellowtext%] The current version of the file will be deleted and the file will be re-downloaded.
echo.
if exist temp\%wadname% del temp\%wadname%>nul
::if exist temp\titles rd /s /q temp\titles
SET /a retry=%retry%+1
SET /a attempt=%attempt%+1
goto:DOWNLOADSTART2
:multiplefail
support\sfk echo [%magentatext%] This file has failed to download properly multiple times, Skipping download.
set multiplefail=Y
echo.
if /i "%KeepInvalidOverride%" NEQ "Y" (if exist "temp\%wadname%" del "temp\%wadname%">nul) & (if exist "%Drive%\%code1%\%code2%\v%version%" rd /s /q "%Drive%\%code1%\%code2%\v%version%")
echo "support\sfk echo %name%: [%redtext%]Invalid">>temp\ModMii_Log.bat
goto:NEXT
:STUBSTUFF
::COPY TO WAD\STUBS FOLDER and change slot and version number (v404 not found, lol)
if not exist "%Drive%\WAD\STUBS" mkdir "%Drive%\WAD\STUBS"
::if /i "%DRIVE:~1,1%" EQU ":" (set "DRIVEadj=%DRIVE%") else (set "DRIVEadj=..\%DRIVE%")
::Loop through the following once for EACH line in *.txt
for /F "tokens=*" %%A in (temp\stubs.txt) do call :processstubs %%A
goto:quickskip
:processstubs
::vWiitag already set
::set vWiitag=
::if /i "%FIRMSTART%" EQU "v" set vWiitag=-vWii
set stubnum=%*
set wadname2=STUB-IOS%stubnum%-64-v404%vWiitag%.wad
echo Creating %wadname2%...
::cd support
::patchios "..\temp\%wadname%" -slot %stubnum% -v 404 -O "%DRIVEadj%\WAD\STUBS\%wadname2%">nul
::cd..
::::fakesign!
::%WiiPy% fakesign "%DRIVE%\WAD\STUBS\%wadname2%">nul
%WiiPy% iospatch -s %stubnum% -v 404 -o "%DRIVE%\WAD\STUBS\%wadname2%" "temp\%wadname%"
::Change 00 to 01 at offset 0x183 of tmd (0xE83 of wad) to indicate its vWii
if /i "%FIRMSTART%" EQU "v" support\hexalter.exe "%DRIVE%\WAD\STUBS\%wadname2%" 0xE83=0x01>nul
echo.
goto:EOF
:quickskip
echo.
support\sfk echo [%greentext%]Download Successful
echo.
if /i "%AdvancedDownload%" NEQ "Y" echo "echo %name%: Valid">>temp\ModMii_Log.bat
goto:NEXT
::-------------------------------cIOS Maker-----------------------------------------------------
:CIOSMAKER
if "%wadname:~-4%" EQU ".wad" set wadname=%wadname:~0,-4%
::no md5 check for dml
if /i "%wadname:~0,3%" EQU "DML" goto:nocheckexisting
::----if exist and fails md5 check, delete and redownload----
if exist "%Drive%"\WAD\%wadname%.wad (goto:checkexisting) else (goto:nocheckexisting)
:checkexisting
set md5check=
set md5altcheck=
support\sfk md5 -quiet -verify %md5% "%Drive%"\WAD\%wadname%.wad
if errorlevel 1 set md5check=fail
IF "%md5check%"=="" set md5check=pass
if /i "%md5check%" NEQ "fail" goto:pass
support\sfk md5 -quiet -verify %md5alt% "%Drive%"\WAD\%wadname%.wad
if errorlevel 1 set md5altcheck=fail
IF "%md5altcheck%"=="" set md5altcheck=pass
if /i "%md5altcheck%" NEQ "fail" goto:pass
:fail
echo.
support\sfk echo [%yellowtext%] This file already exists but it failed MD5 verification.
support\sfk echo [%yellowtext%] The current version of the file will be deleted and the file will be re-downloaded.
echo.
SET /a retry=%retry%+1
SET /a attempt=%attempt%+1
del "%Drive%"\WAD\%wadname%.wad>nul
goto:DOWNLOADSTART2
:pass
support\sfk echo [%greentext%]This file already exists and has been verified, Skipping download
echo.
set alreadyexists=yes
if /i "%AdvancedDownload%" NEQ "Y" echo "echo %wadname%.wad: Valid">>temp\ModMii_Log.bat
goto:NEXT
:nocheckexisting
::missing Support folder error message and skip
if not exist Support support\sfk echo -spat [%yellowtext%] Missing "Support" folder - Required to make cIOSs/cMIOSs
if not exist Support support\sfk echo -spat \x20 \x20 [%yellowtext%] Redownload ModMii from https://modmii.github.io
if not exist Support support\sfk echo -spat \x20 \x20 [%yellowtext%] Skipping download
if not exist Support @ping 127.0.0.1 -n 5 -w 1000> nul
if not exist Support goto:NEXT
if not exist "%Drive%"\WAD mkdir "%Drive%"\WAD
:downloadbasewad
::download base wad to "%Drive%"
echo.
echo Downloading Base Wad: %basewad%
echo.
::----Check base IOS-----------
::----if exist and fails md5 check, delete and redownload----
if exist temp\%basewad%.wad (goto:checkexisting) else (goto:nocheckexisting)
:checkexisting
set md5basecheck=
set md5basealtcheck=
support\sfk md5 -quiet -verify %md5base% temp\%basewad%.wad
if errorlevel 1 set md5basecheck=fail
IF "%md5basecheck%"=="" set md5basecheck=pass
if /i "%md5basecheck%" NEQ "fail" goto:pass
support\sfk md5 -quiet -verify %md5basealt% temp\%basewad%.wad
if errorlevel 1 set md5basealtcheck=fail
IF "%md5basealtcheck%"=="" set md5basealtcheck=pass
if /i "%md5basealtcheck%" NEQ "fail" goto:pass
:fail
echo.
support\sfk echo [%yellowtext%] This base wad already exists but it failed MD5 verification.
support\sfk echo [%yellowtext%] The current version of the file will be deleted and the file will be re-downloaded.
echo.
del temp\%basewad%.wad>nul
goto:downloadbasewad
:pass
echo.
support\sfk echo -spat \x20 \x20 \x20 [%greentext%] Base Wad already exists and has been verified, Continuing...
echo.
goto:basealreadythere
:nocheckexisting
::echo If you encounter long periods of inactivity, type "C" while holding "Ctrl",
::echo then type "N", then "Enter" (i.e. Ctrl+C, N, Enter)
::echo.
if not exist "%Drive%"\WAD mkdir "%Drive%"\WAD
::cd temp
::..\support\nusd.exe %code1%%code2% %version%
::cd..
::if exist temp\titles\%code1%%code2%\%version%\%code1%%code2%-NUS-v%version%.wad move /y temp\titles\%code1%%code2%\%version%\%code1%%code2%-NUS-v%version%.wad temp\%basewad%.wad>nul
%WiiPy% nus title %code1%%code2% -v %version% --wad "temp\%basewad%.wad"
if /i "%code1%" EQU "00000007" %WiiPy% wad convert -r -o "temp\%basewad%.wad" "temp\%basewad%.wad"
if /i "%code1%" EQU "00070008" %WiiPy% wad convert -r -o "temp\%basewad%.wad" "temp\%basewad%.wad"
::option1 disabled
::if not exist temp\%code1%\%code2%\v%version% mkdir temp\%code1%\%code2%\v%version%
::if exist temp\titles\%code1%%code2%\%version% copy /y temp\titles\%code1%%code2%\%version% temp\%code1%\%code2%\v%version%\ >nul
::if exist temp\titles rd /s /q temp\titles
::----check after downloading - if md5 check fails, delete and redownload----
if exist temp\%basewad%.wad goto:checkexisting
:missing
if /i "%attempt%" EQU "1" goto:missingretry
echo.
support\sfk echo [%magentatext%] This file has failed to download properly multiple times, Skipping download.
if /i "%AdvancedDownload%" NEQ "Y" echo "support\sfk echo %wadname%.wad: [%redtext%]Missing">>temp\ModMii_Log.bat
echo.
goto:NEXT
:missingretry
echo.
support\sfk echo [%yellowtext%] The basewad is missing, retrying download.
echo.
SET /a retry=%retry%+1
SET /a attempt=%attempt%+1
goto:downloadbasewad
:checkexisting
set md5basecheck=
set md5basealtcheck=
support\sfk md5 -quiet -verify %md5base% temp\%basewad%.wad
if errorlevel 1 set md5basecheck=fail
IF "%md5basecheck%"=="" set md5basecheck=pass
if /i "%md5basecheck%" NEQ "fail" goto:pass
support\sfk md5 -quiet -verify %md5basealt% temp\%basewad%.wad
if errorlevel 1 set md5basealtcheck=fail
IF "%md5basealtcheck%"=="" set md5basealtcheck=pass
if /i "%md5basealtcheck%" NEQ "fail" goto:pass
:fail
if /i "%attempt%" NEQ "1" goto:multiplefail
echo.
support\sfk echo [%yellowtext%] This file already exists but it failed MD5 verification.
support\sfk echo [%yellowtext%] The current version of the file will be deleted and the file will be re-downloaded.
echo.
del temp\%basewad%.wad>nul
SET /a retry=%retry%+1
SET /a attempt=%attempt%+1
goto:downloadbasewad
:multiplefail
echo.
support\sfk echo [%magentatext%] This file has failed to download properly multiple times, Skipping download.
if /i "%AdvancedDownload%" NEQ "Y" echo "support\sfk echo %wadname%.wad: [%redtext%]Invalid">>temp\ModMii_Log.bat
set multiplefail=Y
echo.
goto:NEXT
:pass
echo.
support\sfk echo -spat \x20 \x20 \x20 [%greentext%] Base Wad has been Downloaded Successfully, Continuing...
echo.
:basealreadythere
::----------PATCHIOS Category-------------
if /i "%category%" NEQ "patchios" goto:notpatchios
if not "%lastbasemodule%"=="" goto:notpatchios
copy /y temp\%basewad%.wad "%Drive%"\WAD\%wadname%.wad>nul
::cd support
::if /i "%DRIVE:~1,1%" EQU ":" (set "DRIVEadj=%DRIVE%") else (set "DRIVEadj=..\%DRIVE%")
::if "%lastbasemodule%"=="" patchios "%DRIVEadj%"\WAD\%wadname%.wad -FS -ES -NP -VP -slot %ciosslot% -v %ciosversion%
::if not "%lastbasemodule%"=="" patchios "%DRIVEadj%"\WAD\%wadname%.wad -FS -ES -NP -VP
::cd..
::::fakesign!
::%WiiPy% fakesign "%DRIVE%\WAD\%wadname%.wad">nul
if "%lastbasemodule%"=="" %WiiPy% iospatch -fs -ei -na -vd -s %ciosslot% -v %ciosversion% "%DRIVE%\WAD\%wadname%.wad"
if not "%lastbasemodule%"=="" %WiiPy% iospatch -fs -ei -na -vd "%DRIVE%\WAD\%wadname%.wad"
if "%wadname:~-4%" NEQ ".wad" set wadname=%wadname%.wad
goto:wadverifyretry
:notpatchios
::----------------------------------------
::CIOS STUFF
if /i "%basecios:~12,3%" NEQ "d2x" goto:SkipWiiPYcIOS
set "cios-ver=%wadname:~12%"
set "cios-ver2=%wadname:~17%"
if /i "%cios-ver2:~-5%" EQU "-vWii" set "cios-ver2=%cios-ver2:~0,-5%"
if exist Support\d2x-beta\ciosmaps.xml (set xml=Support\d2x-beta\ciosmaps.xml) else (set xml=Support\d2xModules\ciosmaps.xml)
if exist Support\d2x-beta\ciosmaps.xml (set d2xFolder=Support\d2x-beta) else (set d2xFolder=Support\d2xModules)
if not "%category%"=="" (set "d2xFolder=%category%") & (set "xml=%category%\ciosmaps.xml")
if /i "%d2x-bundled%" EQU "%cios-ver2%" (set xml=Support\d2xModules\ciosmaps.xml) & (set d2xFolder=Support\d2xModules)
if /i "%wadname:~-5%" NEQ "-vWii" goto:skip
if exist Support\d2x-beta\ciosmaps_vWii.xml (set xml=Support\d2x-beta\ciosmaps_vWii.xml) else (set xml=Support\d2xModules\ciosmaps_vWii.xml)
if exist Support\d2x-beta\ciosmaps_vWii.xml (set d2xFolder=Support\d2x-beta) else (set d2xFolder=Support\d2xModules)
if not "%category%"=="" (set "d2xFolder=%category%") & (set "xml=%category%\ciosmaps_vWii.xml")
if /i "%d2x-bundled%" EQU "%cios-ver2%" (set xml=Support\d2xModules\ciosmaps_vWii.xml) & (set d2xFolder=Support\d2xModules)
:skip
::if not exist xml download it!
if exist "%xml%" goto:skip
set "DLcIOS=%d2xFolder:*\=%"
set "DLcIOS=%DLcIOS:*\=%"
set "DLcIOS=%DLcIOS:*\=%"
echo Downloading %DLcIOS%...
support\wget --output-document %DLcIOS%.zip --no-check-certificate -t 3 "https://github.com/modmii/modmii.github.io/blob/master/temp/d2x/%DLcIOS%.7z?raw=true" -q --show-progress
echo.
::delete if file is empty
>nul findstr "^" "%DLcIOS%.zip" || del "%DLcIOS%.zip"
if exist "%DLcIOS%.zip" goto:gotit
::try downloading from deprecated folder
echo.
support\wget --output-document %DLcIOS%.zip --no-check-certificate -t 3 "https://github.com/modmii/modmii.github.io/blob/master/temp/d2x-deprecated/%DLcIOS%.7z?raw=true" -q --show-progress
echo.
::delete if file is empty
>nul findstr "^" "%DLcIOS%.zip" || del "%DLcIOS%.zip"
if not exist "%DLcIOS%.zip" goto:skip
:gotit
if not exist "support\More-cIOSs\%DLcIOS%" mkdir "support\More-cIOSs\%DLcIOS%"
support\7za e -aoa "%DLcIOS%.zip" -o"support\More-cIOSs\%DLcIOS%" *.* -r
echo.
del "%DLcIOS%.zip">nul
if not exist "support\More-cIOSs\%DLcIOS%\d2x-beta.bat" rd /s /q "support\More-cIOSs\%DLcIOS%"
:skip
if /i "%wadname:~-5%" EQU "-vWii" goto:forceWiiPYcIOS
if not "%LegacyCIOS%"=="" goto:SkipWiiPYcIOS
:forceWiiPYcIOS
::limit cios-ver to 24 characters just in case (e.g. "d2x-v10-b52-ST-FM050-vWii" tag shortened to "d2x-v10-b52-ST-FM050-vWi" in ciosmaps.xml but not in ModMii's filename)
%WiiPy% cios "temp\%basewad%.wad" "%xml%" "%Drive%\WAD\%wadname%.wad" --cios-ver %cios-ver:~0,24% --modules %d2xFolder% -s %ciosslot% -v %ciosversion%
if "%wadname:~-4%" NEQ ".wad" set wadname=%wadname%.wad
goto:wadverifyretry
:SkipWiiPYcIOS
::unpack base wad
echo.
echo Unpacking Base Wad: %basewad%
echo.
if exist %basecios% rd /s /q %basecios%
mkdir %basecios%
%WiiPy% wad unpack --skip-hash "temp\%basewad%.wad" "%basecios%">nul
::-----------DML Stuff------------
:DML-stuff
if /i "%wadname:~0,3%" NEQ "DML" goto:SkipDML-stuff
::download DML currentrev if missing
echo.
echo Downloading %dlname%
echo.
if exist "temp\DML\%dlname%" goto:getfixelf
if not exist "%dlname%" support\wget --no-check-certificate -t 3 "%URL%" -q --show-progress
if not exist "%dlname%" (rd /s /q %basewad%) & (rd /s /q %basecios%) & (echo.) & (support\sfk echo [%magentatext%] %dlname% Failed to Download properly, Skipping download.) & (echo "support\sfk echo %wadname%.wad: [%redtext%]Missing">>temp\ModMii_Log.bat) & (echo.) & (goto:NEXT)
if not exist "temp\DML" mkdir "temp\DML"
move /y "%dlname%" "temp\DML\%dlname%">nul
:getfixelf
echo.
echo Downloading FixELF
echo.
if exist "temp\DML\FixELF.exe" goto:gotfixelf
if not exist "FixELF.zip" support\wget --no-check-certificate -t 3 "https://tiny.cc/fixelfmirror" -q --show-progress
if not exist "FixELF.zip" (rd /s /q %basewad%) & (rd /s /q %basecios%) & (echo.) & (support\sfk echo [%magentatext%] %dlname% Failed to Download properly, Skipping download.) & (echo "support\sfk echo %wadname%.wad: [%redtext%]Missing">>temp\ModMii_Log.bat) & (echo.) & (goto:NEXT)
support\7za e -aoa "FixELF.zip" -o"temp\DML" *.* -r>nul
if not exist "temp\DML\FixELF.exe" (Corrupted archive detected and deleted...) & (del "temp\DML\FixELF.zip">nul) & (goto:NEXT)
del FixELF.zip>nul
:gotfixelf
move /y "%basecios%\00000001.app" "temp\DML\MIOS.app">nul
cd "temp\DML"
if exist 00000001.app del 00000001.app>nul
echo.
echo Running Crediar's FixELF to patch MIOS.app
echo.
FixELF MIOS.app "DMLr%CurrentDMLRev%.elf" 00000001.app>nul
cd..
cd..
move /y "temp\DML\00000001.app" "%basecios%\00000001.app">nul
goto:repackwad
:SkipDML-stuff
::--------------------base wad B------------------------
:downloadbasewadb
::download SECOND base wadB to "%Drive%" (if applicable)
if /i "%basewadb%" EQU "none" goto:nobasewadb
echo.
echo Downloading Base Wad: %basewadb%
echo.
::----Check base IOS B-----------
::----if exist and fails md5 check, delete and redownload----
if exist temp\%basewadb%.wad (goto:checkexisting) else (goto:nocheckexisting)
:checkexisting
set md5basebcheck=
set md5basebaltcheck=
support\sfk md5 -quiet -verify %md5baseb% temp\%basewadb%.wad
if errorlevel 1 set md5basebcheck=fail
IF "%md5basebcheck%"=="" set md5basebcheck=pass
if /i "%md5basebcheck%" NEQ "fail" goto:pass
support\sfk md5 -quiet -verify %md5basebalt% temp\%basewadb%.wad
if errorlevel 1 set md5basebaltcheck=fail
IF "%md5basebaltcheck%"=="" set md5basebaltcheck=pass
if /i "%md5basebaltcheck%" NEQ "fail" goto:pass
:fail
echo.
support\sfk echo [%yellowtext%] This base wad already exists but it failed MD5 verification.
support\sfk echo [%yellowtext%] The current version of the file will be deleted and the file will be re-downloaded.
echo.
del temp\%basewadb%.wad>nul
goto:downloadbasewadb
:pass
echo.
support\sfk echo -spat \x20 \x20 \x20 [%greentext%] Base Wad already exists and has been verified, Continuing...
echo.
goto:baseBalreadythere
:nocheckexisting
::echo If you encounter long periods of inactivity, type "C" while holding "Ctrl",
::echo then type "N", then "Enter" (i.e. Ctrl+C, N, Enter)
::echo.
::cd temp
::..\support\nusd.exe %code1b%%code2b% %versionb%
::cd..
::if exist temp\titles\%code1b%%code2b%\%versionb%\%code1b%%code2b%-NUS-v%versionb%.wad move /y temp\titles\%code1b%%code2b%\%versionb%\%code1b%%code2b%-NUS-v%versionb%.wad temp\%basewadb%.wad>nul
%WiiPy% nus title %code1b%%code2b% -v %versionb% --wad "temp\%basewadb%.wad"
if /i "%code1b%" EQU "00000007" %WiiPy% wad convert -r -o "temp\%basewadb%.wad" "temp\%basewadb%.wad"
if /i "%code1b%" EQU "00070008" %WiiPy% wad convert -r -o "temp\%basewadb%.wad" "temp\%basewadb%.wad"
::option1 disabled
::if not exist temp\%code1b%\%code2b%\v%versionb% mkdir temp\%code1b%\%code2b%\v%versionb%
::if exist temp\titles\%code1b%%code2b%\%versionb% copy /y temp\titles\%code1b%%code2b%\%versionb% temp\%code1b%\%code2b%\v%versionb%\ >nul
::if exist temp\titles rd /s /q temp\titles
::----check after downloading - if md5 check fails, delete and redownload----
if exist temp\%basewadb%.wad goto:checkexisting
:missing
if /i "%attempt%" EQU "1" goto:missingretry
echo.
support\sfk echo [%magentatext%] This file has failed to download properly multiple times, Skipping download.
if /i "%AdvancedDownload%" NEQ "Y" echo "support\sfk echo %wadname%.wad: [%redtext%]Missing">>temp\ModMii_Log.bat
echo.
goto:NEXT
:missingretry
echo.
support\sfk echo [%yellowtext%] The basewad is missing, retrying download.
echo.
SET /a retry=%retry%+1
SET /a attempt=%attempt%+1
goto:downloadbasewadb
:checkexisting
set md5basebcheck=
set md5basebaltcheck=
support\sfk md5 -quiet -verify %md5baseb% temp\%basewadb%.wad
if errorlevel 1 set md5basebcheck=fail
IF "%md5basebcheck%"=="" set md5basebcheck=pass
if /i "%md5basebcheck%" NEQ "fail" goto:pass
support\sfk md5 -quiet -verify %md5basebalt% temp\%basewadb%.wad
if errorlevel 1 set md5basebaltcheck=fail
IF "%md5basebaltcheck%"=="" set md5basebaltcheck=pass
if /i "%md5basebaltcheck%" NEQ "fail" goto:pass
:fail
if /i "%attempt%" NEQ "1" goto:multiplefail
echo.
support\sfk echo [%yellowtext%] This file already exists but it failed MD5 verification.
support\sfk echo [%yellowtext%] The current version of the file will be deleted and the file will be re-downloaded.
echo.
del temp\%basewadb%.wad>nul
SET /a retry=%retry%+1
SET /a attempt=%attempt%+1
goto:downloadbasewadb
:multiplefail
echo.
support\sfk echo [%magentatext%] This file has failed to download properly multiple times, Skipping download.
if /i "%AdvancedDownload%" NEQ "Y" echo "support\sfk echo %wadname%.wad: [%redtext%]Invalid">>temp\ModMii_Log.bat
echo.
set multiplefail=Y
goto:NEXT
:pass
echo.
support\sfk echo -spat \x20 \x20 \x20 [%greentext%] Base Wad has been Downloaded Successfully, Continuing...
echo.
:baseBalreadythere
::----unpack base wad
echo.
echo Unpacking Base Wad: %basewadb%
echo.
if exist %basewadb% rd /s /q %basewadb%
mkdir %basewadb%
%WiiPy% wad unpack --skip-hash "temp\%basewadb%.wad" "%basewadb%">nul
if /i "%wadname:~0,3%" EQU "cBC" goto:cbc-stuff
::----specific for cios223v4[37+38]
::move modules that are from 38 and to be patched
move /y %basewadb%\00000001.app %basecios%\00000001.app>nul
move /y %basewadb%\%lastbasemodule%.app %basecios%\%lastbasemodule%.app>nul
rd /s /q %basewadb%
goto:nobasewadb
:cbc-stuff
::download NMM\DML-installer if missing
if exist "temp\%dlname:~0,-4%\FixElf\FixELF.exe" goto:gotit
call Support\subscripts\dependency.bat UnRAR
echo.
echo Downloading %dlname%
if not exist "%dlname%" support\wget --no-check-certificate -t 3 "%URL%" -q --show-progress
echo.
if not exist "%dlname%" (rd /s /q %basewadb%) & (rd /s /q %basecios%) & (echo.) & (support\sfk echo [%magentatext%] %dlname% Failed to Download properly, Skipping download.) & (echo "support\sfk echo %wadname%.wad: [%redtext%]Missing">>temp\ModMii_Log.bat) & (echo.) & (goto:NEXT)
if not exist "temp\%dlname:~0,-4%" mkdir "temp\%dlname:~0,-4%"
temp\unrar.exe x -y %dlname% "temp\%dlname:~0,-4%">nul
if exist %dlname% del %dlname%>nul
:gotit
if exist "temp\%dlname:~0,-4%\%wadname:~4,3%.elf" move /y "temp\%dlname:~0,-4%\%wadname:~4,3%.elf" "temp\%dlname:~0,-4%\FixElf\%wadname:~4,3%.elf">nul
move /y "%basewadb%\00000001.app" "temp\%dlname:~0,-4%\FixElf\MIOS.app">nul
rd /s /q %basewadb%
cd "temp\%dlname:~0,-4%\FixElf"
if exist 00000001.app del 00000001.app>nul
echo.
echo Running Crediar's FixELF to patch MIOS.app
echo.
FixELF MIOS.app %wadname:~4,3%.elf 00000001.app>nul
cd..
cd..
cd..
move /y "temp\%dlname:~0,-4%\FixElf\00000001.app" "%basecios%\00000001.app">nul
goto:repackwad
:nobasewadb
::------for theming system Menus only----------
if /i "%category%" NEQ "SMTHEME" goto:skip
goto:mym_download
:SMTHEME2
echo.
echo Patching System Theme, please wait...
echo.
if exist "temp\temp.csm" del "temp\temp.csm">nul
if exist "temp\temp2.csm" del "temp\temp2.csm">nul
cd /d temp\themewii
themewii.exe "..\%mym1%" "..\..\%basecios%\00000001.app" "..\temp.csm">nul
themewii.exe "..\%mym2%" "..\temp.csm" "..\temp2.csm">nul
cd ..\..
if exist "temp\temp2.csm" move /y "temp\temp2.csm" "%basecios%\00000001.app">nul
if exist "temp\temp.csm" del "temp\temp.csm">nul
::%WiiPy% theme mym "temp\%mym1%" "%basecios%\00000001.app" "%basecios%\00000001.app"
::%WiiPy% theme mym "temp\%mym2%" "%basecios%\00000001.app" "%basecios%\00000001.app"
goto:repackwad
:skip
::-----cios/cmios stuff------------
::rename *.cert and *.footer (doesn't need to be patched), rename components that need to be patched (excluding tik and tmd)
echo.
echo Patching A handful of BaseWad Component Files
echo.
::hardcoded 00000001 as "code1" is 00000007 for vWii bases, but not cIOSs
if /i "%code2%" NEQ "%code2new%" ren %basecios%\00000001%code2%.cert 00000001%code2new%.cert
if /i "%code2%" NEQ "%code2new%" ren %basecios%\00000001%code2%.footer 00000001%code2new%.footer
::skip for non d2x cIOSs
set usetmdedit=
if /i "%basecios:~12,3%" NEQ "d2x" goto:notd2x
if %ciosversion% GEQ 21009 set usetmdedit=Y
if /i "%wadname:~-5%" EQU "-vWii" set usetmdedit=Y
::if /i "%d2x-beta-rev%" EQU "9-beta(r47)" set usetmdedit=
::if /i "%d2x-beta-rev%" EQU "10-beta52" set usetmdedit=
::if /i "%d2x-beta-rev%" EQU "10-beta53-alt" set usetmdedit=
::::force on (testing only)
::set usetmdedit=Y
::::force off (testing only)
::set usetmdedit=
if /i "%usetmdedit%" EQU "Y" (goto:NotRenamedOriginal2) else (goto:NotRenamedOriginal)
:notd2x
if exist support\Diffs\%diffpath%\%diffpath%_00.diff ren %basecios%\00000000.app 00000000-original.app
if exist support\Diffs\%diffpath%\%diffpath%_01.diff ren %basecios%\00000001.app 00000001-original.app
if exist support\Diffs\%diffpath%\%diffpath%_02.diff ren %basecios%\00000002.app 00000002-original.app
if exist support\Diffs\%diffpath%\%diffpath%_%lastbasemodule%.diff ren %basecios%\%lastbasemodule%.app %lastbasemodule%-original.app
::rename tik & tmd for cMIOSs
if /i "%code2%" EQU "00000101" goto:rename
if /i "%category%" EQU "patchios" goto:rename
goto:notcMIOS
:rename
::ren %basecios%\%code1%%code2new%.tik %code1%%code2new%-original.tik
ren %basecios%\%code1%%code2new%.tmd %code1%%code2new%-original.tmd
:notcMIOS
::-------------diff patch files----------------
if exist support\Diffs\%diffpath%\%diffpath%_00.diff support\jptch %basecios%\00000000-original.app support\Diffs\%diffpath%\%diffpath%_00.diff %basecios%\00000000.app
if exist support\Diffs\%diffpath%\%diffpath%_01.diff support\jptch %basecios%\00000001-original.app support\Diffs\%diffpath%\%diffpath%_01.diff %basecios%\00000001.app
if exist support\Diffs\%diffpath%\%diffpath%_02.diff support\jptch %basecios%\00000002-original.app support\Diffs\%diffpath%\%diffpath%_02.diff %basecios%\00000002.app
if exist support\Diffs\%diffpath%\%diffpath%_%lastbasemodule%.diff support\jptch %basecios%\%lastbasemodule%-original.app support\Diffs\%diffpath%\%diffpath%_%lastbasemodule%.diff %basecios%\%lastbasemodule%.app
::patch tmd and tiks when they've been renamed to *-original.tik\tmd (for cMIOSs)
if /i "%code2%" EQU "00000101" goto:RenamedOriginal
if /i "%category%" EQU "patchios" goto:RenamedOriginal
goto:NotRenamedOriginal
:RenamedOriginal
::if exist support\Diffs\%diffpath%\%diffpath%_tik.diff support\jptch %basecios%\%code1%%code2%-original.tik support\Diffs\%diffpath%\%diffpath%_tik.diff %basecios%\%code1%%code2new%.tik
if exist support\Diffs\%diffpath%\%diffpath%_tmd.diff support\jptch %basecios%\%code1%%code2%-original.tmd support\Diffs\%diffpath%\%diffpath%_tmd.diff %basecios%\%code1%%code2new%.tmd
goto:deletefiles
:NotRenamedOriginal
::hardcoded 00000001 as "code1" is 00000007 for vWii bases, but not cIOSs
if exist support\Diffs\%diffpath%\%diffpath%_tmd.diff support\jptch %basecios%\00000001%code2%.tmd support\Diffs\%diffpath%\%diffpath%_tmd.diff %basecios%\00000001%code2new%.tmd
::use different tik diff files depending on what base wad downloaded
:NotRenamedOriginal2
::hardcoded 00000001 as "code1" is 00000007 for vWii bases, but not cIOSs
if not exist "support\Diffs\%diffpath%\%diffpath%_tik.diff" goto:notik
if /i "%md5basecheck%" EQU "pass" support\jptch %basecios%\00000001%code2%.tik support\Diffs\%diffpath%\%diffpath%_tik.diff %basecios%\00000001%code2new%.tik
:notik
if not exist "support\Diffs\%diffpath%\%diffpath%_tik2.diff" goto:notik2
if /i "%md5basealtcheck%" EQU "pass" support\jptch %basecios%\%code1%%code2%.tik support\Diffs\%diffpath%\%diffpath%_tik2.diff %basecios%\%code1%%code2new%.tik
:notik2
::delete un-needed original files that have already been patched
:deletefiles
if exist %basecios%\00000000-original.app del %basecios%\00000000-original.app>nul
if exist %basecios%\00000001-original.app del %basecios%\00000001-original.app>nul
if exist %basecios%\00000002-original.app del %basecios%\00000002-original.app>nul
if exist %basecios%\%lastbasemodule%-original.app del %basecios%\%lastbasemodule%-original.app>nul
::--for cMIOS's that have tiks and tmds renamed to -original
if exist %basecios%\%code1%%code2%-original.tik del %basecios%\%code1%%code2%-original.tik>nul
if exist %basecios%\%code1%%code2%-original.tmd del %basecios%\%code1%%code2%-original.tmd>nul
::override for IOS60
if /i "%basecios%" EQU "IOS60v65535(ModMii-IOS60-v6174)" goto:signcios
if /i "%code2%" EQU "00000101" goto:repackwad
if /i "%category%" EQU "patchios" goto:repackwad
if exist %basecios%\00000001%code2%.tik del %basecios%\00000001%code2%.tik>nul
::don't delete base tmd if usetmdedit=Y
if /i "%usetmdedit%" NEQ "Y" if exist %basecios%\00000001%code2%.tmd del %basecios%\00000001%code2%.tmd>nul
::---------------Korean Key Patch---------------
::skip korean key patch and copying of custom modules for d2x cIOSs (will be done later)
if /i "%basecios:~12,3%" EQU "d2x" goto:signcios
if /i "%basewad:~3,2%" EQU "38" goto:nokorpatch
if /i "%basecios%" EQU "cIOS223[37-38]-v4" goto:nokorpatch
if /i "%wadname:~0,3%" EQU "cBC" goto:repackwad
if /i "%basecios%" EQU "IOS236v65535(IOS36v3351[FS-ES-NP-VP])" goto:repackwad
echo.
echo Patching %lastbasemodule%.app to support the Korean Common Key
::IOS37-64-v3869
if /i "%basewad%" EQU "IOS37-64-v3869" support\hexalter.exe %basecios%\%lastbasemodule%.app 0x1FD00=0xE0
if /i "%basewad%" EQU "IOS37-64-v3869" support\hexalter.exe %basecios%\%lastbasemodule%.app 0x278E0=0x63,0xB8,0x2B,0xB4,0xF4,0x61,0x4E,0x2E,0x13,0xF2,0xFE,0xFB,0xBA,0x4C,0x9B,0x7E
::IOS57-64-v5661
if /i "%basewad%" EQU "IOS57-64-v5661" support\hexalter.exe %basecios%\%lastbasemodule%.app 0x21340=0xE0
if /i "%basewad%" EQU "IOS57-64-v5661" support\hexalter.exe %basecios%\%lastbasemodule%.app 0x28F5C=0x63,0xB8,0x2B,0xB4,0xF4,0x61,0x4E,0x2E,0x13,0xF2,0xFE,0xFB,0xBA,0x4C,0x9B,0x7E
::NEXT GEN BASES
::IOS37-64-v5662
if /i "%basewad%" EQU "IOS37-64-v5662" support\hexalter.exe %basecios%\%lastbasemodule%.app 0x1FD88=0xE0
if /i "%basewad%" EQU "IOS37-64-v5662" support\hexalter.exe %basecios%\%lastbasemodule%.app 0x27968=0x63,0xB8,0x2B,0xB4,0xF4,0x61,0x4E,0x2E,0x13,0xF2,0xFE,0xFB,0xBA,0x4C,0x9B,0x7E
::IOS53-64-v5662
if /i "%basewad%" EQU "IOS53-64-v5662" support\hexalter.exe %basecios%\%lastbasemodule%.app 0x1FD88=0xE0
if /i "%basewad%" EQU "IOS53-64-v5662" support\hexalter.exe %basecios%\%lastbasemodule%.app 0x27968=0x63,0xB8,0x2B,0xB4,0xF4,0x61,0x4E,0x2E,0x13,0xF2,0xFE,0xFB,0xBA,0x4C,0x9B,0x7E
::IOS55-64-v5662
if /i "%basewad%" EQU "IOS55-64-v5662" support\hexalter.exe %basecios%\%lastbasemodule%.app 0x1FD88=0xE0
if /i "%basewad%" EQU "IOS55-64-v5662" support\hexalter.exe %basecios%\%lastbasemodule%.app 0x27968=0x63,0xB8,0x2B,0xB4,0xF4,0x61,0x4E,0x2E,0x13,0xF2,0xFE,0xFB,0xBA,0x4C,0x9B,0x7E
::IOS56-64-v5661
if /i "%basewad%" EQU "IOS56-64-v5661" support\hexalter.exe %basecios%\%lastbasemodule%.app 0x21424=0xE0
if /i "%basewad%" EQU "IOS56-64-v5661" support\hexalter.exe %basecios%\%lastbasemodule%.app 0x29078=0x63,0xB8,0x2B,0xB4,0xF4,0x61,0x4E,0x2E,0x13,0xF2,0xFE,0xFB,0xBA,0x4C,0x9B,0x7E
::IOS57-64-v5918
if /i "%basewad%" EQU "IOS57-64-v5918" support\hexalter.exe %basecios%\%lastbasemodule%.app 0x21424=0xE0
if /i "%basewad%" EQU "IOS57-64-v5918" support\hexalter.exe %basecios%\%lastbasemodule%.app 0x29078=0x63,0xB8,0x2B,0xB4,0xF4,0x61,0x4E,0x2E,0x13,0xF2,0xFE,0xFB,0xBA,0x4C,0x9B,0x7E
::IOS58-64-v6175
if /i "%basewad%" EQU "IOS58-64-v6175" support\hexalter.exe %basecios%\%lastbasemodule%.app 0x21424=0xE0
if /i "%basewad%" EQU "IOS58-64-v6175" support\hexalter.exe %basecios%\%lastbasemodule%.app 0x29078=0x63,0xB8,0x2B,0xB4,0xF4,0x61,0x4E,0x2E,0x13,0xF2,0xFE,0xFB,0xBA,0x4C,0x9B,0x7E
::IOS60-64-v6174
if /i "%basewad%" EQU "IOS60-64-v6174" support\hexalter.exe %basecios%\%lastbasemodule%.app 0x20678=0xE0
if /i "%basewad%" EQU "IOS60-64-v6174" support\hexalter.exe %basecios%\%lastbasemodule%.app 0x28294=0x63,0xB8,0x2B,0xB4,0xF4,0x61,0x4E,0x2E,0x13,0xF2,0xFE,0xFB,0xBA,0x4C,0x9B,0x7E
::IOS70-64-v6687
if /i "%basewad%" EQU "IOS70-64-v6687" support\hexalter.exe %basecios%\%lastbasemodule%.app 0x21340=0xE0
if /i "%basewad%" EQU "IOS70-64-v6687" support\hexalter.exe %basecios%\%lastbasemodule%.app 0x28f5c=0x63,0xB8,0x2B,0xB4,0xF4,0x61,0x4E,0x2E,0x13,0xF2,0xFE,0xFB,0xBA,0x4C,0x9B,0x7E
::IOS80-64-v6943
if /i "%basewad%" EQU "IOS80-64-v6943" support\hexalter.exe %basecios%\%lastbasemodule%.app 0x21424=0xE0
if /i "%basewad%" EQU "IOS80-64-v6943" support\hexalter.exe %basecios%\%lastbasemodule%.app 0x29078=0x63,0xB8,0x2B,0xB4,0xF4,0x61,0x4E,0x2E,0x13,0xF2,0xFE,0xFB,0xBA,0x4C,0x9B,0x7E
echo.
:nokorpatch
::copy over extra components
echo.
echo Copying over Custom Modules
echo.
::222v4
if /i "%basecios%" EQU "cIOS222[38]-v4" copy support\Hermes\mloadv3.app %basecios%\0000000f.app
::223v4
if /i "%basecios%" EQU "cIOS223[37-38]-v4" copy support\Hermes\mloadv3.app %basecios%\0000000f.app
::222v5
if /i "%basecios%" EQU "cIOS222[38]-v5" copy support\Hermes\mloadv5.app %basecios%\0000000f.app
::223v5 base37
if /i "%basecios%" EQU "cIOS223[37]-v5" copy support\Hermes\mloadv5.app %basecios%\0000000f.app
::224v5 base57
if /i "%basecios%" EQU "cIOS224[57]-v5" copy support\Hermes\mloadv5.app %basecios%\00000013.app
::202v5.1R base60
if /i "%basecios%" EQU "cIOS202[60]-v5.1R" copy support\Hermes\mloadv5.1R.app %basecios%\0000000f.app
::222v5.1R base38
if /i "%basecios%" EQU "cIOS222[38]-v5.1R" copy support\Hermes\mloadv5.1R.app %basecios%\0000000f.app
::223v5.1R base37
if /i "%basecios%" EQU "cIOS223[37]-v5.1R" copy support\Hermes\mloadv5.1R.app %basecios%\0000000f.app
::224v5.1R base57
if /i "%basecios%" EQU "cIOS224[57]-v5.1R" copy support\Hermes\mloadv5.1R.app %basecios%\00000013.app
::249v19 base37
if /i "%basecios%" EQU "cIOS249[37]-v19" copy support\W19modules\mload.app %basecios%\0000000f.app
if /i "%basecios%" EQU "cIOS249[37]-v19" copy support\W19modules\EHCI.app %basecios%\00000010.app
if /i "%basecios%" EQU "cIOS249[37]-v19" copy support\W19modules\FAT.app %basecios%\00000011.app
if /i "%basecios%" EQU "cIOS249[37]-v19" copy support\W19modules\SDHC.app %basecios%\00000012.app
if /i "%basecios%" EQU "cIOS249[37]-v19" copy support\W19modules\DIPP.app %basecios%\00000013.app
if /i "%basecios%" EQU "cIOS249[37]-v19" copy support\W19modules\FFSP.app %basecios%\00000014.app
::249v19 base38
if /i "%basecios%" EQU "cIOS249[38]-v19" copy support\W19modules\mload.app %basecios%\0000000f.app
if /i "%basecios%" EQU "cIOS249[38]-v19" copy support\W19modules\EHCI.app %basecios%\00000010.app
if /i "%basecios%" EQU "cIOS249[38]-v19" copy support\W19modules\FAT.app %basecios%\00000011.app
if /i "%basecios%" EQU "cIOS249[38]-v19" copy support\W19modules\SDHC.app %basecios%\00000012.app
if /i "%basecios%" EQU "cIOS249[38]-v19" copy support\W19modules\DIPP.app %basecios%\00000013.app
if /i "%basecios%" EQU "cIOS249[38]-v19" copy support\W19modules\FFSP.app %basecios%\00000014.app
::249v20 base38
if /i "%basecios%" EQU "cIOS249[38]-v20" copy support\W20modules\mload.app %basecios%\0000000f.app
if /i "%basecios%" EQU "cIOS249[38]-v20" copy support\W20modules\EHCI.app %basecios%\00000010.app
if /i "%basecios%" EQU "cIOS249[38]-v20" copy support\W20modules\FAT.app %basecios%\00000011.app
if /i "%basecios%" EQU "cIOS249[38]-v20" copy support\W20modules\SDHC.app %basecios%\00000012.app
if /i "%basecios%" EQU "cIOS249[38]-v20" copy support\W20modules\DIPP.app %basecios%\00000013.app
if /i "%basecios%" EQU "cIOS249[38]-v20" copy support\W20modules\ES.app %basecios%\00000014.app
if /i "%basecios%" EQU "cIOS249[38]-v20" copy support\W20modules\FFSP.app %basecios%\00000015.app
::249v20 base56
if /i "%basecios%" EQU "cIOS249[56]-v20" copy support\W20modules\mload.app %basecios%\0000000f.app
if /i "%basecios%" EQU "cIOS249[56]-v20" copy support\W20modules\EHCI.app %basecios%\00000010.app
if /i "%basecios%" EQU "cIOS249[56]-v20" copy support\W20modules\FAT.app %basecios%\00000011.app
if /i "%basecios%" EQU "cIOS249[56]-v20" copy support\W20modules\SDHC.app %basecios%\00000012.app
if /i "%basecios%" EQU "cIOS249[56]-v20" copy support\W20modules\DIPP.app %basecios%\00000013.app
if /i "%basecios%" EQU "cIOS249[56]-v20" copy support\W20modules\ES.app %basecios%\00000014.app
if /i "%basecios%" EQU "cIOS249[56]-v20" copy support\W20modules\FFSP.app %basecios%\00000015.app
::249v19 base57
if /i "%basecios%" EQU "cIOS249[57]-v19" copy support\W19modules\mload.app %basecios%\00000013.app
if /i "%basecios%" EQU "cIOS249[57]-v19" copy support\W19modules\EHCI.app %basecios%\00000014.app
if /i "%basecios%" EQU "cIOS249[57]-v19" copy support\W19modules\FAT.app %basecios%\00000015.app
if /i "%basecios%" EQU "cIOS249[57]-v19" copy support\W19modules\SDHC.app %basecios%\00000016.app
if /i "%basecios%" EQU "cIOS249[57]-v19" copy support\W19modules\DIPP.app %basecios%\00000017.app
if /i "%basecios%" EQU "cIOS249[57]-v19" copy support\W19modules\FFSP.app %basecios%\00000018.app
::249v20 base57
if /i "%basecios%" EQU "cIOS249[57]-v20" copy support\W20modules\mload.app %basecios%\00000013.app
if /i "%basecios%" EQU "cIOS249[57]-v20" copy support\W20modules\EHCI.app %basecios%\00000014.app
if /i "%basecios%" EQU "cIOS249[57]-v20" copy support\W20modules\FAT.app %basecios%\00000015.app
if /i "%basecios%" EQU "cIOS249[57]-v20" copy support\W20modules\SDHC.app %basecios%\00000016.app
if /i "%basecios%" EQU "cIOS249[57]-v20" copy support\W20modules\DIPP.app %basecios%\00000017.app
if /i "%basecios%" EQU "cIOS249[57]-v20" copy support\W20modules\ES.app %basecios%\00000018.app
if /i "%basecios%" EQU "cIOS249[57]-v20" copy support\W20modules\FFSP.app %basecios%\00000019.app
::249v17b
if /i "%basecios%" EQU "cIOS249-v17b" copy support\W17bmodules\0000000f.app %basecios%\0000000f.app
if /i "%basecios%" EQU "cIOS249-v17b" copy support\W17bmodules\00000010.app %basecios%\00000010.app
if /i "%basecios%" EQU "cIOS249-v17b" copy support\W17bmodules\00000011.app %basecios%\00000011.app
::249v14
if /i "%basecios%" EQU "cIOS249-v14" copy support\W14modules\EHCI.app %basecios%\0000000f.app
if /i "%basecios%" EQU "cIOS249-v14" copy support\W14modules\SDHC.app %basecios%\00000010.app
if /i "%basecios%" EQU "cIOS249-v14" copy support\W14modules\FAT.app %basecios%\00000011.app
::249v21 base 37/38/56
if /i "%basecios%" EQU "cIOS249[37]-v21" goto:yes
if /i "%basecios%" EQU "cIOS249[38]-v21" goto:yes
if /i "%basecios%" EQU "cIOS249[53]-v21" goto:yes
if /i "%basecios%" EQU "cIOS249[55]-v21" goto:yes
if /i "%basecios%" EQU "cIOS249[56]-v21" goto:yes
goto:skip
:yes
copy support\W21modules\mload.app %basecios%\0000000f.app
copy support\W21modules\FAT.app %basecios%\00000010.app
copy support\W21modules\SDHC.app %basecios%\00000011.app
copy support\W21modules\EHCI.app %basecios%\00000012.app
copy support\W21modules\DIPP.app %basecios%\00000013.app
copy support\W21modules\ES.app %basecios%\00000014.app
copy support\W21modules\FFSP.app %basecios%\00000015.app
:skip
::249v21 base57
if /i "%basecios%" EQU "cIOS249[57]-v21" copy support\W21modules\mload.app %basecios%\00000013.app
if /i "%basecios%" EQU "cIOS249[57]-v21" copy support\W21modules\FAT.app %basecios%\00000014.app
if /i "%basecios%" EQU "cIOS249[57]-v21" copy support\W21modules\SDHC.app %basecios%\00000015.app
if /i "%basecios%" EQU "cIOS249[57]-v21" copy support\W21modules\EHCI.app %basecios%\00000016.app
if /i "%basecios%" EQU "cIOS249[57]-v21" copy support\W21modules\DIPP.app %basecios%\00000017.app
if /i "%basecios%" EQU "cIOS249[57]-v21" copy support\W21modules\ES.app %basecios%\00000018.app
if /i "%basecios%" EQU "cIOS249[57]-v21" copy support\W21modules\FFSP.app %basecios%\00000019.app
::249v21 base58
if /i "%basecios%" EQU "cIOS249[58]-v21" copy support\W21modules\mload.app %basecios%\00000013.app
if /i "%basecios%" EQU "cIOS249[58]-v21" copy support\W21modules\FAT.app %basecios%\00000014.app
if /i "%basecios%" EQU "cIOS249[58]-v21" copy support\W21modules\SDHC.app %basecios%\00000015.app
if /i "%basecios%" EQU "cIOS249[58]-v21" copy support\W21modules\USBS.app %basecios%\00000016.app
if /i "%basecios%" EQU "cIOS249[58]-v21" copy support\W21modules\DIPP.app %basecios%\00000017.app
if /i "%basecios%" EQU "cIOS249[58]-v21" copy support\W21modules\ES.app %basecios%\00000018.app
if /i "%basecios%" EQU "cIOS249[58]-v21" copy support\W21modules\FFSP.app %basecios%\00000019.app
::------sign cIOS with details---------
:signcios
set d2xNumber=
set d2xhexNumber=
set baseNumber=
set basehexNumber=
set d2xsubversion=
set string=
set string1=
set cIOSsubversion=
if /i "%code2%" EQU "00000101" goto:repackwad
echo.
echo Tagging 00000000.app with cIOS details
echo.
if /i "%wadname:~-5%" EQU "-vWii" (set d2xTag=%d2x-beta-rev%-vWii) else (set d2xTag=%d2x-beta-rev%)
::----convert some values from dec to hex----
if /i "%basecios:~12,3%" NEQ "d2x" goto:minijump
echo "set cIOSversionNum=%d2xTag%">temp\cIOSrev.bat
support\sfk filter -spat temp\cIOSrev.bat -rep _\x22__ -rep _"-*"__ -write -yes>nul
call temp\cIOSrev.bat
del temp\cIOSrev.bat>nul
:minijump
support\sfk hex %cIOSversionNum% -digits=8 >hex.txt
::set a file with 1 line as a variable
set /p cIOShexNumber= <hex.txt
if exist hex.txt del hex.txt>nul
::-----
set baseNumber=%basewad:~3,2%
::base # for 37+38=75
if /i "%basecios%" EQU "cIOS223[37-38]-v4" set baseNumber=75
support\sfk hex %baseNumber% -digits=8 >hex.txt
::set a file with 1 line as a variable
set /p basehexNumber= <hex.txt
if exist hex.txt del hex.txt>nul
::-----cIOSFamilyName (this part required for d2x betas only)-------
if /i "%basecios:~12,3%" NEQ "d2x" goto:tinyjump
set cIOSsubversion=
set cIOSFamilyName=d2x
if exist support\d2x-beta\d2x-beta.bat call support\d2x-beta\d2x-beta.bat
::limit cios family name to 16 chars
set cIOSFamilyName=%cIOSFamilyName:~0,16%
::-----version string (ie. beta1) (this part required for d2x betas only)------
set string1=%cIOSversionNum%
set versionlength=1
::letter by letter loop
:loopy
if /i "%string1%" EQU "" goto:endloopy
set string1=%string1:~1%
set /A versionlength=%versionlength%+1
goto loopy
:endloopy
echo set cIOSsubversion=@d2xTag:~%versionlength%,16@>cIOSsubversion.bat
support\sfk filter cIOSsubversion.bat -spat -rep _@_%%_ -write -yes>nul
call cIOSsubversion.bat
del cIOSsubversion.bat>nul
:tinyjump
::copy template .app
::copy /y "support\00000000-template.app" "%basecios%\00000000.app">nul
if exist "%basecios%\00000000.app" del "%basecios%\00000000.app">nul
::silently build modmii banner placeholder for hidden channels (00000000-template.app)
support\sfk echo 1EE7C105000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +hextobin "%basecios%\00000000.app">nul
if not exist "%basecios%\00000000.app" echo failed to build 00000000-template.app...
::hexalter version number and base wad number
support\hexalter.exe "%basecios%\00000000.app" 0x8=0x%cIOShexNumber:~0,2%,0x%cIOShexNumber:~2,2%,0x%cIOShexNumber:~4,2%,0x%cIOShexNumber:~6,2%,0x%basehexNumber:~0,2%,0x%basehexNumber:~2,2%,0x%basehexNumber:~4,2%,0x%basehexNumber:~6,2%
::convert %cIOSFamilyName% to hex then hexalter
set var=%cIOSFamilyName%
call support\subscripts\Ascii2hex.bat
::setlocal DISABLEDELAYEDEXPANSION
support\sfk filter -quiet "temphex.txt" -rep _,_,0x_ -write -yes
set /p cIOSFamilyNamehex= <temphex.txt
del /f /q temphex.txt
set cIOSFamilyNamehex=0x%cIOSFamilyNamehex:~0,-4%
support\hexalter.exe "%basecios%\00000000.app" 0x10=%cIOSFamilyNamehex%
::only patch cIOSsubversion if not = nul
if "%cIOSsubversion%"=="" goto:tinyjump
set var=%cIOSsubversion%
call support\subscripts\Ascii2hex.bat
::setlocal DISABLEDELAYEDEXPANSION
support\sfk filter -quiet "temphex.txt" -rep _,_,0x_ -write -yes
set /p cIOSsubversionhex= <temphex.txt
del /f /q temphex.txt
set cIOSsubversionhex=0x%cIOSsubversionhex:~0,-4%
support\hexalter.exe "%basecios%\00000000.app" 0x20=%cIOSsubversionhex%
:tinyjump
::---------RC24 Replace nintendo's RSA public key [A7144290...919AF969] with RC24's----------
::disabled, no longer necessary:
goto:skipRC24key
::override for IOS60
if /i "%basecios%" EQU "IOS60v65535(ModMii-IOS60-v6174)" (set offset=5A7F8) & (goto:RC24key)
goto:skipRC24key
:RC24key
echo.
echo Patching the RiiConnect24 RSA public key
echo.
support\hexalter.exe "%basecios%\00000006.app" 0x%offset%=0xDC,0x60,0x8C,0x0D,0x49,0x3A,0x2B,0x8C,0x5B,0x24,0x3C,0xE6,0xD1,0xB8,0x1D,0x0F,0x63,0xFF,0x66,0x07,0xAC,0x5C,0xFA,0x20,0xB5,0xF3,0xB5,0x5A,0x2F,0x11,0xEE,0xA1,0x1E,0x4C,0x9C,0xEA,0xD7,0xA3,0x38,0x86,0x39,0xBC,0xAF,0x60,0x1C,0x85,0xCD,0xEC,0x0A,0xE5,0xFD,0x73,0xC5,0xC0,0x73,0x98,0x49,0x94,0xF9,0x75,0xC2,0xA5,0x0E,0xE0,0x78,0x69,0x89,0xDE,0x69,0x6E,0x46,0x5F,0x62,0x63,0xBE,0x10,0x1C,0x68,0x23,0x79,0x28,0x93,0xCB,0xFA,0xA4,0x94,0xDE,0xF7,0x4C,0xD8,0x27,0x90,0x5C,0x32,0x16,0x2E,0x3B,0x0B,0x07,0xCD,0x6C,0xC2,0x3F,0x2D,0xC9,0x1A,0x13,0x5A,0x58,0x26,0x0C,0x06,0x2C,0xDA,0xFA,0x12,0x48,0xD0,0x13,0x89,0xF2,0x0F,0xBF,0xE6,0xA0,0x6A,0x0D,0xE5,0x1A,0x9A,0xD7,0x48,0x3C,0x57,0x25,0xF6,0x79,0x92,0x6B,0x75,0xC4,0x19,0xE6,0xB6,0xA0,0x5C,0x67,0x8C,0x42,0x56,0x5E,0x69,0x25,0x34,0x93,0xD3,0x32,0x3A,0xB9,0xC4,0x51,0x79,0x93,0x24,0x55,0x3E,0x8E,0x69,0xC6,0x99,0xE6,0x1A,0x84,0x85,0xEB,0x9E,0x23,0x70,0x25,0xEC,0x89,0x76,0x63,0x33,0xCB,0xBB,0x96,0x42,0x46,0x02,0xE8,0x82,0x84,0x98,0x05,0xF8,0x67,0xB5,0x8E,0xE4,0x57,0x39,0xC8,0x69,0x5C,0xC4,0x89,0x85,0x67,0x87,0x8F,0x3B,0x70,0x14,0x66,0xEC,0x88,0xE6,0x51,0x4D,0x81,0xF4,0xAE,0xBA,0x73,0x02,0x00,0x33,0x4E,0x1A,0x47,0xFE,0xA9,0x8E,0xAE,0x7F,0x82,0xE7,0xF5,0x6B,0x44,0x16,0x59,0x9E,0xE5,0xDA,0x4B,0x53,0x26,0x46,0xDB,0x93,0x5A,0x6F,0xBB,0x03
:skipRC24key
::---------patches for d2x cIOSs via ciosmaps.xml (including IRQ4 patch if applicable)--------
if /i "%basecios:~12,3%" NEQ "d2x" goto:repackwad
::if /i "%wadname:~-5%" EQU "-vWii" (set xml=ciosmaps_vWii.xml) else (set xml=ciosmaps.xml)
echo.
echo Patching some IOS modules
echo.
copy /y "%xml%" temp\ciosmaps.xml>nul
::get base IOS section
support\sfk -spat filter temp\ciosmaps.xml -inc "base ios\x3d\x22%basewad:~3,2%" to "\x2fbase" -nocheck -write -yes>nul
::rename comments and redirects
support\sfk -spat filter temp\ciosmaps.xml -rep _"\x3c\x21\x2d\x2d"_commentstart_ -rep _"\x2d\x2d\x3e"_commentend_ -write -yes>nul
support\sfk -spat filter temp\ciosmaps.xml -rep _"\x3c"__ -rep _"\x2f\x3e"_LineEnd_ -rep _"\x3e"_LineEnd_ -write -yes>nul
::remove quotes, equal signs, and trailing spaces\slashes
support\sfk -spat filter temp\ciosmaps.xml -rep _"\x3d"__ -rep _"\x22"__ -write -yes>nul
support\sfk -spat filter temp\ciosmaps.xml -lerep _"\x2f"__ -lerep _"\x20"__ -write -yes>nul
::remove blank lines
support\sfk filter temp\ciosmaps.xml -no-empty-lines -no-blank-lines -write -yes>nul
::force remove IRQ4 patch for d2x v8 base 58 (harmless but included by davebaol by accident)
::this change will mean slight differences with Legacy cIOS WADs vs WiiPy\d2x installer
if /i "%basewad:~3,2%" NEQ "58" goto:no58fix
if /i "%ciosversion%" NEQ "21008" goto:no58fix
support\sfk -spat filter temp\ciosmaps.xml -!"patch offset0x28530 size4 originalbytes0xFF,0xFF,0x5D,0x52 newbytes0xFF,0xFF,0x5D,0x5C" -write -yes>nul
:no58fix
::get contentscount\basemodules\modulescount --> basemodules=lastbasemodules+1 (includes 00000000.app)
set /p topline= <temp\ciosmaps.xml
::-------disable getting info for now, not needed-------
goto:DisableGettingcIOSINFO
echo %topline%>temp\temp.txt
support\sfk filter temp\temp.txt -rep _*contentscount__ -rep _" "*__ -write -yes>nul
set /p contentscount= <temp\temp.txt
support\sfk dec %lastbasemodule%>temp\temp.txt
set /p basemodules= <temp\temp.txt
set /a basemodules=%basemodules%+1
set /a modulescount=%contentscount%-%basemodules%
::echo %contentscount%
::echo %basemodules%
::echo %modulescount%
:DisableGettingcIOSINFO
::--------------------------------------------------------
::remove topline
support\sfk filter temp\ciosmaps.xml -!"%topline%" -write -yes>nul
::remove 00000000.app patches (done later)
support\sfk -spat filter temp\ciosmaps.xml -cut "*" to "\x2fcontent" -nocheck -write -yes>nul
::remove /content and /base
support\sfk -spat filter temp\ciosmaps.xml -!"\x2fcontent" -!"\x2fbase" -write -yes>nul
::split to temp\ciosmodules.xml
support\sfk filter temp\ciosmaps.xml -and+"module" -!"commentstart" -!"commentend" -!"\x2fbase">temp\ciosmodules.xml
support\sfk filter temp\ciosmaps.xml -!"module" -!"\x2fbase" -write -yes>nul
set contentid=0
set xmlcomment=
set newbytes=
set newbytestemp=
set getnewbytes=
::-----------------------:process ciosmaps.xml: loop though xml---------------------------
::Loop through the following once for EACH line in *.txt
for /F "tokens=*" %%A in (temp\ciosmaps.xml) do call :processciosmaps %%A
goto:quickskip
:processciosmaps
::set xmlLine=%*
echo %*>temp\temp.txt
findStr /I /C:"commentend" "temp\temp.txt" >nul
if not ERRORLEVEL 1 (set xmlcomment=) & (goto:EOF)
if /i "%xmlcomment%" EQU "on" goto:EOF
findStr /I /C:"commentstart" "temp\temp.txt" >nul
if not ERRORLEVEL 1 (set xmlcomment=on) & (goto:EOF)
findStr /I /C:"content id" "temp\temp.txt" >nul
if not ERRORLEVEL 1 (set /a contentid=%contentid%+1) & (goto:EOF)
::----patching...----
::get current contendid
support\sfk hex %contentid% -digits=8 >temp\hex.txt
set /p contentidhex= <temp\hex.txt
set contentidhex=%contentidhex:~0,-1%
::get patchoffset
findStr /I /C:"patch offset" "temp\temp.txt" >nul
if ERRORLEVEL 1 goto:skip
support\sfk -spat filter temp\temp.txt -rep _*"patch offset"__ -rep _" "*__ -rep _"LineEnd"*__ -write -yes>nul
set /p patchoffset= <temp\temp.txt
:skip
::get newbytes
echo %*>temp\temp.txt
findStr /I /C:"newbytes" "temp\temp.txt" >nul
if not ERRORLEVEL 1 set getnewbytes=on
if /i "%getnewbytes%" NEQ "on" goto:skip
::filter for newbytes
support\sfk -spat filter temp\temp.txt -rep _*"newbytes"__ -rep _\x20\x20__ -lsrep _\x20__ -rep _"LineEnd"*__ -rep _" "*__ -write -yes>nul
set newbytestemp=
set /p newbytestemp= <temp\temp.txt
set newbytes=%newbytes%%newbytestemp%
if "%newbytes%"=="" goto:EOF
if /i "%newbytes:~0,2%" NEQ "0x" (set newbytes=) & (goto:EOF)
:skip
::check LineEnd
echo %*>temp\temp.txt
findStr /I /C:"LineEnd" "temp\temp.txt" >nul
if ERRORLEVEL 1 goto:EOF
if "%newbytes%"=="" goto:EOF
if "%patchoffset%"=="" goto:EOF
::::verbose
::echo support\hexalter.exe %basecios%\%contentidhex%.app %patchoffset%=%newbytes%
support\hexalter.exe %basecios%\%contentidhex%.app %patchoffset%=%newbytes%
set patchoffset=
set newbytes=
set newbytestemp=
set getnewbytes=
goto:EOF
:quickskip
echo.
echo Copying over Custom Modules
echo.
::Loop through the following once for EACH line in *.txt
for /F "tokens=*" %%A in (temp\ciosmodules.xml) do call :processciosmodules %%A
goto:quickskip
:processciosmodules
set /a contentid=%contentid%+1
support\sfk hex %contentid% -digits=8 >temp\hex.txt
set /p contentidhex= <temp\hex.txt
set contentidhex=%contentidhex:~0,-1%
::set xmlLine=%*
echo %*>temp\temp.txt
::get module
support\sfk -spat filter temp\temp.txt -rep _*" module"__ -rep _" "*__ -write -yes>nul
set /p module= <temp\temp.txt
if exist "%d2xFolder%\%module%.app" copy "%d2xFolder%\%module%.app" "%basecios%\%contentidhex%.app"
goto:EOF
:quickskip
echo.
::use tmdedit.exe to patch tmd
if /i "%usetmdedit%" NEQ "Y" goto:repackwad
::if exist Support\d2x-beta\ciosmaps.xml (set xml=Support\d2x-beta\ciosmaps.xml) else (set xml=Support\d2xModules\ciosmaps.xml)
::if /i "%wadname:~-5%" NEQ "-vWii" goto:skip
::if exist Support\d2x-beta\ciosmaps_vWii.xml (set xml=Support\d2x-beta\ciosmaps_vWii.xml) else (set xml=Support\d2xModules\ciosmaps_vWii.xml)
:::skip
::get tmd version from cIOS ; e.g. <ciosgroup name="d2x-v10-beta53-alt" version="21010" basescount="10">
support\sfk -spat filter "%xml%" -and+"ciosgroup name" -and+"version" -and+"basescount" -rep _*version\x3d\x22__ -rep _\x22*__ >temp\d2xversion.xml
set /p tmdversion= <temp\d2xversion.xml
del temp\d2xversion.xml>nul
set tmdslot=249
set "d2x-beta-rev-tmd=%wadname:~17%"
::set d2x-beta-rev-tmd=%d2x-beta-rev%
echo Editing tmd...
::hardcoded 00000001 as "code1" is 00000007 for vWii bases, but not cIOSs
support\TMDedit.exe -b "%basecios%\00000001%code2new%.tmd" -xml %xml% -group d2x-v%d2x-beta-rev-tmd% %tmdversion% -base %basewad:~3,2% %version% -folder "%basecios%" -basefile %basecios%\00000001%code2%.tmd -outIOS %tmdslot%
del %basecios%\00000001%code2%.tmd>nul
::---------pack files into cIOS wad---------
:repackwad
echo.
echo Repacking Wad
echo.
if /i "%LegacyCIOS%" NEQ "Y" %WiiPy% wad pack --fakesign "%basecios%" "%Drive%\WAD\%wadname%.wad">nul
if /i "%LegacyCIOS%" EQU "Y" support\wadmii -in "%basecios%" -out "%Drive%\WAD\%wadname%.wad"
::delete unpacked files
rd /s /q %basecios%
::Change version number and slot number (using patchios) only if required
:patchios
if /i "%ciosslot%" EQU "unchanged" goto:skip
echo Changing version number and/or slot number
if /i "%LegacyCIOS%" NEQ "Y" goto:skipoverride
if not exist support\patchios.exe goto:skipoverride
cd support
if /i "%DRIVE:~1,1%" EQU ":" (set "DRIVEadj=%DRIVE%") else (set "DRIVEadj=..\%DRIVE%")
patchios "%Driveadj%\WAD\%wadname%.wad" -slot %ciosslot% -v %ciosversion%
cd..
::no fakesign for legacy d2x-beta.bat support
::if /i "%LegacyCIOS%" NEQ "Y" %WiiPy% fakesign "%Drive%\WAD\%wadname%.wad">nul
echo.
goto:skip
:skipoverride
::Change slot\version using WiiPy instead of patchios.exe
%WiiPy% iospatch -s %ciosslot% -v %ciosversion% "%Drive%\WAD\%wadname%.wad"
echo.
:skip
if "%wadname:~-4%" NEQ ".wad" set wadname=%wadname%.wad
if /i "%wadname:~0,3%" EQU "DML" goto:simpleDMLcheck
goto:wadverifyretry
:simpleDMLcheck
if not exist "%Drive%"\WAD\%wadname% goto:missing
:pass
echo.
support\sfk echo [%greentext%]Download Successful
echo.
if /i "%AdvancedDownload%" NEQ "Y" echo "echo %name%: Valid">>temp\ModMii_Log.bat
goto:NEXT
:missing
if /i "%attempt%" EQU "1" goto:missingretry
echo.
support\sfk echo [%magentatext%] This file has failed to download properly multiple times, Skipping download.
if /i "%AdvancedDownload%" NEQ "Y" echo "support\sfk echo %name%: [%redtext%]Missing">>temp\ModMii_Log.bat
echo.
goto:NEXT
:missingretry
echo.
support\sfk echo [%yellowtext%] The file is missing, retrying download.
echo.
SET /a retry=%retry%+1
SET /a attempt=%attempt%+1
goto:DOWNLOADSTART2
::----------------------------------------THEMES-------------------------------------
:THEMES
if not exist "%Drive%"\themes mkdir "%Drive%"\themes
::----if exist and fails md5 check, delete and redownload----
if exist "%Drive%"\themes\%wadname%.csm (goto:checkexisting) else (goto:nocheckexisting)
:checkexisting
set md5check=
support\sfk md5 -quiet -verify %md5% "%Drive%"\themes\%wadname%.csm
if errorlevel 1 set md5check=fail
IF "%md5check%"=="" set md5check=pass
if /i "%md5check%" NEQ "fail" goto:pass
:fail
echo.
support\sfk echo [%yellowtext%] This file already exists but it failed MD5 verification.
support\sfk echo [%yellowtext%] The current version of the file will be deleted and the file will be re-downloaded.
echo.
SET /a retry=%retry%+1
SET /a attempt=%attempt%+1
del "%Drive%"\themes\%wadname%.csm>nul
goto:DOWNLOADSTART2
:pass
support\sfk echo [%greentext%]This file already exists and has been verified, Skipping download
echo.
if /i "%AdvancedDownload%" NEQ "Y" echo "echo %name%: Valid">>temp\ModMii_Log.bat
goto:NEXT
:nocheckexisting
::-------------Download base app----------------------
::if /i "%wadname:~-5,-1%" NEQ "vWii" set dlname=000000%version%_%wadname:~-4%.app
echo.
if /i "%wadname:~-5,-1%" NEQ "vWii" echo Downloading Base theme app from System Menu %wadname:~-4%: %dlname:~0,8%.app
if /i "%wadname:~-5,-1%" EQU "vWii" echo Downloading Base theme app from vWii System Menu 4.3%wadname:~-1%: %dlname:~0,8%.app
echo.
::----if exist and fails md5 check, delete and redownload----
if not exist "%Drive%"\themes\%dlname% goto:nocheckexisting
set md5basecheck=
support\sfk md5 -quiet -verify %md5base% "%Drive%"\themes\%dlname%
if errorlevel 1 set md5basecheck=fail
IF "%md5basecheck%"=="" set md5basecheck=pass
if /i "%md5basecheck%" NEQ "fail" goto:pass
:fail
echo.
support\sfk echo [%yellowtext%] This base app already exists but it failed MD5 verification.
support\sfk echo [%yellowtext%] The current version of the file will be deleted and the file will be re-downloaded.
echo.
SET /a retry=%retry%+1
SET /a attempt=%attempt%+1
del "%Drive%"\themes\%dlname%>nul
if exist temp\%dlname% del temp\%dlname%>nul
goto:DOWNLOADSTART2
:pass
support\sfk echo -spat \x20 \x20 \x20 [%greentext%] Base App already exists and has been verified, Continuing...
echo.
goto:mym_download
:nocheckexisting
if exist temp\%dlname% goto:AlreadyinTemp
%WiiPy% nus content -v %version% -o "temp\%dlname%" -d %code1%%code2% %dlname:~0,8%
if /i "%code1%%code2%" NEQ "0000000700000002" goto:AlreadyinTemp
echo.
echo Fixing vWii aspect ratio for Everybody Votes and Check Mii Out channels...
%WiiPy% u8 unpack "temp\%dlname%" "temp\%dlname:~0,-4%">nul
::fixes aspect ratio on vWii for Everybody Votes and Check Mii Out channels
::use partcopy and partcopy +append to remove 8 bytes from 0x10-0x17 [48 41 4A 00 48 41 50 00], and also change 0x82 to 0x80 at offset 0xB
support\sfk partcopy "temp\%dlname:~0,-4%\titlelist\wwdb.bin" -fromto 0x0 0x10 "temp\wwdb.bin" -yes +sfk partcopy "temp\%dlname:~0,-4%\titlelist\wwdb.bin" -allfrom 0x18 "temp\wwdb.bin" -yes -append>nul
support\sfk setbytes "temp\wwdb.bin" 0xB 0x80 -yes>nul
if exist "temp\wwdb.bin" move /y "temp\wwdb.bin" "temp\%dlname:~0,-4%\titlelist\wwdb.bin">nul
%WiiPy% u8 pack "temp\%dlname:~0,-4%" "temp\%dlname%"
if exist "temp\%dlname:~0,-4%" rd /s /q "temp\%dlname:~0,-4%"
:AlreadyinTemp
if exist temp\%dlname% copy /y temp\%dlname% "%Drive%"\themes\%dlname% >nul
::----Check base APP-----------
::----check after downloading - if md5 check fails, delete and redownload----
if exist "%Drive%"\themes\%dlname% goto:checkexisting
:missing
if /i "%attempt%" EQU "1" goto:missingretry
echo.
support\sfk echo [%magentatext%] This file has failed to download properly multiple times, Skipping download.
echo.
if /i "%AdvancedDownload%" NEQ "Y" echo "support\sfk echo %wadname%.csm: [%redtext%]Missing">>temp\ModMii_Log.bat
goto:NEXT
:missingretry
echo.
support\sfk echo [%yellowtext%] The file is missing, retrying download.
echo.
SET /a retry=%retry%+1
SET /a attempt=%attempt%+1
goto:DOWNLOADSTART2
:checkexisting
set md5basecheck=
support\sfk md5 -quiet -verify %md5base% "%Drive%"\themes\%dlname%
if errorlevel 1 set md5basecheck=fail
IF "%md5basecheck%"=="" set md5basecheck=pass
if /i "%md5basecheck%" NEQ "fail" goto:pass
:fail
if /i "%attempt%" NEQ "1" goto:multiplefail
echo.
support\sfk echo [%yellowtext%] This base app already exists but it failed MD5 verification.
support\sfk echo [%yellowtext%] The current version of the file will be deleted and the file will be re-downloaded.
echo.
del "%Drive%"\themes\%dlname%>nul
if exist temp\%dlname% del temp\%dlname%>nul
SET /a retry=%retry%+1
SET /a attempt=%attempt%+1
goto:DOWNLOADSTART2
:multiplefail
echo.
support\sfk echo [%magentatext%] This file has failed to download properly multiple times, Skipping download.
echo.
set multiplefail=Y
if /i "%AdvancedDownload%" NEQ "Y" echo "support\sfk echo %wadname%.csm: [%redtext%]Missing">>temp\ModMii_Log.bat
goto:NEXT
:pass
echo.
support\sfk echo -spat \x20 \x20 \x20 [%greentext%] Base App has been Downloaded Successfully, Continuing...
echo.
::if /i "%AdvancedDownload%" NEQ "Y" echo "echo %wadname%.csm: Valid">>temp\ModMii_Log.bat
goto:mym_download
::-------------------mym download to build csm file---------------------
:mym_download
set mym0=%mym1%
set md5mym0=%md5mym1%
set mym2=
:mym2_download
echo.
echo Downloading %mym0%
echo.
::----if exist and fails md5 check, delete and redownload----
if not exist "temp\%mym0%" goto:nocheckexisting
set md5mymcheck=
support\sfk md5 -quiet -verify %md5mym0% "temp\%mym0%"
if errorlevel 1 set md5mymcheck=fail
IF "%md5mymcheck%"=="" set md5mymcheck=pass
if /i "%md5mymcheck%" NEQ "fail" goto:pass
:fail
echo.
support\sfk echo [%yellowtext%] This mym file already exists but it failed MD5 verification.
support\sfk echo [%yellowtext%] The current version of the file will be deleted and the file will be re-downloaded.
echo.
SET /a retry=%retry%+1
SET /a attempt=%attempt%+1
del "temp\%mym0%">nul
goto:DOWNLOADSTART2
:pass
support\sfk echo -spat \x20 \x20 \x20 [%greentext%] File already exists and has been verified, Continuing...
echo.
::if /i "%category%" EQU "SMTHEME" goto:SMTHEME2
goto:download_mym2
:nocheckexisting
support\wget --no-check-certificate -t 3 "https://raw.githubusercontent.com/modmii/modmii.github.io/master/temp/%mym0%" -q --show-progress
if exist "%mym0%" move /Y "%mym0%" temp>nul
::----Check mym file after downloading-----------
::----check after downloading - if md5 check fails, delete and redownload----
if exist "temp\%mym0%" goto:checkexisting
:missing
if /i "%attempt%" EQU "1" goto:missingretry
echo.
support\sfk echo [%magentatext%] This file has failed to download properly multiple times, Skipping download.
echo.
if /i "%AdvancedDownload%" NEQ "Y" echo "support\sfk echo %name%: [%redtext%]Missing">>temp\ModMii_Log.bat
goto:NEXT
:missingretry
echo.
support\sfk echo [%yellowtext%] The file is missing, retrying download.
echo.
SET /a retry=%retry%+1
SET /a attempt=%attempt%+1
goto:DOWNLOADSTART2
:checkexisting
set md5mymcheck=
support\sfk md5 -quiet -verify %md5mym0% "temp\%mym0%"
if errorlevel 1 set md5mymcheck=fail
IF "%md5mymcheck%"=="" set md5mymcheck=pass
if /i "%md5mymcheck%" NEQ "fail" goto:pass
:fail
if /i "%attempt%" NEQ "1" goto:multiplefail
echo.
support\sfk echo [%yellowtext%] This File already exists but it failed MD5 verification.
support\sfk echo [%yellowtext%] The current version of the file will be deleted and the file will be re-downloaded.
echo.
del "temp\%mym0%">nul
SET /a retry=%retry%+1
SET /a attempt=%attempt%+1
goto:DOWNLOADSTART2
:multiplefail
echo.
support\sfk echo [%magentatext%] This file has failed to download properly multiple times, Skipping download.
echo.
set multiplefail=Y
if /i "%AdvancedDownload%" NEQ "Y" echo "support\sfk echo %name%: [%redtext%]Missing">>temp\ModMii_Log.bat
goto:NEXT
:pass
echo.
support\sfk echo -spat \x20 \x20 \x20 [%greentext%] File has been Downloaded Successfully, Continuing...
echo.
::if /i "%category%" EQU "SMTHEME" goto:SMTHEME2
::goto:build_csm
:download_mym2
if /i "%mym0%" EQU "%mym2%" goto:thememiiDL
if /i "%effect%" EQU "No-Spin" set mym2=optional_non_spinning_outline.mym
if /i "%effect%" EQU "No-Spin" set md5mym2=9e70e955aa9ba04cb904b350402ed5b3
if /i "%effect%" EQU "Spin" set mym2=optional_spinning_outline_.mym
if /i "%effect%" EQU "Spin" set md5mym2=8cfa69fbaad6971137482265675d2018
if /i "%effect%" EQU "Fast-Spin" set mym2=optional_fast_spinning_outline.mym
if /i "%effect%" EQU "Fast-Spin" set md5mym2=1ddddcf02bc7024b7fde393308cdbd5f
set mym0=%mym2%
set md5mym0=%md5mym2%
goto:mym2_download
::---------thememii cmd line download-------------
:thememiiDL
call Support\subscripts\dependency.bat themewii
if /i "%dependency%" EQU "F" call Support\subscripts\dependency.bat themewii
if /i "%dependency%" NEQ "F" goto:build_csm
echo.
support\sfk echo [%magentatext%] This file has failed to download properly multiple times, Skipping download.
echo.
set multiplefail=Y
if /i "%AdvancedDownload%" NEQ "Y" echo "support\sfk echo %name%: [%redtext%]Missing">>temp\ModMii_Log.bat
goto:NEXT
:build_csm
if /i "%category%" EQU "SMTHEME" goto:SMTHEME2
echo.
echo Building Theme (%wadname%.csm), please wait...
echo.
if exist "temp\temp.csm" del "temp\temp.csm">nul
if exist "temp\temp2.csm" del "temp\temp2.csm">nul
cd /d temp\themewii
themewii.exe "..\%mym1%" "..\%dlname%" "..\temp.csm">nul
themewii.exe "..\%mym2%" "..\temp.csm" "..\temp2.csm">nul
cd ..\..
if exist "temp\temp2.csm" move /y "temp\temp2.csm" "%Drive%\themes\%wadname%.csm">nul
if exist "temp\temp.csm" del "temp\temp.csm">nul
::%WiiPy% theme mym "temp\%mym1%" "temp\%dlname%" "%Drive%\themes\%wadname%.csm"
::%WiiPy% theme mym "temp\%mym2%" "%Drive%\themes\%wadname%.csm" "%Drive%\themes\%wadname%.csm"
::if /i "%errorlevel%" NEQ "0" if exist "%Drive%\themes\%wadname%.csm" del "%Drive%\themes\%wadname%.csm">nul
::----check after downloading - if md5 check fails, delete and redownload----
if exist "%Drive%"\themes\%wadname%.csm goto:checkexisting
:missing
if /i "%attempt%" EQU "1" goto:missingretry
echo.
support\sfk echo [%magentatext%] This file has failed to download properly multiple times, Skipping download.
echo.
if /i "%AdvancedDownload%" NEQ "Y" echo "support\sfk echo %name%: [%redtext%]Missing">>temp\ModMii_Log.bat
goto:NEXT
:missingretry
echo.
support\sfk echo [%yellowtext%] The file is missing, retrying download.
echo.
SET /a retry=%retry%+1
SET /a attempt=%attempt%+1
goto:DOWNLOADSTART2
:checkexisting
set md5check=
support\sfk md5 -quiet -verify %md5% "%Drive%"\themes\%wadname%.csm
if errorlevel 1 set md5check=fail
IF "%md5check%"=="" set md5check=pass
if /i "%md5check%" NEQ "fail" goto:pass
:fail
if /i "%attempt%" NEQ "1" goto:multiplefail
echo.
support\sfk echo [%yellowtext%] This file already exists but it failed MD5 verification.
support\sfk echo [%yellowtext%] The current version of the file will be deleted and the file will be re-downloaded.
echo.
del "%Drive%"\themes\%wadname%.csm>nul
SET /a retry=%retry%+1
SET /a attempt=%attempt%+1
goto:DOWNLOADSTART2
:multiplefail
echo.
support\sfk echo [%magentatext%] This file has failed to download properly multiple times, Skipping download.
echo.
set multiplefail=Y
if /i "%KeepInvalidOverride%" NEQ "Y" (if exist "%Drive%\themes\%wadname%.csm" del "%Drive%\themes\%wadname%.csm">nul)
if /i "%AdvancedDownload%" NEQ "Y" echo "support\sfk echo %name%: [%redtext%]Invalid">>temp\ModMii_Log.bat
goto:NEXT
:pass
echo.
support\sfk echo [%greentext%]Download Successful
echo.
if /i "%AdvancedDownload%" NEQ "Y" echo "echo %name%: Valid">>temp\ModMii_Log.bat
goto:NEXT
::--------------------------------------Cheat Codes: txtcodes from codes.rc24.xyz------------------------------
:CHEATS
echo This "download" saves copies of cheats from txtcodes\ to codes\ in AccioHacks format
echo.
if not exist "%DRIVE%"\txtcodes\*.txt echo "support\sfk echo Copy of Cheat Codes for AccioHacks: [%redtext%]Missing">>temp\ModMii_Log.bat
if not exist "%DRIVE%"\txtcodes\*.txt (support\sfk echo txtcodes Missing, first download some!) & (goto:NEXT)
if not exist temp\wiitdb.xml echo Downloading wiitdb.xml...
if exist temp\wiitdb.xml echo Updating wiitdb.xml...
support\wget --no-check-certificate -t 3 "https://www.gametdb.com/wiitdb.zip?LANG=EN&WIIWARE=1&GAMECUBE=1" -O temp\wiitdb.zip -q --show-progress
if exist temp\wiitdb.zip support\7za x -aoa "temp\wiitdb.zip" -o"temp" -r>nul
if exist temp\wiitdb.zip del temp\wiitdb.zip>nul
if not exist temp\wiitdb.xml echo "support\sfk echo Copy of Cheat Codes for AccioHacks: [%redtext%]Missing">>temp\ModMii_Log.bat
if not exist temp\wiitdb.xml (support\sfk echo wiitdb.xml Missing!) & (goto:NEXT)
::filter xml for just title IDs & names & types. Also remove tabs and replace types with Acciohacks letter codes
support\sfk -spat filter -quiet temp\wiitdb.xml -+"<game name=" -+"<id>" -+"<type" -rep _"<game name=\x22"__ -rep _"\x22>"__ -rep _\x09__ -lsrep _"<type/>"_"<type>R</type>"_ -rep _">CUSTOM<"_">R<"_ -rep _">GameCube<"_">G<"_ >"temp\wiitdb_.xml"
::SD:\codes\X\L\GAMEID.txt
::X (%Accio1%) = Channel Letter ID. (Seen in Accio Hacks and on GeckoCodes in brackets, Wii = R)
::L (%Accio2%) = The first letter of the title of the game. or '#' if it starts with a number.
::--console codes--
::all letter codes are the same as the first letter of the title ID for games with 4-digit title IDs (i.e. not always the case for Wii and Gamecube games which have 6 digit IDs)
::Wii = R
::GameCube = G
::WiiWare = W
::VC Arcade = D
::Wii Channels = H
::NES/Famicom VC = F
::Super NES/Famicom VC = J
::Nintendo 64 VC = N
::Sega Master System VC = L
::Sega Genesis/Mega Drive VC = M
::NeoGeo VC = E
::Commodore 64 VC = C
::MSX VC = X
::TurboGraFX-16 VC = P
::TurboGraFX-CD VC = Q
dir /b /a-d "%DRIVE%"\txtcodes\*.txt>temp\existingcodes.txt
support\sfk filter -quiet temp\existingcodes.txt -rep _.txt__ -write -yes
support\sfk filter -quiet temp\existingcodes.txt -no-empty-lines -no-blank-lines -write -yes
::line count, count lines, if only 1 then don't show
set /a totalcodes=0
set /a codenumber=0
for /f %%a in (temp\existingcodes.txt) do set /a totalcodes+=1
::Loop through the existing list of codes (existingcodes.txt) and remove each existing game from codeindex.txt
for /F "tokens=*" %%A in (temp\existingcodes.txt) do call :codecopy %%A
goto:nextstep
:codecopy
set /a codenumber+=1
set titleid=%*
echo.
echo Copying Cheat %codenumber% of %totalcodes%: "%titleid%"
::get specific title ID info from "temp\wiitdb_.xml"
support\sfk filter -quiet temp\wiitdb_.xml -le+"<id>%titleid%</id>" -context=1 >"temp\wiitdb_.txt"
::delete if file is empty (if empty)
>nul findstr "^" "temp\wiitdb_.txt" || del "temp\wiitdb_.txt"
::if file is empty then no matching title IDs and skip it
if not exist "temp\wiitdb_.txt" (echo unable to locate ID in wiitdb, skipping...) & (goto:EOF)
::get Accio2: first letter of title, make # if a number
set /p Accio2= <temp\wiitdb_.txt
set "Accio2=%Accio2:~0,1%"
::if not numeric goto:skip
for %%A in ("%Accio2%") do (for /f "tokens=1 delims=0123456789" %%B in ("%%~A") do goto:skip)
set "Accio2=#"
:skip
::get Accio1
::if 4 digits (or less) set Accio1 to first letter of title ID
if "%titleid:~4%"=="" (set "Accio1=%titleid:~0,1%") & (goto:skip)
::check wiitdb for 6 digit IDs whether Accio1 should be R (Wii) or G (GameCube)
support\sfk filter -quiet temp\wiitdb_.txt -le+"</type>" -rep _"</*"__ -rep _"*>"__ -write -yes
set /p Accio1= <temp\wiitdb_.txt
if /i "%Accio1%" EQU "R" goto:skip
if /i "%Accio1%" NEQ "G" (echo Unexpected Channel Letter ID, skipping...) & (goto:EOF)
:skip
::copy txt code to appropriate acciohacks directory
if not exist "%DRIVE%\codes\%Accio1%\%Accio2%\" mkdir "%DRIVE%\codes\%Accio1%\%Accio2%"
::sfk copy only if newer, -mirror arg will overwrite even if older
support\sfk copy "%DRIVE%\txtcodes\%titleid%.txt" "%DRIVE%\codes\%Accio1%\%Accio2%\%titleid%.txt" -yes
echo to: "%DRIVE%\codes\%Accio1%\%Accio2%\%titleid%.txt"
goto:EOF
:nextstep
if exist "temp\wiitdb_.xml" del "temp\wiitdb_.xml">nul
if exist "temp\wiitdb_.txt" del "temp\wiitdb_.txt">nul
if exist "temp\existingcodes.txt" del "temp\existingcodes.txt">nul
::Simple Check
If exist "%DRIVE%"\codes echo "echo Copy of Cheat Codes for AccioHacks: Found">>temp\ModMii_Log.bat
If not exist "%DRIVE%"\codes echo "support\sfk echo Copy of Cheat Codes for AccioHacks: [%redtext%]Missing">>temp\ModMii_Log.bat
goto:NEXT
::------------------------NUS File Grabber Downloader for vWii---------------------
:NusdApp
if not exist "%Drive%\%path1%%wadname%" goto:NusdApp2
if not exist "temp\%wadname%" copy /Y "%Drive%\%path1%%wadname%" "temp\%wadname%">nul
goto:DownloadURL
:NusdApp2
if exist temp\%wadname% goto:AlreadyinTemp
::echo If you encounter long periods of inactivity, type "C" while holding "Ctrl",
::echo then type "N", then "Enter" (i.e. Ctrl+C, N, Enter)
::echo.
::support\sharpii.exe nusd -id %code1%%code2% -v %version% -o temp\%wadname% -s %dlname:~0,8%
::if exist "temp\%wadname:~0,-4%" rd /s /q "temp\%wadname:~0,-4%"
%WiiPy% nus content -v %version% -o "temp\%wadname%" -d %code1%%code2% %dlname:~0,8%
::patch only for vwii system menus
if /i "%code1%%code2%" NEQ "0000000700000002" goto:AlreadyinTemp
echo.
echo Fixing vWii aspect ratio for Everybody Votes and Check Mii Out channels...
%WiiPy% u8 unpack "temp\%wadname%" "temp\%wadname:~0,-4%">nul
::fixes aspect ratio on vWii for Everybody Votes and Check Mii Out channels
::use partcopy and partcopy +append to remove 8 bytes from 0x10-0x17 [48 41 4A 00 48 41 50 00], and also change 0x82 to 0x80 at offset 0xB
support\sfk partcopy "temp\%wadname:~0,-4%\titlelist\wwdb.bin" -fromto 0x0 0x10 "temp\wwdb.bin" -yes +sfk partcopy "temp\%wadname:~0,-4%\titlelist\wwdb.bin" -allfrom 0x18 "temp\wwdb.bin" -yes -append>nul
support\sfk setbytes "temp\wwdb.bin" 0xB 0x80 -yes>nul
if exist "temp\wwdb.bin" move /y "temp\wwdb.bin" "temp\%wadname:~0,-4%\titlelist\wwdb.bin">nul
%WiiPy% u8 pack "temp\%wadname:~0,-4%" "temp\%wadname%"
if exist "temp\%wadname:~0,-4%" rd /s /q "temp\%wadname:~0,-4%"
:AlreadyinTemp
if not exist "%Drive%\%path1%" mkdir "%Drive%\%path1%"
copy /Y "temp\%wadname%" "%Drive%\%path1%%wadname%">nul
goto:URLverifyretry
::-------------------------Download from URLs------------------------------
:DownloadURL
::----if exist and fails md5 check, delete and redownload----
if not exist "%Drive%\%path1%%filename%" goto:nocheckexisting
set md5check=
support\sfk md5 -quiet -verify %md5% "%Drive%\%path1%%filename%"
if errorlevel 1 set md5check=fail
IF "%md5check%"=="" set md5check=pass
if /i "%md5check%" NEQ "fail" goto:pass
:fail
echo.
support\sfk echo [%yellowtext%] This file already exists but it failed MD5 verification.
support\sfk echo [%yellowtext%] The current version of the file will be deleted and the file will be re-downloaded.
echo.
SET /a retry=%retry%+1
SET /a attempt=%attempt%+1
del "%Drive%\%path1%%filename%">nul
if exist temp\%wadname% del temp\%wadname%>nul
goto:DOWNLOADSTART2
:pass
support\sfk echo [%greentext%]This file already exists and has been verified, Skipping download
echo.
if /i "%AdvancedDownload%" NEQ "Y" echo "echo %name%: Valid">>temp\ModMii_Log.bat
goto:next
:nocheckexisting
if /i "%category%" EQU "NusdApp" goto:NusdApp2
:DownloadURL2
if not exist temp\%wadname% support\wget --no-check-certificate %code2% -q --show-progress
if exist %dlname% move /y %dlname% temp\%wadname% >nul
support\7za e -aoa temp\%wadname% -o"%Drive%"\%path1% *.%version% -r
::save identifier for bannerbombs
if /i "%dlname%" EQU "aad1f_v108.zip" echo Bannerbombv1 >"%Drive%\%path1%Bannerbomb_v1.txt"
if /i "%dlname%" EQU "abd6a_v200.zip" echo Bannerbombv2 >"%Drive%\%path1%Bannerbomb_v2.txt"
:URLverifyretry
if "%DRIVErestore%"=="" set "DRIVErestore=%Drive%"
::----check after downloading - if md5 check fails, delete and redownload----
if exist "%Drive%\%path1%%filename%" goto:checkexisting
:missing
:missingauto
if /i "%attempt%" EQU "1" goto:missingretry
echo.
support\sfk echo [%magentatext%] This file has failed to download properly multiple times, Skipping download.
echo.
set "DRIVE=%DRIVErestore%"
if /i "%AdvancedDownload%" NEQ "Y" echo "support\sfk echo %name%: [%redtext%]Missing">>temp\ModMii_Log.bat
goto:NEXT
:missingretry
echo.
support\sfk echo [%yellowtext%] The file is missing, retrying download.
echo.
SET /a retry=%retry%+1
SET /a attempt=%attempt%+1
set "DRIVE=%DRIVErestore%"
if /i "%category%" EQU "auto" goto:DOWNLOADSTART2
if exist "temp\%wadname%" del "temp\%wadname%">nul
goto:DOWNLOADSTART2
:checkexisting
if /i "%category%" EQU "auto" goto:autopass
set md5check=
::if "%md5:~32,1%"=="" (echo md5) else (echo sha1)
if "%md5%"=="" goto:autopass
if "%md5:~32,1%"=="" goto:checkmd5
::sha1
certutil -hashfile "%Drive%\%path1%%filename%" SHA1>"temp\sha1.txt"
findStr /I /B /C:"%md5%" "temp\sha1.txt" >nul
IF ERRORLEVEL 1 (set md5check=fail) & (goto:fail)
set md5check=pass
goto:pass
:checkmd5
support\sfk md5 -quiet -verify %md5% "%Drive%\%path1%%filename%"
if errorlevel 1 set md5check=fail
if /i "%wadname%" NEQ "bootmii_sd_files.zip" goto:notbootmiisd
set md5check=fail
support\sfk md5 -quiet -verify %md5% "%Drive%\%path1%%filename%"
if not errorlevel 1 set md5check=pass
support\sfk md5 -quiet -verify %md5alt% "%Drive%\%path1%%filename%"
if not errorlevel 1 set md5check=pass
set md5alt=
:notbootmiisd
IF "%md5check%"=="" set md5check=pass
if /i "%md5check%" NEQ "fail" goto:pass
:fail
if /i "%attempt%" NEQ "1" goto:multiplefail
echo.
support\sfk echo [%yellowtext%] This file already exists but it failed MD5 verification.
support\sfk echo [%yellowtext%] The current version of the file will be deleted and the file will be re-downloaded.
echo.
del "%Drive%\%path1%%filename%">nul
if exist temp\%wadname% del temp\%wadname%>nul
SET /a retry=%retry%+1
SET /a attempt=%attempt%+1
set "DRIVE=%DRIVErestore%"
goto:DOWNLOADSTART2
:multiplefail
echo.
support\sfk echo [%magentatext%] This file has failed to download properly multiple times, Skipping download.
echo.
set "DRIVE=%DRIVErestore%"
set multiplefail=Y
if /i "%KeepInvalidOverride%" NEQ "Y" (if exist "%Drive%\%path1%%filename%" del "%Drive%\%path1%%filename%">nul)
if /i "%AdvancedDownload%" NEQ "Y" echo "support\sfk echo %name%: [%redtext%]Invalid">>temp\ModMii_Log.bat
goto:NEXT
:autopass
echo.
if exist "temp\%wadname%" (support\sfk echo [%greentext%]Download Successful) else (support\sfk echo [%redtext%]Download Failed [%yellowtext%]but Already Exists on Drive)
echo.
set "DRIVE=%DRIVErestore%"
if exist "temp\%wadname%" (echo "echo %name%: Found">>temp\ModMii_Log.bat) else (echo "support\sfk echo %name%: [%yellowtext%]Found [%redtext%]but not updated">>temp\ModMii_Log.bat)
goto:next
:pass
echo.
support\sfk echo [%greentext%]Download Successful
echo.
set "DRIVE=%DRIVErestore%"
if /i "%AdvancedDownload%" NEQ "Y" echo "echo %name%: Valid">>temp\ModMii_Log.bat
goto:next
::----------------------------------------
:OSCprocess
call support\subscripts\OSC.bat
if /i "%code1%" EQU "all" goto:NEXT
::save YAWM's elf and dol to root when applicable
:rootYAWMcheck
if /i "%wadname%" NEQ "yawmME.zip" goto:next
if /i "%AbstinenceWiz%" EQU "Y" goto:rootYAWM
if /i "%MENU1%" EQU "H" goto:rootYAWM
if /i "%virgin%" EQU "N" goto:next
If /i "%FIRMSTART%" EQU "4.3" goto:next
if /i "%REGION%" EQU "K" goto:rootYAWM
goto:next
::-----Bannerbomb yawmME instead of HackMii installer------
:rootYAWM
if exist "%Drive%"\apps\yawmME\yawmME_boot.elf copy /Y "%Drive%"\apps\yawmME\yawmME_boot.elf "%Drive%"\boot.elf >nul
if exist "%Drive%"\apps\yawmME\boot.dol copy /Y "%Drive%"\apps\yawmME\boot.dol "%Drive%"\boot.dol >nul
if /i "%AbstinenceWiz%" EQU "Y" copy /Y "Support\ExploitAppSelector.bat" "%Drive%\ExploitAppSelector.bat" >nul
goto:NEXT
::----------------------------------------
:HBASprocess
call support\subscripts\HBAS.bat
goto:NEXT
::----------------------------------------
:fullextract
::always make sure this is deleted for Wii Link Patcher style downloads
if exist temp\latest.json del temp\latest.json>nul
set "DRIVErestore=%Drive%"
if /i "%wadname%" EQU "WiiBackupManager.zip" goto:doit
if /i "%name%" EQU "ShowMiiWads" goto:doit
if /i "%filename%" EQU "CustomizeMii.exe" goto:doit
if /i "%path1%" EQU "Program Files\WiiGSC\" goto:doit
if /i "%path1%" EQU "Program Files\UWUVCI AIO\" goto:doit
if /i "%CODE1%" EQU "PC" goto:doit
goto:skip
:doit
if /i "%PCSAVE%" EQU "Local" set "DRIVE=%cd%"
if /i "%PCSAVE%" NEQ "Auto" goto:skip
if /i "%Homedrive%" EQU "%ModMiiDrive%" set "DRIVE=%cd%"
:skip
if not exist "%Drive%" mkdir "%Drive%"
::no md5 check for dml
::if /i "%name%" NEQ "%CurrentDMLRev%" goto:notdios
::if exist "temp\DML\%wadname%" (goto:FullExtractZipAlreadyExists) else (goto:nocheckexisting)
:::notdios
::---------no md5 check for AUTO category------------------
if /i "%category%" NEQ "auto" goto:notauto
if /i "%attempt%" NEQ "1" support\wget --no-check-certificate %code2% -O "%dlname%" -q --show-progress
if /i "%attempt%" NEQ "1" goto:skip
if /i "%AUSKIP%" EQU "OFF" support\wget --no-check-certificate %code2% -O "%dlname%" -q --show-progress
if /i "%AUSKIP%" EQU "OFF" goto:skip
::Auto-Updating downloads will skip update check if cached on first attempt only
if exist "temp\%wadname%" goto:fullextract2
support\wget --no-check-certificate %code2% -O "%dlname%" -q --show-progress
:skip
::delete if file is empty (if empty)
if exist "%dlname%" >nul findstr "^" "%dlname%" || del "%dlname%"
if exist "%dlname%" (move /y "%dlname%" "temp\%wadname%">nul) & (goto:fullextract2)
if /i "%attempt%" EQU "1" goto:missingauto
if exist "temp\%wadname%" goto:fullextract2
goto:URLverifyretry
:notauto
::skip checks for Twilight beta1 and beta2
if /i "%wadname%" EQU "twilight_hack_v0.1_beta1.zip" goto:fullextract2
if /i "%wadname%" EQU "Twilight-hack-v0.1-beta2.zip" goto:fullextract2
::----if exist and fails md5 check, delete and redownload----
if not exist "%Drive%\%path1%%filename%" goto:nocheckexisting
set md5check=
::if "%md5:~32,1%"=="" (echo md5) else (echo sha1)
if "%md5%"=="" goto:nocheckexisting
if "%md5:~32,1%"=="" goto:checkmd5
::sha1
certutil -hashfile "%Drive%\%path1%%filename%" SHA1>"temp\sha1.txt"
findStr /I /B /C:"%md5%" "temp\sha1.txt" >nul
IF ERRORLEVEL 1 (set md5check=fail) else (set md5check=pass)
goto:notbootmiisd
:checkmd5
support\sfk md5 -quiet -verify %md5% "%Drive%\%path1%%filename%"
if errorlevel 1 set md5check=fail
IF "%md5check%"=="" set md5check=pass
if /i "%md5check%" NEQ "fail" goto:pass
:fail
echo.
support\sfk echo [%yellowtext%] This file already exists but it failed MD5 verification.
support\sfk echo [%yellowtext%] The current version of the file will be deleted and the file will be re-downloaded.
echo.
SET /a retry=%retry%+1
SET /a attempt=%attempt%+1
del "%Drive%\%path1%%filename%">nul
if exist temp\%wadname% del temp\%wadname%>nul
set "DRIVE=%DRIVErestore%"
goto:DOWNLOADSTART2
:pass
support\sfk echo [%greentext%]This file already exists and has been verified, Skipping download
echo.
set "DRIVE=%DRIVErestore%"
if /i "%AdvancedDownload%" NEQ "Y" echo "echo %name%: Valid">>temp\ModMii_Log.bat
goto:NEXT
:nocheckexisting
:fullextract2
if not exist "temp\%wadname%" support\wget --no-check-certificate %code2% -O "temp\%wadname%" -q --show-progress
::delete if file is empty (if empty)
>nul findstr "^" "temp\%wadname%" || del "temp\%wadname%"
if not exist "temp\%wadname%" goto:missing
:FullExtractZipAlreadyExists
::extract selected apps differently...
if /i "%name%" EQU "Cemu" goto:CemuStuff
if /i "%wadname%" EQU "latest.json" goto:latestjson
if /i "%CODE1%" EQU "PC" goto:PC
if /i "%name%" EQU "Tiramisu" support\7za X -aoa "temp\%wadname%" -o"%Drive%" -x!versions.json
if /i "%name%" EQU "Tiramisu" goto:skipnormalextraction
if /i "%wadname%" EQU "USBLoader(s)-ahbprot58-SD-USB-v14-IDCL-(Wii+vWii).zip" support\7za x -aoa temp\%dlname% -o"%Drive%" *.%version% -r
if /i "%wadname%" EQU "USBLoader(s)-ahbprot58-SD-USB-v14-IDCL-(Wii+vWii).zip" goto:skipnormalextraction
if /i "%wadname%" EQU "indiana-pwns.zip" (support\7za X -aoa "temp\%wadname%" -o"%Drive%" private -r) & (goto:skipnormalextraction)
if /i "%wadname%" EQU "bathaxx.zip" support\7za X -aoa "temp\%wadname%" -o"%Drive%" private -r
if /i "%wadname%" EQU "bathaxx.zip" goto:skipnormalextraction
if /i "%wadname%" EQU "return-jodi.zip" support\7za X -aoa "temp\%wadname%" -o"%Drive%" private -r
if /i "%wadname%" EQU "return-jodi.zip" goto:skipnormalextraction
if /i "%wadname%" EQU "EriHaKawai-USA+PAL.zip" support\7za X -aoa "temp\%wadname%" -o"%Drive%" private -r
if /i "%wadname%" EQU "EriHaKawai-USA+PAL.zip" goto:skipnormalextraction
::if /i "%name%" EQU "Neogamma Backup Disc Loader" (support\7za X -aoa "temp\%wadname%" -o"%Drive%" apps -r) & (support\7za X -aoa "temp\%wadname%" -o"%Drive%" NeoGamma -r) & (goto:skipnormalextraction)
if /i "%path1%" EQU "apps\SIP\" (support\7za X -aoa "temp\%wadname%" -o"%Drive%" apps -r) & (goto:skipnormalextraction)
if /i "%name%" NEQ "WiiFlow Forwarder Channel\dol" goto:skipFLOWF
::if /i "%MENU1%" EQU "S" support\7za e -aoa temp\%dlname% -o"%Drive%"/ *.wad *.dol -r
support\7za X -aoa temp\%dlname% -o"%Drive%" -r
goto:skipnormalextraction
:skipFLOWF
if /i "%name%" NEQ "switch2uneek" goto:skipS2U
if /i "%MENU1%" EQU "S" support\7za e -aoa temp\%wadname% -o"%Drive%/WAD"/ %filename% -r
if /i "%MENU1%" EQU "S" goto:skipnormalextraction
::for when MENU1 not equal to "S"
support\7za x -aoa temp\%dlname% -o"%Drive%" -r -x!switch2uneek-4EMUNand-v12-S2RL.wad
if not exist "%DRIVEU%" mkdir "%DRIVEU%"
if not exist "%DRIVEU%"\nandpath.txt echo NOFILE>"%DRIVEU%"\nandpath.txt
if exist "%DRIVEU%"\nandslot.bin goto:skipnormalextraction
support\sfk echo 00000000 +hextobin "%DRIVEU%"\nandslot.bin>nul
goto:skipnormalextraction
:skipS2U
if /i "%name%" NEQ "Casper" goto:skipcasper
if not exist "%Drive%\apps\Casper" mkdir "%Drive%\apps\Casper"
support\7za e -aoa "temp\%wadname%" -otemp *.* -r
support\7za e -aoa "temp\%wadname:~0,-3%" -o"%Drive%\apps\Casper" *.* -r
move /y "%Drive%\apps\Casper\casper_0.3.elf" "%Drive%\apps\Casper\boot.elf">nul
copy /y "%Drive%\apps\Casper\boot.elf" "%Drive%\boot.elf">nul
::erase boot.dol on root if exists as some cases will prioritize it over boot.elf
if exist "%Drive%\boot.dol" del "%Drive%\boot.dol"> nul
::abstinence wizard only - boot exploit-mmm instead of casper
if /i "%AbstinenceWiz%" NEQ "Y" goto:skipnormalextraction
if /i "%FIRMSTART%" EQU "4.3" goto:skipnormalextraction
if /i "%FIRMSTART%" EQU "4.2" goto:skipnormalextraction
if exist "%Drive%"\apps\yawmME\yawmME_boot.elf copy /Y "%Drive%"\apps\yawmME\yawmME_boot.elf "%Drive%"\boot.elf >nul
if exist "%Drive%"\apps\yawmME\boot.dol copy /Y "%Drive%"\apps\yawmME\boot.dol "%Drive%"\boot.dol >nul
::copy /Y "Support\ExploitAppSelector.bat" "%Drive%\ExploitAppSelector.bat" >nul
goto:skipnormalextraction
:skipcasper
if /i "%name%" NEQ "Wilbrand" goto:skipWilbrand
echo Wilbrand by giantpune
echo.
echo MAC:%macaddress%
echo 4.3%REGION%
echo.
::get yesterday's date
FOR /F "tokens=*" %%g IN ('support\sfk date') do (SET CurDate=%%g)
::echo %CurDate%
Set Year=%CurDate:~0,4%
Set Month=%CurDate:~4,2%
Set Day=%CurDate:~-2%
::echo %Year%%Month%%Day%
::if exist date.vbs del /f /q date.vbs
::>date.vbs echo wscript.echo Right(String(2,"0") ^& Month(date), 2) ^& "/" ^& Right(String(2,"0") ^& Day(date), 2) ^& "/" ^& Year(date)
::for /f "tokens=*" %%a in ('cscript//nologo date.vbs') do set CurDate=%%a
::if exist date.vbs del /f /q date.vbs
::Set Day=%CurDate:~3,2%
::Set Month=%CurDate:~0,2%
::Set Year=%CurDate:~-4%
if /i "%day%" NEQ "01" (set /a day=%day%-1) & (goto:yesterday)
::jan to dec
if /i "%month%" EQU "01" (set /a year=%year%-1) & (set day=31) & (set month=12) & (goto:yesterday)
set /a month=%month%-1
if "%month:~1%"=="" set month=0%month%
if /i "%month%" EQU "01" set day=31
if /i "%month%" EQU "02" set day=28
if /i "%month%" EQU "03" set day=31
if /i "%month%" EQU "04" set day=30
if /i "%month%" EQU "05" set day=31
if /i "%month%" EQU "06" set day=30
if /i "%month%" EQU "07" set day=31
if /i "%month%" EQU "08" set day=31
if /i "%month%" EQU "09" set day=30
if /i "%month%" EQU "10" set day=31
if /i "%month%" EQU "11" set day=30
::if /i "%month%" EQU "12" set day=31
:yesterday
::echo yesterday
::echo mm/dd/yyyy
::echo %Month%/%day%/%year%
if exist temp\temp.txt del temp\temp.txt>nul
temp\wilbrand.exe %macaddress% %Month%/%day%/%year% 4.3%REGION% "%Drive%">temp\temp.txt
findStr /I /C:"Wrote to:" "temp\temp.txt" >nul
IF not ERRORLEVEL 1 (echo "echo %name% - 4.3%REGION% - MAC:%macaddress%: Valid">>temp\ModMii_Log.bat) & (echo.) & (support\sfk echo [%greentext%]Download Successful) & (echo.) & (goto:NEXT)
goto:skipnormalextraction
:skipWilbrand
if /i "%name%" NEQ "DML" goto:skipdios
::if not exist "temp\DML" mkdir "temp\DML"
if not exist "%Drive%\WAD" mkdir "%Drive%\WAD"
::if exist "temp\%wadname%" move /y "temp\%wadname%" "temp\DML\%wadname%" >nul
copy /y "temp\%wadname%" "%Drive%\WAD\%wadname%" >nul
goto:simpleDMLcheck
:skipdios
if /i "%name%" NEQ "DIOS MIOS" goto:skipdios
if not exist "%Drive%\WAD" mkdir "%Drive%\WAD"
copy /y "temp\%wadname%" "%Drive%\WAD\%wadname%" >nul
goto:simpleDMLcheck
:skipdios
if /i "%wadname:~-4%" NEQ ".wad" goto:skipwadcopy
if not exist "%Drive%\WAD" mkdir "%Drive%\WAD"
copy /y "temp\%wadname%" "%Drive%\WAD\%wadname%" >nul
goto:skipnormalextraction
:skipwadcopy
if /i "%wadname%" NEQ "WiiBackupManager.zip" goto:notWBM
if exist "%Drive%\%path1%%filename%" (set shortcuts=n) else (set shortcuts=y)
if not exist "%Drive%\%path1%" mkdir "%Drive%\%path1%"
::support\7za x -aoa temp\%wadname% -o"%Drive%\WiiBackupManager" -r
support\7za x -aoa "temp\%wadname%" -o"%Drive%\%path1%" -r
if /i "%shortcuts%" EQU "n" goto:skip
if /i "%PCSAVE%" EQU "Local" goto:createshortcuts
if /i "%PCSAVE%" NEQ "Auto" goto:skip
if /i "%Homedrive%" NEQ "%ModMiiDrive%" goto:skip
:createshortcuts
if exist "%homedrive%\Program Files (x86)" (set OSbit=64) else (set OSbit=32)
if not exist "%Drive%\%path1%WiiBackupManager_Win%OSbit%.exe" goto:skip
support\nircmd.exe shortcut "%Drive%\%path1%WiiBackupManager_Win%OSbit%.exe" "~$folder.desktop$" "WiiBackupManager"
support\nircmd.exe shortcut "%Drive%\%path1%WiiBackupManager_Win%OSbit%.exe" "~$folder.programs$\ModMii" "WiiBackupManager"
:skip
goto:skipnormalextraction
:notWBM
if /i "%path1%" NEQ "Program Files\UWUVCI AIO\" goto:notUWUVCI
if exist "%Drive%\%path1%%filename%" (set shortcuts=n) else (set shortcuts=y)
if exist "%userprofile%\Desktop\UWUVCI AIO.lnk" (set KeepDesk=y) else (set KeepDesk=n)
start /wait temp\%wadname% /DIR="%Drive%\%path1%" /VERYSILENT
::if not exist "%Drive%\%path1%" mkdir "%Drive%\%path1%"
::support\7za x -aoa "temp\%wadname%" -o"%Drive%\%path1%" -r
if exist "%appdata%\Microsoft\Windows\Start Menu\Programs\UWUVCI AIO.lnk" del "%appdata%\Microsoft\Windows\Start Menu\Programs\UWUVCI AIO.lnk">nul
if /i "%KeepDesk%" EQU "n" if exist "%userprofile%\Desktop\UWUVCI AIO.lnk" del "%userprofile%\Desktop\UWUVCI AIO.lnk">nul
if /i "%shortcuts%" EQU "n" goto:skip
if /i "%PCSAVE%" EQU "Local" goto:createshortcuts
if /i "%PCSAVE%" NEQ "Auto" goto:skip
if /i "%Homedrive%" NEQ "%ModMiiDrive%" goto:skip
:createshortcuts
if not exist "%Drive%\%path1%%filename%" goto:skip
support\nircmd.exe shortcut "%Drive%\%path1%%filename%" "~$folder.desktop$" "UWUVCI AIO"
support\nircmd.exe shortcut "%Drive%\%path1%%filename%" "~$folder.programs$\ModMii" "UWUVCI AIO"
:skip
goto:skipnormalextraction
:notUWUVCI
if /i "%name%" NEQ "ShowMiiWads" goto:notSMW
if exist "%Drive%\%path1%%filename%" (set shortcuts=n) else (set shortcuts=y)
if not exist "%Drive%\%path1%" mkdir "%Drive%\%path1%"
support\7za x -aoa "temp\%wadname%" -o"%Drive%\%path1%" -r
::silently build common-key.bin
if not exist "support\common-key.bin" support\sfk echo EBE42A225E8593E448D9C5457381AAF7 +hextobin "support\common-key.bin">nul
copy /y support\common-key.bin "%Drive%\%path1%common-key.bin">nul
if /i "%shortcuts%" EQU "n" goto:skip
if /i "%PCSAVE%" EQU "Local" goto:createshortcuts
if /i "%PCSAVE%" NEQ "Auto" goto:skip
if /i "%Homedrive%" NEQ "%ModMiiDrive%" goto:skip
:createshortcuts
if exist "%homedrive%\Program Files (x86)" (set OSbit=64) else (set OSbit=32)
if not exist "%Drive%\%path1%ShowMiiWads_Win%OSbit%.exe" goto:skip
support\nircmd.exe shortcut "%Drive%\%path1%ShowMiiWads_Win%OSbit%.exe" "~$folder.desktop$" "ShowMiiWads"
support\nircmd.exe shortcut "%Drive%\%path1%ShowMiiWads_Win%OSbit%.exe" "~$folder.programs$\ModMii" "ShowMiiWads"
:skip
goto:skipnormalextraction
:notSMW
if /i "%filename%" NEQ "CustomizeMii.exe" goto:notCM
if exist "%Drive%\%path1%%filename%" (set shortcuts=n) else (set shortcuts=y)
if not exist "%Drive%\%path1%" mkdir "%Drive%\%path1%"
call Support\subscripts\dependency.bat UnRAR
temp\unrar.exe x -y "temp\%wadname%" "%Drive%\%path1%"
if /i "%shortcuts%" EQU "n" goto:skip
if /i "%PCSAVE%" EQU "Local" goto:createshortcuts
if /i "%PCSAVE%" NEQ "Auto" goto:skip
if /i "%Homedrive%" NEQ "%ModMiiDrive%" goto:skip
:createshortcuts
if not exist "%Drive%\%path1%CustomizeMii.exe" goto:skip
support\nircmd.exe shortcut "%Drive%\%path1%CustomizeMii.exe" "~$folder.desktop$" "CustomizeMii"
support\nircmd.exe shortcut "%Drive%\%path1%CustomizeMii.exe" "~$folder.programs$\ModMii" "CustomizeMii"
:skip
goto:skipnormalextraction
:notCM
if /i "%path1%" NEQ "Program Files\WiiGSC\" goto:notWiiGSC
if exist "%Drive%\%path1%%filename%" (set shortcuts=n) else (set shortcuts=y)
if not exist "%Drive%\%path1%" mkdir "%Drive%\%path1%"
support\7za x -aoa "temp\%wadname%" -o"%Drive%\%path1%" -r
if /i "%shortcuts%" EQU "n" goto:skip
if /i "%PCSAVE%" EQU "Local" goto:createshortcuts
if /i "%PCSAVE%" NEQ "Auto" goto:skip
if /i "%Homedrive%" NEQ "%ModMiiDrive%" goto:skip
:createshortcuts
if exist "%Drive%\%path1%WiiGSC.exe" support\nircmd.exe shortcut "%Drive%\%path1%WiiGSC.exe" "~$folder.desktop$" "Wii Game Shortcut Creator"
if exist "%Drive%\%path1%WiiGSC.exe" support\nircmd.exe shortcut "%Drive%\%path1%WiiGSC.exe" "~$folder.programs$\ModMii" "Wii Game Shortcut Creator"
if exist "%Drive%\%path1%CrazyInstaller.exe" support\nircmd.exe shortcut "%Drive%\%path1%CrazyInstaller.exe" "~$folder.programs$\ModMii" "Crazy Installer"
::if exist "%Drive%\%path1%KeyStego.exe" support\nircmd.exe shortcut "%Drive%\%path1%KeyStego.exe" "~$folder.programs$\ModMii" "KeyStego"
:skip
goto:skipnormalextraction
:notWiiGSC
::Cemu ("latest.json" + zip)
if /i "%name%" NEQ "Cemu" goto:notCemuStuff
:CemuStuff
set fullzipname=
if exist "%Drive%\%path1%%filename%" (set shortcuts=n) else (set shortcuts=y)
if not exist "%Drive%\%path1%" mkdir "%Drive%\%path1%"
::delete if file is empty (if empty)
>nul findstr "^" "temp\%wadname%" || del "temp\%wadname%"
::no wifi? check for cached download
if not exist "temp\%wadname%" goto:extractzip
::set version=*
::support\sfk filter -spat "temp\%wadname%" -+"\x22tag\x5fname\x22: \x22" -rep _"*\x22tag\x5fname\x22: \x22"__ -rep _\x22*__ > temp\latest2.json
::set /p version= <"temp\latest2.json"
::if "%version%"=="" set version=*
::echo version:"%version%"
if exist "temp\latest2.json" del "temp\latest2.json">nul
support\sfk filter "temp\%wadname%" -+"browser_download_url" +filter -spat -le+"%zipname:~-15%\x22" -rep _*http_http_ -rep _\x22__ > temp\latest2.json
set /p code3= <"temp\latest2.json"
::echo code3:"%code3%"
if exist "temp\%wadname%" del "temp\%wadname%">nul
support\sfk filter -write -yes "temp\latest2.json" -rep _*/__ >nul
set /p fullzipname= <"temp\latest2.json"
::echo fullzipname:"%fullzipname%"
if exist "temp\latest2.json" del "temp\latest2.json">nul
::latest version always saved to temp\%zipname% for offline caching, 40mb cost
if not exist "temp\%fullzipname%" (support\wget --no-check-certificate -t 3 "%code3%" -O "temp\%fullzipname%" -q --show-progress) & (if exist "temp\%fullzipname%" copy /y "temp\%fullzipname%" "temp\%zipname%" >nul)
:extractzip
if not exist "temp\%zipname%" goto:skipnormalextraction
if exist "temp\%name%" rd /s /q "temp\%name%"
mkdir "temp\%name%"
support\7za x -aoa "temp\%zipname%" -o"temp\%name%"
move /y "temp\%name%\%name:~0,1%*" "temp\%name%\%name%">nul
::move command gives "Access denied", remove trailing \ from path1 for robocopy to work
robocopy "temp\%name%\%name%" "%Drive%\%path1:~0,-1%" /E /MOVE>nul
if exist "temp\%name%" rd /s /q "temp\%name%"
if not exist "%Drive%\%path1%%filename%" goto:skipnormalextraction
::goto:latestshortcut
:latestshortcut
if /i "%shortcuts%" EQU "n" goto:skip
if /i "%PCSAVE%" EQU "Local" goto:createshortcuts
if /i "%PCSAVE%" NEQ "Auto" goto:skip
if /i "%Homedrive%" NEQ "%ModMiiDrive%" goto:skip
:createshortcuts
if not exist "%Drive%\%path1%%filename%" goto:skipnormalextraction
support\nircmd.exe shortcut "%Drive%\%path1%%filename%" "~$folder.desktop$" "%name%"
support\nircmd.exe shortcut "%Drive%\%path1%%filename%" "~$folder.programs$\ModMii" "%name%"
:skip
if not exist "%Drive%\%path1%%filename%" goto:skipnormalextraction
echo.
support\sfk echo [%greentext%]Download Successful
echo.
set "DRIVE=%DRIVErestore%"
echo "echo %name%: Found">>temp\ModMii_Log.bat
goto:next
:notCemuStuff
::WiiLink Patcher stuff (or anything using "latest.json")
if /i "%wadname%" NEQ "latest.json" goto:notlatestjson
:latestjson
set fullfilename=
if exist "%Drive%\%path1%%filename%" (set shortcuts=n) else (set shortcuts=y)
if not exist "%Drive%\%path1%" mkdir "%Drive%\%path1%"
::delete if file is empty (if empty)
>nul findstr "^" "temp\%wadname%" || del "temp\%wadname%"
if exist "temp\%wadname%" goto:continue
::no wifi? check for cached download
if not exist "temp\%filename%" goto:skipnormalextraction
::sfk copy only if newer, -mirror arg will overwrite even if older
support\sfk copy "temp\%filename%" "%Drive%\%path1%%filename%" -yes
goto:latestshortcut
:continue
support\sfk filter "temp\%wadname%" -+"browser_download_url" +filter -spat -le+"%filename:~-4%\x22" -rep _*http_http_ -rep _\x22__ > temp\latest2.json
set /p code3= <"temp\latest2.json"
::echo code3:"%code3%"
if exist "temp\%wadname%" del "temp\%wadname%">nul
support\sfk filter -write -yes "temp\latest2.json" -rep _*/__ >nul
set /p fullfilename= <"temp\latest2.json"
::echo fullfilename:"%fullfilename%"
if exist "temp\latest2.json" del "temp\latest2.json">nul
::latest version always saved to temp\%filename% for offline caching, 20mb cost
if not exist "temp\%fullfilename%" (support\wget --no-check-certificate -t 3 "%code3%" -O "temp\%fullfilename%" -q --show-progress) & (if exist "temp\%fullfilename%" copy /y "temp\%fullfilename%" "temp\%filename%" >nul)
if exist "temp\%fullfilename%" goto:continue
if not exist "temp\%filename%" goto:skipnormalextraction
::sfk copy only if newer, -mirror arg will overwrite even if older
support\sfk copy "temp\%filename%" "%Drive%\%path1%%filename%" -yes
goto:latestshortcut
:continue
if /i "%Drive%" NEQ "temp" copy /y "temp\%fullfilename%" "%Drive%\%path1%%filename%" >nul
::goto:latestshortcut
:latestshortcut
if /i "%shortcuts%" EQU "n" goto:skip
if /i "%PCSAVE%" EQU "Local" goto:createshortcuts
if /i "%PCSAVE%" NEQ "Auto" goto:skip
if /i "%Homedrive%" NEQ "%ModMiiDrive%" goto:skip
:createshortcuts
if not exist "%Drive%\%path1%%filename%" goto:skipnormalextraction
::build launcher script to open (and rename) latest exe to compensate for wiilink's inability to properly update itself
SET AppFileName=
echo @echo off>"%Drive%\%path1%%filename:~0,-4%.bat"
echo FOR /F "tokens=*" %%%%g IN ('dir /b /T:C /Od "%filename:~0,-4%*%filename:~-4%"') do (SET AppFileName=%%%%g)>>"%Drive%\%path1%%filename:~0,-4%.bat"
echo if "%%AppFileName%%" NEQ "%filename%" move /y "%%AppFileName%%" %filename%^>nul>>"%Drive%\%path1%%filename:~0,-4%.bat"
echo call %filename%>>"%Drive%\%path1%%filename:~0,-4%.bat"
::override icon
support\nircmd.exe shortcut "%Drive%\%path1%%filename:~0,-4%.bat" "~$folder.desktop$" "%name%" icon "%Drive%\%path1%%filename%"
support\nircmd.exe shortcut "%Drive%\%path1%%filename:~0,-4%.bat" "~$folder.programs$\ModMii" "%name%" icon "%Drive%\%path1%%filename%"
:skip
if not exist "%Drive%\%path1%%filename%" goto:skipnormalextraction
support\sfk echo [%greentext%]Download Successful
echo.
set "DRIVE=%DRIVErestore%"
echo "echo %name%: Found">>temp\ModMii_Log.bat
goto:next
:notlatestjson
if /i "%CODE1%" NEQ "PC" goto:notPC
:PC
if exist "%Drive%\%path1%%filename%" (set shortcuts=n) else (set shortcuts=y)
if not exist "%Drive%\%path1%" mkdir "%Drive%\%path1%"
if /i "%wadname:~-4%" EQU ".zip" goto:archive
if /i "%wadname:~-3%" EQU ".7z" goto:archive
if /i "%Drive%" NEQ "temp" copy /y "temp\%wadname%" "%Drive%\%path1%%wadname%">nul
goto:afterarchive
:archive
if /i "%version%" NEQ "2" support\7za x -aoa "temp\%wadname%" -o"%Drive%\%path1%" -r
if /i "%version%" EQU "2" support\7za x -aoa "temp\%wadname%" -o"%Drive%\Program Files\" -r
::create portable.txt for Dolphin
if /i "%name%" EQU "Dolphin" echo Having portable.txt where Dolphin.exe is saved changes its app data location from the User Documents folder to where Dolphin is saved>"%Drive%\%path1%portable.txt"
::also save HashMyFiles for drag and drop
if /i "%name%" EQU "HashMyFiles" support\7za x -aoa "temp\%wadname%" -o"temp\%dlname:~0,-4%" -r
:afterarchive
if /i "%shortcuts%" EQU "n" goto:skip
if /i "%PCSAVE%" EQU "Local" goto:createshortcuts
if /i "%PCSAVE%" NEQ "Auto" goto:skip
if /i "%Homedrive%" NEQ "%ModMiiDrive%" goto:skip
:createshortcuts
if exist "%Drive%\%path1%%filename%" support\nircmd.exe shortcut "%Drive%\%path1%%filename%" "~$folder.desktop$" "%name%"
if exist "%Drive%\%path1%%filename%" support\nircmd.exe shortcut "%Drive%\%path1%%filename%" "~$folder.programs$\ModMii" "%name%"
:skip
goto:skipnormalextraction
:notPC
if /i "%wadname%" NEQ "twilight_hack_v0.1_beta1.zip" goto:skipTWI
::add logic for 2nd private folder if v2 detected
::TWILIGHT2 USA
if exist "%DRIVE%\private\wii\title\rzde_twilight_beta2\data.bin" goto:skip
if not exist "%DRIVE%\private\wii\title\rzde\data.bin" goto:skip
support\sfk md5 -quiet -verify 225c218815eda839b2fa03729ebe067b "%DRIVE%\private\wii\title\rzde\data.bin"
if not errorlevel 1 move /y "%DRIVE%\private\wii\title\rzde" "%DRIVE%\private\wii\title\rzde_twilight_beta2"> nul
:skip
::TWILIGHT2 JPN
if exist "%DRIVE%\private\wii\title\rzdj_twilight_beta2\data.bin" goto:skip
if not exist "%DRIVE%\private\wii\title\rzdj\data.bin" goto:skip
support\sfk md5 -quiet -verify abae916201ba444c0da951627e3071ce "%DRIVE%\private\wii\title\rzdj\data.bin"
if not errorlevel 1 move /y "%DRIVE%\private\wii\title\rzdj" "%DRIVE%\private\wii\title\rzdj_twilight_beta2"> nul
:skip
::TWILIGHT2 EURO
if exist "%DRIVE%\private\wii\title\rzdp_twilight_beta2\data.bin" goto:skip
if not exist "%DRIVE%\private\wii\title\rzdp\data.bin" goto:skip
support\sfk md5 -quiet -verify 7d0ac865218738364da4c67466ed59fb "%DRIVE%\private\wii\title\rzdp\data.bin"
if not errorlevel 1 move /y "%DRIVE%\private\wii\title\rzdp" "%DRIVE%\private\wii\title\rzdp_twilight_beta2"> nul
:skip
support\7za X -aoa temp\%wadname% -o"%Drive%" private -r
if exist "%DRIVE%\private\wii\title\rzde_twilight_beta1" rd /s /q "%DRIVE%\private\wii\title\rzde_twilight_beta1"
if exist "%DRIVE%\private\wii\title\rzdj_twilight_beta1" rd /s /q "%DRIVE%\private\wii\title\rzdj_twilight_beta1"
if exist "%DRIVE%\private\wii\title\rzdp_twilight_beta1" rd /s /q "%DRIVE%\private\wii\title\rzdp_twilight_beta1"
goto:skipnormalextraction
:skipTWI
if /i "%wadname%" NEQ "Twilight-hack-v0.1-beta2.zip" goto:skipTWI2
::add logic for 2nd private folder if v1 detected
::TWILIGHT USA
if exist "%DRIVE%\private\wii\title\rzde_twilight_beta1\data.bin" goto:skip
if not exist "%DRIVE%\private\wii\title\rzde\data.bin" goto:skip
support\sfk md5 -quiet -verify 02639bd145730269a98f69a4fd466225 "%DRIVE%\private\wii\title\rzde\data.bin"
if not errorlevel 1 move /y "%DRIVE%\private\wii\title\rzde" "%DRIVE%\private\wii\title\rzde_twilight_beta1"> nul
:skip
::TWILIGHT JPN
if exist "%DRIVE%\private\wii\title\rzdj_twilight_beta1\data.bin" goto:skip
if not exist "%DRIVE%\private\wii\title\rzdj\data.bin" goto:skip
support\sfk md5 -quiet -verify b51cd6a64bc911cc5c8e41ed5d9fd8ae "%DRIVE%\private\wii\title\rzdj\data.bin"
if not errorlevel 1 move /y "%DRIVE%\private\wii\title\rzdj" "%DRIVE%\private\wii\title\rzdj_twilight_beta1"> nul
:skip
::TWILIGHT EURO
if exist "%DRIVE%\private\wii\title\rzdp_twilight_beta1\data.bin" goto:skip
if not exist "%DRIVE%\private\wii\title\rzdp\data.bin" goto:skip
support\sfk md5 -quiet -verify 704bd625ea5b42d7ac06fc937af74d38 "%DRIVE%\private\wii\title\rzdp\data.bin"
if not errorlevel 1 move /y "%DRIVE%\private\wii\title\rzdp" "%DRIVE%\private\wii\title\rzdp_twilight_beta1"> nul
:skip
support\7za X -aoa temp\%wadname% -o"%Drive%" private -r
if exist "%DRIVE%\private\wii\title\rzde_twilight_beta2" rd /s /q "%DRIVE%\private\wii\title\rzde_twilight_beta2"
if exist "%DRIVE%\private\wii\title\rzdj_twilight_beta2" rd /s /q "%DRIVE%\private\wii\title\rzdj_twilight_beta2"
if exist "%DRIVE%\private\wii\title\rzdp_twilight_beta2" rd /s /q "%DRIVE%\private\wii\title\rzdp_twilight_beta2"
goto:skipnormalextraction
:skipTWI2
if /i "%wadname%" EQU "YU-GI-OWNED-ALL.zip" support\7za X -aoa temp\%wadname% -o"%Drive%" private -r
if /i "%wadname%" EQU "YU-GI-OWNED-ALL.zip" goto:skipnormalextraction
if exist temp\%wadname% support\7za x -aoa temp\%wadname% -o"%Drive%" -x!README
if /i "%name%" NEQ "Aroma" goto:skipnormalextraction
if exist "%DRIVE%\wiiu\environments\aroma\splash.png" goto:skipnormalextraction
if exist "%DRIVE%\wiiu\environments\aroma\splash.tga" goto:skipnormalextraction
if exist "%DRIVE%\wiiu\environments\aroma\splashes\*.png" goto:skipnormalextraction
if exist "%DRIVE%\wiiu\environments\aroma\splashes\*.tga" goto:skipnormalextraction
copy /y "%splash.png%" "%DRIVE%\wiiu\environments\aroma\splash.png">nul
:skipnormalextraction
goto:URLverifyretry
::DONE (will retry if necessary)
::---------------CustomDL--------------------------
:CUSTOMDL
echo Note that custom downloads are not verified, and are not necessarily safe.
echo Make sure you know what you're doing! Use at your own risk!
echo.
if /i "%DEC%" EQU "SM" set HEX=00000002
if /i "%DEC%" EQU "MIOS" set HEX=00000101
if /i "%DEC%" EQU "SM" goto:skiphexcalc
if /i "%DEC%" EQU "MIOS" goto:skiphexcalc
support\sfk hex %DEC% -digits=8 >hex.txt
::Loop through the following once for EACH line in whatever.txt
for /F "tokens=*" %%A in (hex.txt) do call :processhexx %%A
goto:skiphexcalc
:processhexx
::this is repeated for each line of the txt.file
::"%*" (no quotes) is the variable for each line as it passes through the loop
set hex=%*
goto:EOF
:skiphexcalc
if exist hex.txt del hex.txt>nul
if not exist "%DRIVE%"\WAD mkdir "%DRIVE%"\WAD
::echo If you encounter long periods of inactivity, type "C" while holding "Ctrl",
::echo then type "N", then "Enter" (i.e. Ctrl+C, N, Enter)
::echo.
if /i "%vWiiIOS%" EQU "Y" (set codeA=00000007) else (set codeA=00000001)
if /i "%vWiiIOS%" EQU "Y" (set "vWiiName=-vWii") else (set vWiiName=)
::cd temp
::..\support\nusd.exe %codeA%%HEX% "%VER%"
::cd..
set "wadname=IOS%DEC%-64-v%VERFINAL%%patchname%%slotname%%versionname%%vWiiName%.wad"
if /i "%DEC%" EQU "SM" set "wadname=SystemMenu-NUS-v%VERFINAL%.wad"
if /i "%DEC%" EQU "MIOS" set "wadname=RVL-mios-v%VERFINAL%.wad"
if /i "%ROOTSAVE%" EQU "OFF" (set wadfolder=WAD\) else (set wadfolder=)
::wiipy.exe
if exist "%Drive%\%wadfolder%%wadname%" del "%Drive%\%wadfolder%%wadname%">nul
if /i "%verfinal%" NEQ "NEW" %WiiPy% nus title %codeA%%HEX% -v %VER% --wad "%Drive%\%wadfolder%%wadname%"
if /i "%verfinal%" EQU "NEW" %WiiPy% nus title %codeA%%HEX% --wad "%Drive%\%wadfolder%%wadname%"
if /i "%codeA%" EQU "00000007" %WiiPy% wad convert -r -o "%Drive%\%wadfolder%%wadname%" "%Drive%\%wadfolder%%wadname%"
if /i "%codeA%" EQU "00070008" %WiiPy% wad convert -r -o "%Drive%\%wadfolder%%wadname%" "%Drive%\%wadfolder%%wadname%"
::get version # if * is entered
if /i "%verfinal%" NEQ "NEW" goto:SkipGettingV
if exist temp\hexdump.txt del temp\hexdump.txt>nul
support\sfk hexdump -pure -nofile -offlen 0xEDC 0x02 "%Drive%\%wadfolder%%wadname%">temp\hexdump.txt
set /p verfinal= <temp\hexdump.txt
support\sfk dec %verfinal%>temp\hexdump.txt
set /p verfinal= <temp\hexdump.txt
set verfinal=%verfinal:~0,-1%
set "wadname2=%wadname%"
set "wadname=IOS%DEC%-64-v%VERFINAL%%patchname%%slotname%%versionname%%vWiiName%.wad"
if /i "%DEC%" EQU "SM" set "wadname=SystemMenu-NUS-v%VERFINAL%.wad"
if /i "%DEC%" EQU "MIOS" set "wadname=RVL-mios-v%VERFINAL%.wad"
if exist "%Drive%\%wadfolder%%wadname%" del "%Drive%\%wadfolder%%wadname%">nul
if exist "%Drive%\%wadfolder%%wadname2%" move /y "%Drive%\%wadfolder%%wadname2%" "%Drive%\%wadfolder%%wadname%">nul
::dir /b "temp\titles\%codeA%%HEX%">"%temp%\ver.txt"
::set /p VER= <"%temp%\ver.txt"
::set VERFINAL=%VER%
::::echo %VER%
:SkipGettingV
::if not exist 00000001%HEX%\00000001%HEX%.wad goto:missing
if /i "%DEC%" EQU "SM" goto:SYSMENU
if /i "%DEC%" EQU "MIOS" goto:MIOS2
::IOS
::if exist temp\titles rd /s /q temp\titles
if /i "%wadname%" EQU "IOS%DEC%-64-v%VERFINAL%%vWiiName%.wad" goto:nopatching
echo.
::cd support
::if /i "%DRIVE:~1,1%" EQU ":" (set "DRIVEadj=%DRIVE%") else (set "DRIVEadj=..\%DRIVE%")
::::fakesign! fakesign it with %WiiPy% fakesign too!
::if exist "%Driveadj%\%wadfolder%%wadname%" (patchios "%Driveadj%\%wadfolder%%wadname%"%PATCHCODE%%slotcode%%versioncode%) & (wiipy.exe fakesign "%Driveadj%\%wadfolder%%wadname%">nul) & (echo.) & (echo Note: Patches are not always successful, read the PatchIOS log above for details) & (@ping 127.0.0.1 -n 2 -w 1000> nul)
::cd..
::convert %SLOTCODE% from legacy patchios format " -slot ###" to " -s ###" for wiipy
if not "%SLOTCODE%"=="" set "SLOTCODE= -s %SLOTCODE:~7%"
::convert %PATCHCODE% from legacy patchios format to wiipy format
if "%PATCHCODE%"=="" goto:tinyskip
echo %PATCHCODE%>temp\patchcode.txt
support\sfk filter -quiet "temp\patchcode.txt" -rep _-FS_-fs_ -rep _-ES_-ei_ -rep _-NP_-na_ -rep _-VP_-vd_ -write -yes
set /p PATCHCODE= <temp\patchcode.txt
:tinyskip
if not exist "%Drive%\%wadfolder%%wadname%" goto:nopatching
%WiiPy% iospatch%PATCHCODE%%slotcode%%versioncode% "%Drive%\%wadfolder%%wadname%"
echo.
echo Double checking applied patches...
::check if patches applied successfully
set "WadInput=%Drive%\%wadfolder%%wadname%"
call "Support\subscripts\CollectWadInfo.bat"
if not "%slotcode%"=="" if /i "%iosslot%" NEQ "%slotcode:~4%" support\sfk echo [%yellowtext%]Warning: Slot # was not changed properly
if not "%versioncode%"=="" if /i "%iosversion%" NEQ "%versioncode:~4%" support\sfk echo [%yellowtext%]Warning: Version # was not changed properly
set "patchname2=["
if /i "%FSpatch%" EQU "Y" set "patchname2=%patchname2%FS"
if /i "%ESpatch%" EQU "Y" set "patchname2=%patchname2%-ES"
if /i "%NPpatch%" EQU "Y" set "patchname2=%patchname2%-NP"
if /i "%VPpatch%" EQU "Y" set "patchname2=%patchname2%-VP"
if /i "%patchname2:~0,2%" EQU "[-" set "patchname2=[%patchname2:~2%"
set "patchname2=%patchname2%]"
if /i "%patchname2%" EQU "[]" set patchname2=
if /i "%wadname%" EQU "IOS%DEC%-64-v%VERFINAL%%patchname2%%slotname%%versionname%%vWiiName%.wad" echo Everything looks good!
if /i "%wadname%" EQU "IOS%DEC%-64-v%VERFINAL%%patchname2%%slotname%%versionname%%vWiiName%.wad" goto:nopatching
echo Renaming file to align with applied patches as follows:
support\sfk.exe echo [%bluetext%]"IOS%DEC%-64-v%VERFINAL%[%redtext%]%patchname2%[%bluetext%]%slotname%%versionname%%vWiiName%.wad"
echo.
move /y "%Drive%\%wadfolder%%wadname%" "%Drive%\%wadfolder%IOS%DEC%-64-v%VERFINAL%%patchname2%%slotname%%versionname%%vWiiName%.wad">nul
set "wadname=IOS%DEC%-64-v%VERFINAL%%patchname2%%slotname%%versionname%%vWiiName%.wad"
:nopatching
if exist "%Drive%\%wadfolder%%wadname%" (goto:there) else (goto:missing)
:SYSMENU
::if exist "temp\titles\00000001%HEX%\%VER%\00000001%HEX%-NUS-v%VER%.wad" move /Y "temp\titles\00000001%HEX%\%VER%\00000001%HEX%-NUS-v%VER%.wad" "%Drive%"\%wadfolder%SystemMenu-NUS-v%VERFINAL%.wad>nul
::if /i "%verfinal%" EQU "NEW" goto:option1notNUS
::option1 disabled
goto:option1notNUS
if /i "%OPTION1%" EQU "ON" goto:option1on
if /i "%OPTION1%" EQU "ALL" (goto:option1on) else (goto:option1noton)
:option1on
if not exist "%Drive%"\00000001\%HEX%\v%verfinal% mkdir "%Drive%"\00000001\%HEX%\v%verfinal%
if exist "temp\titles\00000001%HEX%\%VER%" copy /Y "temp\titles\00000001%HEX%\%VER%" "%Drive%"\00000001\%HEX%\v%verfinal% >nul
:option1noton
if /i "%OPTION1%" EQU "NUS" goto:option1NUS
if /i "%OPTION1%" EQU "ALL" (goto:option1NUS) else (goto:option1notNUS)
:option1NUS
if not exist "%Drive%"\NUS\00000001%HEX%v%verfinal% mkdir "%Drive%"\NUS\00000001%HEX%v%verfinal%
copy /y "temp\titles\00000001%HEX%\%VER%" "%Drive%"\NUS\00000001%HEX%v%verfinal% >nul
:option1notNUS
::if exist temp\titles rd /s /q temp\titles
if exist "%Drive%\%wadfolder%%wadname%" (goto:there) else (goto:missing)
:MIOS2
::if /i "%ROOTSAVE%" EQU "OFF" (set wadfolder=WAD\) else (set wadfolder=)
::if exist "temp\titles\00000001%HEX%\%VER%\00000001%HEX%-NUS-v%VER%.wad" move /Y "temp\titles\00000001%HEX%\%VER%\00000001%HEX%-NUS-v%VER%.wad" "%Drive%"\%wadfolder%RVL-mios-v%VERFINAL%.wad>nul
::if /i "%verfinal%" EQU "NEW" goto:option1notNUS
::option1 disabled
goto:option1notNUS
if /i "%OPTION1%" EQU "ON" goto:option1on
if /i "%OPTION1%" EQU "ALL" (goto:option1on) else (goto:option1noton)
:option1on
if not exist "%Drive%"\00000001\%HEX%\v%verfinal% mkdir "%Drive%"\00000001\%HEX%\v%verfinal%
if exist "temp\titles\00000001%HEX%\%VER%" copy /Y "temp\titles\00000001%HEX%\%VER%" "%Drive%"\00000001\%HEX%\v%verfinal% >nul
:option1noton
if /i "%OPTION1%" EQU "NUS" goto:option1NUS
if /i "%OPTION1%" EQU "ALL" (goto:option1NUS) else (goto:option1notNUS)
:option1NUS
if not exist "%Drive%"\NUS\00000001%HEX%v%verfinal% mkdir "%Drive%"\NUS\00000001%HEX%v%verfinal%
copy /y "temp\titles\00000001%HEX%\%VER%" "%Drive%"\NUS\00000001%HEX%v%verfinal% >nul
:option1notNUS
::if exist temp\titles rd /s /q temp\titles
if exist "%Drive%\%wadfolder%%wadname%" (goto:there) else (goto:missing)
::----check after downloading - if md5 check fails, delete and redownload----
:missing
if /i "%attempt%" EQU "1" goto:missingretry
echo.
support\sfk echo [%magentatext%] This file has failed to download properly multiple times, Skipping download.
support\sfk echo -spat \x20 \x20 \x20 [%magentatext%] Most likely reason is that the file does not exist.
support\sfk echo -spat \x20 \x20 \x20 [%magentatext%] Double check your custom values.
echo.
::if /i "%DEC%" EQU "SM" (echo "support\sfk echo SystemMenu-NUS-v%VERFINAL%.wad: [%redtext%]Missing">>temp\ModMii_Log.bat) & (goto:NEXT)
::if /i "%DEC%" EQU "MIOS" (echo "support\sfk echo %RVL-mios-v%VERFINAL%.wad: [%redtext%]Missing">>temp\ModMii_Log.bat) & (goto:NEXT)
echo "support\sfk echo %wadname%: [%redtext%]Missing">>temp\ModMii_Log.bat
goto:NEXT
:missingretry
echo.
support\sfk echo [%yellowtext%] The file is missing, retrying download.
echo.
SET /a retry=%retry%+1
SET /a attempt=%attempt%+1
::if exist temp\%wadname% del temp\%wadname%>nul
goto:DOWNLOADSTART2
:there
echo.
support\sfk echo [%greentext%]Advanced Download Successful
::if /i "%DEC%" EQU "SM" (echo "echo SystemMenu-NUS-v%VERFINAL%.wad: Found">>temp\ModMii_Log.bat) & (goto:NEXT)
::if /i "%DEC%" EQU "MIOS" (echo "echo RVL-mios-v%VERFINAL%.wad: Found">>temp\ModMii_Log.bat) & (goto:NEXT)
echo "echo %wadname%: Found">>temp\ModMii_Log.bat
goto:NEXT
::---------------HackMii Installer support\wget --no-check-certificate Download CODE-----------------------
:wget
::----if exist and fails md5 check, delete and redownload----
if not exist "%Drive%\%path1%%filename%" goto:nocheckexisting
set md5check=
support\sfk md5 -quiet -verify %md5% "%Drive%\%path1%%filename%"
if errorlevel 1 set md5check=fail
IF "%md5check%"=="" set md5check=pass
if /i "%md5check%" NEQ "fail" goto:pass
:fail
echo.
support\sfk echo [%yellowtext%] This file already exists but it failed MD5 verification.
support\sfk echo [%yellowtext%] The current version of the file will be deleted and the file will be re-downloaded.
echo.
del "%Drive%\%path1%%filename%">nul
SET /a retry=%retry%+1
SET /a attempt=%attempt%+1
if exist temp\%wadname% del temp\%wadname%>nul
goto:DOWNLOADSTART2
:pass
support\sfk echo [%greentext%]This file already exists and has been verified, Skipping download
echo.
COPY /Y "%Drive%\%path1%%filename%" "%Drive%"\boot.elf> nul
::erase boot.dol on root if exists as some cases will prioritize it over boot.elf
if exist "%Drive%\boot.dol" del "%Drive%\boot.dol"> nul
COPY /Y "%Drive%"\%path1%bootmini.elf "%Drive%"\bootmini.elf> nul
if /i "%AdvancedDownload%" NEQ "Y" echo "echo %name%: Valid">>temp\ModMii_Log.bat
goto:alreadyhavehackmii
:nocheckexisting
if exist index.html del index.html>nul
::if not exist temp\%wadname% support\wget --no-check-certificate -c -l1 -r -nd --retr-symlinks -t2 -T30 --random-wait --reject "*.html" --reject "index.html.tmp" --reject "%2A" --reject "get.php@file=hackmii_installer_v1.0*" %code2% -q --show-progress
if not exist temp\%wadname% support\wget --no-check-certificate -t 3 %code2% -O temp\%wadname% -q --show-progress
if not exist "%Drive%"\%path1% mkdir "%Drive%"\%path1%
if exist temp\%wadname% support\7za e -aoa temp\%wadname% -o"%Drive%"\%path1% *.%version% *.txt -r
if exist temp\%wadname% support\7za e -aoa temp\%wadname% -o"%Drive%" *.%version% -r
::disabled extracting outdated wiiload.exe
::support\7za e -aoa temp\%wadname% -o"temp" wiiload.exe -r
::get custom icon and meta.xml
if not exist "temp\%zipname%" support\wget --no-check-certificate %code3% -O temp\%zipname% -q --show-progress
if exist "temp\%zipname%" support\7za e -aoa "temp\%zipname%" -o"%Drive%"\%path1% * -r
if /i "%name%" NEQ "Hackmii Installer v1.0" goto:skip
if exist "%Drive%\%path1%meta.xml" support\sfk filter -quiet "%Drive%\%path1%meta.xml" -rep _"1.2"_"1.0"_ -rep _"HackMii Installer"_"HackMii Installer v1.0"_ -rep _"20121208140126"_"20120227000000"_ -write -yes
:skip
::----check after downloading - if md5 check fails, delete and redownload----
if exist "%Drive%\%path1%%filename%" goto:checkexisting
:missing
if /i "%attempt%" EQU "1" goto:missingretry
echo.
support\sfk echo [%magentatext%] This file has failed to download properly multiple times, Skipping download.
echo.
if /i "%AdvancedDownload%" NEQ "Y" echo "support\sfk echo %name%: [%redtext%]Missing">>temp\ModMii_Log.bat
goto:NEXT
:missingretry
echo.
support\sfk echo [%yellowtext%] The file is missing, retrying download.
echo.
SET /a retry=%retry%+1
SET /a attempt=%attempt%+1
if exist temp\%wadname% del temp\%wadname%>nul
goto:DOWNLOADSTART2
:checkexisting
set md5check=
support\sfk md5 -quiet -verify %md5% "%Drive%\%path1%%filename%"
if errorlevel 1 set md5check=fail
IF "%md5check%"=="" set md5check=pass
if /i "%md5check%" NEQ "fail" goto:pass
:fail
if /i "%attempt%" NEQ "1" goto:multiplefail
echo.
support\sfk echo [%yellowtext%] This file already exists but it failed MD5 verification.
support\sfk echo [%yellowtext%] The current version of the file will be deleted and the file will be re-downloaded.
echo.
del "%Drive%\%path1%%filename%">nul
if exist temp\%wadname% del temp\%wadname%>nul
SET /a retry=%retry%+1
SET /a attempt=%attempt%+1
goto:DOWNLOADSTART2
:multiplefail
echo.
support\sfk echo [%magentatext%] This file has failed to download properly multiple times, Skipping download.
echo.
set multiplefail=Y
if /i "%KeepInvalidOverride%" NEQ "Y" (if exist "%Drive%\%path1%%filename%" del "%Drive%\%path1%%filename%">nul)
if /i "%AdvancedDownload%" NEQ "Y" echo "support\sfk echo %name%: [%redtext%]Invalid">>temp\ModMii_Log.bat
goto:NEXT
:pass
echo.
support\sfk echo [%greentext%]Download Successful
echo.
if /i "%AdvancedDownload%" NEQ "Y" echo "echo %name%: Valid">>temp\ModMii_Log.bat
::goto:NEXT
:alreadyhavehackmii
if /i "%MENU1%" EQU "H" goto:RenameBootToHackMii
if /i "%virgin%" EQU "N" goto:next
If /i "%FIRMSTART%" EQU "4.3" goto:next
if /i "%REGION%" EQU "K" goto:RenameBootToHackMii
goto:next
::-----Bannerbomb yawmME instead of HackMii installer------
:RenameBootToHackMii
if exist "%Drive%"\apps\yawmME\yawmME_boot.elf copy /Y "%Drive%"\apps\yawmME\yawmME_boot.elf "%Drive%"\boot.elf >nul
if exist "%Drive%"\apps\yawmME\boot.dol copy /Y "%Drive%"\apps\yawmME\boot.dol "%Drive%"\boot.dol >nul
::copy /Y "Support\ExploitAppSelector.bat" "%Drive%\ExploitAppSelector.bat" >nul
goto:next
::----------------------FORWARDER------------------
:FORWARDER
if not exist "%Drive%\DOLS" mkdir "%Drive%\DOLS"
if /i "%FORWARDERTYPE%" EQU "1" copy /y support\DOLS\SDUSBFORWARDER_v14.dol "%Drive%\DOLS\%wadname%.dol">nul
if /i "%FORWARDERTYPE%" EQU "1b" copy /y support\DOLS\SDUSBFORWARDER_v12.dol "%Drive%\DOLS\%wadname%.dol">nul
if /i "%FORWARDERTYPE%" EQU "2" copy /y support\DOLS\INTERNETFORWARDER.dol "%Drive%\DOLS\%wadname%.dol">nul
if /i "%FORWARDERTYPE%" EQU "3" copy /y support\DOLS\CHANNELFORWARDER.dol "%Drive%\DOLS\%wadname%.dol">nul
::%s:/ = 0x25,0x73,0x3a,0x2f
if "%path-1%"=="" goto:nopath-1
echo Patching %wadname%.dol with path #1: %path-1%
set var=%path-1:~0,204%
call support\subscripts\Ascii2hex.bat
::setlocal DISABLEDELAYEDEXPANSION
support\sfk filter -quiet "temphex.txt" -rep _,_,0x_ -write -yes
set /p hex= <temphex.txt
del /f /q temphex.txt
set hex=0x%hex:~0,-4%
if /i "%FORWARDERTYPE%" EQU "1" support\hexalter.exe "%Drive%\DOLS\%wadname%.dol" 0x7F979=0x2f,%hex%
if /i "%FORWARDERTYPE%" EQU "1b" support\hexalter.exe "%Drive%\DOLS\%wadname%.dol" 0x77426=0x25,0x73,0x3a,0x2f,%hex%
if /i "%path-1:~204,1%" EQU "" (echo.) & (goto:nopath-1)
set var=%path-1:~204%
call support\subscripts\Ascii2hex.bat
::setlocal DISABLEDELAYEDEXPANSION
support\sfk filter -quiet "temphex.txt" -rep _,_,0x_ -write -yes
set /p hex= <temphex.txt
del /f /q temphex.txt
set hex=0x%hex:~0,-4%
if /i "%FORWARDERTYPE%" EQU "1" support\hexalter.exe "%Drive%\DOLS\%wadname%.dol" 0x7FA46=%hex%
if /i "%FORWARDERTYPE%" EQU "1b" support\hexalter.exe "%Drive%\DOLS\%wadname%.dol" 0x774F6=%hex%
echo.
:nopath-1
if "%path-2%"=="" goto:nopath-2
echo Patching %wadname%.dol with path #2: %path-2%
set var=%path-2:~0,204%
call support\subscripts\Ascii2hex.bat
::setlocal DISABLEDELAYEDEXPANSION
support\sfk filter -quiet "temphex.txt" -rep _,_,0x_ -write -yes
set /p hex= <temphex.txt
del /f /q temphex.txt
set hex=0x%hex:~0,-4%
if /i "%FORWARDERTYPE%" EQU "1" support\hexalter.exe "%Drive%\DOLS\%wadname%.dol" 0x7FA79=0x2f,%hex%
if /i "%FORWARDERTYPE%" EQU "1b" support\hexalter.exe "%Drive%\DOLS\%wadname%.dol" 0x7752d=0x25,0x73,0x3a,0x2f,%hex%
if /i "%path-2:~204,1%" EQU "" (echo.) & (goto:nopath-2)
set var=%path-2:~204%
call support\subscripts\Ascii2hex.bat
::setlocal DISABLEDELAYEDEXPANSION
support\sfk filter -quiet "temphex.txt" -rep _,_,0x_ -write -yes
set /p hex= <temphex.txt
del /f /q temphex.txt
set hex=0x%hex:~0,-4%
if /i "%FORWARDERTYPE%" EQU "1" support\hexalter.exe "%Drive%\DOLS\%wadname%.dol" 0x7FB46=%hex%
if /i "%FORWARDERTYPE%" EQU "1b" support\hexalter.exe "%Drive%\DOLS\%wadname%.dol" 0x775FD=%hex%
echo.
:nopath-2
if "%path-3%"=="" goto:nopath-3
echo Patching %wadname%.dol with path #3: %path-3%
set var=%path-3:~0,204%
call support\subscripts\Ascii2hex.bat
::setlocal DISABLEDELAYEDEXPANSION
support\sfk filter -quiet "temphex.txt" -rep _,_,0x_ -write -yes
set /p hex= <temphex.txt
del /f /q temphex.txt
set hex=0x%hex:~0,-4%
if /i "%FORWARDERTYPE%" EQU "1" support\hexalter.exe "%Drive%\DOLS\%wadname%.dol" 0x7FB79=0x2f,%hex%
if /i "%FORWARDERTYPE%" EQU "1b" support\hexalter.exe "%Drive%\DOLS\%wadname%.dol" 0x77631=0x25,0x73,0x3a,0x2f,%hex%
if /i "%path-3:~204,1%" EQU "" (echo.) & (goto:nopath-3)
set var=%path-3:~204%
call support\subscripts\Ascii2hex.bat
::setlocal DISABLEDELAYEDEXPANSION
support\sfk filter -quiet "temphex.txt" -rep _,_,0x_ -write -yes
set /p hex= <temphex.txt
del /f /q temphex.txt
set hex=0x%hex:~0,-4%
if /i "%FORWARDERTYPE%" EQU "1" support\hexalter.exe "%Drive%\DOLS\%wadname%.dol" 0x7FC46=%hex%
if /i "%FORWARDERTYPE%" EQU "1b" support\hexalter.exe "%Drive%\DOLS\%wadname%.dol" 0x77701=%hex%
echo.
:nopath-3
if "%path-4%"=="" goto:nopath-4
echo Patching %wadname%.dol with path #4: %path-4%
set var=%path-4:~0,204%
call support\subscripts\Ascii2hex.bat
::setlocal DISABLEDELAYEDEXPANSION
support\sfk filter -quiet "temphex.txt" -rep _,_,0x_ -write -yes
set /p hex= <temphex.txt
del /f /q temphex.txt
set hex=0x%hex:~0,-4%
if /i "%FORWARDERTYPE%" EQU "1" support\hexalter.exe "%Drive%\DOLS\%wadname%.dol" 0x7FC79=0x2f,%hex%
if /i "%FORWARDERTYPE%" EQU "1b" support\hexalter.exe "%Drive%\DOLS\%wadname%.dol" 0x77735=0x25,0x73,0x3a,0x2f,%hex%
if /i "%path-4:~204,1%" EQU "" (echo.) & (goto:nopath-4)
set var=%path-4:~204%
call support\subscripts\Ascii2hex.bat
::setlocal DISABLEDELAYEDEXPANSION
support\sfk filter -quiet "temphex.txt" -rep _,_,0x_ -write -yes
set /p hex= <temphex.txt
del /f /q temphex.txt
set hex=0x%hex:~0,-4%
if /i "%FORWARDERTYPE%" EQU "1" support\hexalter.exe "%Drive%\DOLS\%wadname%.dol" 0x7FD46=%hex%
if /i "%FORWARDERTYPE%" EQU "1b" support\hexalter.exe "%Drive%\DOLS\%wadname%.dol" 0x77805=%hex%
echo.
:nopath-4
if "%path-5%"=="" goto:nopath-5
echo Patching %wadname%.dol with path #5: %path-5%
set var=%path-5:~0,204%
call support\subscripts\Ascii2hex.bat
::setlocal DISABLEDELAYEDEXPANSION
support\sfk filter -quiet "temphex.txt" -rep _,_,0x_ -write -yes
set /p hex= <temphex.txt
del /f /q temphex.txt
set hex=0x%hex:~0,-4%
if /i "%FORWARDERTYPE%" EQU "1" support\hexalter.exe "%Drive%\DOLS\%wadname%.dol" 0x7FD79=0x2f,%hex%
if /i "%FORWARDERTYPE%" EQU "1b" support\hexalter.exe "%Drive%\DOLS\%wadname%.dol" 0x77839=0x25,0x73,0x3a,0x2f,%hex%
if /i "%path-5:~204,1%" EQU "" (echo.) & (goto:nopath-5)
set var=%path-5:~204%
call support\subscripts\Ascii2hex.bat
::setlocal DISABLEDELAYEDEXPANSION
support\sfk filter -quiet "temphex.txt" -rep _,_,0x_ -write -yes
set /p hex= <temphex.txt
del /f /q temphex.txt
set hex=0x%hex:~0,-4%
if /i "%FORWARDERTYPE%" EQU "1" support\hexalter.exe "%Drive%\DOLS\%wadname%.dol" 0x7FE46=%hex%
if /i "%FORWARDERTYPE%" EQU "1b" support\hexalter.exe "%Drive%\DOLS\%wadname%.dol" 0x77909=%hex%
echo.
:nopath-5
if "%path-6%"=="" goto:nopath-6
echo Patching %wadname%.dol with path #6: %path-6%
set var=%path-6:~0,204%
call support\subscripts\Ascii2hex.bat
::setlocal DISABLEDELAYEDEXPANSION
support\sfk filter -quiet "temphex.txt" -rep _,_,0x_ -write -yes
set /p hex= <temphex.txt
del /f /q temphex.txt
set hex=0x%hex:~0,-4%
if /i "%FORWARDERTYPE%" EQU "1" support\hexalter.exe "%Drive%\DOLS\%wadname%.dol" 0x7FE79=0x2f,%hex%
if /i "%FORWARDERTYPE%" EQU "1b" support\hexalter.exe "%Drive%\DOLS\%wadname%.dol" 0x7793d=0x25,0x73,0x3a,0x2f,%hex%
if /i "%path-6:~204,1%" EQU "" (echo.) & (goto:nopath-6)
set var=%path-6:~204%
call support\subscripts\Ascii2hex.bat
::setlocal DISABLEDELAYEDEXPANSION
support\sfk filter -quiet "temphex.txt" -rep _,_,0x_ -write -yes
set /p hex= <temphex.txt
del /f /q temphex.txt
set hex=0x%hex:~0,-4%
if /i "%FORWARDERTYPE%" EQU "1" support\hexalter.exe "%Drive%\DOLS\%wadname%.dol" 0x7FF46=%hex%
if /i "%FORWARDERTYPE%" EQU "1b" support\hexalter.exe "%Drive%\DOLS\%wadname%.dol" 0x77A0D=%hex%
echo.
:nopath-6
if "%path-7%"=="" goto:nopath-7
echo Patching %wadname%.dol with path #7: %path-7%
set var=%path-7:~0,204%
call support\subscripts\Ascii2hex.bat
::setlocal DISABLEDELAYEDEXPANSION
support\sfk filter -quiet "temphex.txt" -rep _,_,0x_ -write -yes
set /p hex= <temphex.txt
del /f /q temphex.txt
set hex=0x%hex:~0,-4%
if /i "%FORWARDERTYPE%" EQU "1" support\hexalter.exe "%Drive%\DOLS\%wadname%.dol" 0x7FF79=0x2f,%hex%
if /i "%FORWARDERTYPE%" EQU "1b" support\hexalter.exe "%Drive%\DOLS\%wadname%.dol" 0x77a41=0x25,0x73,0x3a,0x2f,%hex%
if /i "%path-7:~204,1%" EQU "" (echo.) & (goto:nopath-7)
set var=%path-7:~204%
call support\subscripts\Ascii2hex.bat
::setlocal DISABLEDELAYEDEXPANSION
support\sfk filter -quiet "temphex.txt" -rep _,_,0x_ -write -yes
set /p hex= <temphex.txt
del /f /q temphex.txt
set hex=0x%hex:~0,-4%
if /i "%FORWARDERTYPE%" EQU "1" support\hexalter.exe "%Drive%\DOLS\%wadname%.dol" 0x80046=%hex%
if /i "%FORWARDERTYPE%" EQU "1b" support\hexalter.exe "%Drive%\DOLS\%wadname%.dol" 0x77B11=%hex%
echo.
:nopath-7
if "%path-8%"=="" goto:nopath-8
echo Patching %wadname%.dol with path #8: %path-8%
set var=%path-8:~0,204%
call support\subscripts\Ascii2hex.bat
::setlocal DISABLEDELAYEDEXPANSION
support\sfk filter -quiet "temphex.txt" -rep _,_,0x_ -write -yes
set /p hex= <temphex.txt
del /f /q temphex.txt
set hex=0x%hex:~0,-4%
if /i "%FORWARDERTYPE%" EQU "1" support\hexalter.exe "%Drive%\DOLS\%wadname%.dol" 0x80079=0x2f,%hex%
if /i "%FORWARDERTYPE%" EQU "1b" support\hexalter.exe "%Drive%\DOLS\%wadname%.dol" 0x77b45=0x25,0x73,0x3a,0x2f,%hex%
if /i "%path-8:~204,1%" EQU "" (echo.) & (goto:nopath-8)
set var=%path-8:~204%
call support\subscripts\Ascii2hex.bat
::setlocal DISABLEDELAYEDEXPANSION
support\sfk filter -quiet "temphex.txt" -rep _,_,0x_ -write -yes
set /p hex= <temphex.txt
del /f /q temphex.txt
set hex=0x%hex:~0,-4%
if /i "%FORWARDERTYPE%" EQU "1" support\hexalter.exe "%Drive%\DOLS\%wadname%.dol" 0x80146=%hex%
if /i "%FORWARDERTYPE%" EQU "1b" support\hexalter.exe "%Drive%\DOLS\%wadname%.dol" 0x77C15=%hex%
echo.
:nopath-8
if "%path-9%"=="" goto:nopath-9
echo Patching %wadname%.dol with path #9: %path-9%
set var=%path-9:~0,204%
call support\subscripts\Ascii2hex.bat
::setlocal DISABLEDELAYEDEXPANSION
support\sfk filter -quiet "temphex.txt" -rep _,_,0x_ -write -yes
set /p hex= <temphex.txt
del /f /q temphex.txt
set hex=0x%hex:~0,-4%
if /i "%FORWARDERTYPE%" EQU "1" support\hexalter.exe "%Drive%\DOLS\%wadname%.dol" 0x80179=0x2f,%hex%
if /i "%FORWARDERTYPE%" EQU "1b" support\hexalter.exe "%Drive%\DOLS\%wadname%.dol" 0x77c49=0x25,0x73,0x3a,0x2f,%hex%
if /i "%path-9:~204,1%" EQU "" (echo.) & (goto:nopath-9)
set var=%path-9:~204%
call support\subscripts\Ascii2hex.bat
::setlocal DISABLEDELAYEDEXPANSION
support\sfk filter -quiet "temphex.txt" -rep _,_,0x_ -write -yes
set /p hex= <temphex.txt
del /f /q temphex.txt
set hex=0x%hex:~0,-4%
if /i "%FORWARDERTYPE%" EQU "1" support\hexalter.exe "%Drive%\DOLS\%wadname%.dol" 0x80246=%hex%
if /i "%FORWARDERTYPE%" EQU "1b" support\hexalter.exe "%Drive%\DOLS\%wadname%.dol" 0x77D19=%hex%
echo.
:nopath-9
if "%path-10%"=="" goto:nopath-10
echo Patching %wadname%.dol with path #10: %path-10%
set var=%path-10:~0,204%
call support\subscripts\Ascii2hex.bat
::setlocal DISABLEDELAYEDEXPANSION
support\sfk filter -quiet "temphex.txt" -rep _,_,0x_ -write -yes
set /p hex= <temphex.txt
del /f /q temphex.txt
set hex=0x%hex:~0,-4%
if /i "%FORWARDERTYPE%" EQU "1" support\hexalter.exe "%Drive%\DOLS\%wadname%.dol" 0x80279=0x2f,%hex%
if /i "%FORWARDERTYPE%" EQU "1b" support\hexalter.exe "%Drive%\DOLS\%wadname%.dol" 0x77d4d=0x25,0x73,0x3a,0x2f,%hex%
if /i "%path-10:~204,1%" EQU "" (echo.) & (goto:nopath-10)
set var=%path-10:~204%
call support\subscripts\Ascii2hex.bat
::setlocal DISABLEDELAYEDEXPANSION
support\sfk filter -quiet "temphex.txt" -rep _,_,0x_ -write -yes
set /p hex= <temphex.txt
del /f /q temphex.txt
set hex=0x%hex:~0,-4%
if /i "%FORWARDERTYPE%" EQU "1" support\hexalter.exe "%Drive%\DOLS\%wadname%.dol" 0x80346=%hex%
if /i "%FORWARDERTYPE%" EQU "1b" support\hexalter.exe "%Drive%\DOLS\%wadname%.dol" 0x77E1D=%hex%
echo.
:nopath-10
if "%URLPATH%"=="" goto:noURLPATH
echo Converting %URLPATH% to hex
set var=%URLPATH%
call support\subscripts\Ascii2hex.bat
::setlocal DISABLEDELAYEDEXPANSION
support\sfk filter -quiet "temphex.txt" -rep _,_,0x_ -write -yes
set /p hex= <temphex.txt
del /f /q temphex.txt
set hex=0x%hex:~0,-4%
echo Patching %wadname%.dol with %URLPATH%
support\hexalter.exe "%Drive%\DOLS\%wadname%.dol" 0x1f3a4=%hex%
echo.
:noURLPATH
if "%FORWARDERTITLEID%"=="" goto:noFORWARDERTITLEID
if /i "%FORWARDERTYPE%" NEQ "3" goto:noFORWARDERTITLEID
::if more than 4 chars it's already hex and skip conversion
if not "%FORWARDERTITLEID:~4%"=="" (echo %FORWARDERTITLEID%, >temphex.txt) & (goto:quickskip)
echo Converting %FORWARDERTITLEID% to hex
set var=%FORWARDERTITLEID%
call support\subscripts\Ascii2hex.bat
::setlocal DISABLEDELAYEDEXPANSION
:quickskip
support\sfk filter -quiet "temphex.txt" -rep _,_,0x_ -write -yes
set /p hex= <temphex.txt
del /f /q temphex.txt
set hex=0x%hex:~0,-4%
echo Patching %wadname%.dol with %FORWARDERTITLEID%
support\hexalter.exe "%Drive%\DOLS\%wadname%.dol" 0x2ee6=%hex:~0,9%
support\hexalter.exe "%Drive%\DOLS\%wadname%.dol" 0x2eee=%hex:~10%
if "%hex%"=="0x48,0x41,0x41,0x41" set bigt=02
if "%hex%"=="0x48,0x41,0x42,0x41" set bigt=02
if "%hex%"=="0x48,0x41,0x43,0x41" set bigt=02
if "%hex%"=="0x48,0x41,0x46,0x41" set bigt=02
if "%hex%"=="0x48,0x41,0x46,0x45" set bigt=02
if "%hex%"=="0x48,0x41,0x46,0x4A" set bigt=02
if "%hex%"=="0x48,0x41,0x46,0x50" set bigt=02
if "%hex%"=="0x48,0x41,0x47,0x41" set bigt=02
if "%hex%"=="0x48,0x41,0x47,0x45" set bigt=02
if "%hex%"=="0x48,0x41,0x47,0x4A" set bigt=02
if "%hex%"=="0x48,0x41,0x47,0x50" set bigt=02
if "%hex%"=="0x48,0x41,0x59,0x41" set bigt=02
if /i "%bigt%" NEQ "1" (echo.) & (echo Patching Channel Type: 000100%bigt%) & (support\hexalter.exe "%Drive%\DOLS\%wadname%.dol" 0x2eeb=0x0%bigt%)
echo.
:noFORWARDERTITLEID
if exist "%Drive%\DOLS\%wadname%.dol" goto:there
::----check after downloading----
:missingstuff
if /i "%attempt%" EQU "1" goto:missingretry
echo.
support\sfk echo [%magentatext%] This file has failed to download properly multiple times, Skipping download.
echo.
echo "support\sfk echo %name%: [%redtext%]Missing">>temp\ModMii_Log.bat
goto:NEXT
:missingretry
echo.
support\sfk echo [%yellowtext%] The file is missing, retrying download.
echo.
SET /a retry=%retry%+1
SET /a attempt=%attempt%+1
::if exist temp\%wadname% del temp\%wadname%
goto:DOWNLOADSTART2
:there
if /i "%name:~-3%" EQU "WAD" goto:HiddenChannelBuildCode
if /i "%FORWARDERDOLorISO%" NEQ "1" goto:FORWARDERISO
echo "echo %name%: Found">>temp\ModMii_Log.bat
echo.
support\sfk echo [%greentext%]Advanced Download Successful
goto:NEXT
:HiddenChannelBuildCode
echo Creating Hidden Channel WAD...
echo.
::apply ODB to dol, save copy of hidden-base.wxd, inject new dol into content 1 and change title ID
call Support\subscripts\dependency.bat ODB
if /i "%dependency%" EQU "F" goto:missingstuff
if exist "temp\ODBforwarder.app" del "temp\ODBforwarder.app">nul
temp\OpenDolBoot.exe "%Drive%\DOLS\%wadname%.dol" -f "temp\ODBforwarder.app">nul
if not errorlevel 0 goto:missingstuff
if not exist "temp\ODBforwarder.app" goto:missingstuff
copy Support\hidden-base.wxd "%Drive%\WAD\%wadname%.wad">nul
%WiiPy% wad set -i 1 "%Drive%\WAD\%wadname%.wad" "temp\ODBforwarder.app"
if not errorlevel 0 (del "%Drive%\WAD\%wadname%.wad">nul) & (goto:missingstuff)
del "temp\ODBforwarder.app">nul
%WiiPy% wad edit --tid "%FORWARDERTITLEID%" "%Drive%\WAD\%wadname%.wad"
if not errorlevel 0 (del "%Drive%\WAD\%wadname%.wad">nul) & (goto:missingstuff)
:there
if /i "%FORWARDERDOLorISO%" NEQ "1" goto:FORWARDERISO
echo "echo %name%: Found">>temp\ModMii_Log.bat
echo.
support\sfk echo [%greentext%]Advanced Download Successful
goto:NEXT
:FORWARDERISO
echo.
echo Creating Forwarder ISO...
echo.
call Support\subscripts\dependency.bat wit
if /i "%dependency%" EQU "F" (@ping 127.0.0.1 -n 3 -w 1000> nul) & (goto:missing)
if /i "%FORWARDERDOLorISO%" EQU "2" move /y "%Drive%\DOLS\%FORWARDERNAME%.dol" "support\disc-template\sys\main.dol">nul
if /i "%FORWARDERDOLorISO%" NEQ "2" copy /v /y "%Drive%\DOLS\%FORWARDERNAME%.dol" "support\disc-template\sys\main.dol">nul
::make WBFS folder for forwarder ISO
if not exist "%Drive%\WBFS\%FORWARDERNAME% [%discid%]" mkdir "%Drive%\WBFS\%FORWARDERNAME% [%discid%]"
if exist "%Drive%\WBFS\%FORWARDERNAME% [%discid%]\%discid%.iso" del "%Drive%\WBFS\%FORWARDERNAME% [%discid%]\%discid%.iso" >nul
%wit% copy -s ./Support/disc-template/ -d "%Drive%/WBFS/%FORWARDERNAME% [%discid%]/%discid%.iso" --id %discid% --name "%FORWARDERNAME%" -q -C
del "support\disc-template\sys\main.dol">nul
if exist "%Drive%\WBFS\%FORWARDERNAME% [%discid%]\%discid%.iso" echo Forwarder ISO Created
if exist "%Drive%\WBFS\%FORWARDERNAME% [%discid%]\%discid%.iso" (goto:there) else (goto:missing)
::----check after downloading----
:missing
if /i "%attempt%" EQU "1" goto:missingretry
echo.
support\sfk echo [%magentatext%] This file has failed to download properly multiple times, Skipping download.
echo.
if /i "%FORWARDERDOLorISO%" EQU "2" echo "support\sfk echo %name%: [%redtext%]Missing">>temp\ModMii_Log.bat
if /i "%FORWARDERDOLorISO%" EQU "3" echo "support\sfk echo %name%: [%redtext%]Missing">>temp\ModMii_Log.bat
goto:NEXT
:missingretry
echo.
support\sfk echo [%yellowtext%] The file is missing, retrying download.
echo.
SET /a retry=%retry%+1
SET /a attempt=%attempt%+1
goto:DOWNLOADSTART2
:there
if /i "%FORWARDERDOLorISO%" EQU "2" echo "echo %name%: Found">>temp\ModMii_Log.bat
if /i "%FORWARDERDOLorISO%" EQU "3" echo "echo %name%: Found">>temp\ModMii_Log.bat
echo.
support\sfk echo [%greentext%]Advanced Download Successful
goto:NEXT
::----------------------NEXT----------------------
:NEXT
::-----ROOT SAVE OPTION for IOSs (does not apply to wizard)-----
if /i "%MENU1%" EQU "W" goto:miniskip
if /i "%MENU1%" EQU "RC" goto:miniskip
if /i "%MENU1%" EQU "SU" goto:miniskip
if /i "%MENU1%" EQU "H" goto:miniskip
if /i "%category%" EQU "ios" goto:noskip
if /i "%category%" EQU "patchios" (goto:noskip) else (goto:miniskip)
:noskip
if "%wadname:~-4%" NEQ ".wad" (set movename="%wadname%.wad") else (set movename="%wadname%")
if /i "%ROOTSAVE%" EQU "ON" move /Y "%Drive%"\WAD\%movename% "%DRIVE%"\%movename% >nul
:miniskip
::-----------Exceptions for DL Wizard and syscheck updater----------
if /i "%name%" NEQ "IOS36" goto:skipwizardexceptions
if /i "%MENU1%" EQU "W" goto:exception
if /i "%MENU1%" NEQ "SU" goto:skipwizardexceptions
:exception
if "%wadname:~-4%" NEQ ".wad" (set movename="%wadname%.wad") else (set movename="%wadname%")
move /Y "%Drive%"\WAD\%movename% "%DRIVE%"\%movename% >nul
:skipwizardexceptions
::----------------------------
if /i "%category%" EQU "userdefined" goto:quickskip
if /i "%category%" EQU "FORWARDER" goto:quickskip
if /i "%AdvancedDownload%" EQU "Y" goto:customcopyandpatch
:quickskip
support\sfk filter -quiet "temp\DLgotos.txt" -le!"%CurrentDLNAME%" -write -yes
goto:DLSETTINGS3
::-----------------------------------------CUSTOM COPY AND PATCH (only for advanced downloads)--------------------------------
:customcopyandpatch
if /i "%loadorgo%" EQU "load" goto:ADVPAGE2
if "%wadname:~-4%" EQU ".wad" set wadname=%wadname:~0,-4%
if /i "%ROOTSAVE%" EQU "OFF" (set wadfolder=WAD\) else (set wadfolder=)
::move from WAD folder
if "%alreadyexists%" EQU "yes" goto:makeacopy
if exist "%DRIVE%"\WAD\%wadname%.wad move /Y "%DRIVE%"\WAD\%wadname%.wad "%DRIVE%"\%wadfolder%%wadnameless%%patchname%%slotname%%versionname%.wad>nul
goto:nocopy
:makeacopy
if exist "%DRIVE%"\WAD\%wadname%.wad copy /Y "%DRIVE%"\WAD\%wadname%.wad "%DRIVE%"\%wadfolder%%wadnameless%%patchname%%slotname%%versionname%.wad>nul
:nocopy
if exist "%DRIVE%"\%wadfolder%%wadnameless%%patchname%%slotname%%versionname%.wad goto:copyisthere
if not exist "%DRIVE%"\WAD mkdir "%DRIVE%"\WAD >nul
::move from root
if "%alreadyexists%" EQU "yes" goto:makeacopy
if exist "%DRIVE%"\%wadname%.wad move /Y "%DRIVE%"\%wadname%.wad "%DRIVE%"\%wadfolder%%wadnameless%%patchname%%slotname%%versionname%.wad>nul
goto:nocopy
:makeacopy
if exist "%DRIVE%"\%wadname%.wad copy /Y "%DRIVE%"\%wadname%.wad "%DRIVE%"\%wadfolder%%wadnameless%%patchname%%slotname%%versionname%.wad>nul
:nocopy
if exist "%DRIVE%\%wadfolder%%wadnameless%%patchname%%slotname%%versionname%.wad" (goto:copyisthere) else (goto:missing)
:copyisthere
echo.
::cd support
::if /i "%DRIVE:~1,1%" EQU ":" (set "DRIVEadj=%DRIVE%") else (set "DRIVEadj=..\%DRIVE%")
::patchios "%DRIVEadj%"\%wadfolder%%wadnameless%%patchname%%slotname%%versionname%.wad%PATCHCODE%%slotcode%%versioncode%
::cd..
::::fakesign!
::%WiiPy% fakesign "%DRIVE%\%wadfolder%%wadnameless%%patchname%%slotname%%versionname%.wad">nul
::convert %SLOTCODE% from legacy patchios format " -slot ###" to " -s ###" for wiipy
if not "%SLOTCODE%"=="" set "SLOTCODE= -s %SLOTCODE:~7%"
::convert %PATCHCODE% from legacy patchios format to wiipy format
if "%PATCHCODE%"=="" goto:tinyskip
echo %PATCHCODE%>temp\patchcode.txt
support\sfk filter -quiet "temp\patchcode.txt" -rep _-FS_-fs_ -rep _-ES_-ei_ -rep _-NP_-na_ -rep _-VP_-vd_ -write -yes
set /p PATCHCODE= <temp\patchcode.txt
:tinyskip
%WiiPy% iospatch%PATCHCODE%%slotcode%%versioncode% "%DRIVE%\%wadfolder%%wadnameless%%patchname%%slotname%%versionname%.wad"
if not errorlevel 0 if /i "%wadname:~0,4%" EQU "cIOS" support\sfk echo [%yellowtext%]Warning: Slot # or Version # was not changed properly
if /i "%wadname:~0,4%" EQU "cIOS" goto:nopatching
::if not exist "%Drive%\%wadfolder%%wadname%" goto:nopatching
::%WiiPy% iospatch%PATCHCODE%%slotcode%%versioncode% "%Drive%\%wadfolder%%wadname%"
echo.
echo Double checking applied patches...
::check if patches applied successfully
set "WadInput=%DRIVE%\%wadfolder%%wadnameless%%patchname%%slotname%%versionname%.wad"
call "Support\subscripts\CollectWadInfo.bat"
if not "%slotcode%"=="" if /i "%iosslot%" NEQ "%slotcode:~4%" support\sfk echo [%yellowtext%]Warning: Slot # was not changed properly
if not "%versioncode%"=="" if /i "%iosversion%" NEQ "%versioncode:~4%" support\sfk echo [%yellowtext%]Warning: Version # was not changed properly
set "patchname2=["
if /i "%FSpatch%" EQU "Y" set "patchname2=%patchname2%FS"
if /i "%ESpatch%" EQU "Y" set "patchname2=%patchname2%-ES"
if /i "%NPpatch%" EQU "Y" set "patchname2=%patchname2%-NP"
if /i "%VPpatch%" EQU "Y" set "patchname2=%patchname2%-VP"
if /i "%patchname2:~0,2%" EQU "[-" set "patchname2=[%patchname2:~2%"
set "patchname2=%patchname2%]"
if /i "%patchname2%" EQU "[]" set patchname2=
if /i "%wadnameless%%patchname%%slotname%%versionname%.wad" EQU "%wadnameless%%patchname2%%slotname%%versionname%.wad" echo Everything looks good!
if /i "%wadnameless%%patchname%%slotname%%versionname%.wad" EQU "%wadnameless%%patchname2%%slotname%%versionname%.wad" goto:nopatching
echo Renaming file to align with applied patches as follows:
support\sfk.exe echo [%bluetext%]"%wadnameless%[%redtext%]%patchname2%[%bluetext%]%slotname%%versionname%.wad"
echo.
move /y "%DRIVE%\%wadfolder%%wadnameless%%patchname%%slotname%%versionname%.wad" "%DRIVE%\%wadfolder%%wadnameless%%patchname2%%slotname%%versionname%.wad">nul
set "patchname=%patchname2%"
:nopatching
if exist "%DRIVE%"\%wadfolder%%wadnameless%%patchname%%slotname%%versionname%.wad goto:there
::----check after Advanced downloading----
:missing
if /i "%attempt%" EQU "1" goto:missingretry
echo.
support\sfk echo [%magentatext%] This file has failed to download properly multiple times, Skipping download.
echo.
support\sfk filter -quiet "temp\DLgotos.txt" -ls!"%CurrentDLNAME%" -write -yes
echo "support\sfk echo %wadnameless%%patchname%%slotname%%versionname%.wad: [%redtext%]Missing">>temp\ModMii_Log.bat
goto:DLSETTINGS3
:missingretry
echo.
support\sfk echo [%yellowtext%] The file is missing, retrying download.
echo.
SET /a retry=%retry%+1
SET /a attempt=%attempt%+1
goto:DOWNLOADSTART2
:there
if /i "%multiplefail%" EQU "Y" (support\sfk echo [%magentatext%] Base wad failed hash check multiple times, Advanced download probably corrupted) else (support\sfk echo [%greentext%]Advanced Download Successful)
echo.
if /i "%multiplefail%" EQU "Y" (echo "support\sfk echo %wadnameless%%patchname%%slotname%%versionname%.wad: Found but potentially corrupt">>temp\ModMii_Log.bat) else (echo "echo %wadnameless%%patchname%%slotname%%versionname%.wad: Found">>temp\ModMii_Log.bat)
:miniskip
support\sfk filter -quiet "temp\DLgotos.txt" -ls!"%CurrentDLNAME%" -write -yes
goto:DLSETTINGS3
::---------------------------------------SNEEKINSTALLER----------------------------------
:SNEEKINSTALLER
cls
if not exist "%DRIVE%" mkdir "%DRIVE%"
if /i "%SNEEKTYPE%" EQU "UD" goto:checkdriveU
if /i "%SNEEKTYPE%" EQU "U" (goto:checkdriveU) else (goto:skip)
:checkdriveU
if not exist "%DRIVEU%" mkdir "%DRIVEU%"
:skip
::if running uneek or uneek+di, check for sneek installations on SD, replace is default
set SNEEKreplace=R
if /i "%SNEEKTYPE:~0,1%" NEQ "U" goto:skipcheck
if not exist "%DRIVE%\sneek\kernel.bin" goto:skipcheck
if not exist "%DRIVE%\sneek\rev.txt" goto:prompt
::prompt if SNEEK found, otherwise skipcheck and overwrite\update
findStr /I "SNEEK" "%DRIVE%\sneek\rev.txt" >nul
IF ERRORLEVEL 1 goto:skipcheck
:prompt
if exist "%DRIVE%\sneek\rev.txt" support\sfk echo [%redtext%]SNEEK (SD Version) detected[def] in "%DRIVE%\sneek"
if not exist "%DRIVE%\sneek\rev.txt" support\sfk echo [%redtext%]SD:\sneek\ folder detected[def], but unable to determine what version
echo If you want to launch UNEEK using Bootmii or Switch2Uneek,
echo you need to replace SD:\sneek\kernel.bin with UNEEK's kernel.bin (USB version).
echo.
echo If you launch UNEEK using USB-Loader GX or nswitch, it loads USB:\sneek\ directly
echo so you can skip it to keep SNEEK (SD version) on your SD card.
echo.
if not exist "%DRIVE%\sneek\rev.txt" echo Note: If you know that the detected folder is for UNEEK or UNEEK+DI, then you should choose to replace.
if not exist "%DRIVE%\sneek\rev.txt" echo.
echo Replace or Skip? R/S
echo.
:SNEEKreplace
set SNEEKreplace="
set /p SNEEKreplace=Enter Selection Here:
set "SNEEKreplace=%SNEEKreplace:"=%"
echo.
if /i "%SNEEKreplace%" EQU "S" goto:skipcheck
if /i "%SNEEKreplace%" NEQ "R" goto:notreplace
::check for and delete di.bin (kernel.bin will be overwritten even if only building neek without di)
if exist "%DRIVE%\sneek\di.bin" del "%DRIVE%\sneek\di.bin">nul
::if exist "%DRIVE%\sneek\font.bin" del "%DRIVE%\sneek\font.bin">nul
goto:skipcheck
:notreplace
echo You Have Entered an Incorrect Key
goto:SNEEKreplace
:skipcheck
::if running sneek or sneek+di, check for uneek installations on SD, replace is default
set UNEEKreplace=R
if /i "%SNEEKTYPE:~0,1%" NEQ "S" goto:skipcheck
if not exist "%DRIVE%\sneek\kernel.bin" goto:skipcheck
::if di.bin found then this install is for SNEEK+DI and we will overwrite it
if exist "%DRIVE%\sneek\di.bin" goto:skipcheck
if not exist "%DRIVE%\sneek\rev.txt" goto:prompt
::prompt if UNEEK found, otherwise skipcheck and overwrite\update
findStr /I "UNEEK" "%DRIVE%\sneek\rev.txt" >nul
IF ERRORLEVEL 1 goto:skipcheck
:prompt
if exist "%DRIVE%\sneek\rev.txt" support\sfk echo [%redtext%]UNEEK (USB version) detected[def] in "%DRIVE%\sneek"
if not exist "%DRIVE%\sneek\rev.txt" support\sfk echo [%redtext%]SD:\sneek\ folder detected[def], but unable to determine what version
echo If you want to launch UNEEK using Bootmii, Nswitch or Switch2Uneek,
echo SD:\sneek\kernel.bin with UNEEK's kernel.bin (USB version) is needed.
echo.
echo If you launch UNEEK using USB-Loader GX or nswitch, it loads USB:\sneek\ directly
echo so you can skip it to keep SNEEK (SD version) on your SD card.
echo.
if not exist "%DRIVE%\sneek\rev.txt" echo Note: If you know that the detected folder is for SNEEK or SNEEK+DI, then you should choose to replace.
if not exist "%DRIVE%\sneek\rev.txt" echo.
echo Replace or Abort? R/A
echo.
:UNEEKreplace
set UNEEKreplace="
set /p UNEEKreplace=Enter Selection Here:
set "UNEEKreplace=%UNEEKreplace:"=%"
echo.
if /i "%UNEEKreplace%" NEQ "A" goto:notabort
::---------------CMD LINE MODE-------------
if /i "%cmdlinemode%" NEQ "Y" goto:MENU
echo User aborted %neekname% installation due to conflict with UNEEK >temp\ModMii_CMD_LINE_NEEK_Errors.txt
if /i "%SKINmode%" NEQ "Y" start notepad "temp\ModMii_CMD_LINE_NEEK_Errors.txt"
if /i "%SNEEKSELECT%" EQU "3" goto:SNKNANDBUILDER
if exist support\settings.bak move /y support\settings.bak support\settings.bat>nul
if /i "%SKINmode%" EQU "Y" start support\wizapp PB CLOSE
exit
:notabort
if /i "%UNEEKreplace%" NEQ "R" goto:notreplace
::check for and delete di.bin (kernel.bin will be overwritten even if only building neek without di)
if exist "%DRIVE%\sneek\di.bin" del "%DRIVE%\sneek\di.bin">nul
::if exist "%DRIVE%\sneek\font.bin" del "%DRIVE%\sneek\font.bin"
goto:skipcheck
:notreplace
echo You Have Entered an Incorrect Key
goto:UNEEKreplace
:skipcheck
::delete DI files from USB if detected if building UNEEK (kernel will be replaced)
if /i "%SNEEKTYPE%" NEQ "U" goto:skip
::if exist "%DRIVEU%"\SNEEK\kernel.bin del "%DRIVEU%"\SNEEK\kernel.bin>nul
if exist "%DRIVEU%"\SNEEK\di.bin del "%DRIVEU%"\SNEEK\di.bin>nul
::if exist "%DRIVEU%"\SNEEK\font.bin del "%DRIVEU%"\SNEEK\font.bin>nul
:skip
::delete DI files from SD if detected if building SNEEK (kernel will be replaced)
if /i "%SNEEKTYPE%" NEQ "S" goto:skip
::if exist "%DRIVE%"\SNEEK\kernel.bin del "%DRIVE%"\SNEEK\kernel.bin>nul
if exist "%DRIVE%"\SNEEK\di.bin del "%DRIVE%"\SNEEK\di.bin>nul
::if exist "%DRIVE%"\SNEEK\font.bin del "%DRIVE%"\SNEEK\font.bin>nul
:skip
::Special handling of bootmii\armboot.bin to avoid deleting Bootmii-SD Files
if not exist "%DRIVE%"\bootmii\armboot.bin goto:skip
::No Bootmii-SD Files
if not exist "%DRIVE%"\bootmii\ppcboot.elf del "%DRIVE%"\bootmii\armboot.bin>nul
if not exist "%DRIVE%"\bootmii\ppcboot.elf goto:skip
::RENAME Bootmii Booter Folder
set countbootmii=0
:renamebootmii
SET /a countbootmii=%countbootmii%+1
if exist "%DRIVE%"\bootmii_SDBooter%countbootmii% goto:renamebootmii
rename "%DRIVE%"\bootmii bootmii_SDBooter%countbootmii% >nul
:skip
if /i "%neek2o%" EQU "on" goto:neek2obuild
if /i "%SNEEKTYPE%" EQU "SD" echo Building SNEEK+DI rev%CurrentRev%
if /i "%SNEEKTYPE%" EQU "UD" echo Building UNEEK+DI rev%CurrentRev%
if /i "%SNEEKTYPE%" EQU "U" echo Building UNEEK rev%CurrentRev%
if /i "%SNEEKTYPE%" EQU "S" echo Building SNEEK rev%CurrentRev%
goto:skipneek2obuild
:neek2obuild
if /i "%SNEEKTYPE%" EQU "SD" echo Building SNEEK+DI neek2o rev%CurrentRev%
if /i "%SNEEKTYPE%" EQU "UD" echo Building UNEEK+DI neek2o rev%CurrentRev%
if /i "%SNEEKTYPE%" EQU "U" echo Building UNEEK neek2o rev%CurrentRev%
if /i "%SNEEKTYPE%" EQU "S" echo Building SNEEK neek2o rev%CurrentRev%
:skipneek2obuild
echo.
if /i "%neek2o%" EQU "on" echo neek2o Enabled (can be changed in options)
if /i "%neek2o%" NEQ "on" echo neek2o Disabled (can be changed in options)
echo.
if /i "%SSD%" EQU "on" echo SNEEK and SNEEK+DI SD Access Enabled (can be changed in options)
if /i "%SSD%" NEQ "on" echo SNEEK and SNEEK+DI SD Access Disabled (can be changed in options)
call Support\subscripts\dependency.bat UnRAR
if /i "%neek2o%" EQU "on" set NewInstallerRev=70
if /i "%neek2o%" NEQ "on" set NewInstallerRev=186
if %CurrentRev% GEQ %NewInstallerRev% goto:newinstaller
::old installer
set wadname=SNEEKInstallerv0.6c-cred.rar
set md5=bcdd0ddb85dc63c1ad7fad0007b6b606
goto:skipnew
:newinstaller
set wadname=SNEEKInstallerv0.7a-cred.rar
set md5=e1c094efd57d19e9a3726bcb8f543660
:skipnew
::if exist "temp\DBUPDATE%currentversion%.bat" call "temp\DBUPDATE%currentversion%.bat"
echo.
echo Downloading Official Sneek Installer (%wadname:~14,5%)
if not exist temp\%wadname:~0,-4%\SNEEKInstaller.exe goto:nocheck
set md5check=
support\sfk md5 -quiet -verify %md5% temp\%wadname:~0,-4%\SneekInstaller.exe
if errorlevel 1 set md5check=fail
if "%md5check%"=="" set md5check=pass
if /i "%md5check%" NEQ "fail" goto:AlreadyinTemp
:nocheck
if exist temp\%wadname:~0,-4% rd /s /q temp\%wadname:~0,-4%
mkdir temp\%wadname:~0,-4%
support\wget --no-check-certificate -t 3 https://master.dl.sourceforge.net/project/sneek-modmii/%wadname% -q --show-progress
if exist %wadname% temp\unrar.exe x -y %wadname% temp\%wadname:~0,-4%
if exist %wadname% del %wadname%>nul
:AlreadyinTemp
if not exist temp\%wadname:~0,-4%\SNEEKInstaller.exe goto:sneekwarning
::create empty sneek installer config file
type NUL > temp\%wadname:~0,-4%\sinst.ini
echo.
::---------------SKIN MODE-------------
if /i "%SkinMode%" EQU "Y" start support\wizapp PB UPDATE 15
echo Downloading Autoit
if exist temp\autoit3.exe goto:AlreadyinTemp
if not exist autoit-v3.zip support\wget --content-disposition --no-check-certificate -t 3 https://www.autoitscript.com/autoit3/files/archive/autoit/autoit-v3.3.16.0.zip -O autoit-v3.zip -q --show-progress
if exist autoit-v3.zip support\7za e -aoa autoit-v3.zip -otemp autoit3.exe -r
if exist autoit-v3.zip del autoit-v3.zip>nul
if not exist temp\autoit3.exe goto:sneekwarning
:AlreadyinTemp
echo.
::---------------SKIN MODE-------------
if /i "%SkinMode%" EQU "Y" start support\wizapp PB UPDATE 30
echo Downloading 0000000e_IOS80.app from IOS80 v6943
set CurrentDLNAME=NUSGRABBER0e
call "Support\subscripts\DB.bat"
::check md5 if exists already
if not exist "temp\%wadname%" goto:skip
support\sfk md5 -quiet -verify %md5% "temp\%wadname%"
if not errorlevel 1 (echo %wadname% already downloaded and verified, continuing...) & (goto:AlreadyinTemp)
support\sfk.exe echo [%redtext%]%wadname% already exists but failed MD5 verification, redownloading...
del "temp\%wadname%">nul
:skip
%WiiPy% nus content -v %version% -o "temp\%dlname%" -d %code1%%code2% %dlname:~0,8%
if not exist "temp\%dlname%" goto:sneekwarning
move /Y "temp\%dlname%" "temp\%wadname%">nul
::check md5
support\sfk md5 -quiet -verify %md5% "temp\%wadname%"
if errorlevel 1 (del "temp\%wadname%">nul) & (goto:sneekwarning)
:AlreadyinTemp
if exist temp\0000000e.app del temp\0000000e.app>nul
copy /Y temp\%wadname% temp\0000000e.app>nul
if not exist temp\0000000e.app goto:sneekwarning
echo.
::---------------SKIN MODE-------------
if /i "%SkinMode%" EQU "Y" start support\wizapp PB UPDATE 45
if %CurrentRev% GEQ %NewInstallerRev% (set wadname=SNEEKInstallerv0.7a-cred.rar) else (set wadname=SNEEKInstallerv0.6c-cred.rar)
::only old installer uses 0x1.app for neek+di
if /i "%wadname%" NEQ "SNEEKInstallerv0.6c-cred.rar" goto:skipDL01
if /i "%SNEEKTYPE%" EQU "SD" goto:DL01
if /i "%SNEEKTYPE%" EQU "UD" goto:DL01
goto:skipDL01
:DL01
echo Downloading 00000001_IOS60.app from IOS60 v6174
set CurrentDLNAME=NUSGRABBER01_60
call "Support\subscripts\DB.bat"
::check md5 if exists already
if not exist "temp\%wadname%" goto:skip
support\sfk md5 -quiet -verify %md5% "temp\%wadname%"
if not errorlevel 1 (echo %wadname% already downloaded and verified, continuing...) & (goto:AlreadyinTemp)
support\sfk.exe echo [%redtext%]%wadname% already exists but failed MD5 verification, redownloading...
del "temp\%wadname%">nul
:skip
%WiiPy% nus content -v %version% -o "temp\%dlname%" -d %code1%%code2% %dlname:~0,8%
if not exist "temp\%dlname%" goto:sneekwarning
move /Y "temp\%dlname%" "temp\%wadname%">nul
::check md5
support\sfk md5 -quiet -verify %md5% "temp\%wadname%"
if errorlevel 1 (del "temp\%wadname%">nul) & (goto:sneekwarning)
:AlreadyinTemp
if exist "temp\00000001.app" del "temp\00000001.app">nul
copy /Y temp\%wadname% temp\00000001.app>nul
if not exist temp\00000001.app goto:sneekwarning
echo.
:skipDL01
::---------------SKIN MODE-------------
if /i "%SkinMode%" EQU "Y" start support\wizapp PB UPDATE 60
::FONT.BIN
if /i "%SNKFONT%" EQU "B" echo Downloading Black font.bin (this can be changed in Options)
if /i "%SNKFONT%" EQU "R" echo Downloading Red font.bin (this can be changed in Options)
if /i "%SNKFONT%" EQU "W" echo Downloading White font.bin (this can be changed in Options)
if /i "%SNKFONT%" EQU "B" set fonturl=raw.githubusercontent.com/modmii/modmii.github.io/master/temp/fontb.bin
if /i "%SNKFONT%" EQU "W" set fonturl=raw.githubusercontent.com/modmii/modmii.github.io/master/temp/fontw.bin
if /i "%SNKFONT%" EQU "R" set fonturl=raw.githubusercontent.com/modmii/modmii.github.io/master/temp/fontr.bin
if not exist temp\font%SNKFONT%.bin support\wget --no-check-certificate -t 3 %fonturl% -q --show-progress
if exist font%SNKFONT%.bin move /Y font%SNKFONT%.bin temp\font%SNKFONT%.bin>nul
:skip
if /i "%SNEEKTYPE:~0,1%" NEQ "S" goto:skip
if not exist "%DRIVE%"\SNEEK mkdir "%DRIVE%"\SNEEK
if exist temp\font%SNKFONT%.bin copy /Y temp\font%SNKFONT%.bin "%DRIVE%"\SNEEK\font.bin>nul
if not exist "%DRIVE%"\SNEEK\font.bin goto:sneekwarning
:skip
if /i "%SNEEKTYPE:~0,1%" NEQ "U" goto:skip
if not exist "%DRIVEU%"\SNEEK mkdir "%DRIVEU%"\SNEEK
if exist temp\font%SNKFONT%.bin copy /Y temp\font%SNKFONT%.bin "%DRIVEU%"\SNEEK\font.bin>nul
if not exist "%DRIVEU%"\SNEEK\font.bin goto:sneekwarning
:skip
echo.
echo Grabbing Modules for %neekname% Rev%CurrentRev%
echo.
if exist "temp\%neekname%\%neekname%-rev%CurrentRev%.zip" goto:Extract
support\wget --no-check-certificate -t 3 "https://master.dl.sourceforge.net/project/%googlecode%/%neekname%-rev%CurrentRev%.zip" -q --show-progress
if not exist "%neekname%-rev%CurrentRev%.zip" goto:sneekwarning
if not exist "temp\%neekname%" mkdir "temp\%neekname%"
move /y "%neekname%-rev%CurrentRev%.zip" "temp\%neekname%\%neekname%-rev%CurrentRev%.zip">nul
if exist "temp\dimodule-sd.elf" del "temp\dimodule-sd.elf">nul
if exist "temp\dimodule-usb.elf" del "temp\dimodule-usb.elf">nul
:EXTRACT
support\7za e -aoa "temp\%neekname%\%neekname%-rev%CurrentRev%.zip" -o"temp" *.* -r>temp\7zalog.txt
findStr /I /C:"Everything is Ok" "temp\7zalog.txt" >nul
IF ERRORLEVEL 1 (Corrupted archive detected and deleted, please try again..) & (del temp\7zalog.txt>nul) & (del "temp\%neekname%\%neekname%-rev%CurrentRev%.zip">nul) & (goto:sneekwarning)
del temp\7zalog.txt>nul
::---------------SKIN MODE-------------
if /i "%SkinMode%" EQU "Y" start support\wizapp PB UPDATE 75
::Sneek SD Card Access
if /i "%SSD%" EQU "on" move /y "temp\esmodule-sdon.elf" "temp\esmodule.elf">nul
if /i "%SNEEKTYPE:~0,1%" NEQ "S" goto:noSDdi
if exist "temp\dimodule-sd.elf" move /y "temp\dimodule-sd.elf" "temp\dimodule.elf">nul
:noSDdi
if /i "%SNEEKTYPE:~0,1%" NEQ "U" goto:noUSBdi
if exist "temp\dimodule-usb.elf" move /y "temp\dimodule-usb.elf" "temp\dimodule.elf">nul
:noUSBdi
echo Building...
echo.
::create autoit script
echo WinWait ("SNEEK Installer","install SNEEK")>custom.au3
echo WinActivate ("SNEEK Installer","install SNEEK")>>custom.au3
if /i "%SNEEKTYPE%" EQU "S" echo ControlClick ("SNEEK Installer","SNEEK setup","SNEEK")>>custom.au3
if /i "%SNEEKTYPE%" EQU "SD" echo ControlClick ("SNEEK Installer","SNEEK setup","SNEEK+DI")>>custom.au3
if /i "%SNEEKTYPE%" EQU "U" echo ControlClick ("SNEEK Installer","SNEEK setup","UNEEK")>>custom.au3
if /i "%SNEEKTYPE%" EQU "UD" echo ControlClick ("SNEEK Installer","SNEEK setup","UNEEK+DI")>>custom.au3
if /i "%sneekverbose%" EQU "on" echo ControlClick ("SNEEK Installer","SNEEK setup","Verbose output")>>custom.au3
::ControlSetText vs ControlSend
::support for unicode (only if on windows 10, as it may not work on older versions), restored back to 437 later
ver>temp\temp.txt
support\sfk filter -quiet "temp\temp.txt" -rep _*" "__ -rep _"."*__ -rep _"]"__ -write -yes
support\sfk filter -quiet "temp\temp.txt" -no-empty-lines -no-blank-lines -write -yes
set /p winver= <temp\temp.txt
::echo %winver%
if /i %winver% GEQ 10 chcp 65001>nul
::old simple method:: ver | findstr "10.0">NUL && chcp 65001>nul
echo ControlSetText("SNEEK Installer","","[CLASS:Edit; INSTANCE:2]","%cd%\temp")>>custom.au3
echo ControlSetText("SNEEK Installer","","[CLASS:Edit; INSTANCE:3]","%cd%\temp")>>custom.au3
set "DRIVEabsolute=%cd%\%DRIVE%"
if /i "%DRIVE:~1,1%" EQU ":" set "DRIVEabsolute=%DRIVE%"
::SNEEKreplace "S" skip requires override
if /i "%SNEEKreplace%" NEQ "S" goto:next
if not exist temp\neektemp mkdir temp\neektemp
set "DRIVEabsolute=%cd%\temp\neektemp"
:next
echo ControlSetText("SNEEK Installer","","[CLASS:Edit; INSTANCE:1]","%DRIVEabsolute%")>>custom.au3
:afteroverride
::how to only change field if empty
::echo $a = ControlGetText ("SNEEK Installer","","[CLASS:Edit; INSTANCE:1]")>>custom.au3
::echo if $a = "" Then ControlSetText("SNEEK Installer","","[CLASS:Edit; INSTANCE:1]","%DRIVE%")>>custom.au3
if /i "%SNEEKTYPE%" EQU "S" goto:skip
if /i "%SNEEKTYPE%" EQU "SD" goto:skip
set "DRIVEUabsolute=%cd%\%DRIVEU%"
if /i "%DRIVEU:~1,1%" EQU ":" set "DRIVEUabsolute=%DRIVEU%"
echo ControlSetText("SNEEK Installer","","[CLASS:Edit; INSTANCE:4]","%DRIVEUabsolute%")>>custom.au3
:skip
echo ControlClick ("SNEEK Installer","SNEEK setup","install SNEEK")>>custom.au3
if %CurrentRev% GEQ %NewInstallerRev% (set wadname=SNEEKInstallerv0.7a-cred.rar) else (set wadname=SNEEKInstallerv0.6c-cred.rar)
cd temp\%wadname:~0,-4%
start /I /min SneekInstaller.exe
cd..
cd..
echo start /wait temp\AutoIt3.exe custom.au3>run.bat
call run.bat
del run.bat>nul
::restore 437 codepage
chcp 437>nul
@ping 127.0.0.1 -n 3 -w 1000> nul
taskkill /im SneekInstaller.exe /f >nul
del custom.au3>nul
::---------------SKIN MODE-------------
if /i "%SkinMode%" EQU "Y" start support\wizapp PB UPDATE 100
if /i "%AbstinenceWiz%" EQU "Y" copy /y "%DRIVE%\bootmii\armboot.bin" "%DRIVE%\bootmii_ios.bin">nul
::if /i "%AbstinenceWiz%" EQU "Y" rd /s /q "%DRIVE%\bootmii"
if /i "%AbstinenceWiz%" EQU "Y" goto:norename
if /i "%SNKS2U%" NEQ "Y" goto:noswitch2uneek
if exist "%DRIVE%\bootmiiuneek" rd /s /q "%DRIVE%\bootmiiuneek"
rename "%DRIVE%\bootmii" "bootmiiuneek"
:noswitch2uneek
::if /i "%neek2o%" EQU "off" goto:norename
if exist "%DRIVE%\bootmiineek" rd /s /q "%DRIVE%\bootmiineek"
rename "%DRIVE%\bootmii" "bootmiineek"
:norename
::save rev information
if /i "%neek2o%" EQU "on" goto:neek2orevinfo
if /i "%sneekverbose%" EQU "on" goto:sneekverbose
if /i "%SNEEKTYPE%" EQU "SD" echo SNEEK+DI rev%CurrentRev% >"%DRIVEabsolute%"\sneek\rev.txt
if /i "%SNEEKTYPE%" EQU "S" echo SNEEK rev%CurrentRev% >"%DRIVEabsolute%"\sneek\rev.txt
if /i "%SSD%" EQU "off" goto:miniskip
if /i "%SNEEKTYPE%" EQU "SD" echo SNEEK+DI (with SD Access On) rev%CurrentRev% >"%DRIVEabsolute%"\sneek\rev.txt
if /i "%SNEEKTYPE%" EQU "S" echo SNEEK (with SD Access On) rev%CurrentRev% >"%DRIVEabsolute%"\sneek\rev.txt
:miniskip
if /i "%SNEEKTYPE%" EQU "UD" echo UNEEK+DI rev%CurrentRev% >"%DRIVEabsolute%"\sneek\rev.txt
if /i "%SNEEKTYPE%" EQU "UD" echo UNEEK+DI rev%CurrentRev% >"%DRIVEUabsolute%"\sneek\rev.txt
if /i "%SNEEKTYPE%" EQU "U" echo UNEEK rev%CurrentRev% >"%DRIVEabsolute%"\sneek\rev.txt
if /i "%SNEEKTYPE%" EQU "U" echo UNEEK rev%CurrentRev% >"%DRIVEUabsolute%"\sneek\rev.txt
goto:skipsneekverbose
:sneekverbose
if /i "%SNEEKTYPE%" EQU "SD" echo SNEEK+DI (verbose) rev%CurrentRev% >"%DRIVEabsolute%"\sneek\rev.txt
if /i "%SNEEKTYPE%" EQU "S" echo SNEEK (verbose) rev%CurrentRev% >"%DRIVEabsolute%"\sneek\rev.txt
if /i "%SSD%" EQU "off" goto:miniskip
if /i "%SNEEKTYPE%" EQU "SD" echo SNEEK+DI (verbose and SD Access On) rev%CurrentRev% >"%DRIVEabsolute%"\sneek\rev.txt
if /i "%SNEEKTYPE%" EQU "S" echo SNEEK (verbose and SD Access On) rev%CurrentRev% >"%DRIVEabsolute%"\sneek\rev.txt
:miniskip
if /i "%SNEEKTYPE%" EQU "UD" echo UNEEK+DI (verbose) rev%CurrentRev% >"%DRIVEabsolute%"\sneek\rev.txt
if /i "%SNEEKTYPE%" EQU "UD" echo UNEEK+DI (verbose) rev%CurrentRev% >"%DRIVEUabsolute%"\sneek\rev.txt
if /i "%SNEEKTYPE%" EQU "U" echo UNEEK (verbose) rev%CurrentRev% >"%DRIVEabsolute%"\sneek\rev.txt
if /i "%SNEEKTYPE%" EQU "U" echo UNEEK (verbose) rev%CurrentRev% >"%DRIVEUabsolute%"\sneek\rev.txt
:skipsneekverbose
goto:skipneek2orevinfo
:neek2orevinfo
if /i "%sneekverbose%" EQU "on" goto:sneekverbose
if /i "%SNEEKTYPE%" EQU "SD" echo SNEEK+DI neek2o rev%CurrentRev% >"%DRIVEabsolute%"\sneek\rev.txt
if /i "%SNEEKTYPE%" EQU "S" echo SNEEK neek2o rev%CurrentRev% >"%DRIVEabsolute%"\sneek\rev.txt
if /i "%SSD%" EQU "off" goto:miniskip
if /i "%SNEEKTYPE%" EQU "SD" echo SNEEK+DI (with SD Access On) neek2o rev%CurrentRev% >"%DRIVEabsolute%"\sneek\rev.txt
if /i "%SNEEKTYPE%" EQU "S" echo SNEEK (with SD Access On) neek2o rev%CurrentRev% >"%DRIVEabsolute%"\sneek\rev.txt
:miniskip
if /i "%SNEEKTYPE%" EQU "UD" echo UNEEK+DI neek2o rev%CurrentRev% >"%DRIVEabsolute%"\sneek\rev.txt
if /i "%SNEEKTYPE%" EQU "UD" echo UNEEK+DI neek2o rev%CurrentRev% >"%DRIVEUabsolute%"\sneek\rev.txt
if /i "%SNEEKTYPE%" EQU "U" echo UNEEK neek2o rev%CurrentRev% >"%DRIVEabsolute%"\sneek\rev.txt
if /i "%SNEEKTYPE%" EQU "U" echo UNEEK neek2o rev%CurrentRev% >"%DRIVEUabsolute%"\sneek\rev.txt
goto:skipsneekverbose
:sneekverbose
if /i "%SNEEKTYPE%" EQU "SD" echo SNEEK+DI (verbose) neek2o rev%CurrentRev% >"%DRIVEabsolute%"\sneek\rev.txt
if /i "%SNEEKTYPE%" EQU "S" echo SNEEK (verbose) neek2o rev%CurrentRev% >"%DRIVEabsolute%"\sneek\rev.txt
::neek2o sd access temporarily always disabled
goto:miniskip
if /i "%SSD%" EQU "off" goto:miniskip
if /i "%SNEEKTYPE%" EQU "SD" echo SNEEK+DI (verbose and SD Access On) neek2o rev%CurrentRev% >"%DRIVEabsolute%"\sneek\rev.txt
if /i "%SNEEKTYPE%" EQU "S" echo SNEEK (verbose and SD Access On) neek2o rev%CurrentRev% >"%DRIVEabsolute%"\sneek\rev.txt
:miniskip
if /i "%SNEEKTYPE%" EQU "UD" echo UNEEK+DI (verbose) neek2o rev%CurrentRev% >"%DRIVEabsolute%"\sneek\rev.txt
if /i "%SNEEKTYPE%" EQU "UD" echo UNEEK+DI (verbose) neek2o rev%CurrentRev% >"%DRIVEUabsolute%"\sneek\rev.txt
if /i "%SNEEKTYPE%" EQU "U" echo UNEEK (verbose) neek2o rev%CurrentRev% >"%DRIVEabsolute%"\sneek\rev.txt
if /i "%SNEEKTYPE%" EQU "U" echo UNEEK (verbose) neek2o rev%CurrentRev% >"%DRIVEUabsolute%"\sneek\rev.txt
:skipsneekverbose
:skipneek2orevinfo
if /i "%SNEEKSELECT%" EQU "3" goto:SNKNANDBUILDER
goto:finishsneekinstall3
:sneekwarning
::---------------CMD LINE MODE-------------
if /i "%cmdlinemode%" NEQ "Y" goto:notcmdfinish
echo Some files required for %neekname% installation >temp\ModMii_CMD_LINE_NEEK_Errors.txt
echo are missing. Aborting %neekname% installation, >>temp\ModMii_CMD_LINE_NEEK_Errors.txt
echo check your internet connection then try again. >>temp\ModMii_CMD_LINE_NEEK_Errors.txt
if /i "%SKINmode%" NEQ "Y" start notepad "temp\ModMii_CMD_LINE_NEEK_Errors.txt"
if /i "%SNEEKSELECT%" EQU "3" goto:SNKNANDBUILDER
if exist support\settings.bak move /y support\settings.bak support\settings.bat>nul
if /i "%SKINmode%" EQU "Y" start support\wizapp PB CLOSE
exit
:notcmdfinish
echo.
support\sfk echo -spat \x20 [%yellowtext%] WARNING: Some files Required for the %neekname% install are missing.
support\sfk echo -spat \x20 \x20 \x20 \x20 [%yellowtext%] Aborting %neekname% Installation, check your internet connection
support\sfk echo -spat \x20 \x20 \x20 \x20 [%yellowtext%] Then repeat the Installation to try again.
echo.
if /i "%SKINmode%" EQU "Y" goto:noaudio
if /i "%AudioOption%" NEQ "on" goto:noaudio
start support\nircmd.exe mediaplay 3000 "%Fail.mp3%"
:noaudio
echo Press any key to return to the Main Menu.
pause>nul
goto:MENU
::------------------------wad2nand-install wads from temp\wad to emu nand--------------------
:wad2nand
cls
if /i "%SNEEKSELECT%" NEQ "5" goto:tinyskip
if /i "%emuwadcount%" EQU "0" goto:skipSMWall
:tinyskip
::---------------SKIN MODE-------------
if /i "%SkinMode%" EQU "Y" start support\wizapp PB UPDATE 10
if not "%addwadfolder%"=="" goto:forceSMW
if not exist temp\WAD\*.wad goto:skipSMWall
:forceSMW
if exist temp\WAD\*.wad echo Installing wads from "temp\WAD\"
if exist temp\WAD\*.wad echo to emulated nand: "%nandpath%\"
if exist temp\WAD\*.wad echo.
if exist temp\WAD\*.wad %WiiPy% emunand title --install "temp\WAD" --skip-hash "%nandpath%"
if exist temp\WAD\*.wad echo.
if not "%addwadfolder%"=="" echo Installing wads from "%addwadfolder%"
if not "%addwadfolder%"=="" echo to emulated nand: "%nandpath%\"
if not "%addwadfolder%"=="" echo.
if not "%addwadfolder%"=="" %WiiPy% emunand title --install "%addwadfolder%" --skip-hash "%nandpath%"
if not "%addwadfolder%"=="" echo.
:skipSMWall
::---------------SKIN MODE-------------
if /i "%SkinMode%" EQU "Y" start support\wizapp PB UPDATE 50
::---delete non-temp files---
if exist "temp\WAD\WiiFlow-FIX94v14-forwarder-BWFA-Wii+vWii.wad" del "temp\WAD\WiiFlow-FIX94v14-forwarder-BWFA-Wii+vWii.wad">nul
if exist temp\WAD\switch2uneek-4EMUNand-v12-S2RL.wad del temp\WAD\switch2uneek-4EMUNand-v12-S2RL.wad>nul
if exist temp\WAD\cIOS249-v14.wad del temp\WAD\cIOS249-v14.wad>nul
if exist temp\WAD\cBC-NMMv0.2a.wad del temp\WAD\cBC-NMMv0.2a.wad>nul
::if exist temp\WAD\cBC-DML.wad del temp\WAD\cBC-DML.wad>nul
if exist "temp\WAD\IOS60v65535(ModMii-IOS60-v6174).wad" del "temp\WAD\IOS60v65535(ModMii-IOS60-v6174).wad">nul
if exist "temp\WAD\IOS70v65535(ModMii-IOS60-v6174).wad" del "temp\WAD\IOS70v65535(ModMii-IOS60-v6174).wad">nul
if exist "temp\WAD\IOS80v65535(ModMii-IOS60-v6174).wad" del "temp\WAD\IOS80v65535(ModMii-IOS60-v6174).wad">nul
if exist "temp\WAD\vIOS80v7200[FS-ES-NP-VP]-vWii.wad" del "temp\WAD\vIOS80v7200[FS-ES-NP-VP]-vWii.wad">nul
if exist temp\WAD\*.wad move temp\WAD\*.wad temp\>nul
::restore setting.txt if applicable
if /i "%SNEEKSELECT%" EQU "5" goto:skipSMW
if not exist "%nandpath%\title\00000001\00000002\data" mkdir "%nandpath%\title\00000001\00000002\data"
if /i "%SNKSERIAL%" EQU "current" move /y "%nandpath%"\setting.txt "%nandpath%"\title\00000001\00000002\data\setting.txt>nul
:skipSMW
if exist support\ShowMiiWads.cfg del support\ShowMiiWads.cfg>nul
::NANDINFO.TXT
if /i "%SNEEKSELECT%" EQU "2" goto:newnand
if /i "%SNEEKSELECT%" EQU "3" (goto:newnand) else (goto:nonewnand)
:newnand
if exist "%nandpath%\sneek\nandcfg.bin" del "%nandpath%\sneek\nandcfg.bin" >nul
echo ================================================== >"%nandpath%\nandinfo.txt"
if /i "%SNKVERSION%" NEQ "V" echo %SNKVERSION%%SNKREGION% Emulated NAND created by ModMii on %DATE% >>"%nandpath%\nandinfo.txt"
if /i "%SNKVERSION%" EQU "V" echo vWii 4.3%SNKREGION% Emulated NAND created by ModMii on %DATE% >>"%nandpath%\nandinfo.txt"
echo -------------------------------------------------- >>"%nandpath%\nandinfo.txt"
:nonewnand
if /i "%SNEEKSELECT%" NEQ "5" goto:nomoddednand
echo ============================================== >>"%nandpath%\nandinfo.txt"
echo Emulated NAND Modified by ModMii on %DATE% >>"%nandpath%\nandinfo.txt"
echo ---------------------------------------------- >>"%nandpath%\nandinfo.txt"
:nomoddednand
::if /i "%SNEEKSELECT%" EQU "5" goto:skip
::Build setting.txt
if /i "%SNKSERIAL%" EQU "current" goto:skip
echo.
echo Building setting.txt using serial number: %SNKSERIAL%
if /i "%SNKREGION%" EQU "K" %WiiPy% setting gen %SNKSERIAL% KOR
if /i "%SNKREGION%" EQU "U" %WiiPy% setting gen %SNKSERIAL% USA
if /i "%SNKREGION%" EQU "E" %WiiPy% setting gen %SNKSERIAL% EUR
if /i "%SNKREGION%" EQU "J" %WiiPy% setting gen %SNKSERIAL% JPN
move /y setting.txt "%nandpath%"\title\00000001\00000002\data\setting.txt >nul
if exist "%nandpath%"\title\00000001\00000002\data\setting.txt (echo setting.txt built using this serial: %SNKSERIAL% >>"%nandpath%\nandinfo.txt") else (echo setting.txt failed to build properly >>"%nandpath%\nandinfo.txt")
:skip
::---------------SKIN MODE-------------
if /i "%SkinMode%" EQU "Y" start support\wizapp PB UPDATE 60
if "%ThemeSelection%"=="" goto:quickskip2
if /i "%ThemeSelection%" EQU "N" goto:quickskip
if /i "%ThemeSelection%" EQU "D" goto:quickskip
if /i "%ThemeSelection:~1,1%" EQU ":" goto:quickskip
echo.
echo Copying over Custom Theme
if /i "%ThemeSelection%" EQU "R" set themecolour=Red
if /i "%ThemeSelection%" EQU "G" set themecolour=Green
if /i "%ThemeSelection%" EQU "BL" set themecolour=Blue
if /i "%ThemeSelection%" EQU "O" set themecolour=Orange
if /i "%SNKVERSION%" EQU "v" (set SNKVERSION2=vWii) else (set SNKVERSION2=%SNKVERSION%)
if exist "temp\themes\DarkWii_%themecolour%_%effect%_%SNKVERSION2%%SNKREGION%.csm" (echo Custom System Menu Theme Installed - Dark Wii %themecolour% >>"%nandpath%\nandinfo.txt") else (echo Custom System Menu Theme Failed to Install Properly >>"%nandpath%\nandinfo.txt")
move /y "temp\themes\DarkWii_%themecolour%_%effect%_%SNKVERSION2%%SNKREGION%.csm" "%nandpath%"\title\00000001\00000002\content\%SMTHEMEAPP%.app>nul
goto:quickskip2
:quickskip
if /i "%ThemeSelection%" NEQ "D" goto:quickskip
echo.
echo Restoring Original Theme
::set dlname=00000022_4.3E_vWii.app
::set dlname=0000007b_4.1U.app
if /i "%SNKVERSION%" EQU "V" (set SNKVERSION2=4.3) else (set SNKVERSION2=%SNKVERSION%)
if /i "%SNKVERSION%" EQU "V" (set SNKREGION2=%SNKREGION%_vWii) else (set SNKREGION2=%SNKREGION%)
if exist "temp\themes\%SMTHEMEAPP%_%SNKVERSION2%%SNKREGION2%.app" (echo Original System Menu Theme Applied >>"%nandpath%\nandinfo.txt") else (echo Failed to Restore Original System Menu Theme >>"%nandpath%\nandinfo.txt")
move /y "temp\themes\%SMTHEMEAPP%_%SNKVERSION2%%SNKREGION2%.app" "%nandpath%"\title\00000001\00000002\content\%SMTHEMEAPP%.app>nul
goto:quickskip2
:quickskip
if /i "%ThemeSelection:~-4%" NEQ ".csm" goto:quickskip
echo.
echo Copying theme: "%ThemeSelection%"
copy /y "%ThemeSelection%" "%nandpath%"\title\00000001\00000002\content\%SMTHEMEAPP%.app>nul
IF %ERRORLEVEL% EQU 0 echo Copied theme: "%ThemeSelection%" >>"%nandpath%\nandinfo.txt"
IF %ERRORLEVEL% NEQ 0 echo Failed to copy theme: "%ThemeSelection%" >>"%nandpath%\nandinfo.txt"
goto:quickskip2
:quickskip
if /i "%ThemeSelection:~-4%" NEQ ".mym" goto:quickskip2
if /i "%SNKVERSION%" EQU "V" (set SNKVERSION2=4.3) else (set SNKVERSION2=%SNKVERSION%)
if /i "%SNKVERSION%" EQU "V" (set SNKREGION2=%SNKREGION%_vWii) else (set SNKREGION2=%SNKREGION%)
::set dlname=00000022_4.3E_vWii.app
::set dlname=0000007b_4.1U.app
echo.
echo Building %SNKVERSION2%%SNKREGION2% csm from: "%ThemeSelection%"
if not exist "temp\themes\%SMTHEMEAPP%_%SNKVERSION2%%SNKREGION2%.app" echo Failed to download %SMTHEMEAPP%_%SNKVERSION2%%SNKREGION2%.app to build theme >>"%nandpath%\nandinfo.txt"
if not exist "temp\themes\%SMTHEMEAPP%_%SNKVERSION2%%SNKREGION2%.app" (echo Failed to download %SMTHEMEAPP%_%SNKVERSION2%%SNKREGION2%.app to build theme) & (goto:quickskip2)
call Support\subscripts\dependency.bat themewii
if /i "%dependency%" EQU "F" echo Failed to download themewii.exe to build %SNKVERSION2%%SNKREGION2% theme: "%ThemeSelection%" >>"%nandpath%\nandinfo.txt"
if /i "%dependency%" EQU "F" goto:quickskip2
call Support\subscripts\dependency.bat spin
if /i "%dependency%" EQU "F" echo Failed to download spin effect mym to build %SNKVERSION2%%SNKREGION2% theme: "%ThemeSelection%" >>"%nandpath%\nandinfo.txt"
if /i "%dependency%" EQU "F" goto:quickskip2
if /i "%effect%" EQU "No-Spin" set mym2=optional_non_spinning_outline.mym
if /i "%effect%" EQU "Spin" set mym2=optional_spinning_outline_.mym
if /i "%effect%" EQU "Fast-Spin" set mym2=optional_fast_spinning_outline.mym
cd /d temp\themewii
themewii.exe "%ThemeSelection%" "..\themes\%SMTHEMEAPP%_%SNKVERSION2%%SNKREGION2%.app" "..\temp1.csm"
themewii.exe "..\%mym2%" "..\temp1.csm" "..\temp.csm"
cd ..\..
echo.
::%WiiPy% theme mym "%ThemeSelection%" "temp\themes\%SMTHEMEAPP%_%SNKVERSION2%%SNKREGION2%.app" "temp\temp1.csm"
::%WiiPy% theme mym "temp\%mym2%" "temp\temp1.csm" "temp\temp.csm"
::if /i "%errorlevel%" NEQ "0" if exist "temp\temp.csm" del "temp\temp.csm">nul
if exist "temp\temp1.csm" del "temp\temp1.csm">nul
if exist "temp\themes\%SMTHEMEAPP%_%SNKVERSION2%%SNKREGION2%.app" del "temp\themes\%SMTHEMEAPP%_%SNKVERSION2%%SNKREGION2%.app">nul
if not exist "temp\temp.csm" echo Failed to build %SNKVERSION2%%SNKREGION2% csm
if not exist "temp\temp.csm" echo Failed to build %SNKVERSION2%%SNKREGION2% csm from: "%ThemeSelection%" >>"%nandpath%\nandinfo.txt"
if not exist "temp\temp.csm" goto:quickskip2
move /y "temp\temp.csm" "%nandpath%"\title\00000001\00000002\content\%SMTHEMEAPP%.app>nul
IF %ERRORLEVEL% EQU 0 echo Applied %SNKVERSION2%%SNKREGION2% theme with %effect% effect from: "%ThemeSelection%" >>"%nandpath%\nandinfo.txt"
IF %ERRORLEVEL% NEQ 0 echo Failed to apply %SNKVERSION2%%SNKREGION2% theme: "%ThemeSelection%" >>"%nandpath%\nandinfo.txt"
::goto:quickskip2
:::quickskip
:quickskip2
if exist temp\themes rd /s /q temp\themes
if exist temp\WAD rd /s /q temp\WAD
::disable wbfs and games folder creation for now
goto:notDI
if /i "%SNEEKSELECT%" EQU "5" goto:skip
::---------if building uneek+di or sneek+di add games\wbfs folder to usb---------
if /i "%SNEEKTYPE:~1,1%" NEQ "D" goto:notDI
if not exist "%DRIVEU%\games" mkdir "%DRIVEU%\games" >nul
if /i "%neek2o%" EQU "off" goto:notDI
if not exist "%DRIVEU%\WBFS" mkdir "%DRIVEU%\WBFS" >nul
:notDI
::---------------SKIN MODE-------------
if /i "%SkinMode%" EQU "Y" start support\wizapp PB UPDATE 70
if /i "%SNEEKSELECT%" EQU "5" goto:skip
::---------building cdf.vff----------
echo.
echo Building cdb.vff to speed up the time required to launch s\uneek the first time
if exist temp\cdb.vff goto:nobuild
fsutil file createnew temp\cdb.vff 20971520>nul
support\sfk setbytes "temp\cdb.vff" 0x0 0x56464620FEFF0100014000000020 -yes>nul
support\sfk setbytes "temp\cdb.vff" 0x20 0xF0FFFFFF -yes>nul
support\sfk setbytes "temp\cdb.vff" 0x14020 0xF0FFFFFF -yes>nul
:nobuild
if exist temp\cdb.vff copy /y temp\cdb.vff "%nandpath%"\title\00000001\00000002\data\cdb.vff>nul
:skip
::---------------SKIN MODE-------------
if /i "%SkinMode%" EQU "Y" start support\wizapp PB UPDATE 80
if /i "%PRIIFOUND%" EQU "Yes" goto:skipSNKpri
if /i "%SNKPRI%" NEQ "Y" goto:skipSNKpri
echo.
echo Downloading Priiloader for Emulated NANDs
echo.
if /i "%AUSKIP%" EQU "OFF" support\wget --no-check-certificate -t 3 "https://raw.githubusercontent.com/modmii/modmii.github.io/master/temp/EmuPriiloader.zip" -q --show-progress
if /i "%AUSKIP%" EQU "OFF" goto:skip
if not exist temp\EmuPriiloader.zip support\wget --no-check-certificate -t 3 "https://raw.githubusercontent.com/modmii/modmii.github.io/master/temp/EmuPriiloader.zip" -q --show-progress
::Priiloader-v0.7neek.app is a mirror of: https://sourceforge.net/projects/neek2o/files/priiloader.app/download?use_mirror=master&download=&failedmirror=master.dl.sourceforge.net
:skip
if exist EmuPriiloader.zip move /Y EmuPriiloader.zip temp\EmuPriiloader.zip>nul
if not exist temp\EmuPriiloader.zip (echo Failed to Install Priiloader >>"%nandpath%\nandinfo.txt") & (goto:skipSNKpri)
echo Priiloader Installed >>"%nandpath%\nandinfo.txt"
support\7za x -aoa "temp\EmuPriiloader.zip" -o"%nandpath%" -r
move /y "%nandpath%\title\00000001\00000002\content\%SMAPP%.app" "%nandpath%\title\00000001\00000002\content\1%SMAPP:~1%.app" >nul
move /Y "%nandpath%\title\00000001\00000002\content\000000Priiloader.app" "%nandpath%\title\00000001\00000002\content\%SMAPP%.app" >nul
::if not exist "%nandpath%"\title\00000001\00000002\data mkdir "%nandpath%"\title\00000001\00000002\data >nul
::move /Y temp\hacks.ini "%nandpath%"\title\00000001\00000002\data\hacks.ini >nul
::move /Y temp\hacks_hash.ini "%nandpath%"\title\00000001\00000002\data\hackshas.ini >nul
if /i "%SNKFLOW%" NEQ "Y" goto:skipSNKpri
echo Adding WiiFlow forwarder dol to Priiloader's installed file.
echo.
if exist temp\Priiloader-Forwader-Loader-BWFA.dol move /y temp\Priiloader-Forwader-Loader-BWFA.dol "%nandpath%"\title\00000001\00000002\data\main.bin>nul
:skipSNKpri
if /i "%SNKFLOW%" EQU "Y" echo WiiFlow Forwarder Channel Installed >>"%nandpath%\nandinfo.txt"
if /i "%uninstallprii%" NEQ "yes" goto:skippriiuninstall
echo.
echo Removing Priiloader from emulated NAND
echo.
move /y "%nandpath%\title\00000001\00000002\content\1%SMAPP:~1%.app" "%nandpath%\title\00000001\00000002\content\%SMAPP%.app" >nul
if exist "%nandpath%"\title\00000001\00000002\data\hacks.ini del "%nandpath%"\title\00000001\00000002\data\hacks.ini >nul
if exist "%nandpath%"\title\00000001\00000002\data\hackshas.ini del "%nandpath%"\title\00000001\00000002\data\hackshas.ini >nul
if exist "%nandpath%"\title\00000001\00000002\data\main.bin del "%nandpath%"\title\00000001\00000002\data\main.bin >nul
echo Priiloader Uninstalled >>"%nandpath%\nandinfo.txt"
:skippriiuninstall
::add extra info to "%nandpath%\nandinfo.txt"
::if not exist "%nandpath%\title\00010001\4e4b324f\content\00000001.app" goto:skip
if /i "%SNKnswitch%" EQU "Y" echo nSwitch Channel Installed >>"%nandpath%\nandinfo.txt"
:::skip
if /i "%SNKOHBC%" EQU "Y" echo Homebrew Channel Installed >>"%nandpath%\nandinfo.txt"
if /i "%SNKPLC%" EQU "Y" echo postLoader Channel Installed >>"%nandpath%\nandinfo.txt"
if /i "%SNKCIOS%" EQU "Y" echo cIOS249 rev14 Installed >>"%nandpath%\nandinfo.txt"
if /i "%SNKS2U%" EQU "Y" echo Switch2Uneek Forwarder Channel Installed >>"%nandpath%\nandinfo.txt"
if /i "%PIC%" EQU "Y" echo Photo Channel Installed >>"%nandpath%\nandinfo.txt"
if /i "%NET%" EQU "Y" echo Internet Channel Installed >>"%nandpath%\nandinfo.txt"
if /i "%WEATHER%" EQU "Y" echo Weather Channel Installed >>"%nandpath%\nandinfo.txt"
if /i "%NEWS%" EQU "Y" echo News Channel Installed >>"%nandpath%\nandinfo.txt"
if /i "%MIIQ%" EQU "Y" echo Mii Channel Installed >>"%nandpath%\nandinfo.txt"
if /i "%Shop%" EQU "Y" echo Shopping Channel Installed >>"%nandpath%\nandinfo.txt"
if /i "%Speak%" EQU "Y" echo Wii Speak Channel Installed >>"%nandpath%\nandinfo.txt"
if /i "%SNEEKSELECT%" NEQ "5" goto:skipthis
if /i "%BCtype%" EQU "BC" goto:skipthis
if /i "%BCtype%" EQU "NONE" goto:skipthis
::Old DML is uninstalled when detected
if /i "%SNKcBC%" NEQ "DML" goto:continue
if /i "%BCtype%" EQU "DML" echo Outdated DML uninstalled from Emulated NAND >>"%nandpath%\nandinfo.txt"
if /i "%BCtype%" EQU "DML" goto:skipthis
:continue
if /i "%BCtype%" EQU "%SNKcBC%" goto:skipthis
echo %BCTYPE% Uninstalled >>"%nandpath%\nandinfo.txt"
:skipthis
if /i "%BCtype%" EQU "NMM" goto:noNMM
if /i "%SNKcBC%" EQU "NMM" echo NMM (No More Memory-Cards) Installed >>"%nandpath%\nandinfo.txt"
:noNMM
if /i "%BCtype%" EQU "DML" goto:noDML
if /i "%SNKcBC%" EQU "DML" echo DML WAD (install to real NAND) >>"%nandpath%\nandinfo.txt"
:noDML
IF not "%addwadfolder%"=="" echo Custom Folder of WADs Installed: "%addwadfolder%" >>"%nandpath%\nandinfo.txt"
if exist temp\Priiloader-Forwader-Loader-BWFA.dol del temp\Priiloader-Forwader-Loader-BWFA.dol>nul
copy /y temp\ModMii_Log.bat temp\ModMii_Log_SNK.bat>nul
::---------------SKIN MODE-------------
if /i "%SkinMode%" EQU "Y" start support\wizapp PB UPDATE 100
::small pause
::@ping 127.0.0.1 -n 2 -w 1000> nul
goto:finishsneekinstall
::----------------------------------SNEEK INSTALL FINISH------------------------------------
:finishsneekinstall
::RESTORE DRIVE SETTINGS
set "DRIVE=%REALDRIVE%"
::if /i "%SNEEKSELECT%" EQU "1" goto:finishsneekinstall3
::clear download queue
set MENUREAL=S
goto:CLEAR
:finishsneekinstall2
set MENU1=1
::queue up files that need to TRULY be saved to %Drive%
if /i "%SNKnswitch%" EQU "Y" (set nSwitch=*) & (set yawm=*)
::if /i "%SNKS2U%" NEQ "Y" (set nSwitch=*) & (set yawm=*)
::if /i "%nswitchFound%" EQU "Yes" (set nSwitch=) & (set yawm=)
if /i "%SNKS2U%" EQU "Y" (set S2U=*) & (set yawm=*)
if /i "%SNKcBC%" EQU "DML" (set DML=*) & (set yawm=*)
if /i "%SNKFLOW%" EQU "Y" set FLOW=*
if /i "%SNKPLC%" EQU "Y" set PL=*
if /i "%AbstinenceWiz%" EQU "Y" (set nSwitch=) & (set yawm=) & (goto:Download)
::only go to DLCOUNT if there are more downloads
if /i "%yawm%" EQU "*" goto:DLCOUNT
if /i "%FLOW%" EQU "*" goto:DLCOUNT
if /i "%PL%" EQU "*" goto:DLCOUNT
:finishsneekinstall3
::check for errors - do not do if ONLY installing sneek
if /i "%SNEEKSELECT%" EQU "1" goto:nocheck
if exist temp\ModMii_Log_SNK.bat del temp\ModMii_Log_SNK.bat>nul
if not exist "temp\ModMii_Log.bat" (set problematicDLs=0) & (goto:nocounting)
support\sfk -spat filter -quiet "temp\ModMii_Log.bat" -rep _\x22__ -write -yes
::count # of problematic downloads
support\sfk filter -quiet "temp\ModMii_Log.bat" -+"[%redtext%]" -write -yes
set problematicDLs=0
for /f %%a in (temp\ModMii_Log.bat) do set /a problematicDLs+=1
:nocounting
if /i "%problematicDLs%" EQU "0" (set snksuccess=Successfully) else (set snksuccess=)
if /i "%problematicDLs%" EQU "0" (set snkfailure=) else (set snkfailure= but with errors)
if /i "%SKINmode%" EQU "Y" goto:noaudio
if /i "%AudioOption%" NEQ "on" goto:noaudio
if /i "%problematicDLs%" EQU "0" (start support\nircmd.exe mediaplay 3000 "%Success.mp3%") else (start support\nircmd.exe mediaplay 3000 "%Fail.mp3%")
:noaudio
:nocheck
if /i "%SKINmode%" EQU "Y" goto:noaudio
if /i "%SNEEKSELECT%" NEQ "1" goto:noaudio
if /i "%AudioOption%" NEQ "on" goto:noaudio
start support\nircmd.exe mediaplay 3000 "%Success.mp3%"
:noaudio
if /i "%cmdlinemode%" EQU "Y" goto:problemlog
set MENUREAL=
cls
echo ModMii v%currentversion%
echo by XFlak
echo.
if /i "%AbstinenceWiz%" NEQ "Y" goto:notabstinence
if /i "%FIRMSTART%" NEQ "o" echo Abstinence Wizard for %FIRMSTART%%REGION%
if /i "%FIRMSTART%" EQU "o" echo Abstinence Wizard for ^<2.2%REGION%
echo.
:notabstinence
::both sneek install and nand build
if /i "%SNEEKSELECT%" NEQ "3" goto:skip
if /i "%neek2o%" EQU "on" goto:neek2o3report
if /i "%SNEEKTYPE%" EQU "SD" echo %snksuccess% installed SNEEK+DI rev%CurrentRev% and built a %SNKVERSION%%SNKREGION% Emulated Nand%snkfailure%
if /i "%SNEEKTYPE%" EQU "UD" echo %snksuccess% installed UNEEK+DI rev%CurrentRev% and built a %SNKVERSION%%SNKREGION% Emulated Nand%snkfailure%
if /i "%SNEEKTYPE%" EQU "S" echo %snksuccess% installed SNEEK rev%CurrentRev% and built a %SNKVERSION%%SNKREGION% Emulated Nand%snkfailure%
if /i "%SNEEKTYPE%" EQU "U" echo %snksuccess% installed UNEEK rev%CurrentRev% and built a %SNKVERSION%%SNKREGION% Emulated Nand%snkfailure%
goto:skip
:neek2o3report
if /i "%SNEEKTYPE%" EQU "SD" echo %snksuccess% installed SNEEK+DI neek2o rev%CurrentRev% and built a %SNKVERSION%%SNKREGION% Emulated Nand%snkfailure%
if /i "%SNEEKTYPE%" EQU "UD" echo %snksuccess% installed UNEEK+DI neek2o rev%CurrentRev% and built a %SNKVERSION%%SNKREGION% Emulated Nand%snkfailure%
if /i "%SNEEKTYPE%" EQU "S" echo %snksuccess% installed SNEEK neek2o rev%CurrentRev% and built a %SNKVERSION%%SNKREGION% Emulated Nand%snkfailure%
if /i "%SNEEKTYPE%" EQU "U" echo %snksuccess% installed UNEEK neek2o rev%CurrentRev% and built a %SNKVERSION%%SNKREGION% Emulated Nand%snkfailure%
:skip
::only install sneek
if /i "%SNEEKSELECT%" NEQ "1" goto:skip
if /i "%neek2o%" EQU "on" goto:neek2o1report
if /i "%SNEEKTYPE%" EQU "SD" echo Successfully installed SNEEK+DI rev%CurrentRev%
if /i "%SNEEKTYPE%" EQU "UD" echo Successfully installed UNEEK+DI rev%CurrentRev%
if /i "%SNEEKTYPE%" EQU "U" echo Successfully installed UNEEK rev%CurrentRev%
if /i "%SNEEKTYPE%" EQU "S" echo Successfully installed SNEEK rev%CurrentRev%
goto:skip
:neek2o1report
if /i "%SNEEKTYPE%" EQU "SD" echo Successfully installed SNEEK+DI neek2o rev%CurrentRev%
if /i "%SNEEKTYPE%" EQU "UD" echo Successfully installed UNEEK+DI neek2o rev%CurrentRev%
if /i "%SNEEKTYPE%" EQU "U" echo Successfully installed UNEEK neek2o rev%CurrentRev%
if /i "%SNEEKTYPE%" EQU "S" echo Successfully installed SNEEK neek2o rev%CurrentRev%
:skip
::only build nand
if /i "%SNEEKSELECT%" NEQ "2" goto:skip
if /i "%SNEEKTYPE%" EQU "SD" echo %snksuccess% Built a %SNKVERSION%%SNKREGION% Emulated Nand%snkfailure%
if /i "%SNEEKTYPE%" EQU "UD" echo %snksuccess% Built a %SNKVERSION%%SNKREGION% Emulated Nand%snkfailure%
if /i "%SNEEKTYPE%" EQU "U" echo %snksuccess% Built a %SNKVERSION%%SNKREGION% Emulated Nand%snkfailure%
if /i "%SNEEKTYPE%" EQU "S" echo %snksuccess% Built a %SNKVERSION%%SNKREGION% Emulated Nand%snkfailure%
:skip
if /i "%SNEEKSELECT%" EQU "5" echo Emulated Nand has been modified %snkfailure%
:problemlog
::list problematic Download
if /i "%SNEEKSELECT%" EQU "1" goto:noproblems
if /i "%problematicDLs%" EQU "0" goto:noproblems
if /i "%cmdlinemode%" NEQ "Y" echo.
if /i "%cmdlinemode%" NEQ "Y" echo The following file(s) failed to download properly:
if /i "%cmdlinemode%" NEQ "Y" call temp\ModMii_Log.bat
support\sfk filter -quiet "temp\ModMii_Log.bat" -rep _[%redtext%]__ -rep _[def]__ -rep _"support\sfk echo "__ -rep _"echo "__ >temp\ModMii_Log_temp.txt
echo ------ >>"%nandpath%\nandinfo.txt"
echo Errors >>"%nandpath%\nandinfo.txt"
echo ------ >>"%nandpath%\nandinfo.txt"
if exist "temp\nandinfo.txt" del "temp\nandinfo.txt">nul
copy "%nandpath%\nandinfo.txt"+"temp\ModMii_Log_temp.txt" "temp\nandinfo.txt">nul
move /y "temp\nandinfo.txt" "%nandpath%\nandinfo.txt">nul
:noproblems
::---------------CMD LINE MODE-------------
if /i "%cmdlinemode%" NEQ "Y" goto:notcmdfinish
if exist support\settings.bak move /y support\settings.bak support\settings.bat>nul
if /i "%problematicDLs%" EQU "0" exit
support\sfk filter -quiet "temp\ModMii_Log.bat" -rep _"support\sfk echo "__ -rep _"echo "__ -rep _"[%redtext%]"__ -rep _"[%yellowtext%]"__ -write -yes
move /y "temp\ModMii_Log.bat" "temp\ModMii_CMD_LINE_Log_Errors.txt">nul
if /i "%SKINmode%" NEQ "Y" start notepad "temp\ModMii_CMD_LINE_Log_Errors.txt"
if /i "%SKINmode%" EQU "Y" start support\wizapp PB CLOSE
exit
:notcmdfinish
echo.
if /i "%SNEEKSELECT%" EQU "5" (echo Press any key to return to the Main Menu.) & (pause>nul) & (goto:MENU)
if /i "%SNEEKSELECT%" NEQ "2" goto:skip
if /i "%SNEEKTYPE%" EQU "U" goto:skipsdmsg
if /i "%SNEEKTYPE%" EQU "UD" goto:skipsdmsg
:skip
echo * Make sure the contents of "%DRIVE%" is saved to your FAT32 SD Card
:skipsdmsg
if /i "%SNEEKTYPE%" EQU "UD" goto:UDRIVEMSG
if /i "%SNEEKTYPE%" NEQ "U" goto:skipUDRIVEMSG
:UDRIVEMSG
echo * Make sure the contents of "%DRIVEU%" is saved to your FAT32 Hard Drive
:skipUDRIVEMSG
echo.
echo CUSTOMIZED NOTES FOR YOUR BUILD OF NEEK:
echo.
echo * When launching any form of SNEEK for the first time, it could take a long time
echo to load the System Menu, but it will be much quicker the second time around.
echo.
echo * If you experience issues make sure your device is formatted as FAT32,
echo MBR (not GPT) and the drive is set to primary (not logical).
echo ModMii's USB-Loader Setup Wizard can help with FAT32 and MBR.
echo.
echo * If you have problems loading your Emulated NAND, copy cert.sys
echo from an original nand dump to your emulated nand's sys folder.
echo.
echo * You can manually override Bootmii to launch neek by renaming
echo your BootmiiNeek folder to SD:\Bootmii and launching "Bootmii"
echo.
echo * You can launch uneek (or uneek+DI) without requiring an SD Card
echo using USB-Loader GX or nswitch. GX also has an option to copy
echo a console's SYSCONF into your current emuNAND (channel) path,
echo so if you add new controllers or a balance board to your NAND,
echo use the copy SYSCONF feature also add it to your EmuNAND.
echo.
echo * SD:\Bootmii is not required to launch neek from USB-Loader GX or nswitch.
echo If you use either of these, you can have both SNEEK and UNEEK at
echo the same time (with or without DI). ModMii will detect SNEEK when
echo installing UNEEK and vice versa and ask if you want to overwrite SD files.
echo For dual boot you will want only SNEEK files on SD and only UNEEK files on USB.
echo The version of NEEK that will GX will load is based on your EmuNAND
echo location in USB-Loader GX's settings: Sneek if on SD, and Uneek if on USB.
echo.
if /i "%SNKnswitch%" NEQ "Y" goto:quickskip
echo * Install the neek2o (nSwitch) WAD\channel then launch the channel in order to
echo start NEEK. You can also use this channel to return to your real NAND.
echo.
:quickskip
if /i "%SNKS2U%" NEQ "Y" goto:quickskip
echo * Access UNEEK/UNEEK+DI by launching switch2uneek from the HBC.
echo Alternatively, can use YAWM ModMii Edition to install the
echo switch2uneek forwarder channel that ModMii saved to your SD card.
echo.
:quickskip
if /i "%SNKcBC%" NEQ "DML" goto:skipDMLmsg
echo * Install the DML WAD using YAWM ModMii Edition to your REAL NAND
echo in order for your Emulated NAND to use DML. DML currently
echo requires SNEEK+DI r157 or higher and neek2o has yet to support DML.
echo.
:skipDMLmsg
if /i "%SNEEKTYPE%" EQU "S" goto:skipDIComments
if /i "%SNEEKTYPE%" EQU "U" goto:skipDIComments
if /i "%neek2o%" EQU "on" goto:skipDiscexWarning
echo * Warning: you have disabled ModMii's neek2o option and have built a DI
echo version of the original neek instead. At least 1 game must be saved to
echo your usb:/games folder in extracted neek format or DI freezes and
echo neek+di will not boot.
echo.
:skipDiscexWarning
echo * To add Games to the Game/DI Menu, you can use ModMii, WiiBackupManager
echo or wit.exe to extract Games in neek format to your FAT32 USB Hard Drive.
if /i "%neek2o%" EQU "on" echo neek2o is also able to load standard game file formats from USB:\WBFS.
echo.
echo * When using SNEEK+DI or UNEEK+DI, you can access the Game/DI Menu
echo by pressing "1" on the Wiimote. To access other settings
echo (including Region Options), you must press "+" from within the DI Menu.
echo.
:skipDIComments
echo * Access neek settings by pressing "2" on the Wiimote while in
echo the emulated system menu.
echo.
echo * Both ModMii and ShowMiiWads can be used to decrypt your real
echo Wii's Bootmii NAND dump (nand.bin) to use as an emulated NAND,
echo and they can add custom channels/WADs to an emulated NAND.
echo ShowMiiWads is available on ModMii Classic's Download Page 5.
echo.
echo * For more SNEEK info, like formatting a USB Hard Drive for SNEEK,
echo you can visit: tiny.cc/SNEEK-DI
echo.
::---------------CMD LINE MODE-------------
if /i "%cmdlinemode%" NEQ "Y" goto:notcmdfinish
if exist support\settings.bak move /y support\settings.bak support\settings.bat>nul
echo After Reviewing Your Tips - Press Any Key to Exit
pause>nul
exit
:notcmdfinish
if /i "%SNEEKSELECT%" EQU "1" goto:miniskip
if /i "%SNEEKSELECT%" EQU "4" goto:miniskip
if exist "%nandpath%\nandinfo.txt" start notepad "%nandpath%\nandinfo.txt"
:miniskip
echo Press any key to return to the Main Menu.
pause>nul
echo.
echo Are you sure^? Make sure you have read or copied these notes^!
echo Press any key again to return to the Main Menu.
pause>nul
goto:MENU
::.........................................FINISH / Verify..................................
:FINISH
if exist temp\DLnames.txt del temp\DLnames.txt>nul
if exist temp\DLgotos.txt del temp\DLgotos.txt>nul
set played=
if /i "%MENU1%" EQU "S" goto:wad2nand
:FINISH2
if /i "%MENUREAL%" EQU "S" goto:finishsneekinstall3
if /i "%DB%" EQU "C" goto:donecounting
if not exist temp\ModMii_Log.bat goto:donecounting
support\sfk -spat filter -quiet "temp\ModMii_Log.bat" -rep _\x22__ -write -yes
::count # of problematic downloads
copy /y "temp\ModMii_Log.bat" "temp\ModMii_Log_Red.bat">nul
support\sfk filter -quiet "temp\ModMii_Log_Red.bat" -+"[%redtext%]" -write -yes
set problematicDLs=0
for /f %%a in (temp\ModMii_Log_Red.bat) do set /a problematicDLs+=1
del "temp\ModMii_Log_Red.bat">nul
:donecounting
::check ACTUAL drive letter
::SD
if /i "%DRIVE:~1,1%" NEQ ":" (set ActualDrive=%cd:~0,2%) else (set ActualDrive=%DRIVE:~0,2%)
if /i "%ActualDrive%" EQU "%cd:~0,2%" (set DrivesNeedingFreeSpace=%ActualDrive%) else (set DrivesNeedingFreeSpace=%ActualDrive% and %cd:~0,2%)
::USB
if /i "%USBCONFIG%" NEQ "USB" goto:skip
if /i "%DRIVEU:~1,1%" NEQ ":" (set ActualDriveU=%cd:~0,2%) else (set ActualDriveU=%DRIVEU:~0,2%)
if /i "%ActualDriveU%" EQU "%cd:~0,2%" goto:skip
if /i "%ActualDriveU%" EQU "%ActualDrive%" goto:skip
set DrivesNeedingFreeSpace=%DrivesNeedingFreeSpace% and %ActualDriveU%
:skip
if /i "%DB%" EQU "C" goto:noaudio
if /i "%SKINmode%" EQU "Y" goto:noaudio
if /i "%AudioOption%" NEQ "on" goto:noaudio
if /i "%played%" EQU "yes" goto:noaudio
if /i "%problematicDLs%" EQU "0" (start support\nircmd.exe mediaplay 3000 "%Success.mp3%") else (start support\nircmd.exe mediaplay 3000 "%Fail.mp3%")
set played=yes
:noaudio
if not exist "%appdata%\Microsoft\Windows\Start Menu\Programs\ModMii\" goto:skip
if not exist "%appdata%\Microsoft\Windows\Start Menu\Programs\ModMii\ModMii.lnk" support\nircmd.exe shortcut "%cd%\ModMii.exe" "~$folder.programs$\ModMii" "ModMii"
if not exist "%appdata%\Microsoft\Windows\Start Menu\Programs\ModMii\ModMii Skin.lnk" support\nircmd.exe shortcut "%cd%\ModMiiSkin.exe" "~$folder.programs$\ModMii" "ModMii Skin"
if not exist "%appdata%\Microsoft\Windows\Start Menu\Programs\ModMii\Uninstall.lnk" support\nircmd.exe shortcut "%cd%\Uninstall.exe" "~$folder.programs$\ModMii" "Uninstall"
if not exist "%appdata%\Microsoft\Windows\Start Menu\Programs\ModMii\Website & Help.lnk" support\nircmd.exe shortcut "https://modmii.github.io" "~$folder.programs$\ModMii" "Website & Help"
if not exist "%appdata%\Microsoft\Windows\Start Menu\Programs\ModMii\Open ModMii Folder.lnk" support\nircmd.exe shortcut "%windir%\explorer.exe" "~$folder.programs$\ModMii" "Open ModMii Folder" "%cd%\"
:skip
::---------------CMD LINE MODE-------------
if /i "%cmdlinemode%" NEQ "Y" goto:notcmdfinish
if exist support\settings.bak move /y support\settings.bak support\settings.bat>nul
if /i "%problematicDLs%" EQU "0" echo * %DLTOTAL% file(s) downloaded succcessfully>>temp\ModMii_Log.bat
if /i "%problematicDLs%" EQU "0" goto:noproblemscmd
echo * %problematicDLs% of %DLTOTAL% file(s) are Invalid, Missing or were Not Updated properly>>temp\ModMii_Log.bat
:noproblemscmd
support\sfk filter -quiet "temp\ModMii_Log.bat" -rep _"support\sfk echo "__ -rep _"echo "__ -rep _"[%redtext%]"__ -rep _"[%yellowtext%]"__ -write -yes
move /y "temp\ModMii_Log.bat" "temp\ModMii_CMD_LINE_Log.txt">nul
if /i "%SKINmode%" EQU "Y" (start support\wizapp PB CLOSE) & (exit)
if /i "%problematicDLs%" NEQ "0" start notepad "temp\ModMii_CMD_LINE_Log.txt"
exit
:notcmdfinish
cls
echo ModMii v%currentversion%
echo by XFlak
echo.
if /i "%DB%" EQU "N" echo DOWNLOAD LOG
if /i "%DB%" EQU "C" echo DOWNLOAD LOG - Custom Log
echo.
::disable md5 stuff
goto:SkipCustomCheck
If not exist Custom.md5 goto:SkipCustomCheck
if /i "%DB%" NEQ "C" goto:SkipCustomCheck
support\fvc -x -v Custom.md5
:SkipCustomCheck
if /i "%DB%" NEQ "N" goto:miniskip
if exist temp\ModMii_Log.bat (call temp\ModMii_Log.bat)
:miniskip
if /i "%DB%" EQU "C" goto:skipcopytoSDmsg
echo.
if /i "%problematicDLs%" NEQ "0" goto:problems
support\sfk echo -spat \x20 \x20[%greentext%]* %DLTOTAL% file\x28s\x29 downloaded succcessfully
if /i "%MENU1%" EQU "W" goto:showme
if /i "%MENU1%" EQU "H" goto:showme
if /i "%MENU1%" EQU "U" goto:showme
if /i "%MENU1%" EQU "SU" goto:showme
if /i "%MENU1%" EQU "RC" goto:showme
if /i "%AbstinenceWiz%" EQU "Y" goto:showme
goto:dontshow
:showme
support\sfk echo -spat \x20 \x20 [%greentext%] You should now follow your custom generated ModMii guide.
:dontshow
goto:noproblems
:problems
support\sfk echo -spat \x20 \x20[%redtext%]* %problematicDLs% of %DLTOTAL% file\x28s\x29 are Invalid, Missing or were Not Updated properly
echo.
echo * Make sure you have free space here: %DrivesNeedingFreeSpace%
echo Check internet connection (try disabling firewall/bypasing proxy if applicable)
support\sfk echo -spat \x20 \x20 [%redtext%] Enter \x22R\x22 to repeat download before proceeding with your ModMii guide.
goto:skipcopytoSDmsg
:noproblems
if /i "%USBCONFIG%" EQU "USB" goto:skipcopytoSDmsg
echo.
echo * Make sure the contents of "%DRIVE%" is saved to your FAT32 SD Card
echo.
echo * Most homebrew (except Bootmii ^& Sneek) also work if copied
echo to a FAT32 Hard Drive and plugged into USB Port0
echo.
echo * If you don't have an SD Card or a Hard Drive you can still load apps
echo (dol\elf files) or install WADs to your Wii via the internet by opening
echo them with ModMii or via drag and drop
:skipcopytoSDmsg
::Warning message for 2x Bannerbomb DLs
if /i "%BB1%" NEQ "*" goto:no2xBB
if /i "%BB2%" NEQ "*" goto:no2xBB
echo.
echo Note: Bannerbomb v1 saved to "private" folder and Bannerbomb v2 saved to
echo "private2" folder. To use Bannerbomb v2 instead of v1 swap the
echo private folder names.
:no2xBB
echo.
if exist "%DRIVE%" echo O = Open File Location "%Drive%"
if /i "%DB%" NEQ "C" goto:miniskip
if exist custom.md5 echo L = Log: View custom.md5 to see which files were checked
:miniskip
if /i "%DLTOTAL%" EQU "0" goto:dltotaliszero
echo.
echo R = Repeat Download
echo S = Save Download Queue
:dltotaliszero
echo.
if /i "%DB%" EQU "N" goto:miniskip
if exist temp\ModMii_Log.bat echo N = Verify NEW Downloads only
:miniskip
if /i "%DB%" EQU "C" goto:miniskip
if exist Custom.md5 echo C = Verify Files against Custom.md5
:miniskip
if exist CUSTOM_COPY_TO_SD goto:tinyskip
if exist CUSTOM_COPY_TO_USB (goto:tinyskip) else (goto:nocustoms)
:tinyskip
echo.
if exist CUSTOM_COPY_TO_SD echo CC = Copy Contents of CUSTOM_COPY_TO_SD to "%Drive%"
if exist CUSTOM_COPY_TO_USB echo CCU = Copy Contents of CUSTOM_COPY_TO_USB to "%DriveU%"
:nocustoms
echo.
echo M = Main Menu
echo E = Exit
echo.
::RESTORE DRIVE SETTINGS for FC only
if /i "%MENU1%" NEQ "FC" goto:skip
set "DRIVETEMP=%DRIVE%"
if not "%REALDRIVE%"=="" set "DRIVE=%REALDRIVE%"
:skip
set FINISH="
set /p FINISH=Enter Selection Here:
set "FINISH=%FINISH:"=%"
if "%FINISH%"=="" goto:badkey
::REVERT DRIVE SETTINGS for FC only
if /i "%MENU1%" EQU "FC" set "DRIVE=%DRIVETEMP%"
if /i "%FINISH%" NEQ "CC" goto:miniskip
if not exist CUSTOM_COPY_TO_SD goto:miniskip
if not exist "%DRIVE%" mkdir "%DRIVE%" >nul
xcopy /y /e "CUSTOM_COPY_TO_SD" "%DRIVE%"
goto:FINISH2
:miniskip
if /i "%FINISH%" NEQ "CCU" goto:miniskip
if not exist CUSTOM_COPY_TO_USB goto:miniskip
if not exist "%DRIVEU%" mkdir "%DRIVEU%" >nul
xcopy /y /e "CUSTOM_COPY_TO_USB" "%DRIVEU%"
goto:FINISH2
:miniskip
if /i "%FINISH%" EQU "M" goto:MENU
if /i "%FINISH%" EQU "E" EXIT
if not exist "%DRIVE%" goto:drivedoesnotexist2
if /i "%FINISH%" EQU "O" explorer "%DRIVE%"
if /i "%FINISH%" EQU "O" goto:Finish2
:drivedoesnotexist2
if /i "%DB%" NEQ "C" goto:nolog
if not exist "custom.md5" goto:nolog
if /i "%FINISH%" EQU "L" start notepad "custom.md5"
if /i "%FINISH%" EQU "L" goto:Finish2
:nolog
if not exist Custom.md5 goto:skip
if /i "%FINISH%" EQU "C" SET DB=C
if /i "%FINISH%" EQU "C" goto:Finish2
:skip
if not exist temp\ModMii_Log.bat goto:skip
if /i "%FINISH%" EQU "N" SET DB=N
if /i "%FINISH%" EQU "N" goto:FINISH2
:skip
if /i "%DLTOTAL%" EQU "0" goto:dltotaliszero2
if /i "%FINISH%" EQU "R" copy /y "temp\DLgotos-copy.txt" "temp\DLgotos.txt">nul
if /i "%FINISH%" EQU "R" goto:DLSettings2
if /i "%FINISH%" EQU "S" (set beforesave=FINISH) & (goto:SaveDownloadQueue)
:dltotaliszero2
:badkey
echo You Have Entered an Incorrect Key
@ping 127.0.0.1 -n 2 -w 1000> nul
goto:FINISH2
::..........................DOWNLOAD SETTINGS................................
:DLSETTINGS
cls
set "REALDRIVE=%DRIVE%"
if /i "%MENU1%" EQU "W" goto:guide
if /i "%MENU1%" EQU "H" goto:guide
if /i "%MENU1%" NEQ "U" goto:miniskip
if /i "%USBCONFIG%" EQU "USB" set "DRIVE=%DRIVEU%"
goto:guide
:miniskip
if /i "%MENU1%" EQU "SU" goto:guide
if /i "%MENU1%" EQU "RC" goto:guide
if /i "%secondrun%" EQU "Y" goto:DLSETTINGS2
if /i "%AbstinenceWiz%" EQU "Y" goto:guide
:DLSETTINGS2
cls
if exist temp\ModMii_Log_SNK.bat goto:donotdeletelog
if exist temp\ModMii_Log.bat del temp\ModMii_Log.bat>nul
:donotdeletelog
SET CURRENTDL=0
:DLSETTINGS3
::clear a bunch of stuff
set name=
set wadname=
set dlname=
set ciosslot=
set ciosversion=
set md5=
set md5alt=
set basewad=none
set basewadb=none
set md5base=
set md5basealt=
set code1=
set code2=
set version=
set md5baseb=
set md5basebalt=
set code1b=
set code2b=
set path1=
set versionb=
set basecios=
set diffpath=
set code2new=
set lastbasemodule=
set category=
set wadnameless=
set patchname=
set slotname=
set slotcode=
set versionname=
set versioncode=
set DEC=
set VERFINAL=
set HEX=
set VER=
set wadfolder=
set verfinal=
set PATCHCODE=
set alreadyexists=
set patch=
set multiplefail=
set AdvancedDownload=
::delete if file is empty (if empty)
>nul findstr "^" "temp\DLgotos.txt" || del "temp\DLgotos.txt"
if not exist temp\DLgotos.txt goto:FINISH
::Loop through the following once for EACH line in *.txt
::for /F "tokens=*" %%A in (temp\DLgotos.txt) do call :processDLnext %%A
::goto:Finish
:processDLnext
set /p CurrentDLNAME= <temp\DLgotos.txt
::set CurrentDLNAME=%*
::if /i "%name:~0,17%" EQU "Advanced Download" set AdvancedDownload=Y
if /i "%CurrentDLNAME:~-4%" EQU ".bat" set AdvancedDownload=Y
if /i "%CurrentDLNAME:~-4%" EQU ".bat" call "Support\subscripts\ClearDB.bat"
if /i "%CurrentDLNAME:~-4%" EQU ".bat" call "%CurrentDLNAME%"
if /i "%CurrentDLNAME:~-4%" EQU ".bat" goto:downloadstart
call "Support\subscripts\DB.bat"
::goto:EOF
::cls
goto:downloadstart
::---------------------------EXPLOITS GUIDES------------------------------
:EXPLOITS
::check if only 1 exploit (since str2hax is always a secondary option, only happens if str2hax explicity selected. Unless on 4.3 then we'll make LetterBomb Secondary
if /i "%FIRMSTART%" EQU "4.3" goto:skip
if /i "%EXPLOIT%" EQU "X" (copy /y "%Drive%\%guidename%"+Support\Guide\str2hax.001 "%Drive%\%guidename%">nul) & (goto:%afterexploit%)
:skip
if /i "%AbstinenceWiz%" EQU "Y" (echo You only need to perform ONE of the these exploits to complete this guide.^<br^>^<br^> >>"%Drive%\%guidename%") & (goto:skipthispart)
::title for multiple exploits
echo ^<font size^=^"5^"^>^<b^>Launch an Exploit^<^/b^>^<^/font^>^<br^>>>"%Drive%\%guidename%"
If /i "%MENU1%" EQU "H" goto:startYawmME
::not hackmii solutions
If /i "%REGION%" NEQ "K" goto:skip
If /i "%FIRMSTART%" NEQ "4.3" goto:startYawmME
::not hackmii solutions and not korean start
:skip
echo You only need to perform ONE of the these exploits to complete this guide.^<br^>^<br^>>>"%Drive%\%guidename%"
if /i "%FIRMSTART%" NEQ "v" echo Note that if you're missing an SD Card or your SD Card reader is broken, you can use the str2hax exploit to install the HBC and skip installing Bootmii and making a nand backup for now until you get an SD Card.^<br^>^<br^>>>"%Drive%\%guidename%"
goto:skipthispart
::korean start and Hackmii solutions
:startYawmME
echo You only need to perform ONE of the these exploits to complete this guide.^<br^>^<br^>Note that if you're missing an SD Card or your SD Card reader is broken, you cannot readily use the str2hax exploit to launch YAWM ModMii Edition.^<br^>^<br^>>>"%Drive%\%guidename%"
:skipthispart
echo ^<div style^>>>"%Drive%\%guidename%"
::For 3.0-4.2 make Bannerbomb primary, str2hax & WilbrandWeb secondary, copy script, and goto after
if /i "%FIRMSTART%" EQU "3.x" (echo ^<button class^=^"tablinks btn btn--large btn--primary^" id^=^"defaultOpen^" style^=^"font-size^: x-large^;^" onclick=^"openTab^('ExploitTab', 'Bannerbomb v1'^)^"^>Bannerbomb v1^<^/button^>>>"%Drive%\%guidename%") & (echo ^<button class^=^"tablinks btn btn--large btn--info^" style^=^"font-size^: x-large^;^" onclick^=^"openTab^('ExploitTab', 'str2hax'^)^"^>str2hax^<^/button^>>>"%Drive%\%guidename%") & (echo ^<button class^=^"tablinks btn btn--large btn--info^" style^=^"font-size^: x-large^;^" onclick^=^"openTab^('ExploitTab', 'Wilbrand'^)^"^>Wilbrand^<^/button^>>>"%Drive%\%guidename%") & (goto:afterbuttons)
if /i "%FIRMSTART%" EQU "4.0" (echo ^<button class^=^"tablinks btn btn--large btn--primary^" id^=^"defaultOpen^" style^=^"font-size^: x-large^;^" onclick=^"openTab^('ExploitTab', 'Bannerbomb v1'^)^"^>Bannerbomb v1^<^/button^>>>"%Drive%\%guidename%") & (echo ^<button class^=^"tablinks btn btn--large btn--info^" style^=^"font-size^: x-large^;^" onclick^=^"openTab^('ExploitTab', 'str2hax'^)^"^>str2hax^<^/button^>>>"%Drive%\%guidename%") & (echo ^<button class^=^"tablinks btn btn--large btn--info^" style^=^"font-size^: x-large^;^" onclick^=^"openTab^('ExploitTab', 'Wilbrand'^)^"^>Wilbrand^<^/button^>>>"%Drive%\%guidename%") & (goto:afterbuttons)
if /i "%FIRMSTART%" EQU "4.1" (echo ^<button class^=^"tablinks btn btn--large btn--primary^" id^=^"defaultOpen^" style^=^"font-size^: x-large^;^" onclick=^"openTab^('ExploitTab', 'Bannerbomb v1'^)^"^>Bannerbomb v1^<^/button^>>>"%Drive%\%guidename%") & (echo ^<button class^=^"tablinks btn btn--large btn--info^" style^=^"font-size^: x-large^;^" onclick^=^"openTab^('ExploitTab', 'str2hax'^)^"^>str2hax^<^/button^>>>"%Drive%\%guidename%") & (echo ^<button class^=^"tablinks btn btn--large btn--info^" style^=^"font-size^: x-large^;^" onclick^=^"openTab^('ExploitTab', 'Wilbrand'^)^"^>Wilbrand^<^/button^>>>"%Drive%\%guidename%") & (goto:afterbuttons)
if /i "%FIRMSTART%" EQU "4.2" (echo ^<button class^=^"tablinks btn btn--large btn--primary^" id^=^"defaultOpen^" style^=^"font-size^: x-large^;^" onclick=^"openTab^('ExploitTab', 'Bannerbomb v2'^)^"^>Bannerbomb v2^<^/button^>>>"%Drive%\%guidename%") & (echo ^<button class^=^"tablinks btn btn--large btn--info^" style^=^"font-size^: x-large^;^" onclick^=^"openTab^('ExploitTab', 'str2hax'^)^"^>str2hax^<^/button^>>>"%Drive%\%guidename%") & (echo ^<button class^=^"tablinks btn btn--large btn--info^" style^=^"font-size^: x-large^;^" onclick^=^"openTab^('ExploitTab', 'Wilbrand'^)^"^>Wilbrand^<^/button^>>>"%Drive%\%guidename%") & (goto:afterbuttons)
::make whatever was selected the primary
if /i "%FIRMSTART%" NEQ "v" goto:skip
if /i "%EXPLOIT%" EQU "?" echo ^<button class^=^"tablinks btn btn--large btn--primary^" id^=^"defaultOpen^" style^=^"font-size^: x-large^;^" onclick=^"openTab^('ExploitTab', 'Browser Exploit'^)^"^>Browser Exploit^<^/button^>>>"%Drive%\%guidename%"
:skip
if /i "%EXPLOIT%" EQU "S" echo ^<button class^=^"tablinks btn btn--large btn--primary^" id^=^"defaultOpen^" style^=^"font-size^: x-large^;^" onclick=^"openTab^('ExploitTab', 'Smash Stack'^)^"^>Smash Stack^<^/button^>>>"%Drive%\%guidename%"
if /i "%EXPLOIT%" NEQ "W" goto:skip
if /i "%Wilbrand%" NEQ "*" echo ^<button class^=^"tablinks btn btn--large btn--primary^" id^=^"defaultOpen^" style^=^"font-size^: x-large^;^" onclick=^"openTab^('ExploitTab', 'LetterBomb'^)^"^>LetterBomb^<^/button^>>>"%Drive%\%guidename%"
if /i "%Wilbrand%" EQU "*" echo ^<button class^=^"tablinks btn btn--large btn--primary^" id^=^"defaultOpen^" style^=^"font-size^: x-large^;^" onclick=^"openTab^('ExploitTab', 'Wilbrand'^)^"^>Wilbrand^<^/button^>>>"%Drive%\%guidename%"
:skip
if /i "%EXPLOIT%" EQU "L" echo ^<button class^=^"tablinks btn btn--large btn--primary^" id^=^"defaultOpen^" style^=^"font-size^: x-large^;^" onclick=^"openTab^('ExploitTab', 'Indiana Pwns'^)^"^>Indiana Pwns^<^/button^>>>"%Drive%\%guidename%"
if /i "%EXPLOIT%" EQU "Y" echo ^<button class^=^"tablinks btn btn--large btn--primary^" id^=^"defaultOpen^" style^=^"font-size^: x-large^;^" onclick=^"openTab^('ExploitTab', 'Yu-Gi Owned'^)^"^>Yu-Gi Owned^<^/button^>>>"%Drive%\%guidename%"
if /i "%EXPLOIT%" EQU "LB" echo ^<button class^=^"tablinks btn btn--large btn--primary^" id^=^"defaultOpen^" style^=^"font-size^: x-large^;^" onclick=^"openTab^('ExploitTab', 'Bathaxx'^)^"^>Bathaxx^<^/button^>>>"%Drive%\%guidename%"
if /i "%EXPLOIT%" EQU "LS" echo ^<button class^=^"tablinks btn btn--large btn--primary^" id^=^"defaultOpen^" style^=^"font-size^: x-large^;^" onclick=^"openTab^('ExploitTab', 'Return of the Jodi'^)^"^>Return of the Jodi^<^/button^>>>"%Drive%\%guidename%"
if /i "%EXPLOIT%" EQU "TOS" echo ^<button class^=^"tablinks btn btn--large btn--primary^" id^=^"defaultOpen^" style^=^"font-size^: x-large^;^" onclick=^"openTab^('ExploitTab', 'Eri HaKawai'^)^"^>Eri HaKawai^<^/button^>>>"%Drive%\%guidename%"
if /i "%EXPLOIT%" EQU "T" echo ^<button class^=^"tablinks btn btn--large btn--primary^" id^=^"defaultOpen^" style^=^"font-size^: x-large^;^" onclick=^"openTab^('ExploitTab', 'Twilight Hack'^)^"^>Twilight Hack^<^/button^>>>"%Drive%\%guidename%"
if /i "%FIRMSTART%" EQU "v" goto:skip
::str2hax primary if "all" exploits selected, unless MAC addy actually entered for Wilbrand, then make that primary cuz that took effort
if /i "%EXPLOIT%" EQU "?" goto:stay
if /i "%EXPLOIT%" EQU "X" (goto:stay) else (goto:skip)
:stay
if /i "%Wilbrand%" NEQ "*" echo ^<button class^=^"tablinks btn btn--large btn--primary^" id^=^"defaultOpen^" style^=^"font-size^: x-large^;^" onclick=^"openTab^('ExploitTab', 'str2hax'^)^"^>str2hax^<^/button^>>>"%Drive%\%guidename%"
if /i "%Wilbrand%" EQU "*" echo ^<button class^=^"tablinks btn btn--large btn--primary^" id^=^"defaultOpen^" style^=^"font-size^: x-large^;^" onclick=^"openTab^('ExploitTab', 'Wilbrand'^)^"^>Wilbrand^<^/button^>>>"%Drive%\%guidename%"
::str2hax secondary if "all" selected but mac addy entered
if /i "%Wilbrand%" EQU "*" echo ^<button class^=^"tablinks btn btn--large btn--info^" style^=^"font-size^: x-large^;^" onclick^=^"openTab^('ExploitTab', 'str2hax'^)^"^>str2hax^<^/button^>>>"%Drive%\%guidename%"
:skip
::str2hax secondary if exploit is NOT "all" OR "X"
if /i "%FIRMSTART%" EQU "v" goto:skip
if /i "%EXPLOIT%" EQU "?" goto:skip
if /i "%EXPLOIT%" NEQ "X" echo ^<button class^=^"tablinks btn btn--large btn--info^" style^=^"font-size^: x-large^;^" onclick^=^"openTab^('ExploitTab', 'str2hax'^)^"^>str2hax^<^/button^>>>"%Drive%\%guidename%"
:skip
::fill in secondaries
if /i "%FIRMSTART%" NEQ "v" goto:skip
if /i "%EXPLOIT%" NEQ "?" echo ^<button class^=^"tablinks btn btn--large btn--info^" style^=^"font-size^: x-large^;^" onclick^=^"openTab^('ExploitTab', 'Browser Exploit'^)^"^>Browser Exploit^<^/button^>>>"%Drive%\%guidename%"
:skip
::wilbrand is never a secondary, if it's secondary Letterbomb used instead
::fill in secondaries
if /i "%FIRMSTART%" NEQ "4.3" goto:skip
if /i "%Wilbrand%" EQU "*" goto:skip
if /i "%EXPLOIT%" NEQ "W" echo ^<button class^=^"tablinks btn btn--large btn--info^" style^=^"font-size^: x-large^;^" onclick^=^"openTab^('ExploitTab', 'LetterBomb'^)^"^>LetterBomb^<^/button^>>>"%Drive%\%guidename%"
:skip
if /i "%EXPLOIT%" EQU "S" goto:skip
If /i "%SMASH%" EQU "*" echo ^<button class^=^"tablinks btn btn--large btn--info^" style^=^"font-size^: x-large^;^" onclick^=^"openTab^('ExploitTab', 'Smash Stack'^)^"^>Smash Stack^<^/button^>>>"%Drive%\%guidename%"
:skip
if /i "%EXPLOIT%" EQU "L" goto:skip
If /i "%PWNS%" EQU "*" echo ^<button class^=^"tablinks btn btn--large btn--info^" style^=^"font-size^: x-large^;^" onclick^=^"openTab^('ExploitTab', 'Indiana Pwns'^)^"^>Indiana Pwns^<^/button^>>>"%Drive%\%guidename%"
:skip
if /i "%EXPLOIT%" EQU "Y" goto:skip
If /i "%YUGI%" EQU "*" echo ^<button class^=^"tablinks btn btn--large btn--info^" style^=^"font-size^: x-large^;^" onclick^=^"openTab^('ExploitTab', 'Yu-Gi Owned'^)^"^>Yu-Gi Owned^<^/button^>>>"%Drive%\%guidename%"
:skip
if /i "%EXPLOIT%" EQU "LB" goto:skip
If /i "%Bathaxx%" EQU "*" echo ^<button class^=^"tablinks btn btn--large btn--info^" style^=^"font-size^: x-large^;^" onclick^=^"openTab^('ExploitTab', 'Bathaxx'^)^"^>Bathaxx^<^/button^>>>"%Drive%\%guidename%"
:skip
if /i "%EXPLOIT%" EQU "LS" goto:skip
If /i "%ROTJ%" EQU "*" echo ^<button class^=^"tablinks btn btn--large btn--info^" style^=^"font-size^: x-large^;^" onclick^=^"openTab^('ExploitTab', 'Return of the Jodi'^)^"^>Return of the Jodi^<^/button^>>>"%Drive%\%guidename%"
:skip
if /i "%EXPLOIT%" EQU "TOS" goto:skip
If /i "%TOS%" EQU "*" echo ^<button class^=^"tablinks btn btn--large btn--info^" style^=^"font-size^: x-large^;^" onclick^=^"openTab^('ExploitTab', 'Eri HaKawai'^)^"^>Eri HaKawai^<^/button^>>>"%Drive%\%guidename%"
:skip
if /i "%EXPLOIT%" EQU "T" goto:skip
If /i "%TWI%" EQU "*" echo ^<button class^=^"tablinks btn btn--large btn--info^" style^=^"font-size^: x-large^;^" onclick^=^"openTab^('ExploitTab', 'Twilight Hack'^)^"^>Twilight Hack^<^/button^>>>"%Drive%\%guidename%"
:skip
:afterbuttons
echo ^<br^>^<br^>>>"%Drive%\%guidename%"
if /i "%FIRMSTART%" EQU "v" goto:skip
echo ^<div id^=^"str2hax^" class^=^"ExploitTab^"^>>>"%Drive%\%guidename%"
copy /y "%Drive%\%guidename%"+Support\Guide\str2hax.001 "%Drive%\%guidename%">nul
echo ^<^/div^>>>"%Drive%\%guidename%"
:skip
if /i "%Aroma%" NEQ "*" goto:skip
echo ^<div id^=^"Browser Exploit^" class^=^"ExploitTab^"^>>>"%Drive%\%guidename%"
copy /y "%Drive%\%guidename%"+Support\Guide\WiiUNandBackup.001 "%Drive%\%guidename%">nul
copy /y "%Drive%\%guidename%"+Support\Guide\Payloader.001 "%Drive%\%guidename%">nul
support\sfk filter "%Drive%\%guidename%" -!"Installing the Payload-Loader will let you access Aroma" -write -yes>nul
support\sfk filter "%Drive%\%guidename%" -rep _"press <kbd>Y</kbd> to set this to your default environment, then "__ -write -yes>nul
support\sfk filter "%Drive%\%guidename%" -rep _" and updates will get blocked in a later step"__ -write -yes>nul
support\sfk filter "%Drive%\%guidename%" -rep _"press <kbd>Y</kbd> to set this to your default autobooting option (or choose your preferred title to autoboot), then "__ -write -yes>nul
support\sfk filter "%Drive%\%guidename%" -cut "<b>Payload-Loader Installer Steps" to "Payload-Loader Steps above------------------------------>" -write -yes>nul
support\sfk echo -spat \x3cb\x3eInstall The Homebrew Channel (HBC) for vWii\x3c/b\x3e\x3cbr\x3e>>"%Drive%\%guidename%"
copy /y "%Drive%\%guidename%"+Support\Guide\CompatInstaller.001 "%Drive%\%guidename%">nul
support\sfk filter "%Drive%\%guidename%" -!"<!--CompatBootAroma-->" -write -yes>nul
echo ^<^/div^>>>"%Drive%\%guidename%"
:skip
if /i "%BB1%" EQU "*" echo ^<div id^=^"Bannerbomb v1^" class^=^"ExploitTab^"^>>>"%Drive%\%guidename%"
if /i "%BB1%" EQU "*" copy /y "%Drive%\%guidename%"+Support\Guide\BBv1.001 "%Drive%\%guidename%">nul
if /i "%BB1%" EQU "*" echo ^<^/div^>>>"%Drive%\%guidename%"
if /i "%BB2%" EQU "*" echo ^<div id^=^"Bannerbomb v2^" class^=^"ExploitTab^"^>>>"%Drive%\%guidename%"
if /i "%BB2%" EQU "*" copy /y "%Drive%\%guidename%"+Support\Guide\BBv2.001 "%Drive%\%guidename%">nul
if /i "%BB2%" EQU "*" echo ^<^/div^>>>"%Drive%\%guidename%"
if /i "%Wilbrand%" EQU "*" echo ^<div id^=^"Wilbrand^" class^=^"ExploitTab^"^>>>"%Drive%\%guidename%"
if /i "%Wilbrand%" EQU "*" copy /y "%Drive%\%guidename%"+Support\Guide\Wilbrand.001 "%Drive%\%guidename%">nul
if /i "%Wilbrand%" EQU "*" echo Note^: this exploit is console specific and has been created by ModMii for the ^<i^>4.3%region%^<^/i^> console with MAC address ^<i^>%macaddress:~0,-4%^*^*^*^*^<^/i^>. If you want to use this exploit on a different 4.3 console, use ModMii to build it again, or construct and download LetterBomb directly through your browser ^<a href^=^"https^:^/^/modmii.github.io^/LetterBomb.html^" target^=^"_blank^"^>here^<^/a^>.^<br^>>>"%Drive%\%guidename%"
if /i "%Wilbrand%" EQU "*" echo ^<^/div^>>>"%Drive%\%guidename%"
if /i "%FIRMSTART%" NEQ "4.3" goto:skip
echo ^<div id^=^"LetterBomb^" class^=^"ExploitTab^"^>>>"%Drive%\%guidename%"
copy /y "%Drive%\%guidename%"+Support\Guide\LetterBomb.001 "%Drive%\%guidename%">nul
if /i "%REGION%" NEQ "E" echo ^<li^>Input your Wii's MAC Address and ^set your System Menu Version to 4.3%REGION%.>>"%Drive%\%guidename%"
if /i "%REGION%" EQU "E" echo ^<li^>Input your Wii's MAC Address and confirm System Menu Version 4.3E is selected.>>"%Drive%\%guidename%"
copy /y "%Drive%\%guidename%"+Support\Guide\LetterBomb2.001 "%Drive%\%guidename%">nul
echo ^<^/div^>>>"%Drive%\%guidename%"
:skip
if /i "%FIRMSTART%" EQU "4.2" copy /y "%Drive%\%guidename%"+Support\Guide\WilbrandWeb.001 "%Drive%\%guidename%">nul
if /i "%FIRMSTART%" EQU "4.1" copy /y "%Drive%\%guidename%"+Support\Guide\WilbrandWeb.001 "%Drive%\%guidename%">nul
if /i "%FIRMSTART%" EQU "4.0" copy /y "%Drive%\%guidename%"+Support\Guide\WilbrandWeb.001 "%Drive%\%guidename%">nul
if /i "%FIRMSTART%" EQU "3.x" copy /y "%Drive%\%guidename%"+Support\Guide\WilbrandWeb.001 "%Drive%\%guidename%">nul
If /i "%SMASH%" EQU "*" echo ^<div id^=^"Smash Stack^" class^=^"ExploitTab^"^>>>"%Drive%\%guidename%"
If /i "%SMASH%" EQU "*" copy /y "%Drive%\%guidename%"+Support\Guide\SmashStack.001 "%Drive%\%guidename%">nul
if /i "%FIRMSTART%" EQU "v" copy /y "%Drive%\%guidename%"+Support\Guide\HBC2vWii.001 "%Drive%\%guidename%">nul
If /i "%SMASH%" EQU "*" echo ^<^/div^>>>"%Drive%\%guidename%"
If /i "%PWNS%" EQU "*" echo ^<div id^=^"Indiana Pwns^" class^=^"ExploitTab^"^>>>"%Drive%\%guidename%"
If /i "%PWNS%" EQU "*" copy /y "%Drive%\%guidename%"+Support\Guide\PWNS.001 "%Drive%\%guidename%">nul
if /i "%FIRMSTART%" EQU "v" copy /y "%Drive%\%guidename%"+Support\Guide\HBC2vWii.001 "%Drive%\%guidename%">nul
If /i "%PWNS%" EQU "*" echo ^<^/div^>>>"%Drive%\%guidename%"
If /i "%YUGI%" EQU "*" echo ^<div id^=^"Yu-Gi Owned^" class^=^"ExploitTab^"^>>>"%Drive%\%guidename%"
If /i "%YUGI%" EQU "*" copy /y "%Drive%\%guidename%"+Support\Guide\YUGI.001 "%Drive%\%guidename%">nul
if /i "%FIRMSTART%" EQU "v" copy /y "%Drive%\%guidename%"+Support\Guide\HBC2vWii.001 "%Drive%\%guidename%">nul
If /i "%YUGI%" EQU "*" echo ^<^/div^>>>"%Drive%\%guidename%"
If /i "%Bathaxx%" EQU "*" echo ^<div id^=^"Bathaxx^" class^=^"ExploitTab^"^>>>"%Drive%\%guidename%"
If /i "%Bathaxx%" EQU "*" copy /y "%Drive%\%guidename%"+Support\Guide\Bathaxx.001 "%Drive%\%guidename%">nul
if /i "%FIRMSTART%" EQU "v" copy /y "%Drive%\%guidename%"+Support\Guide\HBC2vWii.001 "%Drive%\%guidename%">nul
If /i "%Bathaxx%" EQU "*" echo ^<^/div^>>>"%Drive%\%guidename%"
If /i "%ROTJ%" EQU "*" echo ^<div id^=^"Return of the Jodi^" class^=^"ExploitTab^"^>>>"%Drive%\%guidename%"
If /i "%ROTJ%" EQU "*" copy /y "%Drive%\%guidename%"+Support\Guide\ROTJ.001 "%Drive%\%guidename%">nul
if /i "%FIRMSTART%" EQU "v" copy /y "%Drive%\%guidename%"+Support\Guide\HBC2vWii.001 "%Drive%\%guidename%">nul
If /i "%ROTJ%" EQU "*" echo ^<^/div^>>>"%Drive%\%guidename%"
If /i "%TOS%" EQU "*" echo ^<div id^=^"Eri HaKawai^" class^=^"ExploitTab^"^>>>"%Drive%\%guidename%"
If /i "%TOS%" EQU "*" copy /y "%Drive%\%guidename%"+Support\Guide\EriHaKawai.001 "%Drive%\%guidename%">nul
if /i "%FIRMSTART%" EQU "v" copy /y "%Drive%\%guidename%"+Support\Guide\HBC2vWii.001 "%Drive%\%guidename%">nul
If /i "%TOS%" EQU "*" echo ^<^/div^>>>"%Drive%\%guidename%"
If /i "%TWI%" EQU "*" echo ^<div id^=^"Twilight Hack^" class^=^"ExploitTab^"^>>>"%Drive%\%guidename%"
If /i "%TWI%" EQU "*" copy /y "%Drive%\%guidename%"+Support\Guide\Twilight.001 "%Drive%\%guidename%">nul
If /i "%TWI%" EQU "*" echo ^<^/div^>>>"%Drive%\%guidename%"
copy /y "%Drive%\%guidename%"+Support\Guide\side_spoiler_script.001 "%Drive%\%guidename%">nul
goto:%afterexploit%
:guide
set installwads=
:guidestart
set guidename=ModMii_Wizard_Guide.html
set tabname=ModMii Wizard Guide
if /i "%MENU1%" EQU "H" (set guidename=ModMii_HackMii_Solutions_Guide.html) & (set tabname=ModMii HackMii Solutions Guide)
if /i "%MENU1%" EQU "U" (set guidename=ModMii_USBLoader_Setup_Guide.html) & (set tabname=ModMii USB-Loader Setup Guide)
if /i "%MENU1%" EQU "SU" (set guidename=ModMii_sysCheck_Updater_Guide.html) & (set tabname=ModMii SysCheck Updater Guide)
if /i "%MENU1%" EQU "RC" (set guidename=ModMii_Region_Change_Guide.html) & (set tabname=ModMii Region Change Guide)
if /i "%AbstinenceWiz%" EQU "Y" (set guidename=ModMii_Abstinence_Guide.html) & (set tabname=ModMii Abstinence Guide)
if exist "%temp%\format.txt" del "%temp%\format.txt">nul
if exist "%temp%\format2.txt" del "%temp%\format2.txt">nul
if exist "%temp%\Get-Disk.txt" del "%temp%\Get-Disk.txt">nul
SET COUNT7=1
cls
echo Generating Guide, it should pop up in a moment.
echo.
if /i "%SETTINGS%" EQU "G" echo Please read your guide carefully.
if /i "%SETTINGS%" NEQ "G" echo You can start to carefully read your guide while ModMii keeps working.
echo.
echo Your guide is being saved to:
if /i "%Drive:~1,1%" EQU ":" echo "%Drive%\%guidename%"
if /i "%Drive:~1,1%" NEQ ":" echo "%cd%\%Drive%\%guidename%"
if /i "%SETTINGS%" NEQ "G" @ping 127.0.0.1 -n 3 -w 1000> nul
::---------------SKIN MODE-------------
if /i "%SkinMode%" EQU "Y" start support\wizapp PB UPDATE 50
if not exist "%DRIVE%" mkdir "%DRIVE%" >nul
:Count6
if not exist "%Drive%\%guidename%" goto:norename
SET /a COUNT6=%COUNT6%+1
if exist "%DRIVE%"\%guidename:~0,-5%%COUNT6%.html goto:Count6
move /y "%Drive%\%guidename%" "%DRIVE%"\%guidename:~0,-5%%COUNT6%.html >nul
:norename
::HTML HEADER
::so this works instead... why was I bothering with sfk echo before? Answer: it doesn't work with exclamation marks!
::echo ^<html^>
support\sfk echo -spat \x3chtml\x3e >"%Drive%\%guidename%"
support\sfk echo -spat \x3chead\x3e >>"%Drive%\%guidename%"
support\sfk echo -spat \x3ctitle\x3e%tabname%\x3c/title\x3e >>"%Drive%\%guidename%"
support\sfk echo -spat \x3clink rel=\x22icon\x22 type=\x22image/ico\x22 href=\x22https\x3a\x2f\x2fraw.githubusercontent.com/modmii/modmii.github.io/master/Support/icon.ico\x22\x3e\x3c/link\x3e>>"%Drive%\%guidename%"
support\sfk echo -spat \x3cstyle type=\x22text/css\x22\x3e>>"%Drive%\%guidename%"
support\sfk echo -spat body { font-family: Calibri, Arial, Helvetica, \x22Century Gothic\x22, sans-serif; }>>"%Drive%\%guidename%"
echo ol ^> li^:^:marker ^{font^-weight^: bold^;^}>>"%Drive%\%guidename%"
support\sfk echo -spat \x3c/style\x3e>>"%Drive%\%guidename%"
::UTF-8 fix just in case
echo ^<meta http-equiv^=^"Content-Type^" content^=^"text^/html^; charset^=UTF-8^"^> >>"%Drive%\%guidename%"
::so this works... why was I bothering with sfk echo before? Answer: it doesn't work with exclamation marks!
support\sfk echo -spat \x3c/head\x3e >>"%Drive%\%guidename%"
support\sfk echo -spat \x3cbody style=\x22margin:5px 5px 5px 35px;\x22\x3e >>"%Drive%\%guidename%"
support\sfk echo -spat %tabname%\x3cspan style\x3d\x22float\x3aright\x3b\x22\x3ev%currentversion%\x7c%DBversion% Generated on %DATE% - %TIME:~0,-6%\x3c\x2fspan\x3e\x3cbr\x3e\x3cbr\x3e >>"%Drive%\%guidename%"
copy /y "%Drive%\%guidename%"+Support\Guide\sprint-paramstart.001 "%Drive%\%guidename%">nul
if /i "%MENU1%" NEQ "RC" goto:notRC
support\sfk echo -spat \x3cli\x3eDesired System Menu is %FIRM%%REGION%\x3c/li\x3e>>"%Drive%\%guidename%"
if /i "%ThemeSelection%" EQU "R" support\sfk echo -spat \x3cli\x3eInstall Dark Wii Red Theme\x3c/li\x3e>>"%Drive%\%guidename%"
if /i "%ThemeSelection%" EQU "G" support\sfk echo -spat \x3cli\x3eInstall Dark Wii Green Theme\x3c/li\x3e>>"%Drive%\%guidename%"
if /i "%ThemeSelection%" EQU "BL" support\sfk echo -spat \x3cli\x3eInstall Dark Wii Blue Theme\x3c/li\x3e>>"%Drive%\%guidename%"
if /i "%ThemeSelection%" EQU "O" support\sfk echo -spat \x3cli\x3eInstall Dark Wii Orange Theme\x3c/li\x3e>>"%Drive%\%guidename%"
goto:skipusb
:notRC
::------Abstinence parameters---------------
if /i "%AbstinenceWiz%" NEQ "Y" goto:notAbstinenceWiz
if /i "%FIRMSTART%" NEQ "o" support\sfk echo -spat \x3cli\x3eCurrent System Menu is %FIRMSTART%%REGION%\x3c/li\x3e>>"%Drive%\%guidename%"
if /i "%FIRMSTART%" EQU "o" support\sfk echo -spat \x3cli\x3eCurrent System Menu is less than 2.2%REGION%\x3c/li\x3e>>"%Drive%\%guidename%"
support\sfk echo -spat \x3cli\x3eBuild %SNKVERSION%%SNKREGION% Emulated NAND\x3c/li\x3e>>"%Drive%\%guidename%"
if /i "%SNEEKTYPE%" EQU "SD" support\sfk echo -spat \x3cli\x3eBuild SNEEK+DI Rev%CurrentRev%\x3c/li\x3e>>"%Drive%\%guidename%"
if /i "%SNEEKTYPE%" EQU "UD" support\sfk echo -spat \x3cli\x3eBuild UNEEK+DI Rev%CurrentRev%\x3c/li\x3e>>"%Drive%\%guidename%"
if /i "%SNEEKTYPE%" EQU "U" support\sfk echo -spat \x3cli\x3eBuild UNEEK Rev%CurrentRev%\x3c/li\x3e>>"%Drive%\%guidename%"
if /i "%SNEEKTYPE%" EQU "S" support\sfk echo -spat \x3cli\x3eBuild SNEEK Rev%CurrentRev%\x3c/li\x3e>>"%Drive%\%guidename%"
if /i "%neek2o%" EQU "on" support\sfk echo -spat \x3cli\x3eneek2o Enabled (can be changed in options)\x3c/li\x3e>>"%Drive%\%guidename%"
if /i "%neek2o%" NEQ "on" support\sfk echo -spat \x3cli\x3eneek2o Disabled (can be changed in options)\x3c/li\x3e>>"%Drive%\%guidename%"
if /i "%SNEEKTYPE:~0,1%" EQU "U" goto:miniskip
if /i "%SSD%" EQU "on" support\sfk echo -spat \x3cli\x3eSNEEK and SNEEK+DI SD Access Enabled (can be changed in options)\x3c/li\x3e>>"%Drive%\%guidename%"
if /i "%SSD%" NEQ "on" support\sfk echo -spat \x3cli\x3eSNEEK and SNEEK+DI SD Access Disabled (can be changed in options)\x3c/li\x3e>>"%Drive%\%guidename%"
:miniskip
if /i "%SNKSERIAL%" NEQ "current" support\sfk echo -spat \x3cli\x3esetting.txt will be created using this serial number: %SNKSERIAL%\x3c/li\x3e>>"%Drive%\%guidename%"
if /i "%SNKSERIAL%" EQU "current" support\sfk echo -spat \x3cli\x3eExisting setting.txt will be kept\x3c/li\x3e>>"%Drive%\%guidename%"
if /i "%SNKPRI%" EQU "Y" support\sfk echo -spat \x3cli\x3eInstall Priiloader to Emulated NAND\x3c/li\x3e>>"%Drive%\%guidename%"
if /i "%SNKCIOS%" EQU "Y" support\sfk echo -spat \x3cli\x3eInstall cIOS249 rev14 to Emulated NAND\x3c/li\x3e>>"%Drive%\%guidename%"
if /i "%SNKOHBC%" EQU "Y" support\sfk echo -spat \x3cli\x3eInstall Homebrew Channel to Emulated NAND\x3c/li\x3e>>"%Drive%\%guidename%"
if /i "%SNKPLC%" EQU "Y" support\sfk echo -spat \x3cli\x3eInstall postLoader Channel to Emulated NAND\x3c/li\x3e>>"%Drive%\%guidename%"
if /i "%SNKFLOW%" EQU "Y" support\sfk echo -spat \x3cli\x3eInstall WiiFlow Channel to Emulated NAND\x3c/li\x3e>>"%Drive%\%guidename%"
if /i "%ThemeSelection%" EQU "R" support\sfk echo -spat \x3cli\x3eInstall Dark Wii Red Theme to Emulated NAND\x3c/li\x3e>>"%Drive%\%guidename%"
if /i "%ThemeSelection%" EQU "G" support\sfk echo -spat \x3cli\x3eInstall Dark Wii Green Theme to Emulated NAND\x3c/li\x3e>>"%Drive%\%guidename%"
if /i "%ThemeSelection%" EQU "BL" support\sfk echo -spat \x3cli\x3eInstall Dark Wii Blue Theme to Emulated NAND\x3c/li\x3e>>"%Drive%\%guidename%"
if /i "%ThemeSelection%" EQU "O" support\sfk echo -spat \x3cli\x3eInstall Dark Wii Orange Theme to Emulated NAND\x3c/li\x3e>>"%Drive%\%guidename%"
if /i "%PIC%" EQU "Y" support\sfk echo -spat \x3cli\x3eInstall Photo Channel to Emulated NAND\x3c/li\x3e>>"%Drive%\%guidename%"
if /i "%NET%" EQU "Y" support\sfk echo -spat \x3cli\x3eInstall Internet Channel to Emulated NAND\x3c/li\x3e>>"%Drive%\%guidename%"
if /i "%WEATHER%" EQU "Y" support\sfk echo -spat \x3cli\x3eInstall Weather Channel to Emulated NAND\x3c/li\x3e>>"%Drive%\%guidename%"
if /i "%NEWS%" EQU "Y" support\sfk echo -spat \x3cli\x3eInstall News Channel to Emulated NAND\x3c/li\x3e>>"%Drive%\%guidename%"
if /i "%MIIQ%" EQU "Y" support\sfk echo -spat \x3cli\x3eInstall Mii Channel to Emulated NAND\x3c/li\x3e>>"%Drive%\%guidename%"
if /i "%Shop%" EQU "Y" support\sfk echo -spat \x3cli\x3eInstall Shopping Channel to Emulated NAND\x3c/li\x3e>>"%Drive%\%guidename%"
if /i "%Speak%" EQU "Y" support\sfk echo -spat \x3cli\x3eInstall Wii Speak Channel to Emulated NAND\x3c/li\x3e>>"%Drive%\%guidename%"
if not "%addwadfolder%"=="" support\sfk echo -spat \x3cli\x3eInstall wads to Emulated NAND from custom folder: %addwadfolder%\x3c/li\x3e>>"%Drive%\%guidename%"
goto:skipusb
:notAbstinenceWiz
if /i "%MENU1%" EQU "U" (set USBGUIDE=Y) & (goto:usbparam)
if /i "%FIRMSTART%" NEQ "U" goto:notWiiu
support\sfk echo -spat \x3cli\x3eInstall and\or update all recommended WiiU softmods\x3c/li\x3e>>"%Drive%\%guidename%"
goto:skipusb
:notWiiu
if /i "%ctype%" NEQ "WiiU" goto:notWiiu2
if /i "%FIRMSTART%" EQU "U2" support\sfk echo -spat \x3cli\x3eInstall and\or update all recommended WiiU and vWii softmods\x3c/li\x3e>>"%Drive%\%guidename%"
if /i "%FIRMSTART%" EQU "v" support\sfk echo -spat \x3cli\x3eInstall and\or update all recommended vWii softmods\x3c/li\x3e>>"%Drive%\%guidename%"
if /i "%ThemeSelection%" EQU "R" support\sfk echo -spat \x3cli\x3eInstall Dark Wii Red Theme\x3c/li\x3e>>"%Drive%\%guidename%"
if /i "%ThemeSelection%" EQU "G" support\sfk echo -spat \x3cli\x3eInstall Dark Wii Green Theme\x3c/li\x3e>>"%Drive%\%guidename%"
if /i "%ThemeSelection%" EQU "BL" support\sfk echo -spat \x3cli\x3eInstall Dark Wii Blue Theme\x3c/li\x3e>>"%Drive%\%guidename%"
if /i "%ThemeSelection%" EQU "O" support\sfk echo -spat \x3cli\x3eInstall Dark Wii Orange Theme\x3c/li\x3e>>"%Drive%\%guidename%"
if /i "%ThemeSelection%" EQU "D" support\sfk echo -spat \x3cli\x3eInstall Default Theme\x3c/li\x3e>>"%Drive%\%guidename%"
support\sfk echo -spat \x3cli\x3eSystem Menu Region is %REGION%\x3c/li\x3e>>"%Drive%\%guidename%"
goto:ExploitList
:notWiiu2
if /i "%VIRGIN%" EQU "Y" support\sfk echo -spat \x3cli\x3eInstall and\or update all recommended Wii softmods\x3c/li\x3e>>"%Drive%\%guidename%"
if /i "%VIRGIN%" EQU "N" support\sfk echo -spat \x3cli\x3eInstall and\or update only user-selected Wii softmods\x3c/li\x3e>>"%Drive%\%guidename%"
if /i "%MENU1%" EQU "SU" goto:miniskip
if /i "%FIRMSTART%" NEQ "o" support\sfk echo -spat \x3cli\x3eCurrent System Menu is %FIRMSTART%%REGION%\x3c/li\x3e>>"%Drive%\%guidename%"
if /i "%FIRMSTART%" EQU "o" support\sfk echo -spat \x3cli\x3eCurrent System Menu is less than 2.2%REGION%\x3c/li\x3e>>"%Drive%\%guidename%"
:ExploitList
if /i "%EXPLOIT%" EQU "BE" support\sfk echo -spat \x3cli\x3eBrowser Exploit selected\x3c/li\x3e>>"%Drive%\%guidename%"
if /i "%EXPLOIT%" EQU "S" support\sfk echo -spat \x3cli\x3eSuper Smash Brothers Brawl exploit selected\x3c/li\x3e>>"%Drive%\%guidename%"
if /i "%EXPLOIT%" EQU "L" support\sfk echo -spat \x3cli\x3eLEGO Indiana Jones exploit selected\x3c/li\x3e>>"%Drive%\%guidename%"
if /i "%EXPLOIT%" EQU "Y" support\sfk echo -spat \x3cli\x3eYu-Gi-Oh! 5D's exploit selected\x3c/li\x3e>>"%Drive%\%guidename%"
if /i "%EXPLOIT%" EQU "LB" support\sfk echo -spat \x3cli\x3eLEGO Batman exploit selected\x3c/li\x3e>>"%Drive%\%guidename%"
if /i "%EXPLOIT%" EQU "LS" support\sfk echo -spat \x3cli\x3eLEGO Star Wars exploit selected\x3c/li\x3e>>"%Drive%\%guidename%"
if /i "%EXPLOIT%" EQU "TOS" support\sfk echo -spat \x3cli\x3eTales of Symphonia Dawn of the New World exploit selected\x3c/li\x3e>>"%Drive%\%guidename%"
if /i "%EXPLOIT%" EQU "T" support\sfk echo -spat \x3cli\x3eTwilight Princess: The Legend of Zelda exploit selected\x3c/li\x3e>>"%Drive%\%guidename%"
if /i "%EXPLOIT%" EQU "W" support\sfk echo -spat \x3cli\x3eWilbrand\LetterBomb exploit selected\x3c/li\x3e>>"%Drive%\%guidename%"
if /i "%EXPLOIT%" EQU "X" support\sfk echo -spat \x3cli\x3estr2hax exploit selected\x3c/li\x3e>>"%Drive%\%guidename%"
if /i "%EXPLOIT%" EQU "?" support\sfk echo -spat \x3cli\x3eDownload all available exploits\x3c/li\x3e>>"%Drive%\%guidename%"
if /i "%ctype%" EQU "WiiU" goto:usbparam
if /i "%MENU1%" EQU "H" goto:skipusb
support\sfk echo -spat \x3cli\x3eDesired System Menu is %FIRM%%REGION%\x3c/li\x3e>>"%Drive%\%guidename%"
:miniskip
if /i "%VIRGIN%" EQU "Y" goto:skipvirginstandard
if /i "%HM%" EQU "*" support\sfk echo -spat \x3cli\x3eInstall and\or update the Homebrew Channel and Bootmii\x3c/li\x3e>>"%Drive%\%guidename%"
if /i "%RECCIOS%" NEQ "Y" goto:smallskip
if /i "%hermesOPTION%" EQU "on" (support\sfk echo -spat \x3cli\x3eInstall recommended cIOSs and cMIOS\x3c/li\x3e>>"%Drive%\%guidename%") else (support\sfk echo -spat \x3cli\x3eInstall recommended cIOSs\x3c/li\x3e>>"%Drive%\%guidename%")
:smallskip
if /i "%PRIQ%" EQU "Y" support\sfk echo -spat \x3cli\x3eInstall and\or update Priiloader\x3c/li\x3e>>"%Drive%\%guidename%"
:skipvirginstandard
if /i "%ThemeSelection%" EQU "R" support\sfk echo -spat \x3cli\x3eInstall Dark Wii Red Theme\x3c/li\x3e>>"%Drive%\%guidename%"
if /i "%ThemeSelection%" EQU "G" support\sfk echo -spat \x3cli\x3eInstall Dark Wii Green Theme\x3c/li\x3e>>"%Drive%\%guidename%"
if /i "%ThemeSelection%" EQU "BL" support\sfk echo -spat \x3cli\x3eInstall Dark Wii Blue Theme\x3c/li\x3e>>"%Drive%\%guidename%"
if /i "%ThemeSelection%" EQU "O" support\sfk echo -spat \x3cli\x3eInstall Dark Wii Orange Theme\x3c/li\x3e>>"%Drive%\%guidename%"
if /i "%ThemeSelection%" EQU "D" support\sfk echo -spat \x3cli\x3eInstall Default Wii Theme\x3c/li\x3e>>"%Drive%\%guidename%"
if /i "%ACTIVEIOS%" NEQ "ON" goto:skipupdatelog
if /i "%UpdatesIOSQ%" EQU "N" goto:skipupdatelog
support\sfk echo -spat \x3cli\x3eUpdate active IOSs (can be disabled in options)\x3c/li\x3e>>"%Drive%\%guidename%"
goto:skip
:skipupdatelog
support\sfk echo -spat \x3cli\x3eDo not update active IOSs (can be enabled in options)\x3c/li\x3e>>"%Drive%\%guidename%"
:skip
if /i "%RECCIOS%" EQU "Y" goto:semiskip
if /i "%VIRGIN%" EQU "N" goto:tinyskip
if /i "%CMIOSOPTION%" EQU "on" support\sfk echo -spat \x3cli\x3eInstall a cMIOS (can be disabled in options)\x3c/li\x3e>>"%Drive%\%guidename%"
:semiskip
if /i "%CMIOSOPTION%" EQU "off" support\sfk echo -spat \x3cli\x3eDo not install a cMIOS (can be enabled in options)\x3c/li\x3e>>"%Drive%\%guidename%"
:tinyskip
if /i "%hermesOPTION%" EQU "off" support\sfk echo -spat \x3cli\x3eDo not install Hermes cIOSs (can be enabled in options)\x3c/li\x3e>>"%Drive%\%guidename%"
if /i "%hermesOPTION%" EQU "on" support\sfk echo -spat \x3cli\x3eInstall Hermes cIOSs (can be disabled in options)\x3c/li\x3e>>"%Drive%\%guidename%"
if /i "%MENU1%" EQU "SU" goto:skip
if /i "%FWDOPTION%" EQU "off" support\sfk echo -spat \x3cli\x3eDo not install a USB-Loader Forwarder Channel (can be enabled in options)\x3c/li\x3e>>"%Drive%\%guidename%"
if /i "%FWDOPTION%" EQU "on" support\sfk echo -spat \x3cli\x3eInstall a USB-Loader Forwarder Channel (can be disabled in options)\x3c/li\x3e>>"%Drive%\%guidename%"
:skip
if /i "%ExtraProtectionOPTION%" EQU "off" support\sfk echo -spat \x3cli\x3eDo not install Extra Brick Protection (patched IOS60 in unused system menu IOS slots) (can be enabled in options)\x3c/li\x3e>>"%Drive%\%guidename%"
if /i "%ExtraProtectionOPTION%" EQU "on" support\sfk echo -spat \x3cli\x3eInstall Extra Brick Protection (patched IOS60 in unused system menu IOS slots) (can be disabled in options)\x3c/li\x3e>>"%Drive%\%guidename%"
if /i "%PIC%" EQU "Y" support\sfk echo -spat \x3cli\x3eInstall Photo Channel\x3c/li\x3e>>"%Drive%\%guidename%"
if /i "%NET%" EQU "Y" support\sfk echo -spat \x3cli\x3eInstall Internet Channel\x3c/li\x3e>>"%Drive%\%guidename%"
if /i "%WEATHER%" EQU "Y" support\sfk echo -spat \x3cli\x3eInstall Weather Channel\x3c/li\x3e>>"%Drive%\%guidename%"
if /i "%NEWS%" EQU "Y" support\sfk echo -spat \x3cli\x3eInstall News Channel\x3c/li\x3e>>"%Drive%\%guidename%"
if /i "%MIIQ%" EQU "Y" support\sfk echo -spat \x3cli\x3eInstall Mii Channel\x3c/li\x3e>>"%Drive%\%guidename%"
if /i "%Shop%" EQU "Y" support\sfk echo -spat \x3cli\x3eInstall Shopping Channel (and IOS56)\x3c/li\x3e>>"%Drive%\%guidename%"
if /i "%Speak%" EQU "Y" support\sfk echo -spat \x3cli\x3eInstall Wii Speak Channel\x3c/li\x3e>>"%Drive%\%guidename%"
::---------
if /i "%USBGUIDE%" NEQ "Y" goto:skipusb
:usbparam
if /i "%LOADER%" EQU "CFG" support\sfk echo -spat \x3cli\x3eDownload Configurable USB-Loader\x3c/li\x3e>>"%Drive%\%guidename%"
if /i "%LOADER%" EQU "GX" support\sfk echo -spat \x3cli\x3eDownload USB-Loader GX\x3c/li\x3e>>"%Drive%\%guidename%"
if /i "%LOADER%" EQU "FLOW" support\sfk echo -spat \x3cli\x3eDownload WiiFlow\x3c/li\x3e>>"%Drive%\%guidename%"
if /i "%LOADER%" EQU "ALL" support\sfk echo -spat \x3cli\x3eDownload USB-Loader GX, Configurable USB-Loader and WiiFlow\x3c/li\x3e>>"%Drive%\%guidename%"
if /i "%USBCONFIG%" EQU "USB" support\sfk echo -spat \x3cli\x3eUSB-Loader Settings and config files saved to USB Hard Drive\x3c/li\x3e>>"%Drive%\%guidename%"
if /i "%USBCONFIG%" EQU "SD" support\sfk echo -spat \x3cli\x3eUSB-Loader Settings and config files saved to SD Card\x3c/li\x3e>>"%Drive%\%guidename%"
:skipusb
If /i "%MENU1%" NEQ "SU" goto:skip
if /i "%PRI%" NEQ "*" goto:skip
if /i "%UpdatePri%" EQU "Y" support\sfk echo -spat \x3cli\x3eUpdate existing Priiloader installation\x3c/li\x3e>>"%Drive%\%guidename%"
:skip
If /i "%MENU1%" EQU "SU" support\sfk echo -spat \x3cli\x3eGuide generated based on ModMii's analysis of the syscheck report contained in the spoiler below\x3c/li\x3e>>"%Drive%\%guidename%"
::closing tag and linebreak: </ul><br>
support\sfk echo -spat \x3c/ul\x3e\x3cbr\x3e>>"%Drive%\%guidename%"
::add syscheck spoiler for syscheck updater wizards
If /i "%MENU1%" NEQ "SU" goto:SkipSyscheckSpoiler
support\sfk echo -spat "<div style><div class=\x22spoilerfont\x22 style=\x22text-align:left;\x22><input value=\x22 Click to see Supplied SysCheck Report \x22 style=\x22margin: 0px; padding: 0px; font-size: x-large;\x22 onclick=\x22if (this.parentNode.parentNode.getElementsByTagName('div')[1].getElementsByTagName('div')[0].style.display \x21= '') { this.parentNode.parentNode.getElementsByTagName('div')[1].getElementsByTagName('div')[0].style.display = ''; this.innerText = ''; this.value = ' Click to hide Supplied SysCheck Report '; } else { this.parentNode.parentNode.getElementsByTagName('div')[1].getElementsByTagName('div')[0].style.display = 'none'; this.innerText = ''; this.value = ' Click to see Supplied SysCheck Report '; }\x22 type=\x22button\x22></div><div class=\x22alt2\x22 style=\x22border: 0px inset ; margin: 0px; padding: 6px;\x22><div style=\x22display: none;\x22>">>"%Drive%\%guidename%"
::copy /y "%Drive%\%guidename%"+"%sysCheckName%" "%Drive%\%guidename%">nul
echo ^<ul style^=align^=^"left^" type^=^"disc^"^>>>"%Drive%\%guidename%"
::Loop through the syscheck line by line to insert bullets and breaks
if exist temp\syscheck.csv del temp\syscheck.csv>nul
copy /y "%sysCheckName%" temp\syscheck.csv>nul
for /F "tokens=*" %%A in (temp\syscheck.csv) do call :sysprocess %%A
goto:nextstep
:sysprocess
::this is repeated for each line of the txt.file
::"%*" (no quotes) is the variable for each line as it passes through the loop
set sysline=%*
if "%sysline%"=="" echo ^<br^>^<br^>>>"%Drive%\%guidename%"
::hide Console ID
if /i "%sysline:~0,11%" EQU "Console ID:" set "sysline=%sysline:~0,17%****"
if /i "%sysline:~0,26%" EQU "Identifiant de la console:" set "sysline=%sysline:~0,32%****"
if /i "%sysline:~0,11%" EQU "ID console:" set "sysline=%sysline:~0,17%****"
if /i "%sysline:~0,14%" EQU "ID de consola:" set "sysline=%sysline:~0,20%****"
if /i "%sysline:~0,12%" EQU "Konsolen-ID:" set "sysline=%sysline:~0,18%****"
if not "%sysline%"=="" echo ^<li^>%sysline%>>"%Drive%\%guidename%"
goto:EOF
:nextstep
If /i "%MENU1%" EQU "SU" echo ^<^/ul^>^<^/div^>^<^/div^>^<^/div^>^<br^>>>"%Drive%\%guidename%"
:SkipSyscheckSpoiler
:Important notes title and bullet opening tag
echo ^<font size^=^"6^"^>^<li^>^<a name^=^"Notes^"^>Important Notes^<^/a^>^<^/li^>^<^/font^>^<br^>^<ul style^=align^=^"left^" type^=^"disc^"^>>>"%Drive%\%guidename%"
if /i "%AbstinenceWiz%" NEQ "Y" goto:skipAWnotes
copy /y "%Drive%\%guidename%"+Support\Guide\AbstinenceNotes.001 "%Drive%\%guidename%">nul
if /i "%FIRMSTART%" EQU "4.3" goto:skipAWnotes
if /i "%FIRMSTART%" EQU "4.2" goto:skipAWnotes
support\sfk echo -spat \x3cli\x3eSince you are on an older firmware, this guide will direct you to install IOS53. This is an original\unmodified IOS, but if you are not comfortable installing this, then you can update to the latest firmware from the Wii Settings menu and try this wizard again - or just accept the very minimal risk and softmod your wii using ModMii's main wizard instead!\x3c/li\x3e>>"%Drive%\%guidename%"
:skipAWnotes
if /i "%MENU1%" EQU "RC" copy /y "%Drive%\%guidename%"+Support\Guide\RegionChangenotes.001 "%Drive%\%guidename%">nul
if /i "%FIRMSTART%" NEQ "U" goto:skip
support\sfk echo -spat \x3cli\x3eThis guide requires an internet connection on your console and an SD Card.\x3c/li\x3e>>"%Drive%\%guidename%"
support\sfk echo -spat \x3cul style=align=\x22left\x22 type=\x22square\x22\x3e \x3cli\x3eA USB Hard Drive can later be used to store game backups, Virtual Console injects, etc, but not to store WiiU homebrew applications which are required to set everything up.\x3c/li\x3e \x3c/ul\x3e>>"%Drive%\%guidename%"
copy /y "%Drive%\%guidename%"+Support\Guide\WiiUnotes.001 "%Drive%\%guidename%">nul
goto:skipnotes
:skip
if /i "%FIRMSTART%" NEQ "U2" goto:skip
support\sfk echo -spat \x3cli\x3eThis guide requires an internet connection on your console and an SD Card. Note that without internet you can still softmod vWii Only using an SD Card and one of six supported Wii games^\discs with exploits.\x3c/li\x3e>>"%Drive%\%guidename%"
support\sfk echo -spat \x3cul style=align=\x22left\x22 type=\x22square\x22\x3e \x3cli\x3eA USB Hard Drive can later be used to store game backups, Virtual Console injects, etc, but not to store WiiU homebrew applications which are required to set everything up.\x3c/li\x3e \x3c/ul\x3e>>"%Drive%\%guidename%"
copy /y "%Drive%\%guidename%"+Support\Guide\WiiUnotes.001 "%Drive%\%guidename%">nul
goto:skipnotes
:skip
if /i "%FIRMSTART%" NEQ "v" goto:skip
if /i "%MENU1%" NEQ "SU" goto:notVsu
support\sfk echo -spat \x3cli\x3eThis guide does not require an internet connection on your vWii.\x3c/li\x3e>>"%Drive%\%guidename%"
echo ^<li^>Make sure the files ModMii downloaded are on your SD Card, and your SD Card is inserted in the console.^<^/li^>>>"%Drive%\%guidename%"
echo ^<ul style^=align^=^"left^" type^=^"square^"^>>>"%Drive%\%guidename%"
echo ^<li^>If you don't have an SD Card, you can still complete this guide using a Hard Drive formatted as FAT32 in place of an SD Card.^<^/li^>>>"%Drive%\%guidename%"
echo ^<ul style^=align^=^"left^" type^=^"square^"^>>>"%Drive%\%guidename%"
echo ^<li^>Use ModMii's USB-Loader Setup feature if you need help formatting your HDD as FAT32.^<^/li^>>>"%Drive%\%guidename%"
echo ^<li^>Make sure to always plug your hard drive into USB port0 - the one on the back furthest from the edge of the WiiU.^<^/li^>>>"%Drive%\%guidename%"
echo ^<^/ul^>>>"%Drive%\%guidename%"
echo ^<li^>If you don't have an SD Card or Hard Drive, you can launch Wii^\vWii apps and install WADs over the internet to your Wii from your PC. Just open apps ^(boot.dol\elf files^) or WADs with ModMii.^<^/li^>>>"%Drive%\%guidename%"
echo ^<ul style^=align^=^"left^" type^=^"square^"^>>>"%Drive%\%guidename%"
echo ^<li^>Note that some apps may not work properly or support all features if they require an SD or HDD.^<^/li^>>>"%Drive%\%guidename%"
echo ^<^/ul^>>>"%Drive%\%guidename%"
echo ^<^/ul^>>>"%Drive%\%guidename%"
goto:smallskip
:notVsu
If /i "%EXPLOIT%" EQU "BE" support\sfk echo -spat \x3cli\x3eThis guide requires an internet connection on your console and an SD Card. Note that without internet you can still softmod vWii Only using an SD Card and one of six supported Wii games^\discs with exploits.\x3c/li\x3e>>"%Drive%\%guidename%"
If /i "%EXPLOIT%" NEQ "BE" support\sfk echo -spat \x3cli\x3eThis guide requires an SD Card and either an internet connection on your console or one of six supported Wii games^\discs with exploits.\x3c/li\x3e>>"%Drive%\%guidename%"
:smallskip
copy /y "%Drive%\%guidename%"+Support\Guide\WiiUnotes.001 "%Drive%\%guidename%">nul
goto:skipnotes
:skip
If /i "%EXPLOIT%" NEQ "X" support\sfk echo -spat \x3cli\x3eThis guide does not require an internet connection on your Wii.\x3c/li\x3e>>"%Drive%\%guidename%"
If /i "%EXPLOIT%" EQU "X" support\sfk echo -spat \x3cli\x3eThis guide only requires an internet connection on your Wii for the str2hax step.\x3c/li\x3e>>"%Drive%\%guidename%"
If /i "%MENU1%" EQU "SU" goto:notes4NoFAT32_SD
If /i "%MENU1%" EQU "RC" (goto:notes4NoFAT32_SD) else (goto:skip)
:notes4NoFAT32_SD
echo ^<li^>Make sure the files ModMii downloaded are on your SD Card, and your SD Card is inserted in the console.^<^/li^>>>"%Drive%\%guidename%"
echo ^<ul style^=align^=^"left^" type^=^"square^"^>>>"%Drive%\%guidename%"
echo ^<li^>If you don't have an SD Card, you can still accomplish ^<u^>most^<^/u^> Wii softmods using a Hard Drive formatted as FAT32 in place of an SD Card ^(SD is notably required for Bootmii and NAND backup^).^<^/li^>>>"%Drive%\%guidename%"
echo ^<ul style^=align^=^"left^" type^=^"square^"^>>>"%Drive%\%guidename%"
echo ^<li^>Use ModMii's USB-Loader Setup feature if you need help formatting your HDD as FAT32.^<^/li^>>>"%Drive%\%guidename%"
echo ^<li^>Make sure to always plug your hard drive into USB port0 - the one nearest the edge of the Wii.^<^/li^>>>"%Drive%\%guidename%"
echo ^<^/ul^>>>"%Drive%\%guidename%"
::RC should not be done over WiFi
If /i "%MENU1%" NEQ "RC" echo ^<li^>If you don't have an SD Card or Hard Drive, you can launch Wii^\vWii apps and install WADs over the internet to your Wii from your PC. Just open apps ^(boot.dol\elf files^) or WADs with ModMii.^<^/li^>>>"%Drive%\%guidename%"
If /i "%MENU1%" NEQ "RC" echo ^<ul style^=align^=^"left^" type^=^"square^"^>>>"%Drive%\%guidename%"
If /i "%MENU1%" NEQ "RC" echo ^<li^>Note that some apps may not work properly or support all features if they require an SD or HDD.^<^/li^>>>"%Drive%\%guidename%"
If /i "%MENU1%" NEQ "RC" echo ^<^/ul^>>>"%Drive%\%guidename%"
echo ^<^/ul^>>>"%Drive%\%guidename%"
:skip
if /i "%AbstinenceWiz%" EQU "Y" goto:skipnotes
if /i "%MENU1%" NEQ "U" copy /y "%Drive%\%guidename%"+Support\Guide\softmodnotes.001 "%Drive%\%guidename%">nul
if /i "%MENU1%" EQU "H" support\sfk filter "%Drive%\%guidename%" -rep _"An SD Card is recommended, but not necessary*"_"An SD Card is required in order to complete this guide UNLESS you already have a working Homebrew Channel or forwarder channel; i.e. SD needed if launching yawmME with an exploit."_ -write -yes>nul
:skipnotes
::----USB-Loader Notes----
if /i "%USBGUIDE%" NEQ "Y" goto:skipall
if /i "%MENU1%" EQU "W" goto:skip
if /i "%cIOS249[56]-d2x-v10-beta52%" EQU "*" goto:skip
if /i "%cIOS249[56]-d2x-vWii%" EQU "*" goto:skip
support\sfk echo -spat \x3cli\x3ecIOS(s) required to use USB-Loaders, if you are missing cIOS(s) run the ModMii Wizard function to softmod your Wii^\vWii before setting up your USB-Loader and/or external Hard-Drive. If softmodding a Wii Mini follow ^<a href^=^"https^:^/^/wii.hacks.guide^" target^=^"_blank^"^>wii.hacks.guide^<^/a^>.\x3c/li\x3e>>"%Drive%\%guidename%"
:skip
support\sfk echo -spat \x3cli\x3eAfter completing this guide, you can launch your USB-Loader via the Homebrew Channel or a USB-Loader forwarder channel.\x3c/li\x3e>>"%Drive%\%guidename%"
copy /y "%Drive%\%guidename%"+Support\Guide\usbloadernotes.001 "%Drive%\%guidename%">nul
::already commented in WiiU guide
if /i "%FIRMSTART%" EQU "U2" support\sfk filter "%Drive%\%guidename%" -rep _"<!--WiiUredundant--"__ -rep _"--WiiUredundant-->"__ -write -yes>nul
if /i "%FIRMSTART%" EQU "v" support\sfk filter "%Drive%\%guidename%" -rep _"<!--WiiUredundant--"__ -rep _"--WiiUredundant-->"__ -rep _"<!--WiiUredundant2--"__ -rep _"--WiiUredundant2-->"__ -write -yes>nul
if /i "%ctype%" EQU "Wii" support\sfk filter "%Drive%\%guidename%" -rep _"<!--WiiUredundant--"__ -rep _"--WiiUredundant-->"__ -rep _"<!--WiiOnly--"__ -rep _"--WiiOnly-->"__ -write -yes>nul
:skipall
::-------------------------
::common important note, end bullet tag and line break
echo ^<li^>Detailed guides covering a broad range of related topics available at the ^<a href^=^"https://sites.google.com/site/completesg^" target^=^"_blank^"^>Complete Softmod Guide^<^/a^>, ^<a href^=^"https://wii.hacks.guide^" target^=^"_blank^"^>wii.hacks.guide^</a^> and ^<a href^=^"https://wiiu.hacks.guide^" target^=^"_blank^"^>wiiu.hacks.guide^</a^>^</li^> >>"%Drive%\%guidename%"
echo ^<li^>If you come across a term or abbreviation that you're not familar with you can reference the ^<a href^=^"https://wiibrew.org/wiki/Glossary^" target^=^"_blank^"^>WiiBrew Glossary^<^/a^> or the ^<a href^=^"https://sites.google.com/site/completesg/other-stuff/wii-glossary^" target^=^"_blank^"^>CSG Glossary^</a^>^</li^> >>"%Drive%\%guidename%"
echo ^<li^>If you need help, have questions, or just want to chat visit the ^<a href^=^"https://gbatemp.net/threads/modmii-for-windows-official-support-topic.207126/^" target=^"_blank^"^>official ModMii page on gbatemp^</a^> or the ^<a href^=^"https://discord.gg/cMnBRACQwQ^" target^=^"_blank^"^>ModMii Discord Server^</a^> and ask away^!^</li^>^</ul^>^<br^> >>"%Drive%\%guidename%"
::Start of AbstinenceWizGUIDE steps listings. This must be here for the guide
if /i "%AbstinenceWiz%" NEQ "Y" goto:NotAbstinenceWiz
support\sfk echo -spat \x3cfont size=\x226\x22\x3e\x3cli\x3e\x3ca name=\x22Hacking\x22\x3eLaunch %neekname% Without Hacking Your Wii\x3c/a\x3e\x3c/li\x3e\x3c/font\x3e\x3cbr\x3e\x3col\x3e>>"%Drive%\%guidename%"
goto:SDformat
::goto:CasperPickUp
:NotAbstinenceWiz
if /i "%MENU1%" EQU "U" goto:USBGUIDESTEP1
::Start of hacking steps listings ordered list. This must be here for all guides (AW and U done above)
if /i "%MENU1%" NEQ "W" goto:skip
if /i "%FIRMSTART%" EQU "U2" echo ^<font size^=^"6^"^>^<li^>^<a name^=^"Hacking^"^>Hacking your WiiU^<^/a^>^<^/li^>^<^/font^>^<br^>^<ol^>>>"%Drive%\%guidename%"
if /i "%FIRMSTART%" EQU "U2" copy /y "%Drive%\%guidename%"+Support\Guide\LegacyCFW.001 "%Drive%\%guidename%">nul
copy /y "%Drive%\%guidename%"+Support\Guide\side_spoiler_script.001 "%Drive%\%guidename%">nul
support\sfk filter -quiet "%Drive%\%guidename%" -rep _"////////document.getElementById"_"document.getElementById"_ -write -yes
if /i "%FIRMSTART%" EQU "U2" goto:skip
if /i "%FIRMSTART%" EQU "U" echo ^<font size^=^"6^"^>^<li^>^<a name^=^"Hacking^"^>Hacking your WiiU^<^/a^>^<^/li^>^<^/font^>^<br^>^<ol^>>>"%Drive%\%guidename%"
if /i "%FIRMSTART%" EQU "U" copy /y "%Drive%\%guidename%"+Support\Guide\LegacyCFW.001 "%Drive%\%guidename%">nul
copy /y "%Drive%\%guidename%"+Support\Guide\side_spoiler_script.001 "%Drive%\%guidename%">nul
support\sfk filter -quiet "%Drive%\%guidename%" -rep _"////////document.getElementById"_"document.getElementById"_ -write -yes
if /i "%FIRMSTART%" EQU "U" goto:skip
if /i "%FIRMSTART%" EQU "v" echo ^<font size^=^"6^"^>^<li^>^<a name^=^"Hacking^"^>Hacking your vWii^<^/a^>^<^/li^>^<^/font^>^<br^>^<ol^>>>"%Drive%\%guidename%"
if /i "%FIRMSTART%" EQU "v" goto:skip
echo ^<font size^=^"6^"^>^<li^>^<a name^=^"Hacking^"^>Hacking your Wii^<^/a^>^<^/li^>^<^/font^>^<br^>^<ol^>>>"%Drive%\%guidename%"
:skip
if /i "%MENU1%" NEQ "SU" goto:skip
if /i "%FIRMSTART%" NEQ "v" echo ^<font size^=^"6^"^>^<li^>^<a name^=^"Hacking^"^>Updating your Wii Hacks^<^/a^>^<^/li^>^<^/font^>^<br^>^<ol^>>>"%Drive%\%guidename%"
if /i "%FIRMSTART%" EQU "v" echo ^<font size^=^"6^"^>^<li^>^<a name^=^"Hacking^"^>Updating your vWii Hacks^<^/a^>^<^/li^>^<^/font^>^<br^>^<ol^>>>"%Drive%\%guidename%"
if /i "%FIRMSTART%" EQU "v" goto:PRIIGUIDEvWii
:skip
if /i "%MENU1%" EQU "H" echo ^<font size^=^"6^"^>^<li^>^<a name^=^"Hacking^"^>Resolving HackMii Installer Issues^<^/a^>^<^/li^>^<^/font^>^<br^>^<ol^>>>"%Drive%\%guidename%"
if /i "%MENU1%" EQU "RC" echo ^<font size^=^"6^"^>^<li^>^<a name^=^"Hacking^"^>Region Changing your Wii^<^/a^>^<^/li^>^<^/font^>^<br^>^<ol^>>>"%Drive%\%guidename%"
if /i "%MENU1%" EQU "RC" copy /y "%Drive%\%guidename%"+Support\Guide\NANDBACKUP.001 "%Drive%\%guidename%">nul
::since yawmME can retain priloader, we can always install Priiloader first (unless custom SM version is detected)
if /i "%MENU1%" EQU "RC" goto:PRIIGUIDE
::if /i "%MENU1%" EQU "RC" goto:installwads
::SD format stuff here...
:SDformat
if /i "%MENU1%" EQU "SU" goto:notfat32
support\sfk echo -spat \x3cfont size="5"\x3e\x3cli\x3eSet SD Card Partition Style to MBR (if applicable)\x3c/li\x3e\x3c/font\x3e\x3cbr\x3e>>"%Drive%\%guidename%"
::---------------------Connected Drive Information Spoiler (1 of 2: SD)------------------------
echo powershell "Invoke-Command {Get-Disk | Format-Table -AutoSize -Wrap}" ^>Get-Disk.txt>"%temp%\Get-Disk.bat"
echo powershell "Invoke-Command {Get-CimInstance -ClassName Win32_LogicalDisk | Where-Object {$PSItem.FileSystem -ne $null} | Select-Object DeviceID,Filesystem}" ^>format2.txt>>"%temp%\Get-Disk.bat"
echo exit>>"%temp%\Get-Disk.bat"
::vbs to run script invisibly, "nircmd.exe exec hide" can run hidden but not hide+wait
echo Set ws = WScript.CreateObject("WScript.Shell")>"%temp%\Get-Disk.vbs"
echo cmd = "%temp%\Get-Disk.bat">>"%temp%\Get-Disk.vbs"
echo ret = ws.Run(cmd, 0, True)>>"%temp%\Get-Disk.vbs"
echo Set ws = Nothing>>"%temp%\Get-Disk.vbs"
if exist "%temp%\Get-Disk.txt" del "%temp%\Get-Disk.txt">nul
if exist "%temp%\format2.txt" del "%temp%\format2.txt">nul
if not exist "%temp%\Get-Disk.bat" goto:SkipUSBSpoiler
if not exist "%temp%\Get-Disk.vbs" goto:SkipUSBSpoiler
set "ModMiiDir=%cd%"
::echo.
::echo If you get a Windows Script Host error referring to Get-Disk.vbs, you can safely ignore it ^& click OK to continue.
::echo.
cd /d "%temp%"
@ping 127.0.0.1 -n 1 -w 1000> nul
start /wait Get-Disk.vbs
cd /d "%ModMiiDir%"
::::if both missing likely an error occured, so skip next time
::if exist "%temp%\format2.txt" goto:skip
::if not exist "%temp%\Get-Disk.txt" (set SkipGetDisk=Y) & (echo set SkipGetDisk=Y>>Support\settings.bat)
:::skip
if exist "%temp%\Get-Disk.txt" support\sfk filter -quiet "%temp%\Get-Disk.txt" -ls!- -ls!0 -no-empty-lines -no-blank-lines -write -yes
::if exist "%temp%\format.txt" cmd /a /c type "%temp%\format.txt">"%temp%\format2.txt"
support\sfk filter -quiet "%temp%\format2.txt" -ls!- -ls!"%homedrive%" -no-empty-lines -no-blank-lines -write -yes
::check if file is null
::for %%R in (temp\Get-Disk.txt) do if %%~zR lss 1 (echo no removable drives) else (echo yes removable drives)
:::USBSpoiler
::check Removable Disk filesystem format types, if no : in output, then no removable devices connected
if not exist "%temp%\format2.txt" goto:SkipUSBSpoiler
findStr /I ":" "%temp%\format2.txt" >nul
IF ERRORLEVEL 1 goto:SkipUSBSpoiler
echo Partition style\format information for devices that were connected when this guide was created has been saved to the spoiler below.^<br^>^<br^>>>"%Drive%\%guidename%"
::add spoiler for Connected Drive Information if any connected
support\sfk echo -spat "<div style><div class=\x22spoilerfont\x22 style=\x22text-align:left;\x22><input value=\x22 Click to see Connected Drive Information \x22 style=\x22margin: 0px; padding: 0px; font-size: x-large;\x22 onclick=\x22if (this.parentNode.parentNode.getElementsByTagName('div')[1].getElementsByTagName('div')[0].style.display \x21= '') { this.parentNode.parentNode.getElementsByTagName('div')[1].getElementsByTagName('div')[0].style.display = ''; this.innerText = ''; this.value = ' Click to hide Connected Drive Information '; } else { this.parentNode.parentNode.getElementsByTagName('div')[1].getElementsByTagName('div')[0].style.display = 'none'; this.innerText = ''; this.value = ' Click to see Connected Drive Information '; }\x22 type=\x22button\x22></div><div class=\x22alt2\x22 style=\x22border: 0px inset ; margin: 0px; padding: 6px;\x22><div style=\x22display: none;\x22>">>"%Drive%\%guidename%"
echo ^<pre^>>>"%Drive%\%guidename%"
copy /y "%Drive%\%guidename%"+"%temp%\format2.txt" "%Drive%\%guidename%">nul
::line count, count lines, if only 1 then don't show
set /a TotalDrives=0
if not exist "%temp%\Get-Disk.txt" goto:here
cd /d "%temp%"
for /f %%a in (Get-Disk.txt) do set /a TotalDrives+=1
cd /d "%ModMiiDir%"
::echo %TotalDrives%
::if /i %TotalDrives% GTR 1 echo ^<^/pre^>Partition Style below should be MBR by default for almost all SD Cards. If for some reason yours is not, convert it to MBR using the directions from ModMii's USB-Loader Setup guide.^<br^>^<pre^>>>"%Drive%\%guidename%"
if /i %TotalDrives% GTR 1 echo ^<br^>>>"%Drive%\%guidename%"
if /i %TotalDrives% GTR 1 copy /y "%Drive%\%guidename%"+"%temp%\Get-Disk.txt" "%Drive%\%guidename%">nul
:here
::copy /y "%Drive%\%guidename%"+"%temp%\format2.txt" "%Drive%\%guidename%">nul
echo ^<^/pre^>^<^/div^>^<^/div^>^<^/div^>>>"%Drive%\%guidename%"
:SkipUSBSpoiler
copy /y "%Drive%\%guidename%"+Support\Guide\MBRsd.001 "%Drive%\%guidename%">nul
if /i "%PCSAVE%" EQU "Portable" goto:portableF32
if /i "%PCSAVE%" NEQ "Auto" goto:skip
if /i "%Homedrive%" NEQ "%cd:~0,2%" goto:portableF32
:skip
support\sfk filter -quiet -spat "%Drive%\%guidename%" -rep _"shortcuts on your Start Menu or Desktop."_"shortcuts on your Start Menu or Desktop or directly from %cd:_=\x5f%\Program Files"_ -write -yes
if /i "%Homedrive%" NEQ "%cd:~0,2%" support\sfk filter -quiet "%Drive%\%guidename%" -rep _"<!--formatwarning"__ -rep _"formatwarning-->"__ -write -yes
goto:noportableF32
:portableF32
support\sfk filter -quiet -spat "%Drive%\%guidename%" -rep _"shortcuts on your Start Menu or Desktop."_"%DRIVE:_=\x5f%\Program Files"_ -write -yes
support\sfk filter -quiet "%Drive%\%guidename%" -rep _"<!--formatwarning"__ -rep _"formatwarning-->"__ -write -yes
:noportableF32
support\sfk echo -spat \x3cfont size="5"\x3e\x3cli\x3eFormat the SD Card as FAT32 (if applicable)\x3c/li\x3e\x3c/font\x3e\x3cbr\x3e>>"%Drive%\%guidename%"
if /i "%FIRMSTART%" EQU "U2" goto:skip
if /i "%FIRMSTART%" EQU "U" goto:skip
if /i "%FIRMSTART%" EQU "v" goto:skip
echo ^<i^>Note: If you don't have an SD Card, you can still accomplish ^<u^>most^<^/u^> things using a Hard Drive formatted as FAT32 in place of an SD Card ^(SD is notably required for Bootmii and NAND backup^). Make sure to always plug your hard drive into USB port0 - the one nearest the edge of the Wii. If you don't have an SD Card or Hard Drive,>>"%Drive%\%guidename%"
echo you can launch apps and install WADs over the internet to your Wii from your PC. Just open apps (boot.dol^\elf files) or WADs with ModMii. Note that some apps may not work properly or support all features if they require an SD or HDD and you should never attempt to change the region of a console via the internet.^</i^>^<br^>>>"%Drive%\%guidename%"
:skip
copy /y "%Drive%\%guidename%"+Support\Guide\FAT32_SD.001 "%Drive%\%guidename%">nul
if /i "%PCSAVE%" EQU "Portable" goto:portableF32
if /i "%PCSAVE%" NEQ "Auto" goto:skip
if /i "%Homedrive%" NEQ "%cd:~0,2%" goto:portableF32
:skip
support\sfk filter -quiet -spat "%Drive%\%guidename%" -rep _"shortcuts on your Start Menu or Desktop."_"shortcuts on your Start Menu or Desktop or directly from %cd:_=\x5f%\Program Files"_ -write -yes
if /i "%Homedrive%" NEQ "%cd:~0,2%" support\sfk filter -quiet "%Drive%\%guidename%" -rep _"<!--formatwarning"__ -rep _"formatwarning-->"__ -write -yes
goto:noportableF32
:portableF32
if /i "%USBCONFIG%" EQU "USB" support\sfk filter -quiet -spat "%Drive%\%guidename%" -rep _"shortcuts on your Start Menu or Desktop."_"%DRIVEU:_=\x5f%\Program Files"_ -write -yes
if /i "%USBCONFIG%" NEQ "USB" support\sfk filter -quiet -spat "%Drive%\%guidename%" -rep _"shortcuts on your Start Menu or Desktop."_"%DRIVE:_=\x5f%\Program Files"_ -write -yes
support\sfk filter -quiet "%Drive%\%guidename%" -rep _"<!--formatwarning"__ -rep _"formatwarning-->"__ -write -yes
:noportableF32
if /i "%Drive:~1,1%" EQU ":" (set "fulldrive=%Drive%") else (set "fulldrive=%cd%\%Drive%")
echo ^<li^>The files should be saved here: "%fulldrive%" ^<br^>^<br^> >>"%Drive%\%guidename%"
if /i "%FIRMSTART:~0,1%" EQU "U" copy /y "%Drive%\%guidename%"+Support\Guide\FolderStructure_WiiU.001 "%Drive%\%guidename%">nul
if /i "%FIRMSTART%" EQU "U2" support\sfk filter -spat -quiet "%Drive%\%guidename%" -!"\x3c!--vWii folder structure" -!"vWii folder structure--\x3e" -write -yes
if /i "%FIRMSTART:~0,1%" NEQ "U" copy /y "%Drive%\%guidename%"+Support\Guide\FolderStructure_Wii.001 "%Drive%\%guidename%">nul
echo ^<li^>When the files are finished copying to the SD card, you should safely remove your SD Card from your computer and reinsert it into your console and proceed to the next step.^<^/ul^>^<^/ol^>^<br^> >>"%Drive%\%guidename%"
:notfat32
::::::::::::::::::
if /i "%FIRMSTART%" NEQ "v" goto:skipvWiiStuff
::Browser Exploit Only
if /i "%EXPLOIT%" NEQ "BE" goto:ManyVwiiExploits
support\sfk echo -spat \x3cfont size="5"\x3e\x3cli\x3eMake a NAND backup\x3c/li\x3e\x3c/font\x3e\x3cbr\x3e>>"%Drive%\%guidename%"
copy /y "%Drive%\%guidename%"+Support\Guide\WiiUNandBackup.001 "%Drive%\%guidename%">nul
support\sfk echo -spat \x3cfont size="5"\x3e\x3cli\x3eInstall The Homebrew Channel (HBC) for vWii\x3c/li\x3e\x3c/font\x3e\x3cbr\x3e>>"%Drive%\%guidename%"
copy /y "%Drive%\%guidename%"+Support\Guide\Payloader.001 "%Drive%\%guidename%">nul
support\sfk filter "%Drive%\%guidename%" -!"Installing the Payload-Loader will let you access Aroma" -write -yes>nul
::support\sfk filter "%Drive%\%guidename%" -rep _"press <kbd>Y</kbd> to set this to your default environment, then "__ -write -yes>nul
::support\sfk filter "%Drive%\%guidename%" -rep _"press <kbd>Y</kbd> to set this to your default autobooting option (or choose your preferred title to autoboot), then "__ -write -yes>nul
support\sfk filter "%Drive%\%guidename%" -cut "<b>Payload-Loader Installer Steps" to "Payload-Loader Steps above------------------------------>" -write -yes>nul
support\sfk echo -spat \x3cb\x3evWii Compat Installer to install the HBC\x3c/b\x3e\x3cbr\x3e>>"%Drive%\%guidename%"
copy /y "%Drive%\%guidename%"+Support\Guide\CompatInstaller.001 "%Drive%\%guidename%">nul
support\sfk filter "%Drive%\%guidename%" -!"<!--CompatBootAroma-->" -write -yes>nul
goto:PRIIGUIDEvWii
:ManyVwiiExploits
support\sfk echo -spat \x3cfont size=\x225\x22\x3e\x3cli\x3eInstall The Homebrew Channel (HBC) ^& Make a NAND backup\x3c/li\x3e\x3c/font\x3e\x3cbr\x3e>>"%Drive%\%guidename%"
::copy /y "%Drive%\%guidename%"+Support\Guide\HBC.001 "%Drive%\%guidename%">nul
::support\sfk filter "%Drive%\%guidename%" -rep _" and Bootmii"__ -rep _"If this Wii was previously modified"_"If this vWii was previously modified"_ -rep _", Bootmii boot2"__ -rep _"all or some of these"_"both of these"_ -write -yes>nul
::support\sfk filter "%Drive%\%guidename%" -!"If your Wii has Bootmii installed as boot2" -write -rep _" or Bootmii"__ -rep _"first time modding your Wii"_"first time modding your vWii"_ -write -yes>nul
set afterexploit=PRIIGUIDEvWii
goto:exploits
:skipvWiiStuff
if /i "%FIRMSTART%" EQU "U2" goto:WiiUSteps
if /i "%FIRMSTART%" EQU "U" goto:WiiUSteps
goto:noWiiUSteps
:WiiUSteps
support\sfk echo -spat \x3cfont size="5"\x3e\x3cli\x3eMake a NAND backup\x3c/li\x3e\x3c/font\x3e\x3cbr\x3e>>"%Drive%\%guidename%"
copy /y "%Drive%\%guidename%"+Support\Guide\WiiUNandBackup.001 "%Drive%\%guidename%">nul
copy /y "%Drive%\%guidename%"+Support\Guide\Payloader.001 "%Drive%\%guidename%">nul
copy /y "%Drive%\%guidename%"+Support\Guide\AutobootingAroma.001 "%Drive%\%guidename%">nul
copy /y "%Drive%\%guidename%"+Support\Guide\Pretendo.001 "%Drive%\%guidename%">nul
if /i "%FIRMSTART%" EQU "U" goto:skip
::U2 vWii stuff
::--------End of hacking steps listings (and line break). This must be here for the hacking guide------------
support\sfk echo -spat \x3c/ol\x3e\x3cbr\x3e>>"%Drive%\%guidename%"
echo ^<font size^=^"6^"^>^<li^>^<a name^=^"Hacking^"^>Hacking your vWii^<^/a^>^<^/li^>^<^/font^>^<br^>^<ol^>>>"%Drive%\%guidename%"
support\sfk echo -spat \x3cfont size="5"\x3e\x3cli\x3eInstall The Homebrew Channel (HBC) for vWii\x3c/li\x3e\x3c/font\x3e\x3cbr\x3e>>"%Drive%\%guidename%"
copy /y "%Drive%\%guidename%"+Support\Guide\CompatInstaller.001 "%Drive%\%guidename%">nul
:PRIIGUIDEvWii
if /i "%PRI%" NEQ "*" goto:installwads
if /i "%customSMfix%" EQU "yes" goto:installwads
:PRIIGUIDEvWii2
copy /y "%Drive%\%guidename%"+Support\Guide\Priiloader.001 "%Drive%\%guidename%">nul
support\sfk filter "%Drive%\%guidename%" -rep _"Priiloader loads just before the Wii System Menu"_"Priiloader loads just before the vWii System Menu"_ -rep _"the reset button or "__ -rep _"while powering on the console"_"while launching the vWii system menu"_ -write -yes>nul
support\sfk filter "%Drive%\%guidename%" -!"if using the front console buttons you will" -!"so the console turns off completely by default" -rep _", USB Keyboard, or the Power/Reset*"_", or USB Keyboard."_ -write -yes>nul
support\sfk filter "%Drive%\%guidename%" -rep _"<!--PriiVwii--"__ -rep _"--PriiVwii-->"__ -write -yes>nul
if /i "%customSMfix%" EQU "yes" (goto:SKIPWAD) else (goto:installwads)
:skip
::--------End of hacking steps listings (and line break). This must be here for the hacking guide------------
support\sfk echo -spat \x3c/ol\x3e\x3cbr\x3e>>"%Drive%\%guidename%"
echo ^<font size^=^"6^"^>^<li^>^<a name^=^"Done^"^>After Modding your WiiU^<^/a^>^<^/li^>^<^/font^>^<br^>^<ul style^=^align^=^"left^" type^=^"disc^"^>>>"%Drive%\%guidename%"
copy /y "%Drive%\%guidename%"+Support\Guide\AfterModdingU.001 "%Drive%\%guidename%">nul
echo ^<^/ul^>^<br^>>>"%Drive%\%guidename%"
goto:supportxflak
:noWiiUSteps
::for Abstinence Wizard
if /i "%AbstinenceWiz%" EQU "Y" goto:CasperPickUp
::-----------------------------------------virgin Korean non-4.3 Wiis-----------------------------------
If /i "%MENU1%" NEQ "H" goto:nothackmiisolutions
::launch yawmME using an exploit
copy /y "%Drive%\%guidename%"+Support\Guide\HMSolutions.001 "%Drive%\%guidename%">nul
set afterexploit=continueHMsolutions
goto:exploits
:continueHMsolutions
support\sfk echo -spat \x3cbr\x3eThis will launch YAWM ModMii Edition.\x3cbr\x3e\x3cbr\x3e>>"%Drive%\%guidename%"
copy /y "%Drive%\%guidename%"+Support\Guide\WADHMheader.001 "%Drive%\%guidename%">nul
goto:wadlist
:HMafterwadlist
copy /y "%Drive%\%guidename%"+Support\Guide\HMSolutions2.001 "%Drive%\%guidename%">nul
copy /y "%Drive%\%guidename%"+Support\Guide\HBC2.001 "%Drive%\%guidename%">nul
::remove direction to run HM Solutions wizard, since this is that wizard
support\sfk filter -spat "%Drive%\%guidename%" -!"---RemoveFromHackMiiSolutions---" -write -yes>nul
::--------End of hacking steps listings (and line break). This must be here for the hacking guide------------
support\sfk echo -spat \x3c/ol\x3e\x3cbr\x3e>>"%Drive%\%guidename%"
GOTO:supportxflak
:nothackmiisolutions
::-----------------------------------------virgin Korean non-4.3 Wiis-----------------------------------
If /i "%VIRGIN%" NEQ "Y" goto:nonkorean
If /i "%REGION%" NEQ "K" goto:nonkorean
If /i "%FIRMSTART%" EQU "4.3" goto:nonkorean
::launch yawmME using an exploit
copy /y "%Drive%\%guidename%"+Support\Guide\HMSolutions.001 "%Drive%\%guidename%">nul
::support\sfk echo -spat \x3cfont size="5"\x3e\x3cli\x3eLaunch YAWM ModMii Edition\x3c/li\x3e\x3c/font\x3e\x3cbr\x3e>>"%Drive%\%guidename%"
set afterexploit=continueKorean
goto:exploits
:continueKorean
copy /y "%Drive%\%guidename%"+Support\Guide\KoreanStart.001 "%Drive%\%guidename%">nul
copy /y "%Drive%\%guidename%"+Support\Guide\HBC2.001 "%Drive%\%guidename%">nul
support\sfk filter -spat "%Drive%\%guidename%" -rep _"<b>Use the HackMii Installer to install the HBC and Bootmii</b>"_"<li>Use the HackMii Installer to install the HBC and Bootmii</li>"_ -write -yes>nul
goto:nandbackup
::---------------------------virgin NON-Korean Wiis-----------------------------------
::---------------------------------HACKMII INSTALLER-----------------------------
:nonkorean
If /i "%MENU1%" EQU "SU" goto:skipme
If /i "%HM%" NEQ "*" goto:PRIIGUIDE
:skipme
::syscheck updater logic
If /i "%MENU1%" NEQ "SU" goto:miniskip
if /i %HBCversion% LSS 1.1.0 goto:UpdateHBCfirst
if /i "%IOS58%" EQU "*" goto:installwads
If /i "%HM%" NEQ "*" goto:PRIIGUIDE
:UpdateHBCfirst
echo ^<font size^=^"5^"^>^<li^>Update The Homebrew Channel (HBC) and Bootmii^<^/li^>^<^/font^>^<br^>^<ul style^=^align^=^"left^" type^=^"disc^"^>>>"%Drive%\%guidename%"
echo ^<li^>Launch the HackMii Installer from the Homebrew Channel.^<^/ul^>>>"%Drive%\%guidename%"
goto:continueHBC
:miniskip
copy /y "%Drive%\%guidename%"+Support\Guide\HBC.001 "%Drive%\%guidename%">nul
set afterexploit=continueHBC
goto:exploits
:continueHBC
copy /y "%Drive%\%guidename%"+Support\Guide\HBC2.001 "%Drive%\%guidename%">nul
:nandbackup
copy /y "%Drive%\%guidename%"+Support\Guide\NANDBACKUP.001 "%Drive%\%guidename%">nul
::syscheck updater logic
If /i "%MENU1%" NEQ "SU" goto:miniskip
::priiloader and wads steps already done if HBCversion GEQ "1.1.0" and IOS58 already installed (i.e. not toggled)
if /i %HBCversion% LSS 1.1.0 goto:PRIIGUIDE
if /i "%IOS58%" EQU "*" goto:MyMGuide
:miniskip
::--------------------------INSTALL PRIILOADER-------------------------------
:PRIIGUIDE
if /i "%installwads%" EQU "done" goto:skip
::::since yawmME can retain priloader, we can always install Priiloader first (unless custom SM version is detected)
::if /i "%FIRM%" NEQ "%FIRMSTART%" goto:installwads
if /i "%customSMfix%" EQU "yes" goto:installwads
::syscheck updater logic
If /i "%MENU1%" NEQ "SU" goto:miniskip
if /i "%IOS58%" EQU "*" goto:installwads
:miniskip
if /i "%PRI%" NEQ "*" goto:installwads
:skip
if /i "%PRI%" NEQ "*" goto:reinstallHBC
copy /y "%Drive%\%guidename%"+Support\Guide\Priiloader.001 "%Drive%\%guidename%">nul
::show priiloader custom system menu warning 1 only if ModMii Wizard, Wii, and a new system menu WAD is queued
::show priiloader custom system menu warning 2 only if ModMii Wizard, Wii, and a new system menu WAD is NOT queued
if /i "%MENU1%" NEQ "W" goto:skip
if /i "%FIRMSTART%" EQU "v" goto:skip
if /i "%FIRMSTART%" EQU "U2" goto:skip
if /i "%FIRM%" NEQ "%FIRMSTART%" support\sfk filter "%Drive%\%guidename%" -rep _"<!--PriiCSMwarning1--"__ -rep _"--PriiCSMwarning1-->"__ -write -yes>nul
if /i "%FIRM%" EQU "%FIRMSTART%" support\sfk filter "%Drive%\%guidename%" -rep _"<!--PriiCSMwarning2--"__ -rep _"--PriiCSMwarning2-->"__ -write -yes>nul
if /i "%YAWM%" EQU "*" support\sfk filter "%Drive%\%guidename%" -rep _"<!--PriicIOSPAGHETTI--"__ -rep _"--PriicIOSPAGHETTI-->"__ -write -yes>nul
:skip
if /i "%MENU1%" EQU "RC" support\sfk filter "%Drive%\%guidename%" -rep _"<!--PriiRC--"__ -rep _"--PriiRC-->"__ -write -yes>nul
if /i "%MENU1%" EQU "RC" goto:installwads
if /i "%installwads%" EQU "done" goto:reinstallHBC
goto:installwads
::----------------------ANY REGION CHANGER (ARC)-----------------------------
:ARCGUIDE
copy /y "%Drive%\%guidename%"+Support\Guide\ARC.001 "%Drive%\%guidename%">nul
if /i "%REGION%" EQU "K" copy /y "%Drive%\%guidename%"+Support\Guide\KK2K.001 "%Drive%\%guidename%">nul
if /i "%REGION%" NEQ "K" copy /y "%Drive%\%guidename%"+Support\Guide\KK2O.001 "%Drive%\%guidename%">nul
goto:noMyM
::----------------------Install Wads-----------------------------
:installwads
if /i "%YAWM%" NEQ "*" goto:pickmeup
if /i "%SETTINGS%" EQU "G" goto:skipconfig
if /i "%SETTINGSHM%" EQU "G" goto:skipconfig
if /i "%YAWM%" EQU "*" if not exist "%Drive%"\WAD mkdir "%Drive%"\WAD
if /i "%YAWM%" EQU "*" echo ;wm_config.txt made by ModMii> "%Drive%"\WAD\wm_config.txt
if /i "%YAWM%" EQU "*" echo NANDDevice=Disable>> "%Drive%"\WAD\wm_config.txt
if /i "%YAWM%" EQU "*" echo StartupPath=/WAD>> "%Drive%"\WAD\wm_config.txt
::if /i "%YAWM%" EQU "*" echo FatDevice=sd>> "%Drive%"\WAD\wm_config.txt
:skipconfig
copy /y "%Drive%\%guidename%"+Support\Guide\WADheader.001 "%Drive%\%guidename%">nul
if /i "%MII%" NEQ "*" goto:skip
if /i "%FIRMSTART%" EQU "v" support\sfk filter "%Drive%\%guidename%" -rep _"<!--vWiiMii--"__ -rep _"--vWiiMii-->"__ -write -yes>nul
if /i "%FIRMSTART%" EQU "U2" support\sfk filter "%Drive%\%guidename%" -rep _"<!--vWiiMii--"__ -rep _"--vWiiMii-->"__ -write -yes>nul
:skip
if /i "%OHBC%" NEQ "*" goto:skip
if /i "%OHBC113%" EQU "*" support\sfk filter "%Drive%\%guidename%" -rep _"<!--vWiiLULZ--"__ -rep _"--vWiiLULZ-->"__ -write -yes>nul
:skip
::adjust for priiloader retention if a new system menu is being installed
if /i "%PRI%" NEQ "*" goto:makeEdit
if /i "%customSMfix%" EQU "yes" goto:makeEdit
if /i "%FIRM%" EQU "%FIRMSTART%" goto:wadlist
if /i "%FIRMSTART%" EQU "v" goto:wadlist
if /i "%FIRMSTART%" EQU "U2" goto:wadlist
:makeEdit
support\sfk filter "%Drive%\%guidename%" -ls!"<li><b>After successfully installing all the WADs" -write -yes>nul
support\sfk filter "%Drive%\%guidename%" -rep _"<!--RetainPrii--"__ -rep _"--RetainPrii-->"__ -write -yes>nul
:wadlist
if /i "%MENU1%" EQU "RC" goto:Konami
::if /i "%customSMfix%" EQU "yes" goto:Konami
goto:NoKonami
:Konami
support\sfk filter -spat "%Drive%\%guidename%" -rep _"most likely \x22Wii SD Slot\x22, and <b>Press <kbd>A</kbd></b>."_"most likely \x22Wii SD Slot\x22, and <b>Enter the Konami Code: <kbd>&#8593;</kbd><kbd>&#8593;</kbd><kbd>&#8595;</kbd><kbd>&#8595;</kbd>KONAMIPART"_ -write -yes>nul
support\sfk filter "%Drive%\%guidename%" -rep _"KONAMIPART"_"<kbd>&#8592;</kbd><kbd>&#8594;</kbd><kbd>&#8592;</kbd><kbd>&#8594;</kbd><kbd>B</kbd><kbd>A</kbd></b>"_ -write -yes>nul
support\sfk filter "%Drive%\%guidename%" -rep _"<li>Install WADs</li>"_"<li>Install WADs using the Konami Code</li>"_ -write -yes>nul
support\sfk filter "%Drive%\%guidename%" -rep _"yawmME.gif"_"yawmMEkonami.gif"_ -write -yes>nul
::replace yawmME youtube link with yawmMEkonami link
support\sfk filter -spat "%Drive%\%guidename%" -rep _"eTODLzI\x5fHsk"_"0P0Db76S7X4"_ -write -yes>nul
:NoKonami
set guidewadcount=0
if /i "%BCnand%" EQU "*" (SET /a guidewadcount=%guidewadcount%+1) & (support\sfk echo -spat \x3cli\x3eBC-NAND-NUS-v7-vWii\x3c/li\x3e>>"%Drive%\%guidename%")
if /i "%BC%" EQU "*" (SET /a guidewadcount=%guidewadcount%+1) & (support\sfk echo -spat \x3cli\x3eBC-NUS-v6\x3c/li\x3e>>"%Drive%\%guidename%")
if /i "%BCwfs%" EQU "*" (SET /a guidewadcount=%guidewadcount%+1) & (support\sfk echo -spat \x3cli\x3eBC-WFS-NUS-v1-vWii\x3c/li\x3e>>"%Drive%\%guidename%")
if /i "%cIOS202[60]-v5.1R%" EQU "*" (SET /a guidewadcount=%guidewadcount%+1) & (support\sfk echo -spat \x3cli\x3ecIOS202[60]-v5.1R\x3c/li\x3e>>"%Drive%\%guidename%")
if /i "%cIOS222[38]-v4%" EQU "*" (SET /a guidewadcount=%guidewadcount%+1) & (support\sfk echo -spat \x3cli\x3ecIOS222[38]-v4\x3c/li\x3e>>"%Drive%\%guidename%")
if /i "%cIOS223[37-38]-v4%" EQU "*" (SET /a guidewadcount=%guidewadcount%+1) & (support\sfk echo -spat \x3cli\x3ecIOS223[37-38]-v4\x3c/li\x3e>>"%Drive%\%guidename%")
if /i "%cIOS224[57]-v5.1R%" EQU "*" (SET /a guidewadcount=%guidewadcount%+1) & (support\sfk echo -spat \x3cli\x3ecIOS224[57]-v5.1R\x3c/li\x3e>>"%Drive%\%guidename%")
if /i "%cIOS248[38]-d2x-v10-beta52%" EQU "*" (SET /a guidewadcount=%guidewadcount%+1) & (support\sfk echo -spat \x3cli\x3ecIOS248[38]-d2x-v%d2x-beta-rev%\x3c/li\x3e>>"%Drive%\%guidename%")
if /i "%cIOS249[56]-d2x-v10-beta52%" EQU "*" (SET /a guidewadcount=%guidewadcount%+1) & (support\sfk echo -spat \x3cli\x3ecIOS249[56]-d2x-v%d2x-beta-rev%\x3c/li\x3e>>"%Drive%\%guidename%")
if /i "%cIOS250[57]-d2x-v10-beta52%" EQU "*" (SET /a guidewadcount=%guidewadcount%+1) & (support\sfk echo -spat \x3cli\x3ecIOS250[57]-d2x-v%d2x-beta-rev%\x3c/li\x3e>>"%Drive%\%guidename%")
if /i "%cIOS251[58]-d2x-v10-beta52%" EQU "*" (SET /a guidewadcount=%guidewadcount%+1) & (support\sfk echo -spat \x3cli\x3ecIOS251[58]-d2x-v%d2x-beta-rev%\x3c/li\x3e>>"%Drive%\%guidename%")
if /i "%cIOS248[38]-d2x-vWii%" EQU "*" (SET /a guidewadcount=%guidewadcount%+1) & (support\sfk echo -spat \x3cli\x3ecIOS248[38]-d2x-v%d2x-beta-rev%-vWii\x3c/li\x3e>>"%Drive%\%guidename%")
if /i "%cIOS249[56]-d2x-vWii%" EQU "*" (SET /a guidewadcount=%guidewadcount%+1) & (support\sfk echo -spat \x3cli\x3ecIOS249[56]-d2x-v%d2x-beta-rev%-vWii\x3c/li\x3e>>"%Drive%\%guidename%")
if /i "%cIOS250[57]-d2x-vWii%" EQU "*" (SET /a guidewadcount=%guidewadcount%+1) & (support\sfk echo -spat \x3cli\x3ecIOS250[57]-d2x-v%d2x-beta-rev%-vWii\x3c/li\x3e>>"%Drive%\%guidename%")
if /i "%cIOS251[58]-d2x-vWii%" EQU "*" (SET /a guidewadcount=%guidewadcount%+1) & (support\sfk echo -spat \x3cli\x3ecIOS251[58]-d2x-v%d2x-beta-rev%-vWii\x3c/li\x3e>>"%Drive%\%guidename%")
if /i "%vIOS61%" EQU "*" (SET /a guidewadcount=%guidewadcount%+1) & (support\sfk echo -spat \x3cli\x3ecIOS61[56]-v5918-vWii\x3c/li\x3e>>"%Drive%\%guidename%")
if /i "%MENU1%" EQU "RC" goto:miniskip
if /i "%EULAE%" EQU "*" (SET /a guidewadcount=%guidewadcount%+1) & (support\sfk echo -spat \x3cli\x3eEULA-NUS-v3[E]\x3c/li\x3e>>"%Drive%\%guidename%")
if /i "%EULAJ%" EQU "*" (SET /a guidewadcount=%guidewadcount%+1) & (support\sfk echo -spat \x3cli\x3eEULA-NUS-v3[J]\x3c/li\x3e>>"%Drive%\%guidename%")
if /i "%EULAK%" EQU "*" (SET /a guidewadcount=%guidewadcount%+1) & (support\sfk echo -spat \x3cli\x3eEULA-NUS-v3[K]\x3c/li\x3e>>"%Drive%\%guidename%")
if /i "%EULAU%" EQU "*" (SET /a guidewadcount=%guidewadcount%+1) & (support\sfk echo -spat \x3cli\x3eEULA-NUS-v3[U]\x3c/li\x3e>>"%Drive%\%guidename%")
:miniskip
if /i "%IOS11P60%" EQU "*" (SET /a guidewadcount=%guidewadcount%+1) & (support\sfk echo -spat \x3cli\x3eIOS11v65535^(ModMii-IOS60-v6174^)\x3c/li\x3e>>"%Drive%\%guidename%")
if /i "%IOS12%" EQU "*" (SET /a guidewadcount=%guidewadcount%+1) & (support\sfk echo -spat \x3cli\x3eIOS12-64-v526\x3c/li\x3e>>"%Drive%\%guidename%")
if /i "%IOS13%" EQU "*" (SET /a guidewadcount=%guidewadcount%+1) & (support\sfk echo -spat \x3cli\x3eIOS13-64-v1032\x3c/li\x3e>>"%Drive%\%guidename%")
if /i "%IOS14%" EQU "*" (SET /a guidewadcount=%guidewadcount%+1) & (support\sfk echo -spat \x3cli\x3eIOS14-64-v1032\x3c/li\x3e>>"%Drive%\%guidename%")
if /i "%IOS15%" EQU "*" (SET /a guidewadcount=%guidewadcount%+1) & (support\sfk echo -spat \x3cli\x3eIOS15-64-v1032\x3c/li\x3e>>"%Drive%\%guidename%")
if /i "%IOS17%" EQU "*" (SET /a guidewadcount=%guidewadcount%+1) & (support\sfk echo -spat \x3cli\x3eIOS17-64-v1032\x3c/li\x3e>>"%Drive%\%guidename%")
if /i "%IOS20P60%" EQU "*" (SET /a guidewadcount=%guidewadcount%+1) & (support\sfk echo -spat \x3cli\x3eIOS20v65535^(ModMii-IOS60-v6174^)\x3c/li\x3e>>"%Drive%\%guidename%")
if /i "%IOS21%" EQU "*" (SET /a guidewadcount=%guidewadcount%+1) & (support\sfk echo -spat \x3cli\x3eIOS21-64-v1039\x3c/li\x3e>>"%Drive%\%guidename%")
if /i "%IOS22%" EQU "*" (SET /a guidewadcount=%guidewadcount%+1) & (support\sfk echo -spat \x3cli\x3eIOS22-64-v1294\x3c/li\x3e>>"%Drive%\%guidename%")
if /i "%IOS236%" EQU "*" (SET /a guidewadcount=%guidewadcount%+1) & (support\sfk echo -spat \x3cli\x3eIOS236v65535^(IOS36v3351[FS-ES-NP-VP]^)\x3c/li\x3e>>"%Drive%\%guidename%")
if /i "%IOS28%" EQU "*" (SET /a guidewadcount=%guidewadcount%+1) & (support\sfk echo -spat \x3cli\x3eIOS28-64-v1807\x3c/li\x3e>>"%Drive%\%guidename%")
if /i "%IOS30P60%" EQU "*" (SET /a guidewadcount=%guidewadcount%+1) & (support\sfk echo -spat \x3cli\x3eIOS30v65535^(ModMii-IOS60-v6174^)\x3c/li\x3e>>"%Drive%\%guidename%")
if /i "%IOS31%" EQU "*" (SET /a guidewadcount=%guidewadcount%+1) & (support\sfk echo -spat \x3cli\x3eIOS31-64-v3608\x3c/li\x3e>>"%Drive%\%guidename%")
if /i "%IOS33%" EQU "*" (SET /a guidewadcount=%guidewadcount%+1) & (support\sfk echo -spat \x3cli\x3eIOS33-64-v3608\x3c/li\x3e>>"%Drive%\%guidename%")
if /i "%IOS34%" EQU "*" (SET /a guidewadcount=%guidewadcount%+1) & (support\sfk echo -spat \x3cli\x3eIOS34-64-v3608\x3c/li\x3e>>"%Drive%\%guidename%")
if /i "%IOS35%" EQU "*" (SET /a guidewadcount=%guidewadcount%+1) & (support\sfk echo -spat \x3cli\x3eIOS35-64-v3608\x3c/li\x3e>>"%Drive%\%guidename%")
if /i "%IOS36v3608%" EQU "*" (SET /a guidewadcount=%guidewadcount%+1) & (support\sfk echo -spat \x3cli\x3eIOS36-64-v3608\x3c/li\x3e>>"%Drive%\%guidename%")
if /i "%IOS37%" EQU "*" (SET /a guidewadcount=%guidewadcount%+1) & (support\sfk echo -spat \x3cli\x3eIOS37-64-v5663\x3c/li\x3e>>"%Drive%\%guidename%")
if /i "%IOS38%" EQU "*" (SET /a guidewadcount=%guidewadcount%+1) & (support\sfk echo -spat \x3cli\x3eIOS38-64-v4124\x3c/li\x3e>>"%Drive%\%guidename%")
if /i "%IOS40P60%" EQU "*" (SET /a guidewadcount=%guidewadcount%+1) & (support\sfk echo -spat \x3cli\x3eIOS40v65535^(ModMii-IOS60-v6174^)\x3c/li\x3e>>"%Drive%\%guidename%")
if /i "%IOS41%" EQU "*" (SET /a guidewadcount=%guidewadcount%+1) & (support\sfk echo -spat \x3cli\x3eIOS41-64-v3607\x3c/li\x3e>>"%Drive%\%guidename%")
if /i "%IOS43%" EQU "*" (SET /a guidewadcount=%guidewadcount%+1) & (support\sfk echo -spat \x3cli\x3eIOS43-64-v3607\x3c/li\x3e>>"%Drive%\%guidename%")
if /i "%IOS45%" EQU "*" (SET /a guidewadcount=%guidewadcount%+1) & (support\sfk echo -spat \x3cli\x3eIOS45-64-v3607\x3c/li\x3e>>"%Drive%\%guidename%")
if /i "%IOS46%" EQU "*" (SET /a guidewadcount=%guidewadcount%+1) & (support\sfk echo -spat \x3cli\x3eIOS46-64-v3607\x3c/li\x3e>>"%Drive%\%guidename%")
if /i "%IOS48v4124%" EQU "*" (SET /a guidewadcount=%guidewadcount%+1) & (support\sfk echo -spat \x3cli\x3eIOS48-64-v4124\x3c/li\x3e>>"%Drive%\%guidename%")
if /i "%IOS50P%" EQU "*" (SET /a guidewadcount=%guidewadcount%+1) & (support\sfk echo -spat \x3cli\x3eIOS50v65535^(ModMii-IOS60-v6174^)\x3c/li\x3e>>"%Drive%\%guidename%")
if /i "%IOS52P%" EQU "*" (SET /a guidewadcount=%guidewadcount%+1) & (support\sfk echo -spat \x3cli\x3eIOS52v65535^(ModMii-IOS60-v6174^)\x3c/li\x3e>>"%Drive%\%guidename%")
if /i "%IOS53%" EQU "*" (SET /a guidewadcount=%guidewadcount%+1) & (support\sfk echo -spat \x3cli\x3eIOS53-64-v5663\x3c/li\x3e>>"%Drive%\%guidename%")
if /i "%IOS55%" EQU "*" (SET /a guidewadcount=%guidewadcount%+1) & (support\sfk echo -spat \x3cli\x3eIOS55-64-v5663\x3c/li\x3e>>"%Drive%\%guidename%")
if /i "%IOS56%" EQU "*" (SET /a guidewadcount=%guidewadcount%+1) & (support\sfk echo -spat \x3cli\x3eIOS56-64-v5662\x3c/li\x3e>>"%Drive%\%guidename%")
if /i "%IOS57%" EQU "*" (SET /a guidewadcount=%guidewadcount%+1) & (support\sfk echo -spat \x3cli\x3eIOS57-64-v5919\x3c/li\x3e>>"%Drive%\%guidename%")
::korean start has already installed IOS58
If /i "%VIRGIN%" NEQ "Y" goto:yes58
If /i "%REGION%" NEQ "K" goto:yes58
If /i "%FIRMSTART%" EQU "4.3" goto:yes58
::If /i "%FIRMSTART%" EQU "4.3" goto:nonkorean
goto:skip
:yes58
if /i "%IOS58%" EQU "*" (SET /a guidewadcount=%guidewadcount%+1) & (support\sfk echo -spat \x3cli\x3eIOS58-64-v6176\x3c/li\x3e>>"%Drive%\%guidename%")
:skip
if /i "%IOS59%" EQU "*" (SET /a guidewadcount=%guidewadcount%+1) & (support\sfk echo -spat \x3cli\x3eIOS59-64-v9249\x3c/li\x3e>>"%Drive%\%guidename%")
if /i "%IOS60P%" EQU "*" (SET /a guidewadcount=%guidewadcount%+1) & (support\sfk echo -spat \x3cli\x3eIOS60v65535^(ModMii-IOS60-v6174^)\x3c/li\x3e>>"%Drive%\%guidename%")
if /i "%IOS61%" EQU "*" (SET /a guidewadcount=%guidewadcount%+1) & (support\sfk echo -spat \x3cli\x3eIOS61-64-v5662\x3c/li\x3e>>"%Drive%\%guidename%")
if /i "%IOS62%" EQU "*" (SET /a guidewadcount=%guidewadcount%+1) & (support\sfk echo -spat \x3cli\x3eIOS62-64-v6430\x3c/li\x3e>>"%Drive%\%guidename%")
if /i "%IOS70K%" EQU "*" (SET /a guidewadcount=%guidewadcount%+1) & (support\sfk echo -spat \x3cli\x3eIOS70v65535^(ModMii-IOS60-v6174^)\x3c/li\x3e>>"%Drive%\%guidename%")
if /i "%IOS80K%" EQU "*" (SET /a guidewadcount=%guidewadcount%+1) & (support\sfk echo -spat \x3cli\x3eIOS80v65535^(ModMii-IOS60-v6174^)\x3c/li\x3e>>"%Drive%\%guidename%")
if /i "%IOS9%" EQU "*" (SET /a guidewadcount=%guidewadcount%+1) & (support\sfk echo -spat \x3cli\x3eIOS9-64-v1034\x3c/li\x3e>>"%Drive%\%guidename%")
if /i "%MII%" EQU "*" (SET /a guidewadcount=%guidewadcount%+1) & (support\sfk echo -spat \x3cli\x3eMii-Channel-NUS-v6\x3c/li\x3e>>"%Drive%\%guidename%")
if /i "%NE%" EQU "*" (SET /a guidewadcount=%guidewadcount%+1) & (support\sfk echo -spat \x3cli\x3eNEWS-Channel-NUS-v7[E]\x3c/li\x3e>>"%Drive%\%guidename%")
if /i "%NJ%" EQU "*" (SET /a guidewadcount=%guidewadcount%+1) & (support\sfk echo -spat \x3cli\x3eNEWS-Channel-NUS-v7[J]\x3c/li\x3e>>"%Drive%\%guidename%")
if /i "%NU%" EQU "*" (SET /a guidewadcount=%guidewadcount%+1) & (support\sfk echo -spat \x3cli\x3eNEWS-Channel-NUS-v7[U]\x3c/li\x3e>>"%Drive%\%guidename%")
if /i "%MENU1%" NEQ "RC" goto:miniskip
if /i "%EULAE%" EQU "*" (SET /a guidewadcount=%guidewadcount%+1) & (support\sfk echo -spat \x3cli\x3eNUS-EULA-v3[E]\x3c/li\x3e>>"%Drive%\%guidename%")
if /i "%EULAJ%" EQU "*" (SET /a guidewadcount=%guidewadcount%+1) & (support\sfk echo -spat \x3cli\x3eNUS-EULA-v3[J]\x3c/li\x3e>>"%Drive%\%guidename%")
if /i "%EULAK%" EQU "*" (SET /a guidewadcount=%guidewadcount%+1) & (support\sfk echo -spat \x3cli\x3eNUS-EULA-v3[K]\x3c/li\x3e>>"%Drive%\%guidename%")
if /i "%EULAU%" EQU "*" (SET /a guidewadcount=%guidewadcount%+1) & (support\sfk echo -spat \x3cli\x3eNUS-EULA-v3[U]\x3c/li\x3e>>"%Drive%\%guidename%")
:miniskip
if /i "%OHBC113%" EQU "*" (SET /a guidewadcount=%guidewadcount%+1) & (support\sfk echo -spat \x3cli\x3eOpen_HBC_1.1.3_OHBC\x3c/li\x3e>>"%Drive%\%guidename%")
if /i "%OHBC%" EQU "*" (SET /a guidewadcount=%guidewadcount%+1) & (support\sfk echo -spat \x3cli\x3eOpen_HBC_1.1.5_LULZ\x3c/li\x3e>>"%Drive%\%guidename%")
if /i "%IE%" EQU "*" (SET /a guidewadcount=%guidewadcount%+1) & (support\sfk echo -spat \x3cli\x3eOpera-Internet-Channel-NUS[E]\x3c/li\x3e>>"%Drive%\%guidename%")
if /i "%IJ%" EQU "*" (SET /a guidewadcount=%guidewadcount%+1) & (support\sfk echo -spat \x3cli\x3eOpera-Internet-Channel-NUS[J]\x3c/li\x3e>>"%Drive%\%guidename%")
if /i "%IU%" EQU "*" (SET /a guidewadcount=%guidewadcount%+1) & (support\sfk echo -spat \x3cli\x3eOpera-Internet-Channel-NUS[U]\x3c/li\x3e>>"%Drive%\%guidename%")
if /i "%HAZA%" EQU "*" (SET /a guidewadcount=%guidewadcount%+1) & (support\sfk echo -spat \x3cli\x3ePhoto-Channel-1.1-dummy-HAZA\x3c/li\x3e>>"%Drive%\%guidename%")
if /i "%P0%" EQU "*" (SET /a guidewadcount=%guidewadcount%+1) & (support\sfk echo -spat \x3cli\x3ePhoto-Channel-1.0-NUS-v2\x3c/li\x3e>>"%Drive%\%guidename%")
if /i "%P%" EQU "*" (SET /a guidewadcount=%guidewadcount%+1) & (support\sfk echo -spat \x3cli\x3ePhoto-Channel-1.1-NUS-v3\x3c/li\x3e>>"%Drive%\%guidename%")
if /i "%PHOTOK%" EQU "*" (SET /a guidewadcount=%guidewadcount%+1) & (support\sfk echo -spat \x3cli\x3ePhoto-Channel-1.1-NUS-v3[K]\x3c/li\x3e>>"%Drive%\%guidename%")
if /i "%RSE%" EQU "*" (SET /a guidewadcount=%guidewadcount%+1) & (support\sfk echo -spat \x3cli\x3eRegion-Select-NUS-v2[E]\x3c/li\x3e>>"%Drive%\%guidename%")
if /i "%RSJ%" EQU "*" (SET /a guidewadcount=%guidewadcount%+1) & (support\sfk echo -spat \x3cli\x3eRegion-Select-NUS-v2[J]\x3c/li\x3e>>"%Drive%\%guidename%")
if /i "%RSK%" EQU "*" (SET /a guidewadcount=%guidewadcount%+1) & (support\sfk echo -spat \x3cli\x3eRegion-Select-NUS-v2[K]\x3c/li\x3e>>"%Drive%\%guidename%")
if /i "%RSU%" EQU "*" (SET /a guidewadcount=%guidewadcount%+1) & (support\sfk echo -spat \x3cli\x3eRegion-Select-NUS-v2[U]\x3c/li\x3e>>"%Drive%\%guidename%")
if /i "%Swiss_cMIOS%" EQU "*" (SET /a guidewadcount=%guidewadcount%+1) & (support\sfk echo -spat \x3cli\x3eRVL-cMIOS[10]_Swiss_r1788\x3c/li\x3e>>"%Drive%\%guidename%")
if /i "%RVL-cMIOS-v65535(v10)_WiiGator_WiiPower_v0.2%" EQU "*" (SET /a guidewadcount=%guidewadcount%+1) & (support\sfk echo -spat \x3cli\x3eRVL-cMIOS-v65535^(v10^)_WiiGator_WiiPower_v0.2\x3c/li\x3e>>"%Drive%\%guidename%")
if /i "%M10%" EQU "*" (SET /a guidewadcount=%guidewadcount%+1) & (support\sfk echo -spat \x3cli\x3eRVL-mios-v10\x3c/li\x3e>>"%Drive%\%guidename%")
if /i "%S%" EQU "*" (SET /a guidewadcount=%guidewadcount%+1) & (support\sfk echo -spat \x3cli\x3eShopping-Channel-NUS-v21\x3c/li\x3e>>"%Drive%\%guidename%")
if /i "%SK%" EQU "*" (SET /a guidewadcount=%guidewadcount%+1) & (support\sfk echo -spat \x3cli\x3eShopping-Channel-NUS-v21[K]\x3c/li\x3e>>"%Drive%\%guidename%")
::if /i "%customSMfix%" EQU "yes" goto:skipSMlist
:customSMfix
if /i "%SM4.1E%" EQU "*" (SET /a guidewadcount=%guidewadcount%+1) & (support\sfk echo -spat \x3cli\x3eSystemMenu_4.1E_v450\x3c/li\x3e>>"%Drive%\%guidename%")
if /i "%SM4.1E-DWB%" EQU "*" (SET /a guidewadcount=%guidewadcount%+1) & (support\sfk echo -spat \x3cli\x3eSystemMenu_4.1E_v450_DarkWiiBlue_%effect%\x3c/li\x3e>>"%Drive%\%guidename%")
if /i "%SM4.1E-DWG%" EQU "*" (SET /a guidewadcount=%guidewadcount%+1) & (support\sfk echo -spat \x3cli\x3eSystemMenu_4.1E_v450_DarkWiiGreen_%effect%\x3c/li\x3e>>"%Drive%\%guidename%")
if /i "%SM4.1E-DWO%" EQU "*" (SET /a guidewadcount=%guidewadcount%+1) & (support\sfk echo -spat \x3cli\x3eSystemMenu_4.1E_v450_DarkWiiOrange_%effect%\x3c/li\x3e>>"%Drive%\%guidename%")
if /i "%SM4.1E-DWR%" EQU "*" (SET /a guidewadcount=%guidewadcount%+1) & (support\sfk echo -spat \x3cli\x3eSystemMenu_4.1E_v450_DarkWiiRed_%effect%\x3c/li\x3e>>"%Drive%\%guidename%")
if /i "%SM4.1J%" EQU "*" (SET /a guidewadcount=%guidewadcount%+1) & (support\sfk echo -spat \x3cli\x3eSystemMenu_4.1J_v448\x3c/li\x3e>>"%Drive%\%guidename%")
if /i "%SM4.1J-DWB%" EQU "*" (SET /a guidewadcount=%guidewadcount%+1) & (support\sfk echo -spat \x3cli\x3eSystemMenu_4.1J_v448_DarkWiiBlue_%effect%\x3c/li\x3e>>"%Drive%\%guidename%")
if /i "%SM4.1J-DWG%" EQU "*" (SET /a guidewadcount=%guidewadcount%+1) & (support\sfk echo -spat \x3cli\x3eSystemMenu_4.1J_v448_DarkWiiGreen_%effect%\x3c/li\x3e>>"%Drive%\%guidename%")
if /i "%SM4.1J-DWO%" EQU "*" (SET /a guidewadcount=%guidewadcount%+1) & (support\sfk echo -spat \x3cli\x3eSystemMenu_4.1J_v448_DarkWiiOrange_%effect%\x3c/li\x3e>>"%Drive%\%guidename%")
if /i "%SM4.1J-DWR%" EQU "*" (SET /a guidewadcount=%guidewadcount%+1) & (support\sfk echo -spat \x3cli\x3eSystemMenu_4.1J_v448_DarkWiiRed_%effect%\x3c/li\x3e>>"%Drive%\%guidename%")
if /i "%SM4.1K%" EQU "*" (SET /a guidewadcount=%guidewadcount%+1) & (support\sfk echo -spat \x3cli\x3eSystemMenu_4.1K_v454\x3c/li\x3e>>"%Drive%\%guidename%")
if /i "%SM4.1K-DWB%" EQU "*" (SET /a guidewadcount=%guidewadcount%+1) & (support\sfk echo -spat \x3cli\x3eSystemMenu_4.1K_v454_DarkWiiBlue_%effect%\x3c/li\x3e>>"%Drive%\%guidename%")
if /i "%SM4.1K-DWG%" EQU "*" (SET /a guidewadcount=%guidewadcount%+1) & (support\sfk echo -spat \x3cli\x3eSystemMenu_4.1K_v454_DarkWiiGreen_%effect%\x3c/li\x3e>>"%Drive%\%guidename%")
if /i "%SM4.1K-DWO%" EQU "*" (SET /a guidewadcount=%guidewadcount%+1) & (support\sfk echo -spat \x3cli\x3eSystemMenu_4.1K_v454_DarkWiiOrange_%effect%\x3c/li\x3e>>"%Drive%\%guidename%")
if /i "%SM4.1K-DWR%" EQU "*" (SET /a guidewadcount=%guidewadcount%+1) & (support\sfk echo -spat \x3cli\x3eSystemMenu_4.1K_v454_DarkWiiRed_%effect%\x3c/li\x3e>>"%Drive%\%guidename%")
if /i "%SM4.1U%" EQU "*" (SET /a guidewadcount=%guidewadcount%+1) & (support\sfk echo -spat \x3cli\x3eSystemMenu_4.1U_v449\x3c/li\x3e>>"%Drive%\%guidename%")
if /i "%SM4.1U-DWB%" EQU "*" (SET /a guidewadcount=%guidewadcount%+1) & (support\sfk echo -spat \x3cli\x3eSystemMenu_4.1U_v449_DarkWiiBlue_%effect%\x3c/li\x3e>>"%Drive%\%guidename%")
if /i "%SM4.1U-DWG%" EQU "*" (SET /a guidewadcount=%guidewadcount%+1) & (support\sfk echo -spat \x3cli\x3eSystemMenu_4.1U_v449_DarkWiiGreen_%effect%\x3c/li\x3e>>"%Drive%\%guidename%")
if /i "%SM4.1U-DWO%" EQU "*" (SET /a guidewadcount=%guidewadcount%+1) & (support\sfk echo -spat \x3cli\x3eSystemMenu_4.1U_v449_DarkWiiOrange_%effect%\x3c/li\x3e>>"%Drive%\%guidename%")
if /i "%SM4.1U-DWR%" EQU "*" (SET /a guidewadcount=%guidewadcount%+1) & (support\sfk echo -spat \x3cli\x3eSystemMenu_4.1U_v449_DarkWiiRed_%effect%\x3c/li\x3e>>"%Drive%\%guidename%")
if /i "%SM4.2E%" EQU "*" (SET /a guidewadcount=%guidewadcount%+1) & (support\sfk echo -spat \x3cli\x3eSystemMenu_4.2E_v482\x3c/li\x3e>>"%Drive%\%guidename%")
if /i "%SM4.2E-DWB%" EQU "*" (SET /a guidewadcount=%guidewadcount%+1) & (support\sfk echo -spat \x3cli\x3eSystemMenu_4.2E_v482_DarkWiiBlue_%effect%\x3c/li\x3e>>"%Drive%\%guidename%")
if /i "%SM4.2E-DWG%" EQU "*" (SET /a guidewadcount=%guidewadcount%+1) & (support\sfk echo -spat \x3cli\x3eSystemMenu_4.2E_v482_DarkWiiGreen_%effect%\x3c/li\x3e>>"%Drive%\%guidename%")
if /i "%SM4.2E-DWO%" EQU "*" (SET /a guidewadcount=%guidewadcount%+1) & (support\sfk echo -spat \x3cli\x3eSystemMenu_4.2E_v482_DarkWiiOrange_%effect%\x3c/li\x3e>>"%Drive%\%guidename%")
if /i "%SM4.2E-DWR%" EQU "*" (SET /a guidewadcount=%guidewadcount%+1) & (support\sfk echo -spat \x3cli\x3eSystemMenu_4.2E_v482_DarkWiiRed_%effect%\x3c/li\x3e>>"%Drive%\%guidename%")
if /i "%SM4.2J%" EQU "*" (SET /a guidewadcount=%guidewadcount%+1) & (support\sfk echo -spat \x3cli\x3eSystemMenu_4.2J_v480\x3c/li\x3e>>"%Drive%\%guidename%")
if /i "%SM4.2J-DWB%" EQU "*" (SET /a guidewadcount=%guidewadcount%+1) & (support\sfk echo -spat \x3cli\x3eSystemMenu_4.2J_v480_DarkWiiBlue_%effect%\x3c/li\x3e>>"%Drive%\%guidename%")
if /i "%SM4.2J-DWG%" EQU "*" (SET /a guidewadcount=%guidewadcount%+1) & (support\sfk echo -spat \x3cli\x3eSystemMenu_4.2J_v480_DarkWiiGreen_%effect%\x3c/li\x3e>>"%Drive%\%guidename%")
if /i "%SM4.2J-DWO%" EQU "*" (SET /a guidewadcount=%guidewadcount%+1) & (support\sfk echo -spat \x3cli\x3eSystemMenu_4.2J_v480_DarkWiiOrange_%effect%\x3c/li\x3e>>"%Drive%\%guidename%")
if /i "%SM4.2J-DWR%" EQU "*" (SET /a guidewadcount=%guidewadcount%+1) & (support\sfk echo -spat \x3cli\x3eSystemMenu_4.2J_v480_DarkWiiRed_%effect%\x3c/li\x3e>>"%Drive%\%guidename%")
if /i "%SM4.2K%" EQU "*" (SET /a guidewadcount=%guidewadcount%+1) & (support\sfk echo -spat \x3cli\x3eSystemMenu_4.2K_v486\x3c/li\x3e>>"%Drive%\%guidename%")
if /i "%SM4.2K-DWB%" EQU "*" (SET /a guidewadcount=%guidewadcount%+1) & (support\sfk echo -spat \x3cli\x3eSystemMenu_4.2K_v486_DarkWiiBlue_%effect%\x3c/li\x3e>>"%Drive%\%guidename%")
if /i "%SM4.2K-DWG%" EQU "*" (SET /a guidewadcount=%guidewadcount%+1) & (support\sfk echo -spat \x3cli\x3eSystemMenu_4.2K_v486_DarkWiiGreen_%effect%\x3c/li\x3e>>"%Drive%\%guidename%")
if /i "%SM4.2K-DWO%" EQU "*" (SET /a guidewadcount=%guidewadcount%+1) & (support\sfk echo -spat \x3cli\x3eSystemMenu_4.2K_v486_DarkWiiOrange_%effect%\x3c/li\x3e>>"%Drive%\%guidename%")
if /i "%SM4.2K-DWR%" EQU "*" (SET /a guidewadcount=%guidewadcount%+1) & (support\sfk echo -spat \x3cli\x3eSystemMenu_4.2K_v486_DarkWiiRed_%effect%\x3c/li\x3e>>"%Drive%\%guidename%")
if /i "%SM4.2U%" EQU "*" (SET /a guidewadcount=%guidewadcount%+1) & (support\sfk echo -spat \x3cli\x3eSystemMenu_4.2U_v481\x3c/li\x3e>>"%Drive%\%guidename%")
if /i "%SM4.2U-DWB%" EQU "*" (SET /a guidewadcount=%guidewadcount%+1) & (support\sfk echo -spat \x3cli\x3eSystemMenu_4.2U_v481_DarkWiiBlue_%effect%\x3c/li\x3e>>"%Drive%\%guidename%")
if /i "%SM4.2U-DWG%" EQU "*" (SET /a guidewadcount=%guidewadcount%+1) & (support\sfk echo -spat \x3cli\x3eSystemMenu_4.2U_v481_DarkWiiGreen_%effect%\x3c/li\x3e>>"%Drive%\%guidename%")
if /i "%SM4.2U-DWO%" EQU "*" (SET /a guidewadcount=%guidewadcount%+1) & (support\sfk echo -spat \x3cli\x3eSystemMenu_4.2U_v481_DarkWiiOrange_%effect%\x3c/li\x3e>>"%Drive%\%guidename%")
if /i "%SM4.2U-DWR%" EQU "*" (SET /a guidewadcount=%guidewadcount%+1) & (support\sfk echo -spat \x3cli\x3eSystemMenu_4.2U_v481_DarkWiiRed_%effect%\x3c/li\x3e>>"%Drive%\%guidename%")
if /i "%SM4.3E%" EQU "*" (SET /a guidewadcount=%guidewadcount%+1) & (support\sfk echo -spat \x3cli\x3eSystemMenu_4.3E_v514\x3c/li\x3e>>"%Drive%\%guidename%")
if /i "%SM4.3E-DWB%" EQU "*" (SET /a guidewadcount=%guidewadcount%+1) & (support\sfk echo -spat \x3cli\x3eSystemMenu_4.3E_v514_DarkWiiBlue_%effect%\x3c/li\x3e>>"%Drive%\%guidename%")
if /i "%SM4.3E-DWG%" EQU "*" (SET /a guidewadcount=%guidewadcount%+1) & (support\sfk echo -spat \x3cli\x3eSystemMenu_4.3E_v514_DarkWiiGreen_%effect%\x3c/li\x3e>>"%Drive%\%guidename%")
if /i "%SM4.3E-DWO%" EQU "*" (SET /a guidewadcount=%guidewadcount%+1) & (support\sfk echo -spat \x3cli\x3eSystemMenu_4.3E_v514_DarkWiiOrange_%effect%\x3c/li\x3e>>"%Drive%\%guidename%")
if /i "%SM4.3E-DWR%" EQU "*" (SET /a guidewadcount=%guidewadcount%+1) & (support\sfk echo -spat \x3cli\x3eSystemMenu_4.3E_v514_DarkWiiRed_%effect%\x3c/li\x3e>>"%Drive%\%guidename%")
if /i "%vSM4.3E%" EQU "*" (SET /a guidewadcount=%guidewadcount%+1) & (support\sfk echo -spat \x3cli\x3eSystemMenu_4.3E_v610_vWii\x3c/li\x3e>>"%Drive%\%guidename%")
if /i "%SM4.3J%" EQU "*" (SET /a guidewadcount=%guidewadcount%+1) & (support\sfk echo -spat \x3cli\x3eSystemMenu_4.3J_v512\x3c/li\x3e>>"%Drive%\%guidename%")
if /i "%SM4.3J-DWB%" EQU "*" (SET /a guidewadcount=%guidewadcount%+1) & (support\sfk echo -spat \x3cli\x3eSystemMenu_4.3J_v512_DarkWiiBlue_%effect%\x3c/li\x3e>>"%Drive%\%guidename%")
if /i "%SM4.3J-DWG%" EQU "*" (SET /a guidewadcount=%guidewadcount%+1) & (support\sfk echo -spat \x3cli\x3eSystemMenu_4.3J_v512_DarkWiiGreen_%effect%\x3c/li\x3e>>"%Drive%\%guidename%")
if /i "%SM4.3J-DWO%" EQU "*" (SET /a guidewadcount=%guidewadcount%+1) & (support\sfk echo -spat \x3cli\x3eSystemMenu_4.3J_v512_DarkWiiOrange_%effect%\x3c/li\x3e>>"%Drive%\%guidename%")
if /i "%SM4.3J-DWR%" EQU "*" (SET /a guidewadcount=%guidewadcount%+1) & (support\sfk echo -spat \x3cli\x3eSystemMenu_4.3J_v512_DarkWiiRed_%effect%\x3c/li\x3e>>"%Drive%\%guidename%")
if /i "%vSM4.3J%" EQU "*" (SET /a guidewadcount=%guidewadcount%+1) & (support\sfk echo -spat \x3cli\x3eSystemMenu_4.3J_v608_vWii\x3c/li\x3e>>"%Drive%\%guidename%")
if /i "%SM4.3K%" EQU "*" (SET /a guidewadcount=%guidewadcount%+1) & (support\sfk echo -spat \x3cli\x3eSystemMenu_4.3K_v518\x3c/li\x3e>>"%Drive%\%guidename%")
if /i "%SM4.3K-DWB%" EQU "*" (SET /a guidewadcount=%guidewadcount%+1) & (support\sfk echo -spat \x3cli\x3eSystemMenu_4.3K_v518_DarkWiiBlue_%effect%\x3c/li\x3e>>"%Drive%\%guidename%")
if /i "%SM4.3K-DWG%" EQU "*" (SET /a guidewadcount=%guidewadcount%+1) & (support\sfk echo -spat \x3cli\x3eSystemMenu_4.3K_v518_DarkWiiGreen_%effect%\x3c/li\x3e>>"%Drive%\%guidename%")
if /i "%SM4.3K-DWO%" EQU "*" (SET /a guidewadcount=%guidewadcount%+1) & (support\sfk echo -spat \x3cli\x3eSystemMenu_4.3K_v518_DarkWiiOrange_%effect%\x3c/li\x3e>>"%Drive%\%guidename%")
if /i "%SM4.3K-DWR%" EQU "*" (SET /a guidewadcount=%guidewadcount%+1) & (support\sfk echo -spat \x3cli\x3eSystemMenu_4.3K_v518_DarkWiiRed_%effect%\x3c/li\x3e>>"%Drive%\%guidename%")
if /i "%SM4.3U%" EQU "*" (SET /a guidewadcount=%guidewadcount%+1) & (support\sfk echo -spat \x3cli\x3eSystemMenu_4.3U_v513\x3c/li\x3e>>"%Drive%\%guidename%")
if /i "%SM4.3U-DWB%" EQU "*" (SET /a guidewadcount=%guidewadcount%+1) & (support\sfk echo -spat \x3cli\x3eSystemMenu_4.3U_v513_DarkWiiBlue_%effect%\x3c/li\x3e>>"%Drive%\%guidename%")
if /i "%SM4.3U-DWG%" EQU "*" (SET /a guidewadcount=%guidewadcount%+1) & (support\sfk echo -spat \x3cli\x3eSystemMenu_4.3U_v513_DarkWiiGreen_%effect%\x3c/li\x3e>>"%Drive%\%guidename%")
if /i "%SM4.3U-DWO%" EQU "*" (SET /a guidewadcount=%guidewadcount%+1) & (support\sfk echo -spat \x3cli\x3eSystemMenu_4.3U_v513_DarkWiiOrange_%effect%\x3c/li\x3e>>"%Drive%\%guidename%")
if /i "%SM4.3U-DWR%" EQU "*" (SET /a guidewadcount=%guidewadcount%+1) & (support\sfk echo -spat \x3cli\x3eSystemMenu_4.3U_v513_DarkWiiRed_%effect%\x3c/li\x3e>>"%Drive%\%guidename%")
if /i "%vSM4.3U%" EQU "*" (SET /a guidewadcount=%guidewadcount%+1) & (support\sfk echo -spat \x3cli\x3eSystemMenu_4.3U_v609_vWii\x3c/li\x3e>>"%Drive%\%guidename%")
:skipSMlist
if /i "%USBX%" EQU "*" (SET /a guidewadcount=%guidewadcount%+1) & (support\sfk echo -spat \x3cli\x3eUSBLoader^(s^)-ahbprot58-SD-USB-v14-IDCL-^(Wii+vWii^) ^(see spoiler for boot info^)\x3c/li\x3e>>"%Drive%\%guidename%")
if /i "%vIOS9%" EQU "*" (SET /a guidewadcount=%guidewadcount%+1) & (support\sfk echo -spat \x3cli\x3evIOS9-64-v1290-vWii\x3c/li\x3e>>"%Drive%\%guidename%")
if /i "%vIOS12%" EQU "*" (SET /a guidewadcount=%guidewadcount%+1) & (support\sfk echo -spat \x3cli\x3evIOS12-64-v782-vWii\x3c/li\x3e>>"%Drive%\%guidename%")
if /i "%vIOS13%" EQU "*" (SET /a guidewadcount=%guidewadcount%+1) & (support\sfk echo -spat \x3cli\x3evIOS13-64-v1288-vWii\x3c/li\x3e>>"%Drive%\%guidename%")
if /i "%vIOS14%" EQU "*" (SET /a guidewadcount=%guidewadcount%+1) & (support\sfk echo -spat \x3cli\x3evIOS14-64-v1288-vWii\x3c/li\x3e>>"%Drive%\%guidename%")
if /i "%vIOS15%" EQU "*" (SET /a guidewadcount=%guidewadcount%+1) & (support\sfk echo -spat \x3cli\x3evIOS15-64-v1288-vWii\x3c/li\x3e>>"%Drive%\%guidename%")
if /i "%vIOS17%" EQU "*" (SET /a guidewadcount=%guidewadcount%+1) & (support\sfk echo -spat \x3cli\x3evIOS17-64-v1288-vWii\x3c/li\x3e>>"%Drive%\%guidename%")
if /i "%vIOS21%" EQU "*" (SET /a guidewadcount=%guidewadcount%+1) & (support\sfk echo -spat \x3cli\x3evIOS21-64-v1295-vWii\x3c/li\x3e>>"%Drive%\%guidename%")
if /i "%vIOS22%" EQU "*" (SET /a guidewadcount=%guidewadcount%+1) & (support\sfk echo -spat \x3cli\x3evIOS22-64-v1550-vWii\x3c/li\x3e>>"%Drive%\%guidename%")
if /i "%vIOS28%" EQU "*" (SET /a guidewadcount=%guidewadcount%+1) & (support\sfk echo -spat \x3cli\x3evIOS28-64-v2063-vWii\x3c/li\x3e>>"%Drive%\%guidename%")
if /i "%vIOS31%" EQU "*" (SET /a guidewadcount=%guidewadcount%+1) & (support\sfk echo -spat \x3cli\x3evIOS31-64-v3864-vWii\x3c/li\x3e>>"%Drive%\%guidename%")
if /i "%vIOS33%" EQU "*" (SET /a guidewadcount=%guidewadcount%+1) & (support\sfk echo -spat \x3cli\x3evIOS33-64-v3864-vWii\x3c/li\x3e>>"%Drive%\%guidename%")
if /i "%vIOS34%" EQU "*" (SET /a guidewadcount=%guidewadcount%+1) & (support\sfk echo -spat \x3cli\x3evIOS34-64-v3864-vWii\x3c/li\x3e>>"%Drive%\%guidename%")
if /i "%vIOS35%" EQU "*" (SET /a guidewadcount=%guidewadcount%+1) & (support\sfk echo -spat \x3cli\x3evIOS35-64-v3864-vWii\x3c/li\x3e>>"%Drive%\%guidename%")
if /i "%vIOS36%" EQU "*" (SET /a guidewadcount=%guidewadcount%+1) & (support\sfk echo -spat \x3cli\x3evIOS36-64-v3864-vWii\x3c/li\x3e>>"%Drive%\%guidename%")
if /i "%vIOS37%" EQU "*" (SET /a guidewadcount=%guidewadcount%+1) & (support\sfk echo -spat \x3cli\x3evIOS37-64-v5919-vWii\x3c/li\x3e>>"%Drive%\%guidename%")
if /i "%vIOS38%" EQU "*" (SET /a guidewadcount=%guidewadcount%+1) & (support\sfk echo -spat \x3cli\x3evIOS38-64-v4380-vWii\x3c/li\x3e>>"%Drive%\%guidename%")
if /i "%vIOS41%" EQU "*" (SET /a guidewadcount=%guidewadcount%+1) & (support\sfk echo -spat \x3cli\x3evIOS41-64-v3863-vWii\x3c/li\x3e>>"%Drive%\%guidename%")
if /i "%vIOS43%" EQU "*" (SET /a guidewadcount=%guidewadcount%+1) & (support\sfk echo -spat \x3cli\x3evIOS43-64-v3863-vWii\x3c/li\x3e>>"%Drive%\%guidename%")
if /i "%vIOS45%" EQU "*" (SET /a guidewadcount=%guidewadcount%+1) & (support\sfk echo -spat \x3cli\x3evIOS45-64-v3863-vWii\x3c/li\x3e>>"%Drive%\%guidename%")
if /i "%vIOS46%" EQU "*" (SET /a guidewadcount=%guidewadcount%+1) & (support\sfk echo -spat \x3cli\x3evIOS46-64-v3863-vWii\x3c/li\x3e>>"%Drive%\%guidename%")
if /i "%vIOS48%" EQU "*" (SET /a guidewadcount=%guidewadcount%+1) & (support\sfk echo -spat \x3cli\x3evIOS48-64-v4380-vWii\x3c/li\x3e>>"%Drive%\%guidename%")
if /i "%vIOS53%" EQU "*" (SET /a guidewadcount=%guidewadcount%+1) & (support\sfk echo -spat \x3cli\x3evIOS53-64-v5919-vWii\x3c/li\x3e>>"%Drive%\%guidename%")
if /i "%vIOS55%" EQU "*" (SET /a guidewadcount=%guidewadcount%+1) & (support\sfk echo -spat \x3cli\x3evIOS55-64-v5919-vWii\x3c/li\x3e>>"%Drive%\%guidename%")
if /i "%vIOS56%" EQU "*" (SET /a guidewadcount=%guidewadcount%+1) & (support\sfk echo -spat \x3cli\x3evIOS56-64-v5918-vWii\x3c/li\x3e>>"%Drive%\%guidename%")
if /i "%vIOS57%" EQU "*" (SET /a guidewadcount=%guidewadcount%+1) & (support\sfk echo -spat \x3cli\x3evIOS57-64-v6175-vWii\x3c/li\x3e>>"%Drive%\%guidename%")
if /i "%vIOS58%" EQU "*" (SET /a guidewadcount=%guidewadcount%+1) & (support\sfk echo -spat \x3cli\x3evIOS58-64-v6432-vWii\x3c/li\x3e>>"%Drive%\%guidename%")
if /i "%vIOS59%" EQU "*" (SET /a guidewadcount=%guidewadcount%+1) & (support\sfk echo -spat \x3cli\x3evIOS59-64-v9249-vWii\x3c/li\x3e>>"%Drive%\%guidename%")
if /i "%vIOS62%" EQU "*" (SET /a guidewadcount=%guidewadcount%+1) & (support\sfk echo -spat \x3cli\x3evIOS62-64-v6942-vWii\x3c/li\x3e>>"%Drive%\%guidename%")
if /i "%vIOS80P%" EQU "*" (SET /a guidewadcount=%guidewadcount%+1) & (support\sfk echo -spat \x3cli\x3evIOS80v7200[FS-ES-NP-VP]-vWii\x3c/li\x3e>>"%Drive%\%guidename%")
if /i "%WE%" EQU "*" (SET /a guidewadcount=%guidewadcount%+1) & (support\sfk echo -spat \x3cli\x3eWeather-Channel-NUS-v7[E]\x3c/li\x3e>>"%Drive%\%guidename%")
if /i "%WJ%" EQU "*" (SET /a guidewadcount=%guidewadcount%+1) & (support\sfk echo -spat \x3cli\x3eWeather-Channel-NUS-v7[J]\x3c/li\x3e>>"%Drive%\%guidename%")
if /i "%WU%" EQU "*" (SET /a guidewadcount=%guidewadcount%+1) & (support\sfk echo -spat \x3cli\x3eWeather-Channel-NUS-v7[U]\x3c/li\x3e>>"%Drive%\%guidename%")
if /i "%WSE%" EQU "*" (SET /a guidewadcount=%guidewadcount%+1) & (support\sfk echo -spat \x3cli\x3eWii-Speak-Channel-NUS[E]\x3c/li\x3e>>"%Drive%\%guidename%")
if /i "%WSJ%" EQU "*" (SET /a guidewadcount=%guidewadcount%+1) & (support\sfk echo -spat \x3cli\x3eWii-Speak-Channel-NUS[J]\x3c/li\x3e>>"%Drive%\%guidename%")
if /i "%WSK%" EQU "*" (SET /a guidewadcount=%guidewadcount%+1) & (support\sfk echo -spat \x3cli\x3eWii-Speak-Channel-NUS[K]\x3c/li\x3e>>"%Drive%\%guidename%")
if /i "%WSU%" EQU "*" (SET /a guidewadcount=%guidewadcount%+1) & (support\sfk echo -spat \x3cli\x3eWii-Speak-Channel-NUS[U]\x3c/li\x3e>>"%Drive%\%guidename%")
::replace "_guidewadcountplaceholder" (if exists) with number of wads
if /i "%guidewadcount%" EQU "0" echo *None.>>"%Drive%\%guidename%"
if /i "%guidewadcount%" EQU "0" support\sfk filter "%Drive%\%guidename%" -rep _"guidewadcountplaceholder WADs"_"WADs"_ -write -yes>nul
if /i "%guidewadcount%" NEQ "0" support\sfk filter "%Drive%\%guidename%" -rep _guidewadcountplaceholder_%guidewadcount%_ -write -yes>nul
::add closing bullet tag and line break
support\sfk echo -spat \x3c/ol\x3e\x3cbr\x3e>>"%Drive%\%guidename%"
if /i "%MENU1%" EQU "H" goto:HMafterwadlist
if /i "%USBX%" EQU "*" copy /y "%Drive%\%guidename%"+Support\Guide\ForwarderWAD.001 "%Drive%\%guidename%">nul
::Optional Stub Stuff, syscheck updater guide only
if /i "%MENU1%" NEQ "SU" goto:skipstubs
if /i "%STUBS%" NEQ "*" goto:skipstubs
if not exist temp\stubs.txt goto:skipstubs
::line count
set /a TotalSTUBS=0
for /f %%a in (temp\stubs.txt) do set /a TotalSTUBS+=1
support\sfk echo -spat "<div style><div class=\x22spoilerfont\x22 style=\x22text-align:left;\x22><input value=\x22 Optional %TotalSTUBS% Stub IOS WADs \x22 style=\x22margin: 0px; padding: 0px; font-size: large;\x22 onclick=\x22if (this.parentNode.parentNode.getElementsByTagName('div')[1].getElementsByTagName('div')[0].style.display != '') { this.parentNode.parentNode.getElementsByTagName('div')[1].getElementsByTagName('div')[0].style.display = ''; this.innerText = ''; this.value = ' Click to hide Optional Stub IOS WADs '; } else { this.parentNode.parentNode.getElementsByTagName('div')[1].getElementsByTagName('div')[0].style.display = 'none'; this.innerText = ''; this.value = ' Optional %TotalSTUBS% Stub IOS WADs '; }\x22 type=\x22button\x22></div><div class=\x22alt2\x22 style=\x22border: 0px inset ; margin: 0px; padding: 6px;\x22><div style=\x22display: none;\x22>">>"%Drive%\%guidename%"
echo You have some extra IOSs installed on your console that are unnecessary. Optionally recover some space by navigating to the WAD/STUBS folder and repeating the steps above to install the %TotalSTUBS% stub IOS WADs below. Ignore this for any slots you intentionally installed (e.g. for ^<a href^=^"https^:^/^/gbatemp.net^/threads^/release-fakemote-an-ios-module-that-fakes-wiimotes-from-the-input-of-usb-game-controllers.601771^" target^=^"_blank^"^>Fakemote^<^/a^> support).^<br^>^<br^>>>"%Drive%\%guidename%"
::start ordered list of stubs
echo ^<ol^>>>"%Drive%\%guidename%"
::Loop through the stubs line by line to insert bullets
set vWiitag=
if /i "%FIRMSTART%" EQU "v" set vWiitag=-vWii
for /F "tokens=*" %%A in (temp\stubs.txt) do echo ^<li^>STUB-IOS%%A-64-v404%vWiitag%^<^/li^>>>"%Drive%\%guidename%"
echo ^<br^>Note: You can recover a bit more space by following the steps above except pressing ^<kbd^>-^<^/kbd^> instead of ^<kbd^>^+^<^/kbd^> to uninstall the %TotalSTUBS% stub IOS WADs. Do NOT uninstall any other WADs unless you know what you are doing; see warning about uninstalling WADs above.^<br^>^<br^>>>"%Drive%\%guidename%"
::end ordered list and close spoiler
echo ^<^/ol^>^<^/div^>^<^/div^>^<^/div^>>>"%Drive%\%guidename%"
:skipstubs
::close spoiler for everything except AW and H (which is already done)
if /i "%MENU1%" NEQ "AW" echo ^<^/div^>^<^/div^>^<^/div^>>>"%Drive%\%guidename%"
if /i "%MENU1%" EQU "RC" support\sfk echo -spat \x3cb\x3eNOTE:\x3c/b\x3e YAWMM ModMii Edition will only allow you to install a different region System Menu WAD if you enter the Konami Code.\x3cbr\x3e\x3cbr\x3e>>"%Drive%\%guidename%"
::-------Custom system menu fix------
:pickmeup
if /i "%customSMfix%" NEQ "yes" goto:skipCSMfix
if /i "%secondmmmrun%" EQU "yes" goto:skipCSMfix
::support\sfk echo -spat \x3cb\x3eNOTE:\x3c/b\x3e YAWMM ModMii Edition will only allow you to install a System Menu WAD by entering the Konami Code because you have a custom System Menu installed.\x3cbr\x3e\x3cbr\x3e>>"%Drive%\%guidename%"
::skip using MMM to just install the SM wad, not needed since using YAWM ModMii Edition
goto:skipCSMfix
copy /y "%Drive%\%guidename%"+Support\Guide\WADheader.001 "%Drive%\%guidename%">nul
set secondmmmrun=yes
set guidewadcount=0
goto:customSMfix
:skipCSMfix
set secondmmmrun=
::if UpdatePri is nul it means it was not installed to begin with
if "%UpdatePri%"=="" goto:tinyskip
if /i "%customSMfix%" EQU "yes" support\sfk echo -spat \x3cb\x3eWARNING:\x3c/b\x3e Whenever you install a new System Menu, like you just did, Priiloader will get uninstalled unless you used yawmME and were prompted and chose to retain it. If you accidentally removed Priiloader ^(re^)install it immediately.\x3cbr\x3e>>"%Drive%\%guidename%"
:tinyskip
::if /i "%customSMfix%" EQU "yes" support\sfk echo -spat \x3cbr\x3e>>"%Drive%\%guidename%"
::if /i "%customSMfix%" EQU "yes" support\sfk echo -spat \x3cb\x3eNOTE:\x3c/b\x3e If you are able to load MMM but the Wiimote doesn't respond, try using an older Wiimote without Motion+ built in as MMM doesn't support these newer contollers; a gamecube controller also works. If you don't have either, google for WiiMod Lite and use it in place of MMM to install the System Menu WAD listed above. Be careful with WiiMod Lite, after you finish installing your WAD be sure to press the Home button to return to the HBC immediately otherwise if you press B to return to the main menu it may crash.\x3cbr\x3e>>"%Drive%\%guidename%"
if /i "%customSMfix%" EQU "yes" goto:tinyskip
if /i "%MENU1%" EQU "RC" echo ^<font color^=^"red^"^>^<b^>WARNING: Do NOT power off your Wii or exit the HBC or you may semi-brick.^<^/b^>^<^/font^> At this critical stage you are halfway through a region change, unless you have Bootmii installed to boot2 or you used yawmME and were prompted and chose to retain Priiloader you will semi-brick ^<u^>if^<^/u^> you exit the HBC before installing Priiloader or fixing your AREA/SysMenu mismatch using Any Region Changer.^<br^>^<br^>>>"%Drive%\%guidename%"
if /i "%FIRMSTART%" EQU "U2" goto:skipwarning
if /i "%FIRMSTART%" EQU "v" goto:skipwarning
::if UpdatePri is nul it means it was not installed to begin with
if "%UpdatePri%"=="" goto:skipwarning
if /i "%FIRM%" NEQ "%FIRMSTART%" support\sfk echo -spat \x3cb\x3eWARNING:\x3c/b\x3e Whenever you install a new System Menu, like you just did, Priiloader will get uninstalled unless you used yawmME and were prompted and chose to retain it. If you accidentally removed Priiloader ^(re^)install it immediately.\x3cbr\x3e>>"%Drive%\%guidename%"
:skipwarning
:tinyskip
::extra line break
support\sfk echo -spat \x3cbr\x3e>>"%Drive%\%guidename%"
set installwads=done
::::since yawmME can retain priloader, we can always install Priiloader first (unless custom SM version is detected)
::if /i "%FIRM%" NEQ "%FIRMSTART%" goto:PRIIGUIDE
if /i "%MENU1%" EQU "RC" goto:ARCGUIDE
if /i "%customSMfix%" NEQ "yes" goto:skipSMfix
if /i "%FIRMSTART%" EQU "v" goto:PRIIGUIDEvWii2
goto:PRIIGUIDE
:skipSMfix
If /i "%MENU1%" NEQ "SU" goto:SKIPWAD
if /i "%IOS58%" EQU "*" goto:PRIIGUIDE
:SKIPWAD
::vWii Optional Stuff
if /i "%FIRMSTART%" EQU "U2" goto:continueVWII
if /i "%FIRMSTART%" NEQ "v" goto:skipVWiiOptional
:continueVWII
::If /i "%vWii80Installer%" EQU "*" copy /y "%Drive%\%guidename%"+Support\Guide\vWii80.001 "%Drive%\%guidename%">nul
If /i "%csminstaller%" NEQ "*" goto:skipVWiiOptional
copy /y "%Drive%\%guidename%"+Support\Guide\csm-installer.001 "%Drive%\%guidename%">nul
support\sfk filter "%Drive%\%guidename%" -rep _"<!--vWiiTheme--"__ -rep _"--vWiiTheme-->"__ -write -yes>nul
echo ^<li^>^<b^>Navigate to the theme you would like to install^<^/b^> that corresponds to your specific System Menu Version ^(vWii%REGION%^) then ^<b^>Press ^<kbd^>A^<^/kbd^>^<^/b^> to select it.^<li^>^<b^>Press ^<kbd^>+^<^/kbd^>^<^/b^> to install the theme. >>"%Drive%\%guidename%"
::echo ^<ul style^=align^=^"left^" type^=^"square^"^>^<li^>If the theme is unsigned you will need to Press A one more time to confirm.^<li^>When finished it should display ^"Complete^"^<^/ul^>>>"%Drive%\%guidename%"
echo ^<li^>^<b^>Navigate to "Return to Wii System Menu" then Press ^<kbd^>A^<^/kbd^>^<^/b^> to confirm the theme installed successfully.>>"%Drive%\%guidename%"
If /i "%REGION%" EQU "U" set appfile=0000001f_4.3U_vWii.app
If /i "%REGION%" EQU "J" set appfile=0000001c_4.3J_vWii.app
If /i "%REGION%" EQU "E" set appfile=00000022_4.3E_vWii.app
echo ^<ul style^=align^=^"left^" type^=^"square^"^>^<li^>If you later want to restore the original theme launch csm-installer and install %appfile%.^<^/ul^>^<^/ol^>^<br^>>>"%Drive%\%guidename%"
:skipVWiiOptional
::------------------------reinstall HBC / Fix Upsidedown homebrew channel----------------------------
:reinstallHBC
If /i "%HM%" NEQ "*" goto:MyMGuide
::if /i "%MENU1%" NEQ "SU" support\sfk echo -spat \x3cfont size=\x225\x22\x3e\x3cli\x3eReinstall the Homebrew Channel (if applicable)\x3c/li\x3e\x3c/font\x3e\x3cbr\x3e>>"%Drive%\%guidename%"
::syscheck updater logic
If /i "%MENU1%" NEQ "SU" goto:miniskip
if /i "%IOS58%" NEQ "*" goto:MyMGuide
::redirect to initial HBC installation instructions instead of reinstall for when no prior instructions exist
if /i %HBCversion% GEQ 1.1.0 goto:UpdateHBCfirst
::support\sfk echo -spat \x3cfont size=\x225\x22\x3e\x3cli\x3eReinstall the Homebrew Channel\x3c/li\x3e\x3c/font\x3e\x3cbr\x3e>>"%Drive%\%guidename%"
::copy /y "%Drive%\%guidename%"+Support\Guide\HBCreinstall2.001 "%Drive%\%guidename%">nul
goto:MyMGuide
:miniskip
::copy /y "%Drive%\%guidename%"+Support\Guide\HBCreinstall.001 "%Drive%\%guidename%">nul
::copy /y "%Drive%\%guidename%"+Support\Guide\HBCreinstall2.001 "%Drive%\%guidename%">nul
::------------------------Install Custom Theme Using MyMenuify----------------------------
:MyMGuide
if /i "%ctype%" EQU "WiiU" goto:noMyM
If /i "%csminstaller%" NEQ "*" goto:noMyM
If /i "%FIRM%%REGION%" EQU "4.1J" set appfile=78
If /i "%FIRM%%REGION%" EQU "4.1K" set appfile=81
If /i "%FIRM%%REGION%" EQU "4.1U" set appfile=7b
If /i "%FIRM%%REGION%" EQU "4.1E" set appfile=7e
If /i "%FIRM%%REGION%" EQU "4.2J" set appfile=84
If /i "%FIRM%%REGION%" EQU "4.2U" set appfile=87
If /i "%FIRM%%REGION%" EQU "4.2E" set appfile=8a
If /i "%FIRM%%REGION%" EQU "4.2K" set appfile=8d
If /i "%FIRM%%REGION%" EQU "4.3J" set appfile=94
If /i "%FIRM%%REGION%" EQU "4.3U" set appfile=97
If /i "%FIRM%%REGION%" EQU "4.3E" set appfile=9a
If /i "%FIRM%%REGION%" EQU "4.3K" set appfile=9d
copy /y "%Drive%\%guidename%"+Support\Guide\csm-installer.001 "%Drive%\%guidename%">nul
support\sfk filter "%Drive%\%guidename%" -rep _"<!--WiiTheme--"__ -rep _"--WiiTheme-->"__ -write -yes>nul
echo ^<li^>^<b^>Navigate to the theme you would like to install^<^/b^> that corresponds to your specific System Menu Version ^(%FIRM%%REGION%^) then ^<b^>Press ^<kbd^>A^<^/kbd^>^<^/b^> to select it.^<li^>^<b^>Press ^<kbd^>+^<^/kbd^>^<^/b^> to install the theme. >>"%Drive%\%guidename%"
echo ^<li^>Exit to the Wii Menu to confirm the theme installed successfully.>>"%Drive%\%guidename%"
::copy /y "%Drive%\%guidename%"+Support\Guide\MyMenuify.001 "%Drive%\%guidename%">nul
::echo ^<li^>^<b^>Navigate to the theme you would like to install^<^/b^> that corresponds to your specific System Menu Version ^(%FIRM%%REGION%^) then ^<b^>Press ^<kbd^>A^<^/kbd^>^<^/b^> to select it.^<li^>^<b^>Press ^<kbd^>A^<^/kbd^>^<^/b^> to install the theme. >>"%Drive%\%guidename%"
::echo ^<ul style^=align^=^"left^" type^=^"square^"^>^<li^>If the theme is unsigned you will need to Press A one more time to confirm.^<li^>When finished it should display ^"Complete^"^<^/ul^>>>"%Drive%\%guidename%"
::echo ^<li^>Press any button to exit to the System Menu.>>"%Drive%\%guidename%"
::echo ^<ul style^=align^=^"left^" type^=^"square^"^>^<li^>If you later want to restore the original theme launch MyMenuifyMod and either enter "+" or install 000000%appfile%_%FIRM%%REGION%.app.^<^/ul^>^<^/ol^>^<br^>>>"%Drive%\%guidename%"
echo ^<ul style^=align^=^"left^" type^=^"square^"^>^<li^>If you later want to restore the original theme launch csm-installer and install 000000%appfile%_%FIRM%%REGION%.app.^<^/ul^>^<^/ol^>^<br^>>>"%Drive%\%guidename%"
:noMyM
::--------End of hacking steps listings (and line break). This must be here for the hacking guide------------
support\sfk echo -spat \x3c/ol\x3e\x3cbr\x3e>>"%Drive%\%guidename%"
if /i "%USBGUIDE%" EQU "Y" goto:USBGUIDESTEP1
::--------------------After Modding-----------------------
:AFTERMODDING
if /i "%FIRMSTART%" NEQ "U2" goto:notU2
echo ^<font size^=^"6^"^>^<li^>^<a name^=^"Done^"^>After Modding your WiiU and vWii^<^/a^>^<^/li^>^<^/font^>^<br^>^<ul style^=^align^=^"left^" type^=^"disc^"^>>>"%Drive%\%guidename%"
copy /y "%Drive%\%guidename%"+Support\Guide\AfterModdingU.001 "%Drive%\%guidename%">nul
if /i "%USBGUIDE%" NEQ "Y" echo ^<li^>To play Wii ^(and Gamecube^) games off a USB hard drive, run the USB-Loader Setup wizard from ModMii's Main Menu.>>"%Drive%\%guidename%"
copy /y "%Drive%\%guidename%"+Support\Guide\AfterModdingV.001 "%Drive%\%guidename%">nul
goto:supportxflak
:notU2
if /i "%FIRMSTART%" NEQ "V" goto:notV
echo ^<font size^=^"6^"^>^<li^>^<a name^=^"Done^"^>After Modding your vWii^<^/a^>^<^/li^>^<^/font^>^<br^>^<ul style^=^align^=^"left^" type^=^"disc^"^>>>"%Drive%\%guidename%"
if /i "%USBGUIDE%" NEQ "Y" echo ^<li^>To play Wii ^(and Gamecube^) games off a USB hard drive, run the USB-Loader Setup wizard from ModMii's Main Menu.>>"%Drive%\%guidename%"
echo ^<li^>Optionally use ^<a href^=^"https^:^/^/www.gamebrew.org^/wiki^/UStealth_Wii_U^" target^=^"_blank^"^>UStealth for Windows^<^/a^> ^(also available on ModMii's Download Page 5^) or the homebrew app ^<a href^=^"https^:^/^/oscwii.org^/library^/app^/USB_Toggle^" target^=^"_blank^"^>USB Toggle 2.0^<^/a^> to hide USB hard drives so that the WiiU no longer asks you to Format them. The disk is then also hidden from Windows. If you want to copy something onto it later you have to first make your device visible again using either of the same tools. Of course you should not format it if Windows asks you to!>>"%Drive%\%guidename%"
copy /y "%Drive%\%guidename%"+Support\Guide\AfterModdingV.001 "%Drive%\%guidename%">nul
::remove WiiU to vWii forwarder comment since only vWii is modded
support\sfk filter "%Drive%\%guidename%" -!"wii-u-to-vwii-forwarder-channels-ac.618060" -write -yes>nul
goto:supportxflak
:notV
echo ^<font size^=^"6^"^>^<li^>^<a name^=^"Done^"^>After Modding your Wii^<^/a^>^<^/li^>^<^/font^>^<br^>^<ul style^=^align^=^"left^" type^=^"disc^"^>>>"%Drive%\%guidename%"
if /i "%MENU1%" EQU "RC" echo ^<li^>Some of your currently installed Nintendo channels (e.g. News, Internet, etc.) may not work on your new region. To fix this, download and install the channels for your new %Region% Region (see WiiLink note below). Duplicate channels can optionally be removed by googling for Any Title Deleter, but be careful, you can easily brick your Wii with this tool if you delete the wrong thing!>>"%Drive%\%guidename%"
if /i "%MENU1%" EQU "U" goto:skip
if /i "%USBGUIDE%" NEQ "Y" echo ^<li^>To play Wii ^(and Gamecube^) games off a USB hard drive, run the USB-Loader Setup wizard from ModMii's Main Menu.>>"%Drive%\%guidename%"
:skip
copy /y "%Drive%\%guidename%"+Support\Guide\AfterModding.001 "%Drive%\%guidename%">nul
::---------------------credits and support XFLAK-----------------------
:supportxflak
copy /y "%Drive%\%guidename%"+Support\Guide\Credits-XFlak-End.001 "%Drive%\%guidename%">nul
::guide finish, remove carriage returns and open
support\sfk filter "%Drive%\%guidename%" -lsrep _.__ -rep _"printbutton {"_".printbutton {"_ -write -yes>nul
::replace <kbd> tags for keyboard buttons with <kbd class="keyboard-key nowrap" style="border: 1px solid #aaa; border-radius: 0.2em; box-shadow: 0.1em 0.1em 0.2em rgba(0,0,0,0.1); background-color: #f9f9f9; background-image: linear-gradient(to bottom, #eee, #f9f9f9, #eee); color: #000; padding: 0.1em 0.3em; font-family: inherit; font-size: 0.85em;">
support\sfk filter -spat "%Drive%\%guidename%" -rep _"<kbd>"_"<kbd class=\x22keyboard-key nowrap\x22 style=\x22border: 1px solid #aaa; border-radius: 0.2em; box-shadow: 0.1em 0.1em 0.2em rgba(0,0,0,0.1); <kbd2>"_ -write -yes>nul
support\sfk filter -spat "%Drive%\%guidename%" -rep _"<kbd2>"_"background-color: #f9f9f9; background-image: linear-gradient(to bottom, #eee, #f9f9f9, #eee); color: #000; padding: 0.1em 0.3em; font-family: inherit; font-size: 0.85em;\x22>"_ -write -yes>nul
::Inject Region Change warning into the Priiloader step
if /i "%MENU1%" EQU "RC" support\sfk filter -spat "%Drive%\%guidename%" -rep _"<li>Access Priiloader by powering off the Wii"_"<li><b>If Priiloader failed to install, do NOT power off your Wii or exit the HBC</b>, try the installer again. RCREPLACEME"_ -write -yes>nul
if /i "%MENU1%" EQU "RC" support\sfk filter -spat "%Drive%\%guidename%" -rep _"RCREPLACEME"_"If still unsuccessful, proceed immediately to the Any Region Changer step to fix your AREA/SysMenu mismatch RCREPLACEME"_ -write -yes>nul
if /i "%MENU1%" EQU "RC" support\sfk filter -spat "%Drive%\%guidename%" -rep _"RCREPLACEME"_"otherwise you will semi-brick once you exit a homebrew environment (unless you have Bootmii boot2).<li>Access Priiloader by powering off the Wii"_ -write -yes>nul
if /i "%debug%" EQU "on" goto:skip
::instead of the below, start whatever browser that is used for http, so users aren't prompted to select what app to use if html file association not set
::start /D "%Drive%" %guidename%
set "htmlfile=%Drive%\%guidename%"
if /i "%Drive:~1,1%" NEQ ":" set "htmlfile=%cd%\%Drive%\%guidename%"
setlocal EnableDelayedExpansion
for /F "tokens=3" %%i in ('reg query HKEY_CURRENT_USER\Software\Microsoft\Windows\Shell\Associations\UrlAssociations\http\UserChoice /v ProgID') do for /F "tokens=2*" %%j in ('reg query HKEY_LOCAL_MACHINE\Software\Classes\%%i\shell\open\command /ve') do set cmd=%%k
::don't start now
::start "" !cmd:%%1=file://%htmlfile:\=/%%1!
::when launched via drag and drop or cmd line for some reason there's an extra arg that needs to be removed\cleaned, example below
::start "" "C:\Program Files (x86)\Google\Chrome\Application\chrome.exe" --single-argument file://C:/Users/XFlak/Downloads/ModMii/COPY_TO_SD/ModMii_sysCheck_Updater_Guide.htmlC:\Users\XFlak\Downloads\ModMii\syschecks\sysCheck
echo start "" !cmd:%%1=file://%htmlfile:\=/%%1!>temp\launchguide.bat
setlocal DISABLEDELAYEDEXPANSION
support\sfk filter -quiet "temp\launchguide.bat" -rep _".html*"_".html"_ -write -yes
call "temp\launchguide.bat"
del "temp\launchguide.bat">nul
:skip
::---------------CMD LINE MODE-------------
if /i "%cmdlinemode%" NEQ "Y" goto:notcmdfinish
if /i "%cmdguide%" NEQ "G" goto:notcmdfinish
if exist support\settings.bak move /y support\settings.bak support\settings.bat>nul
exit
:notcmdfinish
if /i "%AbstinenceWiz%" NEQ "Y" goto:notAbstinenceWiz
set casper=
set BB1=
set BB2=
set SMASH=
set PWNS=
set Twi=
set YUGI=
set Bathaxx=
set ROTJ=
set TOS=
set f32=
if /i "%SETTINGS%" EQU "G" goto:SNKNANDCONFIRM
goto:SNEEKINSTALLER
:notAbstinenceWiz
if /i "%SETTINGS%" EQU "G" goto:DOWNLOADQUEUE
if /i "%SETTINGSHM%" EQU "G" goto:HACKMIISOLUTION
goto:DLSETTINGS2
::-------------USB-Loader Setup Steps--------------
:USBGUIDESTEP1
support\sfk echo -spat \x3cfont size=\x226\x22\x3e\x3cli\x3eUSB Loader and Hard Drive setup\x3c/li\x3e\x3c/font\x3e\x3cbr\x3e>>"%Drive%\%guidename%"
if /i "%MENU1%" EQU "W" support\sfk echo -spat The rest of the guide is performed on your computer in order to set up your USB-Loader for your Wii or vWii. Also note that a FAT32 SD\SDHC\SDXC Card can optionally be used in place of a Hard Drive.\x3cbr\x3e\x3cbr\x3e>>"%Drive%\%guidename%"
::add <ol> but not for Abstinence Wizard
support\sfk echo -spat \x3col\x3e>>"%Drive%\%guidename%"
::---------------------Connected Drive Information Spoiler (2 of 2)------------------------
if exist "%temp%\Get-Disk.txt" goto:USBSpoiler
if exist "%temp%\format2.txt" goto:USBSpoiler
echo powershell "Invoke-Command {Get-Disk | Format-Table -AutoSize -Wrap}" ^>Get-Disk.txt>"%temp%\Get-Disk.bat"
::echo wmic logicaldisk where FileSystem!=null get deviceid,filesystem^>format.txt>>"%temp%\Get-Disk.bat"
echo powershell "Invoke-Command {Get-CimInstance -ClassName Win32_LogicalDisk | Where-Object {$PSItem.FileSystem -ne $null} | Select-Object DeviceID,Filesystem}" ^>format2.txt>>"%temp%\Get-Disk.bat"
echo exit>>"%temp%\Get-Disk.bat"
::vbs to run script invisibly, "nircmd.exe exec hide" can run hidden but not hide+wait
echo Set ws = WScript.CreateObject("WScript.Shell")>"%temp%\Get-Disk.vbs"
echo cmd = "%temp%\Get-Disk.bat">>"%temp%\Get-Disk.vbs"
echo ret = ws.Run(cmd, 0, True)>>"%temp%\Get-Disk.vbs"
echo Set ws = Nothing>>"%temp%\Get-Disk.vbs"
if exist "%temp%\Get-Disk.txt" del "%temp%\Get-Disk.txt">nul
if exist "%temp%\format2.txt" del "%temp%\format2.txt">nul
if not exist "%temp%\Get-Disk.bat" goto:SkipUSBSpoiler
if not exist "%temp%\Get-Disk.vbs" goto:SkipUSBSpoiler
set "ModMiiDir=%cd%"
::echo.
::echo If you get a Windows Script Host error referring to Get-Disk.vbs, you can safely ignore it ^& click OK to continue.
::echo.
cd /d "%temp%"
@ping 127.0.0.1 -n 1 -w 1000> nul
start /wait Get-Disk.vbs
cd /d "%ModMiiDir%"
::::if both missing likely an error occured, so skip next time
::if exist "%temp%\format2.txt" goto:skip
::if not exist "%temp%\Get-Disk.txt" (set SkipGetDisk=Y) & (echo set SkipGetDisk=Y>>Support\settings.bat)
:::skip
if exist "%temp%\Get-Disk.txt" support\sfk filter -quiet "%temp%\Get-Disk.txt" -ls!- -ls!0 -no-empty-lines -no-blank-lines -write -yes
::if exist "%temp%\format.txt" cmd /a /c type "%temp%\format.txt">"%temp%\format2.txt"
support\sfk filter -quiet "%temp%\format2.txt" -ls!- -ls!"%homedrive%" -no-empty-lines -no-blank-lines -write -yes
::check if file is null
::for %%R in (temp\Get-Disk.txt) do if %%~zR lss 1 (echo no removable drives) else (echo yes removable drives)
:USBSpoiler
::check Removable Disk filesystem format types, if no : in output, then no removable devices connected
if not exist "%temp%\format2.txt" goto:SkipUSBSpoiler
findStr /I ":" "%temp%\format2.txt" >nul
IF ERRORLEVEL 1 goto:SkipUSBSpoiler
echo External hard drive partition style\format information for drives that were connected when this guide was created has been saved to the spoiler below.^<br^>^<br^>>>"%Drive%\%guidename%"
::add spoiler for Connected Drive Information if any connected
support\sfk echo -spat "<div style><div class=\x22spoilerfont\x22 style=\x22text-align:left;\x22><input value=\x22 Click to see Connected Drive Information \x22 style=\x22margin: 0px; padding: 0px; font-size: x-large;\x22 onclick=\x22if (this.parentNode.parentNode.getElementsByTagName('div')[1].getElementsByTagName('div')[0].style.display \x21= '') { this.parentNode.parentNode.getElementsByTagName('div')[1].getElementsByTagName('div')[0].style.display = ''; this.innerText = ''; this.value = ' Click to hide Connected Drive Information '; } else { this.parentNode.parentNode.getElementsByTagName('div')[1].getElementsByTagName('div')[0].style.display = 'none'; this.innerText = ''; this.value = ' Click to see Connected Drive Information '; }\x22 type=\x22button\x22></div><div class=\x22alt2\x22 style=\x22border: 0px inset ; margin: 0px; padding: 6px;\x22><div style=\x22display: none;\x22>">>"%Drive%\%guidename%"
echo ^<pre^>>>"%Drive%\%guidename%"
copy /y "%Drive%\%guidename%"+"%temp%\format2.txt" "%Drive%\%guidename%">nul
::line count, count lines, if only 1 then don't show
set /a TotalDrives=0
if not exist "%temp%\Get-Disk.txt" goto:here
cd /d "%temp%"
for /f %%a in (Get-Disk.txt) do set /a TotalDrives+=1
cd /d "%ModMiiDir%"
::echo %TotalDrives%
::if /i %TotalDrives% GTR 1 echo ^<^/pre^>Partition Style below should be MBR by default for almost all SD Cards. If for some reason yours is not, convert it to MBR using the directions from ModMii's USB-Loader Setup guide.^<br^>^<pre^>>>"%Drive%\%guidename%"
if /i %TotalDrives% GTR 1 echo ^<br^>>>"%Drive%\%guidename%"
if /i %TotalDrives% GTR 1 copy /y "%Drive%\%guidename%"+"%temp%\Get-Disk.txt" "%Drive%\%guidename%">nul
:here
::copy /y "%Drive%\%guidename%"+"%temp%\format2.txt" "%Drive%\%guidename%">nul
echo ^<^/pre^>^<^/div^>^<^/div^>^<^/div^>^<br^>>>"%Drive%\%guidename%"
:SkipUSBSpoiler
:CasperPickUp
copy /y "%Drive%\%guidename%"+Support\Guide\MBR.001 "%Drive%\%guidename%">nul
if /i "%PCSAVE%" EQU "Portable" goto:portableF32
if /i "%PCSAVE%" NEQ "Auto" goto:skip
if /i "%Homedrive%" NEQ "%cd:~0,2%" goto:portableF32
:skip
support\sfk filter -quiet -spat "%Drive%\%guidename%" -rep _"shortcuts on your Start Menu or Desktop."_"shortcuts on your Start Menu or Desktop or directly from %cd:_=\x5f%\Program Files"_ -write -yes
if /i "%Homedrive%" NEQ "%cd:~0,2%" support\sfk filter -quiet "%Drive%\%guidename%" -rep _"<!--formatwarning"__ -rep _"formatwarning-->"__ -write -yes
goto:noportableF32
:portableF32
if /i "%USBCONFIG%" EQU "USB" support\sfk filter -quiet -spat "%Drive%\%guidename%" -rep _"shortcuts on your Start Menu or Desktop."_"%DRIVEU:_=\x5f%\Program Files"_ -write -yes
if /i "%USBCONFIG%" NEQ "USB" support\sfk filter -quiet -spat "%Drive%\%guidename%" -rep _"shortcuts on your Start Menu or Desktop."_"%DRIVE:_=\x5f%\Program Files"_ -write -yes
support\sfk filter -quiet "%Drive%\%guidename%" -rep _"<!--formatwarning"__ -rep _"formatwarning-->"__ -write -yes
:noportableF32
copy /y "%Drive%\%guidename%"+Support\Guide\side_spoiler_script.001 "%Drive%\%guidename%">nul
support\sfk filter -quiet "%Drive%\%guidename%" -rep _"//document.getElementById"_"document.getElementById"_ -write -yes
if /i "%AbstinenceWiz%" NEQ "Y" goto:notAW
::for AW remove all buttons that don't use FAT32
support\sfk filter "%Drive%\%guidename%" -!"'FormatGroup', 'WBFS'" -write -yes>nul
support\sfk filter "%Drive%\%guidename%" -!"'FormatGroup', 'NTFS'" -write -yes>nul
goto:AbstinenceWizGUIDE
:notAW
if /i "%USBCONFIG%" NEQ "USB" goto:skipcopytousb
if /i "%DriveU:~1,1%" EQU ":" set "fulldriveu=%Driveu%"
if /i "%DriveU:~1,1%" NEQ ":" set "fulldriveu=%cd%\%Driveu%"
support\sfk echo -spat \x3cfont size=\x225\x22\x3e\x3cli\x3eCopy Files to the Hard Drive\x3c/li\x3e\x3c/font\x3e\x3cbr\x3e^<ul style^=align^=^"left^" type^=^"disc^"^>^<li^>At this time you should copy the files ModMii downloaded to the root of your hard-drive\partition (or SD Card if your HDD is WBFS).^<ul style^=align^=^"left^" type^=^"square^"^>^<li^>The files should be saved here: "%fulldriveu%"^<^/ul^>\x3cbr\x3e>>"%Drive%\%guidename%"
copy /y "%Drive%\%guidename%"+Support\Guide\FolderStructure_Wii.001 "%Drive%\%guidename%">nul
support\sfk echo -spat ^<^/ul^>When finished copying, you can proceed with the optional steps below or safely remove the hard drive from your computer and plug it into USB port0 on your console to start playing^!\x3cbr\x3e\x3cbr\x3e>>"%Drive%\%guidename%"
:skipcopytousb
::-------------WiiBackupManager--------------
support\sfk echo -spat \x3cfont size=\x225\x22\x3e\x3cli\x3eManage Game backups (optional)\x3c/li\x3e\x3c/font\x3e\x3cbr\x3e>>"%Drive%\%guidename%"
echo ^<ul style^=align^=^"left^" type^=^"disc^"^>>>"%Drive%\%guidename%"
if /i "%PCSAVE%" EQU "Portable" goto:portableWBM
if /i "%PCSAVE%" NEQ "Auto" goto:skip
if /i "%Homedrive%" NEQ "%cd:~0,2%" goto:portableWBM
:skip
echo ^<li^>Launch the below tools from shortcuts on your Start Menu or Desktop.>>"%Drive%\%guidename%"
goto:noportableWBM
:portableWBM
if /i "%USBCONFIG%" EQU "USB" echo ^<li^>WiiBackupManager.exe is saved here: "%DRIVEU%\Program Files\WiiBackupManager">>"%Drive%\%guidename%"
if /i "%USBCONFIG%" EQU "USB" echo ^<li^>NKitProcessingApp.exe is saved here: "%DRIVEU%\Program Files\NKit">>"%Drive%\%guidename%"
if /i "%USBCONFIG%" EQU "USB" echo ^<li^>GCBM.exe is saved here: "%DRIVEU%\Program Files\GCBM">>"%Drive%\%guidename%"
if /i "%USBCONFIG%" NEQ "USB" echo ^<li^>WiiBackupManager.exe is saved here: "%DRIVE%\Program Files\WiiBackupManager">>"%Drive%\%guidename%"
if /i "%USBCONFIG%" NEQ "USB" echo ^<li^>NKitProcessingApp.exe is saved here: "%DRIVE%\Program Files\NKit">>"%Drive%\%guidename%"
if /i "%USBCONFIG%" NEQ "USB" echo ^<li^>GCBM.exe is saved here: "%DRIVE%\Program Files\GCBM">>"%Drive%\%guidename%"
:noportableWBM
::echo ^<^/ul^>^<br^>^<font size="5"^>^<b^>Wii Backup Manager^</b^>^</font^>^<br^>>>"%Drive%\%guidename%"
::echo ^<i^>Wii Backup Manager (WBM) is a Windows program to help transfer Wii games to and from hard drives and SD cards.^<br^>It can also download game covers, list your games, identify what games are missing between devices, and more.^<^/i^>^<br^>^<br^>>>"%Drive%\%guidename%"
copy /y "%Drive%\%guidename%"+Support\Guide\WBM.001 "%Drive%\%guidename%">nul
echo ^<ul style^=align^=^"left^" type^=^"disc^"^>>>"%Drive%\%guidename%"
if /i "%LOADER%" EQU "ALL" support\sfk echo -spat "\x3cli\x3eTo copy Wii Discs, launch USB-Loader GX or Configurable USB-Loader and insert the disc into your Wii, if you're not prompted to copy\install the game you can press <kbd>+</kbd> to start making a backup.">>"%Drive%\%guidename%"
if /i "%LOADER%" EQU "CFG" support\sfk echo -spat "\x3cli\x3eTo copy Wii Discs, launch Configurable USB-Loader and insert the disc into your Wii, then press <kbd>+</kbd>.">>"%Drive%\%guidename%"
if /i "%LOADER%" EQU "GX" support\sfk echo -spat "\x3cli\x3eTo copy Wii Discs, launch USB-Loader GX and insert the disc into your Wii, if you're not prompted to copy\install the game you can press <kbd>+</kbd> to start making a backup.">>"%Drive%\%guidename%"
if /i "%LOADER%" EQU "FLOW" support\sfk echo -spat "\x3cli\x3eWiiFlow Lite cannot be used to copy Wii Discs. You will have to use a different USB-Loader or an older version of WiiFlow.">>"%Drive%\%guidename%"
echo ^<li^>To copy GameCube (or Wii) Discs, launch "CleanRip" from the HBC and insert the disc into your Wii, then follow the very simple on-screen instructions. Note that CleanRip does not support devices formatted as WBFS.>>"%Drive%\%guidename%"
echo ^<ul style^=align^=^"left^" type^=^"square^"^>^<li^>^<b^>Warning^<^/b^>^: Using your Wii to rip games to NTFS is ^<u^>very^<^/u^> unstable, it is highly recommended to rip games to a FAT32 or WBFS formatted HDD, then transfer them to your NTFS drive using a computer. Recall that GameCube games cannot be played when saved to NTFS devices.^<^/ul^>>>"%Drive%\%guidename%"
echo ^<^/ul^>^<br^>>>"%Drive%\%guidename%"
::-------------CONFIGURE/CUSTOMIZE USB-LOADER (OPTIONAL)-------------
copy /y "%Drive%\%guidename%"+Support\Guide\CustomizeLoader.001 "%Drive%\%guidename%">nul
if /i "%LOADER%" EQU "GX" echo ^<li^>If you have questions about getting started with USB-Loader GX ^<a href^=^"https^:^/^/wii.hacks.guide^/wii-loaders.html^#usb-loader-gx^" target^=^"_blank^"^>click here^<^/a^>.^<br^>>>"%Drive%\%guidename%"
if /i "%LOADER%" EQU "FLOW" echo ^<li^>If you have questions about getting started with WiiFlow ^<a href^=^"https^:^/^/wii.hacks.guide^/wii-loaders.html^#wiiflow-lite^" target^=^"_blank^"^>click here^<^/a^>.^<br^>>>"%Drive%\%guidename%"
if /i "%LOADER%" EQU "FLOW" echo ^<ul style^=align^=^"left^" type^=^"square^"^>>>"%Drive%\%guidename%"
if /i "%LOADER%" EQU "FLOW" echo ^<li^>WiiFlow Lite emulator plugins allow the loader to also launch games for classic consoles as well. Grab the emulator plugins pack from ^<a href^=^"https^:^/^/gbatemp.net^/threads^/the-great-quest-for-wiiflow-plugins-tm-a-call-for-adventurers.563575" target^=^"_blank^"^>click here^<^/a^>.^<br^>>>"%Drive%\%guidename%"
if /i "%LOADER%" EQU "FLOW" echo ^<li^>A popular WiiFlow Lite theme is the beautiful 'Rhapsodii Shima' theme. Check it out by clicking ^<a href^=^"https^:^/^/gbatemp.net^/threads^/rhapsodii-shima-5-4.555062^" target^=^"_blank^"^>here^<^/a^>.^<^/ul^>>>"%Drive%\%guidename%"
if /i "%LOADER%" EQU "ALL" echo ^<li^>If you have questions about getting started with USB-Loader GX or WiiFlow ^<a href^=^"https^:^/^/wii.hacks.guide^/wii-loaders.html^" target^=^"_blank^"^>click here^<^/a^>.^<br^>>>"%Drive%\%guidename%"
if /i "%LOADER%" EQU "ALL" echo ^<ul style^=align^=^"left^" type^=^"square^"^>>>"%Drive%\%guidename%"
if /i "%LOADER%" EQU "ALL" echo ^<li^>WiiFlow Lite emulator plugins allow the loader to also launch games for classic consoles as well. Grab the emulator plugins pack from ^<a href^=^"https^:^/^/gbatemp.net^/threads^/the-great-quest-for-wiiflow-plugins-tm-a-call-for-adventurers.563575" target^=^"_blank^"^>click here^<^/a^>.^<br^>>>"%Drive%\%guidename%"
if /i "%LOADER%" EQU "ALL" echo ^<li^>A popular WiiFlow Lite theme is the beautiful 'Rhapsodii Shima' theme. Check it out by clicking ^<a href^=^"https^:^/^/gbatemp.net^/threads^/rhapsodii-shima-5-4.555062^" target^=^"_blank^"^>here^<^/a^>.^<^/ul^>>>"%Drive%\%guidename%"
::USBFOLDER indicates cfg usb loader
if /i "%USBFOLDER%" NEQ "*" goto:skip
::---!!!DISABLED BUILDING CONFIG!!!---::
::copy /y "%Drive%\%guidename%"+Support\Guide\CustomizeCFG.001 "%Drive%\%guidename%">nul
if /i "%USBCONFIG%" EQU "USB" echo ^<li^>To customize CFG USB-Loader use the Configurator for Configurable USB-Loader found here: "%DRIVEU%\usb-loader\CfgLoaderConfigurator.exe"^<br^>>>"%Drive%\%guidename%"
if /i "%USBCONFIG%" NEQ "USB" echo ^<li^>To customize CFG USB-Loader use the Configurator for Configurable USB-Loader found here: "%DRIVE%\usb-loader\CfgLoaderConfigurator.exe"^<br^>>>"%Drive%\%guidename%"
echo ^<ul style^=align^=^"left^" type^=^"square^"^>>>"%Drive%\%guidename%"
echo ^<li^>For tips and tricks on using the Configurator ^<a href^=^"http^:^/^/gwht.wikidot.com^/configurable-options^" target^=^"_blank^"^>click here^<^/a^>.^<^/ul^>^<br^>>>"%Drive%\%guidename%"
:skip
::ADD end of ordered list and line break for ALL usb-loader guides (</ol><br>)
support\sfk echo -spat \x3c/ol\x3e\x3cbr\x3e>>"%Drive%\%guidename%"
if /i "%MENU1%" EQU "W" goto:AFTERMODDING
GOTO:supportxflak
::---------AbstinenceWizguide (after USB SETUP)----------
:AbstinenceWizGUIDE
::copy files to USB
if /i "%SNEEKTYPE:~0,1%" EQU "U" support\sfk echo -spat \x3cfont size=\x225\x22\x3e\x3cli\x3eCopy Files to the Hard Drive\x3c/li\x3e\x3c/font\x3e\x3cbr\x3eCopy everything inside the "%DRIVEU%" folder to the root of your FAT32 hard-drive\partition.\x3cbr\x3e\x3cbr\x3e>>"%Drive%\%guidename%"
if /i "%SNEEKTYPE:~0,1%" EQU "U" copy /y "%Drive%\%guidename%"+Support\Guide\FolderStructure_Wii.001 "%Drive%\%guidename%">nul
if /i "%SNEEKTYPE:~0,1%" EQU "U" support\sfk echo -spat When finished copying safely remove it from your computer and plug it into USB port0 on your Wii and proceed to the next step.\x3cbr\x3e\x3cbr\x3e>>"%Drive%\%guidename%"
support\sfk echo -spat \x3cfont size=\x225\x22\x3e\x3cli\x3eLaunch an Exploit on Your Wii\x3c/li\x3e\x3c/font\x3e\x3cbr\x3e\x3cbr\x3e>>"%Drive%\%guidename%"
::goto exploit
set afterexploit=continueAbstinenceguide
goto:exploits
:continueAbstinenceguide
::Install IOS53 if required
if /i "%FIRMSTART%" EQU "4.3" goto:skipWADIOS53
if /i "%FIRMSTART%" EQU "4.2" goto:skipWADIOS53
copy /y "%Drive%\%guidename%"+Support\Guide\WADIOS53.001 "%Drive%\%guidename%">nul
:skipWADIOS53
support\sfk echo -spat \x3cbr\x3eThis runs Casper which is configured to start %neekname%.\x3cbr\x3e\x3cbr\x3e>>"%Drive%\%guidename%"
::NEEK TIPS
support\sfk echo -spat \x3cfont size=\x225\x22\x3e\x3cli\x3eHelpful Hints on Using %neekname%\x3c/li\x3e\x3c/font\x3e\x3cbr\x3e>>"%Drive%\%guidename%"
copy /y "%Drive%\%guidename%"+Support\Guide\NEEKTIPS.001 "%Drive%\%guidename%">nul
if /i "%SNEEKTYPE:~-1%" EQU "D" copy /y "%Drive%\%guidename%"+Support\Guide\NEEKDITIPS.001 "%Drive%\%guidename%">nul
copy /y "%Drive%\%guidename%"+Support\Guide\NEEKTIPSEND.001 "%Drive%\%guidename%">nul
::ADD end of ordered list and line break (</ol><br>)
support\sfk echo -spat \x3c/ol\x3e\x3cbr\x3e>>"%Drive%\%guidename%"
GOTO:supportxflak