def tcp_connect(): global tcp global tcp_connected global rpc_running try: tcp = TCPGecko(ip) # connect to your Wii U except TimeoutError: clear() print("Connection timed out. Please try again.\n") if rpc_running == True: RPC.close() menu() tcp_connected = True clear() print("Successfully connected to your Wii U at " + ip + ".") print("Waiting for Discord...")
def connect(): ip = nip.get() global tcp, f_config, inj tcp = TCPGecko(ip) x = tcp.readmem(name_ptr, 20) x = str_end(x, 0) print(x) tcp.pokemem(0x1076f7a8, 0x000000FF) temp_vars = [] ShowStats() change_text("^2Connected to NexoCube Mod Injector") inj.config(state=NORMAL) f_config.seek(0, 0) f_config.write(ip) f_config.close()
def connection(self): try: ip = self.ui.lineEdit.text() self.gecko = TCPGecko(ip) except: QMessageBox.critical(self, 'SplatStats', "The connection to the console failed!") return firmVer = self.gecko.getversion() if firmVer == 550: loc = 0x10013C10 elif firmVer < 550 and firmVer >= 532: loc = 0x100136D0 elif firmVer < 532 and firmVer >= 500: loc = 0x10013010 elif firmVer == 410: loc = 0x1000ECB0 else: QMessageBox.critical( self, 'SplatStats', "The version of your wiiu is not compatible with the software. Please update it!" ) return titleID = int(hexlify(self.gecko.readmem(loc, 8)), 16) if titleID == TID_EUR or titleID == TID_USA or titleID == TID_JAP: self.ui.lineEdit.setEnabled(False) self.ui.pushButton_3.setEnabled(False) self.ui.pushButton_2.setEnabled(True) self.ui.pushButton_6.setEnabled(True) QMessageBox.information( self, 'SplatStats', "The connection to " + ip + " was successful!") else: self.gecko.s.close() QMessageBox.critical( self, 'SplatStats', "The connection to the console was successful, but was cut because Splatoon was not launched!" )
from tcpgecko import TCPGecko from binascii import hexlify import os, sys, time if os.path.isfile("./SAV_IP") == True: sav_ip = (open("./SAV_IP", "r").read()) print( "\nEnter you Wii U IP Address: (Or keep it blank to use your saved one.)" ) else: print("\nEnter you Wii U IP Address:") ip = raw_input(">> ") or sav_ip tcp = TCPGecko(ip) save = open("./SAV_IP", "w") save.write(ip) save.close() diff = 0x0 if hexlify(tcp.readmem(0x12CDADA0, 4)) == "000003f2": #Loadiine and Geckiine diff = 0x0 elif hexlify(tcp.readmem(0x12CDCDA0, 4)) == '000003f2': #Elf TCPGecko w/o codehandler diff = 0x2000 elif hexlify(tcp.readmem( 0x12CE2DA0, 4)) == '000003f2': #Something, it's there but I'm not sure diff = 0x8000 elif hexlify(tcp.readmem(0x12CE3DA0, 4)) == '000003f2': #Codehandler diff = 0x9000
from tcpgecko import TCPGecko from binascii import hexlify, unhexlify import sys try: import __builtin__ except: import builtins as __builtin__ def hex(value, fill): return "0x" + __builtin__.hex(value).lstrip("0x").rstrip("L").zfill(fill).upper() tcp = TCPGecko("192.168.0.10") title_id = 0x0005000010144F00 #Smash USA SYSCheckTitleExists = tcp.get_symbol("sysapp.rpl", "SYSCheckTitleExists", True) doesExist = SYSCheckTitleExists(title_id >> 32, title_id & 0xFFFFFFFF) if not doesExist: print("Title " + hex(title_id, 16) + " does not exist!") else: SYSLaunchTitle = tcp.get_symbol("sysapp.rpl", "SYSLaunchTitle", True) SYSLaunchTitle(title_id >> 32, title_id & 0xFFFFFFFF) print("Game switched!") tcp.s.close()
#You're probably better off using the GUI version, but... #https://gbatemp.net/threads/splatoon-colorizer.406463/ from tcpgecko import TCPGecko from textwrap import wrap from struct import pack from binascii import unhexlify import sys #!!! WARNING: ColorHax has been known to get permanent bans for users !!! #!!! USE AT YOUR OWN RISK !!! tcp = TCPGecko("192.168.0.10") #Wii U IP address Colors = b"" for i in range(1, 4): #Ignores Alpha since it doesn't use it Color = wrap(sys.argv[i], 2) #Split it into 2 character chunks for j in range(3): #Create the RGB floats Colors += pack(">f", ord(unhexlify(Color[j])) / 256) Colors += pack(">f", 1.0) #Alpha tcp.writestr(0x12D53178, Colors) #Only overwrites currently loaded color #Run a command right after the lobby is "ready" tcp.s.close() print("Done!") #!!! WARNING: ColorHax has been known to get permanent bans for users !!! #!!! USE AT YOUR OWN RISK !!!
import sys, os import struct sys.path.append(os.path.abspath('../pygecko')) from tcpgecko import TCPGecko wiiu_addr = '192.168.0.133' print '> Connecting to Wii U...' g = TCPGecko(wiiu_addr) print '> Connected to Wii U' addr_base = 0x1C3B2460 num_equip = 100 num_bytes = num_equip*24 # each equip uses 6 words bytes_raw = g.readmem(addr_base, num_bytes) num_equip_read = len(bytes_raw)/24 for equip_i in xrange(num_equip_read): offset = equip_i*24 addr_curr = addr_base + offset bytes_curr_equip = bytes_raw[offset:(offset+24)] wv = struct.unpack('>IIIIII', bytes_curr_equip) equip_empty = (wv[0] == 0 and wv[1] == 0 and wv[2] == 0) if equip_empty: print '%08X (%03d): EMPTY' % (addr_curr, equip_i+1) else: print '%08X (%03d): %08X %08X %08X %08X %08X %08X' % \ (addr_curr, equip_i+1, wv[0], wv[1], wv[2], wv[3], wv[4], wv[5]) g.s.close() print '> Disconnected from Wii U'
from tcpgecko import TCPGecko from textwrap import wrap from struct import pack from binascii import hexlify, unhexlify import sys def pokecolor(pos, string): color = textwrap.wrap(string, 4) tcp.pokemem(pos, struct.unpack(">I", color[0])[0]) tcp.pokemem(pos + 4, struct.unpack(">I", color[1])[0]) tcp.pokemem(pos + 8, struct.unpack(">I", color[2])[0]) tcp.pokemem(pos + 12, struct.unpack(">I", color[3])[0]) tcp = TCPGecko("192.168.137.3") Colors = b"" for i in range(1, 4): #Ignores Alpha since it doesn't use it Color = wrap(sys.argv[i], 2) #Split it into 2 character chunks for j in range(3): Colors += pack(">f", ord(unhexlify(Color[j])) / 256) Colors += pack(">f", 1.0) tcp.writestr(0x12D14F64, Colors) #Only overwrites currently loaded color #You need to figure out timing to apply tcp.s.close() print("Done.")
#Codename Octohax from tcpgecko import TCPGecko import sys sys.argv.append("230") tcp = TCPGecko("192.168.0.8") if sys.argv[1] == "100": #For 1.0.0-? tcp.writestr(0x105068F0, b"Tnk_Rvl00") tcp.writestr(0x1051A500, b"Tnk_Rvl00") tcp.writestr(0x105DBFE0, b"Rival00") tcp.writestr(0x105DBFEC, b"Rival00_Hlf") tcp.writestr(0x105DBFFC, b"Rival_Squid") #tcp.pokemem(0x12CB05A0, 42069) elif sys.argv[1] == "130": #for 1.3.0 tcp.writestr(0x105068F0, b"Tnk_Rvl00") tcp.writestr(0x105D4000, b"Tnk_Rvl00") tcp.writestr(0x105DC118, b"Rival00") tcp.writestr(0x105DC124, b"Rival00_Hlf") tcp.writestr(0x105DC134, b"Rival_Squid") #tcp.pokemem(0x12CB07A0, 42069) elif sys.argv[1] == "200": #For 2.0.0 tcp.writestr(0x10506AB0, b"Tnk_Rvl00") tcp.writestr(0x105E0278, b"Tnk_Rvl00") tcp.writestr(0x105E85B0, b"Rival00") tcp.writestr(0x105E85BC, b"Rival00_Hlf") tcp.writestr(0x105E85CC, b"Rival_Squid") tcp.writestr(0x12BE2350, b"Tnk_Rvl00") tcp.writestr(0x12BE239C, b"Tnk_Rvl00") tcp.writestr(0x12BE23E8, b"Tnk_Rvl00") elif sys.argv[1] == "210": #For 2.1.0 tcp.writestr(0x10506AF8, b"Tnk_Rvl00")
Player01_anim... Player00....Play er00_Hlf....Play er_Squid....Play er01....Player01 _Hlf....ToSquid. ToHuman.Sqd_Jet. ''' #Then dump 0x12000000 to 0x13000000, search for Tnk_Simple, #should be first result, with three of them in a row with spacing from tcpgecko import TCPGecko import sys sys.argv.append("280") tcp = TCPGecko("192.168.1.82") if sys.argv[1] == "100": #For 1.0.0-? tcp.writestr(0x105068F0, b"Tnk_Rvl00") tcp.writestr(0x1051A500, b"Tnk_Rvl00") tcp.writestr(0x105DBFE0, b"Rival00") tcp.writestr(0x105DBFEC, b"Rival00_Hlf") tcp.writestr(0x105DBFFC, b"Rival_Squid") #tcp.pokemem(0x12CB05A0, 42069) elif sys.argv[1] == "130": #for 1.3.0 tcp.writestr(0x105068F0, b"Tnk_Rvl00") tcp.writestr(0x105D4000, b"Tnk_Rvl00") tcp.writestr(0x105DC118, b"Rival00") tcp.writestr(0x105DC124, b"Rival00_Hlf") tcp.writestr(0x105DC134, b"Rival_Squid") #tcp.pokemem(0x12CB07A0, 42069) elif sys.argv[1] == "200": #For 2.0.0
from pypresence import Presence from tcpgecko import TCPGecko from wiiu_info import WiiU_Titles import time exit = 0 f = open("wiiu_rp.cfg", "r") ip_addr = f.read() if "." not in ip_addr: print("Please modify the 'wiiu_rp.cfg' and put your Wiiu Local IP Address") tcp = TCPGecko(ip_addr.replace("IP= ", "").replace(" ", "")) titles = WiiU_Titles(tcp) titles.init_titles() while exit == 0: ret_val, cid, state, details, start, end, large_image, large_text, party_id, party_size = titles.call_handler_for_tid( titles.OSGetTitleID()) if ret_val == 0: try: p = Presence(cid) p.connect() p.update(state=state, details=details, start=start, end=end, large_image=large_image,
from tcpgecko import TCPGecko tcp = TCPGecko("10.0.0.2") # make sure to check if your title exists, or else it will crash! # if it exists, it will return 1 SYSCheckTitleExists = tcp.get_symbol("sysapp.rpl", "SYSCheckTitleExists") # first argument is the first 32-bit set of the Title ID # second argument is the second 32-bit set of the Title ID # for example, this is Wooly World (USA) SYSCheckTitleExists(0x0005000, 0x10184D00) # now here is the title id that you will launch # remember to have the game / disc in!!!!! SYSLaunchTitle(0x0005000, 0x10184D00) tcp.s.close() print("Game switched!")