summaryrefslogtreecommitdiff
path: root/crystal.py
diff options
context:
space:
mode:
authorBryan Bishop <kanzure@gmail.com>2012-04-03 00:59:16 -0500
committerBryan Bishop <kanzure@gmail.com>2012-04-03 00:59:16 -0500
commit0c83eb9a9865a499e5e9aeab0c8e49030cc7d0bc (patch)
tree025d8d4b537a82c3a79a2547a069b1f6599e363a /crystal.py
parenteb5273f53844b6e7e830aaaa29c1b4c0a788e0b0 (diff)
not sure why the scripts aren't working yet
original-commit-id: 21081a08e1976a13b77057820724c2318f3f116f
Diffstat (limited to 'crystal.py')
-rw-r--r--crystal.py13
1 files changed, 11 insertions, 2 deletions
diff --git a/crystal.py b/crystal.py
index f8d9baa..4394361 100644
--- a/crystal.py
+++ b/crystal.py
@@ -2592,7 +2592,8 @@ command_classes = create_command_classes()
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 @@ def parse_script_with_command_classes(start_address):
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 @@ def parse_script_with_command_classes(start_address):
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 @@ class Script():
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)+\