Hacking [release] FunKiiU 2.0 - complete content + ticket python tool

  • Thread starter Thread starter cearp
  • Start date Start date
  • Views Views 183,806
  • Replies Replies 450
  • Likes Likes 45
what tmd? you mean for 000500001010a700, super metroid?
you are using the latest version?
it works perfectly for me, with that game.
https://github.com/llakssz/FunKiiU/releases/latest

python FunKiiU.py -title 000500001010a700 -onlinekeys


@cearp Yes I iam using version 2.0.2
I always get that error, I tried 3 games always the same error.
I referred to the TDM cause @NWPlayer123 said that, but i think the problem is the blank character as the folders created contain a bland character before and after the underscore, also cause the invalid literal error showing a blanc char.
Any idea what the problem can be?
Code:
ls install/
000500001010a700 _ Super Metroid

Thank you.
 
@Pajar0 - so this really happens using both python 2 and 3?
and on linux... hmmm.
very strange.

if there any content that works? or for everything, on your system, this happens?

Code:
python2.7 FunKiiU.py -title 000500001010a700 -onlinetickets
*******
FunKiiU by cearp and the cerea1killer
*******

Downloading/updating data from xxxx.xxxxx.xxx
Downloaded data OK!
Downloading TMD...
Downloading Contents...
Traceback (most recent call last):
File "FunKiiU.py", line 392, in <module>
patch_dlc=arguments.patch_dlc)
File "FunKiiU.py", line 365, in main
process_title_id(title_id, title_key, name, output_dir, retry_count, onlinetickets, patch_demo, patch_dlc)
File "FunKiiU.py", line 275, in process_title_id
total_size += int(binascii.hexlify(tmd[c_offs + 0x08:c_offs + 0x10]), 16)
ValueError: invalid literal for int() with base 16: ''
strange that the line with 'total_size +=...' seems to have an error, yet, basically the same line of 'content_count = ...' is ok for you...

i would say there is something wrong with your system because this problem is not happening to anyone else... :(
 
Last edited by cearp,
@Pajar0 - so this really happens using both python 2 and 3?
and on linux... hmmm.
very strange.

if there any content that works? or for everything, on your system, this happens?


strange that the line with 'total_size +=...' seems to have an error, yet, basically the same line of 'content_count = ...' is ok for you...

i would say there is something wrong with your system because this problem is not happening to anyone else... :(

@cearp
Yes it is happening with python2.7 and 3.5
As shell I am using GNU bash, version 4.4.0(1)-release (x86_64-pc-linux-gnu) in case it can help
I tried three games using onlinetickets and manually providing it
If you want me to test something else, please let me know.

Thank you
 
@cearp
Yes it is happening with python2.7 and 3.5
As shell I am using GNU bash, version 4.4.0(1)-release (x86_64-pc-linux-gnu) in case it can help
I tried three games using onlinetickets and manually providing it
If you want me to test something else, please let me know.

Thank you
i'm not a python or unix expert... so i can't really help sorry.
maybe the thing that @NWPlayer123 suggested, the struct way would fix something? but i'm not sure, really i'm confused why only you are having this problem.

are you confident with code/python, maybe comment/delete these lines and see what happens for you.
Code:
    total_size = 0
    for i in range(content_count):
        c_offs = 0xB04 + (0x30 * i)
        total_size += int(binascii.hexlify(tmd[c_offs + 0x08:c_offs + 0x10]), 16)
    print('Total size is {}'.format(bytes2human(total_size)))
 
i'm not a python or unix expert... so i can't really help sorry.
maybe the thing that @NWPlayer123 suggested, the struct way would fix something? but i'm not sure, really i'm confused why only you are having this problem.

are you confident with code/python, maybe comment/delete these lines and see what happens for you.
Code:
    total_size = 0
    for i in range(content_count):
        c_offs = 0xB04 + (0x30 * i)
        total_size += int(binascii.hexlify(tmd[c_offs + 0x08:c_offs + 0x10]), 16)
    print('Total size is {}'.format(bytes2human(total_size)))

Hi I don't think it is a problem with my system. I have just tried FunKiiU in my laptop, which is running a different distro and a different bash version (4.3.42) and I go the same error.
Not sure if more people has tested this on Linux.

I tried to comment those lines and now the download nearly starts. However, it seems total_size is used later in the code to validate the size of the content to download, thus aborting the execution
Code:
*******
FunKiiU by cearp and the cerea1killer
*******

Downloading/updating data from xxx,xxx,xxxxx
Downloaded data OK!
Downloading TMD...
Downloading Contents...
Downloading 1 of 29743.
Content download not correct size

*Attempt 2 of 4
Content download not correct size

*Attempt 3 of 4
Content download not correct size

*Attempt 4 of 4
Content download not correct size

ERROR: Could not download content file... Skipping title

@NWPlayer123 @cerea1killer can you help with this please?

Thank you
 
Last edited by Pajar0,
I doubt it's program related. It's working fine on Macosx, which is also unix based. Do you have dual boot machine? Have tried on windows? To see if it's network problem?
 
For some reason when using either commands: -onlineticket and -onlinekey, it will fail to download all the time, regardless if the keysite has the key or not. However when inputting the keys manually by using -key command, it works. Even the DLC stuff fails to download when using -onlinekey, however I manually inputted the key, it works?
 
I have used this tool down download games and install them. The only one I cannot get to work is Pokken Tournament. I get the error:

Install of title 00000000-00000000 failed
Error: MCP_InstallGetInfo 0xFFFBF3E2
Confirm complete WUP files are in the folder. Try power down.

I have installed other games like Zelda TP, Mario Maker, Mighty #9, and other without any issues with wup installer mod y1.
 
You were right the problem was I was blocking Nintendo update servers on the router.
Now it is working :D
Thank you for your help
jesus christ... we have had this 'bug' before, but usually it doesn't go on that long until the user realizes.
i always forget about it though.
very very annoying, i will keep this in mind for ANYTHING even remotely similar... noobs look out.
although good it is working for you.
is there more then source
sorry? you want to see the source? it's python, it is the source.
About the last part, is that really an option to download everything? How big would that be? Nintendo is gonna bust.
we used to have '-all', but replaced it with '-region', and you used it like this:
FunKiiU.py -onlinetickets/-onlinekeys -region USA, or
FunKiiU.py -onlinetickets/-onlinekeys -region JPN EUR
and that will download all from those regions

The only one I cannot get to work is Pokken Tournament..
no idea... :( you are using sigpatches?
For some reason when using either commands: -onlineticket and -onlinekey, it will fail to download all the time, regardless if the keysite has the key or not. However when inputting the keys manually by using -key command, it works. Even the DLC stuff fails to download when using -onlinekey, however I manually inputted the key, it works?
strange... i am not sure.
i have fixed a few bugs, quite a few actually, and i will make a new release in a few minutes.
so, try that new version i put out and tell me if that happens also for you.
 
i have fixed a few bugs, quite a few actually, and i will make a new release in a few minutes.
so, try that new version i put out and tell me if that happens also for you.

It would be good if the script tries to connect to Nin servers and if it fails catches an exception telling the user that failed maybe due to servers blocked or unavailable.
 
  • Like
Reactions: pelago
It would be good if the script tries to connect to Nin servers and if it fails catches an exception telling the user that failed maybe due to servers blocked or unavailable.
very good idea, thanks :) but you didn't seem to get an error message about 'tmd not downloaded' so, i'm not sure why not.
 
ok 2.2 is out :)
https://github.com/llakssz/FunKiiU/releases/latest

It's even better this time!
  • Some bug fixes of course.
  • Files that already exist are skipped! Cool. Later this might be optional (but default), so let you overwrite if you want.
  • '-all' was dropped (used to get all content from the keysite)
    Instead, we now have '-region', use it with EUR, JPN, USA to get all things from that region, from the keysite.
    python FunKiiU.py -onlinetickets -region USA
    python FunKiiU.py -onlinekeys -region EUR JPN
  • I forget if it is in the previous release or not, but if the data exists in the json file from the titlekeysite, the name and region will be used to create the folder name the data is saved into.
  • There is a -ticketsonly mode, that will not download any game content, it will only get/generate the ticket (along with the tmd and cert, they are useful too.)
    python FunKiiU.py -onlinetickets -region EUR -ticketsonly
  • And a -simulate option, it will show you what would happen, where files would get saved etc, if you run the program with whatever commands you give it.
    python FunKiiU.py -onlinekeys -region JPN -simulate
  • If getting an update, no matter if using -keys or -onlinekeys or -onlinetickets, the ticket will be download from Big N because they have legit tickets 'public' for all Wii U updates. (not the case for 3ds)
    I reckon there is no reason anyone would want a update/ticket that is NOT legit, so... I'm forcing it.
 
ok 2.2 is out :)
https://github.com/llakssz/FunKiiU/releases/latest

