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

  • Thread starter d0k3
  • Start date
  • Views 307,459
  • Replies 1,143
  • Likes 105

Kazuma77

Well-Known Member
Member
Joined
May 11, 2008
Messages
1,035
Trophies
1
XP
903
Country
United States
Why does the screen get so dark when using GM9? Is there a way to disable that?

Well, the brightness is controlled by the volume slider by default, so, make sure that's all the way up. This feature can be disabled when compiling. Just place "FIXED_BRIGHTNESS=15" on the make line and it will always be at maximum brightness (i.e. "make SALTMODE=1 FIXED_BRIGHTNESS=15"). If you find that setting too bright, try again with a lower number like 10 or 12.
 
Last edited by Kazuma77,
  • Like
Reactions: Deleted User

windows_server_2003

Well-Known Member
Newcomer
Joined
Jul 13, 2017
Messages
84
Trophies
0
Age
44
XP
379
Country
Japan
@d0k3
Sorry for my poor ability to understand English.
To prevent misunderstanding, asking.
What did you mean on Github?
>>
Alright, just a quick note, regarding radio silence. Once you have looked it over, get back, and I'll have another thorough look through the changes.

What means "it"?
What should I do at "get back"?
Did you mean you are thinking to limit my acceses to your repo?
 

d0k3

3DS Homebrew Legend
OP
Member
Joined
Dec 3, 2004
Messages
2,786
Trophies
1
XP
3,896
Country
Germany
@d0k3
Sorry for my poor ability to understand English.
To prevent misunderstanding, asking.
What did you mean on Github?
>>
Alright, just a quick note, regarding radio silence. Once you have looked it over, get back, and I'll have another thorough look through the changes.

What means "it"?
What should I do at "get back"?
Did you mean you are thinking to limit my acceses to your repo?
I just meant, tell me once you think the pull request is ready (which includes you having tested it yourself). I'll keep an eye on the pull request, but I may miss it otherwise.
 

windows_server_2003

Well-Known Member
Newcomer
Joined
Jul 13, 2017
Messages
84
Trophies
0
Age
44
XP
379
Country
Japan
@d0k3
Thank you.
I think the PR has no more bugs.

For changing label format to @label, see here. is it ok?
https://github.com/windows-server-2003/GodMode9/tree/if-goto-new_1
This allows whitespaces between '@' and the label name.
If there are some whitespaces there, handle it by standard command(I changed "label" as command name to "@")
If not, handle it in parse_line().
It will show "Invalid label format" error with like "@label something".
 

d0k3

3DS Homebrew Legend
OP
Member
Joined
Dec 3, 2004
Messages
2,786
Trophies
1
XP
3,896
Country
Germany
@d0k3
Thank you.
I think the PR has no more bugs.

For changing label format to @label, see here. is it ok?
https://github.com/windows-server-2003/GodMode9/tree/if-goto-new_1
This allows whitespaces between '@' and the label name.
If there are some whitespaces there, handle it by standard command(I changed "label" as command name to "@")
If not, handle it in parse_line().
It will show "Invalid label format" error with like "@label something".
So, you actually did test yourself? I need to check the pull request when I have an hour or two free, so I'll still need a bit tiem until I do so.
 

Kazuma77

Well-Known Member
Member
Joined
May 11, 2008
Messages
1,035
Trophies
1
XP
903
Country
United States
I found a bug (fixed), sorry. Please wait more.

You're confusing me with all these branches. Is the label command going to be "label" or ":" or "@" now? I kind of like the ":" idea being used to DOS and Windows more than Linux. But if "@" is the Linux standard, then that's probably what it should use, I guess, with most of the rest of the commands being Linux-based. Also, that latest fix is only on the original "if-goto" branch atm.
 

windows_server_2003

Well-Known Member
Newcomer
Joined
Jul 13, 2017
Messages
84
Trophies
0
Age
44
XP
379
Country
Japan
You're confusing me with all these branches. Is the label command going to be "label" or ":" or "@" now? I kind of like the ":" idea being used to DOS and Windows more than Linux. But if "@" is the Linux standard, then that's probably what it should use, I guess, with most of the rest of the commands being Linux-based. Also, that latest fix is only on the original "if-goto" branch atm.

