Homebrew Official [Release] GodMode9 - All Access File Browser for the 3DS

  • Thread starter d0k3
  • Start date
  • Views 307,456
  • Replies 1,143
  • Likes 105
Joined
Feb 17, 2017
Messages
1,214
Trophies
1
XP
2,473
So, you're sure that downgrading from 11.6 is possible? And I can make an EmuNand if my SysNand is on 11.6? Because a lot of people say both of theses things are not possible on 11.6. Also, if I were to attempt a downgrade, would it do anything to my Boot9Strap Installation? Maybe let's get into a private conversation so I don't have to pelt you with questions here.
Downgrading from 11.6 is possible if you have cfw, just not if you have a stock system
 

Kazuma77

Well-Known Member
Member
Joined
May 11, 2008
Messages
1,035
Trophies
1
XP
903
Country
United States
@d0k3: I just tried to use the "shaget" command to get a partial SHA and it didn't work (either for grabbing to a variable or file). I was working on a script that lets you pick any payload for "boot.firm" (but only when GM9 is installed to firm0, otherwise only the other chainloader options presented will work). But the "shaget" line always fails no matter what I try, so it never even gets to the comparison to see if GM9 is installed to firm0.
 

SirNapkin1334

Renound Aritst
Member
Joined
Aug 20, 2017
Messages
1,665
Trophies
1
XP
975
Country
United States
I found a way to crash it. This was on the version before the latest version, and it involved opening a really short document in the textviewer (or something).
Also, how do I change the screen brightness?
Also, why give access to the Ramdrive when the only way to open GM9 is rebooting, and rebooting clears the Ramdrive?

EDITS:
Okay, well, the screen brightness is what you last set it to in the 3DS. But a good feature would be brightness adjustment, maybe from the home menu? (in GM9)
Also, what the hell is a xorpad?
 
Last edited by SirNapkin1334,

Kazuma77

Well-Known Member
Member
Joined
May 11, 2008
Messages
1,035
Trophies
1
XP
903
Country
United States
I found a way to crash it. This was on the version before the latest version, and it involved opening a really short document in the textviewer (or something).
Also, how do I change the screen brightness?
Also, why give access to the Ramdrive when the only way to open GM9 is rebooting, and rebooting clears the Ramdrive?

EDITS:
Okay, well, the screen brightness is what you last set it to in the 3DS. But a good feature would be brightness adjustment, maybe from the home menu? (in GM9)
Also, what the hell is a xorpad?

