Hacking Has anyone made any documentation for wupclient?

Irastris

Well-Known Member
OP
Member
Joined
May 3, 2015
Messages
1,116
Trophies
0
XP
895
Country
United States
Question is in the title.

I'm very good at using python scripts if I have some documentation, but I suck at reading through the code itself to figure things out.

Has anyone compiled a list of the commands and arguments that wupclient provides, and what they do?
 
Last edited by Irastris,

JimmyZ

Sarcastic Troll
Member
Joined
Apr 2, 2009
Messages
681
Trophies
0
XP
762
Country
Zimbabwe
Wupclient code is pretty much self explanatory. If you are good at python, don't be afraid to read it, if not, I suggest you wait for a more end user friendly tool.
 
  • Like
Reactions: zeldaism

Irastris

Well-Known Member
OP
Member
Joined
May 3, 2015
Messages
1,116
Trophies
0
XP
895
Country
United States
Wupclient code is pretty much self explanatory. If you are good at python, don't be afraid to read it, if not, I suggest you wait for a more end user friendly tool.

I never said I was good at Python itself, I said I was good at using Python scripts. I'm very quick to learn how to use them as long as I have proper documentation.
Please don't use that elitist statement on me. I know how to prevent getting bricked. If I was worried I'd screw something up, I wouldn't ask about documentation for the script at all.
 
Last edited by Irastris,

JimmyZ

Sarcastic Troll
Member
Joined
Apr 2, 2009
Messages
681
Trophies
0
XP
762
Country
Zimbabwe
I never said I was good at Python, I said I was good at using Python scripts. I'm very quick to learn how to use them as long as I have proper documentation.
Please don't use that elitist statement on me. I know how to prevent getting bricked. If I was worried I'd screw something up, I wouldn't ask about documentation for the script at all.
I never said you were good at python, I said "if", If you think this is elitism, elitism it is. this is the last explanation I'll write on this topic: wupclient.py is not a application, it's a library for other applications like wupclientgui.py, a library's targeting user group is programmers.
 

Irastris

Well-Known Member
OP
Member
Joined
May 3, 2015
Messages
1,116
Trophies
0
XP
895
Country
United States
I never said you were good at python, I said "if", If you think this is elitism, elitism it is. this is the last explanation I'll write on this topic: wupclient.py is not a application, it's a library for other applications like wupclientgui.py, a library's targeting user group is programmers.
I know that. I'm perfectly capable of implementing libraries in the python command line. IF I HAVE THE PROPER DOCUMENTATION.

The fact that you continue to ignore that question implies to me that you obviously don't have any sort of documentation yourself, and likely don't know anyone who does.
So I thank you for all your input thus far, but it is obviously leading anywhere useful to me.
 
Last edited by Irastris,

Irastris

Well-Known Member
OP
Member
Joined
May 3, 2015
Messages
1,116
Trophies
0
XP
895
Country
United States
Now you're just making fun of yourself.
I fail to understand why you think that. I may not be using the proper terminology, but my meaning is still completely valid.

By the python command line, I mean what you get when you run "python" in CMD.
By implementing libraries, I mean importing the classes. In the case of WUPClient, I'd input "from wupclient import wupclient" into python.

Happy now?
 

JimmyZ

Sarcastic Troll
Member
Joined
Apr 2, 2009
Messages
681
Trophies
0
XP
762
Country
Zimbabwe
By implementing libraries, I mean importing the classes. In the case of WUPClient, I'd input "from wupclient import wupclient" into python.

Happy now?
Pretty happy, I said I've done explaining, now I'm just having fun :D so I won't tell you that's not called "implementing" but "using" a library. learning python is fun you should do it, and I'm pretty sure you get that "from wupclient import wupclient" from another post of me in another thread.
 

Irastris

Well-Known Member
OP
Member
Joined
May 3, 2015
Messages
1,116
Trophies
0
XP
895
Country
United States
I'm pretty sure you get that "from wupclient import wupclient" from another post of me in another thread.

You can think that if you want, but I actually used common knowledge.
For example, WUPClient uses "from time import sleep". Knowing that time is a library, and sleep is a class, I can conclude that using WUPClient would mean typing "from wupclient import wupclient", as that's the only class made available by wupclient.

I may be stupid when it comes to reading Python code, but atleast I know that much.
 

JimmyZ

