Homebrew [Release] GodMode9 Scripts Megathread

d0k3

3DS Homebrew Legend
Member
Joined
Dec 3, 2004
Messages
2,786
Trophies
1
XP
3,896
Country
Germany
View attachment 179458


View attachment 179459


GBAVCSM (Game Boy Advance Virtual Console Save Manager)

Credit

@Aurora Wright - Research in AGB_FIRM save types and sizes.
@d0k3 - Research in GBA VC *.sav and agbsave.bin CMACs.
@CheatFreak47 - Research in EEPROM saves 0x8 bytes flipping.
@KleinesSinchen - Very thorough safety, critical functions, validation, and stress testings.
@EventAssistant (Bernardo Giordano) - Save manager ideas of cache and naming conventions borrowed from Checkpoint.
@JK_ - Save manager ideas of a bare minimum user interference appropriate for gm9 script borrowed from JKSM.
Nintendo - Box icon's simple style inspired from CTR SDK dev tools.

Release Page
Description
A gm9 script dedicated to handling GBA VC saves.

Features

  • Automatically mass dump all the GBA VC saves in one go. Caching the titles list is not required.
    • :!: Carefully read the top screen's ~ INSTRUCTIONS ~.
  • Extract the *.gba roms from the individual injections.
  • User customizable script icon, title box art, and save folder's name & directory.
    • See further details in the option, About the script.
    • Edit the settings with a text editor like Notepad or Programmer's Notepad.
Box Arts, Banners, Screenshots, Rom Info Lookup

Notes

1.This initial v1.0 release does not support direct injection. The user is required to manually select their save file copied to the [9:] RAMDRIVE and then inject it to the agbsave.bin found in [S:] SYSNAND VIRTUAL.​

2. The [9:] RAMDRIVE was chosen for its availability on both o3DS and n3DS series systems, close proximity to the [S:] SYSNAND VIRTUAL, and no need for post cleanup as the file erases itself after closing GodMode9.​

3. Unlike the method found below, you can inject saves for multiple titles in a single session. The process of going back and forth exiting GodMode9, launching the GBA VC title, and going back to GodMode9 is eliminated.
4. A newly installed GBA VC title needs to be launched at least once in order to initialized its save. If the save isn't initialized, the script will fail to find the title in a cache search.

5. Rebuild Cache (Auto) - :!: Carefully read the top screen's ~ INSTRUCTIONS ~.

6. Update Cache (Manual) - To find newly installed games so that they can be added,
  1. [A:] SYSNAND SD/title/00040000 → hold (R)-shoulder and press (A) → Search for titles.
  2. Use pen(cil) and paper to write down their TitleIDs.

7. A title's folder name and NAME_* cache are adjustable. However, changing the NAME_* affect its save folder's name.

8. For faster performance and until the next stable release, you may use the experimental build GodMode9 v1.8.0-77-g65c605f5 found here.

9. To quickly switch from HOME Menu / NATIVE_FIRM to GodMode9, press (L)-shoulder + (DOWN) d-pad + (SELECT) to open Rosalina menu, press (UP) d-pad twice, Reboot, and then quickly press & hold (START) button to access Luma3DS chainloader.

10. Early in its development, this script was internally known as project TOTO. The code name was adopted in jest to the person who helped out the most, and it stems from this individual's game character. However, the actual meaning or backstory of the name and how it came to be was never divulged; whoever this original TOTO refers to remains a mystery.​
Great stuff!
 
  • Like
Reactions: TurdPooCharger

Zen11

Member
Newcomer
Joined
Nov 22, 2019
Messages
7
Trophies
0
Age
24
XP
68
Country
United States
Hi @TurdPooCharger , i succesful recover my 2ds from a softbrick thanks to this guide, but in the step #13 when i tried to update my 2ds from system setting or recovery mode i´m getting an error, i don´t know why this happens.
 

Attachments

  • 1.jpeg
    1.jpeg
    67.5 KB · Views: 224
Joined
Jan 1, 2018
Messages
7,292
Trophies
2
XP
5,946
Country
United States
Hi @TurdPooCharger , i succesful recover my 2ds from a softbrick thanks to this guide, but in the step #13 when i tried to update my 2ds from system setting or recovery mode i´m getting an error, i don´t know why this happens.
Old 2DS with system update error after softbrick recovery with CTRTransfer (Type D9). Hmm..
  1. Did you make sure to FBI install all the dumped tickets (TIK files) found at smdc:/gm9/out/<date>_<serial>_system tickets (<region>)_000?

  2. Was your softbrick due to A9LH 2.1.0 CTRTransfer downgrade?
 

