actual initial commit
42
README.md
@ -1,2 +1,42 @@
|
||||
# finalize
|
||||
Scripts relating to Finalizing Setup on https://3ds.hacks.guide/finalizing-setup
|
||||
|
||||
Scripts relating to Finalizing Setup on https://3ds.hacks.guide/finalizing-setup.
|
||||
|
||||
- `/finalize`: Files that are packed into `finalize.romfs`
|
||||
- `/finalize/img`: Images used for visual troubleshooting
|
||||
- `/finalize/finalize.gm9`: Script run after `finalize_helper.gm9` that:
|
||||
- Installs base homebrew applications to SYSNAND SD (see below for list)
|
||||
- Copies GodMode9 to CTRNAND (`/rw/luma/payloads`)
|
||||
- Backs up `essential.exefs` to `/gm9/backups`
|
||||
- Deletes CFW installation files that are no longer necessary
|
||||
- Backs up minsize NAND backup to `/gm9/backups`
|
||||
- `/finalize/donor.db`: Empty title database used for consoles that do not have title database (i.e. no eShop software)
|
||||
- `finalize_helper.gm9`: Script that is compiled as GM9 scriptrunner (`finalize_helper.firm`); extracts `finalize.romfs`
|
||||
- `docs.md`: Full error information / script documentation
|
||||
|
||||
## Bundled software
|
||||
The following repositories have their compiled builds in this software package:
|
||||
|
||||
- [FBI](https://github.com/Steveice10/FBI)
|
||||
- [Homebrew Launcher Loader](https://github.com/PabloMK7/homebrew_launcher_dummy)
|
||||
- [Anemone3DS](https://github.com/astronautlevel2/Anemone3DS)
|
||||
- [Checkpoint](https://github.com/FlagBrew/Checkpoint)
|
||||
- [ftpd](https://github.com/mtheall/ftpd)
|
||||
- [Universal-Updater](https://github.com/Universal-Team/Universal-Updater/)
|
||||
- [GodMode9](https://github.com/d0k3/GodMode9)
|
||||
- [GM9Megascript](https://github.com/annson24/GM9Megascript) * Git repo deviates from GM9Megascript bundled with GM9
|
||||
|
||||
## Releases
|
||||
|
||||
Releases are tagged for reference (based on usage in the guide). **Releases in this repository are not intended to be for general use.** If you want to use them regardless:
|
||||
- Copy the contents of `finalize` to the root of your console's SD card
|
||||
- Copy `finalize.gm9` from the `finalize` folder to `/gm9/scripts/`
|
||||
- Copy `GodMode9.firm` from the `finalize` folder to `/luma/payloads/`
|
||||
- Create any folders that do not exist
|
||||
- Luma's `boot.firm` needs to be on root of SD for this to work
|
||||
|
||||
`finalize_helper` is not necessary unless you intend to use the RomFS build.
|
||||
|
||||
## License
|
||||
|
||||
TBD
|
131
docs.md
Normal file
@ -0,0 +1,131 @@
|
||||
# Troubleshooting script errors
|
||||
*As of v1.6.0 (2024/02/03)*
|
||||
|
||||
## Script-integrated error checking (finalize.gm9)
|
||||
|
||||
ERROR: "Error #01: No Nintendo 3DS folder"
|
||||
CAUSE: Script is outdated (error no longer exists). Was caused by lack of Nintendo 3DS folder before implementation of NOSPACE.
|
||||
FIX : Update script
|
||||
|
||||
ERROR: "Error #02: Missing essential.exefs"
|
||||
CAUSE: SYSNAND VIRTUAL:/essential.exefs does not exist, because the user denied GodMode9's prompt to make an essential.exefs backup
|
||||
FIX : Tell the user to re-enter GodMode9 (by holding START on boot) and to say Yes (press A) to the essential.exefs backup prompt
|
||||
|
||||
ERROR: "Error #03: Missing files" (also: 03a, 03b, 03c, 03d, 03e, 03f, 03g)
|
||||
CAUSE: Script is outdated (error no longer exists). Was caused by lack of 0:/finalize (which should no longer happen with scriptrunner).
|
||||
FIX : Update script
|
||||
|
||||
ERROR: "Error #04: No space"
|
||||
CAUSE: Insufficient space for NAND backup
|
||||
FIX : Make sufficient space (.nospace as contingency)
|
||||
|
||||
ERROR: "Error #05: No title database"
|
||||
CAUSE: Script is outdated (error has been renamed; if it says 'error' and not 'information', this version of the script will create a dummy title database)
|
||||
FIX : Update script
|
||||
|
||||
ERROR: "Information #05: No title database"
|
||||
Cause: title.db does not exist
|
||||
FIX : Allow prompt to import title database
|
||||
NOTE : If script release between 1.3.0 and 1.3.2, this will use the dummy title database, which will require reboot and DBRESET. This shouldn't happen as this version isn't known to be distributed anywhere
|
||||
|
||||
ERROR: "Error #06: NAND backup fail"
|
||||
CAUSE: NAND backup failed to complete for some reason
|
||||
FIX : Unknown (check for space/partition issues, try another SD card...)
|
||||
NOTE : Will display as "#06*" on top screen if occuring during NOSPACE, as remaining SD space is not checked if Nintendo 3DS folder does not exist
|
||||
|
||||
ERROR: "(Fatal) Error #07: No SD size"
|
||||
CAUSE: SD size check portion failed to run. Should not ever happen
|
||||
FIX : Pray
|
||||
|
||||
ERROR: "Error #08: Dummy title database"
|
||||
CAUSE: Script is outdated (error no longer exists)
|
||||
FIX : Update script. Will most likely cause Error #16 (Title database mount fail) on a rerun. Alternatively, run user through DBRESET and rerun outdated script.
|
||||
|
||||
ERROR: "Error #09: Unsupported GodMode9 version"
|
||||
CAUSE: Script is outdated (error no longer exists). Was caused by GodMode9 not being version 2.1.1.
|
||||
FIX : Update script
|
||||
|
||||
ERROR: "(Fatal) Error #10: Application install fail"
|
||||
CAUSE: Script is outdated (error no longer exists because the check did not make sense), but if this happens then something seriously wrong has happened
|
||||
FIX : Pray
|
||||
|
||||
ERROR: "Error #11: Missing donor database"
|
||||
CAUSE: Script is outdated (error no longer exists)
|
||||
FIX : Update script or provide donor.db to SD:/finalize
|
||||
|
||||
ERROR: "Error #12a: Copy title.db fail" (also 12b: Copy import.db fail)
|
||||
CAUSE: donor.db could not be copied to A:/dbs/title.db
|
||||
FIX : Most likely due to MSET9 being applied and A:/ not being mounted, so try removing MSET9
|
||||
|
||||
ERROR: "Fatal Error #13a: Fix CMAC fail" (also 13b)
|
||||
CAUSE: CMACs could not be fixed for title.db (13a) or import.db (13b)
|
||||
FIX : Pray
|
||||
|
||||
ERROR: "Error #14a: CIA install fail"
|
||||
CAUSE: CIA (Anemone3DS) is corrupt, or issue with title database
|
||||
FIX : Check for title database issues, assuming there are none check for issues with Anemone3DS.cia / with the SD card, or use FBI for verbose error details
|
||||
|
||||
ERROR: "Error #14b: CIA install fail" (also: 14c, 14d, 14e, 14f)
|
||||
CAUSE: CIA after Anemone3DS is corrupt, so at least one CIA succeeded installation but one of them failed
|
||||
FIX : Most likely a corrupt file, so have user replace file in SD:/finalize (14b = Checkpoint; 14c = FBI; 14d = ftpd; 14e = HBL; 14f = U-U). Alternatively, sketchy SD card
|
||||
|
||||
ERROR: "Fatal Error #15: File creation fail"
|
||||
CAUSE: 0:/gm9/flags/BACKUPFLAG could not be created
|
||||
FIX : This might happen if someone runs through NOSPACE more than once, because GodMode9 will not be able to create a file if it already exists. Ensure user has a working NAND backup and if they do then they can continue normally (move NAND backup off of SD, run script as normal).
|
||||
|
||||
ERROR: "Fatal Error #16: Title database mount fail"
|
||||
CAUSE: A:/title.db exists but could not be mounted
|
||||
FIX : This may happen if user has a dummy title database, in which case allowing the prompt is fine. Otherwise user's SD might be failing and data should be backed up yesterday.
|
||||
|
||||
ERROR: "Information #17: Duplicate NAND backup"
|
||||
CAUSE: 0:/gm9/flags/BACKUPFLAG exists, and 0:/Nintendo 3DS does not exist (user ran through NOSPACE more than once even though the NAND backup succeeded)
|
||||
FIX : Verify user has a NAND backup, and if they do then they should continue NOSPACE (move NAND backup off of SD, move Nintendo 3DS folder back onto SD)
|
||||
|
||||
ERROR: "Error #18: MSET9 detected"
|
||||
CAUSE: MSET9 detected because user ID0 folder has a folder with "_user-id1" appended to it
|
||||
FIX : Remove MSET9 (manually if failed to remove through mset9.py/MSET9 Installer, i.e. Chromebook)
|
||||
|
||||
> NOTE: There are no errors #19 or #20; I have no idea why I skipped them, I think I thought I already used them when I didn't
|
||||
|
||||
|
||||
## Scriptrunner-integrated error checking (finalize_helper.firm)
|
||||
|
||||
ERROR: "Error #21: finalize.romfs not found"
|
||||
CAUSE: finalize.romfs could not be found in any of the checked locations (SD root, 3ds, Nintendo 3DS, DCIM, luma, /luma/payloads)
|
||||
FIX : Have user place finalize.romfs in the right directory
|
||||
|
||||
ERROR: "Error #22: finalize.romfs is invalid"
|
||||
CAUSE: finalize.romfs does not match finalize_helper.firm's hardcoded checksum (corrupted SD? outdated file/)
|
||||
FIX : Replace finalize.romfs with freshly downloaded copy
|
||||
|
||||
ERROR: "Information #23: finalize.romfs in wrong location
|
||||
CAUSE: finalize.romfs is placed in 0:/Nintendo 3DS (this folder requires additional consent from GodMode9)
|
||||
FIX : Tell user to allow prompts, even though it says "this is not recommended"
|
||||
|
||||
ERROR: "Error #24: SD is write-protected"
|
||||
CAUSE: Script failed to write "0:/WRITE" dummy file (thus, SD is locked)
|
||||
FIX : Tell user to unlock SD; if SD is unlocked, try tape-over-the-switch method, otherwise SD card is likely failing
|
||||
NOTE : You can emulate this by creating a file named WRITE with no file extension on root of SD
|
||||
|
||||
## Other script-related errors
|
||||
|
||||
ERROR: FBI fails to install CIAs with error 0xD900458A
|
||||
CAUSE: Corrupted title database, likely caused by running dummy title database creation (from an outdated script) and then opening FBI via Download Play without resetting title database
|
||||
FIX : Regardless, tell people to replace the dummy title database (DBRESET). Then, you can either have them install everything through FBI and then run the script again (redundant), or just tell people to run the script.
|
||||
|
||||
## Other documentation
|
||||
|
||||
### BACKUPFLAG
|
||||
|
||||
The script checks for the existence of SD:/gm9/flags/BACKUPFLAG (no file extension). If it exists, it will silently skip the NAND backup. This will be visible to the user through:
|
||||
|
||||
- The top screen displaying "Setup complete!*" with an asterisk
|
||||
- A warning symbol next to the two NAND backup files on the top screen
|
||||
- Additional text on the bottom screen highlighting that a NAND backup was not made because one already exists
|
||||
|
||||
|
||||
### Checksums and changelog
|
||||
|
||||
For versions before migration to a Git repository, see [here](https://gist.github.com/lilyuwuu/8a7ce43263fe498b7fb0a403ea5eaff3).
|
||||
|
||||
|
371
finalize.gm9
Normal file
@ -0,0 +1,371 @@
|
||||
# Script for https://3ds.hacks.guide/finalizing-setup
|
||||
# Ver. 1.6.0 - Last modified: 2024-02-03
|
||||
# GodMode9 scripts can be dangerous!
|
||||
# Visit https://gist.github.com/lilyuwuu/8a7ce43263fe498b7fb0a403ea5eaff3 to verify the integrity of this script.
|
||||
# Credits: GM9Megascript contributors ("Scripts from Plailect's Guide"), Mr. Burguers (SD card capacity check), ihaveamac (title.db stuff)
|
||||
|
||||
set PREVIEW_MODE "> Checking for problems...\nAsking for permission... ---\nInstalling homebrew... ---\nCopying GodMode9 to CTRNAND... ---\nCleaning up SD card... ---\nBacking up essential.exefs... ---\nBacking up NAND... ---"
|
||||
|
||||
# Check for missing Nintendo 3DS folder
|
||||
|
||||
if not find "0:/Nintendo 3DS" NULL
|
||||
if find 0:/gm9/flags/BACKUPFLAG NULL
|
||||
goto BACKUPDUPE
|
||||
end
|
||||
goto NOSPACE
|
||||
end
|
||||
|
||||
# Check for MSET9 installation
|
||||
|
||||
if find "0:/Nintendo 3DS/$[SYSID0]/????????????????????????????????_user-id1" NULL
|
||||
set PREVIEW_MODE "0:/finalize/img/error18.png"
|
||||
echo "Error #18: MSET9 detected\n \nMSET9 is still installed on this console.\nYou MUST remove it before continuing.\n \nFollow the instructions here:\nhttps://tinyurl.com/RemoveMSET9\n \nIf this error persists, ask for help\non Discord: https://discord.gg/MWxPgEp"
|
||||
poweroff
|
||||
end
|
||||
|
||||
# Check for missing essential.exefs
|
||||
|
||||
if not find S:/essential.exefs NULL
|
||||
set PREVIEW_MODE "0:/finalize/img/error02.png"
|
||||
echo "Error #02: Missing essential.exefs\n \nessential.exefs does not exist.\nClose and re-open GodMode9,\nmaking sure to say Yes to the\n'Create essential files' popup."
|
||||
poweroff
|
||||
end
|
||||
|
||||
# Check for sufficient SD space
|
||||
|
||||
if find 0:/gm9/flags/BACKUPFLAG NULL
|
||||
goto SDFREE_NEXT
|
||||
end
|
||||
|
||||
if chk $[SDFREE] INVALID # should not happen
|
||||
set PREVIEW_MODE "0:/finalize/img/error07.png"
|
||||
echo "Fatal Error #07: No SD size\n \nCould not get SD card size.\nThis should not happen.\nAsk for help on Discord:\nhttps://discord.gg/MWxPgEp"
|
||||
else
|
||||
strsplit -f -b SDFREE_VALUE $[SDFREE] " "
|
||||
strsplit -f SDFREE_UNITS $[SDFREE] " "
|
||||
if chk $[SDFREE_UNITS] GB
|
||||
if chk $[ONTYPE] O3DS
|
||||
goto SDFREE_NEXT
|
||||
end
|
||||
strsplit -f -b SDFREE_VALUE_1 $[SDFREE_VALUE] .
|
||||
strsplit -f SDFREE_VALUE_2 $[SDFREE_VALUE] .
|
||||
if chk -u $[SDFREE_VALUE_1] 1
|
||||
goto SDFREE_NEXT
|
||||
end
|
||||
if chk $[SDFREE_VALUE_2] 0
|
||||
elif chk $[SDFREE_VALUE_2] 1
|
||||
elif chk $[SDFREE_VALUE_2] 2
|
||||
elif chk $[SDFREE_VALUE_2] 3
|
||||
else
|
||||
goto SDFREE_NEXT
|
||||
end
|
||||
end
|
||||
if chk $[ONTYPE] O3DS
|
||||
set PREVIEW_MODE "0:/finalize/img/error04.png"
|
||||
echo "Error #04: No space\n \nInsufficient space on SD card.\nYou need 1.0GB, but you have $[SDFREE].\nMake some space, then try again.\n \nTIP: You can temporarily remove the Nintendo 3DS\nand DCIM folders from your SD card\nto make enough space."
|
||||
else
|
||||
set PREVIEW_MODE "0:/finalize/img/error04.png"
|
||||
echo "Error #04: No space\n \nInsufficient space on SD card.\nYou need 1.4GB, but you have $[SDFREE].\nMake some space, then try again.\n \nTIP: You can temporarily remove the Nintendo 3DS\nand DCIM folders from your SD card\nto make enough space."
|
||||
end
|
||||
end
|
||||
poweroff
|
||||
|
||||
@SDFREE_NEXT
|
||||
|
||||
# Check for title database
|
||||
|
||||
if not find A:/dbs/title.db NULL
|
||||
set PREVIEW_MODE "0:/finalize/img/error05.png"
|
||||
ask "Information #05: No title database\n \nTitle database not found.\nPress (A) to automatically import one.\n(A title database is necessary\nfor this script to run.)"
|
||||
goto IMPORT
|
||||
end
|
||||
|
||||
if not imgmount A:/dbs/title.db
|
||||
set PREVIEW_MODE "0:/finalize/img/error16.png"
|
||||
if ask "Error #16: Title database mount fail\n \nTitle database exists, but could not\nbe accessed.\n \nAttempt donor import?\n(If you have anything installed on\nthis console, this may result in\ninstalled digital games being rendered\n INACCESSIBLE!)"
|
||||
goto IMPORT
|
||||
else
|
||||
poweroff
|
||||
end
|
||||
end
|
||||
|
||||
goto MAIN
|
||||
|
||||
@IMPORT
|
||||
|
||||
mkdir -o -s A:/dbs
|
||||
|
||||
if not cp -w -o -s 0:/finalize/donor.db A:/dbs/title.db
|
||||
set PREVIEW_MODE "0:/finalize/img/error12a.png"
|
||||
echo "Error #12a: Copy title.db fail\n \nTitle database could not be copied to A:/dbs.\n(Is your SD card locked?)\n \nAsk for help on Discord:\nhttps://discord.gg/MWxPgEp"
|
||||
poweroff
|
||||
end
|
||||
|
||||
if not cp -w -o -s 0:/finalize/donor.db A:/dbs/import.db
|
||||
set PREVIEW_MODE "0:/finalize/img/error12b.png"
|
||||
echo "Error #12b: Copy import.db fail\n \nTitle database could not be copied to A:/dbs.\n(Is your SD card locked?)\n \nAsk for help on Discord:\nhttps://discord.gg/MWxPgEp"
|
||||
poweroff
|
||||
end
|
||||
|
||||
if not fixcmac A:/dbs/title.db
|
||||
set PREVIEW_MODE "0:/finalize/img/error13a.png"
|
||||
echo "Fatal Error #13a: Fix CMAC fail\n \nCMACs could not be fixed for title database.\n(How did this happen?)\n \nAsk for help on Discord:\nhttps://discord.gg/MWxPgEp"
|
||||
poweroff
|
||||
end
|
||||
|
||||
if not fixcmac A:/dbs/import.db
|
||||
set PREVIEW_MODE "0:/finalize/img/error13b.png"
|
||||
echo "Fatal Error #13b: Fix CMAC fail\n \nCMACs could not be fixed for title database.\n(How did this happen?)\n \nAsk for help on Discord:\nhttps://discord.gg/MWxPgEp"
|
||||
poweroff
|
||||
end
|
||||
|
||||
|
||||
|
||||
@MAIN
|
||||
|
||||
set PREVIEW_MODE "Checking for problems... DONE\n> Asking for permission...\nInstalling homebrew... ---\nCopying GodMode9 to CTRNAND... ---\nCleaning up SD card... ---\nBacking up essential.exefs... ---\nBacking up NAND... ---"
|
||||
|
||||
ask "This script will do the following:\n- Install base homebrew applications\n- Copy GodMode9 to CTRNAND\n- Remove unnecessary SD files\n- Create an essential.exefs backup\n- Create a NAND backup (~1GB)\n \nThis script may take up to\nfifteen minutes to complete.\n \nIf you're okay with this,\npress (A) to continue."
|
||||
allow 1:
|
||||
|
||||
set PREVIEW_MODE "Checking for problems... DONE\nAsking for permission... DONE\n> Installing homebrew...\nCopying GodMode9 to CTRNAND... ---\nCleaning up SD card... ---\nBacking up essential.exefs... ---\nBacking up NAND... ---"
|
||||
|
||||
# Install base homebrew applications
|
||||
|
||||
if not install 0:/finalize/Anemone3DS.cia
|
||||
set PREVIEW_MODE "0:/finalize/img/error14a.png"
|
||||
echo "Error #14a: CIA install fail\n \nA CIA (Anemone3DS) failed to install.\n \nTry replacing it with a freshly\ndownloaded copy, or ask for help\non Discord: https://discord.gg/MWxPgEp"
|
||||
poweroff
|
||||
end
|
||||
|
||||
if not install 0:/finalize/Checkpoint.cia
|
||||
set PREVIEW_MODE "0:/finalize/img/error14b.png"
|
||||
echo "Error #14b: CIA install fail\n \nA CIA (Checkpoint) failed to install.\n \nTry replacing it with a freshly\ndownloaded copy, or ask for help\non Discord: https://discord.gg/MWxPgEp"
|
||||
poweroff
|
||||
end
|
||||
|
||||
if not install 0:/finalize/FBI.cia
|
||||
set PREVIEW_MODE "0:/finalize/img/error14c.png"
|
||||
echo "Error #14c: CIA install fail\n \nA CIA (FBI) failed to install.\n \nTry replacing it with a freshly\ndownloaded copy, or ask for help\non Discord: https://discord.gg/MWxPgEp"
|
||||
poweroff
|
||||
end
|
||||
|
||||
if not install 0:/finalize/ftpd.cia
|
||||
set PREVIEW_MODE "0:/finalize/img/error14d.png"
|
||||
echo "Error #14d: CIA install fail\n \nA CIA (ftpd) failed to install.\n \nTry replacing it with a freshly\ndownloaded copy, or ask for help\non Discord: https://discord.gg/MWxPgEp"
|
||||
poweroff
|
||||
end
|
||||
|
||||
if not install 0:/finalize/Homebrew_Launcher.cia
|
||||
set PREVIEW_MODE "0:/finalize/img/error14e.png"
|
||||
echo "Error #14e: CIA install fail\n \nA CIA (Homebrew Launcher) failed to install.\n \nTry replacing it with a freshly\ndownloaded copy, or ask for help\non Discord: https://discord.gg/MWxPgEp"
|
||||
poweroff
|
||||
end
|
||||
|
||||
if not install 0:/finalize/Universal-Updater.cia
|
||||
set PREVIEW_MODE "0:/finalize/img/error14f.png"
|
||||
echo "Error #14f: CIA install fail\n \nA CIA (Universal-Updater) failed to install.\n \nTry replacing it with a freshly\ndownloaded copy, or ask for help\non Discord: https://discord.gg/MWxPgEp"
|
||||
poweroff
|
||||
end
|
||||
|
||||
set PREVIEW_MODE "Checking for problems... DONE\nAsking for permission... DONE\nInstalling homebrew... DONE\n> Copying GodMode9 to CTRNAND...\nCleaning up SD card... ---\nBacking up essential.exefs... ---\nBacking up NAND... ---"
|
||||
|
||||
# Copy GodMode9 to CTRNAND
|
||||
|
||||
cp -w -o -s 0:/luma/payloads 1:/rw/luma/payloads
|
||||
|
||||
set PREVIEW_MODE "Checking for problems... DONE\nAsking for permission... DONE\nInstalling homebrew... DONE\nCopying GodMode9 to CTRNAND... DONE\n> Cleaning up SD card...\nBacking up essential.exefs... ---\nBacking up NAND... ---"
|
||||
|
||||
# Remove unnecessary SD files
|
||||
|
||||
## A9LH to B9S / Updating B9S
|
||||
|
||||
rm -o -s 0:/arm9loaderhax.bin
|
||||
rm -o -s 0:/arm9loaderhax_si.bin
|
||||
rm -o -s 0:/luma/payloads/SafeB9SInstaller.bin
|
||||
rm -o -s 0:/luma/payloads/Decrypt9WIP.bin
|
||||
rm -o -s 0:/luma/payloads/Hourglass9.bin
|
||||
rm -o -s 0:/luma/payloads/GodMode9.bin
|
||||
rm -o -s 0:/boot9strap/secret_sector.bin
|
||||
|
||||
## General
|
||||
|
||||
rm -o -s 0:/SafeB9SInstaller.bin
|
||||
rm -o -s 0:/boot9strap/boot9strap.firm
|
||||
rm -o -s 0:/boot9strap/boot9strap.firm.sha
|
||||
|
||||
## Soundhax
|
||||
|
||||
rm -o -s 0:/soundhax-chn-o3ds-post5.0.m4a
|
||||
rm -o -s 0:/soundhax-chn-o3ds-v3.xand4.x.m4a
|
||||
rm -o -s 0:/soundhax-eur-n3ds.m4a
|
||||
rm -o -s 0:/soundhax-eur-o3ds-post5.0.m4a
|
||||
rm -o -s 0:/soundhax-eur-o3ds-pre2.1.m4a
|
||||
rm -o -s 0:/soundhax-eur-o3ds-v2.1and2.2.m4a
|
||||
rm -o -s 0:/soundhax-eur-o3ds-v3.xand4.x.m4a
|
||||
rm -o -s 0:/soundhax-eur-o3ds-pre2.1-post5franken.m4a
|
||||
rm -o -s 0:/soundhax-eur-o3ds-v2.1and2.2-post5franken.m4a
|
||||
rm -o -s 0:/soundhax-jpn-n3ds.m4a
|
||||
rm -o -s 0:/soundhax-jpn-o3ds-post5.0.m4a
|
||||
rm -o -s 0:/soundhax-jpn-o3ds-pre2.1.m4a
|
||||
rm -o -s 0:/soundhax-jpn-o3ds-v2.1and2.2.m4a
|
||||
rm -o -s 0:/soundhax-jpn-o3ds-v3.xand4.x.m4a
|
||||
rm -o -s 0:/soundhax-jpn-o3ds-pre2.1-post5franken.m4a
|
||||
rm -o -s 0:/soundhax-jpn-o3ds-v2.1and2.2-post5franken.m4a
|
||||
rm -o -s 0:/soundhax-kor-n3ds.m4a
|
||||
rm -o -s 0:/soundhax-kor-o3ds-post5.0.m4a
|
||||
rm -o -s 0:/soundhax-kor-o3ds-v3.xand4.x.m4a
|
||||
rm -o -s 0:/soundhax-twn-o3ds-post5.0.4m4a
|
||||
rm -o -s 0:/soundhax-twn-o3ds-v3.xand4.x.m4a
|
||||
rm -o -s 0:/soundhax-usa-n3ds.m4a
|
||||
rm -o -s 0:/soundhax-usa-o3ds-pot5.0.m4a
|
||||
rm -o -s 0:/soundhax-usa-o3ds-pre2.1.m4a
|
||||
rm -o -s 0:/soundhax-usa-o3ds-v2.1and2.2.m4a
|
||||
rm -o -s 0:/soundhax-usa-o3ds-v3.xand4.x.m4a
|
||||
rm -o -s 0:/soundhax-usa-o3ds-pre2.1-post5franken.m4a
|
||||
rm -o -s 0:/soundhax-usa-o3ds-v2.1and2.2-post5franken.m4a
|
||||
rm -o -s 0:/soundhax.m4a
|
||||
rm -o -s 0:/otherapp.bin
|
||||
|
||||
## BannerBomb3
|
||||
|
||||
rm -o -s 0:/bb3.bin
|
||||
rm -o -s "A:/Nintendo DSiWare/F00D43D5.bin"
|
||||
|
||||
## unSAFE_MODE
|
||||
|
||||
rm -o -s 0:/usm.bin
|
||||
rm -o -s 0:/3ds/slotTool/
|
||||
rm -o -s 0:/3ds/slotTool.3dsx
|
||||
|
||||
## Fredtool / Frogtool
|
||||
|
||||
rm -o -s 0:/484E4441.bin
|
||||
rm -o -s 0:/484E4441.bin.patched
|
||||
rm -o -s 0:/frogcert.bin
|
||||
rm -o -s 0:/private/ds/app/4B47554A/001/T00031_1038C2A757B77_000.ppm
|
||||
rm -o -s 0:/movable.sed
|
||||
rm -o -s 0:/3ds/Frogtool.3dsx
|
||||
rm -o -s 0:/boot.nds
|
||||
|
||||
## Browser
|
||||
|
||||
rm -o -s 0:/browserhax_hblauncher_ropbin_payload.bin
|
||||
rm -o -s 0:/arm11code.bin
|
||||
|
||||
## menuhax67 / nimdsphax-common (that's y i'm requesting it be made)
|
||||
|
||||
rm -o -s 0:/Launcher.dat # sorry gateway users
|
||||
rm -o -s 0:/3ds/menuhax67_installer.3dsx
|
||||
rm -o -s 0:/3ds/nimdsphax/
|
||||
|
||||
## Alternate Exploits
|
||||
|
||||
rm -o -s 0:/freaky.bin
|
||||
rm -o -s 0:/steelhax/
|
||||
rm -o -s 0:/petitcom_us.icn
|
||||
rm -o -s 0:/petitcom_jpn.icn # technically redundant
|
||||
rm -o -s 0:/petitcom_eu.icn
|
||||
|
||||
## MSET9
|
||||
|
||||
rm -o -s 0:/mset9.bat
|
||||
rm -o -s 0:/mset9.command
|
||||
rm -o -s 0:/mset9.py
|
||||
rm -o -s 0:/b9
|
||||
rm -o -s 0:/SafeB9S.bin
|
||||
rm -o -s 0:/_INSTRUCTIONS.txt
|
||||
rm -o -s 0:/errors.txt
|
||||
|
||||
set PREVIEW_MODE "Checking for problems... DONE\nAsking for permission... DONE\nInstalling homebrew... DONE\nCopying GodMode9 to CTRNAND... DONE\nCleaning up SD card... DONE\n> Backing up essential.exefs...\nBacking up NAND... ---"
|
||||
|
||||
# Backup essential.exefs
|
||||
|
||||
if not find 0:/gm9/backups NULL
|
||||
mkdir 0:/gm9/backups
|
||||
end
|
||||
findnot 0:/gm9/backups/$[SERIAL]_essential_??.exefs OUTPATH
|
||||
cp -w S:/essential.exefs $[OUTPATH]
|
||||
|
||||
set PREVIEW_MODE "Checking for problems... DONE\nAsking for permission... DONE\nInstalling homebrew... DONE\nCopying GodMode9 to CTRNAND... DONE\nCleaning up SD card... DONE\nBacking up essential.exefs... DONE\n> Backing up NAND..."
|
||||
|
||||
|
||||
# NAND backup
|
||||
|
||||
if find 0:/gm9/flags/BACKUPFLAG NULL
|
||||
goto BACKUPSKIP
|
||||
end
|
||||
|
||||
findnot 0:/gm9/backups/$[DATESTAMP]_$[SERIAL]_sysnand_??.bin OUTPATH
|
||||
|
||||
if cp -h S:/nand_minsize.bin $[OUTPATH]
|
||||
else
|
||||
set PREVIEW_MODE "0:/finalize/img/error06.png"
|
||||
echo "Error #06: NAND backup fail\n \nThe NAND backup failed for some reason.\n(Did you cancel it?)\nAsk for help on Discord:\nhttps://discord.gg/MWxPgEp"
|
||||
poweroff
|
||||
end
|
||||
goto CLEANUP
|
||||
|
||||
@NOSPACE # Contingency if SD is backed up due to lack of space
|
||||
|
||||
set PREVIEW_MODE "Checking for problems... No 3DS folder\n> Backing up NAND..."
|
||||
if not find 0:/gm9/backups NULL
|
||||
mkdir 0:/gm9/backups
|
||||
end
|
||||
findnot 0:/gm9/backups/$[DATESTAMP]_$[SERIAL]_sysnand_??.bin OUTPATH
|
||||
|
||||
if cp -h S:/nand_minsize.bin $[OUTPATH]
|
||||
else
|
||||
set PREVIEW_MODE "0:/finalize/img/error06_nospace.png"
|
||||
echo "Error #06: NAND backup fail\n \nThe NAND backup failed for some reason.\n(Do you have enough space?)\nAsk for help on Discord:\nhttps://discord.gg/MWxPgEp"
|
||||
poweroff
|
||||
end
|
||||
|
||||
if not find 0:/gm9/flags NULL
|
||||
mkdir 0:/gm9/flags
|
||||
end
|
||||
set BACKUPFLAG 0:/gm9/flags/BACKUPFLAG
|
||||
if not fdummy $[BACKUPFLAG] 400
|
||||
set PREVIEW_MODE "0:/finalize/img/error15.png"
|
||||
echo "Fatal Error #15: File creation fail\n \nCould not create 0:/gm9/flags/BACKUPFLAG.\n(How did this happen?)\n \nAsk for help on Discord:\nhttps://discord.gg/MWxPgEp"
|
||||
poweroff
|
||||
end
|
||||
|
||||
set PREVIEW_MODE "0:/finalize/img/emptysd_complete.png"
|
||||
echo "NAND backup complete.\nCopy the two SysNAND files in SD:/gm9/backups\nto a safe location on your computer, then\ndelete them from your SD card.\nThen, copy your Nintendo 3DS folder back\nto your SD card and re-run this script.\n \nIf you don't have a Nintendo 3DS folder backup,\nopen HOME Menu, then re-run this script."
|
||||
poweroff
|
||||
|
||||
@CLEANUP # Self-removes script and remove script flags
|
||||
|
||||
cp -w 0:/finalize/GM9Megascript.gm9 0:/gm9/scripts/GM9Megascript.gm9
|
||||
rm -o -s 0:/gm9/scripts/finalize.gm9
|
||||
rm -o -s 0:/gm9/flags
|
||||
rm -o -s 0:/finalize.romfs
|
||||
|
||||
set PREVIEW_MODE "0:/finalize/img/complete.png"
|
||||
|
||||
echo "Success: Setup complete! :D\n \nRemember to backup the contents of\nSD:/gm9/backups to somewhere safe."
|
||||
rm -o -s 0:/finalize
|
||||
poweroff
|
||||
|
||||
@BACKUPSKIP
|
||||
|
||||
cp -w 0:/finalize/GM9Megascript.gm9 0:/gm9/scripts/GM9Megascript.gm9
|
||||
rm -o -s 0:/gm9/scripts/finalize.gm9
|
||||
rm -o -s 0:/gm9/flags
|
||||
rm -o -s 0:/finalize.romfs
|
||||
|
||||
set PREVIEW_MODE "0:/finalize/img/complete_backupflag.png"
|
||||
|
||||
echo "Success: Setup complete! :D\n \nRemember to backup the contents of\nSD:/gm9/backups to somewhere safe.\n \nWARNING: NAND backup automatically skipped \ndue to existing backup!\nIf you need to make another backup,\nfollow these instructions:\nhttps://tinyurl.com/gm9nandbackup"
|
||||
rm -o -s 0:/finalize
|
||||
poweroff
|
||||
|
||||
@BACKUPDUPE
|
||||
|
||||
set PREVIEW_MODE "0:/finalize/img/error17.png"
|
||||
|
||||
ask "Information #17: Duplicate NAND backup\nIt looks like you've already made a NAND backup.\n \nIf you want to install homebrew applications,\nyou should copy your NAND backup from\nSD:/gm9/backups to a safe location on your computer,\ndelete the backup from the SD card, and\ncopy the Nintendo 3DS folder back to your SD card.\n(If you've lost the folder, you can regenerate\none by opening HOME Menu with this SD inserted.)\n \nPress (A) to make another NAND backup anyway.\nPress (B) to cancel."
|
||||
goto NOSPACE
|
||||
|
||||
|
BIN
finalize/Anemone3DS.cia
Normal file
BIN
finalize/Checkpoint.cia
Normal file
BIN
finalize/FBI.cia
Normal file
2021
finalize/GM9Megascript.gm9
Normal file
BIN
finalize/GodMode9.firm
Normal file
BIN
finalize/Homebrew_Launcher.cia
Normal file
BIN
finalize/Universal-Updater.cia
Normal file
BIN
finalize/donor.db
Normal file
371
finalize/finalize.gm9
Normal file
@ -0,0 +1,371 @@
|
||||
# Script for https://3ds.hacks.guide/finalizing-setup
|
||||
# Ver. 1.6.0 - Last modified: 2024-02-03
|
||||
# GodMode9 scripts can be dangerous!
|
||||
# Visit https://gist.github.com/lilyuwuu/8a7ce43263fe498b7fb0a403ea5eaff3 to verify the integrity of this script.
|
||||
# Credits: GM9Megascript contributors ("Scripts from Plailect's Guide"), Mr. Burguers (SD card capacity check), ihaveamac (title.db stuff)
|
||||
|
||||
set PREVIEW_MODE "> Checking for problems...\nAsking for permission... ---\nInstalling homebrew... ---\nCopying GodMode9 to CTRNAND... ---\nCleaning up SD card... ---\nBacking up essential.exefs... ---\nBacking up NAND... ---"
|
||||
|
||||
# Check for missing Nintendo 3DS folder
|
||||
|
||||
if not find "0:/Nintendo 3DS" NULL
|
||||
if find 0:/gm9/flags/BACKUPFLAG NULL
|
||||
goto BACKUPDUPE
|
||||
end
|
||||
goto NOSPACE
|
||||
end
|
||||
|
||||
# Check for MSET9 installation
|
||||
|
||||
if find "0:/Nintendo 3DS/$[SYSID0]/????????????????????????????????_user-id1" NULL
|
||||
set PREVIEW_MODE "0:/finalize/img/error18.png"
|
||||
echo "Error #18: MSET9 detected\n \nMSET9 is still installed on this console.\nYou MUST remove it before continuing.\n \nFollow the instructions here:\nhttps://tinyurl.com/RemoveMSET9\n \nIf this error persists, ask for help\non Discord: https://discord.gg/MWxPgEp"
|
||||
poweroff
|
||||
end
|
||||
|
||||
# Check for missing essential.exefs
|
||||
|
||||
if not find S:/essential.exefs NULL
|
||||
set PREVIEW_MODE "0:/finalize/img/error02.png"
|
||||
echo "Error #02: Missing essential.exefs\n \nessential.exefs does not exist.\nClose and re-open GodMode9,\nmaking sure to say Yes to the\n'Create essential files' popup."
|
||||
poweroff
|
||||
end
|
||||
|
||||
# Check for sufficient SD space
|
||||
|
||||
if find 0:/gm9/flags/BACKUPFLAG NULL
|
||||
goto SDFREE_NEXT
|
||||
end
|
||||
|
||||
if chk $[SDFREE] INVALID # should not happen
|
||||
set PREVIEW_MODE "0:/finalize/img/error07.png"
|
||||
echo "Fatal Error #07: No SD size\n \nCould not get SD card size.\nThis should not happen.\nAsk for help on Discord:\nhttps://discord.gg/MWxPgEp"
|
||||
else
|
||||
strsplit -f -b SDFREE_VALUE $[SDFREE] " "
|
||||
strsplit -f SDFREE_UNITS $[SDFREE] " "
|
||||
if chk $[SDFREE_UNITS] GB
|
||||
if chk $[ONTYPE] O3DS
|
||||
goto SDFREE_NEXT
|
||||
end
|
||||
strsplit -f -b SDFREE_VALUE_1 $[SDFREE_VALUE] .
|
||||
strsplit -f SDFREE_VALUE_2 $[SDFREE_VALUE] .
|
||||
if chk -u $[SDFREE_VALUE_1] 1
|
||||
goto SDFREE_NEXT
|
||||
end
|
||||
if chk $[SDFREE_VALUE_2] 0
|
||||
elif chk $[SDFREE_VALUE_2] 1
|
||||
elif chk $[SDFREE_VALUE_2] 2
|
||||
elif chk $[SDFREE_VALUE_2] 3
|
||||
else
|
||||
goto SDFREE_NEXT
|
||||
end
|
||||
end
|
||||
if chk $[ONTYPE] O3DS
|
||||
set PREVIEW_MODE "0:/finalize/img/error04.png"
|
||||
echo "Error #04: No space\n \nInsufficient space on SD card.\nYou need 1.0GB, but you have $[SDFREE].\nMake some space, then try again.\n \nTIP: You can temporarily remove the Nintendo 3DS\nand DCIM folders from your SD card\nto make enough space."
|
||||
else
|
||||
set PREVIEW_MODE "0:/finalize/img/error04.png"
|
||||
echo "Error #04: No space\n \nInsufficient space on SD card.\nYou need 1.4GB, but you have $[SDFREE].\nMake some space, then try again.\n \nTIP: You can temporarily remove the Nintendo 3DS\nand DCIM folders from your SD card\nto make enough space."
|
||||
end
|
||||
end
|
||||
poweroff
|
||||
|
||||
@SDFREE_NEXT
|
||||
|
||||
# Check for title database
|
||||
|
||||
if not find A:/dbs/title.db NULL
|
||||
set PREVIEW_MODE "0:/finalize/img/error05.png"
|
||||
ask "Information #05: No title database\n \nTitle database not found.\nPress (A) to automatically import one.\n(A title database is necessary\nfor this script to run.)"
|
||||
goto IMPORT
|
||||
end
|
||||
|
||||
if not imgmount A:/dbs/title.db
|
||||
set PREVIEW_MODE "0:/finalize/img/error16.png"
|
||||
if ask "Error #16: Title database mount fail\n \nTitle database exists, but could not\nbe accessed.\n \nAttempt donor import?\n(If you have anything installed on\nthis console, this may result in\ninstalled digital games being rendered\n INACCESSIBLE!)"
|
||||
goto IMPORT
|
||||
else
|
||||
poweroff
|
||||
end
|
||||
end
|
||||
|
||||
goto MAIN
|
||||
|
||||
@IMPORT
|
||||
|
||||
mkdir -o -s A:/dbs
|
||||
|
||||
if not cp -w -o -s 0:/finalize/donor.db A:/dbs/title.db
|
||||
set PREVIEW_MODE "0:/finalize/img/error12a.png"
|
||||
echo "Error #12a: Copy title.db fail\n \nTitle database could not be copied to A:/dbs.\n(Is your SD card locked?)\n \nAsk for help on Discord:\nhttps://discord.gg/MWxPgEp"
|
||||
poweroff
|
||||
end
|
||||
|
||||
if not cp -w -o -s 0:/finalize/donor.db A:/dbs/import.db
|
||||
set PREVIEW_MODE "0:/finalize/img/error12b.png"
|
||||
echo "Error #12b: Copy import.db fail\n \nTitle database could not be copied to A:/dbs.\n(Is your SD card locked?)\n \nAsk for help on Discord:\nhttps://discord.gg/MWxPgEp"
|
||||
poweroff
|
||||
end
|
||||
|
||||
if not fixcmac A:/dbs/title.db
|
||||
set PREVIEW_MODE "0:/finalize/img/error13a.png"
|
||||
echo "Fatal Error #13a: Fix CMAC fail\n \nCMACs could not be fixed for title database.\n(How did this happen?)\n \nAsk for help on Discord:\nhttps://discord.gg/MWxPgEp"
|
||||
poweroff
|
||||
end
|
||||
|
||||
if not fixcmac A:/dbs/import.db
|
||||
set PREVIEW_MODE "0:/finalize/img/error13b.png"
|
||||
echo "Fatal Error #13b: Fix CMAC fail\n \nCMACs could not be fixed for title database.\n(How did this happen?)\n \nAsk for help on Discord:\nhttps://discord.gg/MWxPgEp"
|
||||
poweroff
|
||||
end
|
||||
|
||||
|
||||
|
||||
@MAIN
|
||||
|
||||
set PREVIEW_MODE "Checking for problems... DONE\n> Asking for permission...\nInstalling homebrew... ---\nCopying GodMode9 to CTRNAND... ---\nCleaning up SD card... ---\nBacking up essential.exefs... ---\nBacking up NAND... ---"
|
||||
|
||||
ask "This script will do the following:\n- Install base homebrew applications\n- Copy GodMode9 to CTRNAND\n- Remove unnecessary SD files\n- Create an essential.exefs backup\n- Create a NAND backup (~1GB)\n \nThis script may take up to\nfifteen minutes to complete.\n \nIf you're okay with this,\npress (A) to continue."
|
||||
allow 1:
|
||||
|
||||
set PREVIEW_MODE "Checking for problems... DONE\nAsking for permission... DONE\n> Installing homebrew...\nCopying GodMode9 to CTRNAND... ---\nCleaning up SD card... ---\nBacking up essential.exefs... ---\nBacking up NAND... ---"
|
||||
|
||||
# Install base homebrew applications
|
||||
|
||||
if not install 0:/finalize/Anemone3DS.cia
|
||||
set PREVIEW_MODE "0:/finalize/img/error14a.png"
|
||||
echo "Error #14a: CIA install fail\n \nA CIA (Anemone3DS) failed to install.\n \nTry replacing it with a freshly\ndownloaded copy, or ask for help\non Discord: https://discord.gg/MWxPgEp"
|
||||
poweroff
|
||||
end
|
||||
|
||||
if not install 0:/finalize/Checkpoint.cia
|
||||
set PREVIEW_MODE "0:/finalize/img/error14b.png"
|
||||
echo "Error #14b: CIA install fail\n \nA CIA (Checkpoint) failed to install.\n \nTry replacing it with a freshly\ndownloaded copy, or ask for help\non Discord: https://discord.gg/MWxPgEp"
|
||||
poweroff
|
||||
end
|
||||
|
||||
if not install 0:/finalize/FBI.cia
|
||||
set PREVIEW_MODE "0:/finalize/img/error14c.png"
|
||||
echo "Error #14c: CIA install fail\n \nA CIA (FBI) failed to install.\n \nTry replacing it with a freshly\ndownloaded copy, or ask for help\non Discord: https://discord.gg/MWxPgEp"
|
||||
poweroff
|
||||
end
|
||||
|
||||
if not install 0:/finalize/ftpd.cia
|
||||
set PREVIEW_MODE "0:/finalize/img/error14d.png"
|
||||
echo "Error #14d: CIA install fail\n \nA CIA (ftpd) failed to install.\n \nTry replacing it with a freshly\ndownloaded copy, or ask for help\non Discord: https://discord.gg/MWxPgEp"
|
||||
poweroff
|
||||
end
|
||||
|
||||
if not install 0:/finalize/Homebrew_Launcher.cia
|
||||
set PREVIEW_MODE "0:/finalize/img/error14e.png"
|
||||
echo "Error #14e: CIA install fail\n \nA CIA (Homebrew Launcher) failed to install.\n \nTry replacing it with a freshly\ndownloaded copy, or ask for help\non Discord: https://discord.gg/MWxPgEp"
|
||||
poweroff
|
||||
end
|
||||
|
||||
if not install 0:/finalize/Universal-Updater.cia
|
||||
set PREVIEW_MODE "0:/finalize/img/error14f.png"
|
||||
echo "Error #14f: CIA install fail\n \nA CIA (Universal-Updater) failed to install.\n \nTry replacing it with a freshly\ndownloaded copy, or ask for help\non Discord: https://discord.gg/MWxPgEp"
|
||||
poweroff
|
||||
end
|
||||
|
||||
set PREVIEW_MODE "Checking for problems... DONE\nAsking for permission... DONE\nInstalling homebrew... DONE\n> Copying GodMode9 to CTRNAND...\nCleaning up SD card... ---\nBacking up essential.exefs... ---\nBacking up NAND... ---"
|
||||
|
||||
# Copy GodMode9 to CTRNAND
|
||||
|
||||
cp -w -o -s 0:/luma/payloads 1:/rw/luma/payloads
|
||||
|
||||
set PREVIEW_MODE "Checking for problems... DONE\nAsking for permission... DONE\nInstalling homebrew... DONE\nCopying GodMode9 to CTRNAND... DONE\n> Cleaning up SD card...\nBacking up essential.exefs... ---\nBacking up NAND... ---"
|
||||
|
||||
# Remove unnecessary SD files
|
||||
|
||||
## A9LH to B9S / Updating B9S
|
||||
|
||||
rm -o -s 0:/arm9loaderhax.bin
|
||||
rm -o -s 0:/arm9loaderhax_si.bin
|
||||
rm -o -s 0:/luma/payloads/SafeB9SInstaller.bin
|
||||
rm -o -s 0:/luma/payloads/Decrypt9WIP.bin
|
||||
rm -o -s 0:/luma/payloads/Hourglass9.bin
|
||||
rm -o -s 0:/luma/payloads/GodMode9.bin
|
||||
rm -o -s 0:/boot9strap/secret_sector.bin
|
||||
|
||||
## General
|
||||
|
||||
rm -o -s 0:/SafeB9SInstaller.bin
|
||||
rm -o -s 0:/boot9strap/boot9strap.firm
|
||||
rm -o -s 0:/boot9strap/boot9strap.firm.sha
|
||||
|
||||
## Soundhax
|
||||
|
||||
rm -o -s 0:/soundhax-chn-o3ds-post5.0.m4a
|
||||
rm -o -s 0:/soundhax-chn-o3ds-v3.xand4.x.m4a
|
||||
rm -o -s 0:/soundhax-eur-n3ds.m4a
|
||||
rm -o -s 0:/soundhax-eur-o3ds-post5.0.m4a
|
||||
rm -o -s 0:/soundhax-eur-o3ds-pre2.1.m4a
|
||||
rm -o -s 0:/soundhax-eur-o3ds-v2.1and2.2.m4a
|
||||
rm -o -s 0:/soundhax-eur-o3ds-v3.xand4.x.m4a
|
||||
rm -o -s 0:/soundhax-eur-o3ds-pre2.1-post5franken.m4a
|
||||
rm -o -s 0:/soundhax-eur-o3ds-v2.1and2.2-post5franken.m4a
|
||||
rm -o -s 0:/soundhax-jpn-n3ds.m4a
|
||||
rm -o -s 0:/soundhax-jpn-o3ds-post5.0.m4a
|
||||
rm -o -s 0:/soundhax-jpn-o3ds-pre2.1.m4a
|
||||
rm -o -s 0:/soundhax-jpn-o3ds-v2.1and2.2.m4a
|
||||
rm -o -s 0:/soundhax-jpn-o3ds-v3.xand4.x.m4a
|
||||
rm -o -s 0:/soundhax-jpn-o3ds-pre2.1-post5franken.m4a
|
||||
rm -o -s 0:/soundhax-jpn-o3ds-v2.1and2.2-post5franken.m4a
|
||||
rm -o -s 0:/soundhax-kor-n3ds.m4a
|
||||
rm -o -s 0:/soundhax-kor-o3ds-post5.0.m4a
|
||||
rm -o -s 0:/soundhax-kor-o3ds-v3.xand4.x.m4a
|
||||
rm -o -s 0:/soundhax-twn-o3ds-post5.0.4m4a
|
||||
rm -o -s 0:/soundhax-twn-o3ds-v3.xand4.x.m4a
|
||||
rm -o -s 0:/soundhax-usa-n3ds.m4a
|
||||
rm -o -s 0:/soundhax-usa-o3ds-pot5.0.m4a
|
||||
rm -o -s 0:/soundhax-usa-o3ds-pre2.1.m4a
|
||||
rm -o -s 0:/soundhax-usa-o3ds-v2.1and2.2.m4a
|
||||
rm -o -s 0:/soundhax-usa-o3ds-v3.xand4.x.m4a
|
||||
rm -o -s 0:/soundhax-usa-o3ds-pre2.1-post5franken.m4a
|
||||
rm -o -s 0:/soundhax-usa-o3ds-v2.1and2.2-post5franken.m4a
|
||||
rm -o -s 0:/soundhax.m4a
|
||||
rm -o -s 0:/otherapp.bin
|
||||
|
||||
## BannerBomb3
|
||||
|
||||
rm -o -s 0:/bb3.bin
|
||||
rm -o -s "A:/Nintendo DSiWare/F00D43D5.bin"
|
||||
|
||||
## unSAFE_MODE
|
||||
|
||||
rm -o -s 0:/usm.bin
|
||||
rm -o -s 0:/3ds/slotTool/
|
||||
rm -o -s 0:/3ds/slotTool.3dsx
|
||||
|
||||
## Fredtool / Frogtool
|
||||
|
||||
rm -o -s 0:/484E4441.bin
|
||||
rm -o -s 0:/484E4441.bin.patched
|
||||
rm -o -s 0:/frogcert.bin
|
||||
rm -o -s 0:/private/ds/app/4B47554A/001/T00031_1038C2A757B77_000.ppm
|
||||
rm -o -s 0:/movable.sed
|
||||
rm -o -s 0:/3ds/Frogtool.3dsx
|
||||
rm -o -s 0:/boot.nds
|
||||
|
||||
## Browser
|
||||
|
||||
rm -o -s 0:/browserhax_hblauncher_ropbin_payload.bin
|
||||
rm -o -s 0:/arm11code.bin
|
||||
|
||||
## menuhax67 / nimdsphax-common (that's y i'm requesting it be made)
|
||||
|
||||
rm -o -s 0:/Launcher.dat # sorry gateway users
|
||||
rm -o -s 0:/3ds/menuhax67_installer.3dsx
|
||||
rm -o -s 0:/3ds/nimdsphax/
|
||||
|
||||
## Alternate Exploits
|
||||
|
||||
rm -o -s 0:/freaky.bin
|
||||
rm -o -s 0:/steelhax/
|
||||
rm -o -s 0:/petitcom_us.icn
|
||||
rm -o -s 0:/petitcom_jpn.icn # technically redundant
|
||||
rm -o -s 0:/petitcom_eu.icn
|
||||
|
||||
## MSET9
|
||||
|
||||
rm -o -s 0:/mset9.bat
|
||||
rm -o -s 0:/mset9.command
|
||||
rm -o -s 0:/mset9.py
|
||||
rm -o -s 0:/b9
|
||||
rm -o -s 0:/SafeB9S.bin
|
||||
rm -o -s 0:/_INSTRUCTIONS.txt
|
||||
rm -o -s 0:/errors.txt
|
||||
|
||||
set PREVIEW_MODE "Checking for problems... DONE\nAsking for permission... DONE\nInstalling homebrew... DONE\nCopying GodMode9 to CTRNAND... DONE\nCleaning up SD card... DONE\n> Backing up essential.exefs...\nBacking up NAND... ---"
|
||||
|
||||
# Backup essential.exefs
|
||||
|
||||
if not find 0:/gm9/backups NULL
|
||||
mkdir 0:/gm9/backups
|
||||
end
|
||||
findnot 0:/gm9/backups/$[SERIAL]_essential_??.exefs OUTPATH
|
||||
cp -w S:/essential.exefs $[OUTPATH]
|
||||
|
||||
set PREVIEW_MODE "Checking for problems... DONE\nAsking for permission... DONE\nInstalling homebrew... DONE\nCopying GodMode9 to CTRNAND... DONE\nCleaning up SD card... DONE\nBacking up essential.exefs... DONE\n> Backing up NAND..."
|
||||
|
||||
|
||||
# NAND backup
|
||||
|
||||
if find 0:/gm9/flags/BACKUPFLAG NULL
|
||||
goto BACKUPSKIP
|
||||
end
|
||||
|
||||
findnot 0:/gm9/backups/$[DATESTAMP]_$[SERIAL]_sysnand_??.bin OUTPATH
|
||||
|
||||
if cp -h S:/nand_minsize.bin $[OUTPATH]
|
||||
else
|
||||
set PREVIEW_MODE "0:/finalize/img/error06.png"
|
||||
echo "Error #06: NAND backup fail\n \nThe NAND backup failed for some reason.\n(Did you cancel it?)\nAsk for help on Discord:\nhttps://discord.gg/MWxPgEp"
|
||||
poweroff
|
||||
end
|
||||
goto CLEANUP
|
||||
|
||||
@NOSPACE # Contingency if SD is backed up due to lack of space
|
||||
|
||||
set PREVIEW_MODE "Checking for problems... No 3DS folder\n> Backing up NAND..."
|
||||
if not find 0:/gm9/backups NULL
|
||||
mkdir 0:/gm9/backups
|
||||
end
|
||||
findnot 0:/gm9/backups/$[DATESTAMP]_$[SERIAL]_sysnand_??.bin OUTPATH
|
||||
|
||||
if cp -h S:/nand_minsize.bin $[OUTPATH]
|
||||
else
|
||||
set PREVIEW_MODE "0:/finalize/img/error06_nospace.png"
|
||||
echo "Error #06: NAND backup fail\n \nThe NAND backup failed for some reason.\n(Do you have enough space?)\nAsk for help on Discord:\nhttps://discord.gg/MWxPgEp"
|
||||
poweroff
|
||||
end
|
||||
|
||||
if not find 0:/gm9/flags NULL
|
||||
mkdir 0:/gm9/flags
|
||||
end
|
||||
set BACKUPFLAG 0:/gm9/flags/BACKUPFLAG
|
||||
if not fdummy $[BACKUPFLAG] 400
|
||||
set PREVIEW_MODE "0:/finalize/img/error15.png"
|
||||
echo "Fatal Error #15: File creation fail\n \nCould not create 0:/gm9/flags/BACKUPFLAG.\n(How did this happen?)\n \nAsk for help on Discord:\nhttps://discord.gg/MWxPgEp"
|
||||
poweroff
|
||||
end
|
||||
|
||||
set PREVIEW_MODE "0:/finalize/img/emptysd_complete.png"
|
||||
echo "NAND backup complete.\nCopy the two SysNAND files in SD:/gm9/backups\nto a safe location on your computer, then\ndelete them from your SD card.\nThen, copy your Nintendo 3DS folder back\nto your SD card and re-run this script.\n \nIf you don't have a Nintendo 3DS folder backup,\nopen HOME Menu, then re-run this script."
|
||||
poweroff
|
||||
|
||||
@CLEANUP # Self-removes script and remove script flags
|
||||
|
||||
cp -w 0:/finalize/GM9Megascript.gm9 0:/gm9/scripts/GM9Megascript.gm9
|
||||
rm -o -s 0:/gm9/scripts/finalize.gm9
|
||||
rm -o -s 0:/gm9/flags
|
||||
rm -o -s 0:/finalize.romfs
|
||||
|
||||
set PREVIEW_MODE "0:/finalize/img/complete.png"
|
||||
|
||||
echo "Success: Setup complete! :D\n \nRemember to backup the contents of\nSD:/gm9/backups to somewhere safe."
|
||||
rm -o -s 0:/finalize
|
||||
poweroff
|
||||
|
||||
@BACKUPSKIP
|
||||
|
||||
cp -w 0:/finalize/GM9Megascript.gm9 0:/gm9/scripts/GM9Megascript.gm9
|
||||
rm -o -s 0:/gm9/scripts/finalize.gm9
|
||||
rm -o -s 0:/gm9/flags
|
||||
rm -o -s 0:/finalize.romfs
|
||||
|
||||
set PREVIEW_MODE "0:/finalize/img/complete_backupflag.png"
|
||||
|
||||
echo "Success: Setup complete! :D\n \nRemember to backup the contents of\nSD:/gm9/backups to somewhere safe.\n \nWARNING: NAND backup automatically skipped \ndue to existing backup!\nIf you need to make another backup,\nfollow these instructions:\nhttps://tinyurl.com/gm9nandbackup"
|
||||
rm -o -s 0:/finalize
|
||||
poweroff
|
||||
|
||||
@BACKUPDUPE
|
||||
|
||||
set PREVIEW_MODE "0:/finalize/img/error17.png"
|
||||
|
||||
ask "Information #17: Duplicate NAND backup\nIt looks like you've already made a NAND backup.\n \nIf you want to install homebrew applications,\nyou should copy your NAND backup from\nSD:/gm9/backups to a safe location on your computer,\ndelete the backup from the SD card, and\ncopy the Nintendo 3DS folder back to your SD card.\n(If you've lost the folder, you can regenerate\none by opening HOME Menu with this SD inserted.)\n \nPress (A) to make another NAND backup anyway.\nPress (B) to cancel."
|
||||
goto NOSPACE
|
||||
|
||||
|
BIN
finalize/ftpd.cia
Normal file
BIN
finalize/img/complete.png
Normal file
After Width: | Height: | Size: 92 KiB |
BIN
finalize/img/complete_backupflag.png
Normal file
After Width: | Height: | Size: 98 KiB |
BIN
finalize/img/emptysd_complete.png
Normal file
After Width: | Height: | Size: 102 KiB |
BIN
finalize/img/error02.png
Normal file
After Width: | Height: | Size: 72 KiB |
BIN
finalize/img/error04.png
Normal file
After Width: | Height: | Size: 60 KiB |
BIN
finalize/img/error05.png
Normal file
After Width: | Height: | Size: 54 KiB |
BIN
finalize/img/error06.png
Normal file
After Width: | Height: | Size: 55 KiB |
BIN
finalize/img/error06_nospace.png
Normal file
After Width: | Height: | Size: 85 KiB |
BIN
finalize/img/error07.png
Normal file
After Width: | Height: | Size: 75 KiB |
BIN
finalize/img/error12a.png
Normal file
After Width: | Height: | Size: 82 KiB |
BIN
finalize/img/error12b.png
Normal file
After Width: | Height: | Size: 78 KiB |
BIN
finalize/img/error13a.png
Normal file
After Width: | Height: | Size: 74 KiB |
BIN
finalize/img/error13b.png
Normal file
After Width: | Height: | Size: 76 KiB |
BIN
finalize/img/error14a.png
Normal file
After Width: | Height: | Size: 57 KiB |
BIN
finalize/img/error14b.png
Normal file
After Width: | Height: | Size: 56 KiB |
BIN
finalize/img/error14c.png
Normal file
After Width: | Height: | Size: 53 KiB |
BIN
finalize/img/error14d.png
Normal file
After Width: | Height: | Size: 54 KiB |
BIN
finalize/img/error14e.png
Normal file
After Width: | Height: | Size: 60 KiB |
BIN
finalize/img/error14f.png
Normal file
After Width: | Height: | Size: 59 KiB |
BIN
finalize/img/error15.png
Normal file
After Width: | Height: | Size: 89 KiB |
BIN
finalize/img/error16.png
Normal file
After Width: | Height: | Size: 75 KiB |
BIN
finalize/img/error17.png
Normal file
After Width: | Height: | Size: 74 KiB |
BIN
finalize/img/error18.png
Normal file
After Width: | Height: | Size: 86 KiB |
66
finalize_helper.gm9
Normal file
@ -0,0 +1,66 @@
|
||||
# Scriptrunner for https://3ds.hacks.guide/finalizing-setup file copying operations
|
||||
# Ver. 1.0.1 - Last modified: 2024-02-04
|
||||
|
||||
set PREVIEW_MODE "Finalizing Setup Helper Script\n> Copying SD files..."
|
||||
|
||||
set WRITE 0:/WRITE
|
||||
if fdummy $[WRITE] 400
|
||||
rm -o -s 0:/WRITE
|
||||
else
|
||||
set PREVIEW_MODE "Finalizing Setup Helper Script\n> Copying SD files... :("
|
||||
echo "Error #24: SD is write-protected\n \nYour SD card is set to read-only.\nEnsure that the lock switch is flipped\nin the upright position.\nOtherwise, your SD card may be failing.\n \nIf this error persists, ask for help\non Discord: https://discord.gg/MWxPgEp"
|
||||
poweroff
|
||||
end
|
||||
|
||||
if find 0:/3ds/finalize.romfs NULL
|
||||
cp -w -o -s 0:/3ds/finalize.romfs 0:/finalize.romfs
|
||||
rm -o -s 0:/3ds/finalize.romfs
|
||||
end
|
||||
|
||||
if find 0:/luma/payloads/finalize.romfs NULL
|
||||
cp -w -o -s 0:/luma/payloads/finalize.romfs 0:/finalize.romfs
|
||||
rm -o -s 0:/luma/payloads/finalize.romfs
|
||||
end
|
||||
|
||||
if find 0:/luma/finalize.romfs NULL
|
||||
cp -w -o -s 0:/luma/finalize.romfs 0:/finalize.romfs
|
||||
rm -o -s 0:/luma/finalize.romfs
|
||||
end
|
||||
|
||||
if find 0:/DCIM/finalize.romfs NULL
|
||||
cp -w -o -s 0:/DCIM/finalize.romfs 0:/finalize.romfs
|
||||
rm -o -s 0:/DCIM/finalize.romfs
|
||||
end
|
||||
|
||||
if find "0:/Nintendo 3DS/finalize.romfs" NULL
|
||||
echo "Information #23: finalize.romfs in wrong location\n \nfinalize.romfs is in the wrong location.\nThis script will attempt to move it.\nPlease hit <A> on the next few prompts."
|
||||
cp -w -o -s "0:/Nintendo 3DS/finalize.romfs" 0:/finalize.romfs
|
||||
rm -o -s "0:/Nintendo 3DS/finalize.romfs"
|
||||
end
|
||||
|
||||
if not find 0:/finalize.romfs NULL
|
||||
set PREVIEW_MODE "Finalizing Setup Helper Script\n> Copying SD files... :("
|
||||
echo "Error #21: finalize.romfs not found\n \nfinalize.romfs could not be found on the SD card.\nCopy it to root of SD and try again."
|
||||
poweroff
|
||||
end
|
||||
|
||||
if not sha 0:/finalize.romfs F3DF0B1E6AED70A0A43BFEDEC62357565B4B646B9E6C6DD75BC01A98CE630DE4
|
||||
set PREVIEW_MODE "Finalizing Setup Helper Script\n> Copying SD files... :("
|
||||
echo "Error #22: finalize.romfs is invalid\n \nThe file finalize.romfs is corrupt or unreadable.\nRe-download it, copy it to root of SD, and try again."
|
||||
poweroff
|
||||
else
|
||||
imgmount 0:/finalize.romfs
|
||||
if not find 0:/finalize NULL
|
||||
mkdir 0:/finalize
|
||||
end
|
||||
cp -w -o -s G:/finalize 0:/finalize
|
||||
cp -w -o -s 0:/finalize/GodMode9.firm 0:/luma/payloads/GodMode9.firm
|
||||
if not find 0:/gm9/scripts NULL
|
||||
mkdir 0:/gm9/scripts
|
||||
end
|
||||
cp -w -o -s 0:/finalize/finalize.gm9 0:/gm9/scripts/finalize.gm9
|
||||
rm -o -s 0:/luma/payloads/finalize_helper.firm
|
||||
rm -o -s 0:/finalize.romfs
|
||||
end
|
||||
|
||||
boot 0:/luma/payloads/GodMode9.firm
|