[RELEASE] MultiUpdater: Simple updater for various files and application

Discussion in '3DS - Homebrew Development and Emulators' started by LiquidFenrir, Jun 26, 2017.

  1. LiquidFenrir
    OP

    LiquidFenrir Advanced Member

    Newcomer
    72
    39
    Jan 15, 2016
    France
    Hello! Realized a bit late I never made a gbatemp post for µp, but many people here who don't visit the subreddit might find it useful, so here it is!

    As the title reads, it's an updater for pretty much any file, as long as you have the url for it.
    You can see an example config file on the repo:
    It's very easy to run, just download the latest release (v3.2 at the time) and extract the cia to the SD card, or the /3ds/ folder too if you want to run it from the HBL.
    From then, you only have to open it and press A to download the example config, then relaunch it!

    The config file is in json, and very easy to expand to add the files you want.
     
  2. Darthsternie

    Darthsternie Advanced Member

    Newcomer
    54
    53
    May 18, 2015
    Germany
    Here's a config.json with every payload by d0k3 and Luma3DS that is compatible with Boot9Strap.
    Thanks to LiquidFenrir for the example config.
    Just extract it and copy it to /3DS/MultiUpdater/.

    29.06.17 - Added MultiUpdater .cia and .3dsx Download (Thanks for the suggestion Valliant Storm)
     

    Attached Files:

    Last edited by Darthsternie, Jun 29, 2017
    Joel16, Ann0ying and zeldaism like this.
  3. ninja21

    ninja21 Member

    Newcomer
    20
    0
    Jun 30, 2008
    hi this is great work thanks. do you need to be on a minimum version of a luma3ds etc for this to work? or will it update everything regardless of which version you are running? the reason I ask is because I have been away from the scene for a while and believe I am on a version of luma3ds without boot9strap/ godmode.. thanks again!
     
  4. Darthsternie

    Darthsternie Advanced Member

    Newcomer
    54
    53
    May 18, 2015
    Germany
    You need to be using Luma3DS with boot9strap. If you don't want to use Boot9strap you'll need to create list of this for Arm9LoaderHax or your entry point of choice first :)
     
  5. shag04

    shag04 Newbie

    Newcomer
    3
    1
    Jan 25, 2016
    United States
    Cam someone please tell me whats wrong with my config.json file it keeps saying its invalid
     

    Attached Files:

  6. LiquidFenrir
    OP

    LiquidFenrir Advanced Member

    Newcomer
    72
    39
    Jan 15, 2016
    France
    You need to remove the last "," near the bottom
     
    shag04 likes this.
  7. shag04

    shag04 Newbie

    Newcomer
    3
    1
    Jan 25, 2016
    United States
    Man such a simple mistake, thank you
     
  8. Cralex

    Cralex GBAtemp Regular

    Member
    124
    53
    Jul 29, 2016
    United States
  9. LiquidFenrir
    OP

    LiquidFenrir Advanced Member

    Newcomer
    72
    39
    Jan 15, 2016
    France
    no, it's hardcoded to install to SD.
    Could detect it tho
     
  10. Nomelas

    Nomelas GBAtemp Regular

    Member
    292
    92
    May 6, 2015
    Canada
    @LiquidFenrir

    with the c++ rewrite - why are there escaped backslashes before certain periods? - is that necessary? EDIT - it seems to work just fine without

    example:
    Code:
           {
                "name": "Anemone3DS",
                "url": "[URL]https://github.com/astronautlevel2/Anemone3DS[/URL]",
                "inrelease": "Anemone3DS\\.cia",
                "path": "/cias/Anemone3DS.cia"
           },


    I also had a few other questions/issues.

    1. does this work with notabug.org ? (For freeshop)?
    2. The built in self-updater doesn't work when running from cia
    3. is it possible to take multiple files from a single site/release/archive? Something like:
    Code:
            {
                "name": "FBI.cia",
                "url": "https://github.com/Steveice10/FBI",
                "inrelease": "FBI.cia",
                "path": "/cias/FBI.cia",
                "inrelease": "FBI.3dsx",
                "path": "/3ds/FBI/FBI.3dsx"
            },
    4. Or the ability to take multiple files from a single archive and put it in a directory? Something like:
    Code:
            {
                "name": "Boot9strap.firm",
                "url": "https://github.com/SciresM/boot9strap",
                "inrelease": "boot9strap.*.zip",
                "inarchive": "boot9strap.firm",
                "inarchive": "boot9strap.firm.sha",
                "path": "/boot9strap/*"
            },
    5. Better yet, the ability to download from everything from just 1 click (rather than having multiple entries in the list). Like:
    Code:
            {
                "name": "All-in-one Download" [
                    {
                        "url": "https://github.com/SciresM/boot9strap",
                        "inrelease": "boot9strap.*-ntr.zip",
                        "inarchive": "boot9strap_ntr.firm",
                        "path": "/ntrboot/boot9strap_ntr.firm"
                    },
                    {
                        "url": "https://github.com/SciresM/boot9strap",
                        "inrelease": "boot9strap.*-ntr.zip",
                        "inarchive": "boot9strap_ntr.firm",
                        "path": "/ntrboot/boot9strap_ntr.firm"
                    }
                ]
            },
            {
                "name": "Other options",
                "url": "https://github.com/blah/blahblah",
                "inrelease": "helloworld.cia",
                "path": "/cias/helloworld.cia"
            }
    6. Does "inrelease" support regex? for example, it's hard to specify just the boot9strap-v1.3.zip archive when they are all similarly named: https://github.com/SciresM/boot9strap/releases


    The reason I ask, is to both make it simpler to update some (So you're not re-downloading the same archive to get multiple files from it, or updating both the .3dsx or .cia with a single click) OR to provide an all-in-one click option for getting all the necessary homebrew when setting up a newly hacked 3ds.
     
    Last edited by Nomelas, Oct 16, 2017
  11. nintendowii

    nintendowii GBAtemp Regular

    Member
    134
    3
    Feb 28, 2011
    Germany
  12. LiquidFenrir
    OP

    LiquidFenrir Advanced Member

    Newcomer
    72
    39
    Jan 15, 2016
    France
    Sorry for the delay, I really don't use gbatemp much.
    @Nomelas:
    I found it hangs when using unescaped backslashes. maybe that was fixed without noticing
    1. No, notabug doesnt have an api so this doesnt work with it. besides, this app has its own builtin updater, or you could use a static url to the .cia
    2. That's known and will be fixed, thanks
    3. Not yet, but it's planned
    4. No, that will be only the 3. method, I think. Nothing has been implemented/tested for now
    5. you can use L/Y to select all/single entries and then A to update everything selected
    6. yes, inarchive and inrelease use regex!

    @nintendowii as that is a static url, you don't need to use inrelease, just set that as the url. It can download from any site, but the release system only works with github
     
    Nomelas likes this.
  13. Leafgreen26

    Leafgreen26 GBAtemp Regular

    Member
    111
    31
    Jul 17, 2017
    United States
    So does this work with 3dsx files?

    Also, if I gave someone a list of everything that I would want to be updated, would they make it for me? I am not good at configuring/I don't understand. Thanks in advance.
     
  14. LiquidFenrir
    OP

    LiquidFenrir Advanced Member

    Newcomer
    72
    39
    Jan 15, 2016
    France
    Yes, this can also "install" (really just extracting) 3dsx files. If you ask nicely, maybe the person would do it, the format isnt that hard to understand
    name: the name shown in the application
    url: url to the file/github repo
    inrelease: only needed if the url is a github repo, regex pattern to find the wanted file in the latest release
    inarchive: only needed if the file is a zip/7z, regex pattern to find the wanted file in the archive
    path: where to put the file
     
  15. Leafgreen26

    Leafgreen26 GBAtemp Regular

    Member
    111
    31
    Jul 17, 2017
    United States
    Thanks for the info. I will try to whip one up. Will post to see if it is correct.
     
  16. Leafgreen26

    Leafgreen26 GBAtemp Regular

    Member
    111
    31
    Jul 17, 2017
    United States
    [deleted]
     
    Last edited by Leafgreen26, Jan 15, 2018
  17. brunocar

    brunocar GBAtemp Regular

    Member
    162
    53
    Aug 14, 2017
    Argentina
    wouldnt it be cool to have something that allows the program to generate its own config files crossreferencing your installed (or maybe just a manually selected bunch of) homebrew apps with titleDB?
     
  18. Leafgreen26

    Leafgreen26 GBAtemp Regular

    Member
    111
    31
    Jul 17, 2017
    United States
    [deleted]
     
    Last edited by Leafgreen26, Jan 15, 2018
  19. brunocar

    brunocar GBAtemp Regular

    Member
    162
    53
    Aug 14, 2017
    Argentina
    the QR code only has a CIA version
     
  20. Leafgreen26

    Leafgreen26 GBAtemp Regular

    Member
    111
    31
    Jul 17, 2017
    United States
    [deleted]
     
    Last edited by Leafgreen26, Jan 15, 2018