From 38db6c087dd2d04b9d68fcc6e1a357bc5c9f0845 Mon Sep 17 00:00:00 2001 From: robojumper Date: Fri, 25 Oct 2024 22:57:11 +0200 Subject: [PATCH] Small fixes --- config/SOUE01/symbols.txt | 2 +- tools/ghidra_scripts/DecompMapToGhidra.py | 2 +- tools/ghidra_scripts/demangle.py | 6 ++++-- 3 files changed, 6 insertions(+), 4 deletions(-) diff --git a/config/SOUE01/symbols.txt b/config/SOUE01/symbols.txt index 260f1e70..a2dc7796 100644 --- a/config/SOUE01/symbols.txt +++ b/config/SOUE01/symbols.txt @@ -34304,7 +34304,7 @@ __vt__58sFState_c = .data:0x805 __vt__Q39dCsGame_c15lytItemCursor_c16lytPachinkoCsr_c = .data:0x8052F0A8; // type:object size:0x10 __vt__84sFStateMgr_c = .data:0x8052F0B8; // type:object size:0x30 __vt__114sStateMgr_c = .data:0x8052F0E8; // type:object size:0x30 -__vt__61sFStateFct_c = .data:0x8052F118; // type:object size:0x18 +__vt__61sFStateFct_c = .data:0x8052F118; // type:object size:0x18 __vt__58sFState_c = .data:0x8052F130; // type:object size:0x18 __vt__Q39dCsGame_c15lytItemCursor_c15lytDowsingCsr_c = .data:0x8052F148; // type:object size:0x10 __vt__83sFStateMgr_c = .data:0x8052F158; // type:object size:0x30 diff --git a/tools/ghidra_scripts/DecompMapToGhidra.py b/tools/ghidra_scripts/DecompMapToGhidra.py index 053edb14..2ad0074b 100644 --- a/tools/ghidra_scripts/DecompMapToGhidra.py +++ b/tools/ghidra_scripts/DecompMapToGhidra.py @@ -233,7 +233,7 @@ def update_addr(addr, mangled_name, create_function=False): createLabel(addr, symbol_str, namespace, True, IMPORTED) if create_function: - createFunction(addr, postprocessed) + createFunction(addr, name_list[-1]) if symbol_needs_history(mangled_name): unit.setComment(PLATE_COMMENT, complete_plate_comment) diff --git a/tools/ghidra_scripts/demangle.py b/tools/ghidra_scripts/demangle.py index 9b116b5d..320d1564 100644 --- a/tools/ghidra_scripts/demangle.py +++ b/tools/ghidra_scripts/demangle.py @@ -363,7 +363,8 @@ def resolve_templates(s, remangle_add_length): break elif re.match(r'[-\d]+[>,]', s[i:]) != None: # Integer literal - literal = re.match(r'[-\d]+', s[i:])[0] + # ss/robojumper: fix [0] -> .group(0) + literal = re.match(r'[-\d]+', s[i:]).group(0) template_str += literal if is_demangle() else 'XLi%sEE' % literal.replace('-', 'n') i += len(literal) else: @@ -518,7 +519,8 @@ def demangle_try(s): try: return demangle(s) except Exception as e: - sys.stderr.write('Demangler error: ' + str(e) + '\n') + # ss/robojumper: more context + sys.stderr.write('Demangler error: ' + str(e) + ' trying to demangle ' + s + '\n') raise e def main():