UpdateCDN 3DS

From GameBrew
Revision as of 06:30, 19 September 2021 by HydeWing (talk | contribs)

Template:Infobox-3DS-Homebrews

Ok so here is something I was working on recently - 'UpdateCDN'

It downloads the titles ('programs') that make up a 3DS FW update and create .cias to use with devmenu (import all - L+R+A is useful here!) It uses the CSV files on http://yls8.mtheall.com/ninupdates/reports.php - without the work this guy did to get this data in the first place this would not exist!

From my 4.5 JPN emunand, I manually updated to 6.3, and then manually downgraded (via an ugly trick/hack) to 5.1. It all worked fine! I tried to go from 4.5 JPN to 5.0 KOR, but my system was still Japanese. I had some duplicate (Korean) titles, like eshop, safety warning, settings, etc, which didn't load when I opened them. So to change regions (surely it must be possible) we will have to do something more involved.

So, you download the csv file you want, for example, 5.0.0-11 Korean, and this tool will download everything, and create 'perfect' (as perfect as we will get them I think) cia files that will install on your 3DS. You don't need to download any files for 2.0.0-2 - 9.4.0-21 because I downloaded virtually all of them and included them in a zip. (I left out one Japanese fw that didn't have a name, it was after 8.1 and before 9.0, I don't think anyone will miss it)

The tool is a python file, it requires make_cdn_cia. I have included a mac version that works for me. I have not included a windows exe version, but I am sure it is not hard to find/someone can compile it. -- name the exe make_cdn_cia.exe and put it in the folder with the UpdateCDN.py. (It should work fine, but I have not tested it on windows.) I have not used python before, so maybe the things I am doing are not the best way, but it seems fine to me :)

By default the titles are downloaded into folders based on when they were last updated. (This can be turned on with -nosort) When I download FW 9.4.0-21 JPN, title '0004001B00010002' has not been updated since 2.0.0-2 (maybe before, the site 'began' with 2.0.0-2). So this title will be in a folder called 2.0.0-2. If you are above FW 2.0.0-2, you do not need to install that cia. If you are on 8.0.0-18, and want to go to 9.4.0-21, simply ignore all the cias in the folders equal and below 8.0.0-18. (I could have let the user input a 'source' FW and 'target' FW to only download titles are are required but, it would have been more work. - maybe later, but it's not neccesary)

Dir Output

UpdateCDN

  • 9.4.0-12 (folder created from CSV filename, 9.4.0-21.csv will make a folder called 9.4.0-21)
    • JPN (separate folder for each region you specify)
    • raw (where titles are downloaded to)
    • cia (where cia files are output to)

Here is how to use it / the help output you get when you type: python UpdateCDN.py -h

You need to specify an input file and at least one region.

inputfile  CSV file that contains title information, ideally from:
          http://yls8.mtheall.com/ninupdates/reports.php
-JPN        Download JPN titles
-EUR        Download EUR titles
-USA        Download USA titles
-KOR        Download KOR titles
-CHN        Download CHN titles
-TWN        Download TWN titles
-ALL        Download all regions
-nosort    Turn OFF sorting of the titles into folders based on their debut
          fw. For example, if title X was added in FW 4.0.0 and not
          updated since, by default it is placed in a folder called 4.0.0.
          So, if you are on 4.0.0 or above, you will not need to install
          it.
-nobuild    Turn OFF generation of CIA files, titles will be downloaded
          only.
-h, --help  show this help message and exit

What would be great is to have an edited devmenu/homebrew title manager that lets us view system titles/downgrade titles etc. Then we would be able to downgrade a lot neater and easier without leaving unused titles still installed. (Maybe region change would be possible then too)

Of course, be careful with using this, it's only on emunand (since we mere mortals don't have devmenu on sysnand), but make a emunand backup. :)

Thanks for friendxsis for help and letting me know that what i wanted to do was possible, riku for help, http://yls8.mtheall.com - the guy who does this, sbJFn5r for the python files I based some of this off!

Advertising: