GodMode9 v1.6.3

@d0k3 d0k3 released this Apr 4, 2018 · 56 commits to master since this release

Three releases in two weeks? Well, I need a release to replace the v1.6.2 April Fools Edition as most recent release, so here goes v1.6.3. This wouldn't be GodMode9 if there wouldn't be at least some goodies coming with it, so this is new:

  • [new] Support for PNG (for splashes, script previews, screenshots) (thanks @Wolfvak)
  • [new] Display the SD FAT volume label in the drives listing
  • [fixed] Several smaller bugfixes and improvements
  • [deprecated] Deprecated PCX support in favor of PNG

Script writers, take note that PCX is no more supported. Just convert your existing graphics to PNG and you will be good.

Also, I heard some of you actually liked what the april fools release did, so I added two new FLAVORs to the GodMode9 Makefile: GodMode64 and BrickedMode9.

GodMode9 v1.6.2 April Fools 2018 Edition

@d0k3 d0k3 released this Apr 1, 2018 · 74 commits to master since this release

Well, that was quick. Since the last release, thanks to testers, we found two bugs that could possibly cause exceptions. Although these should be rarely triggered (basically never for most users), a bugfix release is in order. This is new:

  • [new] Unhappy accidents (just joking, nothing bad will happen)
  • [fixed] Browsing TADs works again and does not cause exceptions (thanks @knight-ryu12 for the find)
  • [fixed] Crashes when running H&S injected homebrew (thanks @TurdPooCharger and @annson24)
  • [misc] Further improvements to overall system stability and other minor adjustments have been made to enhance the user experience

Again, thanks to everyone who sends in bug reports and helps to improve GodMode9.

Additional note: Yes, this is a April fools release. It will randomly switch to one of four "glitched" modes on boot. Don't panic! You can just reboot to try a normal boot again. Also: added an archive with the splashes and fonts.

GodMode9 v1.6.1 Second Anniversary Edition

@d0k3 d0k3 released this Mar 22, 2018 · 69 commits to master since this release

Today, exactly two years have passed since the first public release of GodMode9 (v0.2.0). This is a small release, intended to commemorate the two year anniversary. First of all, this is what you get:

  • [new] Override the default font via 0:/gm9/support/font.pbm or 1:/gm9/support/font.pbm
  • [new] Use full FCRAM for RAM drive on N3DS (thanks @profi200 and @Wolfvak)
  • [improved] Screenshots can be taken almost everywhere and have a date/time based name
  • [fixed] Disable writing to write-locked SD cards (thanks @windows-server-2003)
  • [fixed] Proper handling of UTF-8 filenames

