コード例 #1
0
ファイル: reinsert.py プロジェクト: 46OkuMen/insiders
"""

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',
コード例 #2
0
ファイル: find_pointers.py プロジェクト: 46OkuMen/dante98
        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
コード例 #3
0
    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]
コード例 #4
0
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]
コード例 #5
0

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]