Started decompilation!

This commit is contained in:
David Benepe
2020-06-27 20:31:57 -05:00
parent d8235ade15
commit 8b0d8d457b
16 changed files with 2335 additions and 167 deletions
+21 -6
View File
@@ -7,6 +7,7 @@ from file_util import FileUtil
LD_NAME = 'dkr.ld'
ASM_DIR = './asm'
SRC_DIR = './src'
ASSETS_S_FILENAME = './asm/assets/assets.s'
ASSETS_DIR = './assets/us_1.0'
ASSETS_START = 0x0D8200
@@ -15,7 +16,7 @@ class LD:
def __init__(self, file):
print('Generating linker file...')
self.generate_assets_file()
self.files = self.get_asm_files()
self.files = self.get_code_files()
self.indentLevel = 0
self.file = file
self.gen_comment('linker script generated by generate_ld.py')
@@ -118,8 +119,8 @@ class LD:
def gen_newline(self):
self.file.write('\n')
def get_asm_files(self):
asmFiles = []
def get_code_files(self):
files = []
asmFilenames = FileUtil.get_filenames_from_directory(ASM_DIR, ('.s',))
regex = r'[\/][*]\s*([0-9A-Fa-f]{6})\s*([0-9A-Fa-f]{8})\s*([0-9A-Fa-f]{8})\s*[*][\/]'
for filename in asmFilenames:
@@ -132,10 +133,24 @@ class LD:
line = asmFile.readline()
continue
matchedGroups = matches.groups()
asmFiles.append(('build/asm/' + filename[:-2] + '.o', matchedGroups[0], matchedGroups[1]))
files.append(('build/asm/' + filename[:-2] + '.o', matchedGroups[0], matchedGroups[1], 1))
break
asmFiles.sort(key = lambda x: x[2]) # Sort tuples by RAM address
return asmFiles
srcFilenames = FileUtil.get_filenames_from_directory(SRC_DIR, ('.c',))
regex = r'[\/][*]+\s*RAM_POS:\s*0x([0-9a-fA-F]+)\s*[*]+[\/]'
for filename in srcFilenames:
with open(SRC_DIR + '/' + filename, 'r') as srcFile:
notDone = True
line = srcFile.readline()
while line:
matches = re.match(regex, line)
if matches is None:
line = srcFile.readline()
continue
matchedGroups = matches.groups()
files.append(('build/src/' + filename[:-2] + '.o', '', matchedGroups[0], 0))
break
files.sort(key = lambda x: (x[2], x[3])) # Sort tuples by RAM address and prioritize src files first.
return files
def get_asset_files(self):
assetFiles = []