Sarcastic Troll
Member
Joined
Apr 2, 2009
Messages
681
Trophies
0
XP
762
Country
Zimbabwe
You can think that if you want, but I actually used common knowledge.
For example, WUPClient uses "from time import sleep". Knowing that time is a library, and sleep is a class, I can conclude that using WUPClient would mean typing "from wupclient import wupclient", as that's the only class made available by wupclient.

I may be stupid when it comes to reading Python code, but atleast I know that much.
Just continue reading and you'll be fine.
 

Irastris

Well-Known Member
OP
Member
Joined
May 3, 2015
Messages
1,116
Trophies
0
XP
895
Country
United States
holy shit this is stupid.
python -i wupclient.py to start a prompt
w.<command>(<args>)
if you don't know this you don't know shit about python

Yes, I know that. I can also understand the w.<command> portion, but it's the <args> where I start to get tripped up, as I don't have any documentation to help me out with what should replace what's shown in the wupclient script. (self, handle, device_path, etc...)
So sorry for not being a top of the line programmer. I only recently started trying to learn, especially so when it comes to the Wii U.
 

nexusmtz

Well-Known Member
Member
Joined
Feb 17, 2016
Messages
1,386
Trophies
0
XP
1,425
Country
United States
I guess I'm not as lucky as you then, to be able to wrap my head around it that quickly.
You're trying. That's better than a lot of people.
I'm not aware of any documentation, but I'll get you started. Here are the defs that appear to be for our use rather than the script's:

Methods, i.e. w.something()
Code:
Linux-like
    def cd(self, path):
    def pwd(self):
    def ls(self, path = None, return_data = False):
    def cp(self, filename_in, filename_out):
    def rm(self, filename):
    def mkdir(self, path, flags):
    def rmdir(self, path):
    def chmod(self, filename, flags):
    def stat(self, filename):

    def cpdir(self, srcpath, dstpath):
      Copies a directory/tree on the WiiU itself

    def dl(self, filename, directorypath = None, local_filename = None):
      Download a file from WiiU to pc. If you don't give directorypath, the file comes from the current directory.

    def dldir(self, path):
      Download a directory tree. This one doesn't let you specify where to put it on the pc,
      but it seems to end up in ../ (Haven't looked closely, but that's where I found it.)

    def up(self, local_filename, filename = None):
      Uploads a file from the pc to the WiiU. At its simplest, it'll go from the current directory on the pc to the same named file on the WiiU.

    def dump_syslog(self):
      Probably dumps the syslog
    def fr(self, filename, offset, size):
      File read
    def df(self, filename_out, src, size):
      Looks like a memory dump to a file (on the WiiU)
    def askyesno(self):
      You might use this in a script for confirmation like the rmdir does.

Functions, which don't take the wupclient instance (but use it anyway)
(Sorry, I'm out of time, so someone else will have to help you out from here if you can't tell what they do.)
Code:
def mkdir_p(path):

def mount_sd():
def unmount_sd():

def mount_odd_content():
def unmount_odd_content():

def mount_odd_update():
def unmount_odd_update():

def mount_odd_tickets():
def unmount_odd_tickets():

def install_title(path, installToUsb = 0):
def get_nim_status():
def read_and_print(adr, size):

If you're not into python, self isn't a parameter you give on the command line, so when you use w., skip self. Parameters with = None will default to None.
 
  • Like
Reactions: looseless

JimmyZ

Sarcastic Troll
Member
Joined
Apr 2, 2009
Messages
681
Trophies
0
XP
762
Country
Zimbabwe
You're trying. That's better than a lot of people.
I'm not aware of any documentation, but I'll get you started. Here are the defs that appear to be for our use rather than the script's:

Methods, i.e. w.something()
Code:
Linux-like
    def cd(self, path):
    def pwd(self):
    def ls(self, path = None, return_data = False):
    def cp(self, filename_in, filename_out):
    def rm(self, filename):
    def mkdir(self, path, flags):
    def rmdir(self, path):
    def chmod(self, filename, flags):
    def stat(self, filename):

    def cpdir(self, srcpath, dstpath):
      Copies a directory/tree on the WiiU itself

    def dl(self, filename, directorypath = None, local_filename = None):
      Download a file from WiiU to pc. If you don't give directorypath, the file comes from the current directory.

    def dldir(self, path):
      Download a directory tree. This one doesn't let you specify where to put it on the pc,
      but it seems to end up in ../ (Haven't looked closely, but that's where I found it.)

    def up(self, local_filename, filename = None):
      Uploads a file from the pc to the WiiU. At its simplest, it'll go from the current directory on the pc to the same named file on the WiiU.

    def dump_syslog(self):
      Probably dumps the syslog
    def fr(self, filename, offset, size):
      File read
    def df(self, filename_out, src, size):
      Looks like a memory dump to a file (on the WiiU)
    def askyesno(self):
      You might use this in a script for confirmation like the rmdir does.