It's even better this time!
  • Some bug fixes of course.
  • Files that already exist are skipped! Cool. Later this might be optional (but default), so let you overwrite if you want.
  • '-all' was dropped (used to get all content from the keysite)
    Instead, we now have '-region', use it with EUR, JPN, USA to get all things from that region, from the keysite.
    python FunKiiU.py -onlinetickets -region USA
    python FunKiiU.py -onlinekeys -region EUR JPN
  • I forget if it is in the previous release or not, but if the data exists in the json file from the titlekeysite, the name and region will be used to create the folder name the data is saved into.
  • There is a -ticketsonly mode, that will not download any game content, it will only get/generate the ticket (along with the tmd and cert, they are useful too.)
    python FunKiiU.py -onlinetickets -region EUR -ticketsonly
  • And a -simulate option, it will show you what would happen, where files would get saved etc, if you run the program with whatever commands you give it.
    python FunKiiU.py -onlinekeys -region JPN -simulate
  • If getting an update, no matter if using -keys or -onlinekeys or -onlinetickets, the ticket will be download from Big N because they have legit tickets 'public' for all Wii U updates. (not the case for 3ds)
    I reckon there is no reason anyone would want a update/ticket that is NOT legit, so... I'm forcing it.
New GUI should drop today or tomorrow. Some kinda cool new features like a dropdown selection of titles parsed from titlekeys.json and hopefully auto updates too. Did you guys add the __VERSION__ attribute? I haven't taken a look at it yet. Still at work.
 
  • Like
Reactions: cearp and hudhair
New GUI should drop today or tomorrow. Some kinda cool new features like a dropdown selection of titles parsed from titlekeys.json and hopefully auto updates too. Did you guys add the __VERSION__ attribute? I haven't taken a look at it yet. Still at work.
i tried to... i'm not sure if it is as simple as what i did :D
 
i tried to... i'm not sure if it is as simple as what i did :D
I just looked at it and its right. But I think the python convention for version naming says it should be a string. Not that I care because my python is mediocre at best lol.
It will work either way and I have updates basically fully working but I want to see if I can restart both scripts in place instead of needing to restart manually.
 
  • Like
Reactions: cearp

Site & Scene News

Popular threads in this forum