summaryrefslogtreecommitdiff
path: root/crystal.py
diff options
context:
space:
mode:
Diffstat (limited to 'crystal.py')
-rw-r--r--crystal.py10
1 files changed, 7 insertions, 3 deletions
diff --git a/crystal.py b/crystal.py
index 9cdc065..095aec3 100644
--- a/crystal.py
+++ b/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