Functions, which don't take the wupclient instance (but use it anyway)
(Sorry, I'm out of time, so someone else will have to help you out from here if you can't tell what they do.)
Code:
def mkdir_p(path):

def mount_sd():
def unmount_sd():

def mount_odd_content():
def unmount_odd_content():

def mount_odd_update():
def unmount_odd_update():

def mount_odd_tickets():
def unmount_odd_tickets():

def install_title(path, installToUsb = 0):
def get_nim_status():
def read_and_print(adr, size):

If you're not into python, self isn't a parameter you give on the command line, so when you use w., skip self. Parameters with = None will default to None.
please, teaching like this will only help them hurting themselves.
 

Irastris

Well-Known Member
OP
Member
Joined
May 3, 2015
Messages
1,116
Trophies
0
XP
895
Country
United States
You're trying. That's better than a lot of people.
I'm not aware of any documentation, but I'll get you started. Here are the defs that appear to be for our use rather than the script's:

Methods, i.e. w.something()
Code:
Linux-like
    def cd(self, path):
    def pwd(self):
    def ls(self, path = None, return_data = False):
    def cp(self, filename_in, filename_out):
    def rm(self, filename):
    def mkdir(self, path, flags):
    def rmdir(self, path):
    def chmod(self, filename, flags):
    def stat(self, filename):

    def cpdir(self, srcpath, dstpath):
      Copies a directory/tree on the WiiU itself

    def dl(self, filename, directorypath = None, local_filename = None):
      Download a file from WiiU to pc. If you don't give directorypath, the file comes from the current directory.

    def dldir(self, path):
      Download a directory tree. This one doesn't let you specify where to put it on the pc,
      but it seems to end up in ../ (Haven't looked closely, but that's where I found it.)

    def up(self, local_filename, filename = None):
      Uploads a file from the pc to the WiiU. At its simplest, it'll go from the current directory on the pc to the same named file on the WiiU.

    def dump_syslog(self):
      Probably dumps the syslog
    def fr(self, filename, offset, size):
      File read
    def df(self, filename_out, src, size):
      Looks like a memory dump to a file (on the WiiU)
    def askyesno(self):
      You might use this in a script for confirmation like the rmdir does.

Functions, which don't take the wupclient instance (but use it anyway)
(Sorry, I'm out of time, so someone else will have to help you out from here if you can't tell what they do.)
Code:
def mkdir_p(path):

def mount_sd():
def unmount_sd():

def mount_odd_content():
def unmount_odd_content():

def mount_odd_update():
def unmount_odd_update():

def mount_odd_tickets():
def unmount_odd_tickets():

def install_title(path, installToUsb = 0):
def get_nim_status():
def read_and_print(adr, size):

If you're not into python, self isn't a parameter you give on the command line, so when you use w., skip self. Parameters with = None will default to None.

Yes, thank you! This is what I've been looking for. This makes everything much more simple to me.

--------------------- MERGED ---------------------------

please, teaching like this will only help them hurting themselves.

How's it gonna hurt me? I'm still gonna keep trying to read through the script, but at least now I have some sort of baseline info.
 

JimmyZ

Sarcastic Troll
Member
Joined
Apr 2, 2009
Messages
681
Trophies
0
XP
762
Country
Zimbabwe
How's it gonna hurt me? I'm still gonna keep trying to read through the script, but at least now I have some sort of baseline info.

If you're gonna start learning programming, better start from the basics, take your time. trust me I've seen enough shotgun programming.
 
  • Like
Reactions: Azel

nexusmtz

