shithub: pokecrystal

Download patch

ref: 21081a08e1976a13b77057820724c2318f3f116f
parent: 2c9c2424d86522777a17b591b83e98d98ea0d871
author: Bryan Bishop <[email protected]>
date: Mon Apr 2 20:59:16 EDT 2012

not sure why the scripts aren't working yet

--- a/extras/crystal.py
+++ b/extras/crystal.py
@@ -2592,7 +2592,8 @@
 def parse_script_with_command_classes(start_address):
     """parses a script using the Command classes
     as an alternative to the old method using hard-coded commands"""
-    global command_classes
+    global command_classes, rom
+    load_rom()
     current_address = start_address
     commands = []
     end = False
@@ -2604,6 +2605,9 @@
             if kls.id == cur_byte:
                 right_kls = kls
         if right_kls == None:
+            print "current_address is: " + hex(current_address)
+            current_address += 1
+            continue
             asm_output = ""
             for command in commands:
                 asm_output += command.to_asm() + "\n"
@@ -2611,7 +2615,10 @@
         cls = right_kls(address=current_address)
         end = cls.end
         commands.append(cls)
-        current_address = cls.last_address + 1
+        #current_address = cls.last_address + 1
+        current_address += cls.size + 1
+    asm_output = "".join([command.to_asm()+"\n" for command in commands])
+    print asm_output
     return commands
 
 #use this to keep track of commands without pksv names
@@ -2794,6 +2801,8 @@
                 start_address = offset
                 last_byte_address = offset + size - 1
                 pointer = calculate_pointer_from_bytes_at(start_address+1)
+                if pointer == None:
+                    raise Exception, "pointer is None (shouldn't be None pointer on 0x0 script command"
                 command["pointer"] = pointer
                 if debug:
                     print "in script starting at "+hex(original_start_address)+\