Exemple #1
0
 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')
Exemple #2
0
 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')