shithub: pokecrystal

Download patch

ref: 94a6e1b0ccb531474e662a522940241a785b4739
parent: e5586a5aa2293ba601882f254c633d712d53cdca
author: Bryan Bishop <[email protected]>
date: Fri Apr 27 13:16:45 EDT 2012

words/pointers should point within bank

--- a/extras/crystal.py
+++ b/extras/crystal.py
@@ -1319,6 +1319,7 @@
         if not label:
             #pointer_part = (", ".join([(self.prefix+"%.2x")%x for x in reversed(self.bytes[1:])]))
             pointer_part = self.prefix+("%.2x"%self.bytes[1])+("%.2x"%self.bytes[0])
+
         #bank positioning matters!
         if bank == True or bank == "reverse": #bank, pointer
             #possibly use BANK(LABEL) if we know the bank
@@ -1341,7 +1342,6 @@
             return pointer_part #probably in the same bank ?
         raise Exception, "this should never happen"
 
-
 class PointerLabelBeforeBank(PointerLabelParam):
     bank = True #bank appears first, see calculate_pointer_from_bytes_at
     size = 3
@@ -5018,7 +5018,11 @@
             return "AlreadyParsedNoDefaultUnknownLabel_" + hex(address)
 
     #return "NotYetParsed_"+hex(address)
-    return "$%.2x"%(address)
+    if address > 0x7FFF:
+        value = 0x4000 + (address % 0x4000)
+        return "$%.2x"%(value)
+    else:
+        return "$%.2x"%(address)
 
 def remove_quoted_text(line):
     """get rid of content inside quotes