mirror of
https://github.com/suchmememanyskill/TegraScript.git
synced 2025-04-29 14:19:28 -04:00
117 lines
5.7 KiB
Text
117 lines
5.7 KiB
Text
versionNcas = ["9d9d83d68d9517f245f3e8cd7f93c416.nca","a1863a5c0e1cedd442f5e60b0422dc15.nca","63d928b5a3016fe8cc0e76d2f06f4e98.nca","e65114b456f9d0b566a80e53bade2d89.nca","bd4185843550fbba125b20787005d1d2.nca","56211c7a5ed20a5332f5cdda67121e37.nca","594c90bcdbcccad6b062eadba0cd0e7e.nca","4e43d8b63713039fd87b410e7e1422c2.nca","a7b99eb98d2113824d2b87bce12527ba.nca","c07c0ffb0a2c3155a7ecf2f5b3a28bb6.nca","34728c771299443420820d8ae490ea41.nca","5b1df84f88c3334335bbb45d8522cbb4.nca","e951bc9dedcd54f65ffd83d4d050f9e0.nca","36ab1acf0c10a2beb9f7d472685f9a89.nca","5625cdc21d5f1ca52f6c36ba261505b9.nca","09ef4d92bb47b33861e695ba524a2c17.nca","c5fbb49f2e3648c8cfca758020c53ecb.nca","fd1ffb82dc1da76346343de22edbc97c.nca","a6af05b33f8f903aab90c8b0fcbcc6a4.nca","7eedb7006ad855ec567114be601b2a9d.nca","6c5426d27c40288302ad616307867eba.nca","4fe7b4abcea4a0bcc50975c1a926efcb.nca","e6b22c40bb4fa66a151f1dc8db5a7b5c.nca","c613bd9660478de69bc8d0e2e7ea9949.nca","6dfaaf1a3cebda6307aa770d9303d9b6.nca","1d21680af5a034d626693674faf81b02.nca","663e74e45ffc86fbbaeb98045feea315.nca","258c1786b0f6844250f34d9c6f66095b.nca","286e30bafd7e4197df6551ad802dd815.nca","fce3b0ea366f9c95fe6498b69274b0e7.nca","c5758b0cb8c6512e8967e38842d35016.nca","7f5529b7a092b77bf093bdf2f9a3bf96.nca","faa857ad6e82f472863e97f810de036a.nca","77e1ae7661ad8a718b9b13b70304aeea.nca","d0e5d20e3260f3083bcc067483b71274.nca","f99ac61b17fdd5ae8e4dda7c0b55132a.nca","704129fc89e1fcb85c37b3112e51b0fc.nca","9a78e13d48ca44b1987412352a1183a1.nca","7bef244b45bf63efb4bf47a236975ec6.nca","d1c991c53a8a9038f8c3157a553d876d.nca","7f90353dff2d7ce69e19e07ebc0d5489.nca","e9b3e75fce00e52fe646156634d229b4.nca","7a1f79f8184d4b9bae1755090278f52c.nca","a1b287e07f8455e8192f13d0e45a2aaf.nca"]
|
|
exfatNcas = ["25bb90ed24664b791d0e2cc1b707ea30.nca","1334ffa781ecd54085931da55339ed84.nca","77bbe586d5b4bfe8fee7a2a10936716f.nca","22f8b6e12000aa530c1d301b5ed4d70a.nca","22f8b6e12000aa530c1d301b5ed4d70a.nca","0fd89afc0d0f1ee7021084df503bcc19.nca","c70785465de83c7feed3ae28139b5063.nca","be8a259f84590c0ad9aa78312ed1e9fe.nca","3df13daa7f553c8fa85bbff79a189d6c.nca","3df13daa7f553c8fa85bbff79a189d6c.nca","d5bc167565842ee61f9670d23759844d.nca","d5bc167565842ee61f9670d23759844d.nca","d5bc167565842ee61f9670d23759844d.nca","d5bc167565842ee61f9670d23759844d.nca","d5bc167565842ee61f9670d23759844d.nca","2416b3794964b3482c7bc506d12c44df.nca","c9bd4eda34c91a676de09951bb8179ae.nca","3b444768f8a36d0ddd85635199f9676f.nca","3b444768f8a36d0ddd85635199f9676f.nca","96f4b8b729ade072cc661d9700955258.nca","b2708136b24bbe206e502578000b1998.nca","b2708136b24bbe206e502578000b1998.nca","02a2cbfd48b2f2f3a6cec378d20a5eff.nca","58c731cdacb330868057e71327bd343e.nca","97cb7dc89421decc0340aec7abf8e33b.nca","d5186022d6080577b13f7fd8bcba4dbb.nca","d5186022d6080577b13f7fd8bcba4dbb.nca","d5186022d6080577b13f7fd8bcba4dbb.nca","711b5fc83a1f07d443dfc36ba606033b.nca","c9e500edc7bb0fde52eab246028ef84c.nca","432f5cc48e6c1b88de2bc882204f03a1.nca","432f5cc48e6c1b88de2bc882204f03a1.nca","432f5cc48e6c1b88de2bc882204f03a1.nca","458a54253f9e49ddb044642286ca6485.nca","090b012b110973fbdc56a102456dc9c6.nca","090b012b110973fbdc56a102456dc9c6.nca","e7dd3c6cf68953e86cce54b69b333256.nca","17f9864ce7fe3a35cbe3e3b9f6185ffb.nca","9e5c73ec938f3e1e904a4031aa4240ed.nca","4a94289d2400b301cbe393e64831f84c.nca","4a94289d2400b301cbe393e64831f84c.nca","4a94289d2400b301cbe393e64831f84c.nca","f55a04978465ebf5666ca93e21b26dd2.nca","3b7cd379e18e2ee7e1c6d0449d540841.nca"]
|
|
versionNames = ["12.1.0","12.0.3","12.0.2","12.0.1","12.0.0","11.0.1","11.0.0","10.2.0","10.1.1","10.1.0","10.0.4","10.0.3","10.0.2","10.0.1","10.0.0","9.2.0","9.1.0","9.0.1","9.0.0","8.1.0","8.0.1","8.0.0","7.0.1","7.0.0","6.2.0","6.1.0","6.0.1","6.0.0","6.0.0(pre-release)","5.1.0","5.0.2","5.0.1","5.0.0","4.1.0","4.0.1","4.0.0","3.0.2","3.0.1","3.0.0","2.3.0","2.2.0","2.1.0","2.0.0","1.0.0"]
|
|
|
|
# check tid = 0100000000000809, type data
|
|
# exfat tid = 010000000000081B, type data
|
|
|
|
println("Tegrascript firmware checker/dumper\n")
|
|
|
|
if (_EMU) {
|
|
menuOptions = ["Exit", "Sysmmc", "Emummc"]
|
|
}
|
|
else() {
|
|
menuOptions = ["Exit", "Sysmmc"]
|
|
}
|
|
|
|
print("Check on: ")
|
|
res = menu(menuOptions, 0)
|
|
|
|
clearscreen()
|
|
|
|
if (res == 0){
|
|
exit()
|
|
}
|
|
|
|
if (res == 1){
|
|
println("Mounting Sysmmc")
|
|
mount = mmcConnect("SYSMMC")
|
|
}
|
|
|
|
if (res == 2){
|
|
println("Mounting Emummc")
|
|
mount = mmcConnect("EMUMMC")
|
|
}
|
|
|
|
if (mount){
|
|
println("Error connecting mmc!")
|
|
pause()
|
|
exit()
|
|
}
|
|
|
|
if (mmcMount("SYSTEM")) {
|
|
println("Failed to mount SYSTEM")
|
|
pause()
|
|
exit()
|
|
}
|
|
|
|
i = 0
|
|
found = 0
|
|
while (!found && (i < len(versionNcas))){
|
|
if (fileExists(pathCombine("bis:/Contents/registered", versionNcas[i]))){
|
|
found = 1
|
|
}
|
|
|
|
i = i + 1
|
|
}
|
|
|
|
i = i - 1
|
|
|
|
if (!found){
|
|
println("Firmware not found. Exiting!")
|
|
pause()
|
|
exit()
|
|
}
|
|
|
|
exfat = fileExists(pathCombine("bis:/Contents/registered", exfatNcas[i]))
|
|
fwName = versionNames[i]
|
|
if (exfat){
|
|
fwName = fwName + "_exFAT"
|
|
}
|
|
|
|
println("\nFirmware found!\nRunning ", fwName)
|
|
println("\nPress X to dump the current firmware, any other key to exit")
|
|
button = pause() & 0x2
|
|
if (!button){
|
|
exit()
|
|
}
|
|
|
|
start = timerMs()
|
|
println("Starting dump...\n")
|
|
color("GREEN")
|
|
|
|
baseSdPath = pathCombine("sd:/tegraexplorer/Firmware", fwName)
|
|
mkdir("sd:/tegraexplorer")
|
|
mkdir("sd:/tegraexplorer/Firmware")
|
|
mkdir(baseSdPath)
|
|
files = dirRead("bis:/Contents/registered")
|
|
|
|
i = 0
|
|
filesLen = len(files)
|
|
while (i < filesLen){
|
|
path = pathCombine("bis:/Contents/registered", files[i])
|
|
if (fileProperties[i]){
|
|
path = pathCombine(path, "00")
|
|
}
|
|
|
|
sdPath = pathCombine(baseSdPath, files[i])
|
|
|
|
if (ncaGetType(path) == 1){
|
|
sdPath = sdPath - ".nca" + ".cnmt.nca"
|
|
}
|
|
|
|
print("\r[", i + 1, " / ", filesLen, "] ", files[i])
|
|
|
|
if (fileCopy(path, sdPath)) {
|
|
color("RED")
|
|
println("\nError during copy. Exiting!")
|
|
pause()
|
|
exit()
|
|
}
|
|
|
|
i = i + 1
|
|
}
|
|
|
|
color("WHITE")
|
|
println("\n\nDone! took ", (timerMs() - start) / 1000, "s")
|
|
pause()
|