Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- @ECHO off
- :Start
- ECHO ---------------------------------------------------
- ECHO ====== NCA/NSP/XCI TO LayeredFS v1.6 by Kleei =====
- ECHO ---------------------------------------------------
- ECHO What Files you have ?
- ECHO.
- ECHO 1. NCA
- ECHO 2. eShop NSP
- ECHO 3. eShop NCA (encrypted)
- ECHO 4. XCI (only cart1 are supported)
- ECHO.
- ECHO A. About
- ECHO Q. Quit
- ECHO ===================================================
- ECHO.
- set st=
- set /p st=:
- if /i "%st%"=="1" GOTO START_NCA
- if /i "%st%"=="2" GOTO START_NSP
- if /i "%st%"=="3" GOTO START_ENC_NCA
- if /i "%st%"=="4" GOTO START_XCI
- if /i "%st%"=="A" GOTO About
- if /i "%st%"=="Q" GOTO Quit
- GOTO ERROR
- :START_NCA
- ECHO.
- ECHO ==================== NCA FILES ====================
- ECHO.
- ECHO 1. Extract Decrypted NCA
- ECHO 2. Extract Ecrypted NCA
- ECHO 3. Update (base.nca + update.nca)
- ECHO 4. Info Decrypted NCA
- ECHO 5. Info Ecrypted NCA
- ECHO 6. Extract DLC NCA
- ECHO 7. Decrypt NCA (Plaintext)
- ECHO.
- ECHO Q. Quit
- ECHO ===================================================
- ECHO What you gonna do ?
- set up=
- set /p up=:
- if /i "%up%"=="1" GOTO DecryptedNCA
- if /i "%up%"=="2" GOTO EcryptedNCA
- if /i "%up%"=="3" GOTO Update
- if /i "%up%"=="4" GOTO DecryptedNCAInfo
- if /i "%up%"=="5" GOTO EcryptedNCAInfo
- if /i "%up%"=="6" GOTO ExtractDLCNCA
- if /i "%up%"=="7" GOTO DecryptNCA
- if /i "%up%"=="Q" GOTO Quit
- GOTO ERROR
- :START_NSP
- ECHO.
- ECHO ==================== NSP FILES ====================
- ECHO.
- ECHO 1. Extract Eshop NSP
- ECHO 2. NSP to LayeredFS
- ECHO 3. BASE.nsp + Update.nsp to LayeredFS
- ECHO.
- ECHO Q. Quit
- ECHO ===================================================
- ECHO What you gonna do ?
- set nsp=
- set /p nsp=:
- if /i "%nsp%"=="1" GOTO ExtractNSP
- if /i "%nsp%"=="2" GOTO NSP_to_LayeredFS
- if /i "%nsp%"=="3" GOTO Update_NSPs_to_LayeredFS
- if /i "%nsp%"=="Q" GOTO Quit
- GOTO ERROR
- :START_ENC_NCA
- ECHO.
- ECHO ================= eShop NCA FILES =================
- ECHO.
- ECHO 1. eShop NCA to LayeredFS
- ECHO 2. Base NCA + Update NCA to LayeredFS (both encrypted)
- ECHO.
- ECHO Q. Quit
- ECHO ===================================================
- ECHO What you gonna do ?
- set nsp=
- set /p nsp=:
- if /i "%nsp%"=="1" GOTO ENC_NCA_to_LayeredFS
- if /i "%nsp%"=="2" GOTO ENC_NCA_plus_Update_to_LayeredFS
- if /i "%nsp%"=="Q" GOTO Quit
- GOTO ERROR
- :START_XCI
- ECHO.
- ECHO ==================== XCI FILES ====================
- ECHO.
- ECHO 1. Extract XCI Game Data Folder
- ECHO 2. XCI to LayeredFS
- ECHO 3. XCI GAME + UPDATE NSP to LayeredFS
- ECHO.
- ECHO Q. Quit
- ECHO ===================================================
- ECHO What you gonna do ?
- set xci=
- set /p xci=:
- if /i "%xci%"=="1" GOTO ExtractXCI
- if /i "%xci%"=="2" GOTO XCI_to_LayeredFS
- if /i "%xci%"=="3" GOTO XCI_plus_update_to_LayeredFS
- if /i "%xci%"=="Q" GOTO Quit
- GOTO ERROR
- :DecryptedNCA
- ECHO.
- ECHO 1. Romfs.bin
- ECHO 2. Romfs folder
- ECHO.
- ECHO What you gonna do ?
- set romfs=
- set /p romfs=:
- if /i "%romfs%"=="1" GOTO ExtractDecryptedNCA_BIN
- if /i "%romfs%"=="2" GOTO ExtractDecryptedNCA_Folder
- PAUSE
- GOTO Start
- :ExtractDecryptedNCA_BIN
- set /p bs="Drag and Drop your biggest NCA: "
- if not exist "%CD%\Extracted_NCA" (
- mkdir "%CD%\Extracted_NCA"
- mkdir "%CD%\Extracted_NCA\exefs"
- )
- hactool.exe "%bs:"=%" -k prod.keys --romfs="%CD%\Extracted_NCA\romfs.bin" --exefsdir="%CD%\Extracted_NCA\exefs"
- PAUSE
- GOTO Start
- :ExtractDecryptedNCA_Folder
- set /p bs="Drag and Drop your biggest NCA: "
- if not exist "%CD%\Extracted_NCA" (
- mkdir "%CD%\Extracted_NCA"
- mkdir "%CD%\Extracted_NCA\exefs"
- mkdir "%CD%\Extracted_NCA\romfs"
- )
- hactool.exe "%bs:"=%" -k prod.keys --romfsdir="%CD%\Extracted_NCA\romfs" --exefsdir="%CD%\Extracted_NCA\exefs"
- PAUSE
- GOTO Start
- :EcryptedNCA
- ECHO.
- ECHO 1. Romfs.bin
- ECHO 2. Romfs folder
- ECHO.
- ECHO What you gonna do ?
- set romfs=
- set /p romfs=:
- if /i "%romfs%"=="1" GOTO ExtractEcryptedNCA_BIN
- if /i "%romfs%"=="2" GOTO ExtractEcryptedNCA_Folder
- PAUSE
- GOTO Start
- :ExtractEcryptedNCA_BIN
- set /p bs="Drag and Drop your biggest NCA: "
- set /p tk="Enter titlekey: "
- if not exist "%CD%\Extracted_NCA" (
- mkdir "%CD%\Extracted_NCA"
- mkdir "%CD%\Extracted_NCA\exefs"
- )
- hactool.exe -k prod.keys "%bs:"=%" --titlekey=%tk% --romfs="%CD%\Extracted_NCA\romfs.bin" --exefsdir="%CD%\Extracted_NCA\exefs"
- PAUSE
- GOTO Start
- :ExtractEcryptedNCA_Folder
- set /p bs="Drag and Drop your biggest NCA: "
- set /p tk="Enter titlekey: "
- if not exist "%CD%\Extracted_NCA" (
- mkdir "%CD%\Extracted_NCA"
- mkdir "%CD%\Extracted_NCA\exefs"
- mkdir "%CD%\Extracted_NCA\romfs"
- )
- hactool.exe -k prod.keys "%bs:"=%" --titlekey=%tk% --romfsdir="%CD%\Extracted_NCA\romfs" --exefsdir="%CD%\Extracted_NCA\exefs"
- PAUSE
- GOTO Start
- :ExtractNSP
- set /p bs="Drag and Drop your NSP: "
- if not exist "%CD%\Extracted_NSP" (
- mkdir "%CD%\Extracted_NSP"
- )
- hactool.exe "%bs:"=%" -k prod.keys -x --intype=pfs0 --pfs0dir="%CD%\Extracted_NSP"
- PAUSE
- GOTO Start
- :Update
- ECHO.
- ECHO 1. Romfs.bin
- ECHO 2. Romfs folder
- ECHO.
- ECHO What you gonna do ?
- set romfs=
- set /p romfs=:
- if /i "%romfs%"=="1" GOTO Update_BIN
- if /i "%romfs%"=="2" GOTO Update_Folder
- PAUSE
- GOTO Start
- :Update_BIN
- set /p bs="Drag and Drop your base NCA (should be already decrypted): "
- set /p ud="Drag and Drop your update NCA (should be encrypted): "
- set /p tk="Enter update titlekey (not base one): "
- if not exist "%CD%\Updated_LayeredFS" (
- mkdir "%CD%\Updated_LayeredFS"
- mkdir "%CD%\Updated_LayeredFS\exefs"
- )
- hactool.exe -k prod.keys "%ud:"=%" --titlekey=%tk% --basenca="%bs:"=%" --section0dir="%CD%\Updated_LayeredFS\exefs" --section1="%CD%\Updated_LayeredFS\romfs.bin"
- PAUSE
- GOTO Start
- :Update_Folder
- set /p bs="Drag and Drop your base NCA (should be already decrypted): "
- set /p ud="Drag and Drop your update NCA (should be encrypted): "
- set /p tk="Enter update titlekey (not base one): "
- if not exist "%CD%\Updated_LayeredFS" (
- mkdir "%CD%\Updated_LayeredFS"
- mkdir "%CD%\Updated_LayeredFS\exefs"
- mkdir "%CD%\Updated_LayeredFS\romfs"
- )
- hactool.exe -k prod.keys "%ud:"=%" --titlekey=%tk% --basenca="%bs:"=%" --section0dir="%CD%\Updated_LayeredFS\exefs" --section1dir="%CD%\Updated_LayeredFS\romfs"
- PAUSE
- GOTO Start
- :DecryptedNCAInfo
- set /p bs="Drag and Drop your biggest NCA: "
- hactool.exe -k prod.keys "%bs:"=%" --info
- PAUSE
- GOTO Start
- :EcryptedNCAInfo
- set /p bs="Drag and Drop your biggest NCA: "
- set /p tk="Enter titlekey: "
- hactool.exe -k prod.keys "%bs:"=%" --titlekey=%tk% --info
- PAUSE
- GOTO Start
- :ExtractDLCNCA
- ECHO.
- ECHO 1. Romfs.bin
- ECHO 2. Romfs folder
- ECHO.
- ECHO What you gonna do ?
- set romfs=
- set /p romfs=:
- if /i "%romfs%"=="1" GOTO ExtractDLC_BIN
- if /i "%romfs%"=="2" GOTO ExtractDLC_FOLDER
- PAUSE
- GOTO Start
- :ExtractDLC_FOLDER
- set /p bs="Drag and Drop your biggest NCA: "
- set /p tk="Enter titlekey: "
- if not exist "%CD%\Extracted_DLC" (
- mkdir "%CD%\Extracted_DLC"
- )
- hactool.exe -k prod.keys "%bs:"=%" --titlekey=%tk% --romfsdir="%CD%\Extracted_DLC\romfs"
- PAUSE
- GOTO Start
- :ExtractDLC_BIN
- set /p bs="Drag and Drop your biggest NCA: "
- set /p tk="Enter titlekey: "
- if not exist "%CD%\Extracted_DLC" (
- mkdir "%CD%\Extracted_DLC"
- )
- hactool.exe -k prod.keys "%bs:"=%" --titlekey=%tk% --romfs="%CD%\Extracted_DLC\romfs.bin"
- PAUSE
- GOTO Start
- :DecryptNCA
- set /p bs="Drag and Drop your biggest NCA: "
- set /p tk="Enter titlekey: "
- if not exist "%CD%\Decrypted_NCA" (
- mkdir "%CD%\Decrypted_NCA"
- )
- hactool.exe -k prod.keys "%bs:"=%" --titlekey=%tk% --plaintext="%CD%\Decrypted_NCA\Decrypted.nca"
- PAUSE
- GOTO Start
- :ERROR
- PAUSE
- GOTO Start
- :NSP_to_LayeredFS
- set /p bs="Drag and Drop your NSP: "
- if not exist "%CD%\Extracted_NSP" (
- mkdir "%CD%\Extracted_NSP"
- )
- hactool.exe "%bs:"=%" -k prod.keys -x --intype=pfs0 --pfs0dir="%CD%\Extracted_NSP"
- ECHO.
- ECHO.
- ECHO.
- CD /D %CD%\Extracted_NSP
- (for /f "delims=" %%i in ('dir /b /os') do set bs=%%~fi)>nul
- CD /D %CD%..\\..
- (for %%i in (Extracted_NSP\*.tik) do (for /f %%k in ('tf.exe %%i') do set tk=%%k))>nul
- if not exist "%CD%\Ready_LayeredFS_Game" (
- mkdir "%CD%\Ready_LayeredFS_Game"
- mkdir "%CD%\Ready_LayeredFS_Game\exefs"
- )
- hactool.exe -k prod.keys "%bs%" --titlekey=%tk% --romfs="%CD%\Ready_LayeredFS_Game\romfs.bin" --exefsdir="%CD%\Ready_LayeredFS_Game\exefs"
- ECHO y | del "%CD%\Extracted_NSP"
- rmdir Extracted_NSP
- ECHO.
- ECHO.
- ECHO Temp files was succefuly removed
- ECHO.
- PAUSE
- GOTO Start
- :Update_NSPs_to_LayeredFS
- set /p bs="Drag and Drop your Base Game NSP: "
- if not exist "%CD%\Extracted_Base_Game_NSP" (
- mkdir "%CD%\Extracted_Base_Game_NSP"
- )
- hactool.exe "%bs:"=%" -k prod.keys -x --intype=pfs0 --pfs0dir="%CD%\Extracted_Base_Game_NSP"
- ECHO.
- ECHO.
- ECHO.
- set /p bs="Drag and Drop your Update Game NSP: "
- if not exist "%CD%\Extracted_Update_Game_NSP" (
- mkdir "%CD%\Extracted_Update_Game_NSP"
- )
- hactool.exe "%bs:"=%" -k prod.keys -x --intype=pfs0 --pfs0dir="%CD%\Extracted_Update_Game_NSP"
- ECHO.
- ECHO.
- ECHO.
- CD /D %CD%\Extracted_Base_Game_NSP
- (for /f "delims=" %%i in ('dir /b /os') do set bs=%%~fi)>nul
- CD /D %CD%..\\..
- (for %%i in (Extracted_Base_Game_NSP\*.tik) do (for /f %%k in ('tf.exe %%i') do set tk=%%k))>nul
- hactool.exe -k prod.keys "%bs%" --titlekey=%tk% --plaintext="%CD%\Extracted_Base_Game_NSP\Decrypted.nca"
- ECHO.
- ECHO.
- ECHO.
- CD /D %CD%\Extracted_Update_Game_NSP
- (for /f "delims=" %%i in ('dir /b /os') do set ud=%%~fi)>nul
- CD /D %CD%..\\..
- (for %%i in (Extracted_Update_Game_NSP\*.tik) do (for /f %%k in ('tf.exe %%i') do set tk=%%k))>nul
- if not exist "%CD%\Ready_LayeredFS_Game" (
- mkdir "%CD%\Ready_LayeredFS_Game"
- mkdir "%CD%\Ready_LayeredFS_Game\exefs"
- )
- hactool.exe -k prod.keys "%ud%" --titlekey=%tk% --basenca="%CD%\Extracted_Base_Game_NSP\Decrypted.nca" --section0dir="%CD%\Ready_LayeredFS_Game\exefs" --section1="%CD%\Ready_LayeredFS_Game\romfs.bin"
- ECHO y | del "%CD%\Extracted_Base_Game_NSP"
- ECHO y | del "%CD%\Extracted_Update_Game_NSP"
- rmdir Extracted_Base_Game_NSP
- rmdir Extracted_Update_Game_NSP
- ECHO.
- ECHO.
- ECHO Temp files was succefuly removed
- ECHO.
- PAUSE
- GOTO Start
- :ExtractXCI
- set /p bs="Drag and Drop your XCI Cart Dump: "
- if not exist "%CD%\Extracted_XCI" (
- mkdir "%CD%\Extracted_XCI"
- )
- hactool.exe -k prod.keys -x --intype=xci --securedir="%CD%\Extracted_XCI" "%bs:"=%"
- PAUSE
- GOTO Start
- :XCI_to_LayeredFS
- set /p bs="Drag and Drop your XCI Cart Dump: "
- if not exist "%CD%\Extracted_XCI" (
- mkdir "%CD%\Extracted_XCI"
- )
- hactool.exe -k prod.keys -x --intype=xci --securedir="%CD%\Extracted_XCI" "%bs:"=%"
- CD /D %CD%\Extracted_XCI
- (for /f "delims=" %%i in ('dir /b /os') do set bs=%%~fi)>nul
- CD /D %CD%..\\..
- if not exist "%CD%\Ready_LayeredFS_Game" (
- mkdir "%CD%\Ready_LayeredFS_Game"
- mkdir "%CD%\Ready_LayeredFS_Game\exefs"
- )
- hactool.exe "%bs%" -k prod.keys --romfs="%CD%\Ready_LayeredFS_Game\romfs.bin" --exefsdir="%CD%\Ready_LayeredFS_Game\exefs"
- ECHO y | del "%CD%\Extracted_XCI"
- rmdir Extracted_XCI
- ECHO.
- ECHO.
- ECHO Temp files was succefuly removed
- ECHO.
- PAUSE
- GOTO Start
- :XCI_plus_update_to_LayeredFS
- set /p bs="Drag and Drop your XCI Cart Dump: "
- if not exist "%CD%\Extracted_XCI" (
- mkdir "%CD%\Extracted_XCI"
- )
- hactool.exe -k prod.keys -x --intype=xci --securedir="%CD%\Extracted_XCI" "%bs:"=%"
- ECHO.
- ECHO.
- CD /D %CD%\Extracted_XCI
- (for /f "delims=" %%i in ('dir /b /os') do set bs=%%~fi)>nul
- CD /D %CD%..\\..
- ECHO.
- ECHO.
- set /p ud="Drag and Drop your Update Game NSP: "
- if not exist "%CD%\Extracted_Update_Game_NSP" (
- mkdir "%CD%\Extracted_Update_Game_NSP"
- )
- hactool.exe "%ud:"=%" -k prod.keys -x --intype=pfs0 --pfs0dir="%CD%\Extracted_Update_Game_NSP"
- ECHO.
- ECHO.
- ECHO.
- CD /D %CD%\Extracted_Update_Game_NSP
- (for /f "delims=" %%i in ('dir /b /os') do set ud=%%~fi)>nul
- CD /D %CD%..\\..
- (for %%i in (Extracted_Update_Game_NSP\*.tik) do (for /f %%k in ('tf.exe %%i') do set tk=%%k))>nul
- ECHO.
- ECHO.
- if not exist "%CD%\Ready_LayeredFS_Game" (
- mkdir "%CD%\Ready_LayeredFS_Game"
- mkdir "%CD%\Ready_LayeredFS_Game\exefs"
- )
- hactool.exe -k prod.keys "%ud%" --titlekey=%tk% --basenca="%bs%" --section0dir="%CD%\Ready_LayeredFS_Game\exefs" --section1="%CD%\Ready_LayeredFS_Game\romfs.bin"
- ECHO y | del "%CD%\Extracted_XCI"
- ECHO y | del "%CD%\Extracted_Update_Game_NSP"
- rmdir Extracted_XCI
- rmdir Extracted_Update_Game_NSP
- ECHO.
- ECHO.
- ECHO Temp files was succefuly removed
- ECHO.
- PAUSE
- GOTO Start
- :ENC_NCA_to_LayeredFS
- set /p bs="Drag and Drop the Game NCA: "
- ECHO.
- ECHO.
- set /p tk="Enter titlekey: "
- if not exist "%CD%\Ready_LayeredFS_Game" (
- mkdir "%CD%\Ready_LayeredFS_Game"
- mkdir "%CD%\Ready_LayeredFS_Game\exefs"
- )
- hactool.exe -k prod.keys "%bs:"=%" --titlekey=%tk% --romfs="%CD%\Ready_LayeredFS_Game\romfs.bin" --exefsdir="%CD%\Ready_LayeredFS_Game\exefs"
- PAUSE
- GOTO Start
- :ENC_NCA_plus_Update_to_LayeredFS
- set /p bs="Drag and Drop the Base Game NCA: "
- ECHO.
- ECHO.
- set /p tk="Enter titlekey for base game: "
- if not exist "%CD%\Extracted_Base_Game_NSP" (
- mkdir "%CD%\Extracted_Base_Game_NSP"
- )
- hactool.exe -k prod.keys "%bs:"=%" --titlekey=%tk% --plaintext="%CD%\Extracted_Base_Game_NSP\Decrypted.nca"
- ECHO.
- ECHO.
- ECHO.
- set /p ud="Drag and Drop the UPDATE NCA: "
- ECHO.
- ECHO.
- set /p tk="Enter titlekey for update (not base one): "
- if not exist "%CD%\Ready_LayeredFS_Game" (
- mkdir "%CD%\Ready_LayeredFS_Game"
- mkdir "%CD%\Ready_LayeredFS_Game\exefs"
- )
- hactool.exe -k prod.keys "%ud:"=%" --titlekey=%tk% --basenca="%CD%\Extracted_Base_Game_NSP\Decrypted.nca" --section0dir="%CD%\Ready_LayeredFS_Game\exefs" --section1="%CD%\Ready_LayeredFS_Game\romfs.bin"
- ECHO y | del "%CD%\Extracted_Base_Game_NSP"
- ECHO y | del "%CD%\Extracted_Base_Game_NSP"
- rmdir Extracted_Base_Game_NSP
- ECHO.
- ECHO.
- ECHO Temp files was succefuly removed
- ECHO.
- PAUSE
- GOTO Start
- :About
- ECHO.
- ECHO ================= Credits =================
- ECHO.
- ECHO Thanks to
- ECHO.
- ECHO [SciresM] for he's hactool.
- ECHO.
- ECHO [Ericjwg] for he's tf.exe that return title key
- ECHO from extracted tik file and some tips.
- ECHO.
- ECHO.
- ECHO.
- ECHO.
- PAUSE
- GOTO Start
- :Quit
- exit
Advertisement
Add Comment
Please, Sign In to add comment