From 366ff9f60f9e3df070cfcb84a0be01e13d6cbe19 Mon Sep 17 00:00:00 2001 From: Or Dagmi Date: Wed, 5 Mar 2014 10:22:39 +0200 Subject: [PATCH] Adding B.W patch --- generic_patcher.py | 32 ++++++++++++++++++++++++++++++-- 1 file changed, 30 insertions(+), 2 deletions(-) diff --git a/generic_patcher.py b/generic_patcher.py index 40acf79..94ef311 100644 --- a/generic_patcher.py +++ b/generic_patcher.py @@ -128,11 +128,39 @@ def patch_bl(self, src, dst): b = (0xF800 | diff_lower) c = (a << 16) | b print "patched: %X to call %X BL opcode: %X" % (src, dst, c) - return struct.pack("> 12) & 0x3ff + diff_lower = ((diff & 0xfff) >> 1) | (((diff >>22)&1) << 11) | (((diff >> 23) & 1) <<13) + a = (0xF000 | diff_upper)# << 16 + b = (0x9000 | diff_lower) + if diff < 0: + a |= 0x0400 + else: + b = b^ 0x2800 + c = (a << 16) | b + print "patched: %X to call %X B.W opcode: %s" % (src, dst, + struct.pack("