Development of new Wii U RAM Debugger

Discussion in 'Wii U - Hacking & Backup Loaders' started by BullyWiiPlaza, Feb 3, 2016.

  1. BullyWiiPlaza
    OP

    BullyWiiPlaza Nintendo Hacking <3

    Member
    1,727
    1,408
    Aug 2, 2014
    Germany
    Hey community,

    I was just wondering who would be interested in a new Wii U RAM debugging tool similar to TCP Gecko.NET but improved and actively maintained? TCP Gecko.NET has many broken features, bugs and messy source code so it's pretty bad. Don't we need some good RAM debugger that works well with new useful features and never crashes?

    Since this is a massive project, it is not just done in a day therefore I'm also asking who would be interested to do active development. The programming language used will be Java because it's a great language with a lot of tool and code analysis support as well as being fully platform independent. Also I did some development in it already.

    I already have an (unreleased) Java library for reading and writing the Wii U memory which works great so this is what we could built upon:
    Warning: Spoilers inside!
    The example code connects to the Wii U using its IP address, dumps 0x100 bytes of memory starting at address 0x10000000 and stores it to the file "Dumped.bin" in the same directory. Then the file is opened by the systems default Hex Editor (e.g. HxD) and then the connection to the Wii U is closed. Easy right?

    I'm aware that a Python Gecko client exists but again, it's about as far in development as me so it doesn't really influence the language decision. My library on the other hand is more complete in terms of supporting reading and writing of various data types such as booleans, integers, shorts, bytes, floats and even Strings. It can dump memory, search for an integer and follow pointers of any depth.

    Your programming experience should be 2 years at least if you want to be able to help.

    I suggest using IntelliJ IDEA as development environment, Maven as build system and Github as host/version control system.

    For this project to be possible, I need about 3 other skilled people since I don't have a lot of free time to spend doing this so it's impossible to do for me alone. Let me know. :)

    Just tagging some people that probably meet the requirements and are willing to help according to some search results on the Wii U section they have something to do with Java lol:

    @Maschell
    @gudenaurock
    @Growlith1223
    @Elliander

    EDIT:
    I made a GitHub repository for the project. Check it out here.

    [​IMG]
     
    Last edited by BullyWiiPlaza, Feb 6, 2016


  2. gudenau

    gudenau Never a unique idea

    Member
    3,257
    1,224
    Jul 7, 2010
    United States
    /dev/random
    I have a fairly functional library for TCPGecko, it should support all functions in TCPGecko. I use it in my colorizer, but it is not public because of my inability to test it...

    Edit:
    Mine suports strings, all primitive datatypes and byte arrays/bytebuffers iirc. ;-)

    Edit 2:
    I don't have to much time myself, but I'll help with it as much as I can. If you want, you could use my WIP launcher to manage the ClassPath and libraries. (The same one my collorizer uses)
     
    Last edited by gudenau, Feb 3, 2016
    Phantom90 and BullyWiiPlaza like this.
  3. Growlith1223

    Growlith1223 GBAtemp Regular

    Member
    297
    245
    Oct 15, 2015
    United States
    I haven't touched java in a while lol, mostly went to C/C++ xD i might be able to help but don't count on it. my experience in programming is about 6 years now if that counts lol
     
    Phantom90 and BullyWiiPlaza like this.
  4. sinkillerj

    sinkillerj Newbie

    Newcomer
    8
    1
    Oct 11, 2015
    United States
    I'd mostly like a more reliable way to get the filesystem tree for a game, in some games performing a FSA read without freezing is hard or impossible.
     
    BullyWiiPlaza likes this.
  5. loco365

    loco365 GBAtemp Guru

    Member
    5,458
    2,674
    Sep 1, 2010
    I'd like a reliable to be able to read/write to the Wii U memory that works on 5.4.0 lol. Cafiine crashes more often than not, and TCP Gecko dotNET just doesn't like me.
     
    BullyWiiPlaza likes this.
  6. master801

    master801 GBAtemp Fan

    Member
    352
    85
    Feb 24, 2011
    United States
    Cool! Nice to see another Java user on GBATemp.

    Good luck with your project!
     
    BullyWiiPlaza likes this.
  7. Leanny

    Leanny Advanced Member

    Newcomer
    85
    29
    Feb 14, 2009
    Gambia, The
    Since I'm on 5.5.1 I cant really test a lot of these features, but I can still help you out in one thing or another (like code proof reading and looking for logical errors or writing some stuff in java)
     
    BullyWiiPlaza likes this.
  8. BullyWiiPlaza
    OP

    BullyWiiPlaza Nintendo Hacking <3

    Member
    1,727
    1,408
    Aug 2, 2014
    Germany
    That's what this project could do for you. My library is very stable unlike TCP Gecko.NET for most people or everyone and it probably works on all firmwares since it only needs pyGecko installed and running on the Wii U.
    I looked at your code and it's amazing, good job! You got a lot more stuff than me. I guess we got enough people to tackle this project. Maschell may also help here and there :P
    Interesting but I don't quite get the point of it :unsure:

    In like 2 weeks I have time to start doing something for this project but not earlier though but great to hear some people really are interested. :lol:
     
    Last edited by BullyWiiPlaza, Feb 4, 2016
    eco95 likes this.
  9. loco365

    loco365 GBAtemp Guru

    Member
    5,458
    2,674
    Sep 1, 2010
    Yeah. I was looking at the source code for TCP Gecko dotNET and while I can understand at least part of it (The commenting is very few and far between...) I can't really improve upon it. I'd love to help you, but my knowledge of Java is rather limited to basics on the command line and not much else.
     
    BullyWiiPlaza likes this.
  10. Onion_Knight

    Onion_Knight GBAtemp Advanced Fan

    Member
    878
    832
    Feb 6, 2014
    Just a recommendation, you'll find dumping goes a lot faster if you dump them to sd card. If you attach your gecko client to loadiine such as what I did, your gecko client can actually write to SD card. my personal version dumps to SD card and it flys for doing dumping. So when you do your re-write, you might want to add that funcionality to it.

    — Posts automatically merged - Please don't double post! —

    Also zlib compression is a good trade for undefined searches, if you modify the codehandler, I've found that the Wii U handles 0x4000 zlib compression to be pretty good and it makes your transfers about 40% faster....you can also add some co-routines or mulit-processor functions to increase the speed. If you do it right, your codehandler could be much much more efficient and like up to 70% faster. I've played with it a little bit and its on my to do list but WAY WAY down on the list.
     
    ARVI80 and BullyWiiPlaza like this.
  11. gudenau

    gudenau Never a unique idea

    Member
    3,257
    1,224
    Jul 7, 2010
    United States
    /dev/random
    Part of my wip library.

    Thanks, that means a lot to me. I look at my code and I can not help but to think it sucks. :-)
     
  12. gudenau

    gudenau Never a unique idea

    Member
    3,257
    1,224
    Jul 7, 2010
    United States
    /dev/random
    There is some very simple compression in there already. If I get kernel I will try doing some compression myself.
     
  13. BullyWiiPlaza
    OP

    BullyWiiPlaza Nintendo Hacking <3

    Member
    1,727
    1,408
    Aug 2, 2014
    Germany
    I added a basic graphical interface draft source code repository
     
    eco95 likes this.
  14. gudenau

    gudenau Never a unique idea

    Member
    3,257
    1,224
    Jul 7, 2010
    United States
    /dev/random
    At least you set the system look and feel. :-D
     
  15. gudenau

    gudenau Never a unique idea

    Member
    3,257
    1,224
    Jul 7, 2010
    United States
    /dev/random
    I'll put my lib on github so you could use it. Everything should be documented.
     
    BullyWiiPlaza likes this.
  16. BullyWiiPlaza
    OP

    BullyWiiPlaza Nintendo Hacking <3

    Member
    1,727
    1,408
    Aug 2, 2014
    Germany
    Thanks but I can also use mine for the most part. If you know Javadoc then go ahead and use it for commenting every method and such :P
     
    Last edited by BullyWiiPlaza, Feb 4, 2016
    eco95 likes this.
  17. gudenau

    gudenau Never a unique idea

    Member
    3,257
    1,224
    Jul 7, 2010
    United States
    /dev/random
    Mines got everything commented with Javadoc already.
     
    BullyWiiPlaza likes this.
  18. BullyWiiPlaza
    OP

    BullyWiiPlaza Nintendo Hacking <3

    Member
    1,727
    1,408
    Aug 2, 2014
    Germany
    Mine also, we should be good.

    I'm going to commit another version soon including the Wii U connector. :P
     
    Last edited by BullyWiiPlaza, Feb 4, 2016
    eco95 likes this.
  19. BullyWiiPlaza
    OP

    BullyWiiPlaza Nintendo Hacking <3

    Member
    1,727
    1,408
    Aug 2, 2014
    Germany
    Bump, now includes the code for the Wii U connector and Wii U auto detection in the network. Please contribute!
     
    Growlith1223, eco95 and MichiS97 like this.
  20. FunThomas

    FunThomas GBAtemp Fan

    Member
    414
    82
    Jan 10, 2016
    Gambia, The
    tried the last version from github but the connect is always greyed out :(

    is it normal ?

    and when i click help i get
    Warning: Spoilers inside!
     
    Last edited by FunThomas, Apr 3, 2016