diff --git a/requirements.txt b/requirements.txt index 5ef5d5b222..57787f0e3f 100644 --- a/requirements.txt +++ b/requirements.txt @@ -6,7 +6,7 @@ pyyaml>=6.0.1,<7.0.0 # disasm rabbitizer>=1.3.0,<2.0.0 -spimdisasm>=1.34.2,<2.0.0 +spimdisasm>=1.34.2,<2.0.0 # Sync with tools/disasm/disasm.py # yars pyelftools>=0.26 diff --git a/tools/disasm/disasm.py b/tools/disasm/disasm.py index 95775ad5ed..0b9914c8d9 100755 --- a/tools/disasm/disasm.py +++ b/tools/disasm/disasm.py @@ -86,8 +86,9 @@ def main(): args = parser.parse_args() if spimdisasm.__version_info__ < (1, 28, 1): - print(f"Error: spimdisasm>=1.28.1 is required (you have {spimdisasm.__version__})") - print("Hint: run `make setup` to update the venv.") + # Version should be kept up to date with requirements.txt + print(f"Error: spimdisasm>=1.34.2 is required (you have {spimdisasm.__version__})") + print("Hint: run `make venv` to update the venv.") exit(1) context = spimdisasm.common.Context() @@ -112,12 +113,16 @@ def main(): file_splits = load_file_splits(context, args.config_dir, dma_file, f) all_file_splits.append(file_splits) + progress_str = "" + print("Analyzing...") for i, file_splits in enumerate(all_file_splits): f = i / len(all_file_splits) - spimdisasm.common.Utils.printQuietless( - f"{f*100:3.0f}%", "Analyzing", file_splits.name, end=" \r" - ) + + spimdisasm.common.Utils.printQuietless(f'{len(progress_str) * " "}\r', end="") + progress_str = f'{f*100:3.0f}% Analyzing {file_splits.name}\r' + spimdisasm.common.Utils.printQuietless(progress_str, end="", flush=True) + file_splits.analyze() print() print("Analyzing done.") @@ -130,9 +135,11 @@ def main(): print("Writing disassembled sections...") for i, file_splits in enumerate(all_file_splits): f = i / len(all_file_splits) - spimdisasm.common.Utils.printQuietless( - f"{f*100:3.0f}%", "Writing", file_splits.name, end=" \r" - ) + + spimdisasm.common.Utils.printQuietless(f'{len(progress_str) * " "} \r', end="") + progress_str = f'{f*100:3.0f}% Writing {file_splits.name}\r' + spimdisasm.common.Utils.printQuietless(progress_str, end="", flush=True) + for sectDict in file_splits.sectionsDict.values(): for name, section in sectDict.items(): basepath = output_dir / name @@ -154,9 +161,10 @@ def main(): print("Writing disassembled functions individually...") for i, file_splits in enumerate(all_file_splits): f = i / len(all_file_splits) - spimdisasm.common.Utils.printQuietless( - f"{f*100:3.0f}%", "Writing", file_splits.name, end=" \r" - ) + + spimdisasm.common.Utils.printQuietless(f'{len(progress_str) * " "} \r', end="") + progress_str = f'{f*100:3.0f}% Writing {file_splits.name}\r' + spimdisasm.common.Utils.printQuietless(progress_str, end="", flush=True) for section_name, text_section in file_splits.sectionsDict[ spimdisasm.common.FileSectionType.Text diff --git a/tools/disasm/sym_info.py b/tools/disasm/sym_info.py index 35d57b4917..de8b939f48 100755 --- a/tools/disasm/sym_info.py +++ b/tools/disasm/sym_info.py @@ -37,7 +37,7 @@ def main(): " expected/build/VERSION/context.csv" ) parser.add_argument("sym_or_vma") - default_version = "ntsc-1.2" + default_version = "n64-us" parser.add_argument( "-v", "--version",