mirror of
https://github.com/Dark98/threeSD.git
synced 2026-07-03 00:38:58 +00:00
168 lines
4.6 KiB
Plaintext
168 lines
4.6 KiB
Plaintext
# Copyright 2019 threeSD Project
|
|
# Licensed under GPLv2 or any later version
|
|
# Refer to the license.txt file included.
|
|
|
|
# GM9 Script for dumping necessary files automatically.
|
|
|
|
set PREVIEW_MODE "threeSD Dumper\nby zhaowenlan1779"
|
|
set OUT "0:/threeSD"
|
|
if not find $[OUT] NULL
|
|
mkdir $[OUT]
|
|
end
|
|
|
|
if not ask "Execute threeSD Dumper?"
|
|
goto Exit
|
|
end
|
|
|
|
set PREVIEW_MODE "threeSD Dumper\nby zhaowenlan1779\n \nWorking..."
|
|
|
|
# === movable.sed
|
|
cp -w -n "1:/private/movable.sed" $[OUT]/movable.sed
|
|
|
|
# === bootrom
|
|
if find "M:/boot9.bin" NULL
|
|
cp -w -n "M:/boot9.bin" $[OUT]/boot9.bin
|
|
elif find "0:/3DS/boot9.bin" NULL
|
|
cp -w -n "0:/3DS/boot9.bin" $[OUT]/boot9.bin
|
|
else
|
|
echo "ERROR: \nboot9.bin not found. \nIf you use fastboot3ds, hold HOME while booting, \nand go to Miscellaneous... > Dump bootroms & OTP. \nWhen finished, simply execute this script again."
|
|
goto Exit
|
|
end
|
|
|
|
# === Safe mode firm
|
|
if not find $[OUT]/firm NULL
|
|
mkdir $[OUT]/firm
|
|
end
|
|
if chk $[ONTYPE] "N3DS"
|
|
if not find $[OUT]/firm/new NULL
|
|
mkdir $[OUT]/firm/new
|
|
end
|
|
cp -w -n "1:/title/00040138/20000003/content" $[OUT]/firm/new
|
|
rm $[OUT]/firm/new/cmd
|
|
find $[OUT]/firm/new/*.app APP
|
|
decrypt $[APP]
|
|
else
|
|
if not find $[OUT]/firm/old NULL
|
|
mkdir $[OUT]/firm/old
|
|
end
|
|
cp -w -n "1:/title/00040138/00000003/content" $[OUT]/firm/old
|
|
rm $[OUT]/firm/old/cmd
|
|
find $[OUT]/firm/old/*.app APP
|
|
decrypt $[APP]
|
|
end
|
|
|
|
# === Secret sector (N3DS only)
|
|
if chk $[ONTYPE] "N3DS"
|
|
cp -w -n "S:/sector0x96.bin" $[OUT]/sector0x96.bin
|
|
end
|
|
|
|
# === System Archives
|
|
if not find $[OUT]/sysarchives NULL
|
|
mkdir $[OUT]/sysarchives
|
|
end
|
|
|
|
if not find $[OUT]/sysarchives/0004009b NULL
|
|
mkdir $[OUT]/sysarchives/0004009b
|
|
end
|
|
|
|
# Mii Data
|
|
find 1:/title/0004009b/00010202/content/*.app APP
|
|
cp -w -n $[APP] $[OUT]/sysarchives/0004009b/00010202.app
|
|
decrypt $[OUT]/sysarchives/0004009b/00010202.app
|
|
|
|
# Region Manifest
|
|
find 1:/title/0004009b/00010402/content/*.app APP
|
|
cp -w -n $[APP] $[OUT]/sysarchives/0004009b/00010402.app
|
|
decrypt $[OUT]/sysarchives/0004009b/00010402.app
|
|
|
|
# Shared Font (JPN/EUR/USA)
|
|
find 1:/title/0004009b/00014002/content/*.app APP
|
|
cp -w -n $[APP] $[OUT]/sysarchives/0004009b/00014002.app
|
|
decrypt $[OUT]/sysarchives/0004009b/00014002.app
|
|
|
|
# Shared Font (CHN)
|
|
find 1:/title/0004009b/00014102/content/*.app APP
|
|
cp -w -n $[APP] $[OUT]/sysarchives/0004009b/00014102.app
|
|
decrypt $[OUT]/sysarchives/0004009b/00014102.app
|
|
|
|
# Shared Font (KOR)
|
|
find 1:/title/0004009b/00014202/content/*.app APP
|
|
cp -w -n $[APP] $[OUT]/sysarchives/0004009b/00014202.app
|
|
decrypt $[OUT]/sysarchives/0004009b/00014202.app
|
|
|
|
# Shared Font (TWN)
|
|
find 1:/title/0004009b/00014302/content/*.app APP
|
|
cp -w -n $[APP] $[OUT]/sysarchives/0004009b/00014302.app
|
|
decrypt $[OUT]/sysarchives/0004009b/00014302.app
|
|
|
|
if not find $[OUT]/sysarchives/000400db NULL
|
|
mkdir $[OUT]/sysarchives/000400db
|
|
end
|
|
|
|
# NG Bad word list
|
|
find 1:/title/000400db/00010302/content/*.app APP
|
|
cp -w -n $[APP] $[OUT]/sysarchives/000400db/00010302.app
|
|
decrypt $[OUT]/sysarchives/000400db/00010302.app
|
|
|
|
# === Config savegame
|
|
cp -w -n 1:/data/$[SYSID0]/sysdata/00010017/00000000 $[OUT]/config.sav
|
|
|
|
# === Other system titles
|
|
if not find $[OUT]/title NULL
|
|
mkdir $[OUT]/title
|
|
end
|
|
|
|
# System Applications
|
|
if not find $[OUT]/title/00040010 NULL
|
|
mkdir $[OUT]/title/00040010
|
|
end
|
|
cp -w -n "1:/title/00040010" $[OUT]/title/00040010
|
|
|
|
# System Data Archives
|
|
if not find $[OUT]/title/0004001b NULL
|
|
mkdir $[OUT]/title/0004001b
|
|
end
|
|
cp -w -n "1:/title/0004001b" $[OUT]/title/0004001b
|
|
|
|
# System Applets
|
|
if not find $[OUT]/title/00040030 NULL
|
|
mkdir $[OUT]/title/00040030
|
|
end
|
|
cp -w -n "1:/title/00040030" $[OUT]/title/00040030
|
|
|
|
# 0004009b Shared Data Archives skipped (included in sysarchives)
|
|
|
|
# System Data Archives
|
|
if not find $[OUT]/title/000400db NULL
|
|
mkdir $[OUT]/title/000400db
|
|
end
|
|
cp -w -n "1:/title/000400db" $[OUT]/title/000400db
|
|
|
|
# System Modules
|
|
if not find $[OUT]/title/00040130 NULL
|
|
mkdir $[OUT]/title/00040130
|
|
end
|
|
cp -w -n "1:/title/00040130" $[OUT]/title/00040130
|
|
|
|
# 00040138 System Firmware skipped (dumped above)
|
|
|
|
# Already included in sysarchives
|
|
rm $[OUT]/title/000400db/00010302
|
|
|
|
# === seeddb.bin
|
|
sdump -o -s -w seeddb.bin
|
|
if not find 0:/gm9/out/seeddb.bin NULL
|
|
echo "WARNING: \nseeddb.bin couldn't be built. \nThis may be because your system \ndoes not have any seeds. \nOtherwise, imported games may fail \nto run if they use seed encryption."
|
|
else
|
|
cp -w -n "0:/gm9/out/seeddb.bin" $[OUT]/seeddb.bin
|
|
rm "0:/gm9/out/seeddb.bin"
|
|
end
|
|
|
|
# === Write version
|
|
dumptxt $[OUT]/version.txt 1
|
|
|
|
set PREVIEW_MODE "threeSD Dumper\nby zhaowenlan1779\n \nSuccess!"
|
|
echo "Successfully dumped necessary\nfiles for threeSD."
|
|
|
|
@Exit
|