diff options
| author | Bryan Bishop <kanzure@gmail.com> | 2012-05-16 14:37:30 -0500 | 
|---|---|---|
| committer | Bryan Bishop <kanzure@gmail.com> | 2012-05-16 14:37:30 -0500 | 
| commit | 34c6b38da6026b3a877c68541d0d7bd0ec1373e9 (patch) | |
| tree | 9e46d2a4082613b8bcc3327874a5c4cf4181aa06 /extras | |
| parent | dc3fd295c0397fbbaafb13bc02524e86f67c67ac (diff) | |
tool to help narrow down the problem in a bank
Diffstat (limited to 'extras')
| -rw-r--r-- | extras/crystal.py | 29 | 
1 files changed, 29 insertions, 0 deletions
| diff --git a/extras/crystal.py b/extras/crystal.py index 245659c28..c32724cc5 100644 --- a/extras/crystal.py +++ b/extras/crystal.py @@ -5962,6 +5962,14 @@ class Asm:          #make sure the file ends with a newline          fh.write("\n") +def list_things_in_bank(bank): +    objects = [] +    for blah in script_parse_table.items(): +        object = blah[1] +        if hasattr(object, "address") and calculate_bank(object.address) == bank: +            objects.append(object) +    return objects +  def list_texts_in_bank(bank):      """ Narrows down the list of objects      that you will be inserting into Asm. @@ -6032,6 +6040,27 @@ def dump_asm_for_movements_in_bank(bank, start=0, end=100):      asm.dump()      print "done dumping movements for bank $%.2x" % (bank) +def dump_things_in_bank(bank, start=50, end=100): +    """ is helpful for figuring out which object is breaking that bank. +    """ +    # load and parse the ROM if necessary +    if rom == None or len(rom) <= 4: +        load_rom() +        run_main() +     +    things = list_things_in_bank(bank)[start:end] + +    # create a new dump +    asm = Asm() + +    # start the insertion process +    asm.insert_multiple_with_dependencies(things) +     +    # start dumping +    asm.dump() + +    print "done dumping things for bank $%.2x" % (bank) +  def index(seq, f):      """return the index of the first item in seq      where f(item) == True.""" | 
