GodMode9
GodMode9 Explorer - A full access file browser for the Nintendo 3DS console :godmode:
Install / Use
/learn @d0k3/GodMode9README
A full access file browser for the 3DS console :godmode:
GodMode9 is a full access file browser for the Nintendo 3DS console, giving you access to your SD card, to the FAT partitions inside your SysNAND and EmuNAND and to basically anything else. Among other functionality (see below), you can copy, delete, rename files and create folders.
Warning
This is powerful stuff, it provides you with the means to do basically any thinkable modification to any system data available on the 3DS console. However, precautions are taken so you don't accidentally damage the data of your console. The write permissions system protects you by providing warnings and forces you to enter an unlock sequence for enabling write permissions. It is not possible to overwrite or modify any important stuff without such unlock sequences and it is not possible to accidentally unlock something.
As always, be smart, keep backups, just to be safe.
Quick start guide
The recommended bootloader for use with GodMode9 is fastboot3DS. There are known issues for some users when using the standard setup based on boot9strap and Luma3DS. If you insist on using that setup follow the instructions found in a certain guide. Here's how to set up GodMode9 (and fastboot3DS) up quickly:
- Download OpenFirmInstaller and follow the quick setup instructions found there.
- Copy the
gm9folder from the release archive to your SD card. Then, get good versions ofseeddb.binandencTitleKeys.binfrom somewhere (don't ask me!) and put these two files intosd:/gm9/support(optional but recommended for full functionality). - It is also recommended you setup the RTC clock if you're running GodMode9 for the first time. Find the option via HOME button ->
More.... Also keep in mind that you should fix your system OS clock afterwards. While you're in theMore...menu, you may also set screen brightness to a fixed value of your choosing and manually calibrate the touch screen (not recommended - try the automatic configuration first). - Helpful hint #1: Go here for step by steps on doing some common tasks in GodMode9. Especially users coming from Decrypt9WIP or Hourglass9 may find this to be helpful.
- Helpful hint #2: Never unlock the red write permission level unless you know exactly what you're doing. You will notice that prompt when it comes up, it features a completely red screen. It is recommended you stay on the yellow permission level or below at all times to be completely safe. Also read more on the write permissions system below.
You may now run GodMode9 via holding the X Button (or any other button you chose) at startup. See below for a list of stuff you can do with it.
Buttons in GodMode9
GodMode9 is designed to be intuitive, buttons leading to the results you'd expect. However, some stuff may not be obvious at first glance. So, here's a quick, incomplete rundown of what each button / button combo does.
- <A> button: The <A> button is the 'confirm' / 'choose' button. It confirms prompts and selects entries in menus. In the main file view, it pulls up a submenu for files and opens directories (use <R+A> on directories for a submenu, also including the invaluable title search). In the hexviewer, <A> switches into edit mode.
- <B> button: The <B> button is the 'cancel' / 'return' button. Use it to leave menus without action, hold it on file operations to cancel said file operations.
- <X> button: In the main file view, the <X> button deletes (marked) files. With <R+X> files are renamed.
- <Y> button: In the main file view, the <Y> button copies and pastes files. With <R+Y> you can create folders and dummy files.
- <L> button: The <L> button is the 'mark' button. Use it with <LEFT> / <RIGHT> to mark / unmark all files in a folder, hold it and use <UP> / <DOWN> to select multiple files.
- <R> button: The <R> button is the 'switch' button. It switches buttons to their secondary function. Notable exceptions are <R+L> for a screenshot (works almost anywhere), <R+LEFT> / <R+RIGHT> to switch panes and <R+DOWN> to reload the file listing.
- <START> button: Use the <START> button to reboot from GodMode9. Use <R+START> to poweroff your 3DS.
- <SELECT> button: The <SELECT> button clears or restores the clipboard (depending on if it's empty or not).
- <HOME> button: The <HOME> button enters the HOME menu, including the scripts / payloads submenus, options for formatting the SD, setting the RTC, and more. The <POWER> button is an alternative way of entering the HOME menu.
- <R+UP> combo: This little known keycombo, when held at startup, pauses the GodMode9 boot so that you can stare at the splash screen for a little longer.
- <R+LEFT> combo: If you have installed GodMode9 as your bootloader, this keycombo enters the bootmenu. Hold on startup! If you built GodMode9 as SALTMODE and have it as a bootloader, the keycombo is simply the <START> button.
How to build this / developer info
Build GodMode9.firm via make firm. This requires firmtool, Python 3.5+ and devkitARM installed).
You may run make release to get a nice, release-ready package of all required files. To build SafeMode9 (a bricksafe variant of GodMode9, with limited write permissions) instead of GodMode9, compile with make FLAVOR=SafeMode9. To switch screens, compile with make SWITCH_SCREENS=1. For additional customization, you may choose the internal font by replacing font_default.frf inside the data directory. You may also hardcode the brightness via make FIXED_BRIGHTNESS=x, whereas x is a value between 0...15.
Further customization is possible by hardcoding aeskeydb.bin (just put the file into the data folder when compiling). All files put into the data folder will turn up in the V: drive, but keep in mind there's a hard 223.5KiB limit for all files inside, including overhead. A standalone script runner is compiled by providing autorun.lua or autorun.gm9 (again, in the data folder) and building with make SCRIPT_RUNNER=1. There's more possibility for customization, read the Makefiles to learn more.
To build a .firm signed with SPI boot keys (for ntrboot and the like), run make NTRBOOT=1. You may need to rename the output files if the ntrboot installer you use uses hardcoded filenames. Some features such as boot9 / boot11 access are not currently available from the ntrboot environment.
Bootloader mode
Same as boot9strap or fastboot3ds, GodMode9 can be installed to the system FIRM partition ('FIRM0'). When executed from a FIRM partition, GodMode9 will default to bootloader mode and try to boot, in order, FIRM from FCRAM (see A9NC), 0:/bootonce.firm (will be deleted on a successful boot), 0:/boot.firm, 1:/boot.firm. In bootloader mode, hold R+LEFT on boot to enter the boot menu. Installing GodMode9 to a FIRM partition is only recommended for developers and will overwrite boot9strap or any other bootloader you have installed in there.
Write permissions system
GodMode9 provides a write permissions system, which will protect you from accidentally damaging your system, losing data and/or modifying important system data. To unlock a write permission, an unlock sequence must be entered. This is not possible by accident. The write permission system is based on colors and the top bar on the top screen will change color according to the current write permission level. No permission above the yellow level can be unlocked on SafeMode9.
- Green: Modification to system files is not possible on this permission level. You can't edit or delete savegames and installed data. However, keep in mind that any non-system related or custom stuff on your SD card is not protected.
- Yellow: You can modify system files on this permission level. Data that is unique to your console and cannot be gotten from anywhere else is still not modifiable. Any damages you introduce can be fixed in software, but loss of savegames and installed data is possible if you are not careful. A NAND backup is highly recommended starting at this level.
- Orange: This is similar to the yellow permission level, but, in addition, allows edits to console unique data. Any damages you introduce are still fixable in software, but if you play around with this, having a NAND backup is an absolute requirement.
- Red: The highest regular permission level. There are no limits to system file edits, and if you are not careful enough, you can brick your console and/or remove your A9LH/B9S installation. Bricks on this level may only be fixable in hardware. If you don't have a NAND backup at this point, you seem to have a deathwish for your console.
- Blue: This permission level is reserved for edits to system memory. While, most likely, nothing bad at all will happen, consequences of edits can be unforeseen. There is even a (albeit very small) chance of bricking your console, maybe even permanently. Tread with caution on this level.
Support files
For certain functionality, GodMode9 may need 'support files'. Support files should be placed into either 0:/gm9/support or 1:/gm9/support. Support files contain additional information that is required in decryption operations. A list of support files, and wh