Zen11

Member
Newcomer
Joined
Nov 22, 2019
Messages
7
Trophies
0
Age
24
XP
68
Country
United States
@TurdPooCharger thx dude, I was looking for those tickets before but I didn't find them, now it works. I´m retarded and thought that deleting the DBS files would regenerate the tickets by turning the 2ds again, but it get softbricked, but thx to your guide now works again and have all the tickets working. Thanks!
 
Joined
Jan 1, 2018
Messages
7,292
Trophies
2
XP
5,946
Country
United States
@TurdPooCharger thx dude, I was looking for those tickets before but I didn't find them, now it works. I´m retarded and thought that deleting the DBS files would regenerate the tickets by turning the 2ds again, but it get softbricked, but thx to your guide now works again and have all the tickets working. Thanks!
Don't forget to FBI install the TWL system titles and DSiWare CIAs found in the other folder.
 
Last edited by TurdPooCharger,
  • Like
Reactions: Zen11
Joined
Jan 1, 2018
Messages
7,292
Trophies
2
XP
5,946
Country
United States
@TurdPooCharger any solution to this error? -snip-
This error is from the GBAVCSM script while trying to dump the *.gba rom, yes?

The TMD (title metadata) file for a specific game is located at:
  • sdmc:/Nintendo 3DS/<ID0>/<ID1>/00040000/<TID_LOW>/content/0000000#.tmd
If yours is missing, you might want to figure out whether you previously accidentally deleted this or whether your SD card is corrupting your data.
 

t33st33r

Well-Known Member
Newcomer
Joined
Sep 22, 2018
Messages
46
Trophies
0
XP
284
Country
Spain

Working

  • 3DShell
  • 3DSident
  • CIAngel
  • Checkpoint
  • Cthulhu
  • DSP1
  • FBI
  • freeShop
  • GameYob
  • GYTB
  • Homebrew Launcher
  • JKSM
  • mGBA
  • TIKDevil
  • tikSweep
  • Themely
  • TWLoader * - Will launch into menu. NDS games will not boot when selected. Works now starting from v1.9, except for Health & Safety and Face Raiders. Those two still boot up blank when NDS game is select.

