""" import os from rominfo import FILES, FILE_BLOCKS, CONTROL_CODES, UNCOMPRESSED_FILES from romtools.disk import Disk, Gamefile, Block from romtools.dump import DumpExcel, PointerExcel from codec import encode ORIGINAL_ROM_PATH = os.path.join('original', 'Insiders94.hdm') TARGET_ROM_PATH = os.path.join('patched', 'Insiders94.hdm') DUMP_XLS_PATH = 'insiders_dump.xlsx' POINTER_XLS_PATH = 'insiders_pointers.xlsx' Dump = DumpExcel(DUMP_XLS_PATH) PtrDump = PointerExcel(POINTER_XLS_PATH) OriginalINS = Disk(ORIGINAL_ROM_PATH, dump_excel=Dump, pointer_excel=PtrDump) TargetINS = Disk(TARGET_ROM_PATH) FILES_TO_REINSERT = ['IDS', 'ISS'] # TODO: Unsure if there are multiple pointer files, but there is ICS so far pointer_gamefile_path = os.path.join('original', 'ICS') pointer_gamefile = Gamefile(pointer_gamefile_path, disk=OriginalINS, dest_disk=TargetINS, pointer_sheet_name='IDS.decompressed') for filename in FILES_TO_REINSERT: gamefile_path = os.path.join('original', 'decompressed',
t = str(s)[2:] s = str(s)[0:2] s = int(s, 16) t = int(t, 16) value = (t * 0x100) + s return value pointer_count = 0 try: os.remove('dante98-II_pointer_dump.xlsx') except FileNotFoundError: pass PtrXl = PointerExcel('dante98-II_pointer_dump.xlsx') for gamefile in FILES_WITH_POINTERS: print(gamefile) pointer_locations = OrderedDict() gamefile_path = os.path.join('original', 'DANTE2', gamefile) GF = Gamefile(gamefile_path, pointer_constant=POINTER_CONSTANT[gamefile]) with open(gamefile_path, 'rb') as f: bs = f.read() target_areas = FILE_BLOCKS[gamefile] # target_area = (GF.pointer_constant, len(bs)) #print(hex(target_area[0]), hex(target_area[1])) only_hex = u"" for c in bs: only_hex += u'\\x%02x' % c
if t is None: t = str(s)[2:] s = str(s)[0:2] s = int(s, 16) t = int(t, 16) value = (t * 0x100) + s return value pointer_count = 0 try: os.remove('KuroNoKen_pointer_dump.xlsx') except FileNotFoundError: pass PtrXl = PointerExcel('KuroNoKen_pointer_dump.xlsx') for gamefile in FILES_WITH_POINTERS: print(gamefile) pointer_locations = OrderedDict() gamefile_path = os.path.join('original', 'decompressed', gamefile) GF = Gamefile(gamefile_path, pointer_constant=POINTER_CONSTANT[gamefile]) with open(gamefile_path, 'rb') as f: bs = f.read() target_areas = FILE_BLOCKS[gamefile] if gamefile.endswith(".BSD"): target_areas = [(0x0, len(GF.filestring)+1)] string_locations = [] if gamefile in FILE_STRING_LOCATIONS: string_locations = FILE_STRING_LOCATIONS[gamefile]
OriginalAp = Disk(SRC_DISK, dump_excel=Dump) OriginalCdAp = Disk(CD_SRC_DISK, dump_excel=Dump) #files_to_search = ['ORFIELD.EXE', 'ORBTL.EXE', 'ORTITLE.EXE'] # TODO: Add ORITTLE back in once I've mapped the CD version. files_to_search = ['ORFIELD.EXE', 'ORBTL.EXE', 'ORTITLE.EXE'] problem_count = 0 try: os.remove('appareden_pointer_dump.xlsx') except WindowsError: pass PtrXl = PointerExcel('appareden_pointer_dump.xlsx') for version in ['FD', 'CD']: for f in files_to_search: if version == 'FD': GF = Gamefile(os.path.join('original', f), disk=OriginalAp) file_blocks = FdRom.file_blocks[f] pointer_constant = FdRom.pointer_constant[f] pointer_tables = FdRom.pointer_tables[f] pointer_disambiguation = FdRom.pointer_disambiguation worksheet_name = GF.filename else: GF = Gamefile(os.path.join('original_cd', f), disk=OriginalCdAp) file_blocks = CdRom.file_blocks[f] pointer_constant = CdRom.pointer_constant[f]
DUMP_XLS_PATH = 'insiders_dump.xlsx' POINTER_XLS_PATH = 'insiders_pointers.xlsx' Dump = DumpExcel(DUMP_XLS_PATH) # TODO: Add ORITTLE back in once I've mapped the CD version. files_to_search = ['IDS', 'ISS'] pointer_files = ['ICS'] problem_count = 0 try: os.remove(POINTER_XLS_PATH) except WindowsError: pass PtrXl = PointerExcel(POINTER_XLS_PATH) pf_hex = {} for pf in pointer_files: with open('original\\' + pf, 'rb') as f: only_hex = u'' bs = f.read() for c in bs: only_hex += u'\\x%02x' % c pf_hex[pf] = only_hex for f in files_to_search: GF = Gamefile(os.path.join('original', f)) file_blocks = FILE_BLOCKS[f]