sh and bash have no "goto" commands. csh and tcsh have them and the format is ":"
But must be going to "@"
1) @d0k3 is thinking to change the format to "@"
2) I don't think GM9 will have many more control commands, so we must use "goto" a lot and "@" is easier to know it's a label than ":" at the end.
3) "@" allows whitespaces between "@" and the label name.(see below) but allowing that with ":" makes source code dirty, because ":" will be at the end of a label name and we can't handle ":" as a standard command so must handle both in "parse_line()".

Whitespaces handling
If there are some whitespaces there, handle it by standard command(I changed "label" as a command name to "@")
If not, handle it in parse_line() specially.
 

Rexen

Member
Newcomer
Joined
Jan 22, 2017
Messages
9
Trophies
0
Age
28
XP
84
Country
United States
I been pulling off asking this but is possible to remap the buttons (my 3ds has a broken r button)
 

Kazuma77

Well-Known Member
Member
Joined
May 11, 2008
Messages
1,035
Trophies
1
XP
903
Country
United States
@d0k3: Is the latest commit supposed to give an error and not build if you leave the data folder empty? It did that when I removed the key databse to create a "no keys" build. Nothing a zero byte file can't fix, though. Also, "README.md" still gets included in the vfat0.tar when "AUTORUN_SCRIPT=1" is specified, even though obviously no one can read it. Though that's also nothing a zero byte file can't fix, naturally. Also, you forgot to mention the key file's name has changed to "aeskey.db" in the "README.md" file. Or is that a typo in the "vram0.h" file? You also didn't add "V:" to the portion of the "README.md" file that lists all of the drives.

Also, what is the correct method for specifying a different output filename? I'm getting the distinct impression you don't want people to change the FLAVOR variable in Makefile.common, based on the number of errors that generates. Total Commander has a mass renamer, but it would be nice if my SSRs had the right name when built.

Those issues aside, I like the new TAR method you're using to handle external data files. The VRAM0 image file getting generated and mounted automatically? Awesome. Less work for me, now that I've actually found a use for it (creating menus with zero byte files). And the SSRs generated by this new restructuring are much smaller. Thanks for these great new features.

If I want to install the godmode9 bootlader I install it using Safeb9sinstaller right?

Nope. Safe B9S Installer can't install GM9. You can either install it to the FIRM partitions manually using GM9, or use the "Sighax Updater" SSR I provide with InScripted (iso site, CFW Discussions section, or max site, A9LH & Custom Firmware Discussion section). I've also provided a lite version in the ReiNAND thread, since it benefits people using that the most (they can have ReiNAND as "boot.firm" and still have a chainloader now, after all).
 
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 finished testing it. Please look at my PR.
First of all: Sorry that took so long. I have now taken (and squashed) your commits in my ifelse branch. I'm still doing the reviewing and I may make some minor edits, but things are looking good. I may also get back about some stuff I can't figure out.

I been pulling off asking this but is possible to remap the buttons (my 3ds has a broken r button)
Edit the hid.h file and recompile - no way around this.

If I want to install the godmode9 bootlader I install it using Safeb9sinstaller right?
Install it with GodMode9 itself - that's the easiest way to do it.

@d0k3: Is the latest commit supposed to give an error and not build if you leave the data folder empty? It did that when I removed the key databse to create a "no keys" build. Nothing a zero byte file can't fix, though. Also, "README.md" still gets included in the vfat0.tar when "AUTORUN_SCRIPT=1" is specified, even though obviously no one can read it. Though that's also nothing a zero byte file can't fix, naturally. Also, you forgot to mention the key file's name has changed to "aeskey.db" in the "README.md" file. Or is that a typo in the "vram0.h" file? You also didn't add "V:" to the portion of the "README.md" file that lists all of the drives.

Ooops about the aeskey.db thing - I need to fix that. No rename intended. An empty data folder is also not intended to stop the build - will look into that, too. You're not entirely correct about the README.md not being readable. You just can't show it as textfile, but it sits there, in the V:/ drive. Guess I'll have to look into that, too, though. Thanks for pointing all that stuff out!

Also, what is the correct method for specifying a different output filename? I'm getting the distinct impression you don't want people to change the FLAVOR variable in Makefile.common, based on the number of errors that generates. Total Commander has a mass renamer, but it would be nice if my SSRs had the right name when built.