You said Homebrew launcher is injectable but... the one you are talking about is homebrew_launcher_dummy (aka. Homebrew launcher wrapper) right?
...or is there a CIA (if so I don't know its existence) of Homebrew launcher?
 
Joined
Jan 1, 2018
Messages
7,292
Trophies
2
XP
5,946
Country
United States
You said Homebrew launcher is injectable but... the one you are talking about is homebrew_launcher_dummy (aka. Homebrew launcher wrapper) right?
...or is there a CIA (if so I don't know its existence) of Homebrew launcher?
Homebrew Launcher loader (old) and Homebrew Launcher Wrapper (new) are nothing more than placeholders icon and banner to whichever system title that gets injected into with the Inject and Restore Apps script. The real magic to making Homebrew Launcher work is the new-hbmenu (boot.3dsx) coupled to Luma3DS Rosalina menu HBL injector with the (L)-shoulder + (DOWN) d-pad + (SELECT) button combo.

Assessing your interaction with others from the 3Down - CTRNAND Downgrade thread starting at your post, I think you might want a quick crash course on what you might have missed over the years about the latest 3DS custom firmware and homebrew apps.
 
  • Like
Reactions: Alexander1970

t33st33r

Well-Known Member
Newcomer
Joined
Sep 22, 2018
Messages
46
Trophies
0
XP
284
Country
Spain
Homebrew Launcher loader (old) and Homebrew Launcher Wrapper (new) are nothing more than placeholders icon and banner to whichever system title that gets injected into with the Inject and Restore Apps script. The real magic to making Homebrew Launcher work is the new-hbmenu (boot.3dsx) coupled to Luma3DS Rosalina menu HBL injector with the (L)-shoulder + (DOWN) d-pad + (SELECT) button combo.

Assessing your interaction with others from the 3Down - CTRNAND Downgrade thread starting at your post, I think you might want a quick crash course on what you might have missed over the years about the latest 3DS custom firmware and homebrew apps.
I think there's a confusion about something here. I know (or I think I know) how the rosalina injects HBL to the title you choose. It is made in-RAM right?

If I didn't misunderstood your post... your script injects a CIA. That was the reason of my question.
If your script injects HBL the same/similar way rosalina does... what is the difference between doing it with your script? Not the difference in the method... the result instead.

I know the language barrier is a problem =(. I am not so good in english... sometimes I think in my native language and try to translate that to english. Sometimes that tryouts are futile.
 
Joined
Jan 1, 2018
Messages
7,292
Trophies
2
XP
5,946
Country
United States
I think there's a confusion about something here. I know (or I think I know) how the rosalina injects HBL to the title you choose. It is made in-RAM right?

If I didn't misunderstood your post... your script injects a CIA. That was the reason of my question.
If your script injects HBL the same/similar way rosalina does... what is the difference between doing it with your script? Not the difference in the method... the result instead.

I know the language barrier is a problem =(. I am not so good in english... sometimes I think in my native language and try to translate that to english. Sometimes that tryouts are futile.

Luma3DS Rosalina menu HBL injection and GodMode9 system title CIA injection are not the same thing nor do they work the same way.

Rosalina injection redirects booting the new-hbmenu (boot.3dsx) from whichever system title or (Homebrew Launcher loader/Homebrew Launcher Wrapper) the user chooses to launch from.

GodMode9 injection substitutes a CIA's game/application *.app in place of the system title's *.app found on the [1:] SYSNAND CTRNAND. Due to somewhat lax security measures Nintendo put in place for nand titles, CIA homebrew titles that are typically installed on the SD card could be made to function like a system title where they persist despite swapping out a different SD card, different Nintendo 3DS folder, or even no sd card in place.

As was mentioned before, the Homebrew Launcher loader and Homebrew Launcher Wrapper are nowadays just "dummy" CIAs where you want to Rosalina inject the "real" HBL to. You install the loader/wrapper for the HOME Menu banner, icon, and spiffy splash logo launch animation (blue wave).
 

t33st33r

Well-Known Member
Newcomer
Joined
Sep 22, 2018
Messages
46
Trophies
0
XP
284
Country
Spain
As was mentioned before, the Homebrew Launcher loader and Homebrew Launcher Wrapper are nowadays just "dummy" CIAs where you want to Rosalina inject the "real" HBL to. You install the loader/wrapper for the HOME Menu banner, icon, and spiffy splash logo launch animation (blue wave).
Sorry... I didn't tell you I've already know that. I knew that before my first post in this thread but sometimes the only way I find to explain something make I skip some parts of the original explanation in my head (in spanish).

GodMode9 injection substitutes a CIA's game/application *.app in place of the system title's *.app found on the [1:] SYSNAND CTRNAND. Due to somewhat lax security measures Nintendo put in place for nand titles, CIA homebrew titles that are typically installed on the SD card could be made to function like a system title where they persist despite swapping out a different SD card, different Nintendo 3DS folder, or even no sd card in place.
I don't get it. Your scripts use the *.app file present in the CIA and put it in the place of the system-title's folder in CTRNAND but to use a *.app file from original's HBL it requires a HBL CIA to exist. If boot.3dsx was a CIA that fact is the one giving me the confusion. I know the format is not the same thing than the extension but in cases where the extension doesn't follow the format it is always a surprise for me because I don't expect it.

---

EDIT: I scrolled up to past messages and I got my fault. Homebrew launcher is not the same as Homebrew menu. right?
EDIT2: There are Homebrew menu (the one rosalina injects), Homebrew launcher, and Homebrew launcher loader
 
Last edited by t33st33r,
Joined
Jan 1, 2018
Messages
7,292
Trophies
2
XP
5,946
Country
United States
hblauncher_loader - This is the original Homebrew Launcher made by yellow8. It is a *.cia that installs onto HOME Menu. Before the time of B9S (sighax) and older A9LH custom firmwares, running homebrew *.3dsx applications could only be done by userland exploits such as Soundhax and otherapp/robpin payloads. hblauncher_loader is defunct these days and has been succeeded by new-hbmenu in terms of launching *.3dsx applications.

new-hbmenu - This is the replacement HBL of the above made by fincs. It is a special *.3dsx placed in the root of the SD card, and it only works in conjunction with the Rosalina menu's HBL injection. Because new-hbmenu is not a *.cia, it does not get installed to the Nintendo 3DS folder. This means new-hbmenu requires piggybacking off of other titles that do have HOME Menu icons.

Homebrew_Launcher_Wrapper - This is the companion *.cia to new-hbmenu created by PabloMK7 (mariohackandglitch). It was specifically made to act as surrogate HOME Menu icon. This is for those who do not want to Rosalina inject Homebrew Launcher to any of the system titles or prefer a new stylistic take of the hblauncher_loader in terms of banner, icon, and logo.

***

If you're asking why the Inject and Restore Apps script can't inject boot.3dsx to a system title, this question would be like being asked what's your favorite color and getting the answer "grape". One could infer the intended reply is "purple" but grape is technically a fruit (not color).

While it is possible to convert *.3dsx to *.cia with cxitool, but I'm going to tell you upfront that new-hbmenu does not properly function as a standalone CIA. When installed and launched from HOME Menu, this converted title will crash if the sdmc:/boot.3dsx is missing and will not launch 3DSX apps if not assigned/injected in Rosalina menu.

Edit - Don't ask me why a standalone CIA version of Homebrew Launcher that does not require Rosalina injection hasn't been created before because I'm not the person who can answer that.
 
Last edited by TurdPooCharger,

t33st33r

Well-Known Member
Newcomer
Joined
Sep 22, 2018
Messages
46
Trophies
0
XP
284
Country
Spain
you explained it perfectly. thanks
Homebrew_Launcher_Wrapper - This is the companion *.cia to new-hbmenu created by PabloMK7 (mariohackandglitch). It was specifically made to act as surrogate HOME Menu icon. This is for those who do not want to Rosalina inject Homebrew Launcher to any of the system titles or prefer a new stylistic take of the hblauncher_loader in terms of banner, icon, and logo.
Another choice is to inject HbLW to a preinstalled game in CTRNAND (and use rosalina injection to able it run new-hbmenu). I am going to do that with face hunter. This way I will see HbLW icon and banner while using stealth mode.
 
Last edited by t33st33r,
Joined
Jan 1, 2018
Messages
7,292
Trophies
2
XP
5,946
Country
United States
The CTRTransfer (Type D9) script has been updated to version 1.5. There was a v1.4 but due to personal time constraints, that one received a quiet release. For the sake of updating all relevant information, any changes introduced in v1.4 is rolled over and talked about in v1.5 as-if it was introduced in v1.5.

Finer details of the changes can be read in the release page.
  • [improved] CTRTransfer
  • [improved] DSiWare CIAs & Saves
  • [improved] Fix movable.sed KeyY
  • [improved] Rebuild 3DS Database
  • [improved] Inject HBL to Camera
  • [improved] Remap Rosalina combo
  • [new] Bypass Profile Setup
  • [new] Lookup Parental PIN
An idea that didn't make the cut...
  • [rejected] Check eMMC Status
This would have been the H2testw equivalent for the NAND chip found on the motherboard. Those who have the oldest 3DS systems or suspect their flash memory might be damaged from a bad drop or bend stress are the most likely to be interested in this feature. While creating this is possible to pull off, this feature would have been waaayy too risky in case something goes wrong midrun (ie, super softbrick the entire firmware).

Highlights
Basically, v1.5 includes a bunch of bug fixes and several lazy features like auto self-updating to GM9 v1.9.1 if you're using an older version, and auto updating/installing CTRNAND Luma3DS, CTRNAND GodMode9, and boot9strap v1.3 in CTRTransfer. Anyone who has a bootrom 8046 or Blue Screens of Death softbrick may want to first try CTRTransfer (Type D9) v1.5 if they don't have a SysNAND *.bin image to fall back on.
 
  • Like
Reactions: KleinesSinchen
Joined
Jan 1, 2018
Messages
7,292
Trophies
2
XP
5,946
Country
United States
The original post was made on April-09-2020.
April-12-2020 Late Edit:
Spoke too soon. Found a serious pitfall in the v1.6. Had to do a quick fix, follow-up v1.7 release. Sorry to anyone who might have been affected by that bug.

***

The CTRTransfer (Type D9) script has been updated to a final version 1.6 version 1.7. Looking back, I was continually surprised with what the GodMode9 script engine is capable of when pushed to its very limits. It's been a wonderful journey working on this project while learning a lot about the ins-and-outs of the 3DS along the way. A blast throughout it all. :)

Finer details of the changes can be read in the release page.
  • [improved] CTRTransfer
  • [improved] DSiWare CIAs & Saves
  • [improved] Rebuild 3DS Database
  • [improved] Inject HBL to Camera
  • [improved] Bypass Profile Setup
  • [improved] Lookup Parental PIN
  • [new] eMMC Status Checker
  • [new] Reset NVRAM image
Highlights
Basically, I borrowed my cousin's o3DSXL and went to town bricking and testing a bunch of scenarios that weren't possible to replicate on my n3DSXL. The script is about as good as it'll ever get for each of its listed functions.

***

Oh, and the GBAVCSM script also gets an update version 1.3. This one tweaks cache management for games that are no longer installed, and it's slightly faster building a title's cache.
 
Last edited by TurdPooCharger,

fmkid

Just another GBATemp's random guy
Member
Joined
Apr 23, 2015
Messages
1,911
Trophies
0
XP
1,424
Country
Colombia
IDK if my next question was made and answered (or if something like this already exists) ... But, it is possible or doable a GM9 script that allows to install .cia files directly to the SD/microSD, as the same way as custom-install?
 
Joined
Jan 1, 2018
Messages
7,292
Trophies
2
XP
5,946
Country
United States
IDK if my next question was made and answered (or if something like this already exists) ... But, it is possible or doable a GM9 script that allows to install .cia files directly to the SD/microSD, as the same way as custom-install?
Eerrhhmmm.... :ph34r:

GM9 scripting can't directly install 3DS/CIA to the Nintendo 3DS folder. The biggest technical hurdle is handling the database files ticket.db and title.db which the script engine is not advance enough to properly modify their entries.

Homebrewers will have to continue installing games, dlcs, and updates with FBI or custom-install until noted otherwise.

:nds:
 
  • Like
Reactions: fmkid

fmkid

Just another GBATemp's random guy
Member
Joined
Apr 23, 2015
Messages
1,911
Trophies
0
XP
1,424
Country
Colombia
Eerrhhmmm.... :ph34r:

GM9 scripting can't directly install 3DS/CIA to the Nintendo 3DS folder. The biggest technical hurdle is handling the database files ticket.db and title.db which the script engine is not advance enough to properly modify their entries.

Homebrewers will have to continue installing games, dlcs, and updates with FBI or custom-install until noted otherwise.

:nds:
Thanks for the explanation!
 
  • Like
Reactions: TurdPooCharger

Site & Scene News

Popular threads in this forum

General chit-chat
Help Users
  • SylverReZ @ SylverReZ:
    Had a ton of bugs and often crashed. It even didn't support DOS compatibility with older games. :feelsbadman:
  • SylverReZ @ SylverReZ:
    I only grew up with Windows XP because I was lucky.
  • RedColoredStars @ RedColoredStars:
    I downloaded XP on dialup when it came out. Overnights for like a week. cuz I couldn't tie up the phone line during the day. It was so awesome and worked so great going from ME to XP.
  • K3Nv2 @ K3Nv2:
    Vga pins were a dick
  • K3Nv2 @ K3Nv2:
    I kind of want down a large pizza at 10am then crash out
  • ZeroT21 @ ZeroT21:
    Having pizza all day? done it
  • K3Nv2 @ K3Nv2:
    Nah pizza hut open at 10:30
  • ZeroT21 @ ZeroT21:
    just buy a stack of pizza and keep the rest you don't need yet frozen
  • K3Nv2 @ K3Nv2:
    Or buy frozen pizza
  • ZeroT21 @ ZeroT21:
    I buy the regular kind, not the frozen stuff
  • ZeroT21 @ ZeroT21:
    supermarket pizza is ass
  • K3Nv2 @ K3Nv2:
    x65 would just yell at me
  • ZeroT21 @ ZeroT21:
    sounds ok, he didn't pull a gun out ,so...
  • K3Nv2 @ K3Nv2:
    $12 large any style pizza deal
  • K3Nv2 @ K3Nv2:
    Each bite is a $1 well spent
  • SylverReZ @ SylverReZ:
    @ZeroT21, Agreed. I hate oven pizza, only from pizza place.
    +1
  • K3Nv2 @ K3Nv2:
    Nah I can still go for totinos
  • RedColoredStars @ RedColoredStars:
    i like totinos party pizzas. lol.
  • RedColoredStars @ RedColoredStars:
    the cracker-like crust is great on those
  • RedColoredStars @ RedColoredStars:
    My neighbor and I are going to make this next month....
  • SylverReZ @ SylverReZ:
    Tiger crust is great.
  • K3Nv2 @ K3Nv2:
    I'm beefing with a neighbor currently each time I ask him for help with something he makes bs excuses then ignores my calls text but seems to randomly speak when I'm done with the project after doing things to help him
  • RedColoredStars @ RedColoredStars:
    DiGiorno Crispy Pan Pizza tasted pretty dang close to Pizza hut pan pizza, but Im not sure if theyve been discontinued or not. Havent seen them locally for a couple of months now.
  • RedColoredStars @ RedColoredStars:
    The croissant crust is still available though, but not quite as good imo.
    RedColoredStars @ RedColoredStars: The croissant crust is still available though, but not quite as good imo.