def exportAll(parent, tekkenVersion, key_match): game_addresses.reloadValues() player_addresses = [ game_addresses.addr[key] for key in game_addresses.addr if match(key_match, key) ] TekkenExporter = exportLib.Exporter(tekkenVersion) exportedMovesets = [] for playerAddr in player_addresses: moveset_name = TekkenExporter.getPlayerMovesetName(playerAddr) if moveset_name not in exportedMovesets: print("Requesting export for %s..." % (moveset_name)) moveset = TekkenExporter.exportMoveset(playerAddr) exportedMovesets.append(moveset_name) print() else: print('Player', moveset_name, 'already exported, not exporting again.') print('\nSuccessfully exported:') for name in exportedMovesets: print(name) parent.updateCharacterlist()
def exportAll(parent, TekkenVersion): game_addresses.reloadValues() TekkenExporter = exportLib.Exporter(TekkenVersion, folder_destination=charactersPath) playerAddr = TekkenExporter.getP1Addr() exportedMovesets = [] playerSize = game_addresses.addr[TekkenVersion + '_playerstruct_size'] playerCount = 2 if TekkenVersion + '_player_count' in game_addresses.addr: playerCount = game_addresses.addr[TekkenVersion + '_player_count'] for i in range(playerCount): moveset_name = TekkenExporter.getPlayerMovesetName(playerAddr) if moveset_name not in exportedMovesets: print("Requesting export for %s..." % (moveset_name)) moveset = TekkenExporter.exportMoveset(playerAddr) exportedMovesets.append(moveset_name) print() else: print('Player', moveset_name, 'already exported, not exporting again.') playerAddr += playerSize print('\nSuccessfully exported:') for name in exportedMovesets: print(name) parent.updateCharacterlist()
def exportAllTag2(parent, tekkenVersion, playerSize): game_addresses.reloadValues() TekkenExporter = exportLib.Exporter(tekkenVersion, folder_destination=charactersPath) playerAddr = TekkenExporter.getCemuP1Addr() exportedMovesets = [] for i in range(4): addr = playerAddr + (i * playerSize) moveset_name = TekkenExporter.getPlayerMovesetName(addr) if moveset_name not in exportedMovesets: print("Requesting export for %s..." % (moveset_name)) moveset = TekkenExporter.exportMoveset(addr) exportedMovesets.append(moveset_name) print() else: print('Player', moveset_name, 'already exported, not exporting again.') print('\nSuccessfully exported:') for name in exportedMovesets: print(name) parent.updateCharacterlist()
def exportTag2Character(parent, tekkenVersion, playerAddr, name=''): game_addresses.reloadValues() TekkenExporter = exportLib.Exporter(tekkenVersion, folder_destination=charactersPath) playerAddr += TekkenExporter.getCemuP1Addr() TekkenExporter.exportMoveset(playerAddr, name) parent.updateCharacterlist()
def exportCharacter(parent, tekkenVersion, playerid, name=''): game_addresses.reloadValues() TekkenExporter = exportLib.Exporter(tekkenVersion, folder_destination=charactersPath) playerAddr = TekkenExporter.getP1Addr() + ( playerid * game_addresses.addr[tekkenVersion + '_playerstruct_size']) TekkenExporter.exportMoveset(playerAddr, name) parent.updateCharacterlist()
def __init__(self, TekkenVersion, folder_destination='./extracted_chars/'): game_addresses.reloadValues() self.T = GameClass("TekkenGame-Win64-Shipping.exe" if TekkenVersion == 7 else "Cemu.exe") self.TekkenVersion = TekkenVersion self.ptr_size = 8 if TekkenVersion == 7 else 4 self.base = 0x0 if TekkenVersion == 7 else game_addresses.addr['cemu_base'] self.endian = 'little' if TekkenVersion == 7 else 'big' self.folder_destination = folder_destination if not os.path.isdir(folder_destination): os.mkdir(folder_destination)
def __init__(self, TekkenVersion, folder_destination='./extracted_chars/'): game_addresses.reloadValues() self.T = GameClass("TekkenGame-Win64-Shipping.exe" if TekkenVersion == 7 else "Cemu.exe") self.TekkenVersion = TekkenVersion self.ptr_size = 8 if TekkenVersion == 7 else 4 self.base = 0x0 if TekkenVersion == 7 else game_addresses.addr['cemu_base'] self.endian = 'little' if TekkenVersion == 7 else 'big' self.folder_destination = folder_destination if self.base == 0x9999999999999999: raise Exception("Cemu base address has not been modified yet, please insert the correct cemu_base address in game_address.txt") if not os.path.isdir(folder_destination): os.mkdir(folder_destination)
def updateAddressFile(self): filedata = getFileFromRepo(game_addresses['repo_link'], 'game_addresses.txt') newAddresses = AddressFile(data=filedata) if newAddresses['version'] != game_addresses['version']: with open("game_addresses.txt", "w") as f: f.write(filedata) game_addresses.reloadValues() messagebox.showinfo( "Updated", "Addresses successfully updated.\nRestart this software for the effect to take place.", parent=self) else: messagebox.showinfo("Not updating", "Nothing to update, file is up to date.", parent=self)