I'm not against changing the FLAVOR. The name of the splash screen file depends on it, though. That's the only possible issue I can name of the top of my head.

Those issues aside, I like the new TAR method you're using to handle external data files. The VRAM0 image file getting generated and mounted automatically? Awesome. Less work for me, now that I've actually found a use for it (creating menus with zero byte files). And the SSRs generated by this new restructuring are much smaller. Thanks for these great new features.

It was a pretty big change to the Makefile, so the remaining issues don't come fully unexpected. Most of it will get sorted out, though. And yes, this should make providing additional files a lot easier than the previous bin2o method.
 
  • Like
Reactions: GilgameshArcher

SirNapkin1334

Renound Aritst
Member
Joined
Aug 20, 2017
Messages
1,665
Trophies
1
XP
975
Country
United States
I have a request. An undo combo. You should be able to undo actions, probably up to about 5 actions ago. I could especially use it after I accidentally deleted my title folder in SysNand SD. I'd be fine if the action undo cache is cleared on reboot, as long as you can undo. Preferably also a redo.

Also, a question. Where does GM9 get the System Info (in Home...More...System Info) from?
 
Last edited by SirNapkin1334,

d0k3

3DS Homebrew Legend
OP
Member
Joined
Dec 3, 2004
Messages
2,786
Trophies
1
XP
3,896
Country
Germany
I have a request. An undo combo. You should be able to undo actions, probably up to about 5 actions ago. I could especially use it after I accidentally deleted my title folder in SysNand SD. I'd be fine if the action undo cache is cleared on reboot, as long as you can undo. Preferably also a redo.

Also, a question. Where does GM9 get the System Info (in Home...More...System Info) from?
Undo cache is completely out of question. Operations in GM9 are much too complex to allow something like that. Even if we'd only do it for base operations like delete, copy, move, etc... you know that would require recycle bin management? Don't delete stuff you don't want to delete is the answer. GM9 even asks you if you really want to continue.

Also, that info... well, it comes from various places. Have a look at the source code to learn more, I guess.
 

SirNapkin1334

Renound Aritst
Member
Joined
Aug 20, 2017
Messages
1,665
Trophies
1
XP
975
Country
United States
Undo cache is completely out of question. Operations in GM9 are much too complex to allow something like that. Even if we'd only do it for base operations like delete, copy, move, etc... you know that would require recycle bin management? Don't delete stuff you don't want to delete is the answer. GM9 even asks you if you really want to continue.

Also, that info... well, it comes from various places. Have a look at the source code to learn more, I guess.
Hmm, I see. That's too bad.
Well, deleting the titles folder was an accident. I was trying to delete a different folder, but I must have not payed attention and entered the unlock combo.
(FEATURE REQUEST) You should make the unlock combos randomized, but if the randomly generated combo doesn't have 3 or more buttons, retry, etc., or randomly select from a list of premade, secure unlock combos.
Finally, longer combos. At least, for more dangerous operations.
I can't remember the current number of inputs for a combo, so I'll just say it's 4 (not including A at end)
Yellow: 4 inputs + A
Orange: 5 inputs + A
Red: 6 inputs + X + A
Blue: 5 inputs + X + A
SD: same as yellow
This would be nice.
If you implement it, devs can always use EixMode9.
Or, add a NOFAILSAFE = 1 in Makefile to use older, 4-input combos.
Just an idea.
If you don't want to spend time creating safe combos, I'd be happy to make a list, divided into Yellow/Orange/Red/Blue sections.
 

d0k3

