hg-commit-id: ad6ea1f1fb26
This commit is contained in:
IIMarckus 2012-01-17 00:38:55 -07:00
commit 2a557c5343
4 changed files with 998 additions and 988 deletions

1024
common.asm

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

View file

@ -385,7 +385,7 @@ def find_missing_08s(all_texts):
def text_pretty_printer_at(start_address, label="SomeLabel"):
commands = parse_text_script(start_address, None, None)
needs_to_begin_with_0 = False
needs_to_begin_with_0 = True #how should this be determined?
wanted_command = None
if needs_to_begin_with_0:
@ -403,11 +403,28 @@ def text_pretty_printer_at(start_address, label="SomeLabel"):
first_line = True
for this_command in commands.keys():
if not "lines" in commands[this_command].keys(): continue
if not "lines" in commands[this_command].keys():
command = commands[this_command]
if command["type"] == 0x1:
if first_line:
output = "\n"
output += label + ": ; " + hex(start_address) + "\n"
first_line = False
p1 = command["pointer"][0]
p2 = command["pointer"][1]
#remember to account for big endian -> little endian
output += spacing + "TX_RAM $" + hex(p2)[2:] + hex(p1)[2:] + "\n"
byte_count += 3
#everything else is for $0s, really
continue
lines = commands[this_command]["lines"]
#add the ending byte to the last line- always seems $57
lines[len(lines.keys())-1].append(commands[1]["type"])
#this should already be in there, but it's not because of a bug in the text parser
lines[len(lines.keys())-1].append(commands[len(commands.keys())-1]["type"])
if first_line:
output = "\n"

View file

@ -3,27 +3,36 @@
#date: 2012-01-15
#dump map height/width constants
import extract_maps
from pretty_map_headers import map_name_cleaner
from pretty_map_headers import map_name_cleaner, map_constants
def get_map_size_constants():
def get_map_size_constants(do_sed=False):
output = ""
sed_lines = ""
for map_id in extract_maps.map_headers.keys():
if map_id in extract_maps.bad_maps: continue #skip
map2 = extract_maps.map_headers[map_id]
base_name = map_name_cleaner(map2["name"], None)[:-2]
constant_name = map_constants[map_id]
height = int(map2["y"], 16)
width = int(map2["x"], 16)
output += "; " + base_name + "_h map_id=" + str(map_id) + "\n"
output += base_name + "Height EQU $%.2x\n" % (height)
output += base_name + "Width EQU $%.2x\n" % (width)
output += constant_name + "_HEIGHT EQU $%.2x\n" % (height)
output += constant_name + "_WIDTH EQU $%.2x\n" % (width)
output += "\n"
return output
sed_lines += "sed -i 's/" + base_name + "Height/" + constant_name + "_HEIGHT" + "/g' common.asm" + "\n"
sed_lines += "sed -i 's/" + base_name + "Width/" + constant_name + "_WIDTH" + "/g' common.asm" + "\n"
if do_sed:
return sed_lines
else:
return output
if __name__ == "__main__":
extract_maps.load_rom()
extract_maps.load_map_pointers()
extract_maps.read_all_map_headers()
print get_map_size_constants()
print get_map_size_constants(do_sed=True)