As for the commemorating, a lot has happened since the GodMode9 v0.2.0 release:

  • 889 commits since v0.2.0, 954 commits total, a lot more if you also count commits inside branches and local commits. Don't even try to convert that to manhours.
  • To date, GodMode9 has been downloaded a total of 662,854 times from Github.
  • GodMode9's standard binary format has switched from Brahma, over A9LH, to FIRM. As of today, GodMode9 can even be installed as a bootloader and does not require another chainloader at all.
  • GodMode9 has evolved, from a very simple proof-of-concept ARM9 file browser, to an essential 3DS hacking tool, replacing the inferior (yeah, I know, some of you still think otherwise) Decrypt9.
  • Thanks to research, some of it directly connected to GodMode9 development, we now understand the 3DS OS better than ever today. (and no, we don't understand all of it yet)
  • Get further insights into the GodMode9 development history via the GitStats report. Just unpack it to some folder and open index.html in any browser of your choice. (thanks @Wolfvak for this)

Thanks to everyone who has helped to make this possible, including contributors, testers, and users. I won't even try to start a full list here (take a look into the readme credit section for a small, condensed one), just be sure, without you guys nothing of this would have been possible. Thank you all!

As a bonus, stuff to watch out for or give a try if you haven't yet:

  • @ihaveamac keeps on improving his excellent fuse-3ds script, allowing you to mount 3DS related data on PC, similar to how GodMode9 does it. New release coming up soon.
  • @Wolfvak has finally released and keeps on improving BAX, a tool allowing you to have animated boot splashes on your console, and a big improvement over his earlier BootAnim9 tool.
  • fastboot3DS will have a new release soon, including boot splash support and FIRM from FCRAM (A9NC, A9SP) support, plus another frequently requested feature.
  • @SirNapkin1334 hosts the offical GodMode9 Discord channel, for you to discuss anything GodMode9 related. Invite link here.
  • Last but not least: GodMode9 development will continue. Possible future improvements are ZIP / PNG support, a config menu and finally getting to zero issues on Github.

GodMode9 v1.6.0

@d0k3 d0k3 released this Feb 22, 2018 · 96 commits to master since this release

A new release, bringing you additions to scripting, some new features, a big refactor and countless under the hood changes. This is new:

  • [new] PCX bitmap viewer
  • [new] Extracting data partition for DIFF files
  • [improved] Improved ticket.db parser, only output verified titlekeys / tickets
  • [improved] Revised font system, now allowing to switch font in runtime (1)
  • [improved] Improved handling for batch operations
  • [improved] Improved titlekey and NCCH seed extractor
  • [fixed] Compatibility with CIAs containing >= 256 contents
  • [fixed] No more crashes caused by malformed CIAs
  • [fixed] Detecting CDN/NUS downloads
  • [scripting] ntrboot detection via $[HAX] env var
  • [scripting] new $[GM9VER] env var
  • [scripting] dirsel command (works like filesel)
  • [scripting] isdir and exist commands (useful with if)
  • [scripting] for command, also works recursively
  • [deprecated] XORpad drive and ncchinfo.bin XORpad generator (2)

On top of the changes listes above, this release includes the usual countless number of smaller bugfixes and improvements. Since the last release, there was also a big refactor (using the heap instead of the earlier static memory handling). Big thanks for this release go to @profi200 and @derrekr (who provided the RSA verification code), to @wwylele (who handled the gargantuan task of properly reverse engineering DIFF and DISA), to Kazuma77 who again helped push forward scripting and to everyone who tested and opened issues on GitHub.

(1) You won't find any compatible font files inside the release archive, but if you want to try or maybe even create your own font, you can find a few compatible ones here.

(2) As for the XORpad deprecation - you don't need XORpads anymore, seriously. Any tools still generating ncchinfo.bin files are by now hopelessly outdated and there are much better alternatives around. You also don't need these NAND XORpads anymore. Use @ihaveamac's excellent 3ds-fuse script instead.

Important note for A9NC users: This release changes how A9NC and FIRM from FCRAM works, you also need to update your A9NC installation to a version equal or above 0.1.4.

GodMode9 v1.5.1

@d0k3 d0k3 released this Jan 2, 2018 · 158 commits to master since this release

Well, that was quick. Also a good lesson on what happens when you do a release with a fixed deadline.

As some of you mentioned, the last release had a bug which caused CIAs generated from .3DS files to be padded. As neither GM9 nor FBI can handle padded CIA (for good reason, working around this is not trivial), a new release is warranted, with some goodies on top. If you created CIAs from .3DS with v1.5.0, I suggest you redo them with v1.5.1. Also, everyone please update.

This is new:

  • [fixed] Building proper CIAs from 3DS files
  • [scripting] New HelloBranching.gm9 sample script by Kazuma77
  • [scripting] New strrep, fdummy and fill commands
  • [scripting] New not command (best used as in if not ..., elif not ...)
  • [scripting] filesel command now also allows browsing dirs

For the scripting stuff, I suggest you take a look into HelloScript.gm9, which you'll find inside the samples directory. Thanks for pointing out that bug go to (among others) TurdPooCharger, @CecilFF4 and u/timchenw.

GodMode9 v1.5.0

@d0k3 d0k3 released this Dec 29, 2017 · 164 commits to master since this release

Just in time for a last 2017 update, here's another major one. This is new:

  • [new] Full support for DSiWare Exports / .TAD files (thanks @ihaveamac for help)
  • [new] Limited .GBA rom image support (title info / renaming)
  • [new] Title info support for a .3DSX
  • [new] File attribute editor (thanks @angelsl)
  • [new] aeskeydb.bin can be installed to NAND, eliminating the need to have it on the SD card
  • [improved] Improved string input tool, now with alphabet preview
  • [improved] Write permission unlocker now uses random button sequences
  • [improved] PCX support for splash bitmaps, reducing GM9 .firm size (thanks @Wolfvak)
  • [improved] Slightly tweaked bootloader
  • [improved] Additional entries in system info
  • [improved] New battery color scheme (thanks @JoshuaDoes)
  • [improved] A gigaton of smaller improvements, many of them under the hood
  • [fix] Several bugfixes, fixing freeze issues with fastboot3DS (thanks, @profi200)
  • [fix] Unified handling of tar (when compiling, on all OSes), via a Python script (thanks @ihaveamac)
  • [scripting] Control flow support via if, elif, else, end, goto (thanks @windows-server-2003)
  • [scripting] labelsel command, allowing the user to select from a range of labels to jump to
  • [scripting] strsplit command, allowing to extract substrings from a string
  • [scripting] New REGION environment var

The star feature of this release is control flow support for scripting, finally giving script devs the tools needed for more advanced scripts. Thanks go to Kazuma77 for testing and advice!

As always, bug reports (if anything comes up) are appreciated. Have fun testing this, and see you in 2018!

GodMode9 v1.4.3

@d0k3 d0k3 released this Oct 14, 2017 · 248 commits to master since this release

This release mainly concentrates on bug fixes and improvements of earlier features. This is what you get:

  • [new] Hardcoded readme and readme viewer inside the HOME -> More... menu
  • [improved] Vastly improved GBA VC Save injection method - will now work 100% of time
  • [improved] Improved image mount handling
  • [improved] Improved text viewer colour scheme
  • [improved] Improved FIRM decryptor (only applies to N3DS original FIRMs)
  • [fix] Fixed scripts not showing up in text viewer
  • [fix] Fixed crashes when viewing certain text files
  • [scripting] Fixed and improved shaget command

For those of you building yourself, there is now a way of disabling the brightness slider (DISABLE_SLIDER), an alternative bootloader mode (SALTMODE / AL3X10MODE) and a way of piggybacking filesystem images (vram0.img), which is best used in conjunction with the script runner feature. Lazyness won't be rewarded here, so read the readme and/or check out the Makefile for info on these.

Also, important info: If you're building this yourself, force update your firmtool to the most recent nightly. Use this command line: pip install --upgrade git+https://github.com/TuxSH/firmtool.git. Thanks @AuroraWright for the recent fix.

Starting from this release, the X: drive (containing NAND xorpads) is considered legacy and may be removed at a later point. Everyone looking for a way to browse their 3DS console data on a PC or Mac, have a look at @ihaveamac's excellent FUSE-3DS scripts.

Special thanks for this release go to @AuroraWright, @TuxSH and @Wolfvak, who helped me reverse engineering process9, finally enabling me to give you that 100% stability on GBA VC save injects.

GodMode9 v1.4.2

@d0k3 d0k3 released this Sep 24, 2017 · 285 commits to master since this release

A pretty minor release, intended to fix a small derp most of you won't even have noticed. This is new:

  • [new] Added NAND restore scripts by Kazuma77
  • [new] Allow R+DOWN to force reload the file list
  • [new] Inject context menu entry for virtual files (only if there's exactly one entry in the clipboard)
  • [fix] Fixed ntrboot detection. GM9 now again works as intended when flashed directly to a ntrboot card. Thanks @ihaveamac for finding this bug.
  • [fix] Don't allow mounting already mounted drive images.
  • [fix] Fixed vanishing top bar on GodMode9TD (thanks @MelonGx for the find)

The derp here only concerns those of you who directly flashed GM9 to their ntrboot cards, which will be a small minority of you guys. In those cases, ntrboot was not correctly detected, thus making GM9 default to the bootloader behaviour (which is not what you want there).

As for everyone who will be asking how to update now - you know, there's a readme, and there's a quick start guide in there. Updating just means replacing the GodMode9.firm with the newer version. You may also want to follow the quick start guide and copy the new scripts for this release.

GodMode9 v1.4.1

@d0k3 d0k3 released this Sep 22, 2017 · 292 commits to master since this release

Only a week later, and already a new release (not a small one). This is new:

  • [new] Current battery state is visible via an icon on the top bar
  • [new] Bootloader function (previously undocumented, read below!)
  • [new] Completely rewritten and improved method of GBA VC save dumping and injecting (read below!)
  • [new] Exceptions dumps can be transferred via QR codes (you'll most likely never ever see that)
  • [scripting] Allow customizing and disabling the script preview
  • [scripting] Added qr and chk commands
  • [scripting] Added HAX, ONTYPE and RDTYPE environment vars
  • [fix] Fix the swapped sd_cid.mem and nand_cid.mem
  • [fix] Brought back 'Copy to 0:/gm9/out' for dirs

Read about how to use the new GBA VC save dumper / injector in The Guide. Also note that this breaks earlier GodMode9 based GBA VC save injecting / dumping tutorials. Sorry, but you'll get something for it. The save format is fixed for emulators and the injection / dump has gotten much less tedious. Thanks go to @AuroraWright for pointing out issues with the earlier method and to @cheatfreak47 for testing it and providing info (also for nagging me until I rewrote it).

The bootloader function springs into action when GodMode9 is installed to FIRM0 (via the GodMode9 installer) or directly flashed to an ntrboot flashcard. I trust that this will only be done by experienced users, and that those users will at least read the readme section on it (CTRL+F for you lazy folks). Also, there's nothing in it that most users would probably use. Thanks to @al3x10m for testing the bootloader and ideas.

In short, the GodMode9 FIRM0 bootloader will act similar to boot9strap unless R+LEFT is held at boot, which will bring up a bootmenu. The GodMode9 FIRM0 bootloader is also a requirement for the latest A9NC release.

As for the exception dump QR code, if you really, really want to see it (hint) maybe try bkpt as scripting command? Also thanks to @Wolfvak for the idea and for enhancing the exception handler to support this.

GodMode9 v1.4.0

@d0k3 d0k3 released this Sep 14, 2017 · 315 commits to master since this release

A big release, containing the results of 89 commits since the last release. This adds a bunch of new stuff and improvements on existing features. This is the (long) list of new stuff:

  • [new] Support for mounting and browsing NDS images
  • [new] Payloads menu inside HOME menu
  • [new] Release archive contains .firms for install via ntrboot_flasher
  • [new] Exception handler (works inside GodMode9 only), thanks to @Wolfvak
  • [new] Installer for FIRM files (advanced users only, everyone else use SafeB9SInstaller)
  • [new] New system information feature in HOME menu, thanks to @Myriachan
  • [new] Access to MCU registers (read-only) via the M: drive (again, thanks @Myriachan)
  • [new] Reverse LZSS decompression of compressed .code (A button menu for CXIs)
  • [new] NAND header rebuilder - this can help with borked NANDs and lost NCSDs
  • [new] Recursive CMAC fixer for drives A:, B:, S: and E:
  • [new] Build date/time on splash screen - hold any button to keep displaying the splash screen
  • [new] File info feature for files, and improved/combined drive/dir info feature
  • [new] Nag screen if RTC is not correctly set (if year < 2017 is detected)
  • [new] Visual progress update on large batch operations (scrolling filelist)
  • [scripting] Live text preview of currently processed script
  • [scripting] Ability to build standalone script runners (see readme for info)
  • [scripting] Added fixcmac, boot, shaget, switchsd, extrcode, filesel scripting commands
  • [scripting] Enhanced the injectcommand
  • [scripting] Allow partial checks via the sha command
  • [scripting] findreturns the alphanumerical last / first match
  • [scripting] Dynamically updated environment variables
  • [fix] Vastly decreased boot times
  • [fix] Improved NDS cart dumper code
  • [fix] Improved screen init routines, fixing an array of smaller problems (thanks, @Wolfvak)
  • [fix] The usual batch of smaller improvements and fixes - hopefully I didn't forget anything big ;)

For any changes / additions to scripting, I advise you to have a look into HelloScript.gm9, where each command is explained by example. 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 tremendous amount of 2DS testing, helping to fix a particularily nasty screen init bug
  • @AnalogMan151 - for help pushing forward scripting, also take a look at his excellent Lazarus3DS script
  • @Wolfvak - for the whole ARM11 side of the GodMode9 source, for the FIRM chainloader and exception handler
  • @Myriachan - for her improvements to the virtual memory drive and the system info feature
  • @al3x10m - again, for testing, advice and ideas