Ah, but you can unmount the card with R+B and swap it with another one. Never mind the "switchsd" command. There are several "PC-less" NTRBootHax swap card layouts out there. Including "Shove & Shuffle" in my InScripted project (I'm renaming it to "Shove & Shift" next update -- shuffle is technically correct, but it probably makes most people think about scrambling their playlist). Basically you have the "swap card" boot straight to GM9, then just run the script that performs the Sighax install and copies the files the system needs (from a separate folder if you want to do it right) to the RAM drive, then the script says to eject the card, and when you switch, it copies it all back. You can do a complete install anywhere with just a magnet, your NTRBootHax cart, and the swap card.

In fact, I'm about to test a change to it -- I'm working on configurations that get selected and switched to based on your Sighax payload selection during install (pick B9S, it does the usual layout, pick GM9, it sets up a configuration with Cakes Launcher on left and Puma on start -- no need to hotkey GM9 when it's your firm). The key is to have the payload be a subset of the configuration folder -- Godmode9.firm.config for example, so you can use the variable for the payload to copy the matching configuration over. Not too hard on the same card, but swapping complicates it a bit.

Also, brightness is already adjustable via the volume slider (might seem like a strange place for it, but, it's not like you're going to listen to MP3s in GM9, especially with no one knowing how to initialize the sound hardware yet).

As for xorpads... Well, xor is short for "exclusive or" -- a slight twist on the regular "or" expression where only one of the binary digits being compared can be a 1 or you get a 0, hence the "exclusive" part. It's often used as a form of encryption. So, a xorpad is the other file that when the encrypted file is xored by, gives the original unencrypted file. These used to be needed to decrypt dumps of various parts of your NAND on a PC or convert ROMs to CIAs. They're not needed as much now that the boot ROMs have been dumped, but it's still good to have the option.
 
Last edited by Kazuma77,

d0k3

3DS Homebrew Legend
OP
Member
Joined
Dec 3, 2004
Messages
2,786
Trophies
1
XP
3,896
Country
Germany
@d0k3 .lnk (Microsoft app links) tend to cause a lot of trouble. it forces me to have to remount the SD card a few times before I stop getting (invalid directory object). but it will actually enter the directory containing the links and go up a dir successfully. other times, it complains about invalid directory object when trying to go up. not that much of a problem for me, but whatever.

--------------------- MERGED ---------------------------

it takes a few tries.
Where did you create these .lnk files? Tbh, I'm not entirely sure what they do and how they work. Maybe upload one?

@d0k3: I've been playing with GM9 as a firm (I'm including the ability to pick a firm when installing Sighax in my AIO's next update). The bootloader is very nice, though it's a bit slower than B9S. Any chance you could disable the feature that pauses the splash screen when buttons are held down when it is being used as a firm? Or at least make it a compile option? As it is, if you hit the hotkey too early, it delays the boot process. I get that the idea is to replace the need for a payload-based chainloader, but I still like my BootCTR9.

The delay from the splash screen should be minimal (~0.5s). You can speed it up by hardcoding the aeskeydb.bin. Also, re delay when buttons are held. You need to hold the button combo either *before* the splash screen comes up or when it is done initializing. Meaning: you can release the buttons when you see the splash screen. For alternative behaviour (= no button held delay) try 'make AL3X10MODE=1'. And tell me what you like better.

Also... "As it is, if you hit the hotkey too early, it delays the boot process." - can you explain this a bit more? There shouldn't be any delay in hitting it early.

(Reposting to get your attention.)
I see. Can I create a 9.2 EmuNand/RedNand if my SysNand is on 11.6?
SORRY FOR REPOSTING! I just feel like if I don't quote you you will never hear me.

Aw come on, give me a break... Yes, the GM9 SD Formatter tools allows you to create a RedNAND or GW type EmuNAND. Yes, it will offer you to copy over your SysNAND there. Yes, you can have a 9.2 EmuNAND. Process is basically the same as the process for a region switch (look into a certain guide, don't be lazy).

It crashes when fast scroll (R + Down) in textviewer with the file ("godmode.txt"). Yes, the file is the old godmode's source code. It happens even on newest (commit: 753) test build. I tried changing the file name, but it wasn't resolved. I tried with another file which has the bigger size than "godmode.txt", but it doesn't crashes.
"godmode9.txt" and exception dump file is in the zip file.
old 2ds , running from b9s v1.2
I'll look into it.

--------------------- MERGED ---------------------------

@d0k3: I just tried to use the "shaget" command to get a partial SHA and it didn't work (either for grabbing to a variable or file). I was working on a script that lets you pick any payload for "boot.firm" (but only when GM9 is installed to firm0, otherwise only the other chainloader options presented will work). But the "shaget" line always fails no matter what I try, so it never even gets to the comparison to see if GM9 is installed to firm0.
I'll look into that, too.

I found a way to crash it. This was on the version before the latest version, and it involved opening a really short document in the textviewer (or something).
Can you test if it still happens on the latest nightly and provide the text file if it does?
 
Last edited by d0k3,

SirNapkin1334

Renound Aritst
Member
Joined
Aug 20, 2017
Messages
1,665
Trophies
1
XP
975
Country
United States
Where did you create these .lnk files? Tbh, I'm not entirely sure what they do and how they work. Maybe upload one?



The delay from the splash screen should be minimal (~0.5s). You can speed it up by hardcoding the aeskeydb.bin. Also, re delay when buttons are held. You need to hold the button combo either *before* the splash screen comes up or when it is done initializing. Meaning: you can release the buttons when you see the splash screen. For alternative behaviour (= no button held delay) try 'make AL3X10MODE=1'. And tell me what you like better.

Also... "As it is, if you hit the hotkey too early, it delays the boot process." - can you explain this a bit more? There shouldn't be any delay in hitting it early.



Aw come on, give me a break... Yes, the GM9 SD Formatter tools allows you to create a RedNAND or GW type EmuNAND. Yes, it will offer you to copy over your SysNAND there. Yes, you can have a 9.2 EmuNAND. Process is basically the same as the process for a region switch (look into a certain guide, don't be lazy).


I'll look into it.

--------------------- MERGED ---------------------------


I'll look into that, too.


Can you test if it still happens on the latest nightly and provide the text file if it does?
Actually, I think it may have been the crash that @windows_server_2003 got. I know that the file has something to do with GM9, but I don't remember that much since it was 6:00 and I was in my bed just sifting through my entire 3DS. For me, it crashed on the "Textviewer Controls" Dialog. I'll try to find the file, and see if I can test it again.
 

Kazuma77

Well-Known Member
Member
Joined
May 11, 2008
Messages
1,035
Trophies
1
XP
903
Country
United States
The delay from the splash screen should be minimal (~0.5s). You can speed it up by hardcoding the aeskeydb.bin. Also, re delay when buttons are held. You need to hold the button combo either *before* the splash screen comes up or when it is done initializing. Meaning: you can release the buttons when you see the splash screen. For alternative behaviour (= no button held delay) try 'make AL3X10MODE=1'. And tell me what you like better.

I already build with the aeskeydb.bin file. I usually don't for my standlone script runners, though, and I hadn't noticed them being sluggish (maybe I should use the keys though if they'll load that much faster). Actually I was referring to hotkeys for the chainloader (BootCTR9) that I technically do not need when using GM9 as a firm, but still enjoy using. While we're on the subject, have you ever considered adding a hotkey option? It could work similar to Arm9select or Luma's chainloader, but use a separate folder to avoid making a mess of the "Payloads" menu. I will try that make parameter and get back to you. Your description of it seems like what I want.

I have got to give some of these other people credit for being creative. I don't know why anyone would put Windows shortcuts on the internal 3DS card, but those in and of themselves should not cause a problem. I'm thinking they must have copied a symbolic link over or something (now that would cause problems, because it's linking to a hard drive that the 3DS obviously has no access to). Unless .lnk files are actually symbolic links in 10. I'll admit, I have yet to check 10 out properly. Just seeing that ugly start menu they kept from 8.1 makes me want to switch to the first KDE distro that smoothly integrates LXQt (Kubuntu with the Lubuntu desktop may have already done this months ago, but I don't mess with ".4" releases, so here's hoping 17.10 is good).

EDIT: Yes, AL3X10MODE does exactly what I was referring to. I don't have any reason to want to pause the splash screen, so, I think I'll just build it this way from now on. Thanks.
 
Last edited by Kazuma77,

d0k3

3DS Homebrew Legend
OP
Member
Joined
Dec 3, 2004
Messages
2,786
Trophies
1
XP
3,896
Country
Germany
I have got to give some of these other people credit for being creative. I don't know why anyone would put Windows shortcuts on the internal 3DS card, but those in and of themselves should not cause a problem. I'm thinking they must have copied a symbolic link over or something (now that would cause problems, because it's linking to a hard drive that the 3DS obviously has no access to). Unless .lnk files are actually symbolic links in 10.

@d0k3 I made them on Windows 10. it's a shortcut ( desktop shortcut to a program/folder)

It sounds like a symbolic link, and yes, @Kazuma77 is right. Problems are expected especially when the link leads to another filesystem (different partition / drive). Nothing much that can be done about that, and that symbolic link should even cause problems in case you'd move it to another computer.

EDIT: Doesn't look like symbolic links are the standard in Windows 10, though:
https://superuser.com/questions/1020821/how-to-create-a-symbolic-link-on-windows-10
 
Last edited by d0k3,

Kazuma77

Well-Known Member
Member
Joined
May 11, 2008
Messages
1,035
Trophies
1
XP
903
Country
United States
It sounds like a symbolic link, and yes, @Kazuma77 is right. Problems are expected especially when the link leads to another filesystem (different partition / drive). Nothing much that can be done about that, and that symbolic link should even cause problems in case you'd move it to another computer.

EDIT: Doesn't look like symbolic links are the standard in Windows 10, though:
https://superuser.com/questions/1020821/how-to-create-a-symbolic-link-on-windows-10

As I said, I've not looked into Windows 10. I know that on previous versions, it doesn't usually just offer to do it. You have to run a command line utility. I forget if it's even included or a third party app. Still, if 10 is anything like 7, the OS itself uses several of them. So, if any of the ones in the "Users" folder got copied over by mistake, this could still be the cause of the issue.
 
Last edited by Kazuma77,

Kazuma77

Well-Known Member
Member
Joined
May 11, 2008
Messages
1,035
Trophies
1
XP
903
Country
United States
@d0k3 it is a link to a hidden folder in same partition. @Kazuma77 i am using a folder full of shortcuts to hide everything and make the card neater on Windows.

I'm still not seeing why you would have shortcuts on a 3DS card at all. I don't put my 3DS card in my PC that much. In fact, one of the goals of InScripted is to reduce trips to the PC by letting you change everything from the 3DS, including hotkeys, default payload, chainloader, Sighax firm (optional, and not released yet), exploit (optional), the "boot.firm" if you're using GM9 as firm0 (also not released yet), etc. Because it gets old fast with an N3DS.

The hidden folder could be the issue. They're not normally used by the 3DS, after all. Though if that's the case, the issue might be with the "fatfs" library GM9 uses, and not GM9 directly. Rather than have us keep guessing, why not upload a 7zip or RAR of the folder (I'd request an LMI session, but AFAIK there's no 3DS port of that yet ;) ).
 

d0k3

3DS Homebrew Legend
OP
Member
Joined
Dec 3, 2004
Messages
2,786
Trophies
1
XP
3,896
Country
Germany
The hidden folder could be the issue. They're not normally used by the 3DS, after all. Though if that's the case, the issue might be with the "fatfs" library GM9 uses, and not GM9 directly. Rather than have us keep guessing, why not upload a 7zip or RAR of the folder (I'd request an LMI session, but AFAIK there's no 3DS port of that yet ;) ).

A folder being hidden is just a FAT attribute, which is recognized by FATFS, but ignored by GM9. I think there's something specific about that link.
 

Kazuma77

Well-Known Member
Member
Joined
May 11, 2008
Messages
1,035
Trophies
1
XP
903
Country
United States
@Kazuma77 i have a old3ds... and I use luma as firm0 with gm9(old) beside it.

--------------------- MERGED ---------------------------

and I don't have access to the 3ds or a Pc atm...

So, GM9 is being chainloaded from Luma? Try chainloading GM9 from BootCTR9 and see if it still does it from a stable environment. GM9 cannot counter the negative effects of Luma's chainloader on it's own. If it could, turning Cakes Launcher into a standalone script runner would have stopped Cakes from crashing in Luma. It didn't.

Well, whenever you get the chance, please upload an archive of the folder. I enjoy a good mystery.

EDIT: I tried running Luma as a firm. Unlike GM9's added features, I saw no difference from B9S. It looks like it just makes it harder to switch chainloaders. My "switch firmware" script will block it (along with several other things not meant to be installed to firm0). But thanks for mentioning it. Now someone can't just copy something from the payloads folder, generate an .sha file, and install it, because it checks for most of those names now.

@d0k3: I'm not liking that last commit. It was convenient being able to just put "aeskeydb.bin" in one location. Not that it will kill me to make an extra copy of a 1K file I guess.

Also, I found something odd. Compiling a standalone script runner using a script that is exactly 1490 bytes creates a .firm that is smaller than the .bin file. Deleting or adding a few characters to an error/success message causes the resulting .firm to be the right size. It's an issue that's easily avoided, but I thought you would want to know.

EDIT: BTW, I realize the lack of a standardized format probably complicates this (if not makes it downright impossible), but would it be possible to add a feature to decrypt and mount flash cart saves (especially Gateway's)? The existing methods are a bit complicated, and every day there's someone else asking how to do it. Would it be possible to mount them in GM9, or are they all using different forms of custom encryption that aren't known?
 
Last edited by Kazuma77,

d0k3

3DS Homebrew Legend
OP
Member
Joined
Dec 3, 2004
Messages
2,786
Trophies
1
XP
3,896
Country
Germany
@d0k3: I'm not liking that last commit. It was convenient being able to just put "aeskeydb.bin" in one location. Not that it will kill me to make an extra copy of a 1K file I guess.

That decision was made to make troubleshooting easier, to make the code simpler and also to unify stuff. I had several cases where users had bad aeskeydb.bin files somewhere, and it was hard to get to the root of the issue. Now, an aeskeydb.bin file is not needed when you run via b9s, and it is not needed when you hardcode it (by putting it into the data folder when compiling). The only relevant cases where the aeskeydb.bin file (hardcoded or not) is important is when loading via OldLoader or when having GM9 installed in FIRM0.

Also, I found something odd. Compiling a standalone script runner using a script that is exactly 1490 bytes creates a .firm that is smaller than the .bin file. Deleting or adding a few characters to an error/success message causes the resulting .firm to be the right size. It's an issue that's easily avoided, but I thought you would want to know.

That's really odd. Will that FIRM not run then or have issues running the script?

EDIT: BTW, I realize the lack of a standardized format probably complicates this (if not makes it downright impossible), but would it be possible to add a feature to decrypt and mount flash cart saves (especially Gateway's)? The existing methods are a bit complicated, and every day there's someone else asking how to do it. Would it be possible to mount them in GM9, or are they all using different forms of custom encryption that aren't known?

There's already an unfinished GM9 branch trying to achieve this, but it's more complicated then I thought it would be. I have it on my list, and I'm looking into it, but, yeah, no promises.
 
Last edited by d0k3,

jaspern

Active Member
Newcomer
Joined
Apr 3, 2016
Messages
29
Trophies
0
XP
126
Country
Germany
Now that this has officially replaced Decrypt9, could you make the en-/decryption process of multiple CIA files uninterrupted again? Currently GM9 stops the whole batch conversion whenever a CIA files throws up an error (damaged file or wrong title key etc), instead of just skipping it and continuing with the next file in the batch like Decrypt9.

Edit, nevermind I guess... I just had a lot of cia decryptions failing for unknown reasons. I dropped my updated seeddb.bin and encTitleKeys.bin in gm9\support, is there something else to do? Can't find the log file either...
 
Last edited by jaspern,

d0k3

3DS Homebrew Legend
OP
Member
Joined
Dec 3, 2004
Messages
2,786
Trophies
1
XP
3,896
Country
Germany
Now that this has officially replaced Decrypt9, could you make the en-/decryption process of multiple CIA files uninterrupted again? Currently GM9 stops the whole batch conversion whenever a CIA files throws up an error (damaged file or wrong title key etc), instead of just skipping it and continuing with the next file in the batch like Decrypt9.

Edit, nevermind I guess... I just had a lot of cia decryptions failing for unknown reasons. I dropped my updated seeddb.bin and encTitleKeys.bin in gm9\support, is there something else to do? Can't find the log file either...
Well, you should not have broken / corrupted CIAs in there, and if I just go on uninterupted, you will not notice broken CIAs, in turn leading to you assuming these are okay and decrypted. Not good. Maybe use verify first and move the broken ones somewhere else?
 

Site & Scene News

Popular threads in this forum

General chit-chat
Help Users
  • No one is chatting at the moment.
    Xdqwerty @ Xdqwerty: Brb