summaryrefslogtreecommitdiff
path: root/extras/crystal.py
diff options
context:
space:
mode:
authorBryan Bishop <kanzure@gmail.com>2012-03-12 03:01:38 -0500
committerBryan Bishop <kanzure@gmail.com>2012-03-12 03:01:38 -0500
commitad0f365a372d227cf050b2c1016bda5f9b9f80c6 (patch)
tree7f299c16227f42921b24ba70166a906afb8b930e /extras/crystal.py
parent25a5a9cef4b2490142c1646d86ccefe5de3f2b44 (diff)
fix calculate_pointer
Diffstat (limited to 'extras/crystal.py')
-rw-r--r--extras/crystal.py10
1 files changed, 7 insertions, 3 deletions
diff --git a/extras/crystal.py b/extras/crystal.py
index 9cdc06570..095aec3cf 100644
--- a/extras/crystal.py
+++ b/extras/crystal.py
@@ -363,11 +363,15 @@ def calculate_bank(address):
if type(address) == str:
address = int(address, 16)
return int(address) / 0x4000
-def calculate_pointer(short_pointer, bank):
+def calculate_pointer(short_pointer, bank=None):
"""calculates the full address given a 4-byte pointer and bank byte"""
short_pointer = int(short_pointer)
- bank = int(bank)
- pointer = short_pointer - 0x4000 + (bank * 0x4000)
+ if short_pointer > 0x4000:
+ short_pointer -= 0x4000
+ bank = int(bank)
+ else:
+ bank = 0
+ pointer = short_pointer + (bank * 0x4000)
return pointer
def calculate_pointer_from_bytes_at(address, bank=False):
"""calculates a pointer from 2 bytes at a location