Changed ichaindis to output actual names by default and added an --offset arg to output offset names if needed. Also changed permission on all the overlayhelper scripts (#102)

This commit is contained in:
kyleburnette 2021-04-12 19:47:36 -07:00 committed by GitHub
parent 84040f6ba6
commit d327f3e6c3
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 6 additions and 7 deletions

0
tools/overlayhelpers/actor_symbols.py Normal file → Executable file
View File

0
tools/overlayhelpers/colliderinit.py Normal file → Executable file
View File

13
tools/overlayhelpers/ichaindis.py Normal file → Executable file
View File

@ -53,7 +53,7 @@ def HexParse(s):
def main():
parser = argparse.ArgumentParser(description='Decompiles an InitChain')
parser.add_argument('address', help='VRAM or VROM address of an InitChain', type=HexParse)
parser.add_argument('--names', action="store_true", help='Retrieve variable names from the actor struct')
parser.add_argument('--offsets', action="store_true", help='Use offsets as variable names.')
args = parser.parse_args()
file_path, file_offset = resolve_symbol(args.address)
@ -62,9 +62,8 @@ def main():
filedata = f.read()
print ('static InitChainEntry sInitChain[] = {')
if args.names:
actor_variable_names = get_actor_var_names()
actor_variable_names = get_actor_var_names()
while True:
entry = struct.unpack('>I', filedata[file_offset:file_offset+4])[0]
@ -79,10 +78,10 @@ def main():
var_name = '{0:X}'.format(offset)
if args.names and var_name in actor_variable_names:
if args.offsets:
var_name = "unk" + var_name
elif var_name in actor_variable_names:
var_name = actor_variable_names[var_name]
else:
var_name = "unk_" + var_name
print(' {0}({1}, {2}, {3}),'.format(ICHAIN_MACROS[t], var_name, value, ('ICHAIN_CONTINUE' if cont == 1 else 'ICHAIN_STOP')))
if cont == 0: