diff options
author | Bryan Bishop <kanzure@gmail.com> | 2012-03-12 03:01:38 -0500 |
---|---|---|
committer | Bryan Bishop <kanzure@gmail.com> | 2012-03-12 03:01:38 -0500 |
commit | ad0f365a372d227cf050b2c1016bda5f9b9f80c6 (patch) | |
tree | 7f299c16227f42921b24ba70166a906afb8b930e /extras/crystal.py | |
parent | 25a5a9cef4b2490142c1646d86ccefe5de3f2b44 (diff) |
fix calculate_pointer
Diffstat (limited to 'extras/crystal.py')
-rw-r--r-- | extras/crystal.py | 10 |
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 |