mirror of https://github.com/pmret/papermario.git
				
				
				
			
		
			
				
	
	
		
			35 lines
		
	
	
		
			849 B
		
	
	
	
		
			Python
		
	
	
	
			
		
		
	
	
			35 lines
		
	
	
		
			849 B
		
	
	
	
		
			Python
		
	
	
	
| #!/usr/bin/python3
 | |
| 
 | |
| import glob
 | |
| import os
 | |
| import re
 | |
| import sys
 | |
| import subprocess
 | |
| from pathlib import Path
 | |
| 
 | |
| script_dir = os.path.dirname(os.path.realpath(__file__))
 | |
| root_dir = os.path.abspath(os.path.join(script_dir, ".."))
 | |
| 
 | |
| import glob, os
 | |
| os.chdir(root_dir)
 | |
| 
 | |
| for f in Path(root_dir).rglob("*.bin"):
 | |
|     if "papermario" in f.name:
 | |
|         continue
 | |
|     if f.name in ["bin_11A440.bin", "code_71430.bin", "bootcode_font.bin"]:
 | |
|         continue
 | |
| 
 | |
|     ras = []
 | |
|     result = subprocess.run(["mips-linux-gnu-objdump", "-Dz",  "-bbinary", "-mmips", "-EB" , f], stdout=subprocess.PIPE)
 | |
|     output = result.stdout.decode().split("\n")
 | |
| 
 | |
|     for line in output:
 | |
|         if re.match(r".*jr.*ra.*", line):
 | |
|             ras.append(line)
 | |
| 
 | |
|     if len(ras) > 0:
 | |
|         print(f"{f.name} : {len(ras)}")
 | |
|         for line in ras:
 | |
|             print(line)
 | |
|         print("")
 |