Well-Known Member
Member
Joined
Feb 17, 2016
Messages
1,386
Trophies
0
XP
1,425
Country
United States
If you're gonna start learning programming, better start from the basics, take your time. trust me I've seen enough shotgun programming.
This is good advice, but try to keep in mind that a person doesn't need to be able to code a grep command in order to be able to leverage the command to find the data they need. Although I understand that the code practically provides its own documentation, that doesn't make it obvious to everyone. Sometimes people just need a little push.

As an example, only yesterday, I pointed out in another thread that the region check for a game could be bypassed by modifying the title's meta.xml with wupclient. There was a person in that thread who simply needed that little push to understand something that I believed was obvious, given that the file says 'region' right inside it. He caught on quickly and was able to run with it, and I'm sure he's off in another thread today helping someone else learn something. ;)
 
  • Like
Reactions: Irastris

Site & Scene News

Popular threads in this forum

General chit-chat
Help Users
  • No one is chatting at the moment.
  • Xdqwerty @ Xdqwerty:
    good night
  • BakerMan @ BakerMan:
    as to you
  • K3Nv2 @ K3Nv2:
    How do you know if the night will be good when you're asleep
  • BakerMan @ BakerMan:
    because i didn't say i was asleep
  • BakerMan @ BakerMan:
    i said i was sleeping...
  • BakerMan @ BakerMan:
    sleeping with uremum
  • K3Nv2 @ K3Nv2:
    Even my mum slept on that uremum
  • TwoSpikedHands @ TwoSpikedHands:
    yall im torn... ive been hacking away at tales of phantasia GBA (the USA version) and have so many documents of reverse engineering i've done
  • TwoSpikedHands @ TwoSpikedHands:
    I just found out that the EU version is better in literally every way, better sound quality, better lighting, and there's even a patch someone made to make the text look nicer
  • TwoSpikedHands @ TwoSpikedHands:
    Do I restart now using what i've learned on the EU version since it's a better overall experience? or do I continue with the US version since that is what ive been using, and if someone decides to play my hack, it would most likely be that version?
  • Sicklyboy @ Sicklyboy:
    @TwoSpikedHands, I'll preface this with the fact that I know nothing about the game, but, I think it depends on what your goals are. Are you trying to make a definitive version of the game? You may want to refocus your efforts on the EU version then. Or, are you trying to make a better US version? In which case, the only way to make a better US version is to keep on plugging away at that one ;)
  • Sicklyboy @ Sicklyboy:
    I'm not familiar with the technicalities of the differences between the two versions, but I'm wondering if at least some of those differences are things that you could port over to the US version in your patch without having to include copyrighted assets from the EU version
  • TwoSpikedHands @ TwoSpikedHands:
    @Sicklyboy I am wanting to fully change the game and bend it to my will lol. I would like to eventually have the ability to add more characters, enemies, even have a completely different story if i wanted. I already have the ability to change the tilemaps in the US version, so I can basically make my own map and warp to it in game - so I'm pretty far into it!
  • TwoSpikedHands @ TwoSpikedHands:
    I really would like to make a hack that I would enjoy playing, and maybe other people would too. swapping to the EU version would also mean my US friends could not legally play it
  • TwoSpikedHands @ TwoSpikedHands:
    I am definitely considering porting over some of the EU features without using the actual ROM itself, tbh that would probably be the best way to go about it... but i'm sad that the voice acting is so.... not good on the US version. May not be a way around that though
  • TwoSpikedHands @ TwoSpikedHands:
    I appreciate the insight!
  • The Real Jdbye @ The Real Jdbye:
    @TwoSpikedHands just switch, all the knowledge you learned still applies and most of the code and assets should be the same anyway
  • The Real Jdbye @ The Real Jdbye:
    and realistically they wouldn't

    be able to play it legally anyway since they need a ROM and they probably don't have the means to dump it themselves
  • The Real Jdbye @ The Real Jdbye:
    why the shit does the shitbox randomly insert newlines in my messages
  • Veho @ Veho:
    It does that when I edit a post.
  • Veho @ Veho:
    It inserts a newline in a random spot.
  • The Real Jdbye @ The Real Jdbye:
    never had that i don't think
  • Karma177 @ Karma177:
    do y'all think having an sd card that has a write speed of 700kb/s is a bad idea?
    trying to restore emunand rn but it's taking ages... (also when I finished the first time hekate decided to delete all my fucking files :wacko:)
    Karma177 @ Karma177: do y'all think having an sd card that has a write speed of 700kb/s is a bad idea? trying to...