mirror of
https://github.com/izzy2lost/Diddy-Kong-Racing.git
synced 2026-06-19 01:16:26 -07:00
Started decompilation!
This commit is contained in:
@@ -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 = []
|
||||
|
||||
Reference in New Issue
Block a user