[3DS] GodMode9 V1.9.0 Released

The d0k3 developer  has released a new GodMode9 update in version 1.9.0 . GodMode9 is a complete file manager for the Nintendo 3DS system, which gives you access to all SD card data and FAT partitions within your SysNAND and EmuNAND. Furthermore the program allows you to copy, delete, rename files and create folders, but be careful the misuse of this program can accidentally damage your console data and lead to the brick, so be careful !!

From this release, all access points older than A9LH will be removed from the source code. Includes Brahma, GW and all variants of CakeHax.


For all users who have installed ARM9loaderhax and  Luma3DS

  • Rename GodMode9.bin   to  X_GodMode9.bin  and put it in sd: / luma / payloads /
  • Look for the   aeskeydb.bin, seeddb.bin and encTitlekeys.bin files somewhere on google (don’t ask me!) And put these three files in sd: / or sd: / files9 (optional but recommended for full functionality).

Additional installation information you can read the Github page here


v 1.9.0

  • [new] Touchscreen support, used for the keyboard (manual calibration is possible, but not required)
  • [new] LED support, which indicates finished operations
  • [new] Open / closed shell detection, disables display to save battery
  • [new] Brightness configuration (in the HOME menu)
  • [new] Support for editing, reading and writing of DISA and DIFF (.db) files (thanks  @ aspargas2  !)
  • [new] Allows setting attributes for directories
  • [news] Reading and writing support for gamecart saves (thanks  @ dratini0  )
  • [improved] ARM11 core completely rewritten
  • [improved] Countless improvements thanks to @Wolfvak
  • [solved] A metric fuckton of bug fixes (quoting  @Wolfvak  here)
  • [scripting] Allows game icons as a preview

v 1.7.1

  • [new] Characters can be set as default (find   some compatible characters here )
  • [Improved] The Trimmer tool now works also in batch, for multiple files simultaneously
  • [repaired] the script  NANDmanager.gm9works again (thanks  @TheGinGear  )

v 1.7.0