3DS Homebrew Legend
OP
Member
Joined
Dec 3, 2004
Messages
2,786
Trophies
1
XP
3,896
Country
Germany
Undo cache is completely out of question. Operations in GM9 are much too complex to allow something like that. Even if we'd only do it for base operations like delete, copy, move, etc... you know that would require recycle bin management? Don't delete stuff you don't want to delete is the answer. GM9 even asks you if you really want to continue.
Hmm, I see. That's too bad.
Well, deleting the titles folder was an accident. I was trying to delete a different folder, but I must have not payed attention and entered the unlock combo.
(FEATURE REQUEST) You should make the unlock combos randomized, but if the randomly generated combo doesn't have 3 or more buttons, retry, etc., or randomly select from a list of premade, secure unlock combos.
Finally, longer combos. At least, for more dangerous operations.
I can't remember the current number of inputs for a combo, so I'll just say it's 4 (not including A at end)
Yellow: 4 inputs + A
Orange: 5 inputs + A
Red: 6 inputs + X + A
Blue: 5 inputs + X + A
SD: same as yellow
This would be nice.
If you implement it, devs can always use EixMode9.
Or, add a NOFAILSAFE = 1 in Makefile to use older, 4-input combos.
Just an idea.
If you don't want to spend time creating safe combos, I'd be happy to make a list, divided into Yellow/Orange/Red/Blue sections.
Random combos I agree with, but increasing the length - that will not achieve what you think it will. Unlock combos are there so you have to pause for a moment and perhaps overthink what you're about to do. Randomly entering an unlock sequence is already impossible, and there already is the color coding of permission levels. If you decided what you're doing is alright, an 8 button sequence will not stop you anymore than a 5 button sequence will. Random unlock sequences help in that they force you to actually pay attention and not just use your muscle memory - thus I'll add that to my list.

Besides, GM9's handling of write permissions is already pretty smart, and you see those unlock combination really only when there is no choice. In typical user's usage: basically never.

Also, a quick note. The blue permission level can be more dangerous than the red one, given you do the right modifications, so don't underestimate it. Red -> easy to do something stupid, medium bad consequences, Blue -> hard to do something stupid, very bad consequences.
 

SirNapkin1334

Renound Aritst
Member
Joined
Aug 20, 2017
Messages
1,665
Trophies
1
XP
975
Country
United States
Random combos I agree with, but increasing the length - that will not achieve what you think it will. Unlock combos are there so you have to pause for a moment and perhaps overthink what you're about to do. Randomly entering an unlock sequence is already impossible, and there already is the color coding of permission levels. If you decided what you're doing is alright, an 8 button sequence will not stop you anymore than a 5 button sequence will. Random unlock sequences help in that they force you to actually pay attention and not just use your muscle memory - thus I'll add that to my list.

Besides, GM9's handling of write permissions is already pretty smart, and you see those unlock combination really only when there is no choice. In typical user's usage: basically never.

Also, a quick note. The blue permission level can be more dangerous than the red one, given you do the right modifications, so don't underestimate it. Red -> easy to do something stupid, medium bad consequences, Blue -> hard to do something stupid, very bad consequences.
What are side effects of editing memory? What would you have to edit (besides headers) to brick your 3DS?
If you want it, I'll attach a list of strong combos soon.
Okay, I created a random combo generator that ensures that the combo doesn't have the same direction twice in a row.
Problem is....it's written in Python. It's the only language I know well enough to do this kind of thing in. Yeahhh....
Code:
from random import randint
from sys import exit
break1 = 0
break2 = 0
break3 = 0
looper = 1
while (looper == 1):
    combo1 = randint(0, 4)
    combo2 = randint(0, 4)
    combo3 = randint(0, 4)
    combo4 = randint(0, 4)
    if (combo1 == 0):
        key1 = "↑"
    elif (combo1 == 1):
        key1 = "→"
    elif (combo1 == 2):
        key1 = "↓"
    else:
        key1 = "←"
    if (combo2 == 0):
        key2 = "↑"
    elif (combo2 == 1):
        key2 = "→"
    elif (combo2 == 2):
        key2 = "↓"
    else:
        key2 = "←"
    if (combo3 == 0):
        key3 = "↑"
    elif (combo3 == 1):
        key3 = "→"
    elif (combo3 == 2):
        key3 = "↓"
    else:
        key3 = "←"
    if (combo4 == 0):
        key4 = "↑"
    elif (combo4 == 1):
        key4 = "→"
    elif (combo4 == 2):
        key4 = "↓"
    else:
        key4 = "←"
    if (key1 == key2 or key2 == key3 or key3 == key4):
        this_is = "a filler"
    else:
        print (key1 + " " + key2 + " " + key3 + " " + key4)
        looper = looper - 1
print("Done!")
exit()
If you don't know Python/are too lazy to port it/too lazy to make your own in C(++) let me know and I'll make a list of them.
 
Last edited by SirNapkin1334,

Site & Scene News

Popular threads in this forum

General chit-chat
Help Users
    Xdqwerty @ Xdqwerty: Where's everybody?