[Tutorial] FunkyCIA Complete Guide

Discussion in '3DS - Tutorials' started by Madridi, Jun 21, 2015.

  1. Madridi
    OP

    Madridi Card Collector

    Member
    3,065
    903
    May 9, 2008
    Qatar
    Doha
    Hey guys,

    I have been toying around with several programs in the last few days, and I came across FunkyCIA. It is a great program that lets you download content from eShop and converting them to CIA.

    The downloaded content permitted comes from having a ticket stored in your 3DS, which is stored in ticket.db. In order to use this program, we will be extracting the ticket.db from the 3DS and using it on the PC.

    --------------------------------------------------------------------------------------------------------------------

    Requirements:
    - Old 3DS/3DS XL on 9.2
    - PC with internet connection
    - Python installed on PC
    - rxTools
    - FunkyCIA (Note: Use the one in the attachment instead of the original thread)

    (A) Extracting Ticket.db:
    1. Connect the SD Card to your PC.
    2. Setup rxTools: http://www.rxtools.net/#!howto
    3. Put SD Card back into your 3DS, turn it on and run rxTools.dat from the web browser.
    4. Click on "Dumping Options" --> "Dump Nand Files".
    5. Press X if you want the Ticket.db from your sysnand, or Y if you want the Ticket.db from your emunand.
    6. Select "ticket.db".
    7. Close your 3DS, remove your SD card, and connect it to the PC.
    8. Go to rxTools folder, and you will find the Ticket.db file.
    9. Copy it somewhere safe, and make sure you keep a backup.

    (B) Preparing PC for FunkyCIA:
    1. Install Python from here: https://www.python.org/downloads/
    2. Download FunkyCIA attached in this thread.
    3. Extract it wherever you want. For the purposes of this guide I will assume the extraction is at the root of the "C" drive.
    4. Put the Ticket.db file in the same folder.
    4. Click Start --> All Programs --> Accessories --> Command Prompt (Alternatively, Click Start and write cmd in the search field).
    5. Write "cd.." and click enter. Keep repeating it until you get to where you extracted FunkyCIA (In this case, "C:\>").

    (C) Using FunkyCIA
    Note: Write "FunkyCIA2.py -h" to get the help screen. If you are not a beginner, it will tell you everything you need to know. If not, continue to read:

    Note: We will use this site to get the titleid for everything we need from this program: http://www.3dsdb.com/

    Assuming you have the ticket for them, this program will let you download the following:
    - Gameapp
    - Update
    - DLC
    - Themes
    - Demo
    - DSiWare
    - System
    (Note: Probably doesn't work anymore, so it will be left out of this guide)

    - We will use the following 2 3DS example titleid for this guide:
    Super Mario 3D Land (0004000000053F00)
    Super Smash Bros (00040000000EDF00)

    - We will also use the following 2 DSiware example titleid for this guide:
    Zelda: Four Swords Anniversary Edition (000480044B513956)
    Mario Clock (000480044B574256)

    - To understand the file structure, lets use the example above to show the difference in the titleid between each type:
    - Gameapp: 0004000000053F00
    - Update: 0004000E00053F00
    - DLC: 0004008C00053F00
    - Demo: 0004002000053F01
    - DSiWare: They have their own unique title
    For more information, check this: http://3dbrew.org/wiki/Title_list


    - The next step always consists of 3 parts. The first 2 parts are MANDATORY to enter, and the 3rd part is OPTIONAL.


    (C1) First part:
    Always start with "FunkyCIA2.py ticket.db". DON'T CLICK ENTER

    (C2) Second part:
    It depends on what you want to do:

    (A) Download eShop Games:


    1. If you want to download all games you have bought from eShop, continue the sentence above with "-type gameapp". It will start downloading all games, and then it will make them CIA out of them once you click enter, but don't click until you read the next section (C3).

    2. If you want to download a specific game, get the game's titleid from: http://www.3dsdb.com/
    ------ 2a. As per our example's titleid, continue the sentence above with "-title 0004000000053F00"
    ------ 2b. If you want more than one game to be downloaded, follow that by another titleid. Example: "-title 0004000000053F00 00040000000EDF00"

    (B) Download Update:

    1. If you want to download all updates, continue the sentence above with "-type update". It will start downloading all updates, and then it will make them CIA out of them once you click enter, but don't click until you read the next section (C3).

    2. If you want to download an update for a specific game, get the game's titleid from: http://www.3dsdb.com/ , then change it per the file structure shown in remarks above
    ------ 2a. As per our example's titleid, continue the sentence above with "-title 0004000E00053F00"
    ------ 2b. If you want more than one update to be downloaded, follow that by another titleid. Example: "-title 0004000E00053F00 0004000E000EDF00"

    (C) Download DLC:


    Note: By default, this program will give you access to all DLC if you have the ticket to at least one of them. But please note that all unbought DLC will be erased everytime you access the eShop. You will have to install the generated CIA again.

    1. If you want to download all DLC, continue the sentence above with "-type dlc". It will start downloading all DLC, and then it will make them CIA out of them once you click enter, but don't click until you read the next section (C3).

    2. If you want to download DLC for a specific game, get the game's titleid from: http://www.3dsdb.com/ , then change it per the file structure shown in remarks above
    ------ 2a. As per our example's titleid, continue the sentence above with "-title 0004008C00053F00"
    ------ 2b. If you want more than one DLC to be downloaded, follow that by another titleid. Example: "-title 0004008C00053F00 0004008C000EDF00"

    (D) Download Themes:

    Note: By default, this program will give you access to all Themes if you have the ticket to at least one of them. But please note that all non-bought Themes will be erased every time you access the eShop. You will have to install the generated CIA again.

    Themes are a type of DLC. To download all themes on eShop released to date, continue the sentence above with "-title 0004008C00008F00". It will start downloading all Themes, and then it will make them CIA out of them once you click enter, but don't click until you read the next section (C3).

    (E) Download Demo:

    Note: By default, this program will remove the play limit on all demos.

    1. If you want to download all demos, continue the sentence above with "-type demo". It will start downloading all demos, and then it will make them CIA out of them once you click enter, but dont click until you read the next section (C3).

    2. If you want to download a demo of a specific game, get the game's titleid from: http://www.3dsdb.com/ , then change it per the file structure shown in remarks above
    ------ 2a. As per our example's titleid, continue the sentence above with "-title 0004000000053F01"
    ------ 2b. If you want more than one demo to be downloaded, follow that by another titleid. Example: "-title 0004000000053F01 00040000000EDF01"

    (F) Download DSiware:

    1. If you want to download all DSiware, continue the sentence above with "-type dsiware". It will start downloading all dsiware, and then it will make them CIA out of them once you click enter, but dont click until you read the next section (C3).

    2. If you want to download a specific DSiware title, get the titleid
    ------ 2a. As per our example's titleid, continue the sentence above with "-title 000480044B513956"
    ------ 2b. If you want more than one DSiware title to be downloaded, follow that by another titleid. Example: "-title 000480044B513956 000480044B574256"

    (G) Download ALL:

    There is an option to download everything you have a ticket for in ticket.db (gameapp, update, dlc, demo,dsiware, system), simply continue the sentence with "-type ALL", and it will automatically download everything once you click enter, but dont click until you read the next section (C3).


    (C3) Third Part (Optional):
    There are multiple sentences you can add to the above that gives you several options. Here is a list of what they are:
    [​IMG]

    So, for example, if you dont want to unlock all DLC and only download the ones you have purchased, you add "-nopatchdlc" to the first 2 parts.

    All Sentences coming together:
    I will show a couple of examples to help understand each function:

    1. "FunkyCIA2.py ticket.db -type dlc -nopatchdlc": This will download all DLC without unlocking everything that was not bought.

    2. "FunkyCIA2.py ticket.db -title 0004000E00053F00 -nopatchdemo": This will download Super Mario 3D Land demo (if you have the ticket for it and it exists), without removing any play limit restriction by nintendo (if such exist for a specific demo)

    3. "FunkyCIA2.py ticket.db -title 0004000000053F00 00040000000EDF00 -personal": This will download Super Mario 3D Land and Super Smash games (If you have the ticket for them) and make a perfect CIA out of them. I will not work on any other 3DS besides yours.

    In the past 3 examples, you don't have to write -nopatchdlc, -nopatchdemo, or -personal. Think of these as options of what you would like to be done to the download. So the examples can work like this:
    1. "FunkyCIA2.py ticket.db -type dlc"
    2. "FunkyCIA2.py ticket.db -title 0004000E00053F00"
    3. "FunkyCIA2.py ticket.db -title 0004000000053F00 00040000000EDF00"

    --------------------------------------------------------------------------------------------------------------------

    As always, make sure you have a backup of everything, and use everything at your own risk!

    Note: Please use the version of FunkyCIA attached in this thread instead of the original thread. The one in the original thread does not work properly with windows. This is a fixed version, which a minor script update by @cearp

    Enjoy :)
     

    Attached Files:

    Last edited by Madridi, Feb 21, 2016


  2. tatumanu

    tatumanu GBAtemp Fan

    Member
    454
    128
    Nov 1, 2004
    Portugal
    Thanks for taking the time to get all this info into one tutorial!
     
  3. rewrewrew123

    rewrewrew123 GBAtemp Regular

    Member
    265
    27
    Aug 20, 2014
    Italy
    It works on previous software?
     
  4. Madridi
    OP

    Madridi Card Collector

    Member
    3,065
    903
    May 9, 2008
    Qatar
    Doha
    What do you mean?
     
  5. rewrewrew123

    rewrewrew123 GBAtemp Regular

    Member
    265
    27
    Aug 20, 2014
    Italy
    Sorry not software :) firmware!
     
  6. Madridi
    OP

    Madridi Card Collector

    Member
    3,065
    903
    May 9, 2008
    Qatar
    Doha
    As long as you can extract ticket.db, it works on any firmware. The guide only lists the rxTools extraction method. You can also extract it on 4.x firmware but that's not covered in this guide :)
     
  7. rewrewrew123

    rewrewrew123 GBAtemp Regular

    Member
    265
    27
    Aug 20, 2014
    Italy
    Oh :) Thanks!
     
  8. Madridi
    OP

    Madridi Card Collector

    Member
    3,065
    903
    May 9, 2008
    Qatar
    Doha
    Updated tutorial with few fixes, and added a section for downloading themes
     
  9. JoostinOnline

    JoostinOnline Certified Crash Test Dummy

    Member
    10,953
    3,735
    Apr 2, 2011
    United States
    The Twilight Zone
    If I use the personal flag and install the CIA, does that mean it will behave the same as if I downloaded it from the eShop?
     
  10. Madridi
    OP

    Madridi Card Collector

    Member
    3,065
    903
    May 9, 2008
    Qatar
    Doha
    Just saw this. Can you elaborate on behave the same?

    What it means is that it will only be installable (or maybe only working) on your 3ds, as it will contain your ticket information
     
  11. jonesbalada

    jonesbalada Member

    Newcomer
    24
    8
    Dec 12, 2015
    Brazil
    Hi man, first... thank you very much for the tutorial.


    I compared the binaries (make_cdn_cia) from the cearp whit yours and they are diferent, why do you recomend to use yours?
     
    Madridi likes this.
  12. Madridi
    OP

    Madridi Card Collector

    Member
    3,065
    903
    May 9, 2008
    Qatar
    Doha
    The binaries attached are:
    Make_cdn
    The python script

    The first file is an updated one. The one in the main funkycia thread did not work properly and an updated version was uploaded in later pages.

    The second file is also an updated script by Cearp himself. He shared it with me through PM to make it cleaner

    Hope that clears things up :)
     
  13. jonesbalada

    jonesbalada Member

    Newcomer
    24
    8
    Dec 12, 2015
    Brazil
    Certainly, thanks man and I am sorry... I am freaking paranoid with my beloved n3ds.

    I am trying to download monster hunter 3 ultimate data transfer program.

    I tried with ticket.db from my EMUnand and got this:

    c:\temp\FunkyCIA2.1>c:\python27\python FunkyCIA2.py ticket.db -title 00040000000C6F00
    *******
    FunkyCIA2 by cearp - FunkyCIA v2.1
    *******

    Number of Tickets - 187
    Number of Titles with Duplicates - 31
    Number of Unique Title Tickets - 155
    Number of System Tickets (ignored) - 154

    Number of eShop Tickets - 0
    Number of eShop Titles with Duplicates - 0
    Number of Unique eShop Titles - 0
    Number of (non system) Tickets NOT from your eShop (ignored) - 32
    ^^ can be installed CIAs, preinstalled games/apps etc... things not from YOUR eshop
    ^^ if you want to dump your preinstalled game, you need to use -preinstalled

    Going through the list...

    eShop Apps - 0
    Download Play Child - 0
    Demo - 0
    Update Patches - 0
    DLC - 0
    System - 0
    DSiWare - 0
    DSi System Apps - 0
    DSi System Data - 0
    Mystery Content - 0

    All tickets/titles found in file (might contain duplicates) - 187. You selected 0 of them
     
    Last edited by jonesbalada, Dec 23, 2015
    Evernew likes this.
  14. Madridi
    OP

    Madridi Card Collector

    Member
    3,065
    903
    May 9, 2008
    Qatar
    Doha
    @jonesbalada

    No problem man, happy to help :)

    Let's start with the obvious: do you already have the ticket for it? You get the ticket through different ways:

    - You have downloaded it before
    - in case of DLC, you have one or more dlc, or at least visited the in-game eshop of that specific game once (by accessing the in-game shop, you get assigned a ticket, even if you didn't download anything
     
  15. jonesbalada

    jonesbalada Member

    Newcomer
    24
    8
    Dec 12, 2015
    Brazil
    Today I accessed eshop (via HANS) but I can't link my emuNAND with a Nintendo Network ID. I am trying to download MH3U Data Transfer.
     
  16. Madridi
    OP

    Madridi Card Collector

    Member
    3,065
    903
    May 9, 2008
    Qatar
    Doha
    Old or new 3ds? If it's old then you don't need HANS. Just update your emunand to latest firmware and access eshop normally and you should be able to link nnid just fine.

    When you do get it downloaded, make sure you redump the "ticket.db" from emunand not sysnand, from the rxTools menu
     
  17. jonesbalada

    jonesbalada Member

    Newcomer
    24
    8
    Dec 12, 2015
    Brazil
    New 3ds - sysNAND 9.0.0-20U + emuNAND RX-E 9.0.0-20U (rxTools)
     
  18. Madridi
    OP

    Madridi Card Collector

    Member
    3,065
    903
    May 9, 2008
    Qatar
    Doha
    I don't know about new 3ds since I don't use one, but:
    Do you have your sysnand linked to your nnid? If yes, create your emunand again and you will have your emunand already linked
     
  19. jonesbalada

    jonesbalada Member

    Newcomer
    24
    8
    Dec 12, 2015
    Brazil
    Unfortunately my NANDs aren't linked.
     
  20. Madridi
    OP

    Madridi Card Collector

    Member
    3,065
    903
    May 9, 2008
    Qatar
    Doha
    So the nnid you are trying to link to is another one?

    There is still a way around it. Use the nnid you are trying to use from emunand in sysnand, then create a new emunand (that will make it linked with an emunand that has your nnid attached to it).

    Then format your sysnand (with the sd removed so you don't lose your content). That will unlink it.

    Finally relink your first nnid that was originally in sysnand.. You should this way have 2 different nnid in sysnand and emunand


    It's not the cleanest and shortest way to handle it. But it should work :)