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

Discussion in '3DS - Homebrew Development and Emulators' started by d0k3, Mar 22, 2016.

  1. d0k3
    OP

    d0k3 3DS Homebrew Legend

    Member
    2,660
    2,670
    Dec 3, 2004
    Gambia, The
    That's perfectly okay, there's a lot else to do, too, in the meantime :).
     
    Last edited by d0k3, Dec 7, 2017 at 12:47 PM
    GilgameshArcher likes this.
  2. Kazuma77

    Kazuma77 GBAtemp Advanced Fan

    Member
    994
    410
    May 11, 2008
    United States
    You pretty much read my mind there. Launching a script from a script would probably work well for the most uses. Though my "Options" script already IS a "menu that jumps to labels" so, I've kind-of already jumped the gun on that angle of approach. The only issue is that entries have to use underscores instead of spaces, for obvious reasons. Full paths make for some strange looking labels, but they work as long as there are no spaces. Just one of many reasons being able to get the individual path, filename, and extension from filesel, find, and findnot would be useful. Like I said, though, I may find a use for multi-script yet, given some time to mess with it. More options is never a bad thing.

    EDIT: Maybe I should just show you what I've come up with so far. For the moment, my multi-script header looks like this:

    Code:
    set PREVIEW_MODE off
    @options_main
    set ERRORMSG ""
    set OPTIONMAIN ""
    filesel -o -s "InScripted Options" 0:/gm9/zeroes/Options/* OPTIONMAIN
    if chk $[OPTIONMAIN] ""
    goto options_main
    else
    goto $[OPTIONMAIN]
    end
    
    
    So, to add a script, you first create a zero byte file for the menu entry (with no spaces), then add the full path to that file near the top of the script as a label (@0:/gm9/zeroes/Options/<filename>), and make sure there's a reboot, poweroff, or "goto options_main" at the end to ensure isolation from the other scripts you will be adding. Make sure the header's filename starts with a 0 (I name mine "0 - Options Header.gm9" for example) so it will be at the top, and that there's an empty line at the end of every script you're adding, and then just "copy *.gm9 autorun.gm9" and there you go, instant multi-menu. Note that an extra character will be added to the end of the file for some reason. I'd suggest deleting it before compiling the SSR.

    It works, but there's definitely room for improvement. Hopefully this will give you some ideas for new features.
     
    Last edited by Kazuma77, Dec 8, 2017 at 6:49 AM
  3. YoshiB

    YoshiB GBATemp's resident large-eared yoshi

    Member
    128
    107
    Mar 3, 2017
    United States
    Ohio
    I'd love it if you could make something where you can change the default colors of the status bar by checking a file at the root of the SD or something.

    also I use this a lot and I like it :D
     
  4. MrMcTiller

    MrMcTiller GBATemp's Tiller

    Member
    447
    52
    Mar 7, 2017
    United States
    Somewhere in the Depths of Space
    @d0k3 , Is there a good tutorial on making .gm9 scripts? I would like to find out if it is possible to make a merger for USUM ips patches. There is already a .py script for it, but I can't use python.


    EDIT: Here is where the ips patches are located.
     
    Last edited by MrMcTiller, Dec 8, 2017 at 2:27 PM
  5. windows_server_2003

    windows_server_2003 Member

    Newcomer
    43
    7
    Jul 13, 2017
    Japan
    @d0k3
    Please wait, there are many bugs. I'll fix them tomorrow.
     
  6. windows_server_2003

    windows_server_2003 Member

    Newcomer
    43
    7
    Jul 13, 2017
    Japan
    @d0k3
    I fixed most of the bugs.I simplified the goto jumping code and it takes less than 0.3 sec to jump 20000 lines(255KB).

    By the way, I think the write permissions in the explorer and in scripts should be separated.
    For example, unlocking the blue permissions in explorer and editting the memory area manually are not so dangerous. (may lead to crash, but probably not brick it)
    But allowing scripts to edit there automatically is very dangerous.
    I understand it is bother to unlock the yellow ones each time.

    : So at least, the red one and the blue one should be asked to the users each time the scripts using them executed, like UAC.
     
  7. Kazuma77

    Kazuma77 GBAtemp Advanced Fan

    Member
    994
    410
    May 11, 2008
    United States
    While that wasn't directed at me, thanks for the update all the same. It will be fun testing the improvements you've made. Thanks again for all your efforts to bring branching commands to GM9. They're a real game changer.

    As for your security changes suggestion, I can agree with you on the blue, but not on the red. That would turn an automated exploit installer like "One & Done" into nag city, with it copying up to 3 files to the S: drive. And I wouldn't exactly use UAC as a positive example. Need I remind you what most of us techs do within 5 minutes of a Windows install completing (myself included)? That's right, we disable that obnoxious thing, so that we can double click the Ninite installer and check back in an hour or two.

    Or did you mean that after the script ends, the user should not be given the option to keep the unlock? In that case, I'm fine with it. Though for better or worse, such a thing would not affect my SSRs. Most of them loop back to the main menu until you choose to reboot or power off. For "Options" or "NAND Manager" to ask again on subsequent selections, something like a "relock" command would be needed.
     
    Last edited by Kazuma77, Dec 11, 2017 at 8:52 AM
  8. windows_server_2003

    windows_server_2003 Member

    Newcomer
    43
    7
    Jul 13, 2017
    Japan
    Yes, I meant the second one. Once you reject to relock a permission, never asked to relock anymore so if users unlocked the blue one in the explorer and pressed B at the relock confirmation and if they run a script like RedUnlocker, ...Dangerous. Especially the blue one, Users don't feel enough danger even the key combo became longer, but unlocking it in scripts is more dangerous than unlocking the red one.
    : The blue one in explorer is not so dangerous so users unlock it without enough thinking but the permission will be also applied to scripts and that's more dangerous.