Almost 4 months have passed since the last version, here is a new one for you. This has a lot of improvements in scripting, but also some extras for everyone else. Here is the changelog:

  • [new] script  NANDmanager.gm9to  @ MadScript77  – replaces the old backup script / restore NAND
  • [new] script  GM9Megascript.gm9to  @ annson24  included in the official repository
  • [new] Trimmer tool for FIRM, NAND images, NDS images, NCCH and NCSD
  • [new] The SD formatter tool can now configure more RedNAND
  • [Improved] Faster SD read / write speed, thanks to the new sdmmc.c driver by  @ profi200
  • [Improved]   Internal readme file (thanks  @DMSalesman  )
  • [repaired] Dumping DLCs CIA (thanks  @ Steveice10  )
  • [correct] Did not copy the saved card2 when downloading card2 cartridges
  • [solved] Added an alternative solution for managing SHIFT-JIS in mounted NDS images
  • [correct] A whole bunch of minor fixes, many of them thanks to  @ windows-server-2003
  • [script] support for ips, bps, via patch bpm  applyips,  applybps,  applybpmcommands (thanks  @ Hyarion-SS  !)
  • [scripting] commands  fgetand  fset(to read / write bytes from a file)
  • [scripting] command  sdump(allows dumping  encTitleKeys.bin,  decTitleKeys.bin,seeddb.bin
  • command keychk [scripting] (to allow user input control)
  • [scripting] command  nextemuand  EMUBASEenv var (allows you to check and set the current EmuNAND
  • [scripting]  labelsel -kallows you to jump to labels with a pressed button

Did you know? 
A very useful feature of GodMode9 that is known by a surprisingly low number of people is the title search. Just press <R + A> on the  1:,  4:,  A:, or  B:unit to get a nice list of all the titles installed on these units (SysNAND SD titles are on  A:, of course).

v 1.6.3

  • [new] Support for PNG (for splash, script previews, screenshots) (thanks  @Wolfvak  )
  • [new] Displays the FAT SD volume label in the list of units
  • [correct] Numerous errors and minor improvements
  • [deprecated] Deprecated PCX support in favor of PNG

For scriptwriters, note that PCX is no longer supported. Just convert existing graphics to PNG.

v 1.6.2

Well, it was fast. Since the last version, thanks to the testers, we have detected two bugs that could cause exceptions. Although these should rarely be activated (practically never for most users), a bugfix version has just been released. This new version fixa:

  • [correct] Navigation TADs work again and do not cause exceptions
  • [solved] Crashes when running H & S  injected  homebrew (thanks to  @TurdPooCharger  and  @ annson24  )
  • [misc] Further improvements have been made to the overall stability of the system and other minor adjustments to improve the user experience

v 1.6.1

Today, exactly two years have passed since the  first public version of GodMode9 (v0.2.0)  . This is a small version, intended to commemorate the second anniversary.

  • [new] Replace the default character with  0:/gm9/support/font.pbmor1:/gm9/support/font.pbm
  • [new] Use full FCRAM for RAM drive on N3DS (thanks to  @ profi200  and  @Wolfvak  )
  • [improved] Screenshots can be captured almost anywhere and have a name based on date / time
  • [solved] Writing to SD cards blocked from writing is disabled (thanks  @ windows-server-2003  )
  • [correct] Proper handling of UTF-8 file names

Thanks to all those who have helped make this possible, including contributors, testers and users. I won’t even try to start a complete list here (take a look at the readme credits section) Thanks everyone!

v 1.6.0

A new version, which adds to the scripting, some new features, a great refactoring and countless changes.

  • [new] PCX bitmap viewer
  • [new] Data partition extraction for DIFF files
  • [Improved] improved ticket.db parser, only verified titlekeys output / tickets
  • [Improved] Revised font system, now lets you change fonts in runtime (1)
  • [Improved] Better management for batch operations
  • [Improved] Improved the title and the NCCH seed extractor
  • [solved] Compatibility with CIA containing> = 256 contents
  • [repaired] No other CIA arrests not compliant
  • [repaired] CDN / NUS download detection
  • [scripting] ntrboot detection via  $[HAX]env var
  • dirselcommand [scripting] (works like  filesel)
  • [scripting] the commands  isdirand  exist(useful with  if)
  • [script] command  for, also works recursively
  • [deprecated] ncchinfo.binXORpad unit  and XORpad generator (2)

In addition to the changes listed above, this version includes the usual infinite number of minor fixes and improvements. From the last version, there was also a large refactor (using the heap instead of the previous static memory management). A big thank you for this version to  @ profi200  and  @derrekr  (which provided the RSA verification code), to  @wwylele  (who managed the gigantic task of DIFF and DISA reverse engineering), to  Kazuma77  who helped push the scripting and everyone who has tested and opened problems on GitHub.

(1) You will not find compatible font files in the release archive, but if you want to try or maybe even create your own font, you can find some compatible ones  here  .

(2) Regarding the deprecation of XORpad, you no longer need XORpads seriously. All the tools that continue to generate  ncchinfo.binfiles are now irretrievably obsolete and there are better alternatives around. Furthermore you no longer need these XANDpad NANDs. Instead, use  @ihaveamac’s excellent  3ds-fuse  script  .

Important note for  the  users  A9NC  : This version modifies the operation and A9NC FIRM from FCRAM, you must also update the A9NC install a version equal to or greater than 0.1.4.

v 1.5.1

As some of you mentioned, the latest version had a bug that caused the CIAs generated by .3DS files to be filled. Given that neither GM9 nor FBI can handle the CIAs (for a good reason, it is not trivial to circumvent them), a new version is justified, with some goodies at the top. If you created CIA from .3DS with v1.5.0, I suggest you redo them with v1.5.1. Also, please update.

  • [correct] Creation of appropriate CIAs from 3DS files
  • [scripting] New  HelloBranching.gm9example script from Kazuma77
  • [script] New commands  strrep,  fdummyand fill
  • [scripting] New command  not(best used as in  if not ...,  elif not ...)
  • The filesel[scripting] command  now also allows browsing in directories

For scripts, I suggest you take a look at  HelloScript.gm9, which you’ll find in the examples directory. Thank you for reporting that the error to TurdPooCharger,  @ CecilFF4  eu / timchenw.

v 1.5.0

  • [new] Full support for DSiWare Exports / .TAD files (thanks to  @ihaveamac  for help)
  • [new] Limited support for .GBA rom images (title information / renaming)
  • [new] Support for title information for .3DSX
  • [new] File Attribute Editor (thanks to  @angelsl  )
  • [new] aeskeydb.bin can be installed on NAND, eliminating the need to have it on the SD card
  • [Improved] Improved input tool for strings, now with alphabet preview
  • [improved] Unblocking write permissions now uses random button sequences
  • [Improved] PCX support for splash bitmaps, reducing the .firm GM9 size (thanks to  @Wolfvak  )
  • [Improved] Bootloader slightly optimized
  • [Improved] Additional entries in system information
  • [Improved] New  combination of  colors of battery (thanks to  @JoshuaDoes  )
  • [improved] A gigaton of minor improvements, many of them under the hood
  • [fix] Several bugs  fixed  ,  solving the  problems of freeze with  fastboot3DS  (thanks,  @ profi200 )
  • [correction] Unified management of tar (during compilation, on all operating systems), through a Python script (thanks to  @ihaveamac  )
  • [script] support via control flow  if,  elif,  else,  end,  goto(thanks  @ windows-server-2003  )
  • labelselcommand [scripting], which allows the user to select from a range of labels to jump to
  • strsplitcommand [scripting], which allows extracting substrings from a string
  • [scripting] New  REGIONenvironment var

The main feature of this version is the support of the scripting control flow, finally giving script developers the tools needed for more advanced scripts. Thanks to Kazuma77 for tests and advice!

v 1.4.3

This version focuses primarily on bug fixes and improvements to previous features.

  • [new] Hardcoded readme and readme viewer within  HOME->  More...menu
  • [improved] Improved GBA VC Save injection method – now it will work 100%
  • [improved] Improved image management
  • [improved] Improvement in the text viewer color scheme
  • [improved] Improved FIRM decryptore (applies only to original N3DS FIRMs)
  • [fix] Physical scripts are not displayed in the text viewer
  • [fix] Fixed a block when viewing some text files
  • [scripting] Fixed and improved command shaget

v 1.4.2

  • [new] Added NAND recovery scripts from  Kazuma77
  • [new] Enables to  R+GIUforce reload the file list
  • [new] Added the context menu item for virtual files (only if exactly one entry exists in the appropriate block)
  • [fix] Fixed ntrboot detection. GM9 now works again as expected directly on an ntrboot card. Thanks  @ihaveamac  for finding this bug.
  • [fix] It did not allow installation of images of already mounted units.
  • [fix] Fixed the top bar that was still on GodMode9TD (thanks  @MelonGx  for the search)

v 1.4.1

  • [new] The current battery status is visible via an icon on the top bar
  • [new] The bootloader function (previously undocumented, read below!)
  • [new] Completely rewritten and improved method of GBA VC saves dumping and injection (see below!)
  • [new] Exceptions can be transferred via QR codes
  • [scripting] Allows customization and deactivation of the script preview
  • [scripting] Added commands  qrchk
  • [scripting] Added  HAX,  ONTYPEand  RDTYPEvars environment
  • [fix] Fixed the swapped  sd_cid.memenand_cid.mem
  • [fix] Reported ‘Copy to 0: / gm9 / out’ for dirs

Read on how to use the new GBA VC dumper / injector in the  Guide  .

The bootloader function is activated when GodMode9 is installed in FIRM0 (via the GodMode9 installer) or directly in a ntrboot flash card. I think this will only be done by experienced users and that those users  at least read the readme section on it  (CTRL + F for you lazy). Furthermore, there is nothing that most users would probably use. Thanks to  @ al3x10m  to test the bootloader and ideas.

v 1.4.0

A large release containing the results of 89 commits since the last release. This adds a bunch of new things and improvements to existing features. This is the (long) list of new things:

  • [new] Support for editing and browsing NDS images
  • [new] Payloads menu in the HOME menu
  • [new] The release archive contains .firms for installation via  ntrboot_flasher
  • [new] Handler manager (only works within GodMode9), thanks to  @Wolfvak
  • [new] Installer for FIRM files (advanced users / only ntrboot, all others use  SafeB9SInstaller  )
  • [new] New system information feature in the HOME menu, thanks to  @Myriachan
  • [new] Access to MCU registers (read only) via the  M:unit (again, thanks to  @Myriachan  )
  • [new] LZSS inverse decompression of compressed codes (button A for CXI)
  • [new] Rebuilding NAND headers – this can help with lost NANDs and NCSDs
  • [new] Fixed recursive CMAC for the units  A:,  B:,  S:andE:
  • [new] Build date / time on the splash screen – press and hold a button to continue displaying the splash screen
  • [new] File info file functionality and enhanced / combined drive / dir info functionality
  • [new] Nag screen if RTC is not set correctly (if year <2017) is detected
  • [new] Visual update of progress on large batch operations (scroll filelist)
  • [scripting] Preview of the live text of the currently processed script
  • [scripting] Possibility of creating autonomous script corridors (see readme for information)
  • [script] Added  fixcmac,  boot,  shaget,  switchsd,  extrcode,  fileselscripting commands
  • [scripting] Enhanced  injectcommand
  • [scripting] Allows partial checks by command  sha
  • [scripting]  findreturns the last / first alphanumeric match
  • [scripting] Dynamically updated environmental variables
  • [fix] Various boot times have decreased
  • [fix] Improved NDS dumper code
  • [fix] Improved screen init routines,  solving  a series of smaller problems (thanks,  @Wolfvak  )
  • [fix] The usual lot of small improvements and corrections – I hope I don’t forget anything big;)

For any changes / additions to the script, I suggest you take a look at  HelloScript.gm9where each command is explained by example. The GodMode9 v1.3.1 scripts are still fully compatible with this.

Special thanks for this release go to (in no particular order):

  • @ JaySea77  – for a huge amount of 2DS tests, helping to solve a particularly bad video init bug
  • @ AnalogMan151  – to help push forward scripting, also to take a look at his excellent  script Lazarus3DS
  • @Wolfvak  – for the entire ARM11 side of the GodMode9 source, for the chain loader and the FIRM handler manager
  • @Myriachan  – for its improvements to the virtual memory unit and the info system functionality
  • @ al3x10m  – again, to test, tips and ideas

v 1.3.5

  • – Fixed a graphic error in the position of the bar
  • Large batch operations: cursor updating and scrolling list


  • less restriction on FIRM section in the whitelisting address
  • fixes some problems with NDS roms
  • allows you to load Luma 8 once more

v 1.3.1

  • Fixed FAT image editing function
  • ISO 8601 standard used for date and time
  • It is possible to change the brightness using the volume slider, courtesy of  @Wolfvak  , with some additions of  @ al3x10m

v 1.3.0

  • RTC clock support – this means (among other things) the correct dates for FAT file changes. Be sure to read the updated guide below.
  • New variables DATESTAMP / TIMESTAMP for scripting (see  HelloScript.gm9, and take note of modified NAND backup scripts).
  • FIRM chain loading – thanks to  @Wolfvak  , who did all the work. The option for this is in the menu by pressing the A button.
  • Independent FIRM – this means that GM9 can now exhaust the FIRM0 / FIRM1 partition. Don’t do this unless you know exactly what you are doing. Thanks for this to  @Wolfvak  , once again.
  • Now you can create dummy files of any size via R + Y.
  • The usual batch of smaller fixes and improvements.

A big thank you for this release goes to  @Wolfvak  , which made this possible, even  @ al3x10m  , which still did a great deal of testing. The RTC clock function was, once again, made possible by  @ profi200  , with some help from  RTChanger  and  @ Storm-Eagle20  . Thank you all!

Important suggestion (1)  : as indicated in the previous version, this release removes all insertion points other than FIRM.

Important tip (2)  : When asked what requirements, you need the file  aeskeydb.binto be found somewhere on the network, it is exactly 1024 bytes and has an MD5 of A5B28945A7C051D7A0CD18AF0E580D1B. Have fun hunting! It should also be noted that on a boot9strapped system this is purely optional.

Important suggestion (3)  : Starting from this release, it is recommended to set the RTC clock correctly at least once. Find the option using the HOME -> button  More.... Also remember that you need to update the system’s OS clock later.

v 1.2.8

  • New commands for scripting  input,  decrypt,  encryptbuild cia
  • New environment variable  CURRDIRfor scripting
  • Resolves writing permission checking (critical!)
  • Corrects defective line numbers in the text viewer
  • Corrects the init TWL init on certain entry points in A9LH
  • Smaller corrections and improvements

Everyone should update to this new version of GodMode9 due to the critical bugfix. That critical fix corrects write permissions that have not been checked correctly in some cases.

This is the last legacy version  , that is, starting from this release, all access points older than A9LH will be removed from the source code. This includes Brahma, GW and all variants of CakeHax. Most users (= basically all) need onlyGodMode9.firm  .

v 1.2.7

  • Support for running .gm9 scripts (take a look to  HelloScript.gm9learn how it works)
  • New viewer for text files (also .gm9 scripts, of course)
  • Simplified creation options EmuNAND / RedNAND
  • Security confirmation on copy / move / inject / cancel
  • Nagscreen for built-in backup if not found
  • Numerous bug fixes and improvements, actually too many to be listed here.

Scripting allows you to automate and simplify things. With the script menu in the HOME menu it is now possible to replicate the D9 functionality in a similar menu structure. An example script and two NAND backup scripts are already included, here are some examples   (run only if they actually do what).

Release notes

  • The standard output path is now 0:/gm9/outand the recommended path for support files is 0:/gm9/support.
  • You can lose the NAND backup function in the HOME menu, which is now present in the script … after an appropriate setup (hint: see Quick Start Guide ).
  • A built-in essential backup is highly recommended (see S:/essential.exefsonce you have it). Either make one, or suffer through the nag screen, every time you start GM9.
  • The destination points older than A9LH are no longer included in the release archive (you can’t even notice, but if you do, install the b9s , goddammit ).

Fast guide

These instructions apply to all users who have installed ARM9loaderhax or SigHax and Luma3DS (Luma3DS set with standard paths). Here’s how to set it up quickly:

  • SigHax / Boot9Strap  : Copy  GodMode9.firmsomewhere on your SD card and  launch it  from there. FIRM payloads can be  executed  by  Luma3DS  or  Boot9Strap  .
  • [A9LH only] Rename GodMode9.bin(from the release archive) to X_GodMode9.bingoX to the button of your choice) and enter itsd:/luma/payloads/
  • [SigHax only] Rename GodMode9.firm(from the release archive) to X_GodMode9.firmgoX to the button of your choice) and enter itsd:/luma/payloads/
  • Copy the folder  gm9 to the SD card. Then, find the versions of aeskeydb.binseeddb.binand encTitlekeys.binsomewhere (don’t ask me!) And put these three files in sd:/gm9/support(optional but recommended for full functionality).
  • Helpful Tip # 1 : Go here for a step by step guide to doing some common activities in GodMode9. Especially users coming from Decrypt9WIP or Hourglass9 could be useful.
  • Helpful Tip # 2 : Never unlock the red write permission level unless you know exactly what you are doing . You will notice that the prompt when it comes up has a completely red screen. It is advisable to always remain at the yellow authorization level or below to be completely safe. Also read more about the write permission system below.

Now you can run GodMode9 by holding down the X button (or any other selected button) at startup.