UPDATE - FunkyCIA "2.1":
I fixed the creation of legit preinstalled CIAs... my silly mistake... sorry for the time wasted and any frustration when people could not get it to work before!
TO MAKE A LEGIT CIA FROM A PREINSTALLED GAME, use:
FunkyCIA2.py myticket.db -title TITLEID -preinstalled
^^^ the command is that easy. (not need to use -noignore anymore)
REMEMBER, if you make a CIA from your bundled game, then it will work on any 3DS, without any hacks/patches! So if my 3DS came with Animal Crossing preinstalled, I could make a CIA of it and when installed on a 3DS of the same region, it would appear 100% legit! It would work in sysnand/classic mode, and you could system transfer it to another 3DS etc
Also, I added '-personal', which will leave your unique ids in the CIA intact. This is so we can make perfect backups for our own system. (As opposed to wiping the ids by default, which make it installable on all consoles + requiring us to use GW or CFW to (install?) + run it) I do not know why, but when I make personal CIAs that should only work on my console, they do not install... I have not tested for a few months, but I hope we can fix it it possible.
USE FunkyCIA WITH FW 9.2 or below:
TRY THIS http://gbatemp.net/threads/release-rxtools-roxas75-3ds-toolkit-fw-2-0-9-2.382782/ (thanks Roxas75!)
Now that Decrypt9 supports generating ctr fat16 xorpads, we can decrypt our nand on 9.2 and extract the ticket.db and use it with FunkyCIA
This thread will not tell you how to extract files from your nand, or help you with that, it is a separate task let's keep this thread for FunkyCIA specific things
For 4.x, naturally the ticket.db dumper is easier and faster to use. gbatemp.net/threads/funkycia-guide-how-to-make-cias-from-your-eshop-stuff.377015/#post-5228804)
-------------------------------
Ok, here is FunkyCIA2!
It has some nice updates over the first version.
- Patch to give permission for all DLC (not just the piece of DLC you bought). = buy one theme, get permission for them all. buy one piece of dlc for a game, be able to use them all.
- Patch to remove demo play limit. = Demo games will not be limited to 30 plays, or 5 plays etc, they are unlimited. (You are able to disable DLC and demo patching if desired)
- Custom output directory. = you can tell FunkyCIA to save the output in a folder called 'mariokart'. Maybe if you are just downloading mario kart, it makes organization easier.
- Ignore titles. = You can download all titles of a certain type or types, but choose to ignore specific games. For example, downloading all updates, but not the update for mario kart 7 and pokemon x, you can type this "-type updates -ignoretitles 0004000E00030700 0004000E00055D00"
- Retry connection. = When something cannot be downloaded, it will try 4 more times to download it, usually this fixes any errors. The retry amount can be changed from 0 to 9.
- Download error catching. = When something cannot be downloaded, instead of the tool dying, the problem titleid will be logged to a text file and it will just continue on to the next title to be downloaded.
- Shows amount of content files that will be downloaded for the current title, and their filesize
- Duplicate and 'bad' ticket handling. = Only one of each title is downloaded. Some tickets are weird and seem to not be real tickets, these are now ignored.
- Tickets that are not attached to your eshop account/console are ignored. = This means games you installed from cias you downloaded will not be detected, only legit stuff you downloaded from shop/bought yourself will be processed. Unfortunately, this also means that bundled games will not be detected. This can be forced off by using "-noignore". Then, 'everything' will be processed.
- System titles are now ignored (since as above, they are not attached to your eshop account) - No real reason to create system FW cias from your ticket.db anyway, everyone's system fw apps are the same.
- Also I fixed the error log function, so it only makes 1 log for all the errors, as opposed to 1 log for every individual error I think
Type "FunkyCIA2.py -h" to get the help menu/description, so you can see what argument does what.
FunkyCIA needs your ticket.db!
READ HERE ON HOW TO GET IT (4.x only so far) - gbatemp.net/threads/funkycia-guide-how-to-make-cias-from-your-eshop-stuff.377015/#post-5228804
3DS fw 2.0 - 9.2
http://gbatemp.net/threads/release-rxtools-roxas75-3ds-toolkit-fw-2-0-9-2.382782/
I hope the wording in the output is understandable. If it is not clear, I can edit it to make it easier to understand.
I have not had this tested by anyone, only myself. I think it works fine, let me know if there are problems
Thanks for friendxsis for telling me the cool cetk method, riku for help, sbJFn5r (I think?) for dumpTicketKeys I originally based this off - and 3dsguy and 173210 for make_cdn_cia