diff options
Diffstat (limited to 'extras')
| -rw-r--r-- | extras/crystal.py | 8 | 
1 files changed, 5 insertions, 3 deletions
| diff --git a/extras/crystal.py b/extras/crystal.py index 9aefa1867..2dd590757 100644 --- a/extras/crystal.py +++ b/extras/crystal.py @@ -4492,14 +4492,14 @@ class Incbin:          return incbins -def AsmSection: +class AsmSection:      def __init__(self, line):          self.bank_id = None          self.line = line          self.parse()      def parse(self):          line    = self.line -        bank_id = int(line.split("\"")[1].split("bank")[1]) +        bank_id = int(line.split("\"")[1].split("bank")[1], 16)          self.bank_id  = bank_id          start_address = bank_id * 0x4000          end_address   = (bank_id * 0x4000) + 0x4000 - 1 @@ -4524,7 +4524,7 @@ class Asm:          for line in asm_list:              if line[0:6] == "INCBIN" or line[1:6] == "INCBIN":                  thing = Incbin(line, bank=bank) -            if line[0:7] == "SECTION": +            elif line[0:7] == "SECTION":                  thing = AsmSection(line)                  bank = thing.bank_id              else: @@ -4543,6 +4543,8 @@ class Asm:          # 2) find which object goes after it          found = False          for object in list(self.parts): +            #skip objects without a defined interval (like a comment line) +            if not hasattr(object, "address") and hasattr(object, "last_address"): continue              #replace an incbin with three incbins, replace middle incbin with whatever              if object.address <= start_address <= object.last_address and isinstance(object, Incbin):                  #split up the incbin into three segments | 
