def patch_routine(self, rom: Rom): with open(f'tmp_{self.name}.asm', 'w') as f: f.write(str(self)) (success, rom_data) = asar.patch(f'tmp_{self.name}.asm', rom.data) if success: rom.data = rom_data ptrs = asar.getprints() self.ptr = ptrs[0] print(f'Routine {self.name} was applied correctly') else: print(asar.geterrors()) raise PatchException(f'Routine {self.name} encountered an error while patching') os.remove(f'tmp_{self.name}.asm')
def patch_sprite(self, rom: Rom): import asar with open(f'tmp_{self.name}.asm', 'w') as f: f.write(str(self)) (success, rom_data) = asar.patch(f'tmp_{self.name}.asm', rom.data) if success: rom.data = rom_data ptrs = asar.getprints() self.set_ptrs(ptrs[0][-6:], ptrs[1][-6:]) print(f'Sprite {self.name} was applied correctly') else: print(asar.geterrors()) raise PatchException( f'Sprite {self.name} encountered an error while patching') os.remove(f'tmp_{self.name}.asm')